Здравствуйте, DarkEld3r, Вы писали:
DE>1. Разработка может вестись вообще не на виндовс или без вижуал студии, это совсем не редкость, кстати. В этом случае, нитра в такой проект не попадёт, как раз по причинам, которые ты сам называл — инфраструктура и всё такое.
Современная преальфа действительно не попадает.
А вот 1.0 уже попадёт.
Ибо будет оторвана от платформы.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Они не нужны. WH>Кто считает иначе, пусть покажет задачу, для которой они нужны. WH>Я задавал этот вопрос много раз. Но так и не получил ни одного внятного ответа.
Ты просто не получил такого ответа, который тебе понравился бы. Так-то я тоже сторонник статической типизации, но отрицать наличие множества любителей динамики весьма странно.
Здравствуйте, alex_public, Вы писали:
_>Т.е. в случае Пролога парсер языка — это как раз простейшая вещь, в отличие от реализации его рантайма... Ну и соответственно, если тут нет какой-то существенной помощи (обещали же "лёгкое создания DSL'ей"? ), то тогда проще написать реализацию в лоб на C++ — будет быстрее и эффективнее.
Так тебе нужен компилятор/райнтайм или ide? Насколько я понял идею обсуждаемого продукта, он предоставляет собой генератор среды разработки для языка с описанной семантикой и... все. Или же они замахиваются и на компилятор/интерпретатор? Если так, то даже не смешно, легче программу на китайском заставить говорить, чем реализовать такое для любого языка/платформы.
Социализм — это власть трудящихся и централизованная плановая экономика.
Здравствуйте, DarkEld3r, Вы писали:
DE>Ты просто не получил такого ответа, который тебе понравился бы. Так-то я тоже сторонник статической типизации,
Максимум что показывали это решение. Но всегда было статически типизированное решение не хуже чем на динамике.
Покажи задачу, на которой динамика лучше.
Одну задачу.
Я что так много прошу?
DE>но отрицать наличие множества любителей динамики весьма странно.
Миллион мух не аргумент.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, LaPerouse, Вы писали:
LP>Так тебе нужен компилятор/райнтайм или ide? Насколько я понял идею обсуждаемого продукта, он предоставляет собой генератор среды разработки для языка с описанной семантикой и... все.
Нет, не всё.
LP>Или же они замахиваются и на компилятор/интерпретатор? Если так, то даже не смешно, легче программу на китайском заставить говорить, чем реализовать такое для любого языка/платформы.
Сделать ИДЕ часть на пару порядков сложнее, чем компилятор.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Я что так много прошу?
Ты просишь не того человека, учитывая, что я прямо сказал, что тоже предпочитаю статическую типизацию.
WH>Миллион мух не аргумент.
Ещё раз: я точно так же считаю аргументы в духе "динамика — это свобода", "тесты всё равно надо писать" и прочее, мягко говоря, не убедительными. Ну аргументы у них есть, просто ты с ними не согласен.
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, DarkEld3r, Вы писали:
DE>>Если для языка/ДСЛ компилятор/интерпретатор только на бумаге существует или не работает нормально, то нафиг такой язык вообще нужен?
_>О том и речь. ) Так что разработчика языка (а здесь мы все пишем от его лица, т.к. речь про DSL'и) должно волновать в первую очередь именно это. А уж с редактором как-нибудь потом можно будет разобраться.
Если оставить "на потом", может вдруг оказаться невозможно сделать что-то умнее подсветки ключевых слов и скобочек.
Здравствуйте, DarkEld3r, Вы писали:
DE>Ты просишь не того человека, учитывая, что я прямо сказал, что тоже предпочитаю статическую типизацию.
Ну, так и не подставляйся.
Пусть те, кто верит в динамическую типизацию отдуваются.
DE>Ещё раз: я точно так же считаю аргументы в духе "динамика — это свобода", "тесты всё равно надо писать" и прочее, мягко говоря, не убедительными. Ну аргументы у них есть, просто ты с ними не согласен.
Как можно соглашаться с аргументами, которые не выдерживают критики?
Единственный объективный аргумент в пользу динамической типизации: Нужно писать меньше кода.
Но если в случае с жабой выигрыш существенный. То в случае с языками, где есть вывод типов и метапрограммирование выигрыш сводится примерно к нулю.
При этом не появляется ни одной из проблем динамической типизации.
1)Медленное исполнение.
2)Большое потребление памяти.
3)Серьёзные проблемы с поддержкой кода, если его больше 100 строк.
4)Плохая поддержка ИДЕ.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
_>>Ой, да ладно, я то ещё как раз могу считаться сторонником IDE (хотя бы для C++ и ему подобных). А есть же орды разработчиков, которые спокойно себе работают с C/C++ в том же vim или Еmacs или их современными аналогами (типа Sublime), и не хотят ничего слышать ни про какие IDE. WH>Вопрос в том, какой процент.
Очень даже приличный. )
_>>Так я про это и говорю. Только вот этот факт совершенно не означает, что сами такие языки не нужны. Более того, они всё последнее десятилетие только набирают популярность. WH>Они не нужны. WH>Кто считает иначе, пусть покажет задачу, для которой они нужны. WH>Я задавал этот вопрос много раз. Но так и не получил ни одного внятного ответа.
Да легко. Вот к примеру периодически возникает потребность в написание различных скриптов (к примеру не тривиального построения проектов и т.п.). Сейчас это пишется на Питоне (кстати тоже в своеобразном DSL). На каком из статически типизированных языков ты предлагаешь мне сделать эту работу? И чем это будет удобнее?
_>>Правда чтобы я окончательно поверил в это чудо, требуется ещё какое-то разъяснение механизмов. Т.е. откуда собственно берётся эта разница. Лучше всего на каком-нибудь простейшем примере... WH>Сейчас нам не до примеров.
Ну ладно, тогда значит посмотрим, когда у вас появится уже что-то готовое)
Здравствуйте, LaPerouse, Вы писали:
LP>Так тебе нужен компилятор/райнтайм или ide? Насколько я понял идею обсуждаемого продукта, он предоставляет собой генератор среды разработки для языка с описанной семантикой и... все. Или же они замахиваются и на компилятор/интерпретатор? Если так, то даже не смешно, легче программу на китайском заставить говорить, чем реализовать такое для любого языка/платформы.
Нам нужен как раз только компилятор/рантайм. Ну точнее редактор с подсветкой тоже необходим, но как я уже показывал здесь, это сейчас решатся в пару кликов. ))) Конечно получается не мощная IDE, но нам такого и не надо. Ну разве что, если совсем на халяву... )))
Что же касается обсуждаемого продукта, то по словам WolfHound'а он помогает в написание компилятра/рантайма и при этом даёт IDE вообще на халяву. В последнее я даже готов поверить. ))) А вот в первое пока нет, т.к. не было продемонстрировано ни одного примера подобной помощи. С другой стороны разработка у них ещё далека от завершения, так что возможно всё и будет. ))) Но я пока не особо представляю как.
Здравствуйте, alex_public, Вы писали:
_>Значит мне требуется DSL, который будет работать у пользователей. К счастью изобретать новый язык не требуется — это должен быть Пролог. Причём в своей полноценной реализации, в смысле возможностей работы с предикатами. А вот стандартная библиотека языка (ну там всякие writeln, open(file) и т.) вообще не нужна. Вместо неё должен быть набор разных предметных функций. А так же должна быть реализована возможность обработки событий, инициируемых в базовом языке. Ну и всё это должно работать быстро (soft realtime), многопоточно и с доступом к железу (из базового языка). Целевая ОС — Linux.
Если это не является секретной информацией, не могли бы вы описать чуть подробнее? Или какой-нибудь документ выложить.
Просто интересно, ничего кроме этого.
Здравствуйте, WolfHound, Вы писали:
WH>Покажи задачу, на которой динамика лучше. WH>Одну задачу. WH>Я что так много прошу?
Я тоже не отношусь к сторонникам динамики, но преимущества в определенных случаях, по-моему, очевидны: можно писать код БЫСТРО. Можно абстрагироваться от типа переменной вообще. Можно вызывать функции, которые еще не написаны. Ну и так далее. Для больших и даже средних систем это вряд ли можно назвать преимуществом, а вот для прототипов или утилит — самое то.
Здравствуйте, WolfHound, Вы писали:
WH>Как можно соглашаться с аргументами, которые не выдерживают критики?
Знаешь что забавно? Что люди выступающие против макросов/ДСЛ тоже считают твои аргументы не убедительными.
WH>Но если в случае с жабой выигрыш существенный. То в случае с языками, где есть вывод типов и метапрограммирование выигрыш сводится примерно к нулю.
Вот только мейнстримовых (статически типизированных) языков с "выводом типов и метапрограммированием" (практически?) нет. А динамика вполне доступна и "пропихнуть в продакшен", наверное, легче чем немерле.
Ну и опять же про "миллионы мух": любители динамики ведь и решения принимают. Да и найти готовых специалистов проще.
Здравствуйте, _DAle_, Вы писали:
_DA>Здравствуйте, noone, Вы писали:
N>>Если оставить "на потом", может вдруг оказаться невозможно сделать что-то умнее подсветки ключевых слов и скобочек.
_DA>А можно пример такой ситуации?
— C++
— любой динамический язык: невозможно надежно делать анализ типов => нет хорошего автодополнения, навигации, рефакторингов. Работа IDE сводится к "Чувак, я тут что-то нашла — это оно? Нажми кнопочку, а то я боюсь сама менять." Не говоря о случаях, когда не находит.
Это мы говорим про базовые вещи, а есть штуки типа data-flow анализа, которые потребуют еще больше прыжков, если язык делать абы как.
Здравствуйте, noone, Вы писали:
_DA>>А можно пример такой ситуации?
N>- C++ N>- любой динамический язык: невозможно надежно делать анализ типов => нет хорошего автодополнения, навигации, рефакторингов. Работа IDE сводится к "Чувак, я тут что-то нашла — это оно? Нажми кнопочку, а то я боюсь сама менять." Не говоря о случаях, когда не находит.
Это ведь не примеры языков, для которых нельзя сделать ничего "умнее подсветки ключевых слов и скобочек". Да и вопрос был не в том. Если бы условный питон разрабатывался одновременно с IDE для него, то он бы вдруг сменил динамическую типизацию на статическую что ли? Я спрашивал про ситуацию, когда при разработке DSL без одновременной реализации IDE в результате получается язык, для которого нельзя ничего сделать "умнее подсветки ключевых слов и скобочек". С учетом того, что это, вообще говоря, наш DSL, и мы его можем менять. Понятно, что если вообще не думать об IDE в перспективе, то получится менее подготовленный к IDE-функционалу язык, но это не вынуждает одновременно с языком еще и IDE-функционал реализовывать. Тем более, что любой язык впоследствии может развиваться в довольно неожиданных направлениях.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, LaPerouse, Вы писали:
LP>>Так тебе нужен компилятор/райнтайм или ide? Насколько я понял идею обсуждаемого продукта, он предоставляет собой генератор среды разработки для языка с описанной семантикой и... все. WH>Нет, не всё.
Пытаетесь объять необъятное?
LP>>Или же они замахиваются и на компилятор/интерпретатор? Если так, то даже не смешно, легче программу на китайском заставить говорить, чем реализовать такое для любого языка/платформы. WH> Сделать ИДЕ часть на пару порядков сложнее, чем компилятор.
Да ну? Это сомнительно хотя бы потому, что универсальные генераторы IDE есть уже давно (https://eclipse.org/Xtext/), а вот действительно универсальные генераторы компиляторов — такого история не знает. Каков должен быть алгоритм, который лишь из одного метаописания языка С++ может комплировать С++ код, а из метаописания языка Prolog-a — Prolog-код?
Социализм — это власть трудящихся и централизованная плановая экономика.
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, LaPerouse, Вы писали:
_>Что же касается обсуждаемого продукта, то по словам WolfHound'а он помогает в написание компилятра/рантайма и при этом даёт IDE вообще на халяву. В последнее я даже готов поверить. )))
Получение IDE для языка с описанной семантикой уже давно не проблема https://eclipse.org/Xtext/
Но вот сказки про универсальный генератор компиляторов оставим для любителей фантастики.
Социализм — это власть трудящихся и централизованная плановая экономика.
Здравствуйте, _DAle_, Вы писали:
_DA>Здравствуйте, noone, Вы писали:
_DA>>>А можно пример такой ситуации?
N>>- C++ N>>- любой динамический язык: невозможно надежно делать анализ типов => нет хорошего автодополнения, навигации, рефакторингов. Работа IDE сводится к "Чувак, я тут что-то нашла — это оно? Нажми кнопочку, а то я боюсь сама менять." Не говоря о случаях, когда не находит.
_DA>Это ведь не примеры языков, для которых нельзя сделать ничего "умнее подсветки ключевых слов и скобочек".
Конечно я слегка преувеличил — какую-то IDE для С++ теоретически можно сделать, но практически это выльется не только в страдания разработчиков IDE, но и страдания пользователей (больше потребляемой памяти и CPU, меньше возможностей)
_DA>Если бы условный питон разрабатывался одновременно с IDE для него, то он бы вдруг сменил динамическую типизацию на статическую что ли?
Конечно. Если бы питон писали для разработки больших программ с использованием автоматизирующих инструментов, то никакой динамической типизации там не было бы. Это странно и с точки зрения IDE, и эффективной интерпретации, и чтения/поддержки.
_DA>Я спрашивал про ситуацию, когда при разработке DSL без одновременной реализации IDE в результате получается язык, для которого нельзя ничего сделать "умнее подсветки ключевых слов и скобочек".
Ну вот в С++ даже треугольные скобочки подсветить не получится без полного синтаксического разбора. Что мешает получить такой DSL? Человеку будет "все понятно", а IDE — не совсем. А ведь синтаксис это не самое сложное.
_DA>С учетом того, что это, вообще говоря, наш DSL, и мы его можем менять.
Если мы можем его менять, то никаких вопросов, конечно, нет. А если уже написаны горы кода?
_DA> Понятно, что если вообще не думать об IDE в перспективе, то получится менее подготовленный к IDE-функционалу язык, но это не вынуждает одновременно с языком еще и IDE-функционал реализовывать. Тем более, что любой язык впоследствии может развиваться в довольно неожиданных направлениях.
"Менее" бывает разное. C менее предназначен, чем Java, С++ — менее, чем C, Python — менее, чем C++. Рано или поздно различать "менее" и "совсем не" становится бессмысленно.
Я, кстати, не проповедую "каждому языку — свою IDE". Имхо есть места, где это просто не нужно/не оправданно. Но там где нужно, стоит думать про нее с первого дня.
Здравствуйте, noone, Вы писали:
N>Я, кстати, не проповедую "каждому языку — свою IDE". Имхо есть места, где это просто не нужно/не оправданно. Но там где нужно, стоит думать про нее с первого дня.
Тут главное не забывать, что нет таких задач, для которых нужно было бы калечить язык, так чтобы для него было трудно сделать ИДЕ.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн