Запретить жабу, дотнет, пхп, перл и крестики, только ФП, только хардкор
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
Языки без IDE не нужны. Нет IDE и библиотек - нет языка.
no subject
Если для использования языка нужна ИДЕ - это плохой, негодный язык, который не нужен. Ну кроме как для оправдания маркетинговых бюджетов и пложения эмагаров.
no subject
- удобство
- скорость
no subject
no subject
Скала была бы нужна, если бы был IDE. Но ни один из двух существующих не умеет запустить Hello world. Командная строка не умеет запустить программу из > 1 файла.
Хаскелл не умеет в наследование. Simula 67 умела, а Haskell 2015 уже не умеет. Прогресссссссс
no subject
no subject
Очевидно, что это ненормально.
no subject
На разных языках это решается по разному.
Нормальную систему типов для ОО разрабатывали >25 лет (Cardelli, An Accidental Simula User). При этом никто не знает, нет ли в ней дыр (well typed program go wrong). Для сравнения, для зависимых типов (Martin-Loef type theory) понадобилось 12 лет (с появления в 1971 до третьей статьи в 1983), чтобы закрыть все дыры.
Поэтому ОО это очень, очень сложно и очень, очень ненадёжно.
no subject
Как-то так
no subject
no subject
Поэтому и Скала тоже немного отвратительна, ибо желание Одерского одной ногой топать по функциональщине, а другой наступать в Жаву - вызывает непонимание и желание обьяснить это то ли глупостью, то ли коммерческими соображениями, то ли ... глупостью.
no subject
Ко-ко-ко.
Люди, которые используют наследования и ООП, знают, что их программы работают, пишутся и поддерживаются в разы проще, а оплачиваются - в разы лучше. Всё, что было выдающегося в функциональных языках, давно стало нормой даже в C++,
Весь секрет привлекательности ФП - написание на нём занимает так много времени и требует таких ненужных навыков, что получившийся Hello World тысячу раз переписан, пока запустится. Что-то мало-мальски сложное на ФП либо превращается в ООП другим синтаксисом, либо работает с черепашьей скоростью.
no subject
На больших проектах вся эта срань мгновенно превращается в тыкву, большую и неподьемную, аж компиляторы плачут. В особенности благодаря не в меру ретивым выпускникам универов, которых дефлорировали джавой, с тех пор у них возникает фиксация на этой дряни.
ООП - тупая, окостеневшая, ограниченная идеология, раздутая и разрекламированная сверх всякой меры, с кучей парадоксов, которые разрешить можно только остервенелым костылением. Я бы не имел к ней претензий если б она оставалась примерно в том формате, в котором она живет в Обьектив-Си - сообщения, инкапсуляция и позднее связывание, но в остальном мире она просто вылезла за все мыслимые границы, особенно с с массовым нашествием программистов от сохи. Как говорил один поэт, идея брошенная в массы, она как девка брошенная в полк. Вот именно.
no subject
И разумеется, я видел исходники библиотек на функциональных языках. Там каждый изобретает свой язык, а кучу элементарных вещей "надо писать самому". Итог - непредсказуемое поведение, лютые тормоза, куча времени, убитого на преодоление особенностей языка. Erlang за 20 лет так и не определился, какой библиотекой ходить по HTTP, а нормально работающего драйвера для mySQL не было и нет.
В программах, где где приходится взаимодействовать с пользователем - приходится эмулировать ООП, ведь без него окошки нормально не нарисуешь.
Все примеры "удачных решений на ФП" - написаные роботами программы для роботов.
(no subject)
no subject
Зачем бы ему это уметь?
>Скала была бы нужна, если бы был IDE.
Вы до сих пор не объяснили, зачем нужна ИДЕ.
no subject
АйДиИ уровня Вижуал Студио или Х-Код - это все таки айс.
no subject
На счет появилась хоть одна ИДЕ с встроенным редактором уровня хотя бы vim ? По-моему, нет.
> ориентироваться среди файлов
Это каким же безголовым надо быть, чтобы потеряться в правильно разложенных по директориям нескольким сотням файлов?
>компилировать, собирать
Это один черт должен делать аналог make.
>дебажить
Господи, зачем? Чем отладочноая печать-то с реплом не устраивают?
Я могу еще понять пользу от перехвата ввода-вывода (в т.ч. сетевого) и дампа состояния, но это явно делается не так.
no subject
vim - характерный пример инопланетной технологии. Он в принципе контринтуитивен, Создать файл, написать текст, сохранить в нём - невозможно без чтения справки. В общении с vim машина - главный, а человек - слуга.
Правильный подход - emacs, notepad и где угодно ещё. Где есть текст и есть отдельно работа с текстом и можно работать, не зная ни одной горячей клавиши.
> Это каким же безголовым надо быть, чтобы потеряться в правильно разложенных по директориям нескольким сотням файлов?
Желаю успеха в переименовании одного класса в проекте из > 500 файлов.
> Это один черт должен делать аналог make.
Желаю успеха в выучивании 100500 команд ant, maven, sbt и всего прочего зоопарка.
> Господи, зачем? Чем отладочноая печать-то с реплом не устраивают?
Для компилируемых (хотя бы в байткод) языков - практически всем.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
Чо, серьезно? ха-ха-ха. У вас прелестное чувство юмора.
>Это каким же безголовым надо быть, чтобы потеряться в правильно разложенных по директориям нескольким сотням файлов?
Ну вот я такой безголовый. Особливо когда файлов есть несколько тыщ, тогда я вообще теряюсь. А еще бывает их надо в разных позах и комбинациях компилировать. Вам-то легко, наверно, раз-два, в десятке мейков строк 200 подправил и снова свеж, как огурец. Но не все ж такие супермены.
>Это один черт должен делать аналог make.
У меня есть для вас сурприз - нормальные ИДЕ это таки надстройки над мейками.
>Господи, зачем? Чем отладочноая печать-то с реплом не устраивают?
Ну хочется иногда сложные структуры данных проинспектировать на предмет содержимого - без вбивания миллионов строк распечаток, которые между прочим тоже того .. ресурсы жрут и синхронизации сбивают. Вот у меня был случай - одна системка на очень слабом камешке была настолько хилой, что распечатки занимали около 50% ее времени. Пришлось их почикать и дебажить очень осторожно, иногда с дебаггером, иногда методом ловли льва в пустыне.
(no subject)
(no subject)
(no subject)
(no subject)
no subject
А они неправильно разложены. Вот как передали вам проект - он такой и есть.
>vim
wq!
бибикать и все портить
>Господи, зачем
А вы никогда сложный gui не писали, наверное.
no subject
no subject
no subject
Единственный осмысленный случай применения наследования - перекрытие реализации по умолчанию - в хаскеле есть. Больше там говна этого нет, поскольку это не ООП-язык (и слава богу), и тащить туда ООП могут только больные ООП головного мозга.
Я, конечно, в курсе, что подавляющее большинство эмагаров расчитывают именно на ушибленых в голову, но право же, есть и другие решения.
no subject
Неверно. Наследование нужно, чтобы тысячу раз не писать один и тот же код.
Реализовывать можно по разному. Можно жёсткое, как в C++/Java. Можно duck typing, как в Go. Можно как в Python. Можно через прототип как в JavaScript. Но везде одно и то же преимущество: можно унаследовать, использовать родительский код и не задумываясь создать в любом месте программы.
В Haskell этого нет и не будет. В каждом случае надо отдельно ломать голову - как бы это написать, чтобы уважаемый язык соизволил понять, какой тип в данном случае нужен.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
1. удобно делать рефакторинг и кодогенерацию типовых блоков - экономит время.
2. автокомплит и проверка банального синтаксиса.
3. не держать в голове все функции и виды/типы аргументов для функций, в том числе внешних (из модулей)
4. Запускать/собирать проект кнопкой, а не сваливаться в консоль.