Как стать автором
Обновить

Комментарии 49

стоит упомянуть, что для Nemerle есть довольно качественная интеграция с MS Visual Studio — благодаря людям с RSDN

потому что никто не променяет удобство MSVC# IDE на язык красивый, но с «голой задницей» :)
Да, Влад проделал гигантскую работу. Эта интеграция входит в дистрибутив, который можно скачать с официального сайта.
Мне кажется, что, если бы не Влад, который помимо огромной работы по компилятору, написал кучу статей и двинул Nemerle в массы (во всяком случае в России), язык вообще мог так и остаться лишь диссертацией парочки польских аспирантов.
Кто такой Влад? Можно для непосвященных подробности?
Вам не надо знать подробностей про Влада — Влад сам знает все подробности про вас!
(я чисто потроллить, я тоже ни фига не знаю, кто он такой)
Автор, а где примеры кода, синтаксиса, отличий от C#?
У меня лично по материалам статьи не получилось составить никакого мнение о языке. Прочитал только ваши впечатления.
Здесь можно почитать по-русски, собственно сборник статей Влада
www.rsdn.ru/summary/4022.xml
Если поверхностно, то тип, при объявлении переменной, указывается после имени самой переменной через двоеточие (как в паскале?). Но зачастую это можно опускать, так как компилятор сам догадается. Другая особенность — все внутри метода является выражением. Более приятные отличия я уже указал в статье — кортежи, функциональные типы вместо делегатов; забыл правда про то, что внутри метода можно объявлять локальные функции. Удобно мыслить, что внутри метода весь код функциональный или процедурный, а масштабом выше ООП.
Спасибо, что заметили, я специально пытался писать так, что бы описание языка свести к необходимому минимуму, а именно, что он обладает строгой статической типизацией и является .net языком. Этого достаточно, что бы определить его как кандидата на замену C#. Во второй части я написал, что использование nemerle помогло сократить мне код в два раза и портирование заняло 3 дня, при условии что на nemerle я раньше не писал. Думаю этой информации достаточно, что бы решить изучать nemerle или нет.
автор, перенеси топик в habrahabr.ru/blogs/nemerle
shai_xylyd — как всегда на острие ножа!
чем отличается от Scala? Там реализованы те же идеи, но на JVM.

Плюс, уже давно существует, большая коммьюнити и отличная двунаправленная совместимость с Java.
>> чем отличается от Scala?

хотя бы тем, что оно для CLR

совсем разные инфраструктуры вокруг языка

сами языки отличаются существенно — в Nemerle всё построено вокруг макросов (как в Lisp), можно легко делать embedded DSL'и

Nemerle — язык экстремально плагинообразный (даже такие конструкции как while, for — это макросы из стандартной библиотеки)

Scala — монолитный
Русскоговорящее сообщество nemerle живет здесь. Возможно, оно самое активное сообщество пользователей nemerle в мире, по-крайней мере статьи на английском по метапрограммированию являются переводом русских статьей.
Да, но с человеческим лицом и макросами.
Сразу вопросы:
1) Хотелось бы увидеть сравнение с Haskell, и понять, насколько он лучше и лучше ли;
2) Есть ли реализации подо что-либо, кроме CLR;
3) Технология лиценизированная или открытая;
4) Может ли язык работать в интерпретируемом режиме.
На Haskell я написал всего одну прогу, поэтому я не могу сравнивать, но nemerle это в первую очередь улучшенный C#, возможностями из haskell и LISP, поэтому функции и методы не обязаны быть чистыми.

Реализация nemerle распространяется под BSD и существует только под .net/mono, является ли само слово nemerle trademark я не знаю.

Да — nemerlish.
Я не хочу сказать ничего плохого про Nemerle, хотя его сриптовость и строгая типизация — это большой плюс. Но Nemerle никогда не будет mainstream.
А вот F#, рожденный в результате брака между Ocaml и .Net, иммет все шансы им стать.
Уже известно что он будет включен в поставку VS.2010
Это тоже язык со строгой типизацией, и у на нем тоже можно писать скрипты.
Что значит mainstream?
Очень популярный, иногда попсовый.
В данном конкретном случае значит, что OCaml уже имеет большое количество поклонников и написанного кода. :)

Собственно, там даже кое-что из инструментария уже перенесено, например ocamllex и ocamlyacc идут непосредственно с F# (называются, соответственно, fslex и fsyacc).
А чего в нем такого?

Судя по скрину — что-то нечистое, строго и статически типизированное, со странным синтаксисом. :) В общем, ничем не лучше SML или OCaml.

