Pull to refresh

Comments 49

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

потому что никто не променяет удобство MSVC# IDE на язык красивый, но с «голой задницей» :)
Да, Влад проделал гигантскую работу. Эта интеграция входит в дистрибутив, который можно скачать с официального сайта.
Мне кажется, что, если бы не Влад, который помимо огромной работы по компилятору, написал кучу статей и двинул Nemerle в массы (во всяком случае в России), язык вообще мог так и остаться лишь диссертацией парочки польских аспирантов.
Кто такой Влад? Можно для непосвященных подробности?
Вам не надо знать подробностей про Влада — Влад сам знает все подробности про вас!
(я чисто потроллить, я тоже ни фига не знаю, кто он такой)
Автор, а где примеры кода, синтаксиса, отличий от C#?
У меня лично по материалам статьи не получилось составить никакого мнение о языке. Прочитал только ваши впечатления.
Если поверхностно, то тип, при объявлении переменной, указывается после имени самой переменной через двоеточие (как в паскале?). Но зачастую это можно опускать, так как компилятор сам догадается. Другая особенность — все внутри метода является выражением. Более приятные отличия я уже указал в статье — кортежи, функциональные типы вместо делегатов; забыл правда про то, что внутри метода можно объявлять локальные функции. Удобно мыслить, что внутри метода весь код функциональный или процедурный, а масштабом выше ООП.
Спасибо, что заметили, я специально пытался писать так, что бы описание языка свести к необходимому минимуму, а именно, что он обладает строгой статической типизацией и является .net языком. Этого достаточно, что бы определить его как кандидата на замену C#. Во второй части я написал, что использование nemerle помогло сократить мне код в два раза и портирование заняло 3 дня, при условии что на nemerle я раньше не писал. Думаю этой информации достаточно, что бы решить изучать nemerle или нет.
чем отличается от 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
Это тоже язык со строгой типизацией, и у на нем тоже можно писать скрипты.
Очень популярный, иногда попсовый.
В данном конкретном случае значит, что 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? А...?
умные люди мне говорили, что Моно — это такая штука, от которой все начинает работать неторопливо :-)
Это бесконечный разговор. :)

Для многих программистов (в том числе и для меня) переносимость не является ни показателем, ни критерием. Иными словами, можно работать всю жизнь, и не насытить своей работой те 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. Но это скорее мечты :(
Sign up to leave a comment.

Articles