Unofficial wish list status.(Jul 2008)
Sean Kelly
sean at invisibleduck.org
Tue Jul 22 09:11:47 PDT 2008
Walter Bright wrote:
> Sean Kelly wrote:
>> Walter Bright wrote:
>>> But, you said you didn't wish to mix functional and imperative
>>> programming? I don't understand.
>>
>> Not in the same language. One reason being the impact it will have on
>> managing projects in D. C++, for example, supports a sufficiently
>> diverse set of programming methodologies that large projects in it
>> tend to be a mess.
>
> I agree that diverse paradigm support can lead to a mess. On the other
> hand, to be a mainstream language I think one must support diverse
> paradigms because programmers are diverse. Additionally, nobody really
> knows yet which horse is the right one to back for multicore
> programming, but functional certainly is a favorite.
I agree. In fact, I'd bet that imperative applications will dwindle
over time because such code inherently resists parallelization. But I
very much believe that there is an ongoing need for systems languages,
and I can't envision a functional systems language. Such languages must
allow mutable state.
> I disagree that using multiple languages for one project is a good idea,
> unless one language is hosted by the other (like emacs/elisp). Trying to
> get two languages produced by different vendors to consistently work
> together across platforms and differing upgrade schedules can be a
> prescription for a lot of extra work. Is learning two different
> languages really easier than learning two different paradigms in the
> same language?
It comes back to that semantic barrier I mentioned in my other post.
With everything in a single language, I think in team programming it
will be inevitable that imperative code will "bleed" into areas that are
intended to be functional, purely as a result of the personal styles of
the programmers involved.
As for learning multiple languages... web development already involves a
ton of different protocols, technologies, and languages, so I think
there's precedent that this isn't a huge obstacle for most teams. I
would personally rather have a set of specialized tools than one tool
which can do everything but isn't really ideal for anything.
>> Regarding the D mixed functional / imperative approach, another issue
>> I have with it is that it's exactly the reverse of the Erlang / C
>> model. While Erlang / C is functional for control structures and
>> imperative for optimization points, D looks like it will be imperative
>> for control and functional for optimization. Plus, I really like the
>> concurrency model in Erlang.
>
> A side note: Everyone complains about feature bloat in Microsoft Word.
> What the world needs is a lean, mean word processor. But the problem is,
> customer Bill says: "That's great, but I need feature #543. Not having
> it is a deal breaker for me." Customer Sue says: "I'd buy the lean &
> mean one, but I need feature #1678. Everything I do is based on that."
> And so on. Feature creep is the result of inexorable and unrelenting
> pressure for them.
I'd say that the word processor should be modular and that the requested
features should be sold as plug-ins. Then customer A gets his lean mean
word processor with exactly the features he wants, and the same for
customers B and C. This obviously isn't possible with a language
however, so I'm inclined to say that this is a false analogy.
Sean
More information about the Digitalmars-d
mailing list