LINUX.ORG.RU

Haskell vs Ocaml.


0

1

Вот появилось немного свободного времени и решил изучить что-нибудь функционального. Дайте совет, с чего лучше начать из сабжа? Чтобы и в дальнейшем можно было применить.

anonymous
Ответ на: комментарий от anonymous

>> И я помню массу именно таких, «гопников от программирования»,

> А кто на эту шпану когда либо вообще внимание обращал?

Однако, у этой «шпаны» есть какое-то чутьё выбирать то, с чем будет работать завтра основная масса. Так было с Си/Си++, потом с Java, потом в Perl/PHP/Python, дальше - х.з., вылезет что-то из Scala/Groovy/Ruby/Lua... Посмотрим ещё :)

>> Грубо говоря, не гопники, а блондинки от программирования :D

> Дай угадаю.... Это те, кто на PHP программирует?

Да нет, если ты о «пыхпыхерах», то Си/Си++ для них что-то страшное, далёкое и экзотическое, как ассемблер 8042 для современных «сишников» :D

> Кстати, ты так и не объяснил, что лично тебя в PHP держит.

Рынок, деньги, востребованность :)

> Зная Форт можно и получше в жизни устроиться.

Скажем так, что я сегодня на PHP получаю в 12 раз больше, чем получал, программируя спутниковую связь на Форте 14 лет назад :) И это - только белая зарплата, не считая подработок. При очень низкой загрузке.

Как только появится что-то более финансово выгодное - перейти на что-то другое будет несложно. Но пока меня и тут неплохо кормят :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Macil

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

Тот же SBCL разрабатывается почти 10 лет (а CMUCL, от которого он форкнулся - в два раза дольше). Чем он вам не нравится? По производительности Яве не уступает, а какой высокоуровневый... http://shootout.alioth.debian.org/sandbox/benchmark.php?test=all&lang=sbc...

xTERM ★★
()
Ответ на: комментарий от anonymous

>Сказано же - его открыли, а не придумали. Он фундаментален

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

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

> вот я как бы и обьяснил тебе, чем она вызвана.

Да не этим она вызвана. И не объяснил ты ни хрена. Объяснять, откуда взялась какая бы то ни было мода - дело гнилое и нелепое.

anonymous
()
Ответ на: комментарий от KRoN73

> Однако, у этой «шпаны» есть какое-то чутьё выбирать то, с чем будет работать завтра основная масса.

????

Просто эта шпана и становится завтра основной массой. Что она выбрала, то и будет массовкой. И что из этого?

> Рынок, деньги, востребованность :)

Какой такой рынок, какие деньги? Похапешники по пятачок за пучок идут, их много очень, и все глупые. Востребованность же не должна волновать специалиста, если мозги есть, то востребован он будет всегда.

> Скажем так, что я сегодня на PHP получаю в 12 раз больше, чем получал, программируя спутниковую связь на Форте 14 лет назад :)

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

> Но пока меня и тут неплохо кормят :)

А не тошнит от такой кормёжки то?

anonymous
()
Ответ на: комментарий от jtootf

>сомнительно. как по мне "крутизна" C++ во все времена была связана с его сложностью

Ни в коем разе. В начале 1990-х сложность языка никого не останавливала. Всё решала эффективность. И что в те времена было проще Си++? Бейсик? Да нифига подобного, люди совершенно далёкие от программирования по роду деятельности писали одинаково и на Си++, и не Бейсике, и на Паскале...

>многочисленные хаки со страшными названиями

Да нет, если до такого доходило - то проще было сразу писать на ассемблере. Си++ тогда считался, действительно, языком высокого уровня, разработанным для рядового программиста.

>кто-то доходит до STL, кто-то до Boost, кто-то до Loki

Всего этого тогда не было :)

>просто "блондинки от программирования" это как раз PHP, VB6, Delphi - что угодно, но не C++

Я разве сказал, что сегодня С++ - «для блондинок»? Нет, я имел в виду, что Си++ воспринимается как нечто «крутое» сегодня в этой среде. Для остальных - это просто рабочая лошадка. Или что-то архаичное... В зависимости от круга :)

KRoN73 ★★★★★
()
Ответ на: комментарий от jtootf

Все Лиспы были несовершенными. При этом есть идеальный, фундаментальный Лисп, который никто так и не реализовал.

anonymous
()
Ответ на: комментарий от anonymous

>Такой, как Лисп, определённо не является (как, кстати, и Форт). Это технология, методология, идеология, мат. модель, мировоззрение. Но никак не продукт.

Да, но пишут всегда - на конкретном продукте. Нельзя писать на идее или мировоззрении :) А если я технологии, которые предлагает Форт использую потом в Java или PHP, то я от этого не начинаю писать на Форте.

>Сказано же - его открыли, а не придумали. Он фундаментален.

На фундаментах не пишут. Пишут на продуктах :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Для остальных - это просто рабочая лошадка. Или что-то архаичное... В зависимости от круга :)

В лучших кругах C++ как воспринимался нелепым поделием копошащихся где-то там внизу кодеров, не знающих, чего сами хотят, так и воспринимается сейчас. Тем более что сейчас такому взгляду и свидетельств побольше - тогда язык только начинал быть нелепой неконсистентной монстрятиной, а сейчас он умер под собственным весом.

anonymous
()
Ответ на: комментарий от anonymous

>Да не этим она вызвана. И не объяснил ты ни хрена. Объяснять, откуда взялась какая бы то ни было мода - дело гнилое и нелепое

нечего сказать - не лезь в обсуждение. залез - будь добр за свои слова отвечать. для таких как ты Луговский придумал замечательный термин, да боюсь забанят меня за его использование

jtootf ★★★★★
()
Ответ на: комментарий от KRoN73

> На фундаментах не пишут. Пишут на продуктах :D

Но изучают (см. тему) именно фундаментальные.

> Нельзя писать на идее или мировоззрении

Можно писать, придерживаясь какого либо мировоззрения. Я и на Жабе пишу в рамках Лисповой идеологии.

anonymous
()
Ответ на: комментарий от jtootf

> нечего сказать - не лезь в обсуждение. залез - будь добр за свои слова отвечать.

Я сказал то, что сказал. "Крутизна" - понятие иррациональное, и твои потуги на его рационализацию дурно пахнут.

> для таких как ты Луговский придумал замечательный термин

Все его "термины" придумали монголы, а русские позаимствовали за краткость.

anonymous
()
Ответ на: комментарий от anonymous

>Просто эта шпана и становится завтра основной массой. Что она выбрала, то и будет массовкой.

Смелое утверждение. Тогда на эту шпану, как раз, нужно обращать внимание. Чтобы знать, чем будут кормить завтра :D

>Какой такой рынок, какие деньги? Похапешники по пятачок за пучок идут, их много очень, и все глупые.

Однако, на PHP я сейчас получаю больше, чем рынок предлагает средним Java/Python/C++ программистам :) А с уровня «элитарного Си++ программиста» я съехал лет 10 назад. Когда вдруг на этом поприще стало работу найти сложнее, чем простым админом пару-тройку десятков десктопов рулить :D

> Востребованность же не должна волновать специалиста, если мозги есть, то востребован он будет всегда.

Вот меня и не волнует. Пока хорошо платят за PHP - я работаю на PHP. Будут хорошо платить на Lisp'е - перейду на Lisp :D

> Я не призываю программировать на Форте сейчас. Просто с этими знаниями можно программировать совсем не на похапе

Вот тут-то собака и порылась. Опыт, который дал мне Форт, позволяет сегодня писать эффективно на чём угодно. Поэтому...

> А не тошнит от такой кормёжки то?

... поэтому не тошнит меня и от PHP :) Язык, как язык.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>Я разве сказал, что сегодня С++ - «для блондинок»? Нет, я имел в виду, что Си++ воспринимается как нечто «крутое» сегодня в этой среде. Для остальных - это просто рабочая лошадка. Или что-то архаичное... В зависимости от круга :)

тогда прошу меня извинить, неправильно понял фразу. в такой редакции - согласен. к тому же -

>В начале 1990-х сложность

о начале 90-х говорить уж точно не имею права. не был, не состоял, не привлекался

jtootf ★★★★★
()
Ответ на: комментарий от anonymous

>Но изучают (см. тему) именно фундаментальные.

Поэтому я человекe и предложил с академической точки зрения из предложенного выбора - Хаскелл :D Заметив, что O'Caml, в противоположность, лучше востребован практически.

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>Я сказал то, что сказал. "Крутизна" - понятие иррациональное

