?

Log in

No account? Create an account
Обзор языков - 2018 - Дважды мудак [entries|archive|friends|userinfo]
Декларативное рулит

Site Meter

[ website | Мой сайт ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Обзор языков - 2018 [янв. 21, 2018|18:22 pm]
Andy Melnikov
[Tags|, , ]

Если писать не о чем - напишите обзор ЯП на основе какого-нибудь измерения пиписек в попугаях!

Берем Tiobe index и группируем "по семействам". Получаем:

- Нестыдные языки для промышленных зрелых практиков с кредитом и детьми. На собеседовании ничего объяснять не надо: Java/C++/С/C#/Python/Javascript/PHP/Ruby/SQL

- Нишевые языки, надо объяснять что это за язык и что за ниша и что это не такая и экзотика: R/ Swift/Objective-C/Matlab/Scratch/asm/Go
- Лигаси языки: VB.net, Perl, Delphi

Из нестыдных можно вычеркнуть языки, вместо которых можно учить аналогичные: C, C#, PHP, Ruby учить не нужно. Получается, что нужно: Java, C++, Python, Javascript, SQL. Причём имеет смысл учить комплектами:

- С++ самодостаточен
- Java+Javascript
- Python+Javascript

SQL это как бы не "язык", а "технология", наряду с noSQL и ORM и даже (с натяжкой) мессаджингом и прочим миддлваре. Аналогично HTML/CSS/DOM. Короче они в отдельном от языков списке изучения идут, примерно в том же, где и алгоритмы с проектированием.

В-общем, ничего нового, этот список (С++, Java, Python, Javascript, SQL) не менялся наверное последние лет 10. В 1998 был бы скорее С++, Perl, Scheme, SQL.

Кроме этого списка есть список 9 языков, на которых можно начинать новые проекты в 2018, который я составил, используя modulecounts.com:

Первый эшелон (либ больше чем в перле): Java, C#, Python, Ruby, NodeJS, PHP
Второй эшелон (либ меньше чем в перле): Clojure, Go, Rust
Эшелон упоротых (либ меньше чем в расте но хоть сколько-то): Haskell, R и Erlang.
Эшелон альтернативно упоротых (там совсем по-другому): С, C++

Причём Раст догнал и перегнал хаскель (идущий в ногу с R) за последний год. А в Эрланге в 3 раза меньше пекеджей чем в х-е ("по версии modulescount")

Ещё можно составить список "почётных провалов":
- idris, coq/ocaml, ats
- elm, purescript, typescript
- D, lua, scala, kotlin, julia

Если вычесть из списка топ-50 языков тиобе вышеперечисленные, то останутся:

Странные "проприетарные" языки: Apex, SAS, Codesys
Матерые старички: Lisp, Bash, Prolog, Tcl, VHDL, ActionScript, COBOL, ABAP, Logo, Ada, REXX, Fortran, LabVIEW
Всякие невыстрелившие: F#, Groovy, Hack, Dart, Alice

Призы зрительских симпатий уходят ноде, тайпскрипту, элму, расту, го, haxe, flow, codesys, перлу, vb.net и котлину!

Кстати, есть ещё языки, на которых (в определённых кругах) писать нельзя. Это:

- лиспы (скобочки!)
- перл, с++, javascript (большие неконсистентные языки)
- С, С++, D, Rust (нет gc или безопасности памяти)
- haskell (avoid success, ленивость, утечки, баги, борьба с тайпчекером, отсутствие инструментов)
- С, С++, С#, Java, Python, Delphi (низкоуровнево). Даже х-ь иногда (от любителей кдб, например)
- Python (кривые замыкания)
- все языки за пределами нестыдных (по причине стыдности)
- нода (т.к. евент дривен и жабоскрипт и либы написаны идиотами)
- руби, го (хипсторы и подвороты)
- похапе
- Rust (надо писать на Go)
- Go (gc же богомерзкий)
- Typescript (негодная система типов, надо писать на flow)
- Flow (он не развивается, надо писать на тайпскрипте)

В-общем, в зависимости от того, кого вы спрашиваете, нельзя писать вообще ни на чём!

Upd: тут подбросили ссылку на DOU: https://dou.ua/lenta/articles/language-rating-jan-2018/

Ну и там неприятные новости для упоротых:

- оставьте С для эмбеддеда, низкоуровневых либ и иных спецприменений: только С++, только хардкор!
- Python и PHP живее всех живых
- С#, притом это вовсе не емакс и моно, - 15% всей работы и 3-е место после жабы и жс
- в топе святая шестерка - Java/C#, Javascript/Python/PHP, C++ (и там же SQL на самом деле™)
- хотите промышленной зрелой экзотики - добро пожаловать в Typescript, Go, Ruby, Scala
- мобло - это Swift и внезапно Kotlin, причем если про котлин не совсем понятно - то Swift опередил Objective-C
- Delphi и 1C ещё встречаются
- в "совсем уж экзотике" в Украине значатся Closure и R
- из лигасёвого лигаси только перл

Upd2: Scala, Typescript и Kotlin - внезапно не провалы
СсылкаОтветить

Comments:
[User Picture]From: jakobz
2018-01-21 11:30 pm
На ноде писать нельзя же. Это даже изначальный автор ноды признал.
(Ответить) (Thread)
[User Picture]From: permea_kra
2018-01-22 12:12 am
Линк/цитата?
(Ответить) (Parent) (Thread) (Развернуть)
From: blueher
2018-01-22 02:05 am
Почему typescript-то провальный? Лучшая из попыток сделать пулю из гавна джаваскрипта, как по мне. Ну и растет и развивается, и вменяемых статей вида "мы попробовали тайпскрипт и вернулись на джаваскрипт" я что-то не припомню.

Да, и с котлином та же ситуация как мне кажется.
(Ответить) (Thread)
[User Picture]From: metaclass
2018-01-22 04:26 am
(Ответить) (Thread)
[User Picture]From: swizard
2018-01-22 10:05 am
Я бы не воспринимал всерьёз подобного рода обзоры.

В них есть одна центральная общая для всех проблема: "Посмотрите — вот я, такой матёрый разработчик, прямо зубр, да я сетевые сервисы с конечными автоматами пишу прямо во сне, да мне сервер для ирки накидать задача на сорок минут, и я вот такой весь из себя красивый взял Rust и ебался с ним четыре дня, и нихуя не вышло!!!".

Ну разумеется, у него ничего с мороза не получилось, как не получилось бы и на хаскеле, на каком-нибудь pony lang или ATS, или даже эрланге.

Потому что сначала необходимо сесть и аккуратно разобраться с тем, как именно работает инструмент, и на каких идеях он изначально построен. Когда такое понимание приходит, программирование становится довольно тривиальным процессом, но без такого понимания это именно что "бесконечная ебля с борров-чекером", "бесконечная ебля с монадами" и так далее. Для языков, которые построены на одинаковых принципах (условно, питон и руби) кривая обучения будет минимальна (из серии, запомнить другой синтаксис), а для тех, которые на разных — будет максимальна.

Но вот такие "матёрые разработчики", зачастую, просто не допускают мысли, что они могут чего-то не понимать (потому что груз опыта адски давит) — следовательно, это язык спроектирован хуёво, ну или, там, Путин снова виноват.

Я практически уверен, что напишу сервер для irc на расте за полчаса, но я так же вполне допускаю, что чтобы сделать то же самое на условном Идрисе, мне понадобятся те же четыре дня (или даже больше), чтобы во всём детально разобраться. Это нормально, так жизнь устроена — я не буду потом писать разгромные сравнительные статьи на тему почему Идрис говно.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: binf
2018-01-22 04:33 am
Elm не провальный, на нём даже работу джунам в сбербанке в москау дают. И он клёвый

И ещё вы почему то Codesys забыли упомянуть в разделе "Нестыдные языки для промышленных зрелых практиков"

Edited at 2018-01-22 06:42 (UTC)
(Ответить) (Thread)
[User Picture]From: nponeccop
2018-01-22 04:33 pm
> почему то

потому что его нет в тиобе топ 20 и средний собеседующий будет явно не в курсе. ada тоже скажем там нету. Идёт максимум в нишевые

(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: thedeemon
2018-01-22 02:05 pm
Половину прошлого года я писал почти исключительно на Haxe. Т.к. он тут не упомянут, значит он неговно и на нем писать можно. :)
(Ответить) (Thread)
[User Picture]From: _slw
2018-01-22 02:52 pm
а как котлин успел попасть в провалы? не слишком ли он молод для вынесения суждения.

кстати, почему питон не относится к легаси? это ж паскаль натуральный по ощущениям
(Ответить) (Thread)
[User Picture]From: nponeccop
2018-01-22 05:23 pm
> а как котлин успел попасть в провалы?

как заматереет - вычеркнем!

> почему питон не относится к легаси?

На нём делают новые проекты - т.е. он не из серии «я не помню статей "для нашего нового проекта мы выбрали X...."»
(Ответить) (Parent) (Thread)
From: vinslivins
2018-01-22 03:55 pm
а вот агда вот так не умеет

(Ответить) (Thread)
From: blueher
2018-01-24 05:35 am
> мобло - это Swift и внезапно Kotlin, причем если про котлин не совсем понятно

Что ж тут непонятного-то?

https://www.theverge.com/2017/5/17/15654988/google-jet-brains-kotlin-programming-language-android-development-io-2017

С такой-то поддержкой и Perl внезапно станет популярным ;)
(Ответить) (Thread)
From: blueher
2018-01-24 09:30 am
> Upd2: Scala, Typescript и Kotlin - внезапно не провалы

А вот скала как раз провал - пишут на ней мало и видим что последние 2 года стремление на ней писАть сильно просело - это КМК потому что Котлин появился который в общем и целом "скала для пролетариата".
(Ответить) (Thread)
[User Picture]From: nponeccop
2018-01-24 03:00 pm
> А вот скала как раз провал

Пфф, по сравнению с другими языками списка "почётный провал" Скала очень даже не провал! Всё, что вообще попало на DOU это не провал.

> Котлин появился который в общем и целом
> "скала для пролетариата".

Вот с котлином поэтому и было непонятно. То ли это просто vendor recommendation под Андроид и юзается исключительно на мобле вместо того что там было раньше (как Swift вместо Objective-C на iOS). То ли это просто новый язык для JVM, и он также юзается вполне самостоятельно в тех местах, где раньше была Java, Scala и Clojure (и Groovy, но его в украинских аутсорсных реалиях по-видимому столько же сколько хаскеля)

Edited at 2018-01-24 15:02 (UTC)
(Ответить) (Parent) (Thread) (Развернуть)