Как стать автором
Обновить

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

Полумёртвый? Вы серьёзно? Язык жив, пока выходят новые версии трансляторов и библиотек, пока есть ниша, в которой он играет главную роль и пока есть сообщество, им пользующееся. Спешу вас обрадовать, с этим у Haskell всё хорошо.


  • Загляните на сайт Haskell Weekly где каждую неделю приводятся по два десятка новых (лучших) статей с разных ресурсов, по тридцать конференций во всём мире — еженедельно!
  • Новая версия ghc вышла только в ноябре.
  • Основной репозиторий Hackage стабильно пополняется.
  • Существует вполне отчётливое видение развития языка.
  • Два года назад вышла блестящая книга Haskell programming from the first principles, поднимающая преподавание ФП на новый уровень.
  • Reddit-сообщество включает в себя более 30 тыс. участников и растёт, производная не велика, но положительна.
  • Существует активное русскоязычное сообщество.
  • Наконец, подавляющее большинство научных статей в области ФП и теории типов формулируются с помощью Haskell.

Со своей ролью языка исследований в этой области он справляется блестяще! А вот Prolog, увы, действительно, полужив-полумёртв, хотя буду рад ошибиться.

Ну нельзя же принимать так близко к сердцу такие очевидно нелепые высказывания (про «полумертвый Хаскель»). Тот кто это написал или тролль, или просто очень недалекий человек, обиженный на то что не смог осилить.

Зато какой прекрасный повод сделать современный дайджест в этой области! Тема на статью не тянет, а обратить внимание хочется. Понятно, что каждый варится в своей отрасли и отслеживает свои новости. Я, правда, был бы рад узнать, что творится в мире логического программирования в подобной сводке.

Я очень люблю первые комментарии на Хабре под любой статьей. Немного напоминают комментарии на Ютубе в смысле доброжелательности и компетентности :-)

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

Признаться, меня виртуальные машины в общем заинтересовали немного с другой стороны — как повод погрузиться в общение с физическими машинами, их регистрами, хитрыми наборами инструкций, внеочередным исполнением и т.д. Если Хаскелл — свобода мысли, то Си и виртуальные машины — свобода от высокоуровневых абстракций, за которыми не видно процессора и иже с ним.

В любом случае интересно, что к тем же вопросам можно подойти с совершенно другой стороны!

Это всегда здорово: выйти на знакомую площадь новым путём — так по-настоящему узнаётся город. Я грущу, когда противопоставляют абстракции и нечто "реальное". В такой позиции не видно общей картины, а без этого не заглянуть глубже ни в абстракции, ни в реальность.

Почему же именно противоставляются? Абстракции полезны, очень нужны и без них — никуда. Те же парсеры на языках из семейства ML делаются не в пример удобней, чем на потомках Алгола.

Но, согласитесь, в Хаскелле трудно учесть число вычислительных блоков процессора при развертывании цикла!

Конечно, поэтому на Haskell не пишут трансляторы для железа. На нём пишут Idris, а на OCaml пишут Coq.

Говорят, компилятор языка Haxe тоже на OCaml :-)
У Си модель памяти отличается от модели памяти процессора. Хотя бы потому, что процессоры разные, а Си одинаковый. Попытка писать на Си для unreal mode, например, почти гарантировано обречена на провал.
Если вы про то, что у современных настольных x86-ых процессоров 5 видов памяти (винт, оперативная память, три слоя кеша), а Си из них видит только 2 (оперативная память и винт), то да, конечно, это в модели видно плохо.

Это и на ассемблере не особо заметно будет.

Режим процессора unreal я, признаться, с детства не встречал.
Это специальный режим работы процессора, когда память не настроена. Задача кода — настроить память. Можно использовать только ппзу и кеш как стек (вроде бы, как стек — могу путаться). Ну и регистры.

Плюс такой же режим у процессора при входе в код обработки SMM.

Вообще, я не понимаю какой операцией в Си производится смена 16-битного режима (real) в 32-битный, например. Все указатели становятся тыквой — и язык этого не понимает.
я понимаю, что это за режим :-)

Но требовать от любого языка (в случае) общего назначения поддержки специальных режимов работы каждого из существующих процессоров — странно. Подозреваю (т.е. точно знаю), что в популярных ОС те небольшие участки кода, где это реально требуется, пишутся на ассемблере.
Разумеется, на ассемблере. Я просто возмутился тезисом, что «Си и виртуальные машины — свобода от высокоуровневых абстракций, за которыми не видно процессора и иже с ним.»

В Си тоже не видно.
Тогда можно сказать, что процессор плохо видно даже из ассемблера, т.к. микрокод писать все равно низя :-) Си тут относительно немного слоев добавляет.

Думаю, вы поняли, о чем именно я говорил. :-)
Превращение указателей в тыкву как раз не беда, «лечится» барьером памяти и аккуратностью программиста. Смена модели памяти, да и в принципе существование сразу двух моделей памяти в одной программе куда серьезнее.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории