hcdev

hcdev

https://t.me/hcdev


Elixir vs OOP

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

Макс

Perl, PHP, JS, C/C++, C#/Java, Haskell

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


1. Язык должен быть интерпретируемым. Хороший язык не заставляет программиста ебаться с компиляторами и прочим ненужным говном, позволяя сфокусироваться на основной задаче — программировании (запиливание параши - программирование).

2. Нет никакой типизации. Максимально допустимая — как в перле. Как сказано выше, хороший язык позволяет программисту не отвлекаться на хуйню и заниматься непосредственно делом (программированием).

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

Исходя из вышесказанного, примерами хороших языков программирования можно считать, например, PHP и JS.

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

Примеры уёбищных языков программирования - Java, C#.

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

Примеры говна, не имеющего отношения к программированию - C, C++.

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

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

Макс

Go

Да, попробовал го. Начал писать простенькую программу для отображения различных клеточных автоматов на маленьком светодиодном экране raspberry pi. Из впечатлений:

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

2. Своеобразный синтаксис, который с одной стороны си-подобный, а с другой - нет. Непонятно зачем было так делать. 

3. Нету итераторов (!!!) из коробки и вообще их поддержки. 

4. Странный и не красивый синтаксис для обьявления всех (!!!) встроенных типов коллекций. 

5. Самих коллекций очень мало. Три разных типа - это совершенно не достаточно. Нету сортированных мапов, нету конкурентных коллекций вообще. 

6. Местные интерфейсы - считай полный аналог тайпклассов, концептов и тому подобного. Это хорошо.

7. Без параметрического полиморфизма сложно писать типобезопасный код даже с интерфейсами. Даже на очень простом примере с расширяемой программой для показа клеточных автоматов. Это плохо.

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

9. CSP хорошо вплетено в язык, работает вроде стабильно и предсказуемо, как минимум, на маленьких примерах. 

10. Сам рантайм и тулинг пока показали себя хорошо, поставились нормально. 

11. Приложения стартуют быстро, прогрева и старта VM не требуют, как некоторые другие платформы

12. Нету прям стандартной организации кода в рамках проекта. Из проектов, виденных на гитхабе, одни по одному бились по папкам, другие по другому. Странно для языка, где у всего есть только один правильный путь. 

13. Вообще заметно, что язык очень не выразительный и то, что это мешает авторам библиотек и фреймворков. Посмотрите на тот же gorm и остальные orm там. Всё там делается через строки, лол. При рефакторинге 100% будет полный ад. Современные ОРМ от этого сейчас отходят. Вон, см. EF в шарпе, JooQ в джаве, slick в скале. 

Тут же нету ни проксей, ни кэшей, ни change tracking'а, ни UoW, ни альтернативных к ним подходов (DBIO), что на общей производительности приложения скажется очень сильно. С IoC та же грустная история. 

Если в кратце, то для перекидывания байтиков и утилит командной строки подходит, для сложный библиотек и фреймворков - хуже, для энтерпрайза - вообще никак.

Doge Shibu

Clojure

Ок. Пробовал как-то давно кложу. Особо много на ней не писал, но писал на других лиспах, а они все похожи.

Единственный живой лисп на сегодняшний день. Что запомнилось:

1. Добавили внезапно свой синтаксис для других коллекций, кроме списков. Имхо, в лиспе нафиг нужно, но сильно хуже не сделали.

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

3. Хорошие встроенные иммутабельные коллекции, сделанные с умом.

4. В отличие от какого-нибудь common lisp, вправду пытается быть функциональными языком. И это заметно.

5. Это лисп. Альфа и омега метапрограммирования, причем без особого геммороя или эзотерики. Это хорошо.

6. ((Это лисп) (за мощь метапрограммирования (платишь скобками)) (это плохо))

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

Doge Shibu

Report Page