Necessities for Adoption of D
Hans W. Uhlig
huhlig at clickconsulting.com
Mon Feb 11 08:21:04 PST 2008
Burton Radons wrote:
> Hans W. Uhlig Wrote:
>
>> 3) Good, native parallelism - With dual core, quad core, or in
>> IBM's Cell processor Obscene core processors, none of the current
>> C Syntax family is parallelism handled natively and "well".
>
> Do you mean in the library or in the language? I don't think D can be
> a magically-parallelising language; it's not constructed for it, and
> while it's a cool trick in those languages which do it I'd be worried
> about it not parallelising important code because of some functional
> test incorrectly failing and making it run sequentially. But it could
> handle something like OpenMP more elegantly, where you tell the
> compiler what can be parallelised, a la:
>
> // The compiler can and probably should split this into pieces.
> parallel foreach (i, foo) // The compiler can also do these two
> tasks at the same time. parallel { // Pause any other worker threads
> so that only this thread can work during this statement. synchronized
> { }
>
> // But this only causes us to pause this thread if another thread is
> using the object. synchronized (object) { } } parallel bar ();
>
> // But everything's gotta be done before calling this! baz ();
>
> That would be a quick addition to the compiler that could be expanded
> over time (both in how well the compiler handles the instruction and
> semantics) rather than taking a month just to get it to a
> semi-working state, it's something that would retain its usefulness
> even if the compiler starts to learn how to automatically parallelise
> code, and it's simple (probably too simple, I haven't explored OpenMP
> much) while still making a material contribution to the language.
>
> I'm working on this issue in a library, but there's a limit to how
> elegant I can make it. Also I have no freaking idea what I'm doing.
> It hasn't stopped me before, but it does slow me down.
>
Yes, With both where computers are going and where they already are,
native parallelism is one of the prime areas where a language will have
to shine.
>> 6) Well supported exterainious libs - In java if you need an xml
>> library there are 30, in perl if you need a mysql link, there is
>> one that is regularly updates. This one takes people using the
>> language and doing such things but its important none the less.
>> There is no reason to reinvent the wheel 10 times when someone has
>> done it for you. (I am well aware that many programmers will
>> reinvent the wheel 'right' again anyway)
>
> I half agree and half disagree. I can see how this allows outsiders
> to get a simple, cohesive view of a language. On the other hand,
> there are often manifest problems or deficiencies in a library, and
> variations on a theme allow us to explore different ways to address
> the issue and find the best way to implement it. This is particularly
> important with D, which has certain features which no other language
> has and needs implementing in new ways. It's not pointless
> reinvention.
very true but when you move from hobbier to production you need a single
accepted standard you can show a Pointy haired project manager and say
we are using X from Y. we can rely on them supporting it for x years.
Personal Development vs Corporate development have very different
standards.
More information about the Digitalmars-d
mailing list