LINUX.ORG.RU

Продуктивность разработки на C++.

 , ,


6

12

Уважаемые программисты!

Предлагаю порассуждать о продуктивности разработки на C++ по сравнению с так называемыми скриптовыми языками. Вот, принято считать, что языки на вроде Python позволяют работать программисту более продуктивно по сравнению с C++. И что, дескать, на C++ надо писать только узкие места и всё такое.

Мне же хочется четкого понимания. Может быть это миф? А может быть это просто инерция, потому что так вот принято считать и все тут. Вот сегодня в C++ уже не надо думать об освобождении памяти, так как есть умные указатели. Сегодня есть уже более-менее нормальные IDE для C++. Так? Так.

Так что же тогда мешает писать на C++ столь же продуктивно, как на том же Python? Какие будут рассуждения? Может быть есть какие-то реальные обоснования на этот счёт, кроме как «в конторе Y так делают, значит смысл есть, они умные, им виднее». А может быть есть какие-то рецепты по продуктивности работы на C++?

Ответ на: комментарий от RazrFalcon

Оказывается раст использует unsafe в std, а люди и не знали.

Так это же ты предлагал писать на Rust без unsafe и катался под столом когда тебе сообщили, что тогда в нём ничего работать не будет. Вот можешь прикинуть сколько от std останется, если запретить unsafe.

Поэтому пока Rust — это обрезанный С++ с возможностью местами писать безопасный код. Эдакие умные указатели на стероидах.

monk ★★★★★
()
Ответ на: комментарий от monk

Суть в том, что весь unsafe уже написали и проверили. Осталось только его использовать, а не ходить по граблям, как в С/С++.

Поэтому пока Rust — это обрезанный С++ с возможностью местами писать безопасный код.

У вас очень странное представление о rust.

RazrFalcon ★★★★★
()
Ответ на: комментарий от monk

Поэтому пока Rust — это обрезанный С++ с возможностью местами писать безопасный код. Эдакие умные указатели на стероидах.

Какое из этих трех утверждений описывает плохое качество?

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Какое из этих трех утверждений описывает плохое качество?

«Обрезанный C++». Проще работать на C++ с руководством по стилю. Тогда по крайней мере, когда потребуется сделать что-то нетривиальное, это можно будет сделать, а не страдать от того, что язык неполноценный. И бойлерплейта меньше.

Предыдущий Rust назывался Java. Её ведь тоже разрабатывали как системный язык. И возможностей безопасного кода гораздо больше, чем в Rust, и поддержка крупной корпорации. И похожие недостатки: многословность, отсутствие половины возможностей C++.

monk ★★★★★
()
Ответ на: комментарий от monk

Только Java обогнала C++. Такие дела.

Проще работать на C++ с руководством по стилю.

Ага, не выходя за пределы std, ака без внешних либ.

когда потребуется сделать что-то нетривиальное, это можно будет сделать

Настолько нетривиальное, что только на C++ возможно и никто ещё такое не реализовал в виде готовой либы?

И бойлерплейта меньше.

4.2

отсутствие половины возможностей C++ выстрелить себе в ногу

fixed

PS: тема вообще про продуктивность, которой у C++ нет.

RazrFalcon ★★★★★
()
Ответ на: комментарий от monk

Rust — это обрезанный С++ с возможностью местами писать безопасный код. Эдакие умные указатели на стероидах.

Какое из этих трех утверждений описывает плохое качество?

«Обрезанный C++».

Я пишу на Си++ по работе и очень хорошо понимаю слова Страуструпа «inside C++, there is a much smaller cleaner language struggling to get out». «Необрезанный C++» просто не нужен.

И это я еще дал тебе фору - не стал спорить, что Rust - якобы обрезанный C++. Твое утверждение очевидно ложно, потому что в Rust есть модули и более-менее приличный сопроцессор.

Предыдущий Rust назывался Java.

Вижу, ты уже принял. Ну, приятного трипа.

tailgunner ★★★★★
()
Ответ на: комментарий от RazrFalcon

Только Java обогнала C++. Такие дела.

Скорее Java нашла большую нишу, где за, неимением ничего лучшего, использовался С++. Так-то они обычно решают достаточно разные задачи.

PS: тема вообще про продуктивность, которой у C++ нет.

Тихо, а то еще лисперов скастуешь.

anonymous
()
Ответ на: комментарий от tailgunner

Раст зашел и позволяет вам очень много вонять именно потому, что в мейнстрим сейчас заехал миф о скорости. Естественно, что ни тебе, ни тем школотронам с лабами - никакая скорость не нужна. Это нужно именно что для сравнения с крестами.

В реальности же язык без возможностей си/крестов неконкурентоспособен что бы там его адепты не рассказывали. Именно поэтому раст сейчас - это пристанище для всех закомплексованных неосиляторов, которые используют его не потому, что он что-то там, а лишь как надежду на то, что низвергнет наконец-то С/С++ с вершины.

Это вера в то, что твоё неосиляторство - это следствие не того, что ты слаб, а просто С/С++ говно. Ты ведь не такой как все. А раст это именно анти С/С++. Пусть он и обосрался тыщу раз, но кого это волнует.

ЦА настолько тупая, что после нового булшита на хабре про новый супер-броузер - я потерял веру в то, что этих «людей» ещё можно спасти. Никто из этих потребителей дерьма не смог пойти и проверить. Ведь это так сложно - надо ведь жрать то, что вливает в пустую черепушку пропаганда. При этом самая примитивная.

Но это и неважно. Особенно после того как я увидел то, что они пишут в оправдания.

rustonelove
()
Ответ на: комментарий от monk

И похожие недостатки: многословность, отсутствие половины возможностей C++.

Последнее скорее преимущество, как минимум на то время, это сейчас джаверы заматерели и посматривают на всякие скалы, котлины и пр. И, точно так же, и Rust мог бы совершить мальнькую революцию и потеснить С, но проскочил эту возможность. Ну и Rust вышел слегка маргинальным, и (специально для tailgunner'а) нельзя не отметить, что его автор сейчас работает над более простым в использовании swift.

anonymous
()
Ответ на: комментарий от tailgunner

Я в чем-то неправ? Я рад, что ты нашел веру, что тебе это нравиться и всё такое. Но почему вы со своей верой везде лезете? Ведь у тебя нет ни аргументации, ни способностей, нихрена нет. Ты можешь ретранслировать какую-то ахинею, которую все уже( и даже я) тысячу раз слышал от других адептов, да что там адептов - вы все 1в1 повторяете рекламные агитки.

Вообще рассуждения и попытки что-то понять от людей, которым это просто не дано - это верх глупости. Вас как детей ловят на всякой херне, а вы и рады.

Это прям какая-то реальная болезнь. Раст настолько вбил комьюнити в палеолит, настолько эти сектанты наглые и охреневшие. Такого раньше не было. Хотя может это к лучшему. Чем больше амёбок перестанет приписывать себя к С/С++ - тем лучше. Конечно, через пару лет они канут в забвение вместе со своей поделкой, но что поделать. Такова судьба всех идиотов.

rustonelove
()
Ответ на: комментарий от anonymous

(специально для tailgunner'а) нельзя не отметить, что его автор сейчас работает над более простым в использовании swift

Я знаю. Я так же знаю, что Грейдон отошел от дел еще до Rust 1.0. А еще я знаю, что в Swift постепенно проникают идеи Rust.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Последнее скорее преимущество, как минимум на то время, это сейчас джаверы заматерели и посматривают на всякие скалы, котлины и пр. И, точно так же, и Rust мог бы совершить мальнькую революцию и потеснить С, но проскочил эту возможность.

В реальности нет никакой возможности потеснить C с подобным подходом. Раст - это просто убогий хацкель адаптированный под паскалик. А потом пошла явная жопа.

Всё это создавалось на фоне веры в силу ГЦ, хацкелика и прочего. А потом оказалось бам и в реальности всё это лишь смогло пердануть в лужу. Нужно было срочно что-то менять.

Пришлось выпиливать ГЦ, заниматься все этой ансейв-хернёй.

Далее, С++ развивается очень медленно( по крайней мере там было во времена зачатка раста, да и сейчас он лишь стал развиваться, но не так чтобы быстро). На этом выезжали все надоязыки. Т.к. в каждый из них тащили сотни нихрена не работающих фичей. Из рекламных агиток, конечно же, слово «нерабочих» убирали и они становились фичастее С/С++.

Раст «развивается» так же. Нужно было срочно тащить туда всё дерьмо, чтобы показывать фичи. Это типичный путь «развития» любого дерьма, которое хочет отмыть инвестиции. Естественно никто не верит в то, что это дерьмо что-то сможет, но раз бабки идут - их надо отмывать.

Поэтому никогда раст не мог потеснить Си. Он не создавался для этого и те, кто его создавал - являются бездарями, а бездарность ничего создать по определению не может.

rustonelove
()
Ответ на: комментарий от tailgunner

постепенно проникают идеи Rust.

Например ГЦ, да? Или крестовый синтаксис, да?

Можно мне узнать, что это за такие «идеи rust»?

rustonelove
()
Ответ на: комментарий от rustonelove

Или крестовый синтаксис, да?

И у Rust, и у Swift, конечно, есть заимствования из C/C++, но таки Swift больше похож на Rust чем на С++.

anonymous
()
Ответ на: комментарий от anonymous

но таки Swift больше похож на Rust чем на С++.

Ну дак покажи это. Что вообще такое «похож на rust»? В чём это «похож» заключается? Т.е. что от раста есть в расте? Ничего?

А свифт похож на жабаскрипт скрещенный с жабкой да ещё и с примесью хацкелятинки. Такого как говна уже в начала нулевых. Раньше модно было уводить синтаксис в хацкалятинку. Аля там модные жабка-начинания, всякие f# от маздайсофта. То же самое жабка(только там сишарпик) скрешенное с паскалятинкой и жабаскриптом.

Раст из той же оперы. Ничего нового.

rustonelove
()
Ответ на: комментарий от rustonelove

в целом, я соглашусь по логической аргументации. но зачем так злобно шипеть и плеваться? да мало ли каких языков на свете ни существовало! нам от этого ни горячо, ни холодно. разнообразие имеет место быть и это норма. выживают наиболее приспособленные. пока что на территории системного программирования и около не видно ни одного варианта, кроме сишечки. плюсы - как вариант для более гуеобразного и близкого к юзеру софта. но в целом, нет повода для паники или хотя бы минимального волнения :)

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

PS: тема вообще про продуктивность, которой у C++ нет.

У меня есть два вопроса. Насколько Rust по твоим оценкам продуктивнее C++? Чем обусловлена такая разница?

azelipupenko
() автор топика
Ответ на: комментарий от Iron_Bug

но зачем так злобно шипеть и плеваться? да мало ли каких языков на свете ни существовало! нам от этого ни горячо, ни холодно.

Нееее. Было бы всё так просто. Тут дело не столько в самом языке, а в его адептах.

Всё это работает очень просто. Раст порождает и способствует деградации очень большому числу людей. Он даём им веру, веру в то, что деградация - это нормально, веру в то, что их неосиляторство - это лишь следствие того, что у крестов/си плохой дизайн и прочее.

Когда ты в неадеквате и есть то, что этому способствует. То, что это оправдывает. То, под лозунгами чего ты начнёшь срывать покровы. Это очередная религия. Это раскрепощает тех, кто вчера плакал в подушку.

И при этом таких закомплексованных большинство. Это тренд. Новая волна деградации. Да, если ты не из числа, если ещё кто-то не из числа, то этому мало что даёт. В конечном итоге ты останешься «одна» в мире полного неадеквата. Да, они ничего не смогу, но уже поздно будет что-то менять. Людям проще верить в сказки.

Пример я приводил выше. https://habrahabr.ru/post/340176/ - людям впаривают явную ахинею, пруфцуя явными фейками и манипуляциями.

119 плюсов и ни один не догадался пойти и проверить. Они просто верят. Верят в ахинею, верят в красивые картиночки. Я уже не знаю что это - это клуб домохозяек, либо «иллитная аудитория»(тм).

Особенно меня удивляют их оправдания. Они не понимают - какого уровня херню они несут. «в хроме на тот момент было 15фпс(во-первых враньё. Там было 50фпс)». И вот что ты им не объясняй - они не поймут в чём фейл.

Если в хроме за месяц на убогих крестах запили тоже самое, что есть у тебя( а скорее всего наоборот ты спастил то, что было в хроме. Просто оно было альфа/бета и вырублено по умолчанию), хотя у тебя ничего нет. У тебя работает на 60фпс лишь смена цвета - всё остальное не работает(в 90% случаев), либо работает не так хорошо(в 5% случаев), либо кое-как работает( с теми же артефактами и прочим) в остальных 5% случаев. Да и даже сейчас всё это ресурсов жрёт несоизмеримо с хромом.

И вот этот адепт не понимает, что тем самым он не оправдывает свою поделку - он расписывается в её несостоятельности. Почему другие без всяких рустов и в 10раз быстрее могут, а ты нет? У тебя же преимущество руста и супер-скилла. А там х10 на отладку.

И таких примеров масса. В мозиле работали ваятеле 25 эшелона, которые никак не могли конкурировать с хромом. Обделались полностью. И если сейчас это чуду ваяют перебежчики, то мотивация их явна и понятно. И понятно чем их и как обманули.

Ну и конечно же, сравнивать новую поделку надо с тем тормазные дерьмом, что было в лисе раньше. Ведь с хромом почему-то никто не хочешь сравнить, да и зачем. Кто хочешь обделаться?

Люди теряют связь с реальностью. Сознание людей вгоняют в палеолит. И что самое печальное - они среди нас, они большинство в этой сфере. И в их «сознании» ломают последнее, что их сдерживало.

Всегда С/С++ было вершиной, никто не мог спорить. Не мог жабист с хоть каким остатком мозга прийти и начать рассказывать как правильно писать броузеры, ОС и прочее. И эта новая наркота даём им эту возможность. Вчера ты мыл полы где-то, а сейчас ты уже ваяешь на расте. И раз раст > C/С++, то ты больше С/С++-ваятелей.

И что дальше? А дальше всё просто. То, куда раньше они не лезли - они полезли. И сейчас обговнякивают всё там.

А публика, ЦА всех этих броузеров и прочего - хомячки. Они не понимают техчасти - они действуют так, как им залили в уши.

И именно на это работает раст. Нужно подменить понятия в сознании масс. Если раньше всем нужен был быстрый броузер, быстрое шифрование. Именно поэтому хайпят на всей это безопасности.

Пользователь не видит эту безопасность. Вот удобство, скорость работы и фичи - он видит, а безопасность нет. Поэтому ему можно впарить под безопасностью всё что угодно. И если пользователь это сожрёт - прощай объективность.

Именно на этом паразитирует раст. Нам даже не надо ничего изобретать. Написано на расте, а раст «безопасный» язык - всё сразу становиться безопасным. И домохозяйке ты ничего не докажешь.

Я уже там приводил примеры. Маркетинг раста рассчитан совсем на дошколят. Наш движок самый быстрый(по сравнение с нашим прошлым говнодвижком, да и то это враньё, ибо он не работает). Ничего не напоминает?

rustonelove
()
Ответ на: комментарий от RazrFalcon

Суть в том, что весь unsafe уже написали и проверили. Осталось только его использовать, а не ходить по граблям, как в С/С++.

Любопытное утверждение. На чём основано? Просто опыт, или были какие-то заявления от разрабов?

Crocodoom ★★★★★
()
Ответ на: комментарий от RazrFalcon

Суть в том, что весь unsafe уже написали и проверили. Осталось только его использовать, а не ходить по граблям, как в С/С++.

Помоги бедолагам, разрабатывающим Servo. Там больше 100 мест с unsafe. Типа такого

pub unsafe fn drop_style_and_layout_data(data: OpaqueStyleAndLayoutData) {
    let ptr = data.ptr.get() as *mut StyleData;
    let non_opaque: *mut StyleAndLayoutData = ptr as *mut _;
    let _ = Box::from_raw(non_opaque);
}
monk ★★★★★
()
Ответ на: комментарий от monk

Помоги бедолагам, разрабатывающим Servo. Там больше 100 мест с unsafe. Типа такого

На первый взгляд, это всё биндинги ка внешним тулкитам. Убеди, например, Яббл, переписать свои Core* на Rust - часть unsafe исчезнет.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Убеди, например, Яббл, переписать свои Core* на Rust - часть unsafe исчезнет.

Как это мило. Только ты забываешь, что для переписывания «убеждений» недостаточно. Ну и попёрли манипуляции. Что из этого:

        linux-vdso.so.1 (0x00007ffe525d3000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/libstdc++.so.6 (0x00007f282625b000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f2826044000)
        libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 (0x00007f2825dfd000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f2825bf9000)
        libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x00007f282598b000)
        libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x00007f2825551000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f2825328000)
        libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f28250b5000)
        libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f2824e8a000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f2824b4c000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f2824944000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2824724000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/libgcc_s.so.1 (0x00007f282450d000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f282415e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f282665f000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f2823e56000)
        libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f2823bc7000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f28239c3000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f28237bd000)
        libxcb-dri3.so.0 => /usr/lib64/libxcb-dri3.so.0 (0x00007f28235ba000)
        libxcb-present.so.0 => /usr/lib64/libxcb-present.so.0 (0x00007f28233b7000)
        libxcb-sync.so.1 => /usr/lib64/libxcb-sync.so.1 (0x00007f28231b0000)
        libxshmfence.so.1 => /usr/lib64/libxshmfence.so.1 (0x00007f2822fae000)
        libglapi.so.0 => /usr/lib64/libglapi.so.0 (0x00007f2822d7d000)
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f2822b6b000)
        libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007f2822968000)
        libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f2822762000)
        libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f2822560000)
        libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 (0x00007f2822344000)
        libxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0 (0x00007f282213f000)
        libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007f2821f39000)
        libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007f2821d27000)
        libgcrypt.so.20 => /usr/lib64/libgcrypt.so.20 (0x00007f2821a09000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f28217e3000)
        liblz4.so.1 => /usr/lib64/liblz4.so.1 (0x00007f28215ce000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007f28213c8000)
        libbsd.so.0 => /usr/lib64/libbsd.so.0 (0x00007f28211b3000)
        libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x00007f2820f9e000)