ну прекрасно. тогда что ты тут вообще делаешь ? или твои потуги на дискредитацию этого иррационального понятия пахнут лучше ?

>Все его "термины" придумали монголы, а русские позаимствовали за краткость

в данном термине только одно слово имеет монгольские корни, второе было "шавка". хотя я не лингвист - может ты и прав :)

jtootf ★★★★★
()
Ответ на: комментарий от KRoN73

> Смелое утверждение. Тогда на эту шпану, как раз, нужно обращать внимание. Чтобы знать, чем будут кормить завтра :D

А ты баран, чтоб тебя "кормили"? Сам кормиться не в состоянии?

Кому какое дело до проблем табунов быдлятины, нормальные люди кормятся отдельно от скота.

> Однако, на PHP я сейчас получаю больше, чем рынок предлагает средним Java/Python/C++ программистам :)

Больше $5-6k? Если это так, то тебе вообще-то должно быть наплевать, что использовать, похапе или что другое, поскольку это уровень уже консультанта, реализующего весь цикл разработки без нелепых условий.

> Пока хорошо платят за PHP - я работаю на PHP

Да не платят за него хорошо. Может, у нас представления о "хорошо" разные?

> ... поэтому не тошнит меня и от PHP :) Язык, как язык.

Да нет, говно это, как язык. Слишком много программировать заставляет.

anonymous
()
Ответ на: комментарий от jtootf

> или твои потуги на дискредитацию этого иррационального понятия пахнут лучше ?

Да. Поскольку рационализируя его, ты даёшь ему хоть и плохонькое, но оправдание. Моя же позиция в том, что измерению "крутизны" и использованию таких категорий в любом выборе просто нет никаких оправданий, вообще.

anonymous
()

ИМХО, по Хаскелю литературы больше, и она качественее. Поэтому если учить "для себя", ради тренировки мозгов, то лучше Хаскель. Но с практической точки зрения, Окамл перспективнее (снова ИМХО), потому что F#. А Хаскел - это игрушка академии и Microsoft Research.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> F# это ровно тот же самый Microsoft Research.

Он оттуда уже вышел, и является вполне полноценным языком для .NET. А компилятор Хаскел в .NET разве есть?

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

>А ты баран, чтоб тебя "кормили"? Сам кормиться не в состоянии?

Вот я сам и кормлюсь. Про тебя, кстати, вообще не знаю, анонимный ты наш :D

>Больше $5-6k?

Ну-ка, ну-ка, список вакансий Java/Python/Си++ под эту зарплату в студию! :)

>Да не платят за него хорошо. Может, у нас представления о "хорошо" разные?

Возможно :)

>> ... поэтому не тошнит меня и от PHP :) Язык, как язык.

> Да нет, говно это, как язык. Слишком много программировать заставляет.

Вот, как раз, чего от меня не отнять, так это - лени. Я ужасно не люблю много писать. Поэтому и любил так в своё время Форт. И на PHP сейчас пишу, нередко, десятком строк задавая весьма обширный класс, который сам по ORM загрузится из БД, сам отрендерится нужным образом, сам, если нужно, сохранится в статическом виде. Фактически, всё моё программирование последнего года-двух - это даже не программирование, а указание связей, типов, объектов. Программировать только иногда особые случаи обработки данных приходится :)

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

> Он оттуда уже вышел,

Никуда он не вышел, как Don Syme руководил проектом, так он же и руководит. Просто на проект дали ещё денег и людей, на его "productisation".

> и является вполне полноценным языком для .NET.

Именно. В этом и есть перспекривность, а не в благородном происхождении.

> А компилятор Хаскел в .NET разве есть?

Пока нет. Но будет.

anonymous
()
Ответ на: комментарий от KRoN73

> Вот я сам и кормлюсь.

А по что тебя тогда интересует, куда табун попрёт?

> Ну-ка, ну-ка, список вакансий Java/Python/Си++ под эту зарплату в студию! :)

Dice, monster - сам смотри, конкретики и не надо. Вполне средний уровень.

> Программировать только иногда особые случаи обработки данных приходится :)

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

anonymous
()
Ответ на: комментарий от anonymous

> Никуда он не вышел, как Don Syme руководил проектом, так он же и руководит. Просто на проект дали ещё денег и людей, на его "productisation".

То, что принято решение о "productisation", и называется - вышел из состояния "research".

>> А компилятор Хаскел в .NET разве есть?

>Пока нет. Но будет.

И кто его сделает? Откуда инфа вообще?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> ИМХО, по Хаскелю литературы больше, и она качественее.

Я с тобой поделился списком литературы на Камле, теперь поделись литературой на Хаскелле. Потому что из хорошего мне попадалась только книжка за 99 год и то, там всех фишек нет.

Топикстартеру. Языки однозначные, единственное что Камль быстрее поднимается и практичнее. Новичкам в ФП я бы советовал Камль.

anonymous
()
Ответ на: комментарий от KRoN73

Вот скажите (примеры от балды), что тут говнистого? :)

http://balancer.ru/support/2008/04/t61372--Primer-forum_js_personal.2163.html (ЛОРу напрочь сносит башню от этого кода - "String index out of range: 29", поэтому размещаю пример у себя).

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

Неужели тут так много лишней писанины? Ну да, на Форте, наверное, получилось бы немного компактнее. Но не настолько, чтобы терять ту же популярность LAMP-решений :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Неужели тут так много лишней писанины? Ну да, на Форте, наверное, получилось бы немного компактнее. Но не настолько, чтобы терять ту же популярность LAMP-решений :D

Бугога. Крон ты гонишь. Я ипашил на пхп довольно долго пока не попал на ЛОР. После этого выучил руби и сейчас с радостью забыл про говно под названием пхп.

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

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

anonymous
()
Ответ на: комментарий от anonymous

>А по что тебя тогда интересует, куда табун попрёт?

Чтобы, когда он придёт на новое пастбище, не откатываться на зарплату в килобакс на время освоений новых технологий. А сразу продолжить с прежнего уровня :)

>Dice, monster - сам смотри, конкретики и не надо. Вполне средний уровень.

Ну-ну. Так и запишем - одни пустые слова пока. Сотрясение воздуха.

>Звучит конечно неплохо, но сдаётся мне, что это очень нишевое решение.

PHP - он, вообще, нишевый. Это только Web. Вот зато в рамках Web'а моё решение охватывает практически всё. Т.е. я пока ещё не сталкивался с чем-то, что моей технологией нельзя было бы просто и эффективно сделать :) Хотя думать иногда, как раз, приходится. Бывает, несколько дней - ни строчки кода. Зато потом в десяток-другой строк решаешь довольно объёмную задачу.

Вот, от балды: http://www.aviaport.ru/images/archive/

Архив галерей, фотогалереи, просмотр, админка... Не считая HTML-вёрстки, чистого кода под всё это (считаются именно строки кода, т.е. всякие { и } на пустых строках не в счёт):

6 строк под /images/archive/

15 строк под галерею (галерея - хранится в БД.)

44 строки под фотографию в галерее (из них более половины - листание вперёд-назад)

20 строк - админка.

Вот пример кода фотогалереи (получилось больше 15 строк, т.к. для наглядности развёрнут список полей для ORM): http://balancer.ru/support/2008/04/t61373--Primer-aviaport_image_gallery.2875...

> Поскольку в реальном похапе-коде открытых проектов ничего подобного не наблюдается.

Мой код открыт: hg.balancer.ru

Другое дело, что он недокументирован :)

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

Честное слово, Java, скажем, обеспечивает на порядок больше ограничений. Правда, я там сделал ход конём и написал JBForth, но это - по большому счёту костыль. Давно в планах JBForth2, который уже будет работать с нативным Java-байткодом, но пока нет времени и стимула. Никому со стороны это неинтересно, а единственный проект, который использовал JBForth, был развален изнутри желающими заработать на нём :D

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

> То, что принято решение о "productisation", и называется - вышел из состояния "research".

Про состояние не скажу, но разрабатывают его всё ещё в Microsoft Research в Кембридже (UK).

> Откуда инфа вообще?

Я и так слишком много уже сказал. Молчу.

anonymous
()
Ответ на: комментарий от KRoN73

Ну вообще-то да, многовато потенциально error prone писанины.

По моему, такие вещи вообще надо на декларативных языках делать, а на PHP декларативные DSL весьма и весьма уныло реализуются.

anonymous
()
Ответ на: комментарий от anonymous

>Ты скорее всего каким-то макаром под свою частную задачу сделал движок.

Нет :) На этом движке работают CMS, форумы, новостийные движки блоги, фотогалереи... Из сайтов, которые могу раскрыть - это весь www.aviaport.ru плюс, естественно, все мои сайты, в т.ч. все данные выше линки на примеры - это всё на этом фреймворке сделано и исключительно его штатными средствами. Более того, даже формат БД - совершенно произвольный. На том же Авиапорте я не стал, переводя систему на новый движок, кочевряжить БД, а встроился в то, что было. Исключительно штатными средствами фреймворка.

>Но он имеет рамки и ты даже сам когда-то писал, что тебе множественного наследования не хватает :)

Это был мне хороший урок. И я его усвоил :) Множественное наследование мне больше не нужно. Чисто логически оказалось удобно вынести весь наследуемый функционал на уровень engine-методов. Т.е. любой класс имеет свои движки хранения данных (то, что "model", не важно, mysql это, oracle, файловая система или, вообще, программный генератор данных), свои движки рендеринга (основной сейчас, конечно, это шаблонизатор Smarty, но я к нему уже давно не привязан - надо будет, сделаю XML, это всё займёт считанные строки кода, надо, кстати, будет сделать и банальный... шаблонизатор на PHP. PHP, ведь, сам по себе - шаблонизатор. И самый быстрый, как нетрудно догадстья, на этом языке :D Ну и, конечно, есть используемый рендеринг картинок), даже движки формата ссылок :) В общем - предельный рефакторинг.

Теперь, вот, думаю, что наработанные механизмы нужно в L2Fortress на Java переносить. Другое дело, что проект этот помер, и интерес в его оживлении выказывают буквально 2..3 человека, из которых никто - не программирует. А учить новую смену я сейчас временно не готов. Предыдущую обучил плохо :D

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

> теперь поделись литературой на Хаскелле

Вдобавок к ссылке, которую дал Мигель, http://www.haskell.org/haskellwiki/Tutorials 8) Лично мне YAHT и "Craft of functional programming" пока что хватает, я еще полный ламер в ФП.

> из хорошего мне попадалась только книжка за 99

"Craft of functional programming"? Ссылку на djvu постили на ЛОР.

tailgunner ★★★★★
()
Ответ на: комментарий от KRoN73

> Чтобы, когда он придёт на новое пастбище, не откатываться на зарплату в килобакс на время освоений новых технологий. А сразу продолжить с прежнего уровня :)

Как твои доходы вообще зависят от того, где пасётся скот. Ты ж не инструменты для скота продаёшь, а сам по себе. Да и при чём тут зарплата, если ты сам себя кормишь.

> Ну-ну. Так и запишем - одни пустые слова пока. Сотрясение воздуха.

Какие такие "пустые слова"? Я вполне конкретную инфу дал. Идёшь на monster, ищешь по Java, и смотришь среднее - как раз названная мною сумма и будет. Это как раз лучше, чем давать отдельные ссылки, на каждую из которых ты скажешь, что это мол исключение.

> PHP - он, вообще, нишевый. Это только Web.

Причем под веб он как раз таки совсем паршиво приспособлен.

> Вот зато в рамках Web'а моё решение охватывает практически всё

Да ну?

> Вот пример кода фотогалереи

Меня терзают смутные сомнения относительно производительности такого решения.

> Мой код открыт: hg.balancer.ru

Ок, посмотрим.

> Честное слово, Java, скажем, обеспечивает на порядок больше ограничений.

С Java можно хотя бы отказаться от быдлоязыка, оставаясь на той же платформе (SISC, Scala, ...). С похапе ты привязан к быдлоязыку насмерть.

> который уже будет работать с нативным Java-байткодом

Успехов тебе в личной жизни. :)

Всё равно Форта полноценного таким образом не получится, будет интерпретатор шитого псевдокода, а компиляции в байткоды не будет. Одно из серьёзных ограничений JVM... Правда, та же ботва и к .NET относится, но там хотя бы нет ограничения на размер метода, и можно всё в один метод вместе с VM скомпилировать. Тоже не то чтоб очень Форт получается, никакой интерактивности, но уже лучше чем с JVM, и эффективность заметно выше.

anonymous
()
Ответ на: комментарий от anonymous

>Ну вообще-то да, многовато потенциально error prone писанины.

"error prone" = ?

Вообще, после Форта ничто не может испугать на уровне ошибок программирования. Ибо там контроля нет никакого вообще :)

Компенсируется это предельным рефакторингом и малым объёмом атомарного кода.

