Yes, from what I can tell, the concise summary of the list is: If you've only programmed with imperative languages, learn a functional language.

Of course, these sorts of rankings are heavily influenced by the order in which people typically learn languages. E.g., there is an approximate split in the list: functional languages near the top, imperative languages at the bottom. As much as anything, I think this reflects that people almost invariably learn imperative languages first, so learning another imperative language is less likely to "significantly change how I use other languages".

To break the list down further, languages with strong support for object-oriented programming (C#, Java, Python, Ruby, etc.) are near the middle of the list, while imperative languages without without these features are at the very bottom. This split is not nearly so well-defined, though, and I suspect that is because many people who use object-oriented programming languages don't really ever do any object-oriented programming or learn much about that programming paradigm.

I was also pleased to see that assembly language made the top 20. There is no better way to learn how computers really work.

-Brian





On 04/01/2016 08:37 AM, Erik Bray wrote:
On Thu, Mar 31, 2016 at 10:04 PM, Tyson Whitehead <[email protected]> wrote:
Someone linked to the hammer principle website a couple of days ago.

One of the questions I noticed they collect data on is "learning this language 
significantly changed how I use other languages".

For those of us interested in taking our programming up a notch, this seem like a pretty 
big "something to be learned here" sign post.

http://hammerprinciple.com/therighttool/statements/learning-this-language-significantly-changed-how-i
Thanks for pointing this out--definitely agree this is worth thinking about.

For me when I saw the phrase "learning this language significantly
changed how I use other languages" and immediately thought of
functional languages--particularly Scheme / LISP.  In undergraduate
computer science one of the first classes they taught was a
programming language paradigms class primarily focused around Scheme.
Most people *hated* that class, but it blew my mind.  And looking at
the list you linked I see Haskell and Scheme are the top two.  (I'm
still trying to wrap my head around Haskell.)

Maybe a little more unfocused, but I recently embarked on a journey to
solve the Project Euler problems (just one a week--there's only so
much time in a week) using a different language from
https://en.wikipedia.org/wiki/List_of_programming_languages -- I'm
just going down the list in alphabetic order of those I can actually
manage to install (with or without a VM). Most of them I've never
heard of and are not easy to find. I suspect most of them won't be
that illuminating either, but I'm hoping enough will be interesting
(even if only of historical interest) to make it a worthwhile project
^_^

Erik

_______________________________________________
Discuss mailing list
[email protected]
http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org


_______________________________________________
Discuss mailing list
[email protected]
http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org

Reply via email to