https://medium.com/@yelbota/%D0%BA%D1%80%D1%83%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%BE%D1%82-%D1%83%D0%BD%D1%8B%D0%BB%D1%8B%D1%85-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%BE%D0%B2-612c72738d04
Пройдет время, некоторым не повезет, и они встретят кризис среднего возраста в одиночестве, платя алименты ушедшей жене. Когда-то давно она прочитала в Космо, что программисты — это новые рок-звезды, но ушла, когда узнала что ее муж, унылый похапешник, не комитит на гитхаб. Другим повезет: они смогут проскочить в тимлиды, и руководство заткнет ими купленный слот на отраслевой конференции. Там они самоутвердятся, рассказав молодым, что унылыми быть круто. И спираль уныния выйдет на новый виток, засосав еще больше классных ребят.
Как я уже неоднократно писал - все эти "интересы бизнеса" и "проверенные инженерные решения" - это отмазки неосиляторов, унылых кольчатых червей-менеджеров и повышение откато-попилоемкости проекта.
Пройдет время, некоторым не повезет, и они встретят кризис среднего возраста в одиночестве, платя алименты ушедшей жене. Когда-то давно она прочитала в Космо, что программисты — это новые рок-звезды, но ушла, когда узнала что ее муж, унылый похапешник, не комитит на гитхаб. Другим повезет: они смогут проскочить в тимлиды, и руководство заткнет ими купленный слот на отраслевой конференции. Там они самоутвердятся, рассказав молодым, что унылыми быть круто. И спираль уныния выйдет на новый виток, засосав еще больше классных ребят.
Как я уже неоднократно писал - все эти "интересы бизнеса" и "проверенные инженерные решения" - это отмазки неосиляторов, унылых кольчатых червей-менеджеров и повышение откато-попилоемкости проекта.
no subject
Date: 2015-08-13 05:34 pm (UTC)Языки без IDE не нужны. Нет IDE и библиотек - нет языка.
no subject
Date: 2015-08-13 06:47 pm (UTC)Если для использования языка нужна ИДЕ - это плохой, негодный язык, который не нужен. Ну кроме как для оправдания маркетинговых бюджетов и пложения эмагаров.
no subject
Date: 2015-08-13 06:58 pm (UTC)- удобство
- скорость
no subject
Date: 2015-08-13 07:08 pm (UTC)no subject
Date: 2015-08-13 07:16 pm (UTC)Скала была бы нужна, если бы был IDE. Но ни один из двух существующих не умеет запустить Hello world. Командная строка не умеет запустить программу из > 1 файла.
Хаскелл не умеет в наследование. Simula 67 умела, а Haskell 2015 уже не умеет. Прогресссссссс
no subject
Date: 2015-08-13 08:03 pm (UTC)no subject
Date: 2015-08-13 08:40 pm (UTC)Очевидно, что это ненормально.
no subject
Date: 2015-08-14 09:14 am (UTC)На разных языках это решается по разному.
Нормальную систему типов для ОО разрабатывали >25 лет (Cardelli, An Accidental Simula User). При этом никто не знает, нет ли в ней дыр (well typed program go wrong). Для сравнения, для зависимых типов (Martin-Loef type theory) понадобилось 12 лет (с появления в 1971 до третьей статьи в 1983), чтобы закрыть все дыры.
Поэтому ОО это очень, очень сложно и очень, очень ненадёжно.
no subject
Date: 2015-08-14 09:39 am (UTC)Как-то так
no subject
Date: 2015-08-16 07:51 pm (UTC)no subject
Date: 2015-08-14 05:44 am (UTC)Поэтому и Скала тоже немного отвратительна, ибо желание Одерского одной ногой топать по функциональщине, а другой наступать в Жаву - вызывает непонимание и желание обьяснить это то ли глупостью, то ли коммерческими соображениями, то ли ... глупостью.
no subject
Date: 2015-08-14 06:47 am (UTC)Ко-ко-ко.
Люди, которые используют наследования и ООП, знают, что их программы работают, пишутся и поддерживаются в разы проще, а оплачиваются - в разы лучше. Всё, что было выдающегося в функциональных языках, давно стало нормой даже в C++,
Весь секрет привлекательности ФП - написание на нём занимает так много времени и требует таких ненужных навыков, что получившийся Hello World тысячу раз переписан, пока запустится. Что-то мало-мальски сложное на ФП либо превращается в ООП другим синтаксисом, либо работает с черепашьей скоростью.
no subject
Date: 2015-08-14 07:11 am (UTC)На больших проектах вся эта срань мгновенно превращается в тыкву, большую и неподьемную, аж компиляторы плачут. В особенности благодаря не в меру ретивым выпускникам универов, которых дефлорировали джавой, с тех пор у них возникает фиксация на этой дряни.
ООП - тупая, окостеневшая, ограниченная идеология, раздутая и разрекламированная сверх всякой меры, с кучей парадоксов, которые разрешить можно только остервенелым костылением. Я бы не имел к ней претензий если б она оставалась примерно в том формате, в котором она живет в Обьектив-Си - сообщения, инкапсуляция и позднее связывание, но в остальном мире она просто вылезла за все мыслимые границы, особенно с с массовым нашествием программистов от сохи. Как говорил один поэт, идея брошенная в массы, она как девка брошенная в полк. Вот именно.
no subject
Date: 2015-08-14 07:19 am (UTC)И разумеется, я видел исходники библиотек на функциональных языках. Там каждый изобретает свой язык, а кучу элементарных вещей "надо писать самому". Итог - непредсказуемое поведение, лютые тормоза, куча времени, убитого на преодоление особенностей языка. Erlang за 20 лет так и не определился, какой библиотекой ходить по HTTP, а нормально работающего драйвера для mySQL не было и нет.
В программах, где где приходится взаимодействовать с пользователем - приходится эмулировать ООП, ведь без него окошки нормально не нарисуешь.
Все примеры "удачных решений на ФП" - написаные роботами программы для роботов.
(no subject)
From:no subject
Date: 2015-08-14 06:17 am (UTC)Зачем бы ему это уметь?
>Скала была бы нужна, если бы был IDE.
Вы до сих пор не объяснили, зачем нужна ИДЕ.
no subject
Date: 2015-08-14 06:39 am (UTC)АйДиИ уровня Вижуал Студио или Х-Код - это все таки айс.
no subject
Date: 2015-08-14 06:48 am (UTC)На счет появилась хоть одна ИДЕ с встроенным редактором уровня хотя бы vim ? По-моему, нет.
> ориентироваться среди файлов
Это каким же безголовым надо быть, чтобы потеряться в правильно разложенных по директориям нескольким сотням файлов?
>компилировать, собирать
Это один черт должен делать аналог make.
>дебажить
Господи, зачем? Чем отладочноая печать-то с реплом не устраивают?
Я могу еще понять пользу от перехвата ввода-вывода (в т.ч. сетевого) и дампа состояния, но это явно делается не так.
no subject
Date: 2015-08-14 06:56 am (UTC)vim - характерный пример инопланетной технологии. Он в принципе контринтуитивен, Создать файл, написать текст, сохранить в нём - невозможно без чтения справки. В общении с vim машина - главный, а человек - слуга.
Правильный подход - emacs, notepad и где угодно ещё. Где есть текст и есть отдельно работа с текстом и можно работать, не зная ни одной горячей клавиши.
> Это каким же безголовым надо быть, чтобы потеряться в правильно разложенных по директориям нескольким сотням файлов?
Желаю успеха в переименовании одного класса в проекте из > 500 файлов.
> Это один черт должен делать аналог make.
Желаю успеха в выучивании 100500 команд ant, maven, sbt и всего прочего зоопарка.
> Господи, зачем? Чем отладочноая печать-то с реплом не устраивают?
Для компилируемых (хотя бы в байткод) языков - практически всем.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-08-14 07:25 am (UTC)Чо, серьезно? ха-ха-ха. У вас прелестное чувство юмора.
>Это каким же безголовым надо быть, чтобы потеряться в правильно разложенных по директориям нескольким сотням файлов?
Ну вот я такой безголовый. Особливо когда файлов есть несколько тыщ, тогда я вообще теряюсь. А еще бывает их надо в разных позах и комбинациях компилировать. Вам-то легко, наверно, раз-два, в десятке мейков строк 200 подправил и снова свеж, как огурец. Но не все ж такие супермены.
>Это один черт должен делать аналог make.
У меня есть для вас сурприз - нормальные ИДЕ это таки надстройки над мейками.
>Господи, зачем? Чем отладочноая печать-то с реплом не устраивают?
Ну хочется иногда сложные структуры данных проинспектировать на предмет содержимого - без вбивания миллионов строк распечаток, которые между прочим тоже того .. ресурсы жрут и синхронизации сбивают. Вот у меня был случай - одна системка на очень слабом камешке была настолько хилой, что распечатки занимали около 50% ее времени. Пришлось их почикать и дебажить очень осторожно, иногда с дебаггером, иногда методом ловли льва в пустыне.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-08-14 02:37 pm (UTC)А они неправильно разложены. Вот как передали вам проект - он такой и есть.
>vim
wq!
бибикать и все портить
>Господи, зачем
А вы никогда сложный gui не писали, наверное.
no subject
Date: 2015-08-14 03:12 pm (UTC)no subject
Date: 2015-08-14 06:43 am (UTC)no subject
Date: 2015-08-14 06:54 am (UTC)Единственный осмысленный случай применения наследования - перекрытие реализации по умолчанию - в хаскеле есть. Больше там говна этого нет, поскольку это не ООП-язык (и слава богу), и тащить туда ООП могут только больные ООП головного мозга.
Я, конечно, в курсе, что подавляющее большинство эмагаров расчитывают именно на ушибленых в голову, но право же, есть и другие решения.
no subject
Date: 2015-08-14 07:00 am (UTC)Неверно. Наследование нужно, чтобы тысячу раз не писать один и тот же код.
Реализовывать можно по разному. Можно жёсткое, как в C++/Java. Можно duck typing, как в Go. Можно как в Python. Можно через прототип как в JavaScript. Но везде одно и то же преимущество: можно унаследовать, использовать родительский код и не задумываясь создать в любом месте программы.
В Haskell этого нет и не будет. В каждом случае надо отдельно ломать голову - как бы это написать, чтобы уважаемый язык соизволил понять, какой тип в данном случае нужен.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-08-20 10:38 am (UTC)1. удобно делать рефакторинг и кодогенерацию типовых блоков - экономит время.
2. автокомплит и проверка банального синтаксиса.
3. не держать в голове все функции и виды/типы аргументов для функций, в том числе внешних (из модулей)
4. Запускать/собирать проект кнопкой, а не сваливаться в консоль.