Unofficial wish list status.(Jul 2008)
Fawzi Mohamed
fmohamed at mac.com
Tue Jul 22 04:46:44 PDT 2008
On 2008-07-22 08:06:12 +0200, Sean Kelly <sean at invisibleduck.org> said:
> Walter Bright wrote:
>> Sean Kelly wrote:
>>> I think part of the problem is that I simply don't agree with the mixed
>>> functional / imperative approach that appears to be the overarching
>>> direction of D.
>>
>> No other language has tried such an approach before, and so we have yet
>> to know unequivocably if it is right or not. But I'm very optimistic
>> about it.
>
> I'm hopeful, just not optimistic :-)
There are other attempts at multi-paradigm programming languages, it is
true that these are not system programming languages.
Mozart/Oz http://www.mozart-oz.org/
is an interesting attempt, and the book by Van Roy and Haridi that uses
it (Concepts, Techniques, and Models of Computer Programming)
http://www.amazon.com/Concepts-Techniques-Models-Computer-Programming/dp/0262220695
is
a very interesting read.
>>> And while I do quite a bit of concurrent programming,
>>> it's not in a way that will reap any benefit from this design. In fact, the
>>> language features added to support it are more of an annoyance than
>>> they are an aid. This may very well mean that D is simply not the
>>> language for me in the long term. However, with C and C++ as the
>>> only real alternatives for systems programming, there aren't many
>>> other options available.
I tried to work in a mixed language approach (python/C) and my
productivity went down, I even missed fortran!
I think that when you have a fixed interface or a clear problem then it
might be ok, but if you are developing in place where it is not so
obvious where to cut things, and you switch implementation, and the
"reference" implementation in the high level language is so unbearably
slow that you cannot really use it even as test in the complex case, it
becomes messy, and you loose a lot of time.
I have only slightly brushed erlang, I didn't make any large scale
projects with it, but I suspect the issues are similar.
So I like very much the idea of a multi-paradigm language, if done
well, and I like the idea of having a functional kernel in the language.
Functional languages have to work harder to bring back some of the
expression power, and the result is that they work very well when
combining simpler building blocks, and are a real boon at high level,
but I do not belive in "automatic" parallelization through it.
Parallelization comes from the use of parallel constructs, and there are
>> There are several different paradigms for concurrent programming. D
>> won't be forcing one paradigm on anyone, it's sort of like oop vs free
>> functions. They both work, and you can mix & match them as desired.
>
> See my other post regarding managing projects in C++.
Yes having multiple paradigms can be a mess especially if the
programming language is not clean and does not try to be as compact as
possible and also know when to give up a little performance this is non
obvious, but, I think, possible (I did large projects in C++, and I
think the problem was not mutiparadigm per se, but how it is presented
also due to legacy issues, and the unwillingness to make some clear
choices).
Also many of the things one might want can be very well implemented in
libraries, and should be done like that.
I have enough discipline to choose the right approach, I definitely
want a language that support this, and it is one of the reasons I came
to D, I think that with some work, it might support all that I want,
which is templates, multithreading, so that I can set up my generic
work distributing schemes, MPI if available, and Erlang actor model
(which I think will become more and more important, and should be used
when possible).
Fawzi
More information about the Digitalmars-d
mailing list