Что из этого является «яббл», либо «внешним тулкитом»? gl, дбас, системд, линуксячье? Это капля в море. Остальное когда перепишешь?

И это только в рамках хелворд-поделки, которая не умеет ни рендерить шрифты, да нихрена эта поделка не умеет. И если мы поверим в чудо и она вдруг хоть что-то начнёт уметь - этот список вырастит раз в 20.

часть unsafe исчезнет.

В мечтах. Они все просто переместятся на уровень ниже и это ничего не поменяет. Хотя пыль в глаза пускать можно, да.

rustonelove
()
Ответ на: комментарий от rustonelove

Всегда С/С++ было вершиной, никто не мог спорить. Не мог жабист с хоть каким остатком мозга прийти и начать рассказывать как правильно писать броузеры, ОС и прочее.

Ну это ты зря, даже на ЛОРе наверняка можно откопать как явисты доказывают что ява бысрее c/с++, что это правильный ЯП для разработки на микроконтроллерах и DE тоже нужно делать на яве (помним jDE в Solaris?). Сейчас всего этого почти нет потому что ява с тех пор многократно обделалась на всех поприщах, но до этого у хомячков были точно такие же надежды.

anonymous
()
Ответ на: комментарий от azelipupenko

Намного. И если сахар и фичи языка можно списать на вкусовщину, как любят делать «опытные сишники», то аналога cargo нет и не будет.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Crocodoom

Заявления чего? Тесты есть, фазинг есть, куча народу использует, и багов у них нет. Чем не гарантия?

RazrFalcon ★★★★★
()
Ответ на: комментарий от anonymous

Ну это ты зря, даже на ЛОРе наверняка можно откопать как явисты доказывают что ява бысрее c/с++

Ну там было всё на настолько запущено. Вплекски были, я про это писал на хабре. В момент выката v8 было то же самое с ЖС, да и много когда было. Но такого запущенного случая я не помню.

А по поводу откопать. Даже копать не надо, я помню этих упоротых. Они мне так же доказывали, что на жаве можно написать жвм, потом их аргументация съезжала в линкование какой-то жвм на жаве, которая на самом деле не жаве. А на некой жава-сишке, которая нихрена не жава, да и сишный бутстрап там был. Но этого ничего ты их не объяснишь.

Точно так же линковали всякие там java card. И ты точно так же им не докажешь, что это не та жава. Что жаву можно заменить хоть на пхп. Это ничего не изменит, ведь что от жавы, что от пхп - там останется только название.

Такие же упоротые мне доказывали «жс так же быстр как сишка», линкуя asmjs не понимая вообще что это такое. У них мышление на уровне ключевых слов. Они в чём-то увидели знакомое слово - ба, да это то же самое. Там же js. Там же java.

И таких было мало, в основном все понимали, что они совершенно из другой сферы и соваться в этом мир им не надо. А все спорщики - это было по большей части всякие маргиналы.

