DEV Community

Discussion on: Choosing a Programming Language

Collapse
 
eljayadobe profile image
Eljay-Adobe

There was a recent discussion on this dev.to forum about whether or not learning more than one language was important.

I like learning programming languages as a hobby, even if I'm not going to be using them to get paid money. But not everyone is interested in investing the time to master a language for fun, that they won't be using — and that's legit.

The survey was missing Lisp or one of its dialects like Scheme or Clojure. So I punted and picked Haskell, but it was a tossup between Haskell and SQL.

I did not vote for C++. I think C++ is overused in both industry and academics, where another language would be more suitable. It is a difficult language to learn, even more difficult to master. It makes for code that is a huge effort to maintain. Modern languages like Java and C# have demonstrated that the Preprocessor portion of C++ is more of a liability and anachronism — but C++ cannot divest itself of the Preprocessor without not being C++. That ship has sailed. Despite all of those barriers, C++ is a very popular language and will continue to be popular in the foreseeable future. I have a ~30 year love-hate relationship with C++.

You mentioned "I suspect that functional programming is going to become THE programming skill to have in the near future", and I fully agree with that statement.

That reminds me of this quote (from the Forward in "The Book of F#"):

I’ll wind down with a lie that OO people who are learning FP tell one another: “Learning FP will make you a better OO programmer.” It rings true, and in the short run it may even be true, but as you internalize immutability, recursion, pattern matching, higher-order functions, code as data, separation of behavior from data, and referential transparency, you will begin to despise OO. Personally, I went from being a Microsoft C# MVP to feeling guilt every time I created a new class file. Once you understand the defects that can be avoided, it stops being a technical choice and becomes an ethical one.
Bryan Hunter, CTO, Firefly Logic

Besides functional programming, I think the other up-and-coming kind of languages in software development will be Domain Specific Languages (DSL). The smart people at JetBrains have created MPS, which I think will be the kind of thing we'll be seeing more of: tools to support the creation of DSLs. (And by DSL I exclude EDSL. I think EDSLs are so inferior to DSLs, that I have nothing good to say about them.)

Collapse
 
drminnaar profile image
Douglas Minnaar

Thanks for the great response! That was really insightful. A pity I forgot to add Closure to survey. I should have added Erlang too. It's interesting what Bryan Hunter had to say about OO, though I don't agree with him :) ... I've too often seen this pattern of throwing the baby out with the bath water. For me it's not an "either or" decision between the 2 paradigms. But perhaps his objective was simply to make a strong statement to get peoples attention. In terms of DSL's, I actually really regret not mentioning any, so thanks for raising it. I noticed that Groovy was one of the top paying technologies according to the 2018 Stackoverflow survey.