Комментарий, доказывающий, что порог вхождения в Хаскел очень низок (выделение мое):
>совокупность знаний и различных деталей, которые приходится держать в голове, чтобы написать не совсем тривиальную программу на выбранном языке. Типичный пример языка с очень низким порогом вхождения
Хаскелл. Объективно. Ниже только у перла.
Понравилось мне это тем, что Хаскел и Перл – это два языка, желание изучать которые напрочь пропадало после первого же знакомства с их синтаксисом. Такой очень низкий порог вхождения :)
PS. Такое впечатление, что сейчас становится модно зарабатывать на жизнь Жабой, Шарпом или Плюсами, но изучать Хаскел “для души”…
ИМХО проблема "гиковости" хаскеля не в синтаксисе (он-то как раз довольно-таки "чистый") а в code conventions которые похоже писАли математики а не программисты. Что-то сродни безумной перегрузке всех подряд операторов в С++ ;) - то что это делает код нечитаемым это скорее проблема авторов кода а не языка.
ОтветитьУдалитьТолько вот в комментарии не о том, о чём ты пишешь. Синтаксис-то у хаскеля довольно простой (хотя не сишный, но тыж на рубях пишешь?), а заморочки вылезают про "совокупность знаний и различных деталей", хотя про детали я тоже не соглашусь ибо referential transparency рулит, а вот навароты аля извращения с типами - вот это на "порог" много больше сказывается
ОтветитьУдалить@Left и Qrilka:
ОтветитьУдалитьДумаю, что вы указываете мне на одну и ту же вещь. И вы оба правы, но я скажу вот что: язык сейчас это уже не только его ядро, но и устоявшиеся практики его использования (в том числе и "околостандартный" code convention, зафиксированный в стиле оформления стандартных библиотек). И вот с этой точки зрения для меня что Perl, что Haskell -- не велика разница. Хотя да, я понимаю, что проблема Perl-а в перегруженности самого базиса языка, а Haskell-я -- в устоявшихся способах программирования на нем.
Ну дак тогда не пиши про синтаксис, правда осмысленность поста несколько теряется :)
ОтветитьУдалить@Qrilka: не, в моем случае желание изучать языки пропадало, когда я задалбывался выяснять, что обозначает тот или иной символ или закорючка. Так что все-таки синтаксис :)))
ОтветитьУдалитьНе синтаксис все-таки фигня. У Хаскеля и Окамла он вполне близок, но Хаскель например я так и не осилил, а Окамл дался достаточно просто.
ОтветитьУдалить@Rustam:
ОтветитьУдалитьКстати да, OCaml осваивается проще.
Еще пример, синтаксис перла вполне близок к сишному, но питон с его инопланетным синтаксисом осваивается намного проще и быстрее.
ОтветитьУдалитьВсе-таки хаскель переусложнен и слишком насыщен сложными вещами. Ведь есть же более простой и целостный язык из той же категории чистый, ленивый, функциональный - Clean. По моему у него порог вхождения существенно ниже, хотя могу и ошибаться я сужу по только по давнему чтению мануала и написанным тогда небольшим тестикам.
ОтветитьУдалитьперл не трожь!
ОтветитьУдалитьэто один из мощнейших и удобнейших скриптовых языков!
@jazzer: так я и не трогаю. Уже давно :)
ОтветитьУдалитья вот буквально вчера написал скриптец в одну строчку? нужно было достать/обработать кое-какую информацию из лога - чистая функциональщина!
ОтветитьУдалитьНечто вроде (разобью на строчки, чтоб читалось лучше):
{ $h{$1}{$2}=$3 if m/регэксп/ }
END { map {код1} grep {предикат2} sort {предикат1} values %h }
первая строчка - это парсинг лога, результаты собраны в двухуровневый хэш.
Вторая строчка с END - то, что исполнится, когда парсинг будет закончен.
"код" и "предикат" - это куски кода прямо по месту (лямбды!). Т.е. мы берем второй и третий уровень хэша (values %h), сортируем с предикатом1, потом фильтруем с предикатом2, потом трансформируем кодом1. Естественно, можно навесить еще и фильтров, и обработчиков.
Я ощущаю практически сексуальное удовольствие, когда пишу подобные однострочники на перле :)
Имхо, для обработки текстов ничего лучше нет и не предвидится.
@jazzer: если бы Perl применялся бы только для однострочников... А то ведь на нем умудряются системы в сотни тысяч строк писать... :(
ОтветитьУдалить