Сейчас же, если сложить весь уровень неадеквата видимый мною ранее вместе( от адептов всех языков), то даже его не хватит.

Раньше у них не было всех этих знамений с сервами и иже с ним. «серво самый быстрый/серво быстрый» - ты их спрашиваешь - где? Там. - Ну там же ничего не работает? - Да насрать, оно и не должно работать.

Как у этих людей работает мозг - мне неведомо. Как можно нести подобную ахинею - мне неведомо. Как можно в одном предложении можно совместить «самое быстрое, это победа» и «там пока ничего не работает, а что работает работает не так, как надо». Действительно.

rustonelove
()
Ответ на: комментарий от anonymous

Хотя казалось бы. У сишки/крестов множество недостатков и дыр. Буквально 5-7лет назад кресты были тотальным убожеством. Кресты требуют полного редизайна. Их база, их основа - их фатальный недостаток.

Иди, решай эти проблемы. Придумывай новое. У тебя нет никаких проблем, если ты отказываешься от обратной совместимости, но нет - зачем? Для того, чтобы что-то понимать - надо что-то знать, а мартышкам что-то знать по статусу не положено.

Вот у нас каждый год и рождается по десять новых куллязычков, которые существуют только для одного - пилить бабки(для авторов) и придумывать новые критерии оценки( для заказчиков).

Эта схема работает очень просто. Лису пишут ламерки, полная жопа. Нужно срочно что-то менять. Статистика в жопе, скоро сольём ослу, да и уже сливаем. Что делать?

И тут есть очень старая схема. Надо придумать новый критерий оценки и внедрить его в сознание масс. Таким примеров много. Допустим, для ЦА маздайки/мобильного говна - уже давно ОС ассоциируется с иконками. Иконки поменяли - новая ОС вышла. Они не понимают ни того, что такое ОС, ни что-либо ещё. Но там ладно - иконки можно пощупать и это плохо.

И тут появляется нечто, что пощупать нельзя. Нам нужно придумать некий критерий, который нельзя будет пощупать, который не будет присутствовать в user experience, но о котором все будут знать.

Такая золотая кобыла есть - безопасность. Объективно её очень сложно измерить, вообще никто не знает - что это такое. Поэтому ты всегда можешь написать «мои трусы самые безопасные». И если ты в подкорку потребителя вбил то, что «безопасно > всего остального» - ты победитель.

Далее, ты можешь впаривать ему любое дерьмо. Это общая схема. Она работает не только с безопасно, но и много с чем другим. Счастливей, надёжней - всё это то, что нужно потребителю, но это так является тем - хрен кто знает чем это вообще является и как это измерить.

И всё что тебе нужно - попугать домохозяйку всякими «опасностями» и она твоя, её бабки - твои. Всё просто.

И мозилла с растом пытается оседлать эту кобылу. Совместно с другой более примитивной кобылой - простым враньём.

Это такая же старая как мир схема. Достаточно посмотреть на любой «стартап». Всё один в один. Мы самые лучшие, самые инновационные , самый быстрые. Любой новый говноязык пестрит этим, да и любая гуйня, да всё что угодно.

А далее это всё очень просто доить. Это такое раздолье для оправданий. Почему твой проект не взлетел? Слишком «инновационен». Почему ты просрал уже столько времени и бабла? Дак инновации же. Почему ты проигрываешь Васе? Дак это просто прототип. А так моя новая супер-схема обгонит васю в тыщи раз, ну через тыщу лет. Когда про меня все забудут, а бабки будут уже попилены.

Достаточно сравнить эту поделку с любыми инновационными трусами. Лозунги 1в1, оправдания 1в1, результаты 1в1.

В конечном итоге у тебя есть множество вариантов развития событий. Кормить хомячков завтраками ещё 10лет. Слиться на «безопасность не бывает бесплатной». Называть все прямые сравнения с конкурентами несостоятельными по причине «у нас-то безопасней и инновационней».

Всё это развивается точь в точь по схеме, которую я определил ещё много лет назад. Будут штурмоваться «принципиально новые подходы», каждый раз новые. Естественно, у верующих до конца остаётся вера в то, что они могут подхалявить.

Допустим, хром однопоточный(на самом деле нет), а если мы будем жрать все 10ядер, то возможно мы будет быстрее. Хром плохо юзает видяху, а если мы будем её юзать на фул, то возможн омы будем быстрее. Всё это попытка подхалявить. Получить откуда-то новые ресурсы. Всё так и происходит.

rustonelove
()
Ответ на: комментарий от RazrFalcon

Неверно. В этом заключается основная манипуляция - ты на неё купился, хотя как я уже говорил - никуда ты не покупался.

Дело в том, что везде существует safe/unsafe. В мире существует два разных типа разработки. Разработка функциональных модулей и скриптуха. Скриптуха это просто перегонка данных между модулями и их компоновка. В основном 80% программирования - это скриптуха, но для этого даже есть специальные языки.

Скриптуха по умолчанию safe, ведь ты гоняешь данные в абстракциях между модулями, либо в рамках модуля. Единственная мантра, которая работает в рамках подобного подхода - это управление памятью, но это уже десятки лет как не актуально.

В том же кути ты насувал все кишки в parent и раии - у тебя нет никаких проблем. Так же и везде.

Во всех языках на уровне скриптухи существует safe, они все safe.

Единственная разница с растом в том, что он просто запретил тебе писать лоулевел первый случай тупым засовыванием всего в unsafe. Это ничего не поменяло. Это просто явное указание того, что было всегда.

Поэтому раст тебе даёт не safe - он даёт тебе явный safe и ничего более. И полезность этого явного safe - крайне сомнительно.

Но ты, как малоквалифицированный балабол не понимания базовых вещей - начинаешь проповедовать. Это глупо. Если ты не понял, то манипуляция это и есть подмена явного safe на safe как таковой, который итак есть везде.

rustonelove
()
Ответ на: комментарий от RazrFalcon

А С++ на 100% unsafe

constexpr и шаблоны - вполне себе safe.

anonymous
()
Ответ на: комментарий от rustonelove

я могу лишь заметить, что для неосиляторов существует великое множество языков. так что плюс-минус один - не так существенно, имхо. тем более, что есть куда более худшие варианты. меня больше беспокоит распространение пистона. на нём начали писать мелкие скрипты там, где это совершенно не требуется. я занимаюсь планомерным выпиливанием пистона из зависимостей пакетов. потому что он чаще всего туда притянут за уши и действительно не нужен. это реальный гемор, потому что тянет за собой мегатонны говна на комп. а раст... вот что он есть, что его нет - монопенисуально совершенно :) он в какой-то параллельной реальности существует и ни на что не влияет. так что с ним пока бороться нельзя - в виду отсутствия какого-либо кода на нём :)

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

я занимаюсь планомерным выпиливанием пистона из зависимостей пакетов.

О, какое бесполезное начинание. Даешь пытон-фри дистр! Кстати, с точки зрения юзера я бы однозначно предпочел раст, ведь там статически все собирают, и поделка в 10 строк не потянет 10 зависимостей и особую версию интерпретатора до кучи. Вот только кто станет писать поделки на таком уберязычке. Даже на го не сильно то кинулись.

bread
()
Ответ на: комментарий от Iron_Bug

я могу лишь заметить, что для неосиляторов существует великое множество языков

Нету таких языков. Не существует языков претендующих на лавры выше крестов. Всякие там го с гц и прочее - ясно и понятно что это и для чего. Никогда их адепты и авторы не противопоставляли это крестам/си.

Тут же совершенно другая ситуация.

меня больше беспокоит распространение пистона. на нём начали писать мелкие скрипты там, где это совершенно не требуется

Ну в этом нет ничего удивительного. Вузы штампуют новых экспертов пачками и последние года там во всю расцвёл пистон. Естественно что он, тёмный гений, вчера вышедший из-за парты с пистоном на пару будет везде его пихать.

а раст... вот что он есть, что его нет - монопенисуально совершенно :) он в какой-то параллельной реальности существует и ни на что не влияет. так что с ним пока бороться нельзя - в виду отсутствия какого-либо кода на нём :)

Тут дело не в коде, я писал уже об этом. Дело в том, кого он культивирует. Точно так же раньше, пока все дошколятам не пихали пистон - тебе было фиолетово, а сейчас вон как. Из всех щелей льётся.

Раст - это не про код. Это идеология.И эта идеология превращает людей вокруг тебя в неадекватных сектантов. И то, что тебе рассказывают тут сейчас про то как надо - это ещё цветочки по сравнению с тем, что будет.

Хайпа вокруг этого будет всё больше и если твоя область как-то связана с конечным потребителем, а такое почти всегда бывает, если ты занимаешься своими проектами - это меняет систему оценки.

Если пример попроще. Ты делаешь хорошую, качественную обувь. Это сейчас котируемые потребительские свойства. И сейчас всё это хочет сделать сдвиг, скормив потребителю за основные свойства «влияние на ауру» и ещё какую херню. Потребитель это дерьмо сожрёт за милую душу.

И в конечном итоге у тебя будет выбор. Ты либо вливаешься в мейнстрим, либо идёшь нахрен.

Поэтому это борьба не за код, это борьба за адекватность.

rustonelove
()
Ответ на: комментарий от rustonelove

Этот тред отличная липучка для малопродуктивных в С++ , и более продуктивных в портянках не кода но текста естественного языка о коде на С++

зы. продуктивного тебе Царь плюснутого кода творить!

anonymous
()
Ответ на: комментарий от rustonelove

да никакая это не идеология. точнее, не такая, чтобы что-то там захватить. ну, прыгают там пара студентов, которые ниасилили сишечку. ну и пусть прыгают. хорошее дело ржавчиной не назовут, для начала. это маргинальное название и язык изначально рассчитывался для маргиналов. для понтов. ну, пусть понтуются. выше головы не прыгнешь и все эти памперсы (i.e. GC) - признак неосиляторства и изначальной неспособности написать что-то существенное. так что я не рассматриваю это, как вообще нечто хоть отдалённо сравнимое с сишечкой или с плюсами. это очередная песочница.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

хорошее дело ржавчиной не назовут, для начала. это маргинальное название и язык изначально рассчитывался для маргиналов. для понтов. ну, пусть понтуются. выше головы не прыгнешь и все эти памперсы (i.e. GC) - признак неосиляторства и изначальной неспособности написать что-то существенное.

Знаете, хороший человек и Железным жуком не назовётся, коли на то пошло.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Хороший человек в свой ник не лепит год рождения ☺

И вообще, мелкота, что ты тут суешься со своим «авторитетным мнением»? Было бы тебе хотя бы лет 45-50!!!

anonymous
()
Ответ на: комментарий от Iron_Bug

так что я не рассматриваю это, как вообще нечто хоть отдалённо сравнимое с сишечкой или с плюсами. это очередная песочница.

Дело не в том, что рассматриваешь ты. Дело в том, что рассматриваются хомячки. Я уже всё это разъяснял.

Пыхтон был песочницей для студентов. Только толку с этого? А теперь ты героически сражаешься с пыхтоном. А через лет 5 будет так же сражаться ещё с растом, который хомячки будут везде пихать.

rustonelove
()
Ответ на: комментарий от anonymous

Ну во-первых тебе емнип тоже еще не 40, а во-вторых ты тоже ни о чем кроме embedded-C не знаешь, но мнение суешь повсюду :D

anonymous
()
Ответ на: комментарий от rustonelove

Пыхтон был песочницей для студентов

и в этом повторил путь Unix|C сёрёдки волосатых 70ых.

anonymous
()
Ответ на: комментарий от anonymous

Имею право, ибо теперь под анонимом трещу =D

И, кстати, при чем здесь emmbedded C? У меня от силы 5% наберется эмбеддщины. Все остальное — десктопные/сетевые приложения и демоны для веб-морд.

anonymous
()
Ответ на: комментарий от anonymous

Однако, Unix|C раскрутились и стали офигенскими, а пхытон как был говном, так говном и останется.

anonymous
()
Ответ на: комментарий от anonymous

Хороший человек в свой ник не лепит год рождения ☺

Юзернейму 10 лет. Иди поучи уму-разуму того паренька, который его придумывал. Думаю, ей примерно в два раза больше годков, чем мне тогда. И человек на полном серьезе выдает аналитику «мне не нра, как назвали эту каку». Стыдно, товарищи.

И вообще, мелкота, что ты тут суешься со своим «авторитетным мнением»? Было бы тебе хотя бы лет 45-50!!!

Чтобы быть таким же неадекватом, как ты сейчас?

Virtuos86 ★★★★★
()
Ответ на: комментарий от anonymous

А что тебе так не нравится в питоне? Или вообще скриптовые не любишь, только си, только хардкор?

anonymous
()
Ответ на: комментарий от anonymous

У пхытона синтаксис дебильный, группировка табуляциями (это вообще дебилизм на мой взгляд), ООПщина изо всех щелей лезет, нет типов данных и много чего удобного. В общем, каличный недоЯП.

Вместо этого говна есть более приличные средства обработки данных: Octave, Iraf, MIDAS, IDL…

anonymous
()
Ответ на: комментарий от anonymous

А что тебе так не нравится в питоне?

Он написал несколько скриптов для какой-то свободной САПР, FreeCAD, емнип, и это оставило неизгладимый след на его психике. Код там тоже вышел неважняцкий, к слову.

Virtuos86 ★★★★★
()
Ответ на: комментарий от anonymous

и в этом повторил путь Unix|C сёрёдки волосатых 70ых.

Неверно. У си/юникса никогда не было подобного пути. Да и реализует он совершенно другую идеологию. Си - это не криптуха язык.

Хотя на самом деле в си больше от скриптухи, но это не та скриптуха. Си - это динамический язык, но в своей логике. Это уникальная вещь. Она просто на голову выше понимания рядового адепта, да и не рядового.

Другое дело, что такой подход немного устарел, и устарел он не в пользу раста и прочей параши. Я тут почитал темку с вяленым и мне стало ясно то, что раст паразитирует не просто на слабости и комплексах адептов - это всё намного глубже.

