Здравствуйте, MTD, Вы писали:
MTD>Вполне секси, очень изящно можно использовать код на С, транслируется в него же. Какие же фатальные недостатки мешают ему стать популярным?
На экспертное мнение не претендую, мое личное ИМХО — в нем нет ни одной киллер-фичи, все ровненько, относительно красивенько. Но таких языков дофига, взять тот же Ceylon, например. Короче, недостаточно хорош, чтобы откусить кусок у имеющихся языков. И бабла за ним нет, чтобы пропихнуть его.
Вот у руста киллер-фича есть. А у Go и Swift есть бабло.
Здравствуйте, MTD, Вы писали:
MTD> Вполне секси, очень изящно можно использовать код на С, транслируется в него же. Какие же фатальные недостатки мешают ему стать популярным?
Не совсем понятно какую проблему решает язык, какая у него "сверх-способность"?
Здравствуйте, MTD, Вы писали:
MTD>Вполне секси, очень изящно можно использовать код на С, транслируется в него же. Какие же фатальные недостатки мешают ему стать популярным?
Отсутствие развитого сообщества и команды разработчиков. Т.е. там ситуация не сравнимая не то что D, а возможно даже хуже чем у Nemerle.
А так язык конечно же очень интересный. Позволяет писать код сравнимый по краткости с Питоном (при этом статически типизированный), который исполняется со скоростью C/C++.
Здравствуйте, Anton Batenev, Вы писали:
AB>Не совсем понятно какую проблему решает язык, какая у него "сверх-способность"?
Это язык с эффективностью C++ и при этом без врождённых уродств C++. В общем это третий (после D и Rust) реальный претендент на замену устаревшего C++, со своей оригинальной концепцией (как собственно и у Rust). Причём на мой вкус она возможно самая перспективная, при условии что за ними встала бы реальная сила (хотя бы типа Mozilla), способная доработать его до вменяемого состояния.
Здравствуйте, alex_public, Вы писали:
_>В общем это третий (после D и Rust) реальный претендент на замену устаревшего C++, со своей оригинальной концепцией
Э... какая это у него оригинальная концепция, я что-то пропустил? Там же полное отсутствие какой-либо оригинальности.
Или "язык с эффективностью C++ и при этом без врождённых уродств C++" и есть оригинальность?
Кстати, было бы неплохо взглянуть на уродства Nim (кои у него, безусловно, есть).
Здравствуйте, AlexRK, Вы писали:
_>>В общем это третий (после D и Rust) реальный претендент на замену устаревшего C++, со своей оригинальной концепцией ARK>Э... какая это у него оригинальная концепция, я что-то пропустил? Там же полное отсутствие какой-либо оригинальности. ARK>Или "язык с эффективностью C++ и при этом без врождённых уродств C++" и есть оригинальность?
1. Компиляция с помощью трансляции в оптимизированный C код. Соответственно поставив дальше в цепочке какой-нибудь gcc с правильными настройками оптимизации мы получим программу намного опережающую по быстродействию аналоги из D и Rust (на данный момент — когда-нибудь их компиляторы возможно и дойдут до уровня C/C++). Для языка претендующего на роль замены C/C++ это очень важный фактор. Ну и соответственно с поддерживаемыми платформами и библиотеками тоже всё хорошо.
2. Современный синтаксис в стиле Питона (если бы он был статически типизированным (с выводом типов) и с доступом на системный уровень (указатели, структуры и т.п.)) по краткости, но далеко не ограничивается его возможностями (например имеются мультиметоды, дженерики, ограниченные диапазоном типы, исполнение кода при компиляции и ещё множество других мелких вкусностей). Понятно что это в основном синтаксических сахар, но всё же на подобном языке гораздо приятнее программировать.
3. Мощное метапрограммирование на макросах работающих непосредственно с AST — эффективная замена всем костылям на шаблонах C++, позволяющая расширять язык в любую сторону до бесконечности. )))
Сочетание этих трёх пунктов даёт вполне оригинальную концепцию. )
ARK>Кстати, было бы неплохо взглянуть на уродства Nim (кои у него, безусловно, есть).
Для этого надо хотя бы поработать на нём. Лично я не написал на нём ни одной программки (хотя внимательно листал документацию), так что пока не могу давать какие-то практические отзывы.
По слухам там есть какие-то существенные извращения с именами переменных и пробельными символами... )))
Ну это помимо того факта, что сам проект в глубоком альфа-релизе несмотря на уже многолетнюю историю.
Здравствуйте, 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 (кои у него, безусловно, есть). _>Для этого надо хотя бы поработать на нём. Лично я не написал на нём ни одной программки (хотя внимательно листал документацию), так что пока не могу давать какие-то практические отзывы. _>По слухам там есть какие-то существенные извращения с именами переменных и пробельными символами... )))
Про недостатки всегда интересно знать. Может статься так, что среди них притаился маленький шоу-стоппер.
Здравствуйте, AlexRK, Вы писали:
ARK>Есть, к примеру, Eiffel, который уже 25 лет назад: ARK>... ARK>На фоне всего этого восторженные мнения о Nim вызывают в лучшем случае недоумение. А ведь есть и другие крутые продуманные языки, тот же Ceylon. Rust _>>Сочетание этих трёх пунктов даёт вполне оригинальную концепцию. ) ARK>Мдя...
А в чём недоумение? Есть ли в Eiffel мощное метапрограммирование? Или лаконичный (Python-like) синтаксис у Rust?
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>А в чём недоумение?
Недоумение в том, что неоригинальный, не содержащий ни одной новой (или реализованной на качественно ином уровне) фичи язык пытается претендовать на что-то.
EP>Есть ли в Eiffel мощное метапрограммирование? Или лаконичный (Python-like) синтаксис у Rust?
Метапрограммирования и лаконичного синтаксиса нет. Но они не являются "абсолютным благом" (в отрыве от назначения языка). В концепцию Eiffel — надежное программирование по контракту — они просто не вписываются.
Здравствуйте, AlexRK, Вы писали:
EP>>А в чём недоумение? ARK>Недоумение в том, что неоригинальный, не содержащий ни одной новой (или реализованной на качественно ином уровне) фичи язык пытается претендовать на что-то.
Языку не обязательно иметь новые фичи чтобы претендовать на что-то. Удачно скомбинировав существующие фичи (лучше чем в других языках, или вообще в уникальной комбинации) можно получить вполне конкурентоспособный язык
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Языку не обязательно иметь новые фичи чтобы претендовать на что-то. Удачно скомбинировав существующие фичи (лучше чем в других языках, или вообще в уникальной комбинации) можно получить вполне конкурентоспособный язык
Согласен.
Но такая уникальная комбинация таки должна давать какой-то существенный выигрыш в чем-то. Или иметь за спиной крупную корпорацию. Ну или, на худой конец, должно быть какое-то киллер-апп или библиотека на этом языке.
Корпорации у Nim нет. Есть ли что-то, в чем же он _существенно_ превосходит существующие языки?
Здравствуйте, alex_public, Вы писали:
a> AB>Не совсем понятно какую проблему решает язык, какая у него "сверх-способность"? a> Это язык с эффективностью C++ и при этом без врождённых уродств C++.
Какие бы хорошие идеи не были заложены в язык/технологию, без практического воплощения в удобную инфраструктуру с решением конкретных пользовательских проблем они будут интересны очень узкому кругу лиц.
А с инфраструктурой у nim все плохо. Я сначала много написал про свое первое знакомство с ним, потом удалил и решил написать проще — попробуй на CentOS 6 собрать, скажем, их же IDE Aporia по их же рекомендациям (используя последнюю версию языка и вот это все).
А "врожденное уродство" в виде nimble я даже обсуждать не хочу — много раз обсуждалось на примере python pip, ruby gem, etc. Еще один подобный "уродец"? No Way!
Здравствуйте, 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), но они опять же пока не добились особо заметных успехов.
Здравствуйте, AlexRK, Вы писали:
EP>>Есть ли в Eiffel мощное метапрограммирование? Или лаконичный (Python-like) синтаксис у Rust? ARK>Метапрограммирования и лаконичного синтаксиса нет. Но они не являются "абсолютным благом" (в отрыве от назначения языка). В концепцию Eiffel — надежное программирование по контракту — они просто не вписываются.
Угу, только это вполне можно переформулировать совсем по другому: это Eiffel не вписывается в концепцию современного системного языка. ))) Разве что на специфическую узенькую его часть, и так уже занятую Ada. )))
Здравствуйте, alex_public, Вы писали:
_>Угу, только это вполне можно переформулировать совсем по другому: это Eiffel не вписывается в концепцию современного системного языка. ))) Разве что на специфическую узенькую его часть, и так уже занятую Ada. )))
Ну, Nim-то вообще никуда не вписывается. "Почти С++ с питоновским синтаксисом" — кому это нужно настолько, чтобы развивать это из нынешнего состояния?
Если брать гипотетическую ситуацию, когда у Nim уже все есть на уровне С++ — проекты, community, библиотеки, литература — это другое дело. Только вот если бы это все магическим образом возникло для D, Eiffel, Rust, да даже для розового слона Nemerle — то и для них ситуация была бы качественно иная, и С++ пришлось бы очень-очень потесниться, а какие-то ниши покинуть совсем. Но толку-то от этих фантазий. А в текущей ситуации лично я не вижу ничего, чем Nim мог бы выделиться и заинтересовать широкие массы. Видимо, поэтому он в заднице и сидит.
Здравствуйте, 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!
Хех, тема пакетных менеджеров для программных библиотек или языков — это вообще отдельный большой вопрос. )
Здравствуйте, AlexRK, Вы писали:
ARK>Ну, Nim-то вообще никуда не вписывается. "Почти С++ с питоновским синтаксисом" — кому это нужно настолько, чтобы развивать это из нынешнего состояния?
Не, Nim то как раз отлично вписывается в нишу C++. Весь вопрос в том, настолько ли он при этом лучше C++, чтобы решаться на переход (теряя при этом бонусы мейнстрим языка). И вот в этом уже есть большие сомнения...
ARK>Если брать гипотетическую ситуацию, когда у Nim уже все есть на уровне С++ — проекты, community, библиотеки, литература — это другое дело. Только вот если бы это все магическим образом возникло для D, Eiffel, Rust, да даже для розового слона Nemerle — то и для них ситуация была бы качественно иная, и С++ пришлось бы очень-очень потесниться, а какие-то ниши покинуть совсем. Но толку-то от этих фантазий. А в текущей ситуации лично я не вижу ничего, чем Nim мог бы выделиться и заинтересовать широкие массы. Видимо, поэтому он в заднице и сидит.
Так а я нигде и не писал, что верю в светлое будущее Nim. ))) Что впрочем не делает саму концепцию языка хуже. )
Вообще после выхода C++11 и с учётом дальнейшей скорости развития (C++14, C++17 и т.п.), взятой комитетом, создаётся впечатление, что старичок C++ прошёл курс омоложения и планирует ещё попьянствовать на поминках своих молодых конкурентов. ))) Даже не знаю хорошо это или плохо — у меня двойственные ощущения. )