Будущее программирования? Оно уже перегоняет настоящее, но не все это понимают и быстро отстают

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2018-12-01 14:04

разработка по

Узнаем свежее мнение Simon Peyton Jones, ведущего исследователя Microsoft и ключевого контрибьютора в Haskell. Кстати, участие в разработке хаскеля -- это совсем не следствие того, что он топовый рисёчер в микрософте, а наоборот причина. Он стал ведущим научным спецом как раз потому, что развивает Haskell, а не то что взяли в корпорацию на формальную должность, и он вдруг ударился в fp.

Функциональное программирование FP сильно отличается от классического, даже не столько в языковом плане, сколько стилем. Можно и в питоне и в шарпе отлично кодить как на функциональном языке. Отличие в том, что мы отказываемся от акцента на любых глобальных состояниях, в сторону схемы передачи всех значений в функции и комбинирования их результатов.

FP не говорит, что и как будет работать, FP по сути показывает: "результатом будет вот это". Simon предлагает метафору экселя: там нету последовательностей шагов, только цепочки вычислений, которые в итоге и выдают вам конечный результат.

Языки FP -- это отличная платформа, на которой мировое коммьюнити тестирует новые идеи. Эти языки отличаются компактным интеллектуальным, математическим ядром. Они предлагают очень мощную модель вычислений, на основе которой можно реализовывать весьма сложные и продвинутые концепции. Множество идей, воплощённых сперва в Haskell и OCaml, сегодня доступны в мэйнстриме. Генерики в Java, Linq в C#, сборка мусора, параметрический полиморфизм и ещё десятки других:

https://vk.com/wall-152484379_610

Отличный тренд, которым порадовал Simon -- это регулярное усложнение систем типов и в массовых языках, и в FP.

Создание всё более и более сложных типов, оптимизация алгоритмов их обработки -- это выраженное направление развития в современной софтверной промышленности.

Я именно на этом и делаю акцент на всех курсах! От простых, элементарных типов на начальном курсе с нуля, затем базовые, более сложные структуры данных, списки-очереди-деревья-графы-..., и дальше постепенное усложнение, до нейронных, квантовых, AST итд.

https://vk.com/topic-152484379_38315158

Более того, топчик даже в машинном обучении -- это совсем не TensorFlow или PyTorch. Топчик -- это вот это:

There's a company down the road in Cambridge called Maplesoft, who built a compiler written in Haskell that's something to do with their machine learning. They do really scarily clever things with Haskell types.

Да, Хаскель всё ещё остаётся сильно нишевым языком, но вот именно в 2018-м году можно наконец заявить, что известная 27 лет шутка юмора, что в мире насчитывается семь вакансий для хаскелистов, более не актуальна. На хаскель сегодня активно хантят например Bloomberg, Google, Facebook, где фильтрация спама реализована на нём, а в Оксфорде (откуда Simon Peyton Jones), напомню, обучение профессиональному программированию - с нуля! - начинают не на Python или Java, а на Haskell. Компаниям приходится постоянно бороться со всё усложняющимися кодовыми базами (в Гугле накоплены уже миллиарды строк кода) и highload-системами, и наилучшее качество, хотя и дорогое, пока обеспечивают именно функциональные подходы.

Что же изменилось в мэйнстриме, что переходит из количественного измерения в качественное? Люди просто стали гораздо больше заботиться о создании софта, который хорошо работает. Конечно, об этом думали всегда, но когда был массово достигнут некоторый критический порог объёма систем, их сложности, оказалось, что сохранять целостность огромной системы правильнее всего с помощью FP.

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

Но что из всех этих довольно абстрактных рассуждений полезно конкретно нам? Дело в том, что закон Мура в этом году скончался

https://vk.com/wall-152484379_699

И вот в computer science, да и вообще во всём мировом ИТ-хипстерстве, началась паника, а что придёт на замену? Завтра я расскажу, какой стиль мышления после алгоритмического (включая и функциональное) надо срочно развивать, чтобы мастерство в Матрице способностей программиста росло в правильном направлении. ШАД отдыхает!

Подпишитесь на еженедельную рассылку чтобы не пропустить:

https://vk.com/app5728966_-152484379


Источник: m.vk.com

Комментарии: