From: Mikhail Yakshin <greycat@altlinux.org>
To: ALT Devel discussion list <devel@altlinux.ru>
Subject: Re: [devel] D -- нафиг
Date: Sat, 07 May 2005 13:59:29 +0400
Message-ID: <427C9181.1020400@altlinux.org> (raw)
In-Reply-To: <20050507071417.GB22379@osdn.org.ua>
Michael Shigorin пишет:
> On Fri, May 06, 2005 at 10:42:07PM +0400, Mikhail Yakshin wrote:
>
>>Если посмотреть, например, сюда:
>>http://www.digitalmars.com/d/comparison.html
>>и немножко поразмыслить, то оказывается, что в этой самой
>>таблички совершенно наглым способом много где врут.
>
>
> Значит, в /dev/arse их. Если в малом врут -- и в большом подведут.
Ну, например:
Lightweight arrays Yes Yes Yes No No
Не знаю, что они там подразумевали под этим сакральным утверждением, но
обычное объявление массивов без каких-нибудь new Vector() или new
Array() - в Java и C# вообще-то есть. То, что они в результате
получаются не какими-то отдельными специфическими сущностями -
массивами, а полноценными объектами - это скорее плюс языка, его куда
более продуманная объектная парадигма, а не минус.
Resizeable arrays Yes No No No No
Глупость какая-то. В C - есть realloc. В C++ - есть std::vector. В Java
- java.util.Vector.setSize. В C# - в первом есть property
System.Collections.ArrayList.Capacity, в C# 2.0 - есть Array.Resize.
Built-in strings Yes No No Yes Yes
Опять некорректно сравнивают. В C есть char[], который есть местный
string и никакого другого там в принципе-то особенно придумать нельзя. В
C++, как они справедливо замечают в сноске - std::string есть, но
почему-то они хотят закрыть на это глаза.
Associative arrays Yes No No No No
Нагло врут. В C++ есть std::map. В Java - например, java.util.HashMap. В
C# - есть System.Collections.Hashtable и даже более "продвинутый
вариант" - System.Collections.SortedList.
Multiple Inheritance No No Yes No No
Вообще-то mixin, который достаточно активно эксплуатируется в D, по
жизни был способом множественного наследования.
Direct access to hardware Yes Yes Yes No No
Очень пафосная формулировка, но ничего не отражающая толком. На том же
C# есть возможность писать как unmanaged code, так и в принципе вещи,
очень близко работающие с underlying OS. При небольшом желании - даже
драйверы в оффтопике можно на нем писать...
Lightweight objects Yes Yes Yes Yes No
Тут они "правы", но смешна сама формулировка - если почитать, что они
имеют в виду под этим. Lightweight object'ами они называют как ни
странно struct, как известно, отличающийся исключительно заданной
негласно по умолчанию областью видимости public. Есть немало ругани на
тему того, зачем эту глупость включили в C#, так они мало того, что этот
сомнительный feature включили в D - этим еще и гордятся...
Independent of VM Yes Yes Yes No No
Direct native code gen Yes Yes Yes No No
Формально они правы - реально - если подумать - то как только в языке
появляется GC, сложные типы данных, многочисленные проверки и
перестраховки, возможность не сегфолтиться аппартно, а всегда нести в
себе некие контрольные механизмы, которые в случае ошибки выкинут
хороший exception с отладочной информацией - во всех этих случаях
фактически элементы того, что делает эта самая VM просто вкомплируются
внутрь бинарника программы - и все...
Unit testing Yes No No No No
Крайне советую почитать, что они имеют в виду под этими словами. Если
принять их терминологию - все так, конечно %)
Direct access to C Yes Yes Yes No No
Сильно спорно в контексте C# и возможности легко использовать код на
unmanaged C в нем.
Generates standard object files Yes Yes Yes No No
Скорее смешно, чем грустно. Правильное название этого пункта - скорее
"Generates C-compatible object files"... А то вообще-то C# DLLs и Java
classes - тоже вполне себе "стандартные файлы"...
В общем, скорее, хочу извиниться за этот пост, он скорее всего уже
здорово пахнет оффтопиком в этом списке, а еще может быть весьма
flamebait-о-образным... Посему - не думаю, что эту тему стоит развивать
по крайней мере здесь...
--
WBR, Mikhail Yakshin AKA GreyCat
ALT Linux [http://www.altlinux.ru] [xmpp:greycat@altlinux.org]
next prev parent reply other threads:[~2005-05-07 9:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-06 6:40 [devel] D ? Anton Farygin
2005-05-06 7:26 ` Alexey I. Froloff
2005-05-06 9:39 ` Andrey Astafiev
2005-05-06 13:55 ` Anton Farygin
2005-05-06 9:26 ` [devel] D ? [JT] Vitaly Lipatov
2005-05-06 18:42 ` [devel] D ? Mikhail Yakshin
2005-05-07 7:14 ` [devel] D -- нафиг Michael Shigorin
2005-05-07 9:59 ` Mikhail Yakshin [this message]
2005-05-07 10:24 ` Денис Смирнов
2005-05-17 4:03 ` [devel] D ? Andrey Astafiev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=427C9181.1020400@altlinux.org \
--to=greycat@altlinux.org \
--cc=devel@altlinux.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git