Офигевая от простоты

Jan 13, 2015 07:08


Олег тут почитал вот это про Максима и их наработки в synrc и прифигел, а я хочу заметить, что это очень показательный пример:

Чтобы сделать что-то существенное, не обязательно нужно много кода.

Если взять язык, в котором почти ничего нет (Эрленг), то кода автоматически будет получаться мало - логично. Неочевидно, что это не обязательно идет в ( Read more... )

девелопмент, очень просто, неонка included, изолента, формула успеха

Leave a comment

Comments 47

... anonymous January 13 2015, 04:55:50 UTC
Можно ещё пофантазировать на тему того, чтобы вообще не программировать, а просто говорить компьютеру, что нужно и он будет делать. Вот это я понимаю конечная цель!
А на практике есть целый класс систем, которые очень трудно разбить на какие-то переиспользуемые "примитивы". Те же компиляторы -- очень плохой пример. Можно ещё вспомнить операционные системы, браузеры, sql базы данных: всё это большие монолитные системы, отдельные части которых чаще всего отдельно от проекта не имеют смысла.
Кстати, мне не очевидна прямая связь количества строк кода и простоты. Можно написать очень сложный для понимания/модификации код, который при этом будет довольно небольшим. А при помощи кодогенерации можно получить огромные исходники. При этом во втором случае возможно, что изменения будет внести проще, чем в первом.

Reply

Re: ... anonymous January 13 2015, 05:16:02 UTC
Компиляторы - хороший пример, потому что компиляторы тоже можно писать по-разному. Можно - жуткой лесенкой из свитчей и ифов, а можно - просто и лаконично, используя паттерн матчинг.

Писать компиляторы на Эрланге/Хаскеле/Окамле - хорошо, приятно, быстро. Писать компиляторы на Си - плохо, криво, и долго.

Reply

Re: ... anonymous January 13 2015, 15:47:22 UTC
Это сейчас о настоящих компиляторах языков программирования или игрушечных, которые можно написать за обозримое время в одиночку? Паттерн матчинг может немного сократить количество кода в некоторых местах, но не радикально.

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

Reply

Re: ... northern_witch January 13 2015, 05:56:37 UTC
К тезису о связи количества строк кода и простоты: http://www.kparc.com/ ;-)

Reply


thedeemon January 13 2015, 06:10:28 UTC
>А в Clojure всего 60 000.

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

Что до maxim'a, я знаю истинную причину лаконичности и простоты его решений: он все пишет в MC editor'e, писать много букв там не получится, руки и глаза отвалятся. Язык тут не при чем. :)

Reply


thedeemon January 13 2015, 06:20:02 UTC
>Весь CouchDB - это 20K строк на Эрленге, у них в репозитории bash-скриптов вокруг этого больше, чем собственно приложения.

Так и запишем: в CouchDB более 40К строк, и более половины кода на баше.

Reply

binf January 13 2015, 06:54:21 UTC
овер 20к строк на баше - это адъ. Уж лучше джава

Reply


anonymous January 13 2015, 06:21:03 UTC
Или вот, простота. Модное фп считается простым, а немодное ип сложным, даже в самых простых инкарнациях. Меры нет, все на эмоциях, вау как круто, тыща строк под сложный рантайм эрланга (на чем написан, кстати?) это КРУТОКРУТО. Как оранжевые гевалюциии. Не зря кстати логотип хаскелля напоминает зигующего нациста. Культурный бэкграунд ФП это просто живой пример сегрегации мозгов на тех кому 'ваупростокруто' и на ваех остальных немодных.

Reply

binf January 13 2015, 07:20:24 UTC
но в ФП действительно сложные вещи делаются значительно проще чем в ИП. ФП для прототипов, ИП - оптимизированный продакш, нужно и то и то знать.

Reply

anonymous January 13 2015, 07:48:55 UTC
Техническая часть противососания ИП/ФП отходит на второй план.

Reply

binf January 13 2015, 08:02:29 UTC
такое "противостояние" существует исключительно на уровне безответственных интернетных срачей. Не обращайте внимания.

Reply


binf January 13 2015, 06:59:55 UTC
вот тока я не понел, в чом фишка именно эралнга и кложи, чтобы задрачиваться на них, создавая веб-фреймворки, распределённые службы и проч. Если в моей голове есть классный алгоритм, чего это я не могу записать его на хаскеле или С#, нафига мне упарываца эрлангом ??

Reply


Leave a comment

Up