Unofficial wish list status.(Jul 2008)

Yigal Chripun yigal100 at gmail.com
Tue Jul 22 03:29:10 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 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?
> 
> 
>> 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.

The word example is wrong in that, in your example, bill doesn't need
feature #1678, and sue doesn't need #543. The answer to that is a model
similar to eclipse: both sue and bill can use eclipse but since bill
works with c/c++ he can get a pre-packaged version with CDT which is
much smaller than the entire eclipse project, and sue can get her
eclipse pre-packaged with JDT since she works with Java. This is why
Eclipse is so popular and supported by many large companies like oracle,
IBM, etc.. The same goes to the popular browser Firefox and its
extensions. No need to bundle everything like Microsoft word does, it's
much better to have a system to allow users to integrate features they
require beyond the lean & mean core.

here's my educated guess: Sean uses erlang + D to get the same benefits.
he can have the feature sets of both languages with their own lean &
mean syntaxes that are geared toward their respective feature sets.
while if he had used one language with both feature sets, than the
syntax of that language would be much more complicated in order to
support all the features.
C++ as an example: its syntax is horrible due to the fact that it can do
so much. if I only do OOP, I'll prefer a syntax like Ruby or Smalltalk
or something like that. if I want to do procedural code I'll prefer C
syntax instead, but I definitely do not want to have a compromise of
both syntaxes in one language (we all know that a programing language is
an agreed upon compromise) that will not allow me to express my OOP code
in a concise OOP way and also will not allow me to express my procedural
code in a concise procedural way.

an everything-including-the-kitchen-sink language cannot provide concise
syntax for any of the paradigms it supports.



More information about the Digitalmars-d mailing list