Прозреваю, что match() позволяет делать сравнение с образцом (наподобие case… of из Хаскеля), потом идут клозы, а внутри одного из них находится guard. :)
Точно, те же яйца, только в профиль и под .net. Этот язык стоит рассматривать как улученный C#, возможностями из OCaml, lisp. То есть, кто пишет на nemerle, скорее всего раньше писали на C#, а те, кто использует F#, опять же скорее всего, перешли на него с Ocaml.
>> В общем, ничем не лучше SML или OCaml.

странное заявление…

Nemerle — для .NET

а вот попробуй на SML написать что-нибудь для ASP.NET, к примеру

или GUI на WPF к caml-коду привязать

тут можно сесть и решать конкретные задачи, а не заниматься сравнением сферических языков в вакууме
Решать конкретные и популярные задачи на экспериментальном языке? Смутно представляю контору, которая сейчас на это может решиться. Эту часть все и без меня понимают…

Любой язык, фреймворк, API должны пообтесаться в каком-нибудь бурном открытом сообщесте с годика три-четыре; потом энтузиасты на нем должны суметь реализовать какой-нибудь прикладной проект, который будет сделан лучше, быстрее или проще аналогичных проектов на других инструментах…

И только потом кто-то из коммерческой тусовки задумается о такой технологии.

Думается, что заморачиваться на еще один полуспециализированный язык — дело дохлое и неблагодарное. Надо писать на каком-нибудь универсальном mainstream-языке — получится быстрее и эффективней; ну или маргинальном, но хотя бы испытанном временем. Скажем, тот же Haskell(да-да-да), OCaml, LISP…
в одной из контор, где я работал, мы использовали пару раз Nemerle в качестве скриптового языка для внутренних нужд (tool chain)

т.к. Nemerle это еще один язык для .NET, его можно бесшовно присунуть в любой .NET-проект
Ничего плохого не хочу сказать о ваших архитекторах, но… почему такой раритетный язык?… разве не лучше вшить в проект и, тем более, инструментарий что-то, что хотя бы отчасти знакомо большому число программистов? IronPython? JavaScript? что-нибудь-там-еще-из-популярных-и-полезных?

И, если говорить лично обо мне, то «привсунуть в любой .NET проект» означает то же самое, что «можно привсунуть ТОЛЬКО в .NET проект», причем код нельзя будет потом использовать нигде. А Маки? А *nix? А...?
nemerle доступен под mono.
умные люди мне говорили, что Моно — это такая штука, от которой все начинает работать неторопливо :-)
Это бесконечный разговор. :)

Для многих программистов (в том числе и для меня) переносимость не является ни показателем, ни критерием. Иными словами, можно работать всю жизнь, и не насытить своей работой те 93% компьютеров, которые работают под wintel. А для веба это, фактически, вообще никакой роли не играет.
Вот для веба как раз таки и играет, в отличие от домашних систем. Большинство серверов сейчас, и последние полтора десятилетия — Apache на базе все тех же *nix. А если использовать что-то другое, то сразу приходится упираться в стоимость софта из нашего любимого комплекта.

Ну их в болото…

А ведь большая часть работы сейчас — это именно веб-приложения, не так ли?

Я с Апача и связанных с ним технологий ушёл в 2004-м году, о чём ни разу не пожалел. В стоимость софта никак не упираюсь, поскольку аренда виндового хостинга соизмерима с арендой хостинга юниксового.

На masterhost.ru так просто — рубль в рубль. Но я сижу на parking.ru, они меня более чем устраивают.
Стоимость хоста — одно, построение какой-то инфраструктуры на этом всем добре — совсем другое, вы же понимаете.

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

Представляете, во сколько обойдется коммерческая лицензия IIS + MsSQL( :-) так же база называется) + что-то-что-должно-быть-в-наборе?

Ой, флеймим :)))
> Стоимость хоста — одно, построение какой-то инфраструктуры на этом всем добре — совсем другое,
> вы же понимаете.

Если речь идёт не об обычном хостинге, а об инфраструктуре, то ситуация становится гораздо интереснее. Вкратце — стоимость всех этих лецензий по сравнению со стоимостью железа, зарплат, налогов и прочего начинает составлять проценты. Где-то 5. :)

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

Что Вы имеете в виду под «дешевле»? Я действительно не понял. Намного ли дороже стоит страничка myspace (писанная на ASP.NET) по сравнению с livejournal?

> Представляете, во сколько обойдется коммерческая лицензия IIS + MS SQL.

