What is the next language you want to learn, and why?

Ben Halpern Jan 09, 2017

markdown cheatsheet

PHP because it seems to have grown mature – and has Laravel with its fine ecosystem for business apps.

Wasn't expecting to see PHP, but I feel like maturity does get so overlooked as a quality of a language. Lack of maturity in so many ways is my absolute biggest frustration whenever I work with JavaScript.

Personally I'd rather use a stack that's tried and tested, and that I know will still be around in a few years time. I've had heaps of issues getting Node.js sites working after server upgrades, whereas PHP sites I created 10+ years ago are still happily running on PHP 7 with no issues and only minor updates required. For new sites I'd stick to PHP or ASP.NET, the server-side JavaScript ecosystem is just too volatile for me to even consider using it for any serious development.

Also see: Happiness is a Boring Stack: expatsoftware.com/articles/happine...

I wasnt't expecting to learn PHP, actually. Python has been a dear friend for quite a few years, but for my projects often Django and even Flask felt like an overkill. And I often struggled with packages for functionality that seemed very important to me, especially user management. I had a very bad opinion about PHP, mainly because of Wordpress' wild source code, some very strange plugins from its ecosystem and documentation that is so scattered around the web and often not reliable. But Composer, Packagist, Symfony and also the great learning resources (Laracasts, Laravel-News.com) really are my go-to learning places right now.

After 15 years of PHP, Python/Django was a breath of fresh air... sandwiched in there was Ruby. I could never see Flask as overkill for anything, it is pretty much a framework with nothing - how did that become overkill?

Django with Rest Framework allows me to create backends in an instance with full admin CRUD for whatever front-end of the week (been through Angular, React and now Ember) I would do a bakeoff any day of the week against PHP and Laravel (I could even bake-off against myself, hehe...)

PHP has it's merits, but I am so glad to be rid of a the toolbox with too many dysfunctional hammers and screwdrivers.

Same. I often find myself getting frustrated with JavaScript's volatile ecosystem.

Jesus! If Javascript is not mature, what is?

C, because the Linux kernel is written in it, and i want to understand how it is build. Also it´s a clean and powerful language in my opinion. Later on maybe c++, because of game development.

You don't have to switch off pure C to write games. I'm writing a fully featured game in C. There's just a minor overhead wrapping C++ object methods so you can call them as C functions. That should only be required in the platform code anyway.

I often say that: as long as kernels and their primary interfaces are written in C, there's good reason to learn it. It's not going away, and it's the most fundamental way to interact with your operating system.

Elixir and Phoenix. I'm a huge Ruby/Rails fan and seeing Elixir/Phoenix resemble those makes me happy.

Yeah. Elixir doesn't really resemble Ruby as a language fundamentally, but the whole ecosystem was clearly designed to be friendly to the Ruby community's expectations.

Can you learn Elixir without knowing Erlang?

Well, you cannot use Elixir outside of the Erlang VM because it is required as part of the language. But you don't have to dive into Erlang and write it as part of your day to day. One thing you will find after writing a bit of Elixir is that Erlang becomes more approachable and understandable. Elixir just expands out to Erlang using macros, and then compiles to Erlang VM byte code to be executed by the VM.

Absolutely, it's definitely a boon but far from a requirement

I want to learn a functional language that I can use for backend development. At one point I thought that would be Elixir/Phoenix but now that I've written a lot of Elm code I've become very partial to strongly type languages. But then I look at Haskell and it doesn't seem nearly as practical is Elixir/OTP so it's likely I'll be learning Elixir this year.

OCaml is very similar yes and you can also have a look at F#

Also: Why does Haskell seem impractical? IMO it has quite strong support for Webbackends - have a look at Servant / Servant-Elm for example

From my point of view, Haskell seems less practical because there is very little writing on Haskell web frameworks written for regular folks like me. Phoenix and Elixir seem much more approachable for a relative newcomer to FP.

From my limited poking around, F# looks really cool.

Have you had a look at OCaml? It is very similar to Elm and in use at Facebook as part of the toolchain for Flow/Reason/Infer.

Erlang (and Elixir). Despite being 20 years old, Erlang seem strikingly suited to many modern challenges (high availability, distributed processing, fundamentally concurrent, network transparent, live upgrades, etc).

Jon Blow's JAI is aimed at programmers who care about low-level, performant code, and want to escape the friction of working with languages whose standards have spiralled out of control. If he ever releases it. ;)

This isn't what I am waiting for too!

Ruby/Rails. I'm starting to get into Shopify app development and while I could use a language I'm already familiar with to build the apps, I'd rather use the Shopify API gem to help with building out the apps. And it's a good excuse to learn a new language!

Reason - Functional programming with an approachable syntax. 💖

Reason is fascinating. Do you have any plans to release anything with it, or is it purely for learning at this point?

I'd love to pick up Elixir, but I think realistically speaking it is going to be C# for me this year. My employer has a large percentage of back-end code in C#.

I've resisted getting into .NET because I didn't want to be a "windows developer" but with .NET Core maturing it looks like there is finally a reasonable cross-platform development story emerging.

What's wrong with being a windows developer? The majority of enterprise systems are .NET. I know it's not the coolest thing, but I've been thinking of learning C# this year because there always seems to be very good paying jobs for it.

Nothing wrong with it at all. Many of my co-workers are .NET devs.

For me:
* I've always preferred working with Linux/OS X. Just personal preference.
* .NET jobs seem to trend toward large companies. "Enterprise systems" as you noted. I've tended to enjoy working for smaller companies which (generally, not always) don't do as much .NET. The place I'm at now is more mid-size (about 600 total employees).

I actually think C# is a pretty nice language from what little I've done so far.

Idk why but I prefer c# over Java

I work as a Java dev for a mid sized company which uses all the oracle stuff.

My recommendation is stay away from oracle and have a good time :>

Clojure, because Lisp is the only true programming language :P

I've just picked up "Clojure for the Brave and True" and its a wonderful introduction to the language.

l̶i̶s̶p̶ Java.

I am a growth marketing manager. I have set a goal to learn Python this year as I am starting a project for Python programmers/developers. So, to understand them as potential customers I decided to learn it from scratch as I have no programming background (I am a geologist by education).

I am taking help of friend who is a pro python programmer. I will also be using the book "Automate the Boring Stuff with Python: Practical Programming for Total Beginners" by Al Sweigart.

I am looking to connect with Python programmers too so I have subscribed to /r/learnpython/ and /r/Python/ on Reddit.

I am listening to TalkPython podcast to understand what's going on in the Python world and selected some newsletters as well to follow the news like Pycoder's Weekly, Python Weekly.

Check out the Coursera.org courses they are free and very good for beginners

Thanks Sebastian. Looking at it right now.

Right now diving deep into Haskell, but I would like to learn Rust, it seems to be promising! I'm curious about Elm as well.

What resource are you using for learning Haskell? I started out with LYAH but now I'm considering buying Haskell from First Principles.

I'm following LYAH so far. After that I'm thinking about working on some real-world project.