>По моему, такие вещи вообще надо на декларативных языках делать

Да. Но проще за пару дней сделать под заказ контент-редактор сайта за $500, чем убеждать этого заказчика неделю, чтобы он сменил хостинг :)

...

Вообще, не будь "рынка", я бы сейчас писал, скорее всего, на Питоне и Яве и присматривался бы одновременно к Эрлангу, ОКамлу и чем-то типа Scala/Groovy. Но пока пишу на PHP и думаю о переводе своего сайта под Quercus, что позволит одновременно и развивать PHP-составляющую (для тех самых сторонних заказчиков) и реализовывать узкие места фреймворка на Java. Сейчас, например, узкое место - поисковая индексация. У меня база форума - 1.3млн записей общим объёмом 2.9Гб. Так что, когда добавляется новая страница в индекс при ответе пользователся (а индексация идёт именно постраничная, ибо это логичнее, чем индекс по постингам), на PHP это добавление занимает несколько долгих секунд... Пока страница разложится на слова, пока эти слова нормализуются по стеммингу, пока под них извлекутся индексы, сформируются те, которых ещё не было... На Java это всё было бы гораздо веселее ;)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>http://balancer.ru/support/2008/04/t61372--Primer-forum_js_personal.2163.html

О ужас! PHP и так был дерьмом лучезарным, но после того, как в него еще и классы добавили, то его надо в книгу рекордов гинеса заносить. PHP так получили: взяли слона, отрубили ноги, а теперь (php5) на их место пришили то, что осталось от изнасилованного трупа кита.

xTERM ★★
()
Ответ на: комментарий от Miguel

> http://haskell.org/haskellwiki/Books > Для начала.

Это шутка такая, да? Из этого списка в торрентах можно найти только ту, что за 99 год. Все остальные фиг где найдешь. Душкинские книжки за книжки не считаю...

По камлю я сходу накопал три книжки в __свободном_доступе__, тоесть нашару. Еще одна по-хуже через торренты, но она не нужна.

Так что пока что не вижу гор книг по Хаскеллу, которые реально достать в наших условиях.

anonymous
()
Ответ на: комментарий от anonymous

> Из этого списка в торрентах можно найти только ту, что за 99 год. Все остальные фиг где найдешь.

Зайди в раздел туториалов - там хватит материала для полноценной загрузки.

А "Craft of functional programming" не хуже, чем "Developing application with ObjectiveCAML", ИМХО.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> "Craft of functional programming"? Ссылку на djvu постили на ЛОР.

Дык, не вопрос. Но ты же сказал что по Хаскеллю литературы больше... А с того что можно юзать, так только YAHT и Craft. Но там-то не все описано. Там вообще только по вершкам пробежались. А камлевские книжки(особенно переведенная с французского орейлевская) дает нормальное описание языка.

> Вдобавок к ссылке, которую дал Мигель, http://www.haskell.org/haskellwiki/Tutorials 8) Лично мне YAHT и "Craft of functional programming" пока что хватает, я еще полный ламер в ФП.

Просто по себе помню, как продирался через него по этим книгам. После этого камль, что райские кущи :).

anonymous
()
Ответ на: комментарий от KRoN73

>Если продукт не нишевый, то на нём есть широкий спектр популярных продуктов. От ОС и браузеров до музыкальный плейеров и просмотрщиков картинок.

>Список таковых на Lisp'е - в студию :)

Браузер: emacs, плеер: emacs, просмотрщик картинок: emacs. Список можно продолжить :)

xTERM ★★
()
Ответ на: комментарий от tailgunner

> "Craft of functional programming" не хуже, чем "Developing application with ObjectiveCAML"

Он не хуже, в нем не все описано. По изложению он неплохой. Зайди на викибук по Хаскеллю, там много чего нового есть, что в крафте не затронуто.

anonymous
()
Ответ на: комментарий от KRoN73

> "error prone" = ?

Обосраться в таком коде очень легко. Много синтаксиса, мало смысла, никакой возможности статически или даже динамически проверить корректность. В топку.

> Ибо там контроля нет никакого вообще :)

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

> Да. Но проще за пару дней сделать под заказ контент-редактор сайта за $500, чем убеждать этого заказчика неделю, чтобы он сменил хостинг :)

Проще не выбирать себе нищих заказчиков.

> и реализовывать узкие места фреймворка на Java

