ALT Linux Team development discussions
 help / color / mirror / Atom feed
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]


  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