Там точно так же пацаны не понимали того, что безопасность и ограничения - это разные вещи. Хотя радует, что есть те, кто понимает. Хотя читая пацана в другой теме - я даже не знаю как адекватность одновременно уживается с полным неадекватом. Хотя скорее всего тут дело в том, что всё это - ретрансляция, а не осознанная позиция. Запрет - это не безопасность. Запрет должен быть управляемым, а не постоянным. Нельзя забрать возможность делать скриншоты и назвать это безопасностью.

Тут даже нет какой-то претензии к расту/пыхтону - они лишь продукты всего этого, а не источник.

Тут бывает так, что людям не ясно то, что когда я говорю о си - я не имею ввиду то си и тех позеров, что причисляют себя к си. Им просто дали педали и они крутят. И неважно что там будет - си, либо не си. Был бы паскалик - крутитли бы паскалик и говорили бы то же самое.

Поэтому и адепты пистона в чём-то правы. Действительно, много твердолобых людей, которые не могут в новое и в язык. Им проще насрать дерьма, а архитектура, красота и прочее - это для них пустой звук.

rustonelove
()
Ответ на: комментарий от rustonelove

видимо тебе прямые цитыты из РичиДениса и тех кто в той комнате сидел и участвовал в разработке прикладного софта для лицензионого отдела атт не авторитеты

а вообще ты бы действительно определи что за ЦарьСи язык ты почитаешь - можешь компилятором- эталонной реализацией byU, али референсом каким и корпусом сырцов чётко отделяющих ЦарьСи от плебейСи и прочихСи .

anonymous
()
Ответ на: комментарий от anonymous

видимо тебе прямые цитыты из РичиДениса и тех кто в той комнате сидел и участвовал в разработке прикладного софта для лицензионого отдела атт не авторитеты

Естественно, что для меня всё это не является авторитетом, да и какие там могут быть цитаты. Но в целом да, рождение сишки произошло вопреки. Возможно в текущих реалиях она бы не родилась, но она родилась.

А то, что авторы языка на языке писать не могли - это факт. Но из этого мало что следует. Я уже давно не ассоциирую плоды творчества людей с ими самими. Это явно как-то не так работает. Зачастую люди сами не понимают того, что они, собственно, родили.

а вообще ты бы действительно определи что за ЦарьСи язык ты почитаешь

ЦарьСи - это не язык, это подход. Это идеология. Язык это лишь следствие.

И я уже 10раз об этом рассказывал. Если просто - аналогия проста с тем же обычным языком. Есть два подхода к составлению тех же текстов - это просто вкладывание некоего смысла в текст, а именно творческий подход. Подход, который учитывает то - какую реакцию этот текст вызовет у читателя. Т.е. передаётся, составляется не текст - тест лишь инструмент для воздействия на человека и конечная наша цель - вызвать у человека те чувства, те ассоции, что нам нужны.

С программированием так же. Ты можешь срать шаблонное дерьмо, а можешь через язык воздействовать на машину. Язык это средства вызова нужного поведения на уровне ниже языка. То же самое может быть и с уровнем выше. Но это более понятное обывателю штука.

Т.е. код делает то же самое, но организует выше какую-то определённую модель, структуру. Это и есть скилл. Возможность через язык работать выше/ниже.

можешь компилятором- эталонной реализацией byU, али референсом каким и корпусом сырцов чётко отделяющих ЦарьСи от плебейСи и прочихСи .

Вот чем отличается дефолтная сишка от той же гнусишки? Разница очень проста. Дефолтная она абстрагируется от компилятора, от таргета. В ней есть допущения для этого, но ламерки этого не понимают.

А вот та же гнусишка интегрируется с компиляторм и в тандеме с компилятором - это совершенно иные возможности. Как уровня самого языка, так и именно связки. Для тебя язык - это не абстрактная херня, а конкретный язык управления кодогенерацией.

Т.е. у нас язык, результаты его работы, структура кода находится не где-то в вакууме, в непонятных абсракциях. Мы работаем не с абстрактной хернёй, а с конкретной. Она здесь, её можно пощупать.

То же самое происходит с уровнем выше. Это именно на тему разницы пыхтона и крестов. В каком-то приближении это есть у всего, но это зачаточные состояния и не на уровне языка.

Именно так и работает та же статическая типизация. У нас появляются приближение, уменьшение абстрактности когда. Это уже на уровне кода, а не наших фантазий становится чем-то единым и целостным.

То же самое со всем остальными статическими возможностями языка. Это ещё ближе приближает нас к единообразию, к предсказуемости. У нас отношения объектов и их типов определяются чётко и ясно. Здесь и сейчас. Не в неведомой жопе.

Именно поэтому ламерки всегда и жалуются на то, что у них глаза разбегаются. Слишком широкий контекст. Да и всё это вместе с мизерными умственными способностями ставит крест на хоть какое-то целостное восприятие кода.

В ситуации же когда всё чётко, когда всё ограничено. Когда нет ничего лишнего. Нет ничего из вне. В идеальном случае - это и позволяет воспринимать что-то целостное. Ты убрал из контекста всё лишнее.

rustonelove
()
Ответ на: комментарий от anonymous

Т.е. ламерок пытается натянуть себе побольше неопределённости. Оправдывая это какой-то хернёй неведомой. Это так работает, что если мы нахватаем неопределённости столько, что за нею уже никак не уследить, то это равносильно тому, что следить не смысл. И тем самым мы скрываем то, что следить мы не можем.

Именно на этом построено восприятия ламерков. Всё что ламерок не понимает - для него рандом и божество. Случайно работает ОС, процессор, аллокаторы, компилятор случайно оптимизирует. Это такой уровень развития -2тыщи лет.

Именно поэтому, когда ты эту неопределённость пытаешься закрыть пониманием, выпилом ненужного дерьма - у всех это вызывает лютый бугурт. И сразу летят тонны оправданий.

Именно затыкание всех этих неопределённостей и есть скилл. И именно под всё это и для этого выбирается язык.

Т.е. У нас есть неопределённость с разными компиляторами? Выпиливаем их. Они не нужны. У нас есть неопределённость, либо невозможность получения желаемого результата? Мы используем возможности для решения этих проблем. asm/builtins.

То же самое и с подходом к написанию кода. Мы эту тему уже десять раз обсуждали. Когда ламерки тебе рассказывают про nullptr и прочее. Они просто не способны понять, что вменяемый человек да и вообще любая система не может действовать без доверия внутренним структурам.

Они наверное живут точно так же, бегая каждую секунду и смотря на руки мамки - не хочет ли она их зарезать. Я не понимаю как эти люди действуют.

В конечном итоге, думаю, что понятно тебе разъяснил тему разницу между истиннымСИ и истинным-запилом и плебейСи и плебей-запилом.

rustonelove
()
Ответ на: комментарий от rustonelove

исчерпывающе.

однако возник связанный с повторимостью восприятия вопрос:

что-бы наличный в тебе скил отличения ЦарьСи от ХарамПыхтонNULLptr не сгинул вместе с жертвой сбитой автобусом

как достигнуть идентичного тобой описанного понимания+восприятия

т.е. передай тобой ужо освоенный навык в независящую от тебя форму-носитель - ведь такой навык согласно тебе же важен не только тебе, но и более охватывающей таксономической категории людей.

