Здравствуйте, FR, Вы писали:
FR>Из питона и содрано, а там появилось в результате адаптации tcl'ной Tk, для удобства задания значений по умолчанию, и получается содрано с tcl, но у tcl синтаксис очень специфичный, так что можно скорее сказать подсмотренно
Боюсь VB старше. В нем это было давно. А рельный прототип лучше спросить у авторов языка.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
AAV>>>2. Частично макротекст препроцессор в C# есть. see C# Preprocessor Directives (#if, #else, #elif, #endif, #define, #undef) конечно до Nemerle....
FR>>да можно bad поставить
VD>-1 Подробносии здесь
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>Да там есть проблема со стековыми переменными, по моему явный баг, когда будут править не знаю.
VD>Ага, но похоже в дизайне языка. Лексические замыкания на ура проходят в языках с автоматическим управлением памятью, и хреново (точнее никак) с ручной. Вот Ди наступил на те же грабли. Гнались за производительностью, а получили хреновую реализацию.
Я думаю ни зачем они не гнались, просто нормально все это реализовать не так просто. Посмотрим когда подправят.
VD>В прочем, и синтаксисом там не важно. C# и Немерле постепенно переходят к более краткому синтаксису лямбд "параметр => выражение" и "(параметры) => выражение", а Ди использует какой-то бредовый синтаксис, да еще снабженный жуткой терминалогией вроде "функциональный литерал". Где они их только берут то?
Нормальный синтаксис, это просто ты на функциональщине начал загонятся
Re[7]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>Из питона и содрано, а там появилось в результате адаптации tcl'ной Tk, для удобства задания значений по умолчанию, и получается содрано с tcl, но у tcl синтаксис очень специфичный, так что можно скорее сказать подсмотренно
VD>Боюсь VB старше. В нем это было давно. А рельный прототип лучше спросить у авторов языка.
Я VB практически не знаю и не слышал что там такое есть, можно пример?
Что раньше не знаю но tcl появился 1989 году.
Re[8]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, FR, Вы писали:
FR>Я думаю ни зачем они не гнались, просто нормально все это реализовать не так просто. Посмотрим когда подправят.
Думаю, что они вообще ничего не подправят, так как ошибка в дизайне. Гнались они за производительностью... Это точно. Иначе бы они забили на ручное управление памтью и не получили бы проблем с теми же лексическими замыканиями.
VD>>В прочем, и синтаксисом там не важно. C# и Немерле постепенно переходят к более краткому синтаксису лямбд "параметр => выражение" и "(параметры) => выражение", а Ди использует какой-то бредовый синтаксис, да еще снабженный жуткой терминалогией вроде "функциональный литерал". Где они их только берут то?
FR>Нормальный синтаксис, это просто ты на функциональщине начал загонятся
Ненадо. Синтаксис неоправдано громоздкий. Ну, а то что они не почерпнули идеи из ФЯ — это еще одно их архитектурный просчет. Даже в МС пошли на это.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>Я думаю ни зачем они не гнались, просто нормально все это реализовать не так просто. Посмотрим когда подправят.
VD>Думаю, что они вообще ничего не подправят, так как ошибка в дизайне. Гнались они за производительностью... Это точно. Иначе бы они забили на ручное управление памтью и не получили бы проблем с теми же лексическими замыканиями.
Если бы они забили на ручное управление, то на D смотреть многим было бы совсем не интересно.
А проблемы думаю вполне решаемы, хотя и не с наскоку.
VD>>>В прочем, и синтаксисом там не важно. C# и Немерле постепенно переходят к более краткому синтаксису лямбд "параметр => выражение" и "(параметры) => выражение", а Ди использует какой-то бредовый синтаксис, да еще снабженный жуткой терминалогией вроде "функциональный литерал". Где они их только берут то?
FR>>Нормальный синтаксис, это просто ты на функциональщине начал загонятся
VD>Ненадо. Синтаксис неоправдано громоздкий. Ну, а то что они не почерпнули идеи из ФЯ — это еще одно их архитектурный просчет. Даже в МС пошли на это.
Кому просчет а кому и преимущество
Re[2]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, volk, Вы писали:
V>Вот еще одну колонку добавить бы ( ) --- и в священные войны!
Эээ, я что-то не сообразил какую. Не подскажешь?
В принципе я уже говорил: есть расширенная таблица , являющаяся fork от таблицы на сайте D. Правда, fork был сделан давно и она подустарела (так, там нет, например, implicit type inference, который появился в D в конце 2005).
В оригинальной таблице были языки с С -подобным синтаксисом, так что Nemerle нормально к ней добавить.
Есть еще такой язык как Scala, который тоже можно было бы добавить в таблицу, так как он в многом схож с Nemerle, кроме самого главного :
Scala is extensible
The design of Scala acknowledges the fact that in practice, the development of domain-specific applications often requires domain-specific language extensions. Scala provides a unique combination of language mechanisms that make it easy to smoothly add new language constructs in form of libraries:
* any method may be used as an infix or postfix operator, and
* closures are constructed automatically depending on the expected type (target typing).
A joint use of both features facilitates the definition of new statements without extending the syntax and without using macro-like meta-programming facilities.
Уж не знаю, действительно ли это принципиальная позиция, лень было мета-систему делать или они рассчитывают на Java VM, где это трудно/невозможно .
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, _DAle_, Вы писали:
_DA>>А при чем тут файлы, диски? _DA>>http://osl.iu.edu/~tveldhui/papers/2003/turing.pdf
VD>Да, все при том же. Толку от возможностей если они не полноценны? Статьи на темы вроде "как сделать сериализацию на шаблонах", или "декларативание конечных автоматов на шаблонах" заканчиваются одним и тем же. Решение работат, но без слез на него смотреть нельзя. Сообщения об ошибках никакие. Возможностей не хватает. Отладки нет. Кучи макросов вроде ХХХ_4, ХХХ_5. Скорость компиляции отвратительная.
VD>Возможно в Ди что-то изменилось в лучшую сторону, но до Немерловским макросов им обоим как до Пикина раком.
Это все хорошо, но тогда надо назвать пункт как-нибудь по-другому, не "Tuting complete mete-language". Либо поставить в этом Yes, где следует, и добавить еще один.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[6]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, _DAle_, Вы писали:
_DA>Это все хорошо, но тогда надо назвать пункт как-нибудь по-другому, не "Tuting complete mete-language". Либо поставить в этом Yes, где следует, и добавить еще один.
Возможно. Надо подумать.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Таблица сранения языкво от создателей D поправленная мно
АХ>A joint use of both features facilitates the definition of new statements without extending the syntax and without using macro-like meta-programming facilities.
Новые операторы можно делать и в Джаве. Заводишь новый класс и в нём метод Другое дело, что нужен разумный компромисс между гибкостью и простотой синтаксиса. Чем проще синтаксис, тем легче учить, сопровождать, и тем язык быстрее в мэйнстрим проникает, но тем тяжелее делать нетривиальные вещи. Ну и от базовых абстракций языка конечно зависит, но тенденция где-то такая.
АХ>Уж не знаю, действительно ли это принципиальная позиция, лень было мета-систему делать или они рассчитывают на Java VM, где это трудно/невозможно .
JVM — это стековая машина. Реализации Схемы/Лиспа/Форта для JVM есть, и не одна.
Такой выбор для Скалы был явно дизайнерским решением.
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, VladD2, Вы писали:
VD>>Здравствуйте, FR, Вы писали:
FR>>>Из питона и содрано, а там появилось в результате адаптации tcl'ной Tk, для удобства задания значений по умолчанию, и получается содрано с tcl, но у tcl синтаксис очень специфичный, так что можно скорее сказать подсмотренно
VD>>Боюсь VB старше. В нем это было давно. А рельный прототип лучше спросить у авторов языка.
FR>Я VB практически не знаю и не слышал что там такое есть, можно пример? FR>Что раньше не знаю но tcl появился 1989 году.
В лиспе тоже именованные параметры есть
Думаю они не в первом варианте появились, но в годах семидесятых уже наверняка были...
Re[3]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, Cyberax, Вы писали:
C>Андрей Хропов wrote: >> VD>- — возможность поддерживается слабо. >> Я бы "-" убрал. В D полноценный GC. >> Можно и вручную управлять памятью, но это в специальных случаях. C>Минус стоит правильно — в D сейчас возможно использовать только C>консервативный GC, сама семантика языка (юнионы, например) не позволяет C>использовать точный GC.
Почему это консервативный GC = плохой GC?
На самом деле, семантика разрабатывалась с учетом возможности написания максимально точных сборщиков мусора при поддержке всех типов C. Копирующий/уплотняющий сборщик мусора для D написать можно.
Есть добровольцы? =)
Re: Таблица сранения языкво от создателей D поправленная мно
Dynamic class loading и в Java и в D есть через либы
JDK (Custom ClassLoader) и DDL соответственно. Почему у Java — yes, а у D — no?
Насчет остальных языков — ничего не могу сказать.
Default parameter value есть в D и C++
Indexer есть в D.
Если в таблице уже есть много планов, то можно и еще один добавить: D Attributes.
Console interpreter. теоретически, программу на D можно запустить как dmd -run main.d но это не совсем то.
А для C/C++ — Ch
Typesafe variant — как уже было упомянуто, std.boxer
tuple data type — есть в D, но только compile-time
spliced strings... резать строки в D можно вроде: writef("Hello, world!"[0 .. 5]);
или даже writef("Hello, world!"[0 .. $ — ", world!".length]);
и не только строки.
Или spliced strings — это какой-то новый тип string literal?
Lazy evaluation: В D есть, но не по умолчанию.
void log(lazy char[] msg)
{
if (logging)
fwritefln(logfile, msg);
}
void foo(int i)
{
log("Entering foo() with i set to " ~ toString(i));
}
Analyze AST и Modify AST для D планируется.
IDE support и Refactoring — у descent скоро появится семантический анализатор со всеми вытекающими последствиями, такими как рефакторинг, подсветка ошибок на лету, в том числе в шаблонах и CTFE... www.dsource.org/projects/descent
Re: Таблица сранения языкво от создателей D поправленная мно
Чота авторизация глюканула, и анонимного не появилось... Заново напишу.
По-моему, единственный способ оценить инструмент — как он соответствует тому, для чего создавался, или где используется (если вдруг используется не там и не так, для чего создавался).
Остальное — пенисометрия.
Re[2]: Таблица сранения языкво от создателей D поправленная
Уточню. Сравнение инструментов между собой может помочь в выборе инструмента, но тогда надо указывать, для чего он создавался/использовался, а уже ЯПы в этих группах сравнивать по "фичам".
А то так можно и LUA с Haskell'ем сравнивать.
Re[3]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, VoidEx, Вы писали:
VE>Уточню. Сравнение инструментов между собой может помочь в выборе инструмента, но тогда надо указывать, для чего он создавался/использовался, а уже ЯПы в этих группах сравнивать по "фичам". VE>А то так можно и LUA с Haskell'ем сравнивать.
Эммм, вообще-то все перечисленные в таблице, это языки общего назначения.
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))