skodnik,
S>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
J/K — если хочешь размять мозги в совершенно парадоксальном направлении (чужие программы где-то месяца через 3 только начнёшь понимать).
Haskell, Cayenne, Agda (Agda 2), ATS, если понимаешь чего-нибудь в типах, ТК, формальных системах и теорем-пруверах (или сильно хочешь их постичь)
Haskell, Erlang, Scala, F# — если хочешь познакомиться с и изучить новые идеи и утащить их к себе в проект в более мейнстримовом виде. (хотя это не всегда получится, например Expression_problem замечательно решается в Haskell, Scala и Nemerle (за счёт макросов), но в Java/C# это будет неполное решение или компромиссное)
Haskell, (Lisp), (Clojure), Scala, Nemerle, Ocaml(+P4) — если хочешь освоить силу метапрограммирование и найти слабые точки этого подхода.
О Руби, Питоне и прочих динамических языках может быть даже не стоит говорить, ибо подобные вещи нетрудно делать самому и никакую теорию типов при этом знать не нужно. Изучать там нечего, разве что API библиотек и принятые соглашения. Если не применять на практике, то можно считать время убитым впустую.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, Mamut, Вы писали:
M>>Erlang — распределенные системы, часто — в качестве распределенного «клея» между компонентами системы
N>А чем он лучше какого-нибудь Active MQ?
Тем, что ActiveMQ — это просто система посылки сообщений. В Erlang'е — вся инфраструктура для создания распределенных приложений, включая такие вещи, как supervision trees и — главное — полный контроль над ошибками с возможностью грамотной их обработки.
Здравствуйте, Ikemefula, Вы писали:
I>Всякая алгоритмическая хрень. Например анализ дерева делать в обычном ОО-языке крайне неудобно, зато удобно в любом другом где есть PM.
Анализ дерева делается на ура средствами любого языка поддерживающего паттер-матчинг (ПМ). Более того. Деревья сами по себе не самоцель, а всего лишь структуры данных которыми представляются некие модели. А раз есть модели, то всегда можно найти более подходящие средства для работы с ними нежели просто ПМ и АлгТД.
Уверен, что нет ни одной серьезной задачи которые нельзя было бы решить на том же Немерле так же просто и красиво как на F#. Скажу больше. Есть множество задач решение которых на Немерле будет выглядеть куда более элегантно (язык то не фиксированный). Стало быть никакой специализированности у F# нет. Есть только несколько фич отсутствующих в C#. И синтаксис который отбивает желание его изучать у 90% потенциальной аудитории.
Так что он не специализированного назначения, а для специализированного контингента, который пришел в программирование через ОКамл, или подсел на тру ФП аля Хаскель и хочет использовать этот же стиль в рамках дотнета. А такого народа точно не много.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, skodnik, Вы писали:
S>Здравствуйте, Злобастик, Вы писали:
З>>Здравствуйте, skodnik, Вы писали:
S>>>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
З>>Посоветую взять рубанок и пойти на завод. S>Я .NET работаю 10+ лет
Здравствуйте, Lorenzo_LAMAS, Вы писали:
M>>Если удаленная разработка, то тут уже сказали: C#, Java и т.п. На Haskell/Erlang/Clojure удаленшиков редко берут, обычно с переездом на место. M>>Если поразмять мозги — то пофиг, какой из них
L_L>А ты сам-то, сейчас на работе Эрланг используешь?
Здравствуйте, skodnik, Вы писали:
S>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
Здравствуйте, Злобастик, Вы писали:
З>Здравствуйте, skodnik, Вы писали:
S>>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
З>Посоветую взять рубанок и пойти на завод.
Я .NET работаю 10+ лет
S>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
Здравствуйте, skodnik, Вы писали:
S>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
Если удаленная разработка, то тут уже сказали: C#, Java и т.п. На Haskell/Erlang/Clojure удаленшиков редко берут, обычно с переездом на место.
Если поразмять мозги — то пофиг, какой из них
Здравствуйте, skodnik, Вы писали:
M>>На Haskell/Erlang/Clojure удаленшиков редко берут, обычно с переездом на место.
S>Какова область применения каждого не подскажете?
Хаскел прежде всего для обкатки идей в области ФП предназначен. Erlang ориентирован большей частью на коммуникации. Closure вообще особо не используется нигде всерьез. С практической точки зрения erlang лучше всего, но я бы посоветовал все же что нибудь типа F# или Scala.
... << RSDN@Home 1.2.0 alpha 5 rev. 52 on Windows 7 6.1.7601.65536>>
Здравствуйте, VladD2, Вы писали:
VD>>>Если ты дотнечик, то советую взять Nemerle или на худой конец F#. W>>У худоого конца есть гигантский плюс перед Nemerle.
VD>Нет у него никаких плюсов. Ну, или не будет в ближайшем времени.
F# уже светится в вакансиях, а nemerle до этого как до луны пешком.
Здравствуйте, hi_octane, Вы писали:
I>>F# уже светится в вакансиях, а nemerle до этого как до луны пешком.
_>Помнится в годы 2002-2005 C# прошёл путь от полностью нового языка на полностью новой платформе до мэйнстрима. За такой же промежуток времени, при поддержке той же компании, F# на уже известной вдоль и поперёк платформе прошёл путь до "светится в вакансиях". Причём на этом форуме в разделе decl вовсю обсуждается в духе "F# не нужен". Что-то мне подсказывает что скорее C# по фичам догонит F#, чем из него выйдет что-то годное. Ну или может это спланированный отстойник для отсеивания нужных и лишних фич за счёт энтузиастов, потому как в labs тусуются ну совсем гики
Здравствуйте, hi_octane, Вы писали:
I>>Он всегда был специального назначения. Наверное я неправильно выразился, кроме того что язык специального назначения, задачи которые он решает не встречаются в мейнстриме.
_>Это какие такие задачи? А то F# когда-то хвалили за WebSharper, уж более матёрого мэйнстрима не найти. Давно хвалили, и он до сих пор "как живой" Да и непохоже это на обычные действия MS, они в поставку студии чистый мэйнстрим пихают.
Всякая алгоритмическая хрень. Например анализ дерева делать в обычном ОО-языке крайне неудобно, зато удобно в любом другом где есть PM.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Ikemefula, Вы писали:
I>>F# заточен в основном под задачи, которые не встреваются в мейнстриме. Сравнение с немерле здесь вообще ничего не меняет.
VD>А давай ты вместо того чтобы делать ничем не обоснованы заявления попытаешься объяснить свою позицию. Ну, там примеры задач приведешь и объяснить чем же таким F# на них заточен больше чем какой-нибуть ОКамл или Немерл. А? А то повторение одного и того же спорного утверждения не делает это утверждение истинным.
Уже сделал. Ни в одном из мейнстримных языков нет PM. Тебя это не смущает ?
Здравствуйте, Ikemefula, Вы писали:
I>"Уникальность" ты для чего сюда притянул ? Я про это ничего не говорил. I>Если про специализацию, то ПМ и даёт эту специализацию, т.е. возможность решать целый класс задач.
ОК, узкоспециализированность (не вижу тут особой разницы). Так какой же класс? И почему другие ФЯ этого не дают? А если дают, то какая же это тогда специализация?
Да и нет таких задач которые можно было бы решать только ФП-методами. ФП-метод — это банальное структурное программирование. Все ФП это только мега-сахар для него.
I>Ты определись, мейнстрим или не мейнстрим. Если не мейнстрим то надо искать жостцкую специализацию под определенные задачи.
Давай начнем с твоего определения "специализации задачи". ОК?
>>Обычный ЯП с хорошей поддержкой ФП.
I>Обычный == мейнстрим.
Это мягко говоря натянутое равенство.
Да и без разницы. Я все еще хочу услышать именно о специализации.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
05.07.12 15:58: Перенесено модератором из 'О жизни' — AndrewVK
Здравствуйте, TMU_1, Вы писали:
S>>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
TMU>Java, C#.
На C# я работу работаю. Раньше, когда работы было мало и становилось скучно — изучал неведанное в .NET и C#. С удовольствием изучал нововведения в язык и платформу. Не скажу что знаю все об этом стеке но точно знаю 20% который покрывает на 99% потребности.
Пробовал окунаться в стек Java — перехотел. (НЕ ХОЛИВАРИТЬ!)
Подумалось мне что функциональщина будет интересна размять мозги. Тем более что в универе как то мимо пролога и лиспа прошел как по коридору — не заходя ни в одни двери.
M>Если удаленная разработка, то тут уже сказали: C#, Java и т.п. На Haskell/Erlang/Clojure удаленшиков редко берут, обычно с переездом на место. M>Если поразмять мозги — то пофиг, какой из них
А ты сам-то, сейчас на работе Эрланг используешь?
Of course, the code must be complete enough to compile and link.
Здравствуйте, skodnik, Вы писали:
S>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
"С точки зрения перспектив удаленной разработки" — никакой из вышеперечисленных
M>>На Haskell/Erlang/Clojure удаленшиков редко берут, обычно с переездом на место.
S>Какова область применения каждого не подскажете?
Да, по сути, везде, где угодно
Haskell используют в Селектеле, уже точно не помню, для чего
Erlang — распределенные системы, часто — в качестве распределенного «клея» между компонентами системы
Clojure не знаю
Здравствуйте, skodnik, Вы писали:
S>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
Erlang
Здравствуйте, skodnik, Вы писали:
S>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
C точки зрения перспектив удаленной разработки — ничего.
С точки зрения ФП — Хаскелл.
А если хочется учить Лисп, то лучше Лисп и учить, а не Кложур, который есть весьма укушенный его вариант.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>А если хочется учить Лисп, то лучше Лисп и учить, а не Кложур, который есть весьма укушенный его вариант.
Тогда лучше Схему — это фактически Лисп плюс система стандартов минус старые лисповые грабли. Идеальный вариант из этого семейства.
Здравствуйте, skodnik, Вы писали:
S>Подумалось мне что функциональщина будет интересна размять мозги.
Если размять мозги, то это совсем другое дело.
Если ты дотнечик, то советую взять Nemerle или на худой конец F#. Будет намного проще в изучении. Особенно в случае Немерла. Ведь изучать только новую парадигму куда проще чем новое окружение и новый синтаксис.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Wolverrum, Вы писали:
VD>>Если ты дотнечик, то советую взять Nemerle или на худой конец F#. W>У худоого конца есть гигантский плюс перед Nemerle.
Нет у него никаких плюсов. Ну, или не будет в ближайшем времени.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, skodnik, Вы писали:
S>Думаю какой язык начать изучать. После прочтения википедии по этим языкам больше понравился Closure. С точки зрения перспектив удаленной разработки что посоветуете?
F#, стек технологий практически тот же и вдобавок есть вакансии на F#.
I>F# уже светится в вакансиях, а nemerle до этого как до луны пешком.
Помнится в годы 2002-2005 C# прошёл путь от полностью нового языка на полностью новой платформе до мэйнстрима. За такой же промежуток времени, при поддержке той же компании, F# на уже известной вдоль и поперёк платформе прошёл путь до "светится в вакансиях". Причём на этом форуме в разделе decl вовсю обсуждается в духе "F# не нужен". Что-то мне подсказывает что скорее C# по фичам догонит F#, чем из него выйдет что-то годное. Ну или может это спланированный отстойник для отсеивания нужных и лишних фич за счёт энтузиастов, потому как в labs тусуются ну совсем гики
SQL язык специального назначения. И даже он то-ли тушкой, то-ли чучелом, но в мэйнстрим пролез, сначала в C#, теперь уже и в Scala что-то появляется. JavaScript язык специального назначения — ограничен песочницей браузера. Был, теперь пролез на сервера. Erlang вот тоже вылез из своей телефонной ниши.
С F# ситуация противоположная. Сначала ему дифирамбы тут пели, что функциональное программирование теперь на .NET, а теперь он вдруг специального назначения стал? Скоро наверное надо будет убирать его из стандартной поставки студии, и давать качать как тот же Axum.
Здравствуйте, hi_octane, Вы писали:
I>>F# как бы ЯП специального назначения
_>SQL язык специального назначения. И даже он то-ли тушкой, то-ли чучелом, но в мэйнстрим пролез, сначала в C#, теперь уже и в Scala что-то появляется. JavaScript язык специального назначения — ограничен песочницей браузера. Был, теперь пролез на сервера. Erlang вот тоже вылез из своей телефонной ниши.
_>С F# ситуация противоположная. Сначала ему дифирамбы тут пели, что функциональное программирование теперь на .NET, а теперь он вдруг специального назначения стал? Скоро наверное надо будет убирать его из стандартной поставки студии, и давать качать как тот же Axum.
Он всегда был специального назначения. Наверное я неправильно выразился, кроме того что язык специального назначения, задачи которые он решает не встречаются в мейнстриме. С SQL, JS ровно наоборот, языки специальные но все задачи в мейнстриме.
I>Он всегда был специального назначения. Наверное я неправильно выразился, кроме того что язык специального назначения, задачи которые он решает не встречаются в мейнстриме.
Это какие такие задачи? А то F# когда-то хвалили за WebSharper, уж более матёрого мэйнстрима не найти. Давно хвалили, и он до сих пор "как живой" Да и непохоже это на обычные действия MS, они в поставку студии чистый мэйнстрим пихают.
Здравствуйте, Ikemefula, Вы писали:
I>Он всегда был специального назначения. Наверное я неправильно выразился, кроме того что язык специального назначения, задачи которые он решает не встречаются в мейнстриме. С SQL, JS ровно наоборот, языки специальные но все задачи в мейнстриме.
Открой нам, что же за задачи он решает, что не решает ни один другой язык?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Уверен, что нет ни одной серьезной задачи которые нельзя было бы решить на том же Немерле так же просто и красиво как на F#. Скажу больше. Есть множество задач решение которых на Немерле будет выглядеть куда более элегантно (язык то не фиксированный). Стало быть никакой специализированности у F# нет. Есть только несколько фич отсутствующих в C#. И синтаксис который отбивает желание его изучать у 90% потенциальной аудитории.
F# заточен в основном под задачи, которые не встреваются в мейнстриме. Сравнение с немерле здесь вообще ничего не меняет.
Здравствуйте, Ikemefula, Вы писали:
I>F# заточен в основном под задачи, которые не встреваются в мейнстриме. Сравнение с немерле здесь вообще ничего не меняет.
А давай ты вместо того чтобы делать ничем не обоснованы заявления попытаешься объяснить свою позицию. Ну, там примеры задач приведешь и объяснить чем же таким F# на них заточен больше чем какой-нибуть ОКамл или Немерл. А? А то повторение одного и того же спорного утверждения не делает это утверждение истинным.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Ikemefula, Вы писали:
I>Уже сделал. Ни в одном из мейнстримных языков нет PM. Тебя это не смущает ?
А как из того, что ни в одном мэйстрим-языке нет МП выводится уникальность и узкоспециализированность F#? Языков с поддержкой МП есть до одурения. Они возможно не мэйстрим но их наличие говорит о том, что специализированного в F# нет ни грамма. Обычный ЯП с хорошей поддержкой ФП.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Ikemefula, Вы писали:
I>>Уже сделал. Ни в одном из мейнстримных языков нет PM. Тебя это не смущает ?
VD>А как из того, что ни в одном мэйстрим-языке нет МП выводится уникальность и узкоспециализированность F#?
"Уникальность" ты для чего сюда притянул ? Я про это ничего не говорил.
Если про специализацию, то ПМ и даёт эту специализацию, т.е. возможность решать целый класс задач.
>Языков с поддержкой МП есть до одурения. Они возможно не мэйстрим но их наличие говорит о том, что специализированного в F# нет ни грамма.
Ты определись, мейнстрим или не мейнстрим. Если не мейнстрим то надо искать жостцкую специализацию под определенные задачи.
>Обычный ЯП с хорошей поддержкой ФП.
Здравствуйте, VladD2, Вы писали:
VD>ОК, узкоспециализированность (не вижу тут особой разницы). Так какой же класс? И почему другие ФЯ этого не дают? А если дают, то какая же это тогда специализация?
Наличие других ФЯ ничего не меняет. Представь себе, Форд Т с выходом других автомобилей не стал самокатом, самосвалом или бульдозером.
VD>Да и нет таких задач которые можно было бы решать только ФП-методами. ФП-метод — это банальное структурное программирование. Все ФП это только мега-сахар для него.
Ну тогда и всё программирование это сахар для ассемблера.
I>>Ты определись, мейнстрим или не мейнстрим. Если не мейнстрим то надо искать жостцкую специализацию под определенные задачи.
VD>Давай начнем с твоего определения "специализации задачи". ОК?
Я уже дал — всевозможные алгоритмы, деревья и тд. Представь себе страшное — деревья не ради деревьев.