хы. сорян если чутка похоже на см «google:ПРИТЧИ О ЛУНЕ И УЧИТЕЛЕ..»

anonymous
()
Ответ на: комментарий от anonymous

что-бы наличный в тебе скил отличения ЦарьСи от ХарамПыхтонNULLptr не сгинул вместе с жертвой сбитой автобусом

Понимаешь в чём штука - никто не знает что именно и почему правильно. И что именно является скиллом. И я этого так же не знаю. Это просто мой взгляд на мир, а не призыв к действию.

т.е. передай тобой ужо освоенный навык в независящую от тебя форму-носитель - ведь такой навык согласно тебе же важен не только тебе, но и более охватывающей таксономической категории людей.

Я не знаю в чём заключается навык и что именно правильно. Такое себе дело верить и слушать меня. Я просто понимаю так, как понимаю и вижу так, как вижу. Я не знаю как и почему это происходит и не понимаю то, как может происходит иначе. У всех разное понимание.

Т.е. формализованное учение - это примеры и только примеры. Пока что - у меня ничего нет нужного уровня. Будет - хорошо, а не будет - ну дак что поделать. Балабол. Тут фундаментальная проблема. В одного ничего серьёзного не делается, а не в одного - тебя никто слушать не будет. Всё итак всё лучше знают. Поэтому тут есть некая ловушка.

В любом случае, нужно так же понимать - что ты в конечном итоге хочешь получить. Я ничего не получил - одни проблемы.

rustonelove
()
Ответ на: комментарий от Iron_Bug

все эти памперсы (i.e. GC) - признак неосиляторства и изначальной неспособности написать что-то существенное.

В расте нет GC. Есть RAII и smart pointers, GC нету.

pftBest ★★★★
()
Ответ на: комментарий от rustonelove

А тогда получается, что идеалом будет что-то вроде Хаскеля, иммутабельный, каждый тип под контролем, все строго один к другому сходится, эдакая идеальная мат.модель в вакуме, все предсказумо. Насколько предсказуемо, что можно даже не считать ничего, не гонять код пока не потребуется.

Мне не совсем понятно зачем привязываться к реальному железу, если модель вычеслений такова, что убирает все неопределенности для любого _валидного_ вычислителя?

DiKeert ★★
()
Ответ на: комментарий от DiKeert

А тогда получается, что идеалом будет что-то вроде Хаскеля

Не будет. Это типичная манипуляция. Предсказуемость имеется ввиду в рамках конечного результата. Результат имеет смысл.

В рамках же хаскелятинки вся предсказуемость существует только в мире шизофрении. Никому не нужна предсказуемость в рамках 4стен. Нельзя отвязаться от реальности, загнать себя в рамки какой-то примитивной модели и в рамки какого-то кастрированного определения предсказуемости.

Мне не совсем понятно зачем привязываться к реальному железу, если модель вычеслений такова, что убирает все неопределенности для любого _валидного_ вычислителя?

Всё очень просто. В реальности никому не нужны сами вычисления - нужен конкретный результат. Нельзя реальный мир подбить под какую-то примитивную модель, как это делают хацкелисты и прочие эксперты. Реальность - это не вычисления.

Тут просто перепутано всё с ног на голову. Вычисления - вторичны. Наблюдения и логика сверху - вторична. Это не железяка существует в рамках примитивной модели, которую родили хацкелисты(имеется ввиду более общие понимание. Называй это как хочешь. Теоретики и прочее). Железяка намного выше и именно железяка эмулирует для эти экспертов их вычисления.

Это очень типичное заблуждение всех тех, кто вчера вылез из-за парты. Это из серии «законы физики» и прочие мемасы из школы. Это не законы, а лишь примитивное описание свойств реальности. Эта реальность клала на всё это. Так же и тут. Свойства реальности первичны, а уже под них всё подгоняется. Исходня из них что-то работает так, как работает. И уже поверх этого строятся модели. Но не в мире хацкелистов, которые до сих пор существуют в палеолите вместо с какульяторами.

Если ещё проще. ТЫ пытаешься так же вогнать себя и реальность в рамки, в рамки убогой модели. Всё что выше - магия, да и то, что выше - то же. Это такое замаскированное представление уровня «это дубина - она бить». Только в реальности надо куда-то бить и как-то бить и тут уже впрягаются совершенно иные области. Но ты предлагаешь их игнорировать. У тебя будет абстрактная мишень по которой ты будешь бить и абстрактная дубина совместно с абстрактным действием. Но никакой полезности, никакой эффективности ты из подобной схемы не получишь.

Но зато в рамках неё удобно рассуждать и пускать пыль в глаза студентоте.

Именно поэтому хацкелятинка не прокатывает. Предсказуемая она только в фантазиях адептов и то под десятками но. «_валидного_» и прочее. При этом что такое «_валидное_» никто не знает.

rustonelove
()
Ответ на: комментарий от rustonelove

У тебя рассуждения как у Лысенко в 30 годы, всех теоретиков растрелять, оставить только практиков. Исследования не нужны, нужны только результаты.

Продолжая твою мысль, всех хаскелистов и математиков уволить, запретить придумывать новые алгоритмы, запретить изучение новых видов вычислений, особенно запретить квантовые компьютеры, потому что на практике они медленнее чем классические.

pftBest ★★★★
()
Ответ на: комментарий от pftBest

У тебя рассуждения как у Лысенко в 30 годы, всех теоретиков растрелять, оставить только практиков.

Я сам больше теоретик. Ты немного путаешь. Есть разные виды теоретиков и это не обязательно предполагаемый тобою вид.

Продолжая твою мысль, всех хаскелистов и математиков уволить

Ты это сам придумал.

апретить придумывать новые алгоритмы,

Слишком громкие заявления, которые явно не касаются хацкелистов и тех, кого ты имеешь ввиду.

запретить изучение новых видов вычислений,

Не новых, а бесполезных в большинстве своём. Всё это изучение на 95% состоит из отмыва бабла. Я не говорю о том, что всех надо расстрелять. Я говорю о том, что надо называть вещи своими именами.

Если василий сидит на жопе и создаёт видимость работы, то цена результатам работы василия ноль. Т.к. их попросту нет, ну кроме пустого трёпа.

Если кому-то это нужно - в этом нет ничего плохого. Пусть этот Василий и далее сидит. Но, не надо это наделять тем, чего там нет.

особенно запретить квантовые компьютеры, потому что на практике они медленнее чем классические.

Твои рассуждения следствие отсутвия у тебя внятной аргументации. Поэтому ты хочешь врать, приписывать какие-то нелепые выводы к моим словам и прочее. Ничего их этого тут нет.

Программирование занимается решением прикладных задач, как и всё остальное. А инновации без ответственности - это просто попилы в 95% случаев.

Ну не может Васян, представление которого о реальности и железе устарело лет на 50+ что-то там придумать, даже если он искренне этого хочет. Только чисто случайно.

Именно поэтому и вычисления и алгоритмы, которые используются в реальности - создаются с учётом всего того, что описывал я. И это уже не просто теория. Именно это и является общепринятым прогрессивным направлением. Учёт того, как это будет реализовываться, на чём это будет работать, как работает то, на чём это будет работать. И десятки других нюансов. Всё остальное протухло десятки лет назад и работает в очень-очень узких кейсах.

Т.е. я агитирую за новые виды вычислений, а ты обвиняешь меня в том, что я их запрещаю. Я агитирую за новые, «инновациионные» методы «придумывания» алгоритмов, а ты обвиняешь меня в том, что я агитирую за их запрет.

Ну это просто чистейшей воды враньё и не более того. Ты пытаешься манипулировать отождествляя хацкелистов и прочую публику с «вычислениями» и «алгоритмами», что явно не соответствует реальности.

Да даже та минимальная корреляция между хацкелятинкой, математикой, алгоритмами и партой - лишь следствие общего источника. Работает это очень просто. Если без пистончика у тебя лабу не примут, то ты будешь обязан на нём писать.

А далее уже работают типичные для человека защитные механизмы. Всё, что тебя заставляют делать, либо то, что происходить не по твоей воле и заставляет его страдать(да и в любом случае) - человек начинает приписывать своей воле, либо наделять какими-то смыслами.

Он не может себе признаться в том, что его заставляли жрать дерьмо много лет и он не имел права отказаться. Кто хочет о себе так думать? Никто. Поэтому нет, это не дерьмо - это хорошо.

Это и работает в примере с адептами выше. У меня что-то не получается - я начинаю придумывать причины. Причины вида «да в крестах всё новое не нужно» и они даже не понимает в чём их проблема. У них нет аргументации вообще. Особенно у известного не анонимного персонажа.

Но проблема всё так же. Человек, который не способен смотреть шире - он попадается и спотыкается на каждой яме, даже не понимая откуда она взялась и как её можно обойти. У них всё просто. Захотелось - правильно, а не захотел - неправильно.

Хотя на самом деле и это правильно весь нюанс в том, что как работает твоё захотелось и что его мотивирует. Без всего это все эти рассуждения о всё этом - не имеют смысла.

rustonelove
()
Ответ на: комментарий от rustonelove

вменяемый человек да и вообще любая система не может действовать без доверия внутренним структурам.

Расскажешь подробнее об этих внутренних структурах?

I60R ★★
()
Ответ на: комментарий от I60R

Расскажешь подробнее об этих внутренних структурах?

О чём именно? Ты чувствуешь руку? Ты же не проверяешь каждый раз - есть ли она реально, либо нет. Я не знаю что именно тут можно рассказать. Задавай какой-то более конкретный вопрос.

rustonelove
()
Ответ на: комментарий от I60R

Раскрой сердце своё всей благости nullptr

anonymous
()
Ответ на: комментарий от I60R

чужом

Это проблема чужого кода. Ты с этим ничего не сделаешь. Если ты интегрируешь это инородное тело внутрь/сбоку от своей логики - то тебе нужно его валидировать. Если ты сможешь гарантировать то, что никакой nullptr тебе чужой код никогда не даст - ты можешь его спокойно использовать и ничего не бояться.

как перестать бояться nullptr в коде своём

Очень просто - их просто не должно быть. За примера далеко ходить не надо - их и сейчас в крестах быть не должно. Это прямое отображение той концепции, что описывал я. У тебя есть некий источник( той же памяти), который проверяется и после у тебя есть гарантия на то, что никакого nullptr у тебя в try не будет.

Тебе нужно гарантировать валидность данных/ресурсов приходящих из вне. Делать ты это можешь как угодно. Ты можешь использовать те же свойства всех этих внешних источников. Если этих источников много - их круг можно сузить.

Допустим, меня абсолютно не интересует никакие другие, кроме нужной мне платформы. Благодаря этому я могу использовать свойства этих платформ.

Допустим то, что никакой malloc() и обёртки над ним не могут вернуть nullptr при аллокации блоков до 4к НИКОГДА. Да и много чего ещё.

Любой источник имеет свои гарантии, свои особенности и ими можно пользоваться. Другое дело, что когда для тебя всё неведомый чёрный ящик, который может, в твоём понимании, делать всё что угодно - ты постоянно будешь проверять всё то, что от него исходит.

И это в лучшем случае. Обычно и этого не происходит и в рамках рядовой лапши у тебя что угодно может вернуть какой угодно результат.

Ну и так же, не стоит путать nullptr и nullptr как флаг. Обычно все ламерки от мира пхп и прочих рустов над этим часто манипулируют - приписывая nullptr-флаг к проблемам работы с памятью.

rustonelove
()
Ответ на: комментарий от rustonelove

Тоесть, по твоему, «ручная» проверка всего и вся — лучше системы типов, предоставляющей гарантии по умолчанию?
Или лучше описать все возможности в документации, вместо вернуть Result/Optional?
Делая так, я стану лучше доверять внутренним структурам?
edit: И если не проверкой, то каким ещё образом можно изучить поведение платформы?

I60R ★★
()
Последнее исправление: I60R (всего исправлений: 1)
Ответ на: комментарий от I60R

Тоесть, по твоему, «ручная» проверка всего и вся — лучше системы типов, предоставляющей гарантии по умолчанию?

Где я такое писал? Я как раз писал о том, что если ты можешь эти гарантии взять где-то - то ты их оттуда и берёшь. Там было и про типы и про всё остальное.

Но опять же, есть нюансы. Надо отличать кастыли и гарантии.

Или лучше описать все возможности в документации, вместо вернуть Result/Optional?

Я уже писал о том, что в рядовом коде nullptr ещё используется как флаг отсутствия результата, а не только как какая-то ошибка из вне. Это поведение нужно отличать.

Result/Optional - это именно про это, а так же про возврат ошибок.

Вот ты написал get() -> nullptr - он к тебе пришел. Как ты отличишь ситуацию «нету объекта» и от ситуации «нету памяти». Это решается через в крестах теми же исключениями. А nullptr остался с сишных 70 годов.

Т.е. я не обсуждаю тут nullptr как флаг - он для этого не нужен.

Делая так, я стану лучше доверять внутренним структурам?

nullptr-флаг это твоя внутренняя логика, нету результата - это внутренняя логика. Это мало соотносится с тем, о чём говорил я. Я говорил именно о том, что привноситься в твою программу из вне и что ты внутри неё обрабатываешь.

Если любую твою структуру может инвалидировать что-то из вне - это обратное тому, о чём говорил я. И не важно - проверяешь ты это, либо нет. Я агитировал за то, чтобы сделать так, чтобы подобного в принципе не было.

edit: И если не проверкой, то каким ещё образом можно изучить поведение платформы?

Изучить можно изучением платформы. Если нету возможности это сделать, либо нет какого-то общего, подходящего для всех платформ и приемлемого тебе правила - решение одно. Отлавливать всё это не внутри, а снаружи.

И как я уже говорил - для этого в крестах существуют те же исключения. И логика тут очень простая. Любая ошибка из вне нарушает внутреннее состояние программы и это не надо пихать и разбираться с этим где-то внутри.

Что такое платформа? Это железо под которым работает программа, это ОС под которой работает программа. Вот их устройство и надо изучать, если тебе это надо, конечно же. Выше я описал нюансы.

rustonelove
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.