metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2015-08-12 10:56 am

Запретить жабу, дотнет, пхп, перл и крестики, только ФП, только хардкор

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

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

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

[identity profile] thedeemon.livejournal.com 2015-08-12 05:42 pm (UTC)(link)
А зачем вакансии? Вы безработный? Если есть же уже работа, на ней появляются новые проекты, вот надо их и делать на хороших языках, а не продолжать спираль уныния. Человек в посте призывает к таким вот изменениям - менять что-то в существующих компаниях, а не искать уже готовые идеальные.

[identity profile] veremeenko-alex.livejournal.com 2015-08-13 06:59 am (UTC)(link)
1 . В нормальной компании за попытку начать новый проект на новом языке больно бьют.
За чужие деньги - пожалуйста, а за свои - идите лесом.
Кто будет развивать проект, когда ты в отпуске или уволился? Или проект пошел и надо добавить 100500 фич?
На рынке программистов на новом языке практически нет.

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

Edited 2015-08-13 06:59 (UTC)

[identity profile] metaclass.livejournal.com 2015-08-13 07:08 am (UTC)(link)
Первый пункт при неосмысленном применении за 5-10 лет приводит компанию в болото, с доисторическими жабами, коболами, дельфи и фокспро. Я понимаю, тупым дедам удобнее, "всегда так делали", но технический долг надо бы разгребать.

Функциональщина в имеющихся языках - это уныние. Макросы в C#? LINQ в жабе? Алгебраические типы данных хотя бы в одном из мейнстримных языков?

[identity profile] thesz.livejournal.com 2015-08-13 11:48 am (UTC)(link)
Не то слово.

Я недавно словил "выход за границы массива" в коде вида for (int i=0;i < s.Length; i++) { var p = QQ(c => c == s[i],p); }

Замыкания в C# замыкают не значения, а ссылки на переменные!

Исходил дерьмом минут двадцать, пока не понял, что это как Питоне.

Ужас. Даже в Лиспе нормальные замыкания с 1983 года. Куда эти плагиаторы смотрят?

(с другой стороны, tie the knot по другому в семантике C# не сделать, а он мне нужен)

[identity profile] metaclass.livejournal.com 2015-08-13 04:56 pm (UTC)(link)
>Замыкания в C# замыкают не значения, а ссылки на переменные!

Ооо, это известный прикол. "Вышел из цикла, и все переменные указывают на значение в последней итерации".
причем что-то вроде int j=i; внутри цикла от этого помогает.

[identity profile] thedeemon.livejournal.com 2015-08-13 04:57 pm (UTC)(link)
А где замыкания с _мутабельными_ переменными работают иначе?
Разве что в С++, где можно явно выбирать между ссылкой и копией.

(no subject)

[identity profile] metaclass.livejournal.com - 2015-08-13 17:12 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2015-08-13 17:20 (UTC) - Expand

(no subject)

[identity profile] pupsikk.livejournal.com - 2015-08-14 10:48 (UTC) - Expand

[identity profile] lispnik.livejournal.com 2015-08-14 06:00 am (UTC)(link)
В лиспе точно такие же замыкания.

(no subject)

[identity profile] thesz.livejournal.com - 2015-08-14 06:52 (UTC) - Expand

(no subject)

[identity profile] lispnik.livejournal.com - 2015-08-14 07:00 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2015-08-14 07:16 (UTC) - Expand

(no subject)

[identity profile] lispnik.livejournal.com - 2015-08-14 07:21 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2015-08-14 07:25 (UTC) - Expand

(no subject)

[identity profile] lispnik.livejournal.com - 2015-08-14 07:31 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2015-08-14 08:58 (UTC) - Expand

(no subject)

[identity profile] lispnik.livejournal.com - 2015-08-14 09:03 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2015-08-14 09:46 (UTC) - Expand

[identity profile] lispnik.livejournal.com 2015-08-14 07:29 am (UTC)(link)
Да, а что случилось в 1983 году? Я просто плохо помню это время :)

(no subject)

[identity profile] thesz.livejournal.com - 2015-08-14 08:54 (UTC) - Expand

(no subject)

[identity profile] lispnik.livejournal.com - 2015-08-14 09:00 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2015-08-14 09:44 (UTC) - Expand

(no subject)

[identity profile] lispnik.livejournal.com - 2015-08-14 09:55 (UTC) - Expand

[identity profile] rashid80.livejournal.com 2015-08-20 09:36 am (UTC)(link)
>for (int i=0;i < s.Length; i++) { var p = QQ(c => c == s[i],p); }
простите, что это за х_йня. Для чего тут цикл? что мешало вместо него сделать (for)each с лямбдой?

(no subject)

[identity profile] thesz.livejournal.com - 2015-08-20 10:28 (UTC) - Expand

[identity profile] thedeemon.livejournal.com 2015-08-13 07:30 am (UTC)(link)
Зачем ходить на рынок за "программистами на языке"? Берешь уже имеющихся в компании программистов и говоришь, что теперь им разрешено писать на том, о чем они давно мечтали. Тех, кто мечтал о джаве или похапе, гнать ссаными тряпками. :)
Edited 2015-08-13 07:35 (UTC)

[identity profile] worm-ii.livejournal.com 2015-08-13 09:27 am (UTC)(link)
... только от задачи поддержки старого никто вас не освобождал, приятного кодинга!

[identity profile] thedeemon.livejournal.com 2015-08-13 04:16 pm (UTC)(link)
Я потому и говорю про новые проекты. Если не превращать их в легаси с первого дня, то постепенно жить станет проще. А сейчас, в эпоху микросервисов, многие "приложения" можно и вовсе по частям обновлять, на другие языки переводить.

[identity profile] pupsikk.livejournal.com 2015-08-14 06:15 am (UTC)(link)
В таком случае рискуете остаться в гордом одиночестве.
Или в компании яваскриптодрочеров, что ненамного лучше.

[identity profile] northas.livejournal.com 2015-08-15 02:22 am (UTC)(link)
А потом ты закрываешься потому что понанисали говна в котором никто разобраться не может. Оно может на самом деле не говно, но никто в этом всё равно разобраться не может. По сути такой подход есть способ для обеспечения своей job security - если только ты понимаешь как оно работает то фиг тебя уволишь, пусть ты хоть в доту на работе режешься в открытую.

(no subject)

[identity profile] thedeemon.livejournal.com - 2015-08-15 05:00 (UTC) - Expand

[identity profile] thedeemon.livejournal.com 2015-08-13 07:48 am (UTC)(link)
>Зачем новый язык если многое есть в текущем или скоро будет :)?

Если подумать, очень правильный вопрос!
ML старше чем C++. Хаскель старше Питона. Окамл старше чем C#. Незачем со старой проверенной функциональщины переходить на эту новомодную хрень. :)

[identity profile] etoeos.livejournal.com 2015-08-13 08:43 pm (UTC)(link)
> 1 . В нормальной компании за попытку начать новый проект на новом языке больно бьют.

Ну так и не работайте в нормальных компаниях, если хотите функциональщину продвигать. В чем проблема?

[identity profile] jdudzik.livejournal.com 2015-08-13 12:50 pm (UTC)(link)
Даже под Scala нет нормальных IDE

- текстовый редактор + компилятор в командной строке - как в 1975. Убедитесь, что на терминале есть сточные буквы
- Eclipse - не умеет создавать группы проектов. Шёл 2015 год, а она по прежнему не умеет сделать так, чтобы два небольших проекта-интерфейса и общая библиотека.
- IDEA + Scala plugin - создаю новый Scala проект с SBT. IDE сообщает, что тип файлов SBT ей неизвестен. Если перезапустить, тип внезапно опознается. Но создать новый файл .scala - нельзя, в new только .java. Запустить - нельзя, нужно создать специальную настройку scala-проекта, которых два типа - и не один не работает. На сайте разработчика - мануал для предыдущей версии, таких окон и настроек давно нет.

Итого - средства разработки даже для более-менее мейнстримовой Scala - ад и пиздец, не доросший до уровня Borland C 1985 года выпуска (там можно 1) СОЗДАВАТЬ ФАЙЛЫ 2) ПИСАТЬ В НИХ ТЕКСТ ПРОГРАММЫ 3) ЗАПУСКАТЬ ИХ ИЗ МЕНЮ!!!!!!!).

Единственный функциональный язык, для которого есть IDE, а не пипец в командной строке - F#.

Языки станут популярней, когда IDE для них достигнут уровня 1985 года.

[identity profile] permea-kra.livejournal.com 2015-08-13 02:40 pm (UTC)(link)
Кто б мне объяснил, зачем нужна IDE...

[identity profile] jdudzik.livejournal.com 2015-08-13 03:05 pm (UTC)(link)
Кто б мне объяснил, зачем нужны трактора, если есть проверенная веками палка-копалка....

(no subject)

[identity profile] vp.livejournal.com - 2015-08-13 18:11 (UTC) - Expand

(no subject)

[identity profile] jdudzik.livejournal.com - 2015-08-13 18:41 (UTC) - Expand

[identity profile] thedeemon.livejournal.com 2015-08-13 04:20 pm (UTC)(link)
Чтоб переименовывать сущности не через поиск строк грепом. Чтоб find usages был годный. Чтоб автокомплит был умный, type-aware, а не лексический.

(no subject)

[identity profile] permea-kra.livejournal.com - 2015-08-13 16:39 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2015-08-13 16:50 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2015-08-14 09:03 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2015-08-14 10:57 (UTC) - Expand

[identity profile] metaclass.livejournal.com 2015-08-13 04:59 pm (UTC)(link)
Нужна, чтобы продать язык менеджерам и команде.
Хороший инструментарий сразу дает много очков.
Я вот обнаружил что rust не умеет делать и использовать отладочные символы под виндой - это гарантированные проблемы в будущем, когда надо будет в сдохший продакшен тупить.

[identity profile] anonim-legion.livejournal.com 2015-08-14 02:28 pm (UTC)(link)
Бороду брить надо, или хотя бы красить, чтобы седина не отсвечивала.

[identity profile] anonim-legion.livejournal.com 2015-08-14 02:29 pm (UTC)(link)
> два небольших проекта-интерфейса и общая библиотека.

Для этого вообще maven есть.

[identity profile] alexandr0.livejournal.com 2015-08-17 01:02 am (UTC)(link)
Из sbt проекты в IDEA вполне хорошо импортируются.
Кто хочет, использует Скалу для работы. Кто не хочет -- ищет оправдания.

[identity profile] alexandr0.livejournal.com 2015-08-17 01:06 am (UTC)(link)
У меня файлы отлично создаются и редактируются. ЧЯДНТ? Возможно, использую не ту ОС?