Re[9]: За счет чего выстреливают языки?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.07.15 16:31
Оценка: +1 :)
Здравствуйте, WolfHound, Вы писали:

_>>А что у нас может тут предложить Nemerle? ) Вот скажем есть какой-то пакет на сайте Nemrle, который я могу скачать, установить и после этого создать за 2-3 минуты например готовое мобильное приложение (это же сейчас самый пик моды), запускающиеся на Андроиде и iOS?

WH>А на немерле ты можешь написать за один человеко-год то, что на C# потребует 10-100 человеко-лет.

Ты, как минимум, сильно преувеличиваешь. Можешь привести пример, где nemerle повысит продуктивность хотя бы в 5 раз? То есть для одной и той же задачи код на nemerle будет в 5 раз короче кода на C#.
Re[2]: За счет чего выстреливают языки?
От: Privalov  
Дата: 11.07.15 16:53
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>...PL/1 тоже имел поддержку IBM, но язык — монстр, и как только нашлось чем его заменить — скончался.


Практически со всем согласен, кроме этого. PL/1 не надо было ничем заменять. Он сам был призван заменить Фортран и Кобол. Но сделать этого не смог из-за монструозности и тормознутости по сравнению с тем же Фортраном. Умер, так сказать, естественной смертью. Естественный отбор.

А вот почему умер Алгол-60, я не знаю. Скажу только. что за всю жизнь я не видел ни одной программы на алголе.
Re[10]: За счет чего выстреливают языки?
От: WolfHound  
Дата: 11.07.15 17:37
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Ну раз есть, то ты без проблем можешь кинуть мне ссылку на некий дистрибутив, установив который, я смогу за пару минут создать приложение типа калькулятора, работающие ну хотя бы под виндой и андроидом (двумя главными пользовательскими платформами)?

В исходном сообщении ни слова про андройд не было.
Немерле генерирует обычные .НЕТ сборки которые работают везде где есть .НЕТ.
Про андройд я ничего не знаю.

_>Да, VisualStudio и т.п. ерунды у меня уже давно не стоит, если что. )

Ну, извини.
Немерле прекрасно встаёт на бесплатную VisualStudio.
Или тебе обязательно нужно чтобы был один инсталятор, а не два?

_>Это круто (без шуток)! А ты можешь назвать конкретную нишу (не везде же так), в которой такой расклад? ) Чтобы мы тут могли оценить её объём, а так же возможно даже посоветовать какие-то маркетинговые ходы для продвижения в ней.

Практически что угодно кроме кнопка-форма-шлёп.
Вот, например впечатление человека, который торгового робота писал.
https://rsdn.ru/forum/nemerle/4812833.1
Автор: hi_octane
Дата: 10.07.12

https://rsdn.ru/forum/nemerle/4281048.1
Автор: hi_octane
Дата: 23.05.11
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: За счет чего выстреливают языки?
От: WolfHound  
Дата: 11.07.15 17:53
Оценка: :)
Здравствуйте, gandjustas, Вы писали:

G>Ты, как минимум, сильно преувеличиваешь. Можешь привести пример, где nemerle повысит продуктивность хотя бы в 5 раз? То есть для одной и той же задачи код на nemerle будет в 5 раз короче кода на C#.

Напиши https://github.com/JetBrains/Nitra на C#.
Как напишешь, возвращайся.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: За счет чего выстреливают языки?
От: Anton Batenev Россия https://github.com/abbat
Дата: 11.07.15 18:02
Оценка:
Здравствуйте, gandjustas, Вы писали:

g> g>> У ПХП была и есть всего одна киллер-фича — писать код в разметке страницы. На момент появления эти фича дала огромный толчок вебу.

g> AB>Да можно еще с десяток фитч придумать для php, который дали огромный толчок вебу и продолжает держать лидирующие позиции по количеству инсталляций — низкий порог вхождения, низкие требования к хостингу, модульная целостность, правка исходников "по живому", преобразования типов и "прощение" множества ошибок...
g> Не-а. Все что ты описываешь было в perl. А первая версия пыха была как раз dsl_ем на perl. Именно фишка написания кода в разметке сделала пых популярным.

Не было и нет этого в perl.

Низкий порог вхождения — это точно не про него, код на перле напоминает brainfuck (особенно после пары рефакторингов разными разработчиками).

Модульная целостность — нет, здравствуй CPAN, самосбор и поддержание всего этого зоопарка, в то время как ~50 .so библиотек php (которые за малым исключением собираются вместе с ним) покрывают over 99% потребностей.

Низкие требования к хостингу — ну тут спорно, конечно, т.к. в то время было "вот тебе /cgi-bin и крутись как хочешь". Тут я сужу из своего опыта эксплуатации современных хостингов как для php, так и для perl/ruby/python.

Ну а кодирование прям в теле html страницы — так в перле есть Mason, Embperl — думаю, что для освоивших перл это не было проблемой.
Управляю вселенной не привлекая внимания санитаров.
Re[6]: За счет чего выстреливают языки?
От: Anton Batenev Россия https://github.com/abbat
Дата: 11.07.15 18:17
Оценка:
Здравствуйте, kaa.python, Вы писали:

k> Обхохочешься. И как его поставить за пределами Windows?


N — это все же windows-only, и тратить ресурсы на системы, где не взлетел mono, особого смысла не имеет.
Управляю вселенной не привлекая внимания санитаров.
Re[4]: За счет чего выстреливают языки?
От: DarkEld3r  
Дата: 11.07.15 22:48
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Но со скалой история еще интереснее. Судя по истории коммитов на github (https://github.com/scala/scala/graphs/contributors) в 2015 году разработка сильно замедлилась. Или уже все написали, но тогда непонятно где маркетинговый бум, или тупо бабло кончилось, тогда мы увидим угасание скалы в ближайшие пару лет.


У них есть экспериментальная платформа — https://github.com/lampepfl/dotty/graphs/contributors. Вроде, там активности больше.
Re[11]: За счет чего выстреливают языки?
От: alex_public  
Дата: 12.07.15 01:12
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>В исходном сообщении ни слова про андройд не было.


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

WH>Немерле генерирует обычные .НЕТ сборки которые работают везде где есть .НЕТ.

WH>Про андройд я ничего не знаю.

Я так и предполагал. Но я это всё спрашивал не с какой-то издёвкой, а с намёком. Что ограничившись .net'ом вы сократили и так не большую (из-за сложности) область ваших потенциальных пользователей где-то раз в 5 (это ещё оптимистичная оценка). Т.е. я конечно же понимаю, что вы благодаря этому получили "на халяву" огромную стандартную библиотеку языка... Но стоило ли оно того?

_>>Да, VisualStudio и т.п. ерунды у меня уже давно не стоит, если что. )

WH>Ну, извини.
WH>Немерле прекрасно встаёт на бесплатную VisualStudio.
WH>Или тебе обязательно нужно чтобы был один инсталятор, а не два?

Нууу можно и два конечно, если они сами интегрируются. Правда если это позволит писать софт только под винду, то оно мне такое уже давно не интересно.

Но даже если предположим, что речь не обо мне, а о разрабочике исключительно под винду. Эти твои два инсталлятора обеспечат требуемый сценарий? ) Т.е. написание с нуля GUI калькулятора на Nemerle за 2-3 минуты?

_>>Это круто (без шуток)! А ты можешь назвать конкретную нишу (не везде же так), в которой такой расклад? ) Чтобы мы тут могли оценить её объём, а так же возможно даже посоветовать какие-то маркетинговые ходы для продвижения в ней.

WH>Практически что угодно кроме кнопка-форма-шлёп.
WH>Вот, например впечатление человека, который торгового робота писал.
WH>https://rsdn.ru/forum/nemerle/4812833.1
Автор: hi_octane
Дата: 10.07.12

WH>https://rsdn.ru/forum/nemerle/4281048.1
Автор: hi_octane
Дата: 23.05.11


Хм, почитал описываемые фичи и увидел, что большинство является таковым только относительно C# (собственно ты именно это и утверждал, я просто уточняю), а скажем в том же C++ легко реализуются. А с учётом последних движений в C++ компиляторах (плагины, доступ к апи и т.п.), то скоро наверное и вообще все. Во всяком случае такие http://rsdn.ru/forum/cpp/6099111
Автор: landerhigh
Дата: 02.07.15
извращения уже пишутся. ))) Да и другие языки есть, с ещё более развитыми средствами. Но это конечно же всё не .net, так что вроде бы какая-то ниша у Nemerle есть... Но у меня есть некоторые сомнения даже относительно неё, из-за специфической ниши самого .net'a. Он же основан на упрощение (как Java) работы относительно системных языков, специально для корпоративных программистов, которые обычно не хватают звёзд с неба. А тут наоборот предлагается "более крутой" C# — а нужен ли он такой вообще? Может быть Nemerle не может взлететь, потому что его потенциальная ниша почти нулевая? )

Т.е. вот если взять для примера тот же Rust — сколько о нём говорят ещё даже до его выхода? ) И дело совсем не в том, что он какой-то очень хороший и даже не в деньгах (не видел никаких рекламых компаний у Mozilla), а в том, что есть очень большая востребованность в системном языке удобнее чем C++. Т.е. огромная потенциальная ниша (Nemerle кстати вообще этот мир не затрагивает, т.к. net). У есть ли востребованность в языке для .net сложнее (в хорошем смысле) чем C#?) У меня есть большие сомнения...
Re[3]: За счет чего выстреливают языки?
От: Pavel Dvorkin Россия  
Дата: 12.07.15 02:19
Оценка: 4 (1)
Здравствуйте, Privalov, Вы писали:

P>А вот почему умер Алгол-60, я не знаю. Скажу только. что за всю жизнь я не видел ни одной программы на алголе.


Я не только видел, но несколько лет писал на нем. Мой первый язык программирования.

А умер он (в СССР) по очень простой причине. До ЕС ЭВМ (на БЭСМ-4, М-220, БЭСМ-6) он был весьма популярен. А на ЕС ЭВМ (== IBM/360) был хороший по тем временам компилятор с Фортрана и плохой с Алгола. Компилятор с Фортрана был любимым детищем IBM, а компилятор с Алгола она сделала, похоже, по принципу "нате отвяжитесь". Поэтому те, кто до этого писали на Фортране , на нем и остались, а те, кто писали на Алголе, перешли на Фортран (я, например).

Кстати, этот компилятор с Фортрана был , думаю, хорош не только по тем временам, но и просто хорош. Оптимизирующий его вариант делал очень неплохой код и требовал для своей работы, страшно вымолвить, 228 Килобайт ОП. Работал он, правда, не очень быстро, так и быстродействие ЕС-1022 составляло всего 70 тысяч операций в секунду (о герцах тогда не говорили)

Я бы хотел посмотреть на оптимизирующий компилятор нашего времени , работающий в 228 Кбайтах
With best regards
Pavel Dvorkin
Re[4]: За счет чего выстреливают языки?
От: Privalov  
Дата: 12.07.15 06:17
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А умер он (в СССР) по очень простой причине.


Так Алгол умер не только в СССР. Реального кода я на нем не видел. В вузах в начале 80-х он уже был забыт. Только в летописях справочниках алгоритмов оные алгоритмы были записаны на некоем псевдокоде. Аксакалы утверждали, что это Алгол.

PL/1 тоже был любимым детищем IBM, но ему это не помогло. По слухам, на западе он был гораздо менее популярен, чем в СССР.

PD>Я бы хотел посмотреть на оптимизирующий компилятор нашего времени , работающий в 228 Кбайтах


Компилятор MS Fortran 5.1 для MS DOS выдавал неплохой код и требовал не слищком много для себя. Сейчас, правда, Фортран здорово изменился. Совсем не похож на старый добрый F-IV. И современным компиляторам интеллекта добавили, который весьма охоч до памяти.
Re[10]: За счет чего выстреливают языки?
От: hi_octane Беларусь  
Дата: 12.07.15 10:57
Оценка:
G>Ты, как минимум, сильно преувеличиваешь. Можешь привести пример, где nemerle повысит продуктивность хотя бы в 5 раз? То есть для одной и той же задачи код на nemerle будет в 5 раз короче кода на C#.

Оператор match, соединяет if и var. Разбираются вложенные паттерны. IT сделал презентацию хорошую. Я как-то попытался скопипастить кусочек кода из немерлового проекта, и на чуть менее тривиально матче всё разбухло раз как раз в 6-8.

Ещё, допустим у нас есть макрос который по имени метода навешивает правильный лок. Получаем сразу и инмеование в пределах собственного coding style и локи полностью соответствующие именованию, типа:
private Add_NWL(item: object):void //NWL - значит needs write lock, т.е. ф-я будет завёрнута в try{ _readerWriterLockSlim.EnterWriteLock() } finally { _readerWriterLockSlim.ExitWriteLock() } 
{
...
}

private Count_NRL() : int //NRL - needs read lock, т.е. _readerWriterLock.EnterReadLock / ExitReadLock в try/finally
{
...
}


С таким макросом расставлять локи правильно вообще не задача, чисто пишешь код работы с репозиторием или своей коллекцией и всё.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[4]: За счет чего выстреливают языки?
От: Nick Linker Россия lj://_lcr_
Дата: 12.07.15 13:00
Оценка:
gandjustas,

G>Скалу поддерживает компания,которую основали создатели языка и, как приличные стартаперы, подняли $17М инвестиций.

G>Короче скалу поддерживают венчурные капиталисты.

G>Но со скалой история еще интереснее. Судя по истории коммитов на github (https://github.com/scala/scala/graphs/contributors) в 2015 году разработка сильно замедлилась. Или уже все написали, но тогда непонятно где маркетинговый бум, или тупо бабло кончилось, тогда мы увидим угасание скалы в ближайшие пару лет.


Основные усилия разработчиков направлены на развитие и совершенствование dotty, нового компилятора Скалы, который исправляет ряд архитектурных ошибок, реализует более целостную систему типов и в конечном итоге заменит существующий компилятор.
К счастью, сигналов к спаду не видно, есть примеры компаний, решивших на полный переход с Java на Scala за кратчайшие сроки.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[3]: За счет чего выстреливают языки?
От: Mazay Россия  
Дата: 12.07.15 14:33
Оценка:
Здравствуйте, VladD2, Вы писали:

M>>2) Ранние адепты технологии должны быть реально круты чтобы растолковать все качество платформы для средних программистов.


VD>Это бесполезно. Эффект Блаба никто не отменял. Люди будут как бараны смореть на твою крутую вещь и не понимать ее крутости.


VD>Отличный пример Nemerle и C#. Nemerle появился 10 лет назад и уже тогда имел кучу удобных и полезных возможностей которых и по сей день нет в C#. C# на прояжении этих 10 лет по крупицам втягивает фичи Nemerle, причем, так как втягивает он их эволюционным путем, получается не всегда чисто и красиво. Но на C# пишут миллионы, а на Nemerle, грубо говоря, единицы. Многие из тех кто пишет на C# знают о Nemerle и о его возможностях, но они даже не берутся за него. Отмазок море. Но суть одна. Они ждут всего того же самого от Майкрософт. Причем о том, что они этого ждут они узнают со временем. Первая реакция, обычно, непонимание и неприятие тех самых крутых возможностей.


Немерл пытается жить в мире Микрософт. А там живут только с высочайшего соизволения. Если бы Nemerle работал на открытых платформах, то его гораздо охотнее бы использовали.
Главное гармония ...
Re[12]: За счет чего выстреливают языки?
От: WolfHound  
Дата: 12.07.15 16:55
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Я так и предполагал. Но я это всё спрашивал не с какой-то издёвкой, а с намёком. Что ограничившись .net'ом вы сократили и так не большую (из-за сложности) область ваших потенциальных пользователей где-то раз в 5 (это ещё оптимистичная оценка). Т.е. я конечно же понимаю, что вы благодаря этому получили "на халяву" огромную стандартную библиотеку языка... Но стоило ли оно того?

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

_>Нууу можно и два конечно, если они сами интегрируются.

Интегрируются. Нужно только при установке немерле галочку поставить.

_>Правда если это позволит писать софт только под винду, то оно мне такое уже давно не интересно.

Под моно немерле тоже работает.

_>Но даже если предположим, что речь не обо мне, а о разрабочике исключительно под винду. Эти твои два инсталлятора обеспечат требуемый сценарий? ) Т.е. написание с нуля GUI калькулятора на Nemerle за 2-3 минуты?

Ещё раз. Немерле не про кнопка-форма-шлёп.
Немерле про написание бизнес логики. И чем логика сложнее и чем её больше, тем больше выигрыш.

_>Хм, почитал описываемые фичи и увидел, что большинство является таковым только относительно C# (собственно ты именно это и утверждал, я просто уточняю), а скажем в том же C++ легко реализуются.

Плохо читал. Там почти всё не С++ не реализуется. Либо не имеет смысла, ибо создаст больше проблем, чем решит.

_>А с учётом последних движений в C++ компиляторах (плагины, доступ к апи и т.п.), то скоро наверное и вообще все.

АПИ компилятора? Это даже не смешно.
Сколько лет gcc? И что-то не видно толпы желающих встроится в него.

_>Да и другие языки есть, с ещё более развитыми средствами.

Какие?

_>Т.е. вот если взять для примера тот же Rust — сколько о нём говорят ещё даже до его выхода? ) И дело совсем не в том, что он какой-то очень хороший и даже не в деньгах (не видел никаких рекламых компаний у Mozilla),

Одного того что он от мозилы достаточно.
Если бы он был не от мозилы, на него бы даже не взглянули.

_>а в том, что есть очень большая востребованность в системном языке удобнее чем C++.

Это не про раст.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[13]: За счет чего выстреливают языки?
От: alex_public  
Дата: 12.07.15 21:24
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

_>>Я так и предполагал. Но я это всё спрашивал не с какой-то издёвкой, а с намёком. Что ограничившись .net'ом вы сократили и так не большую (из-за сложности) область ваших потенциальных пользователей где-то раз в 5 (это ещё оптимистичная оценка). Т.е. я конечно же понимаю, что вы благодаря этому получили "на халяву" огромную стандартную библиотеку языка... Но стоило ли оно того?

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

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

_>>Правда если это позволит писать софт только под винду, то оно мне такое уже давно не интересно.

WH>Под моно немерле тоже работает.

Linux — это конечно тоже полезно (сервера и встраиваемые системы, хотя последнее не пойдёт из-за .net'a). Но отсутствие мобильных платформ является очень серьёзным минусом для популярности в наше время.

_>>Но даже если предположим, что речь не обо мне, а о разрабочике исключительно под винду. Эти твои два инсталлятора обеспечат требуемый сценарий? ) Т.е. написание с нуля GUI калькулятора на Nemerle за 2-3 минуты?

WH>Ещё раз. Немерле не про кнопка-форма-шлёп.
WH>Немерле про написание бизнес логики. И чем логика сложнее и чем её больше, тем больше выигрыш.

Т.е. я правильно понимаю, что весь десктоп и все мобильные приложения (всё это требует GUI) пролетают мимо? Т.е. по сути для Немерле остаются только сервера?

Кстати, а как у него с серверными фреймворками? Асинхронный IO, лёгкие потоки и т.п?

_>>Хм, почитал описываемые фичи и увидел, что большинство является таковым только относительно C# (собственно ты именно это и утверждал, я просто уточняю), а скажем в том же C++ легко реализуются.

WH>Плохо читал. Там почти всё не С++ не реализуется. Либо не имеет смысла, ибо создаст больше проблем, чем решит.

Ну вот посмотрим по списку здесь https://rsdn.ru/forum/nemerle/4281048.1
Автор: hi_octane
Дата: 23.05.11

1. https://github.com/solodon4/Mach7
2. http://actor-framework.org
3. http://www.aspectc.org
4. Ну тут Nemerle (да и D) действительно заметно лучше. Но на большинстве нужных мне примеров (типа Boost.Spirit'a), скудных возможностей C++ хватало. Тем более, что сейчас появляются библиотечки обобщённой поддержки таких вещей (типа https://github.com/matt-42/iod).
5. Стандартная библиотек и boost
6. Во, тут я не зная действующих аналогов. Хотя теоретически теперь (с учётом новых веяний в компиляторах C++) это возможно, но примеров не видел.
7. Эмм, я такое видел ещё в проекте на C (со сборкой через autotools) 20-и летней давности. ))) Конечно оно не крутым макросом реализовано, но не уверен что проще и удобнее. )))
8. Не видел чем так круто форматирование строк в Nemerle, поэтому непонятно. Но в любом случае разного подобного добра полно и в бусте и отдельно (https://github.com/panzi/formatstring например) — выбирай на любой вкус.
9. Ну на такие простенькие dsl (если xml без схем) C++ то уж легко хватает. )))
10. Не понял о чём речь.
11. Это как раз C++ умеет из коробки, хотя и слабее Nemerle. Для этого есть серьёзные библиотеки, типа https://github.com/bolero-MURAKAMI/Sprout.
12. Тоже не очень понятно.
13. Вообще не понял.
14. Ммм, вроде как определённый вывод типов есть и в C# и в C++. Или речь о чём-то другом?
15. Про локальные функции не понял — зачем они, если есть лямбды? ) Т.е. я когда-то давно был за них (ещё с Паскаля), но теперь то зачем? )
16. Из коробки
17. )))
18. Из коробки

Т.е. из всего перечисленного я вижу только одно однозначно не реализованное. Ну и 3-4 пункта не очень понял — там может тоже что-то невозможное. А может и нет. )))

_>>А с учётом последних движений в C++ компиляторах (плагины, доступ к апи и т.п.), то скоро наверное и вообще все.

WH>АПИ компилятора? Это даже не смешно.
WH>Сколько лет gcc? И что-то не видно толпы желающих встроится в него.

Не, это же только недавно появилось. Причём пошло от clang'a и только недавно gcc подтянулся. Вроде тут где-то было обсуждение на эту тему, что теперь можно писать вещи как раз в стиле возможностей Nemerle. Правда пока ничего не видно. Оно и понятно почему — в самом языке и так куча метапрограммирования сидит.

_>>Да и другие языки есть, с ещё более развитыми средствами.

WH>Какие?

Тот же D. )

_>>Т.е. вот если взять для примера тот же Rust — сколько о нём говорят ещё даже до его выхода? ) И дело совсем не в том, что он какой-то очень хороший и даже не в деньгах (не видел никаких рекламых компаний у Mozilla),

WH>Одного того что он от мозилы достаточно.
WH>Если бы он был не от мозилы, на него бы даже не взглянули.

Как бренд — возможно. Но не как "деньги от мегакорпорации" (про которые тут так много писали).

_>>а в том, что есть очень большая востребованность в системном языке удобнее чем C++.

WH>Это не про раст.

Возможно. Но позиционировали его именно так и именно оттуда вся популярность.
Re[14]: За счет чего выстреливают языки?
От: WolfHound  
Дата: 12.07.15 23:07
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Т.е. я правильно понимаю, что весь десктоп и все мобильные приложения (всё это требует GUI) пролетают мимо? Т.е. по сути для Немерле остаются только сервера?

Любая логика.
Совсем любая.
Или, по-твоему, на десктопе нет логики?

_>Кстати, а как у него с серверными фреймворками? Асинхронный IO, лёгкие потоки и т.п?

Всё что есть в .НЕТ. Плюс можно ещё очень много сделаь на макросах.

_>Ну вот посмотрим по списку здесь https://rsdn.ru/forum/nemerle/4281048.1
Автор: hi_octane
Дата: 23.05.11

_>1. https://github.com/solodon4/Mach7

The library is not yet suitable for multi-threaded environment.


Проверки на то, что проверены все варианты и одно правило не скрывает другое, тоже как я понимаю, нет.
А это важно при развитии проекта.

_>2. http://actor-framework.org

Поскольку не известно, что делал hi_octane говорить на эту тему не имеет смысла.

_>3. http://www.aspectc.org

AspectC++ is a source-to-source translator.

Даже не смешно.

_>5. Стандартная библиотек и boost

Даже не смешно.

_>8. Не видел чем так круто форматирование строк в Nemerle, поэтому непонятно. Но в любом случае разного подобного добра полно и в бусте и отдельно (https://github.com/panzi/formatstring например) — выбирай на любой вкус.

Близко не стояло.
$"Property '$(astProperty.Name)' has invalid type '$t'. Only list of declarations can be decomposed."


_>9. Ну на такие простенькие dsl (если xml без схем) C++ то уж легко хватает. )))

Вот чтобы прямо с нужным синтаксисом и проверками на этапе компиляции?

_>10. Не понял о чём речь.

Наверное про это:

Кроме того много работы выполняли макросы и стиль программирования, за которые в C# проекте я бы руки отрывал. Например нужно было устанавливать связь с разными старыми системами, написанными чёрт знает на чём. Для каждой такой системы был заведён свой проект, с одинаковой иерархией namespace'ов. И в них была строгая иерархия наименования типа Root.Api.XyzTasks, Root.Api.XyzSerializer, Root.Comm.XyzListener и т.п. Так вот если в имени класса было Xyz, то автоматом генерировались пачками приватные члены, характерные для этой системы. Если при этом ещё и namespace Comm, то создавалась прокся с полностью асинхронными вызовами тех public методов что имелись в классе. Ну и так далее.


_>11. Это как раз C++ умеет из коробки, хотя и слабее Nemerle. Для этого есть серьёзные библиотеки, типа https://github.com/bolero-MURAKAMI/Sprout.

Думаю, ты не понимаешь масштаб бедствия...
Макросы немерла могут обежать весь проект, собрать нужную информацию и сгенерировать всё что нужно.
На С++ тебе придётся собирать всё в кучу руками.

_>12. Тоже не очень понятно.

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

_>13. Вообще не понял.

Например, получение строкового имени переменной. Причем если переменная будет переименована, компилятор даст по рукам.

_>14. Ммм, вроде как определённый вывод типов есть и в C# и в C++. Или речь о чём-то другом?

О том, что в немерле он несравнимо мощнее.

_>15. Про локальные функции не понял — зачем они, если есть лямбды? ) Т.е. я когда-то давно был за них (ещё с Паскаля), но теперь то зачем? )

Рекурсивную лямбду изобразить можешь?

_>16. Из коробки

Ну-ка покажи как добавить в С++ оператор #@$! с правой ассоциативностью и приоритетом больше + и меньше *.

_>17. )))

Это очень важно при переходе.

_>18. Из коробки

А это просто не нужно. О чём hi_octane и написал.

_>Не, это же только недавно появилось.

У gcc код открыт с рождения. Влезай и делай что хочешь.
Но никто не делает. Ибо ад.

_>Причём пошло от clang'a и только недавно gcc подтянулся. Вроде тут где-то было обсуждение на эту тему, что теперь можно писать вещи как раз в стиле возможностей Nemerle. Правда пока ничего не видно. Оно и понятно почему — в самом языке и так куча метапрограммирования сидит.

Вот когда через АПИ компилятора что ни будь, сделаешь, возвращайся.
Поделишься впечатлениями.
А пока поверь на слово что это ад.

_>Тот же D. )

Ты издеваешься? D рядом не стоял.

_>Как бренд — возможно. Но не как "деньги от мегакорпорации" (про которые тут так много писали).

Именно что деньги от мегакорпорации.
Главная проблема с развитием немерле то что нет нескольких сильных программистов, которые пишут его полный рабочий день.
У раста они есть.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[15]: За счет чего выстреливают языки?
От: Evgeny.Panasyuk Россия  
Дата: 13.07.15 07:37
Оценка:
Здравствуйте, WolfHound, Вы писали:

_>>8. Не видел чем так круто форматирование строк в Nemerle, поэтому непонятно. Но в любом случае разного подобного добра полно и в бусте и отдельно (https://github.com/panzi/formatstring например) — выбирай на любой вкус.

WH>Близко не стояло.
WH>
WH>$"Property '$(astProperty.Name)' has invalid type '$t'. Only list of declarations can be decomposed."
WH>


Возможен вот такой вариант
Автор: Evgeny.Panasyuk
Дата: 12.10.14
:
process_format
(
    print,
    "val = $value$, cnt = $counter$, ch = $character$, again v=$value$;\n",
    counter, character, value
);


_>>9. Ну на такие простенькие dsl (если xml без схем) C++ то уж легко хватает. )))

WH>Вот чтобы прямо с нужным синтаксисом и проверками на этапе компиляции?

raw string literals + обработка строк во время компиляции.

_>>12. Тоже не очень понятно.

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

Такое было в C++98 — помечаешь метод ключевым словом, и компилятор не даст вызывать его без лока.

_>>13. Вообще не понял.

WH>Например, получение строкового имени переменной. Причем если переменная будет переименована, компилятор даст по рукам.

Препроцессор умеет stringify.

_>>14. Ммм, вроде как определённый вывод типов есть и в C# и в C++. Или речь о чём-то другом?

WH>О том, что в немерле он несравнимо мощнее.

В Nemerle есть вывод типов через использование, но не нужно забывать/умалчивать что сами типы-то несравнимо примитивнее — например higher-rank polymorphism'а нет, и соответствующего вывода типов тоже

_>>15. Про локальные функции не понял — зачем они, если есть лямбды? ) Т.е. я когда-то давно был за них (ещё с Паскаля), но теперь то зачем? )

WH>Рекурсивную лямбду изобразить можешь?

Без проблем: live demo.

_>>Не, это же только недавно появилось.

WH>У gcc код открыт с рождения. Влезай и делай что хочешь.
WH>Но никто не делает. Ибо ад.

Делают, например смотри ODB:

The ODB compiler uses the GCC compiler frontend for C++ parsing and is implemented using the new GCC plugin architecture. While ODB uses GCC internally, its output is standard C++ which means that you can use any C++ compiler to build your application.

А вообще у GCC изначально были какие-то странные установки, хорошо что Clang появился, и расшевелил его:

https://gcc.gnu.org/ml/gcc/2005-01/msg00008.html

>is there a reason for not making the front ends dynamic libraries which could be linked by any program that wants to parse source code?

Richard Stallman:
One of our main goals for GCC is to prevent any parts of it from being used together with non-free software. Thus, we have deliberately avoided many things that might possibly have the effect of facilitating such usage, even if that consequence wasn't a certainty.

We're looking for new methods now to try to prevent this, and the outcome of this search would be very important in our decision of what to do.


_>>Причём пошло от clang'a и только недавно gcc подтянулся. Вроде тут где-то было обсуждение на эту тему, что теперь можно писать вещи как раз в стиле возможностей Nemerle. Правда пока ничего не видно. Оно и понятно почему — в самом языке и так куча метапрограммирования сидит.

WH> Вот когда через АПИ компилятора что ни будь, сделаешь, возвращайся.
WH>Поделишься впечатлениями.
WH>А пока поверь на слово что это ад.

Я использовал Clang ASTMatcher — никакого ада.

_>>Тот же D. )

WH>Ты издеваешься? D рядом не стоял.

С чем? С Nemerle? Почему?
Re[11]: За счет чего выстреливают языки?
От: Evgeny.Panasyuk Россия  
Дата: 13.07.15 07:53
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Вот, например впечатление человека, который торгового робота писал.

WH>https://rsdn.ru/forum/nemerle/4812833.1
Автор: hi_octane
Дата: 10.07.12


Забавно, а VladD2 говорит что
Автор: Evgeny.Panasyuk
Дата: 27.10.14
в том сообщении одна из проблем надуманная — ты тоже так считаешь?

EP>>>Например другая проблема — добавление ресурса вглубь иерархии/композиции заставляет вручную менять весь код транзитивно зависящий от класса в который добавляется ресурс. На Nemerle эту проблему уже пытались решить

, но только отчасти.
VD>>Это надуманная проблема.
EP>Это blub аргумент.
EP>Вот по ссылке человек решая реальную задачу наткнулся на эту проблему, и даже макрос для её частичного решения соорудил, а ты всё говоришь что проблема надуманна.

Re[15]: За счет чего выстреливают языки?
От: alex_public  
Дата: 13.07.15 10:11
Оценка:
Здравствуйте, WolfHound, Вы писали:

_>>Т.е. я правильно понимаю, что весь десктоп и все мобильные приложения (всё это требует GUI) пролетают мимо? Т.е. по сути для Немерле остаются только сервера?

WH>Любая логика.
WH>Совсем любая.
WH>Или, по-твоему, на десктопе нет логики?

Логики то полно, но она практически (написание инструментов командной строки или сервисов — это всё же редкость) всегда должна соседствовать с GUI. А если на Nemerle нельзя писать GUI, то...

_>>Кстати, а как у него с серверными фреймворками? Асинхронный IO, лёгкие потоки и т.п?

WH>Всё что есть в .НЕТ. Плюс можно ещё очень много сделаь на макросах.

Просто те же лёгкие потоки (а при их использование асинхронный IO начинает казаться синхронным) в .net сильно интегрированы в язык (async/await) и не совсем понятно как с этим у Nemerle. А вообще речь шла про какие-то аналоги библиотек типа libevent, libev, libuv.

Ну хорошо, а хотя бы веб-фреймворк на Nemerle имеется? Я помнится читал на хабре статью про NemerleWeb, но там было в основном про генерацию html/js (что не особо интересно сейчас, т.к. проще использовать статические страницы и какой-нибудь angular.js), а вот про собственно серверную работу (оптимальная организацию обработчиков ajax запросов) я так ничего и не увидел. Собственно даже не понятен базовый принцип работы — создаётся собственный сервер (как в node.js) или же каким-то образом организуется подключение к существующим (например к nginx, через wsgi).

_>>Ну вот посмотрим по списку здесь https://rsdn.ru/forum/nemerle/4281048.1
Автор: hi_octane
Дата: 23.05.11

_>>1. https://github.com/solodon4/Mach7
WH>

WH>The library is not yet suitable for multi-threaded environment.

WH>
WH>Проверки на то, что проверены все варианты и одно правило не скрывает другое, тоже как я понимаю, нет.
WH>А это важно при развитии проекта.

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

_>>2. http://actor-framework.org

WH>Поскольку не известно, что делал hi_octane говорить на эту тему не имеет смысла.

Возможно. Просто при реализации многопоточности через модель акторов понятие блокировки (в смысле ручного lock'a) автоматически полностью исчезает из всего кода... )))

_>>3. http://www.aspectc.org

WH>

WH>AspectC++ is a source-to-source translator.

WH>Даже не смешно.

Ну да, препроцессор. Однако т.к. он уже полностью готовый, продуманный и вылизанный, то не вижу причин не использовать его, если возникла потребность в АОП. Лично я АОП вообще нигде не использую. Но если бы вдруг зачем-то понадобилось, то без проблем взял бы этого инструмент.

_>>5. Стандартная библиотек и boost

WH>Даже не смешно.

А что такого? ) Или я может не понял о чём речь? ) Но инструментов для логирования в C++ просто полно (в том же boost'е имеем огромный фреймворк на эту тему). А для замеров времени вообще достаточно стандартной библиотеки.

_>>8. Не видел чем так круто форматирование строк в Nemerle, поэтому непонятно. Но в любом случае разного подобного добра полно и в бусте и отдельно (https://github.com/panzi/formatstring например) — выбирай на любой вкус.

WH>Близко не стояло.
WH>
WH>$"Property '$(astProperty.Name)' has invalid type '$t'. Only list of declarations can be decomposed."
WH>


Там в чём принципиальная "крутизна" форматирования строк в Nemerle? Проверка на этапе компиляции, как мы видим, есть и в C++.

_>>9. Ну на такие простенькие dsl (если xml без схем) C++ то уж легко хватает. )))

