Nim lang
От: MTD https://github.com/mtrempoltsev
Дата: 04.06.16 10:37
Оценка:
Вполне секси, очень изящно можно использовать код на С, транслируется в него же. Какие же фатальные недостатки мешают ему стать популярным?
Re: Nim lang
От: AlexRK  
Дата: 04.06.16 10:54
Оценка: +4
Здравствуйте, MTD, Вы писали:

MTD>Вполне секси, очень изящно можно использовать код на С, транслируется в него же. Какие же фатальные недостатки мешают ему стать популярным?


На экспертное мнение не претендую, мое личное ИМХО — в нем нет ни одной киллер-фичи, все ровненько, относительно красивенько. Но таких языков дофига, взять тот же Ceylon, например. Короче, недостаточно хорош, чтобы откусить кусок у имеющихся языков. И бабла за ним нет, чтобы пропихнуть его.

Вот у руста киллер-фича есть. А у Go и Swift есть бабло.
Отредактировано 04.06.2016 10:54 AlexRK . Предыдущая версия .
Re: Nim lang
От: hi_octane Беларусь  
Дата: 04.06.16 13:29
Оценка: +1
MTD>Вполне секси, очень изящно можно использовать код на С, транслируется в него же. Какие же фатальные недостатки мешают ему стать популярным?

Поглядываю на него с интервалом в полгода — имхо, не выходит из состояния альфы и почти не развивается.
Nemerle — power of metaprogramming, functional, object-oriented and imperative features in a statically-typed .NET language
Re: Nim lang
От: Anton Batenev Россия https://github.com/abbat
Дата: 04.06.16 13:41
Оценка:
Здравствуйте, MTD, Вы писали:

MTD> Вполне секси, очень изящно можно использовать код на С, транслируется в него же. Какие же фатальные недостатки мешают ему стать популярным?


Не совсем понятно какую проблему решает язык, какая у него "сверх-способность"?
Бэкапимся на Яндекс.Диск
Re: Nim lang
От: alex_public  
Дата: 04.06.16 13:42
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Вполне секси, очень изящно можно использовать код на С, транслируется в него же. Какие же фатальные недостатки мешают ему стать популярным?


Отсутствие развитого сообщества и команды разработчиков. Т.е. там ситуация не сравнимая не то что D, а возможно даже хуже чем у Nemerle.

А так язык конечно же очень интересный. Позволяет писать код сравнимый по краткости с Питоном (при этом статически типизированный), который исполняется со скоростью C/C++.
Re[2]: Nim lang
От: alex_public  
Дата: 04.06.16 13:54
Оценка: :))) :))
Здравствуйте, Anton Batenev, Вы писали:

AB>Не совсем понятно какую проблему решает язык, какая у него "сверх-способность"?


Это язык с эффективностью C++ и при этом без врождённых уродств C++. В общем это третий (после D и Rust) реальный претендент на замену устаревшего C++, со своей оригинальной концепцией (как собственно и у Rust). Причём на мой вкус она возможно самая перспективная, при условии что за ними встала бы реальная сила (хотя бы типа Mozilla), способная доработать его до вменяемого состояния.
Re[3]: Nim lang
От: AlexRK  
Дата: 04.06.16 22:02
Оценка: +1
Здравствуйте, alex_public, Вы писали:

_>В общем это третий (после D и Rust) реальный претендент на замену устаревшего C++, со своей оригинальной концепцией


Э... какая это у него оригинальная концепция, я что-то пропустил? Там же полное отсутствие какой-либо оригинальности.
Или "язык с эффективностью C++ и при этом без врождённых уродств C++" и есть оригинальность?
Кстати, было бы неплохо взглянуть на уродства Nim (кои у него, безусловно, есть).
Re[4]: Nim lang
От: alex_public  
Дата: 05.06.16 02:15
Оценка:
Здравствуйте, AlexRK, Вы писали:

_>>В общем это третий (после D и Rust) реальный претендент на замену устаревшего C++, со своей оригинальной концепцией

ARK>Э... какая это у него оригинальная концепция, я что-то пропустил? Там же полное отсутствие какой-либо оригинальности.
ARK>Или "язык с эффективностью C++ и при этом без врождённых уродств C++" и есть оригинальность?

1. Компиляция с помощью трансляции в оптимизированный C код. Соответственно поставив дальше в цепочке какой-нибудь gcc с правильными настройками оптимизации мы получим программу намного опережающую по быстродействию аналоги из D и Rust (на данный момент — когда-нибудь их компиляторы возможно и дойдут до уровня C/C++). Для языка претендующего на роль замены C/C++ это очень важный фактор. Ну и соответственно с поддерживаемыми платформами и библиотеками тоже всё хорошо.
2. Современный синтаксис в стиле Питона (если бы он был статически типизированным (с выводом типов) и с доступом на системный уровень (указатели, структуры и т.п.)) по краткости, но далеко не ограничивается его возможностями (например имеются мультиметоды, дженерики, ограниченные диапазоном типы, исполнение кода при компиляции и ещё множество других мелких вкусностей). Понятно что это в основном синтаксических сахар, но всё же на подобном языке гораздо приятнее программировать.
3. Мощное метапрограммирование на макросах работающих непосредственно с AST — эффективная замена всем костылям на шаблонах C++, позволяющая расширять язык в любую сторону до бесконечности. )))

Сочетание этих трёх пунктов даёт вполне оригинальную концепцию. )

ARK>Кстати, было бы неплохо взглянуть на уродства Nim (кои у него, безусловно, есть).


Для этого надо хотя бы поработать на нём. Лично я не написал на нём ни одной программки (хотя внимательно листал документацию), так что пока не могу давать какие-то практические отзывы.

По слухам там есть какие-то существенные извращения с именами переменных и пробельными символами... )))

Ну это помимо того факта, что сам проект в глубоком альфа-релизе несмотря на уже многолетнюю историю.
Re[5]: Nim lang
От: AlexRK  
Дата: 05.06.16 08:37
Оценка: 2 (2) +2
Здравствуйте, alex_public, Вы писали:

_>1. Компиляция с помощью трансляции в оптимизированный C код. Соответственно поставив дальше в цепочке какой-нибудь gcc с правильными настройками оптимизации мы получим программу намного опережающую по быстродействию аналоги из D и Rust (на данный момент — когда-нибудь их компиляторы возможно и дойдут до уровня C/C++). Для языка претендующего на роль замены C/C++ это очень важный фактор. Ну и соответственно с поддерживаемыми платформами и библиотеками тоже всё хорошо.

_>2. Современный синтаксис в стиле Питона (если бы он был статически типизированным (с выводом типов) и с доступом на системный уровень (указатели, структуры и т.п.)) по краткости, но далеко не ограничивается его возможностями (например имеются мультиметоды, дженерики, ограниченные диапазоном типы, исполнение кода при компиляции и ещё множество других мелких вкусностей). Понятно что это в основном синтаксических сахар, но всё же на подобном языке гораздо приятнее программировать.
_>3. Мощное метапрограммирование на макросах работающих непосредственно с AST — эффективная замена всем костылям на шаблонах C++, позволяющая расширять язык в любую сторону до бесконечности. )))

Все это прикольно, но это, ИМХО, не киллер-фичи, а просто приятные вещи.

Есть, к примеру, Eiffel, который уже 25 лет назад:
— точно так же, как и Nim, компилировался в оптимизированный С код;
— имел Design by contract (которого в нормальном виде нет нигде до сих пор);
— имел крутое множественное наследование (причем, ИМХО, лучшей реализации опять же нет до сих пор ни в одном языке);
— имел command-query separation principle на уровне языка;
— развивает простой и мощный подход к параллелизму — SCOOP;
— тонны других мелочей, строгий и последовательный синтаксис, ну и вообще Eiffel — один из самых продуманных языков, какие я знаю.

На фоне всего этого восторженные мнения о Nim вызывают в лучшем случае недоумение. А ведь есть и другие крутые продуманные языки, тот же Ceylon. Rust и безымянный C#-подобный язык от Joe Daffy — тоже мощные проекты с центральными идеями, вокруг которых построено все остальное.

_>Сочетание этих трёх пунктов даёт вполне оригинальную концепцию. )


Мдя...

ARK>>Кстати, было бы неплохо взглянуть на уродства Nim (кои у него, безусловно, есть).

_>Для этого надо хотя бы поработать на нём. Лично я не написал на нём ни одной программки (хотя внимательно листал документацию), так что пока не могу давать какие-то практические отзывы.
_>По слухам там есть какие-то существенные извращения с именами переменных и пробельными символами... )))

Про недостатки всегда интересно знать. Может статься так, что среди них притаился маленький шоу-стоппер.
Re[6]: Nim lang
От: Evgeny.Panasyuk Россия  
Дата: 05.06.16 10:18
Оценка:
Здравствуйте, AlexRK, Вы писали:

ARK>Есть, к примеру, Eiffel, который уже 25 лет назад:

ARK>...
ARK>На фоне всего этого восторженные мнения о Nim вызывают в лучшем случае недоумение. А ведь есть и другие крутые продуманные языки, тот же Ceylon. Rust
_>>Сочетание этих трёх пунктов даёт вполне оригинальную концепцию. )
ARK>Мдя...

А в чём недоумение? Есть ли в Eiffel мощное метапрограммирование? Или лаконичный (Python-like) синтаксис у Rust?
Re[7]: Nim lang
От: AlexRK  
Дата: 05.06.16 10:29
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>А в чём недоумение?


Недоумение в том, что неоригинальный, не содержащий ни одной новой (или реализованной на качественно ином уровне) фичи язык пытается претендовать на что-то.

EP>Есть ли в Eiffel мощное метапрограммирование? Или лаконичный (Python-like) синтаксис у Rust?


Метапрограммирования и лаконичного синтаксиса нет. Но они не являются "абсолютным благом" (в отрыве от назначения языка). В концепцию Eiffel — надежное программирование по контракту — они просто не вписываются.
Re[8]: Nim lang
От: Evgeny.Panasyuk Россия  
Дата: 05.06.16 10:38
Оценка:
Здравствуйте, AlexRK, Вы писали:

EP>>А в чём недоумение?

ARK>Недоумение в том, что неоригинальный, не содержащий ни одной новой (или реализованной на качественно ином уровне) фичи язык пытается претендовать на что-то.

Языку не обязательно иметь новые фичи чтобы претендовать на что-то. Удачно скомбинировав существующие фичи (лучше чем в других языках, или вообще в уникальной комбинации) можно получить вполне конкурентоспособный язык
Re[9]: Nim lang
От: AlexRK  
Дата: 05.06.16 10:50
Оценка: +2
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Языку не обязательно иметь новые фичи чтобы претендовать на что-то. Удачно скомбинировав существующие фичи (лучше чем в других языках, или вообще в уникальной комбинации) можно получить вполне конкурентоспособный язык


Согласен.
Но такая уникальная комбинация таки должна давать какой-то существенный выигрыш в чем-то. Или иметь за спиной крупную корпорацию. Ну или, на худой конец, должно быть какое-то киллер-апп или библиотека на этом языке.
Корпорации у Nim нет. Есть ли что-то, в чем же он _существенно_ превосходит существующие языки?
Re[3]: Nim lang
От: Anton Batenev Россия https://github.com/abbat
Дата: 05.06.16 12:49
Оценка: +1
Здравствуйте, alex_public, Вы писали:

a> AB>Не совсем понятно какую проблему решает язык, какая у него "сверх-способность"?

a> Это язык с эффективностью C++ и при этом без врождённых уродств C++.

Какие бы хорошие идеи не были заложены в язык/технологию, без практического воплощения в удобную инфраструктуру с решением конкретных пользовательских проблем они будут интересны очень узкому кругу лиц.

А с инфраструктурой у nim все плохо. Я сначала много написал про свое первое знакомство с ним, потом удалил и решил написать проще — попробуй на CentOS 6 собрать, скажем, их же IDE Aporia по их же рекомендациям (используя последнюю версию языка и вот это все).

А "врожденное уродство" в виде nimble я даже обсуждать не хочу — много раз обсуждалось на примере python pip, ruby gem, etc. Еще один подобный "уродец"? No Way!
Бэкапимся на Яндекс.Диск
Re[6]: Nim lang
От: alex_public  
Дата: 05.06.16 13:11
Оценка:
Здравствуйте, AlexRK, Вы писали:

ARK>Все это прикольно, но это, ИМХО, не киллер-фичи, а просто приятные вещи.


Киллер-фичей является сочетание всех этих возможностей в одном языке. )

ARK>Есть, к примеру, Eiffel, который уже 25 лет назад:

ARK>- точно так же, как и Nim, компилировался в оптимизированный С код;
ARK>- имел Design by contract (которого в нормальном виде нет нигде до сих пор);
ARK>- имел крутое множественное наследование (причем, ИМХО, лучшей реализации опять же нет до сих пор ни в одном языке);
ARK>- имел command-query separation principle на уровне языка;
ARK>- развивает простой и мощный подход к параллелизму — SCOOP;
ARK>- тонны других мелочей, строгий и последовательный синтаксис, ну и вообще Eiffel — один из самых продуманных языков, какие я знаю.

Нет, Eiffel не может сейчас претендовать на замену C++. Когда-то (при рождение) он ещё мог занять эту нишу, но не сложилось (так же как скажем и у Ada). А сейчас уже поздно. Потому что C++ — это мейнстрим и для его замены пойдёт только язык с как минимум теми же самыми возможностями, только сделанными по человечески. А Eiffel хотя и обладает множеством дополнительных возможностей (только кто сказал, что они нужны пользователям C++?), но не покрывает все возможности текущего C++.

Я уже писал, что претендентами на нишу C/C++ сейчас могут быть D, Rust, Nim, причём каждый подходит к этому со своей оригинальной стороны. Хотя пока что серьёзно заявить о себе (в смысле не пиара, а процентов популярности в реальных проектах) не удалось никому из них. Точнее до выхода C++11 язык D явно начал активно перехватывать аудиторию C++, но с выходом нового стандарта причин для перехода стало гораздо меньше, так что процесс похоже остановился. Вокруг Rust'а много разговоров (благодаря Mozilla), но это всё больше пиар, чем реальные проекты. Ну а Nim вообще в заднице даже на их фоне. )))

ARK>На фоне всего этого восторженные мнения о Nim вызывают в лучшем случае недоумение. А ведь есть и другие крутые продуманные языки, тот же Ceylon. Rust и безымянный C#-подобный язык от Joe Daffy — тоже мощные проекты с центральными идеями, вокруг которых построено все остальное.


Так Ceylon — это уже претендент на другую целевую нишу. На область энтерпрайзных языков, в которой сейчас царят Java/C#. Интересных претендентов на их замену естественно тоже не мало (скажем Scala/Nemerle), но они опять же пока не добились особо заметных успехов.
Re[8]: Nim lang
От: alex_public  
Дата: 05.06.16 13:27
Оценка:
Здравствуйте, AlexRK, Вы писали:

EP>>Есть ли в Eiffel мощное метапрограммирование? Или лаконичный (Python-like) синтаксис у Rust?

ARK>Метапрограммирования и лаконичного синтаксиса нет. Но они не являются "абсолютным благом" (в отрыве от назначения языка). В концепцию Eiffel — надежное программирование по контракту — они просто не вписываются.

Угу, только это вполне можно переформулировать совсем по другому: это Eiffel не вписывается в концепцию современного системного языка. ))) Разве что на специфическую узенькую его часть, и так уже занятую Ada. )))
Re[9]: Nim lang
От: AlexRK  
Дата: 05.06.16 13:42
Оценка: +2
Здравствуйте, alex_public, Вы писали:

_>Угу, только это вполне можно переформулировать совсем по другому: это Eiffel не вписывается в концепцию современного системного языка. ))) Разве что на специфическую узенькую его часть, и так уже занятую Ada. )))


Ну, Nim-то вообще никуда не вписывается. "Почти С++ с питоновским синтаксисом" — кому это нужно настолько, чтобы развивать это из нынешнего состояния?

Если брать гипотетическую ситуацию, когда у Nim уже все есть на уровне С++ — проекты, community, библиотеки, литература — это другое дело. Только вот если бы это все магическим образом возникло для D, Eiffel, Rust, да даже для розового слона Nemerle — то и для них ситуация была бы качественно иная, и С++ пришлось бы очень-очень потесниться, а какие-то ниши покинуть совсем. Но толку-то от этих фантазий. А в текущей ситуации лично я не вижу ничего, чем Nim мог бы выделиться и заинтересовать широкие массы. Видимо, поэтому он в заднице и сидит.
Re[4]: Nim lang
От: alex_public  
Дата: 05.06.16 14:04
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Какие бы хорошие идеи не были заложены в язык/технологию, без практического воплощения в удобную инфраструктуру с решением конкретных пользовательских проблем они будут интересны очень узкому кругу лиц.


Согласен. Как раз поэтому я пока даже "hello world" не пытался на нём написать. )

AB>А с инфраструктурой у nim все плохо. Я сначала много написал про свое первое знакомство с ним, потом удалил и решил написать проще — попробуй на CentOS 6 собрать, скажем, их же IDE Aporia по их же рекомендациям (используя последнюю версию языка и вот это все).


Не не не, никаких самодельных недо-IDE, вне зависимости от языка. Подобное всегда уродливо и не стоит даже пытаться смотреть на них. Только плагины к ведущим мировым IDE или редакторам. Ну и кстати у того же Nim с этим вроде (судя по документации) не так уж и плохо: https://github.com/nim-lang/Nim/wiki/editor-support — все главные редакторы и несколько ведущих IDE охвачены. Хотя я конечно же не проверял на практике реальную работоспособность данных плагинов.

Но я подозреваю, что про сборку ide ты написал не ради самой ide, а потому что при её сборке можно наткнуться на какие-то увлекательные квесты? )))

AB>А "врожденное уродство" в виде nimble я даже обсуждать не хочу — много раз обсуждалось на примере python pip, ruby gem, etc. Еще один подобный "уродец"? No Way!


Хех, тема пакетных менеджеров для программных библиотек или языков — это вообще отдельный большой вопрос. )
Re[10]: Nim lang
От: alex_public  
Дата: 05.06.16 14:24
Оценка:
Здравствуйте, AlexRK, Вы писали:

ARK>Ну, Nim-то вообще никуда не вписывается. "Почти С++ с питоновским синтаксисом" — кому это нужно настолько, чтобы развивать это из нынешнего состояния?


Не, Nim то как раз отлично вписывается в нишу C++. Весь вопрос в том, настолько ли он при этом лучше C++, чтобы решаться на переход (теряя при этом бонусы мейнстрим языка). И вот в этом уже есть большие сомнения...

ARK>Если брать гипотетическую ситуацию, когда у Nim уже все есть на уровне С++ — проекты, community, библиотеки, литература — это другое дело. Только вот если бы это все магическим образом возникло для D, Eiffel, Rust, да даже для розового слона Nemerle — то и для них ситуация была бы качественно иная, и С++ пришлось бы очень-очень потесниться, а какие-то ниши покинуть совсем. Но толку-то от этих фантазий. А в текущей ситуации лично я не вижу ничего, чем Nim мог бы выделиться и заинтересовать широкие массы. Видимо, поэтому он в заднице и сидит.


Так а я нигде и не писал, что верю в светлое будущее Nim. ))) Что впрочем не делает саму концепцию языка хуже. )

Вообще после выхода C++11 и с учётом дальнейшей скорости развития (C++14, C++17 и т.п.), взятой комитетом, создаётся впечатление, что старичок C++ прошёл курс омоложения и планирует ещё попьянствовать на поминках своих молодых конкурентов. ))) Даже не знаю хорошо это или плохо — у меня двойственные ощущения. )
Re[6]: Nim lang
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 05.06.16 15:03
Оценка:
Здравствуйте, AlexRK, Вы писали:

ARK> безымянный C#-подобный язык от Joe Daffy


M# он назывался.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.