А, наверное, с точки зрения адепта ФП, аспектное программирование - это слабое подобие левой руки? Мне эта парадигма любопытна, но ощущение какого-то костыля не покидает.
Да при чем тут язык. ФП нуждается в рефакторинге, автосборках и т.д. не меньше императива.
Ну и кстати про современность языков. Те же хаскель с емаксом старше джавы, а что на них сделали стоящего за эти 20 лет? Практически, ничего. Так и остался академическим междусобойчиком. Не думаю, что хугл переломит ситуацию. Хаскель и многие другие языки просто еще не дозрели до того уровня проектов, когда требуются те навороты, которые уже 10 лет норма в мире джавы. Внутри песочницы нет проблемы обслуживания карьерных экскаваторов. Но не потому, что пластмассовый совок круче, а потому что песка мало.
Да и джава на месте не стоит. Я с ней в обнимку с 97 года, еще с 1.1. Джава 1.6 - это практически другой язык. А для любителей есть скала, которую можно сочетать с джава (и всей ее многомиллиардной инфраструктурой и многомиллионным комьюнити) в одном проекте и при этом не мешать остальным членам команды своей функциональщиной.
> На Хаскеле? Написали верифицированное микроядро. Кроме многого прочего.
Наверное, это микроядро очень сложное и важное, я не знаю. Меня больше оценка сверху интересует. На Java написано софта на сотни миллиардов долларов. На Хаскеле - преимущественно искусственные задачки, вызывающие восхищение внутри замкнутого комьюнити. То есть выхлоп отличается на несколько порядков величин.
То есть, так скажем, при всей своей чистоте и красивости Хаскелю по бизнес-ценности еще далеко не только до Java, но и до Фортрана с Коболом. А вот для развития мозгов - да, полезно.
> У Скалы есть большой недостаток - JVM. ;)
С точки зрения разработки как бизнеса - это огромное преимущество. Я бы даже сказал, что это дает ей право на жизнь.
Покажите мне банковскую или страховую систему (на самом деле любую бизнес-критичную для бизнеса $100M+), написанную на Хаскеле, проданную и внедренную в 2 и более мест, и я соглашусь в своей неправоте.
P.S. наша дискуссия про инструментальную поддержку мне напоминает дискуссию об МКПП vs АКПП :) Солидным аргументом в пользу механики признается только купленный Мерс со стиком (c) dz.
Первая ссылка в яндексе по запросу "мерс со стиком" :-) Это было 4 года назад где-то в комментах по совсем другому поводу. Не пугайся, у меня атипично хорошая память.
Для меня просто непонятна ситуация с тем, что кондиционер и АКПП могут вызвать у вас смех. К сожалению или к счастью я просто не знаком с конструктивными особенностями Матиза, чтобы понять ту мысль, котрую вы хотели донести своей метафорой.
У Scala есть хвостовая рекурсия (но явнвя - указываем @tailrec для таких функций/методов), а вот хвостовых вызовов нет - приходится делать явный трамполайнинг (как по-русски?). Впрочем это не проблема JVM, а проблема компилятора - вон kawa же работает.
Ленивости неявной нет из-за JVM, да, уж слишком ненормальным будет сгенеренный код (CAL). А вот мутабельность не такая уж большая проблема, на самом деле. Я несколько новых проектов на работе на Scala пишу, так вот var или mutable-коллекций у меня там практически нет (кроме разве что случаев, когда необходим интероп). Всякий IO заворачиваем в их foreach/map/filter/flatMap. Не Haskell, но жить можно.
На Haskell хрен бы мне дали написать эти проекты (впрочем, некоторые другие можно), а вот на Scala - да. Так что JVM - это для меня достоинство Scala ;-)
Хотя всё это, конечно, полумеры: "Давайте, все на Nemerle, мы вас научим функциональному программирования не отходя от императива". Беда.
Reply
Ну и кстати про современность языков. Те же хаскель с емаксом старше джавы, а что на них сделали стоящего за эти 20 лет? Практически, ничего. Так и остался академическим междусобойчиком. Не думаю, что хугл переломит ситуацию. Хаскель и многие другие языки просто еще не дозрели до того уровня проектов, когда требуются те навороты, которые уже 10 лет норма в мире джавы. Внутри песочницы нет проблемы обслуживания карьерных экскаваторов. Но не потому, что пластмассовый совок круче, а потому что песка мало.
Да и джава на месте не стоит. Я с ней в обнимку с 97 года, еще с 1.1. Джава 1.6 - это практически другой язык. А для любителей есть скала, которую можно сочетать с джава (и всей ее многомиллиардной инфраструктурой и многомиллионным комьюнити) в одном проекте и при этом не мешать остальным членам команды своей функциональщиной.
Reply
Я на текущей моей работе пишу на Хаскеле и C#. На C# я написал много, и достаточно сложного. А на Хаскеле я простые вещи не пишу.
Так вот, неправда ваша. ;)
>Те же хаскель с емаксом старше джавы, а что на них сделали стоящего за эти 20 лет?
На Emacs? Написали Джаву, например ( ... )
Reply
Наверное, это микроядро очень сложное и важное, я не знаю. Меня больше оценка сверху интересует. На Java написано софта на сотни миллиардов долларов. На Хаскеле - преимущественно искусственные задачки, вызывающие восхищение внутри замкнутого комьюнити. То есть выхлоп отличается на несколько порядков величин.
То есть, так скажем, при всей своей чистоте и красивости Хаскелю по бизнес-ценности еще далеко не только до Java, но и до Фортрана с Коболом. А вот для развития мозгов - да, полезно.
> У Скалы есть большой недостаток - JVM. ;)
С точки зрения разработки как бизнеса - это огромное преимущество. Я бы даже сказал, что это дает ей право на жизнь.
Reply
Гагага. Квадрильонов. Квадрильонов долларов.
Писали бы на Хаскелле, обошлись бы миллиардиком.
Reply
Reply
Покажите мне банковскую или страховую систему (на самом деле любую бизнес-критичную для бизнеса $100M+), написанную на Хаскеле, проданную и внедренную в 2 и более мест, и я соглашусь в своей неправоте.
P.S. наша дискуссия про инструментальную поддержку мне напоминает дискуссию об МКПП vs АКПП :) Солидным аргументом в пользу механики признается только купленный Мерс со стиком (c) dz.
Reply
Reply
Reply
Reply
Reply
Reply
Reply
Для меня просто непонятна ситуация с тем, что кондиционер и АКПП могут вызвать у вас смех. К сожалению или к счастью я просто не знаком с конструктивными особенностями Матиза, чтобы понять ту мысль, котрую вы хотели донести своей метафорой.
Reply
У Scala есть хвостовая рекурсия (но явнвя - указываем @tailrec для таких функций/методов), а вот хвостовых вызовов нет - приходится делать явный трамполайнинг (как по-русски?). Впрочем это не проблема JVM, а проблема компилятора - вон kawa же работает.
Ленивости неявной нет из-за JVM, да, уж слишком ненормальным будет сгенеренный код (CAL). А вот мутабельность не такая уж большая проблема, на самом деле. Я несколько новых проектов на работе на Scala пишу, так вот var или mutable-коллекций у меня там практически нет (кроме разве что случаев, когда необходим интероп). Всякий IO заворачиваем в их foreach/map/filter/flatMap. Не Haskell, но жить можно.
На Haskell хрен бы мне дали написать эти проекты (впрочем, некоторые другие можно), а вот на Scala - да. Так что JVM - это для меня достоинство Scala ;-)
Хотя всё это, конечно, полумеры: "Давайте, все на Nemerle, мы вас научим функциональному программирования не отходя от императива". Беда.
Reply
Reply
Leave a comment