WH>Вот чтобы прямо с нужным синтаксисом и проверками на этапе компиляции?

Не понял, что за проверки, если у нас xml без схем? ) Там же правильность получается по построению. )

_>>10. Не понял о чём речь.

WH>Наверное про это:
WH>

WH>Кроме того много работы выполняли макросы и стиль программирования, за которые в C# проекте я бы руки отрывал. Например нужно было устанавливать связь с разными старыми системами, написанными чёрт знает на чём. Для каждой такой системы был заведён свой проект, с одинаковой иерархией namespace'ов. И в них была строгая иерархия наименования типа Root.Api.XyzTasks, Root.Api.XyzSerializer, Root.Comm.XyzListener и т.п. Так вот если в имени класса было Xyz, то автоматом генерировались пачками приватные члены, характерные для этой системы. Если при этом ещё и namespace Comm, то создавалась прокся с полностью асинхронными вызовами тех public методов что имелись в классе. Ну и так далее.


Эм, не очень понял как это соотносится с "Возможность поддержать кучу разных видов сериализации одним макросом". ) Вышеприведённый текст скорее напоминает какое-то автоматическую генерацию обёрток для чужого кода. И если речь не о рантайме, то такое обычно делается какой-то внешней утилитой.

_>>11. Это как раз C++ умеет из коробки, хотя и слабее Nemerle. Для этого есть серьёзные библиотеки, типа https://github.com/bolero-MURAKAMI/Sprout.

WH>Думаю, ты не понимаешь масштаб бедствия...
WH>Макросы немерла могут обежать весь проект, собрать нужную информацию и сгенерировать всё что нужно.
WH>На С++ тебе придётся собирать всё в кучу руками.

Так я и написал, что "слабее Nemerle". ) Хотя это "слабее" общетеоретическое — на практике даже возможности C++ на полную редко используются.

_>>12. Тоже не очень понятно.

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

Не понимаю как это возможно. А если мы захватили мьютекс (об этом же речь, правильно?) где-то выше по стеку вызова?

_>>13. Вообще не понял.

WH>Например, получение строкового имени переменной. Причем если переменная будет переименована, компилятор даст по рукам.

Т.е. речь об интроспекции времени компиляции? ) Это да, классная вещь... Давно о ней мечтаю в C++. Собственно это, плюс работа со строками в шаблонах без костылей, и МП в C++ уже было бы приемлемым.

_>>15. Про локальные функции не понял — зачем они, если есть лямбды? ) Т.е. я когда-то давно был за них (ещё с Паскаля), но теперь то зачем? )

WH>Рекурсивную лямбду изобразить можешь?
function<int(int)> fac=[&](int n) {return n==1?1:n*fac(n-1);};
cout<<fac(5)<<endl;//120

Хотя такой код конечно же будет терять в эффективности (опускаться где до уровня быстродействия Java/.Net).

_>>16. Из коробки

WH>Ну-ка покажи как добавить в С++ оператор #@$! с правой ассоциативностью и приоритетом больше + и меньше *.

Не, я имел в виду просто переопределение обычных операторов. Если речь именно про введение новых, то такого конечно же нет. Правда оно и не особо надо — стандартных более чем хватает. )

_>>Не, это же только недавно появилось.

WH>У gcc код открыт с рождения. Влезай и делай что хочешь.
WH>Но никто не делает. Ибо ад.

Эмм, причём тут открытые исходники компиляторов? ) Речь вообще о другом, как раз о специальной поддержке подгружаемых плагинов.

_>>Тот же D. )

WH>Ты издеваешься? D рядом не стоял.

На фоне C# и D и Nemerle находятся где-то рядом, в области полноценного МП. ))) А C++ где-то между ними (конец шкалы) и C# (начало шкалы — нулевое МП), скажем на 2/3 отрезка. )))

_>>Как бренд — возможно. Но не как "деньги от мегакорпорации" (про которые тут так много писали).

WH>Именно что деньги от мегакорпорации.
WH>Главная проблема с развитием немерле то что нет нескольких сильных программистов, которые пишут его полный рабочий день.
WH>У раста они есть.

Я имел в виду деньги на рекламу — у Mozilla нет орд евангелистов, как скажем у того же MS. Ну и кстати размер команды, работающей над языком, не обязательно определяется только деньгами.
Re[13]: За счет чего выстреливают языки?
От: DarkEld3r  
Дата: 13.07.15 10:58
Оценка:
Здравствуйте, WolfHound, Вы писали:

_>>а в том, что есть очень большая востребованность в системном языке удобнее чем C++.

WH>Это не про раст.
Почему?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.