Таблица сранения языкво от создателей D поправленная мной
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.05.06 15:53
Оценка: 62 (15) -1 :))) :))) :))) :)))
Feature D C C++ C# Java Nemerle
Garbage Collection Yes- No No Yes Yes Yes
Functions D C C++ C# Java Nemerle
Function delegates Yes No No Yes No Yes+
Function overloading Yes No Yes Yes Yes Yes
Out function parameters Yes Yes Yes Yes No Yes
Nested functions Yes No No No No Yes+
Function literals Yes No No No No Yes ???
Dynamic closures Yes No No Yes No Yes+
Typesafe variadic arguments Yes No No Yes Yes Yes
Arrays D C C++ C# Java Nemerle
Lightweight arrays Yes Yes Yes Yes No No
Resizeable arrays Yes No No No No No
Built-in strings Yes No No Yes Yes Yes
Array slicing Yes No No No No No*
Array bounds checking Yes No No Yes Yes Yes
Associative arrays Yes No No No No No
Strong typedefs Yes No No No No No
String switches Yes No No Yes No Yes+
Aliases Yes Yes Yes No No Yes
OOP D C C++ C# Java Nemerle
Object Oriented Yes No Yes Yes Yes Yes
Multiple Inheritance No No Yes No No No
Interfaces Yes No Yes Yes Yes Yes
Operator overloading Yes No Yes Yes No Yes+
Modules Yes No Yes Yes Yes Yes
Dynamic class loading No No No Yes Yes Yes
Nested classes Yes Yes Yes Yes Yes Yes
Inner (adaptor) classes Yes No No No Yes No*
Covariant return types Yes No Yes No Yes No
Properties Yes No No Yes No Yes
Performance D C C++ C# Java Nemerle
Inline assembler Yes Yes Yes No No No
Direct access to hardware Yes Yes Yes No No No
Lightweight objects Yes Yes Yes Yes No Yes
Explicit memory allocation control Yes Yes Yes No No No
Independent of VM Yes Yes Yes No No No
Direct native code gen Yes Yes Yes No No No
Generic Programming D C C++ C# Java Nemerle
Class Templates Yes No Yes Yes Yes Yes
Function Templates Yes No Yes Yes Yes Yes
Implicit Function Template Instantiation No No Yes No No No
Partial and Explicit Specialization Yes No Yes No No No
Value Template Parameters Yes No Yes No No No
Template Template Parameters Yes No Yes No No No
Mixins Yes No No No No No* (plan)
static if Yes No No No No
is expressions Yes No No No No
typeof Yes No No Yes Yes (instanceof) Yes
foreach Yes No No Yes Yes Yes+
Implicit Type Inference Yes No No No No Yes+
Reliability D C C++ C# Java Nemerle
Contract Programming Yes No No No No Yes*
Unit testing Yes No No No No No*
Static construction order Yes No No Yes Yes Yes
Guaranteed initialization Yes No No Yes Yes Yes
RAII (automatic destructors) Yes No Yes Yes No Yes
Exception handling Yes No Yes Yes Yes Yes
Scope guards Yes No No No No Yes+
try-catch-finally blocks Yes No No Yes Yes Yes
Thread synchronization primitives Yes No No Yes Yes Yes*
Compatibility D C C++ C# Java Nemerle
C-style syntax Yes Yes Yes Yes Yes ~Yes
Enumerated types Yes Yes Yes Yes Yes Yes
Support all C types Yes Yes No No No No
80 bit floating point Yes Yes Yes No No No
Complex and Imaginary Yes Yes No No No No
Direct access to C Yes Yes Yes No No No
Use existing debuggers Yes Yes Yes Yes ??? No Yes ???
Struct member alignment control Yes No No Yes No Yes
Generates standard object files Yes Yes Yes No No No
Macro text preprocessor No Yes Yes No No
Other D C C++ C# Java Nemerle
Conditional compilation Yes Yes Yes Yes No Yes
Unicode source text Yes Yes Yes Yes Yes Yes
Documentation comments Yes No No Yes Yes No (plan)
+ — означает, что во много раз круче чем в приведенных языках.
* — означает, что реализовано на макросах или реализуется на макросах.
— — возможность поддерживается слабо.
??? — бредовый вопрос.
— смешной вопрос, вызванный убогостью 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 Россия  
Дата: 18.05.06 16:08
Оценка:
Здравствуйте, VladD2, Вы писали:

А что ты имел ввиду IDE Support для C++ — BAD?(что refactoring C++ is bad, не спорю).
Re: Таблица сранения языкво от создателей D поправленная мно
От: stele Россия www.stele.su
Дата: 18.05.06 17:03
Оценка:
А статью напишешь с примерами и картинками как последняя колонка лучше остальных?
... <<My edition based on RSDN@Home 1.2.0 alpha rev. 648>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re: Таблица сранения языкво от создателей D поправленная мно
От: FR  
Дата: 18.05.06 17:19
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Надеюсь ошибся не много. Если что поправим.


lambda support в D есть, не хуже чем в C#2

auto tst = function int(int x) {return x + 3;};
Re: Таблица сранения языкво от создателей D поправленная мно
От: kedik  
Дата: 18.05.06 17:22
Оценка: :)
Здравствуйте, VladD2, Вы писали:


VD>Надеюсь ошибся не много. Если что поправим.


Ну дык а вывод-то какой... у меня чего-то посчитать не получаеться — калькулятор глючит...

У кого длинее то?
Re[2]: Таблица сранения языкво от создателей D поправленная
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.05.06 17:58
Оценка: 1 (1)
Здравствуйте, GlebZ, Вы писали:

GZ>А что ты имел ввиду IDE Support для C++ — BAD?(что refactoring C++ is bad, не спорю).


* Комлит Ворд для С++ хреновый у всех что я видел средств. Даже Таматный Асист врал безбожно.
* О фишках вроде реалтаймной подсветке ошибко даже и мечтать не приходится.
* Из-за маросов и сложности языка частенько нкоррктная подстветка.
* Нет подстветки типов в код.
Короче проще перечислить, что есть.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Таблица сранения языкво от создателей D поправленная
От: GlebZ Россия  
Дата: 18.05.06 18:16
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>* Комлит Ворд для С++ хреновый у всех что я видел средств. Даже Таматный Асист врал безбожно.

Со всем кроме комплита соглашусь. В VS2003 — не замечал глюков(а может такой код писал ). В VC6 вретъ и падаетъ.
Re: Таблица сранения языкво от создателей D поправленная мно
От: iZEN СССР  
Дата: 18.05.06 18:17
Оценка:
Здравствуйте, VladD2, Вы писали:

<тырыпыры>
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 поправленная
От: GlebZ Россия  
Дата: 18.05.06 18:23
Оценка: +1
Здравствуйте, iZEN, Вы писали:

В верхней таблице, что касается C#, вообще сильно наглючено.

ZEN>RAII (automatic destructors) == finalization и слабые ссылки.

Я бы не говорил что это RAII. В принципе в той же степени как и в С#(они там приплюсовали его). Это разные и несравнимые вещи работа с GC и без оного.
Re[3]: Таблица сранения языкво от создателей D поправленная
От: iZEN СССР  
Дата: 18.05.06 18:30
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>В верхней таблице, что касается C#, вообще сильно наглючено.


iZEN>>RAII (automatic destructors) == finalization и слабые ссылки.

GZ>Я бы не говорил что это RAII. В принципе в той же степени как и в С#(они там приплюсовали его). Это разные и несравнимые вещи работа с GC и без оного.
Да я понимаю.
Ну нету в Java способа преобразовать выражение myObject = null; в развёрнутый деструктор кроме как надеяться на GC, слабую ссылку, finalization и господабоганашего.
Re[4]: Таблица сранения языкво от создателей D поправленная
От: GlebZ Россия  
Дата: 18.05.06 18:35
Оценка: +1
Здравствуйте, iZEN, Вы писали:

ZEN>Да я понимаю.

ZEN>Ну нету в Java способа преобразовать выражение myObject = null; в развёрнутый деструктор кроме как надеяться на GC, слабую ссылку, finalization и господабоганашего.
А собственно и оно и не нужно в той же степени как в С++. Это совершенно другой стиль программирования, и смысла в таком сравнении нету.
Re[2]: Таблица сранения языкво от создателей D поправленная
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.05.06 18:36
Оценка:
Здравствуйте, 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 поправленная
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.05.06 18:36
Оценка:
Здравствуйте, FR, Вы писали:

FR>lambda support в D есть, не хуже чем в C#2


FR>
FR>auto tst = function int(int x) {return x + 3;};
FR>


ОК, добавил.

Замыкания в них, кстати, поддерживаются?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Таблица сранения языкво от создателей D поправленная
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.05.06 18:36
Оценка: :))) :)
Здравствуйте, kedik, Вы писали:

K>Ну дык а вывод-то какой... у меня чего-то посчитать не получаеться — калькулятор глючит...


Чей? Твой? Или мой? Мне казалось, что такая таблица нужна именно для того, чтобы люди сами делали выводы.

Мой вывод, думаю, все и так понятен. Если нет острой потребности в генерации нэйтив-кода, и если не расстраивает то, что приходится использовать фрэймворк, то возможности emerle однозначно намного выше. К тому же язык полностью типобезопасный и содержит минимум граблей.

Но, естественно, каждый решает сам. Вдруг кто-то просто не переносит птичек или розовых слоников?

K>У кого длинее то?


Длинее хобот у слона.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Таблица сранения языкво от создателей D поправленная
От: GlebZ Россия  
Дата: 18.05.06 18:40
Оценка: :))) :))
Здравствуйте, VladD2, Вы писали:

VD>Длинее хобот у слона.

Этого ?

Re[3]: Таблица сранения языкво от создателей D поправленная
От: stele Россия www.stele.su
Дата: 18.05.06 18:48
Оценка: 6 (1) :))) :))) :))) :))
Здравствуйте, VladD2, Вы писали:

VD>Сегодня привезли тираз RSDN Magazine #1 2006 в котором 3 статьи о Nemerle. Они не 100%-но описывают язык, но для всех кто знаком с C# дадут вполне приличное понимание языка.


Ну вы не тяните, в продажу его. Капиталл должен работать, а не лежать на складе
... <<My edition based on RSDN@Home 1.2.0 alpha rev. 648>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re: Таблица сранения языкво от создателей D поправленная мно
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.05.06 18:54
Оценка:
Здравствуйте, VladD2

А можно пример RAII в Nemerle? Или ты в качестве RAII конструкцию using рассматриваешь?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[4]: Таблица сранения языкво от создателей D поправленная
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.05.06 18:57
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Со всем кроме комплита соглашусь. В VS2003 — не замечал глюков(а может такой код писал ). В VC6 вретъ и падаетъ.


А ты ATL используешь? Я вот имел нехилые проблемы. А boost?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Таблица сранения языкво от создателей D поправленная
От: GlebZ Россия  
Дата: 18.05.06 19:00
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, GlebZ, Вы писали:


GZ>>Со всем кроме комплита соглашусь. В VS2003 — не замечал глюков(а может такой код писал ). В VC6 вретъ и падаетъ.


VD>А ты ATL используешь? Я вот имел нехилые проблемы. А boost?

ATL — да. Boost — нет.
Re[2]: Таблица сранения языкво от создателей D поправленная
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.05.06 19:00
Оценка:
Здравствуйте, 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>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.