Unofficial wish list status.(Jul 2008)
superdan
super at dan.org
Tue Jul 22 11:03:03 PDT 2008
Sean Kelly Wrote:
> 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.
this is a logical fallacy. you haven't shown that all or most code will need paralellization. you'd need to show that for your point to stand.
> 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.
...on today's architectures. if hardware transactional memory makes it things will change quite a bit.
> > 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.
yeah and that will be documented in pure vs. impure functions and in invariant vs. const/mutable data. this is great. d is not a convention-based language like c++.
> 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.
that again is a logical fallacy. i like messing with cars. i have an amazing 18V drill that i use for a ton of stuff - screws, bolts, holes, adjustments, rust removal, you name it. does that mean i'm only trying to use that tool for everything? sure not. but that doesn't make it less loveable.
> >> 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.
i agree. let's drop this word parallel.
More information about the Digitalmars-d
mailing list