Ага, значит хостинг таки не является определяющим фактором?

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

anonymous
()
Ответ на: комментарий от anonymous

>Как твои доходы вообще зависят от того, где пасётся скот.

Элементарно. Если бы я не знал PHP, а только тот же Perl, сегодня мне было бы намного труднее искать работу в Web-девелопменте. Пришлось бы или брать то, что предлагают, или менять профиль. И то, и другое - удар по бюджету.

К слову сказать, 8 лет назад я в Вебе девелопил именно на Перле. И фреймворк у меня на Перле был, правда, ещё не такой функциональный. Но 6 лет назад начал плавный переезд на PHP.

>Ты ж не инструменты для скота продаёшь, а сам по себе. Да и при чём тут зарплата, если ты сам себя кормишь.

Нет, кормлю себя не я, а тот, кто платит мне зарплату и за подработки :) А в LAMP с этим сейчас проще всего.

>Какие такие "пустые слова"? Я вполне конкретную инфу дал. Идёшь на monster, ищешь по Java, и смотришь среднее - как раз названная мною сумма и будет.

Я тебя просил конкретные ссылки. Я не знаю, что такое "Идёшь на monster".

>> PHP - он, вообще, нишевый. Это только Web.

> Причем под веб он как раз таки совсем паршиво приспособлен.

Что не мешает ему быть самым массовым :)

>Меня терзают смутные сомнения относительно производительности такого решения.

Время генерации страницы галереи на паршивом Целероне, пока сервер не загружен, порядка 0,3 сек, что, конечно, много, но мне стоит прописать одну строку в класс-файл, и страница будет генерироваться статическая. Так что вопрос производительности стоять уже не будет вообще :D Я даже не знаю, почему там статику не прописал. Лениво прописывать две строчки (одну для включения статики, вторую - в админке для сброса статики галереи при модификациях).

Лёгкие же страницы генерируются на той же машине за период порядка 0.03 сек. Это уже терпимо даже без кеширования.

У меня сейчас форум с полуторасотенным онлайном на этом фреймворке крутится. При чём там огромная масса древнего, неоптимизированного и просто чужого ещё кода (тот же форум ещё многие механизмы от punbb использует - опять гибкость фреймворка, к punbb он привязался штатными средствами). И пока - вполне хватает. Переведу всё на статику - там тормозить будет вообще нечему. Кроме упомянутой в предыдущем сообщении поисковой индексации при ответах. Тут PHP не хватает, что есть, то есть :)

>С Java можно хотя бы отказаться от быдлоязыка, оставаясь на той же платформе (SISC, Scala, ...). С похапе ты привязан к быдлоязыку насмерть.

Я, как раз, планирую подход с другой стороны - через Quercus :) Сам по себе фреймворк под ним работает, проверял. Вопрос только в нагрузочной способности Tomcat или Resin. Ну и в той самой моей лени, про которую я писал :D

>> который уже будет работать с нативным Java-байткодом

> Успехов тебе в личной жизни. :)

Ничего, спасибо :D

>Всё равно Форта полноценного таким образом не получится, будет интерпретатор шитого псевдокода, а компиляции в байткоды не будет. Одно из серьёзных ограничений JVM...

Хех. Вопрос что считать "полноценным" Фортом? Стандарт ANS-94? Я уже в JBForth от него отказался. Зачем мне использовать адреса и длины для указания на строку там, где я могу использовать объект String? Идеология Форта как стекового метаязыка? На JVM оно реализуется отлично. Потроха JVM я уже разбирал. Так что, если руки дойдут до JBForth2, то он будет от ANS-94 ещё дальше, чем JBForth. Например, я собираюсь отказаться переменного числа возвращаемых результатов. Т.е. слова, типа ?DUP, которое возвращает то один, то два результата, будут невозможны. Да, это будет ограничение "фортовской вольницы". Но идеология языка в целом сохранится. Метапрограммирование, свободное переключение компиляции и интерпретации, компиляция в рантайме, сбор любых объектов на лету... Зато появится неявная статическая типизация при компиляции (с выведением типов), которая позволит ещё при компиляции отловить массу ошибок, да и просто сделает Форт реально объектным...

>Правда, та же ботва и к .NET относится, но там хотя бы нет ограничения на размер метода

Оптимальный размер Форт-слова - 7±2 атома :)

>Тоже не то чтоб очень Форт получается, никакой интерактивности

Интерактивность - будет. Иначе это будет уже не Форт :)

KRoN73 ★★★★★
()
Ответ на: комментарий от xTERM

>О ужас! PHP и так был дерьмом лучезарным, но после того, как в него еще и классы добавили, то его надо в книгу рекордов гинеса заносить.

Запиши тоже самое на другом объектном языке. Сравним, где там в PHP дерьмо :)

KRoN73 ★★★★★
()
Ответ на: комментарий от xTERM

>Браузер: emacs, плеер: emacs, просмотрщик картинок: emacs. Список можно продолжить :)

На чём написан emacs? Он сам себя уже компилирует? :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> сегодня мне было бы намного труднее искать работу в Web-девелопменте.

1) Ты бы легко изучил php за вечер

2) На кой тебе искать работу? Не вырос ещё из этих глупостей?

> Нет, кормлю себя не я, а тот, кто платит мне зарплату и за подработки :) А в LAMP с этим сейчас проще всего.

Ладно ещё подработки, поверю, но большие зарплаты в быдлоLAMP - не поверю никогда. Не будет у тебя выше этих самых 5-6k.

> Я тебя просил конкретные ссылки. Я не знаю, что такое "Идёшь на monster".

monster.co.uk, dice.com, и другие подобные быдлосайты

> Что не мешает ему быть самым массовым :)

Иррациональность моды мы тут уже обсуждали.

> Вопрос только в нагрузочной способности Tomcat или Resin

Уж всяко выше чем у php под апачем.

> Ничего, спасибо :D

Ты не понял. Настоящая личная жизнь начнётся когда попробуешь реализовать задуманное.

> Хех. Вопрос что считать "полноценным" Фортом?

Полноценным считать сравнимый по производительности с Фортом на шитом коде поверх native для этого процессора.

> Идеология Форта как стекового метаязыка? На JVM оно реализуется отлично

Ничего отличного. Содержимое стека при выходе из метода проверяется. Так что слова Форта как методы JVM нельзя реализовать. Придётся оба стека делать в heap, и тормозятина гарантированна. Родной же стек JVM будет просто лишним.

> Например, я собираюсь отказаться переменного числа возвращаемых результатов.

Ага, ага. И много от чего ещё придётся отказаться.

> Оптимальный размер Форт-слова - 7±2 атома :)

Я про статическую компиляцию сразу большого числа слов в один метод говорю.

> Интерактивность - будет. Иначе это будет уже не Форт :)

На самом деле можно и совместить, это лишь немногим усложнит систему.

Вообще, сейчас делаю Форт под .NET, так что тема мне интересна весьма.

anonymous
()
Ответ на: комментарий от anonymous

>Обосраться в таком коде очень легко.

Да, с этим не спорю. Хотя синтаксические ошибки и опечатки PHP ловит относительно неплохо нынче.

>Там хотя бы компактность защищает от ошибок

Тут тоже самое :) Я же говорю - я ленив. И я свёл объём программирования на PHP к тому минимуму, который осилил.

>и более правильные методики разработки, в других языках слабоприменимые.

«Thinking Forth» - это мой девиз по жизни. И большиство концепций (идеологических, а не инструментальных) я на PHP вполне реализовал. Как я уже говорил, на нём это сделать на порядок проще, чем на той же Java или Си++.

>Проще не выбирать себе нищих заказчиков.

Зарплату в 10 килобаксов при напряжённом графике или в 5 килобаксов при ненапряжённом... я пока не видел таких заказчиков :D

>Ага, значит хостинг таки не является определяющим фактором?

В данном случае - нет. Ядро-то остаётся старым, так что на LAMP будет работать по-прежнему. На Java будут реализованы конкретные узкие места. Так что LAMP-заказчики ничего не потеряют :D

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

Мне хватает. К чему придраться можно - не знаю. Хотя, может, всё дело в том, что я как программист рождался на языке программируемых калькуляторов. После него - что угодно будет приемлимым :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Ну, в общем-то, мог бы, если бы маааааленькое ядро переписали с C на Lisp. А так - весь редактор в общем-то компилируется им самим.

rexadecimal
()
Ответ на: комментарий от rexadecimal

> Ну, в общем-то, мог бы, если бы маааааленькое ядро переписали с C на Lisp

Оно отнюдь не "маааааленькое" %)

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.