github.com И семи лет не прошло!
Оказывается, ведутся работы по исправлению проблем с безопасностью GeneralizedNewtypeDeriving Как вам такое:
The GHC versions appear too fast (last 13 years). If asked, I would ask to make them to appear 5 times slower.
например? Если бы так было в действительности — ghc-хаскель был бы все еще унылым компилятором унылого ML++ (ну это ладно, на любителя), так еще и без нормальных строк, массивов, GC, без SMP, поддержки юникода, без репл, вообще без всего и с производительностью генерируемого кода в 10-100 раз меньше чем сейчас. Ну, о чем еще мечтать-то?
Или вот:
If you want GHC to compete with GCC or Clang, then you know whatto do: stop experimenting with the language.
Наверное, уменьшение экспериментирования с языком здорово помогло mlton, clean и, в меньшей степени, ocamlopt потягаться c gcc и clang? Нет, не помогло? На самом деле mlton, clean и, в меньшей степени, ocamlopt умерли? Ну что же, слишком быстрого развития за последние 13 лет уже не поправить, а добавить в список мертвечины ghc вполне еще можно, если хорошо стараться.
Во-первых расширения используются любые.Да неужели? Много вы видели кода с использованием неявных параметров, например?
давайте тогда стандарт менять, а не расширять его каждые два месяца.Для того, чтоб принять новый стандарт языка, (назовем его Полезный Хаскель) нужно чтоб все эксперименты вокруг тайпклассов более-менее завершились и привели к более-менее логичной и стройной системе (это все уже на завершающий этап, похоже, выходит) . Нужно чтоб была решена проблема с тайплевел-программированием. сейчас там какой-то ад, угар и костыли. Типизированные/полиморфные кайнды — серьезный шаг, когда будет промоушен обычных функций — можно будет сказать, что и тут все более-менее нормальную форму принимает. Нужно также доделать стандартную поддержку дженериков и в частности автовывода инстансов для пользовательских классов — а не для какого-то ограниченного набора. но это не так остро стоит, как предыдущие две проблемы. Пока это все не сделано — новый стнандарт не принять.
В-третьих книги по языку почему-то значительно более консервативны.Потому, что книги консервативны в принципе и книгоиздательский процесс не справляется со скоростью развития языка и библиотек (тот же RWH сейчас полезен, как отрывной календарь 2008-го года.). Именно поэтому и существуют Бесполезные Хаскели 98 и 2010 — чтоб можно было написать книгу, примеры из которой будут компелироваться. Другого предназначения у этих "языков" и нет.
> В-четвёртых то как сейчас написана haskell platform заранее ставит крест на любой альтернативной реализации языка
Проблема тут вовсе не в расширениях, а в том, что написать компилятор хаскеля — нетривиальная задача требующая многих человеколет. Что характерно, ни одного нормального компилятора кроме ghc и для haskell 98 не было написано: NHC и форки тормозные и мертвые (h98 с натяжкой поддерживают), а JHC и UHC не реализуют даже h98.
gist.github.com Раньше я об этом как-то не задумывался. Сможет кто-нибудь это красивее написать?
А ведь n+k паттерны позволяют достаточно изящно записывать код обхода всяких контейнеров с доступом по индексу:
haskell.org — скачивается, встраивается в максимально облегченный линукс (какой дистрибутив для этого лучше использовать? Как можно автоматизировать его модификацию?), в котором минимальное рабочее окружение для хаскеля (ghc, cabal, vim/emacs c haskell mode) и все это оформляется как образ для virtual box, например. Т.е. без всякой боли и ужаса — максимум одно нажатие — и ты в шаге от самого острия прогресса. Может у кого-нибудь есть соображения на этот счет? Как такое обычно организуется?
Мне, последнее время, хочется организовать такую автоматизацию: появляется свежий ночной билд GHC #r "FSharp.PowerPack.dll"
#load "Fancy.fs"
open Henry.Every
open Fancy
#load "Revenge.fs"
open HMS
open Revenge
Ну, может, он хоть загружается автоматически или нажатием одной кнопки? Где-то такая кнопка может и есть, но из коробки все так: выделяете весь текст скрипта -> Send To Interactive!