Help me decide D or C

Jonathan M Davis newsgroup.d at jmdavisprog.com
Fri Aug 2 16:25:22 UTC 2019


On Friday, August 2, 2019 10:13:04 AM MDT bachmeier via Digitalmars-d-learn 
wrote:
> On Thursday, 1 August 2019 at 22:36:06 UTC, Russel Winder wrote:
> > On Thu, 2019-08-01 at 14:49 +0000, bachmeier via
> > Digitalmars-d-learn wrote: […]
> >
> >> There's nothing wrong with Haskell if you want to take a deep
> >> dive into pure functional programming. I personally find
> >> Haskell to be more of a religion than a programming language.
> >> You can learn the same perspective from functional-first
> >> languages like Clojure, Scala, Ocaml, and F#.
> >
> > […]
> >
> > Whilst I agree that most "this is the one true programming
> > language" people are quasi-religious, programming languages are
> > not: Haskell is a just a lazy, pure functional programming
> > language, some adherents show quasi-religious fervour, just as
> > some adherents of C++, Java, C, Go, Rust, D, etc. do.
> >
> > I am not sure about F# (I do not know anything of it), but
> > Clojure, Scala, and OCaml are very different from Haskell for
> > various reasons, cf. lazy vs. eager, pure vs. impure. Haskell
> > is a programming language worth learning for all
> > programmers,along with Lisp, Prolog, and Erlang.
> >
> > I'll bet (but I have no experimental data, just a hypothesis)
> > that any D programmer that knows Haskell writes better D than a
> > D programmer who doesn't know Haskell.
>
> This is getting somewhat off the topic of this thread, so all
> I'll say is that I agree with the recommendation to learn
> Haskell, but I don't think a beginner would get enough exposure
> to various approaches to programming. I did not personally see
> large benefits from Haskell, but perhaps I should have stuck with
> it longer.

Using Haskell or other similar functional languages can be extremely
beneficial towards improving how good you are at recursion, and it can make
you much better at functional programming paradigms, because you really
don't have much choice when using a language like Haskell. For a couple of
years, Haskell was my go-to language for all of my side projects, and I got
much better at the functional side of things (e.g. when I first used D
templates, I had no problem with their functional nature to the point that I
didn't realize that they were functional in nature until I read an article
that compared Haskell to C++ templates). That being said, I'd _hate_ to use
Haskell for anything serious or for any large projects. It's just too
restrictive.

My feeling is that functional languages are likely to be a very poor place
for most folks to start learning, much as I think that they're great for
someone to learn and work with at some point. I have heard of beginning
programming classes using functional languages and having it go very well,
but it seems hard to believe to me. Imperative programming can already be a
lot for beginners, but most people really don't think even vaguely in a
functional manner. Even simple recursion tends to be a bit of a mind-bender
for people at first.

- Jonathan M Davis






More information about the Digitalmars-d-learn mailing list