Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Categories:

От чего бежать (языки)

Тут наш фашист-консультант сделал наброс типа по тру и не тру технологиям, прошлому и будущему.

Я придумал альтернативную мудаческую схему реальности. Есть академия - пишут "в стол". Есть хипсторы - пишут свистопердящую никому не нужные но красивые игрульки. И промышленные зрелые практики - пишут мейнстрим.

Специальный поощрительный приз достается ретроградам - тем кто хочет попасть в мейнстрим сделав шаг назад и пережевав заново и спрыснув парой нововведений в принципе устаревшие концепции.

- Академия Хипсторы Мейнстрим Ретрограды
Прошлое ML, Coq, ACL2 CL, Ruby, R Сobol, Perl, Ada, C, C++ Scheme, VB6/.Net, PHP, Java, ObjC, D
Настоящее GHC Node, Scala, Erlang C++, Python, JS, Java, PHP С99, Go, Rust, Swift, Dart
Будущее F*, Z3, Lean Purs, Jupyter, Polly C++/OpenCL/OpenAcc, C#, Python, JS, TS


Тут надо комментировать каждую клетку

Академия прошлого - почётная клетка, занятая кондовыми зрелыми инструментами, у которых нет иного будущего кроме как оставаться кондовыми зрелыми инструментами пока не придумают что-то лучше. Реально унылое говно, но это всё, чего может дать академия работающего. В значительной степени "французская" клетка имени Инрии.

Хипсторы прошлого - CL это совсем далёкое прошлое, Ruby полупрошлое а R вот недавно. Имхо всё же R уступит своё место Питону. А там, где у питона кишка тонка - R уступит место всяким Julia under Jupyter. Джулии нет нигде в табличке, поскольку я вижу её, как чуть более прогрессивную и менее убогую сестру R, Питона и Матлаба.

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

Ретрограды прошлого - ретрограды, с которыми всё ясно. PHP и Java успешно выполнили ретроградскую миссию и попали в мейнстрим, VB6 умер но VB.Net поддерживается в коме, ObjC если б не монополия/диктаторство Эппл тоже бы умер.

Академия настоящего - тут академия у которой есть шанс попасть на место Инрии в будущем. Я к сожалению мало знаком с академией, которая с одной стороны достаточно прогрессивна, а с другой стороны - работоспособна. Но GHC этому условию удовлетворяет. В отличие от всяких говноидрисов и прочих попыток избежать написания ленивого редуктора. Думаю GHC к 12 версии превратится в унылое но уже совершенно рабочее и зрелое говно.

Хипсторы настоящего - со Скалой проще всего. Если унылые энтерпрайзники жабошарпопитоновые собрались и решили писать стартап во имя блага всех существ - будут писать на Скале пить дать. Эрланг это для лиспорубепохапепитонистов решивших выпендриться. Нода достаточно забавна поскольку по сути лингва франка и не пишет на ней только ленивый лжавист или сишарпник. Для тех же плюсовиков скажем libuv подарок судьбы. Как в конце 1990-х на С++ разве что сайты не писали. Имхо всё из этой клетки просто со временем перекочует в "хипсторы прошлого". СL вот тоже достаточно хорош и хипстотен, но у него нет яркого будущего. Как и у ноды.

Мейнстрим настоящего - тут всё понятно, только нет Рубей, Р и С#. C# в мейнстриме по всем параметрам, но юные веб-падаваны не в курсе того что винда нужна и считают C# маргинальным, хоть он в первых строчках как не считай. Но МС продавливает его на линукс как Сан продавливала джаву куда только можно, и я считаю продавит.

Ретрограды настоящего - все на слуху (кроме может Dart и Swift). C99 отдельная категория. Это мейнстрим, но с ретроградским уклоном, и его адептов можно разделить на 3 категории: рокет саентисты, показывающие зиллионы попугаев там где конкуренты гордятся что у них овер 8000 или на самодельной гармонике играющие лучше чем иные на покупной, жертвы (например эмбедщики у которых просто вендор не написал кроме С ничего другого) и ебанаты (там как GNU-сексуалисты, так и школота жизни не видевшая, олд скул юникс вейщики, и просто упоротые - в общем в сортах специалистом не являюсь). Раст, свифт - можно сказать продолжатели своих соседей этажом выше (D и ObjC). Dart, Go - унылые высеры а ля PHP/нода но got traction.

Будущее лучше в обратном порядке описывать. Я вот не знаю что будет логическим продолжением ретроградской колонки. Ждём пока текущие начнут обсираться и будут предложены новые на их место. Я болею за C99 (может станет гошечкой), Go (может станет си для дебилохипсторов) и Rust (может присоединится к С++ в упоротых конторах, неупоротые говорят что в принципе юзабельно уже сейчас или через год будет).

Джава останется мейнстримом, но превратится в глазах общественности в унылый мейнстрим типа похапе сейчас. Т.е. станет "мейнстримом прошлого". Её место займет C#, в который будут вливать не рандомно-базарные фичи JSR а всякие няшки из ресёрча типа монад компрехеншонов Linq. Ну и под линухом МС запилит с JVM оракловской вряд ли победу - но уверенную ничью. А то и JetBrains купит - на такие кинжалы в спину МС горазда.

Python таки заборет R и Ruby, особенно в свете истерии machine learning. JS станет подобием чистых сей для ебанатов, а TS подобием C++ для промышленных зрелых видавших жизнь практиков с детьми которые будут юзать дремучее и уебищное админподмножество (заметьте и тут длинная рука MS).

Академия - вы не поверите, снова проклятые авторы ОС которой никто 10 лет в глаза не видел по мнению школоты и юниксофагоы, если не задали общее направление - то имеют достаточно типичных представителей направлений в своем портфолио.

Lean - в целом направление MLTT-пруверов с уклоном в HoTT

Z3 - направление ультрафинитных слабых логик и арифметик, типа битовых векторов SMT-LIB, я вижу очень перспективным. Долой мракобесие натуральных чисел и Тьюринг-полноты!

F* - направление gradual semi-automatic verification, гибрид модел-чекера, refinement typing, наколенного стат. анализатора и предыдущих двух направлений в рассчёте на экспорт в Бангалор.
Tags: fp, programming
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 398 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →