+ — означает, что во много раз круче чем в приведенных языках.
* — означает, что реализовано на макросах или реализуется на макросах.
— — возможность поддерживается слабо.
??? — бредовый вопрос.
— смешной вопрос, вызванный убогостью D в рассматриваемом вопросе.
Теперь стоит привести еще одну таблицу.
Feature
D
C
C++
C#
Java
Nemerle
Functionam programming suport
D
C
C++
C#
Java
Nemerle
pattern matching
No
No
No
No
No
Yes
lambda support
Yes
No
No
Yes
No
Yes+
Partial application
No
No
No
No
No
Yes
All statment is expression
No
No
No
No
No
Yes
Support Linken Lists in language
No
No
No
No
No
Yes+
Other
D
C
C++
C#
Java
Nemerle
Extended local type inference
No
No
No
No
No
Yes+
Extention methods
No
No
No
No (plan)
No
Yes+
yield coninuatons
No
No
No
Yes
No
Yes
Constrans on type parametrs
No
No (plan)
No
Yes
Yes
Yes
Indexers (propery[...])
???
No
No
Yes
No
Yes+
Default parameter value
???
Yes
No
No
No
Yes
Attrubutes (extending metedata)
No
No
No
Yes
Yes
Yes
Named parametrs
No
No
No
No
No
Yes
Type safe variant data type
No
No
No
No
No
Yes
Nulable type
No
No
No
Yes
No
Yes
Pattern imlementation
No
No
No
No
No
Yes
Console interpreter
No
No
No
No
No
Yes
Type safe variant data type
No
No
No
No
No
Yes
Tuple data type (anonymous type)
No
No
No
No (plad-)
No
Yes
Multiple dispatching
No
No
No
No
No
Yes
Spliced strings ( $" xxx $(x + 1) yyy" notation)
No
No
No
No
No
Yes
Lazy evaluation
No
No
No
No
No
Yes
Metaprograming
D
C
C++
C#
Java
Nemerle
Metaprograming support
Bad (static calcs)
Bad (textual macro)
Bad (textual macro, template side affect)
No
No
Yes+ (AST based macros)
Tuting complete mete-language
No
No
No
No
No
Yes
Mete-language is same language
No
No
No
No
No
Yes
Compiled meta-code
No
No
No
No
No
Yes
Fast meta-code
No
No
No
No
No
Yes
Analyse AST
No
No
No
No
No
Yes
Report clear and intelligible error and diagnostic message
No
No
No
No
No
Yes
Modify syntax
No
No
No
No
No
Yes
Simplify code generation
No
No
No
No
No
Yes (quasi-quotation, splising)
Internal DSL support
No
No
Bad
No
No
Yes+
Interaction with copiler
No
No
No
No
No
Yes+
Useful macros in stdlib
No
No
No
No
No
Yes
Modify AST
No
No
No
No
No
Yes
IDE
D
C
C++
C#
Java
Nemerle
IDE suport
No
Bad
Bad
Yes+
Yes+
No (plan)
Refactoring
No
Bad
Bad
Yes+
Yes+
No (plan)
Надеюсь ошибся не много. Если что поправим.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Таблица сранения языкво от создателей D поправленная мно
Здравствуйте, GlebZ, Вы писали:
GZ>А что ты имел ввиду IDE Support для C++ — BAD?(что refactoring C++ is bad, не спорю).
* Комлит Ворд для С++ хреновый у всех что я видел средств. Даже Таматный Асист врал безбожно.
* О фишках вроде реалтаймной подсветке ошибко даже и мечтать не приходится.
* Из-за маросов и сложности языка частенько нкоррктная подстветка.
* Нет подстветки типов в код.
Короче проще перечислить, что есть.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, VladD2, Вы писали:
VD>* Комлит Ворд для С++ хреновый у всех что я видел средств. Даже Таматный Асист врал безбожно.
Со всем кроме комплита соглашусь. В VS2003 — не замечал глюков(а может такой код писал ). В VC6 вретъ и падаетъ.
Re: Таблица сранения языкво от создателей D поправленная мно
<тырыпыры> VD>Надеюсь ошибся не много. Если что поправим.
Конкретно по Яве.
Associative arrays == Hashtable/Map
typeof == instanceof.
foreach — почему ДА, когда НЕТ?
Contract Programming — ДА, так как есть Checked Exceptions.
Unit testing — фреймворк JUnit.
RAII (automatic destructors) == finalization и слабые ссылки.
Scope guards — есть.
80 bit floating point — есть гораздо круче — BigDecimal.
Direct access to C — есть JNI.
Use existing debuggers — это что ваще?
Macro text preprocessor — вообще-то существует как расширение.
Conditional compilation — вообще-то существует как расширение.
Ну а остальное, относящееся к метапрограммированию, вообще сравнивать не хочется, не для того Java создавалась.
Re[2]: Таблица сранения языкво от создателей D поправленная
В верхней таблице, что касается C#, вообще сильно наглючено.
ZEN>RAII (automatic destructors) == finalization и слабые ссылки.
Я бы не говорил что это RAII. В принципе в той же степени как и в С#(они там приплюсовали его). Это разные и несравнимые вещи работа с GC и без оного.
Re[3]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, GlebZ, Вы писали:
GZ>В верхней таблице, что касается C#, вообще сильно наглючено.
iZEN>>RAII (automatic destructors) == finalization и слабые ссылки. GZ>Я бы не говорил что это RAII. В принципе в той же степени как и в С#(они там приплюсовали его). Это разные и несравнимые вещи работа с GC и без оного.
Да я понимаю.
Ну нету в Java способа преобразовать выражение myObject = null; в развёрнутый деструктор кроме как надеяться на GC, слабую ссылку, finalization и господабоганашего.
Re[4]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, iZEN, Вы писали:
ZEN>Да я понимаю. ZEN>Ну нету в Java способа преобразовать выражение myObject = null; в развёрнутый деструктор кроме как надеяться на GC, слабую ссылку, finalization и господабоганашего.
А собственно и оно и не нужно в той же степени как в С++. Это совершенно другой стиль программирования, и смысла в таком сравнении нету.
Re[2]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, stele, Вы писали:
S>А статью напишешь с примерами и картинками как последняя колонка лучше остальных?
Писать о том, "как лучше" точнее "чем лучше" занятие не благодарно. Но статью, точнее статьи, мы уже написали. Сегодня привезли тираз RSDN Magazine #1 2006 в котором 3 статьи о Nemerle. Они не 100%-но описывают язык, но для всех кто знаком с C# дадут вполне приличное понимание языка.
Я же могу подчеркнуть три вещи которые мне особо понравились:
1. Макросы. Пожалуй только из-за них уже стоит использовать этот язык.
2. Сопоставление с образцом (pattern matching).
3. Вывод типов.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, kedik, Вы писали:
K>Ну дык а вывод-то какой... у меня чего-то посчитать не получаеться — калькулятор глючит...
Чей? Твой? Или мой? Мне казалось, что такая таблица нужна именно для того, чтобы люди сами делали выводы.
Мой вывод, думаю, все и так понятен. Если нет острой потребности в генерации нэйтив-кода, и если не расстраивает то, что приходится использовать фрэймворк, то возможности emerle однозначно намного выше. К тому же язык полностью типобезопасный и содержит минимум граблей.
Но, естественно, каждый решает сам. Вдруг кто-то просто не переносит птичек или розовых слоников?
K>У кого длинее то?
Длинее хобот у слона.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, VladD2, Вы писали:
VD>Сегодня привезли тираз RSDN Magazine #1 2006 в котором 3 статьи о Nemerle. Они не 100%-но описывают язык, но для всех кто знаком с C# дадут вполне приличное понимание языка.
Ну вы не тяните, в продажу его. Капиталл должен работать, а не лежать на складе
... <<My edition based on RSDN@Home 1.2.0 alpha rev. 648>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re: Таблица сранения языкво от создателей D поправленная мно
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, GlebZ, Вы писали:
GZ>>Со всем кроме комплита соглашусь. В VS2003 — не замечал глюков(а может такой код писал ). В VC6 вретъ и падаетъ.
VD>А ты ATL используешь? Я вот имел нехилые проблемы. А boost?
ATL — да. Boost — нет.
Re[2]: Таблица сранения языкво от создателей D поправленная
Здравствуйте, iZEN, Вы писали:
ZEN>Associative arrays == Hashtable/Map
Авторы ди рассматривали возможности языка, а не библиотек. По-моему, это очевидно. Надо выключить фанатизм и и принималь правила игры.
Я согласен с тем, что это не является реальным приемуществом, и что коллекции явы и дотнета практически не отличаются по функциональности и удобству. Но вот так вот решили сравнивать авторы.
ZEN>typeof == instanceof.
Сори, на корректность Явы я особого внимания не обращал. С данными замечаниями согласен. Сейчас внесу...
ZEN>Contract Programming — ДА, так как есть Checked Exceptions.
Тут речь идет о другом. Тут речь о пред/пост-условиях.
ZEN>foreach — почему ДА, когда НЕТ?
В Java 1.5 расширен синтаксис предложения for.
ZEN>Unit testing — фреймворк JUnit.
То же что и про хэш-таблицу. Речь о поддержке в языке. В языке Ява поддержка юнит тестов отсуствует.
ZEN>RAII (automatic destructors) == finalization и слабые ссылки.
Ты прочел бы описание RAII прежде чем говорить. В C# и Nemerle речь идет о using (...).
ZEN>Scope guards — есть.
Пример, плиз, приведи.
ZEN>80 bit floating point — есть гораздо круче — BigDecimal.
Еще раз, это не особенность языка.
ZEN>Direct access to C — есть JNI.
Этого вообще в сравнении нет. Там идет речь о возможности использования заголовочных файлов С.
ZEN>Use existing debuggers — это что ваще?
Хрен его знает. Видимо речь о Вынь-дебагерах. Согласен, что товарищь явно притягивает какею-то фигню за уши. Но из песни слов не выкинишь. Могу добавить ???.
ZEN>Macro text preprocessor — вообще-то существует как расширение.
Как расширение можно и С++-ный использовать. Я уже устал повторять, что речь идет о ЯЗЫКЕ.
ZEN>Conditional compilation — вообще-то существует как расширение.
Ну, ты уже все должен и сам понять.
ZEN>Ну а остальное, относящееся к метапрограммированию, вообще сравнивать не хочется, не для того Java создавалась.
Да. Ява создавалась для Гашиш Кумаров.
Итого, в сухом осадке.
С typeof == instanceof вышла ошибочка.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.