Не поверите, знаю, во сколько обойдётся. Самый дешёвый вариант — ~500 долларов (стоимость Windows 2008 SmallBusiness Server + бесплатная версия MS SQL Express с ограничением на размер базы 4Гб). Если БД должна быть больше, можно брать SmallBusiness Server с полным SQL сервером за ~1200-1300 долларов. Чтобы были какие-то ориентиры, добавлю, что для подобного проекта железо обойдётся тысяч в 5 долларов и разработка в 20-25.

И даже здесь есть варианты, например, Server Web Edition, он дешевле. Кстати, недавно раздавался бесплатно. :)
Есть аренда серверов с предустановленным п/о, есть Azure, хостинг ASP.NET приложений.

В целом, для любого бюджета решение на базе продуктов Microsoft оказывается по стоимости соизмеримым. А учитывая преимущества для разработчиков, могут оказаться и дешевле. :)
Давайте обойдемся без «оказаться». Чем сложнее система, тем больше стоит лицензионный софт. Я недавно сравнивал стоимости лицензий Oracle, Ms SQL Server, DB2. Там вообще начинается разговор в стиле«за одно ядро», «за рабочее место», тра-та-та… Уже и на десятки тысяч идет учет… А то и сотни… Вы же видели такие прайслисты, не так ли? :)

>Если речь идёт не об обычном хостинге, а об инфраструктуре, то ситуация >становится гораздо интереснее. Вкратце — стоимость всех этих лецензий по >сравнению со стоимостью железа, зарплат, налогов и прочего начинает >составлять проценты. Где-то 5. :)

Раз уж мы заговорили об инфраструктуре, то 4Гб — очень немного, так что тут дешевой маркетинговой уловкой не обойтись. В моей фирме средней руки уже не раз и не два заканчивалось место на винтах, коих не мало. И это ведь были небольшие станции для пробных проектов, где даже толком база-то не использовалась.

А PostgreSQL будет стоить бесплатно в любых масштабах, и любом масштабировании.

>И даже здесь есть варианты, например, Server Web Edition, он дешевле. >Кстати, недавно раздавался бесплатно. :)

Опять же, в лицензиях тех версий обычно написано… Ну вы знаете, что там говорят о широком коммерческом применении. Никто и ничего в корпоративном мире просто так не раздает. Разве только дома у себя побаловаться на небольшом стартапе, и таким образом коммьюнити раззадорить, и собственных спецов научить.

>В целом, для любого бюджета решение на базе продуктов Microsoft >оказывается по стоимости соизмеримым. А учитывая преимущества для >разработчиков, могут оказаться и дешевле. :)

Не знаю. Работаю сейчас параллельно с PostgreSQL на Apache; и MsSQL. Никак не увижу преимуществ последнего в моих проектах.

И, наконец, разработчикам ведь надо еще со Студией работать для всей этой прелести. А это тоже бабки.

Давайте подведем итоги…

По мне так… Соль всех этих дешевых уловок заключается в том, чтобы урвать кусочек вашей-нашей прибыли, как только она появится, и надо будет развиваться.

«Легче-лучше» — это такая легенда. Это недавно начались разговоры о том, что, мол, «в конечном итоге окажется дешевле», когда стало ясно, что публика почему-то делает выбор в пользу LAMP.
> Давайте обойдемся без «оказаться».

Давайте без «давайте».

> Там вообще начинается разговор в стиле«за одно ядро», «за рабочее место», тра-та-
> та… Уже и на десятки тысяч идет учет… А то и сотни…

И? В чём противоречие с озвученной оценкой в 5%? Или на этих проектах супердешёвые программисты? Или беушное железо десятилетней давности?

> Раз уж мы заговорили об инфраструктуре, то 4Гб — очень немного, так что тут
> дешевой маркетинговой уловкой не обойтись.
> В моей фирме средней руки уже не раз и не два заканчивалось место на винтах, коих
> не мало.

В огороде бузина, в Киеве дядька.

> А PostgreSQL будет стоить бесплатно в любых масштабах, и любом масштабировании.

Вам понятие «совокупная стоимость владения» не знакомо?

> Опять же, в лицензиях тех версий обычно написано… Ну вы знаете, что там говорят о
> широком коммерческом применении.

Я да, знаю. А Вы — нет.

> Не знаю. Работаю сейчас параллельно с PostgreSQL на Apache; и MsSQL. Никак не
> увижу преимуществ последнего в моих проектах.

Язык то программирования какой? PHP?

> И, наконец, разработчикам ведь надо еще со Студией работать для всей этой
> прелести. А это тоже бабки.

[вздыхает]

С Вами приятно дискутировать, Вы совершенно ничего не знаете. Но и совершенно бесполезно, поскольку знать Вы, вероятно, тоже не хотите. Иначе бы за 3 года хотя бы краем уха услышали, что есть версия бесплатная.

> По мне так… Соль всех этих дешевых уловок заключается в том, чтобы урвать кусочек
> вашей-нашей прибыли, как только она появится, и надо будет развиваться.

О, да! Циничный Б. Гейтс спит и видит, как бы отобрать у вас кровный стольник, заныканный на пиво с друзьями в субботу. И делать ему больше нечего.

> «Легче-лучше» — это такая легенда. Это недавно начались разговоры о том, что,
> мол, «в конечном итоге окажется дешевле», когда стало ясно, что публика почему-то
> делает выбор в пользу LAMP.

Историю вопроса изучать не пробовали?
Вот вы что-то начинаете давить авторитетом. Обиделись?

Смотрю прайслист Майкрософта на
www.microsoft.com/sqlserver/2005/en/us/Pricing.aspx

От бесплатных, но ограниченных Express и Compact до платных и со сложной схемой лицензирования Enterprise Edition за 25000 зеленых за процессор. Чего я здесь неправильно понимаю?

Дальше стоимости IIS:
www.microsoft.com/windowsserver2008/en/us/pricing.aspx

Дифференциируется от 200 до 8000 зеленых за всякие непонятные замуты, и отключенные фишки.

У нас же спор получается скучный, вы слышали все мои аргументы; я же десять раз слышал все ваши — они как из маркетинговых кампаний.
> Вот вы что-то начинаете давить авторитетом. Обиделись?

Психотерапевт-онлайн, ставите диагноз через интернет? По фотографии не лечите?

> От бесплатных, но ограниченных Express и Compact до платных и со сложной
> схемой лицензирования Enterprise Edition за 25000 зеленых за процессор. Чего я
> здесь неправильно понимаю?

Я не знаю. Не вижу никакой связи между этим конкретным фактом и теми тезисами, которые я приводил выше. Что это — опровержение? Какого тезиса?

> Дифференциируется от 200 до 8000 зеленых за всякие непонятные замуты, и
> отключенные фишки.

Ну да, дифференцируется. И что? Опять непонятно, какой тезис опровергаете.

> У нас же спор получается скучный, вы слышали все мои аргументы; я же десять
> раз слышал все ваши — они как из маркетинговых кампаний.

Ну да, это действительно логика железная. Раз назвали аргумент маркетинговым, значит, он ложный, и Вы правы. Поздравляю.
> а вот попробуй на SML написать что-нибудь для ASP.NET, к примеру

А зачем? На SML пишут интерпретаторы, компиляторы и проверку теорем :)

> или GUI на WPF к caml-коду привязать

Это тоже незачем. Тем более, что мне не нравится WPF. :)

> тут можно сесть и решать конкретные задачи, а не заниматься сравнением сферических языков в вакууме

Это OCaml что ли «сферический язык в вакууме»? O_O
для моих задач — абсолютно сферический, т.к. нет нужной мне инфраструктуры
Про твои задачи разговора не было. Умерь свое ЧСВ.
Про задачи не было упоминания в вашем замечание про то, что nemerle ничем не лучше, чем ocaml. Следовательно можно считать, что это утверждение касается всех предметных областей, но alex_blank привел предметной области, где преимущество nemerle перед ocaml налицо, и вам не стыдно за свою реакцию на это?
> Следовательно можно считать, что это утверждение касается всех предметных областей

Нет, можно считать, что Nemerle как язык ничем не лучше OCaml. Я об этом. Кстати, я не против Nemerle, используйте его, если Вам нравится. :)

У OCaml есть сильное сообщество и OCamlForge, а у Nemerle нету. Это гораздо больший минус для Nemerle, чем поддержка этого вашего WPF.

> но alex_blank привел предметной области, где преимущество nemerle перед ocaml налицо, и вам не стыдно за свою реакцию на это?

Нет, не стыдно. Есть там WPF, нету WPF, как-то все равно. Если там можно писать GUI-приложения в функционально-реактивном стиле, то такую интеграцию можно только привествовать, а если нет — то хрен редьки не слаще.
Автор же в топике написал чем он лучше. Берем проект на C# и переписываем или дописываем куски в которых это удобно на Nemerle.
Ещё один мёртворожденный язык…
В Nemerle совершенно бесподобно совмещены эти три мира (ООП, ФП, макросы), и при этом язык весьма и весьма интуитивен (после C# и ознакомления с ФП всё вообще выглядит родным).

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

Дорого бы дал, чтобы в VS 2010 увидеть родную поддержку не F#, а Nemerle. Но это скорее мечты :(
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории