DEV Community

Ben Halpern
Ben Halpern

Posted on • Updated on

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

Discussion (240)

Collapse
subbramanil profile image
Subbu Lakshmanan

Kotlin I was following up Kotlin from the initial days. Now Since Google announced as official language for android, I am putting more focus on learning it. I have a good experience with javascript, I believe I can quickly grasp the functional programming aspects of Kotlin. I love it :)

Collapse
hrishio profile image
Hrishi Mittal

I just started doing this free tutorial yesterday. You might also find it useful - iwillteachyoukotlin.com/

Collapse
ben profile image
Ben Halpern Author

That's great.

Collapse
sdevin_ profile image
Sivaraj

I started Kotlin. I love it

Collapse
succhib profile image
Succhi

I want to learn Python. I believe that this is the language of the future. You can kickstart your AI, ML or data science journey in a sec, if you know Python.

Collapse
ben profile image
Ben Halpern Author

Python's wonderful

Collapse
orask profile image
Oras Al-Kubaisi

It is great, easy to learn and you can do alot with few lines of code. I have started learning it recently and I'm totally hooked. For ML, you can use jupyter notebook and evaluate (run) each cell individually to get immediate result rather than writing the whole program and run later.

Collapse
theadnan profile image
Adnan Kičin

Rust - I've heard a lot of good things about it (like for example that Rust is everything Go wanted to be), and since I've been programming in C/C++ earlier, I think the learning curve won't be as steep.

Collapse
bgalvao profile image
Bernardo

you would love to read rust book second edition! I think Rust's learning struggle is the borrow checker.

Collapse
theadnan profile image
Adnan Kičin

Wow, thank you!
Just the thing I need :)

Collapse
z3dy_ profile image
fred

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.

Collapse
loderunner profile image
Charles Francoise

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.

Collapse
k2t0f12d profile image
Bryan Baldwin

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.

Collapse
martin_betz profile image
Martin Betz

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

Collapse
ben profile image
Ben Halpern Author

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.

Collapse
daniel15 profile image
Daniel Lo Nigro

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...

Collapse
martin_betz profile image
Martin Betz

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.

Thread Thread
incognos profile image
Sina K

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.

Collapse
ezekgabrielse profile image
Zeke Gabrielse

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

Collapse
rhencke profile image
Robert Hencke

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).

Collapse
billperegoy profile image
billperegoy

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.

Collapse
carstenk_dev profile image
Carsten

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

Collapse
billperegoy profile image
billperegoy

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.

Collapse
high_rigour profile image
Josh Burke

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.

Collapse
ezekgabrielse profile image
Zeke Gabrielse

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

Collapse
pystar profile image
Pystar

Can you learn Elixir without knowing Erlang?

Collapse
high_rigour profile image
Josh Burke

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.

Collapse
jamesdesbyrne profile image
James Byrne 🏹

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

Collapse
ben profile image
Ben Halpern Author

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.

Collapse
roman01la profile image
Roman Liutikov

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

Collapse
high_rigour profile image
Josh Burke

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

Collapse
integralist profile image
Porkchop

You might find this useful leanpub.com/programming-clojure/

Collapse
k2t0f12d profile image
Bryan Baldwin

l̶i̶s̶p̶ Java.

Collapse
soundstruck profile image
Dina Gathe

I want to dive deeper into Elm. I did some tutorials a year ago, but much has changed in Elm-world so I need to revisit. There was much to be excited about with Elm, and it was refreshing compared to the JS ecosystem.

I'm kind of python-curious, too. ;-)

I spent the past year learning Elixir/Phoenix/VueJS, and I've learned so much. It was my first experience with functional programming.

Collapse
srikanthav profile image
Srikanth A V

What resources did you use for elixir/phoenix/vue? I'm planning to learn these now after dipping my toes in web dev (built an app for a client with nodejs/express, MySQL, bootstrap/jQuery). Thanks!

Collapse
soundstruck profile image
Dina Gathe

I kind of went deep....I read Programming Erlang (Joe Armstrong) -> Programming Elixir (Dave Thomas) -> Programming Phoenix (Chris McCord), because it was really my first experience with functional programming and I wanted to really grasp the the underlying language/concepts before tackling the web framework.

I was also curious and wanting to understand OTP further, so I read these two awesome books, too: Designing for Scalability with Erlang/OTP (Cesarini/Vinoski) and The Little Elixir & OTP Guidebook (Benjamin Tan Wei Hao).

It's possible you could be OK and up and running with just Programming Phoenix, though.

As for Vue, there were really just a few blog articles and the Vue guide when I was starting with it, so there are probably better resources now. Here's some dialogue on various ways to work with Vue/Phoenix...there are a few approaches whether you want to use Brunch or Webpack, or just have the Vue client completely separate and communication to Phoenix backend via API only. My app is using Brunch+Vue within the Phoenix framework.

elixirforum.com/t/how-to-get-phoen...

Have fun learning that stack...I know I did! :-)

Thread Thread
srikanthav profile image
Srikanth A V

Thank you so much for the detailed reply! I have been thinking of buying Dave's book for a while. It's time I pulled the trigger ;)

Will also check Programming Phoenix.

I'm looking at some video tutorials for vue by Traversy Media, Eric Hanchett and others. It's good to know what build tools and setup others are using.

Thread Thread
soundstruck profile image
Dina Gathe

One more thing: while the Programming Phoenix book will be great for getting to know the framework, Phoenix 1.3 will be introducing some changes that you may want to just keep an eye on. Here's a write-up (and the video is the best overview): swanros.com/phoenix-1-3-is-pure-lo...

:-)

Thread Thread
srikanthav profile image
Srikanth A V

Thanks once again! You should write a post about your experience learning Elixir/Phoenix and Vue. It will definitely help a lot of people :)

Collapse
mradamh profile image
Adam Horak

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.

Collapse
rchallme profile image
rchallme

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.

Collapse
mradamh profile image
Adam Horak

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.

Thread Thread
tenezill profile image
Sebastian Tenezill

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 :>

Thread Thread
daveclarke profile image
daveclarke

I like C#. I worked as a C++ developer for a long time and there is so much ceremony associated with C++ just to avoid wandering into the wrong bit of memory. Moving to C# was a relief. I followed that with a stint as a Java developer and found it a bit of a leap backwards although I did like Java enums. Now I can develop .NET Core on my MBP without having to boot a VM and deploy to docker. I'm currently looking at Elm for some frontend dev.

Thread Thread
cubiclebuddha profile image
Cubicle Buddha

C# is gonna get a lot nicer sooner when non-nullable reference types are introduced in C#8 and the next .NET Core. Then all my C# brethren can experience the joy that we've had in TypeScript and Kotlin for a while.

Collapse
stoft profile image
Rasmus Larsson

Check out Akka.NET in that case, it's more or less the Erlang/Elixir OTP model on .NET. It won't be Elixir from a language perspective but it will let you work with similar concepts.

Collapse
samxeshun profile image
Kwaku Eshun

This was me before I got into enterprise development from a purely iOS background. C# is probably my favourite language now. And oh, apart from backend development, I am having fun learning Unity 3D.

Collapse
k2t0f12d profile image
Bryan Baldwin

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. ;)

Collapse
worksofbarry profile image
Liam Barry

This isn't what I am waiting for too!

Collapse
invinciblesaad profile image
Muhammad Saad Khan

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.

Collapse
tenezill profile image
Sebastian Tenezill

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

Collapse
invinciblesaad profile image
Muhammad Saad Khan

Thanks Sebastian. Looking at it right now.

Collapse
emmanuelobo profile image
Emmanuel Obogbaimhe

PHP and/or Python.

PHP because my potential next job uses it and although I am not a fan of it I'll have to learn it by default. I just wish it was more relevant in this modern day.

Python because it is just an interesting language and it seems fun. You can get a lot done in few lines of code so that intrigues me.

Collapse
tamas profile image
Tamás Szelei

Rust, hands down. Go would also be a nice candidate (and a bit more mature), but I feel that some of the design choices in Go (like no generics or exporting names via casing) are weird and limiting. Rust on the other hand is shaping up to be really, really great.

Collapse
kelly profile image
Kelly Vaughn

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!

Collapse
jemjam profile image
jem

Haskell or Elixir. Have dabbled in both, but I'd like to go deeper. Functional is my jam lately, though I've found it changes how I have to think about the problem (which can be a challenge in of itself).

Collapse
driscollwebdev profile image
Brian Driscoll

I'm hoping to learn F# next. I'm primarily a C# dev, but I'd really like to get my hands dirty w/ functional programming. F# seems the most accessible to me since it would allow me to transfer my knowledge of the .NET framework from one language to the other.

Collapse
rrackiewicz profile image
rrackiewicz

Elixir to take the next step in learning functional programming. I'd also like to dabble in assembly because I want to have a better/deep understanding of how computers work. I'll probably head to C again after that for the same reason. It's been a few decades wince I've used C.

Collapse
howlingeverett profile image
Justin Marrington

Haskell.

Not because I see myself writing practical software with it (I'm a Node/React/Ruby dev by day right now), but because I'd like to go beyond the dipping-my-toes in phase of thinking functionally.

JS is a perfectly usable functional language, but only if you treat it that way. Being able to drop into OO and write procedural code easily has been holding my self-education back. For example, monads are a simple enough concept that I have been using for years but only actually understood this week due to stubborn subconscious refusal to read about them.

It might be just because learnyouahaskell.com is such a great resource, though.

Collapse
vasilvestre profile image
Valentin Silvestre

C is good to learn because most of modern language are C-style.

Talking about work, PHP framework are good. Symfony (but long to learn) or Laravel are good one.

Think about make your own framework to understand what happen behind framework's magic.

Collapse
mrwesdunn profile image
Wes Dunn

Been playing with swift a bit and I think I'm starting to "get it." I'm still very new to programming, but have largely focused on Node and have enjoyed it, but I am really attracted to the tools that swift offers around building interfaces. Front end frameworks have really bummed me out this year and CSS feels like a major chore, so swift and iOS/tvOS/macOS it is!

Collapse
samxeshun profile image
Kwaku Eshun

Good choice. You can now write REST API code in Swift as well so you should totally go for it.

Collapse
iriskatastic profile image
Iren Korkishko

JavaScript. Several reasons for it:

  1. I tend to work with styles and design. So it could be the best choice for me. (Probably)
  2. I know that its easy to start with JavaScript for the beginners. At least, I've heard this form many people who do programming.
  3. My boyfriend works on a project and he needs a JavaScript specialist for some parts (so he encourages me to enter)
Collapse
nizarmah profile image
Nizar

C++, I'm interested in applying my AI concepts into c++.
While most might suggest to go with Python, I don't wish to focus just on the AI.

Not to forget how much I've learned about code syntax and computer due to it, and still learning.

Collapse
pak_lebah profile image
Mr Bee

I've learned many programming languages, though I'm mostly a Pascal programmer, and a Pascal fan too. I used to be a Borland Delphi user but then I switched to Free Pascal and Lazarus IDE.

I'm starting to learn Apple's Swift programming language because…

  • it's a new language with rich dev tools around it (especially in Apple's platforms),
  • it's native and compiled language but with modern programming features,
  • it's general purpose and cross platform with multi-paradigm programming,
  • it's open source, backed and supported by big companies (Apple and IBM),
  • it has solid, helpful, and mannered community,
  • it's fun to look and observe a growing language,
  • it looks interesting (and promising) to join into Apple's app store. :)
Collapse
chimerastrain profile image
Aaron ¯\_(ツ)_/¯

I'm finally getting really deep into C/C++, which is honestly really fun and informative. Memory management, functional programming, and low-level engineering is fun, educational, and really quite empowering. DGMW, though, I love C# and python.

I'd I had to pick another language it would probably be Go or JAI - but more importantly, I want to be a better master of the universal skills: algorithms, software architecture, software and code interoperability, etc. I think we too often get hung up on specific languages and leave these skills unappreciated

Collapse
chimerastrain profile image
Aaron ¯\_(ツ)_/¯

Oh yeah, also Scala, because $$$

Collapse
srikanthav profile image
Srikanth A V

C# /.Net

With .Net on all 3 platforms and Microsoft's push towards better tooling and Open Source felt like the right time to learn the excellent language and framework.

Want to also learn a functional language. So that might be Elixir or F#

Collapse
henrebotha profile image
Henré Botha

Lisp in general, Clojure specifically. I've started doing a little reading and I can already see that this is changing how I think about code. I'm interested in Clojure in particular because it is old enough to be robust, but new enough to be modern; and it runs on one of the most stable, efficient VMs out there.

Collapse
roger_b_m profile image
Roger

Go, Elm, Kotlin, Swift, Rust. No particular reason except people I trust have recommended them, and I could use a change.

I haven't jumped (back) into JavaScript because keeping up with the hottest new trends is a full-time job, and I already have one of those doing other things.

Collapse
eljayadobe profile image
Eljay-Adobe

Now that it is 2018 (and I've been reading old posts for fun, and being a b**tard and necro'ing threads)...

2017 consisted of me learning C++11 (and C++14 and C++17). I've learned a lot, and there is a lot more to go. C++11 is work related.

2018 my goal is to learn Swift 4. This one will be for fun.

I learned Swift 1, and was aghast at how unfinished it was at that time. (Swift 1 was like alpha quality, Swift 2 was like beta quality.) I was going to learn Swift 3, but got side tracked by C++11. In the meantime, Swift 4 came out.

Collapse
tyrollins profile image
Tyler Rollins

CoffeeScript - syntax sugar / hacking hipster (it's cool because it's not cool anymore JS is so mainstream)


Swift - keen on using it for web development.

Elm - functional front-ends.

Elixir - functional back-ends.

Collapse
gosukiwi profile image
Federico Ramirez

I want to REALLY learn Clojure

Collapse
integralist profile image
Porkchop
Collapse
jacmoe profile image
Jacob Moen

I program in C++ and PHP, and know other languages, but this year I am going to learn Python, JavaScript, C (C11), ObjectPascal (because I started my serious programming with Delphi), Rust and Racket.

I want to create larger projects in each of those languages and progress beyond the 'hello world' stage.

I think the six languages above are a good mix of different paradigms, so hopefully that should make me a well rounded programmer. :)

Collapse
k2t0f12d profile image
Bryan Baldwin

Delphi still lives :D

Collapse
stevensonmt profile image
stevensonmt

Javascript and Go. I'm a hobbyist working through Ruby and Rails for the time being, but in another couple months I'll pick up JS and then hopefully Go. From what I gather the rules enforcement of Go helps develop good habits.

Collapse
nimmo profile image
Nimmo

I'm going to spend 2017 learning Elm in depth, rather than learning little bits of lots of things like I normally do.

Why Elm? Because it's the first programming language in years that's really grabbed me, whilst making me smile. :)

Collapse
vsbatista profile image
Vinicius Soares Batista

Rust - Not sure. I'm a seasoned java developer and would like to learn something with performance in mind. Have looked around for a candidate, and I believe rust will be my choice.
If you have suggestions, I'm all ears :)

Collapse
odoglv1 profile image
Owen Thompson

I'd like to familiarize myself more with bash, given that I work with debian-based systems decently often. It's not that I've heard good things about it, but it's probably the most practical language for me to learn right now.

Collapse
deepgsingh profile image
Gagandeep Singh

Kotlin : actually I have to(but I was planning in future), because as google made it official in IO for android , everybody has started writing blog posts in kotlin .
But it is good with lots of extra stuff and removal of boilerplate code. But java is near and dear to my heart and will be.

Collapse
timetraveler90 profile image
timetraveler90

JavaScript and GO.

The reason why i want JS is that will help me and improve my writing of automated end-2-end tests in NightwatchJS and will provide me some benefits for the actual market, since i am automation QA engineer.

And the reason why i'll focus on GO is that i want to gather as much as possible knowledge from backend based language such as GOlang is.

Collapse
niorad profile image
Antonio Radovcic

Go (Golang)!
Just starting out and I love it. Syntax rules quasi-baked-in to the language. Lots of features for Server-development, and so many bindings to Qt and SDL2 for Gamedev. And super-easy to deploy on my Uberspace-Server. I made a Spotify-Token-Fetcher for a React-App, and a Favicon-to-Ascii-Converter so far. But barely scratching the surface, so this is my next big thing.

Collapse
val_baca profile image
Valentin Baca

Python and SQL

I've been recommending Python non-stop for the past 4 years to new programmers but haven't gone deep into the language myself. I'd greatly appreciate any books or websites that teach Python for people that already know how to program another language.

SQL is just something I've managed to avoid so far but cannot any more.

Collapse
cedced19 profile image
Cédric JUNG

I know well and use Javascript when I want to do something. But I think I will have to learn Python to do some Maths with good libraries.
Sometimes I want to learn Rust, but it is really tiring so I prefer Javascript 😁.

Collapse
imthedeveloper profile image
ImTheDeveloper

Not so much a language but I've spent the last 2 weeks working with ansible to automate the provision of my development projects. It's a great little tool and there is something very satisfying about wiping my server and auto building with a single command.

Collapse
tomit profile image
Thomas Lang

Italian or Chinese :o) sorry couldn't resist.

I don't think I will be learning a new programming language this year, That doesn't mean I'm done learning.

I feel like I'm currently much more into getting design patterns, security and code structure right, and I think more people should do the same.

Besides my own code (which mainly is php, c#, javascript), I like to review other code from mobile & web applications and review API Security.

Collapse
ghost profile image
Ghost • Edited on

I want to learn more of Scala, I already did some basic things in the language, but it's a big language and I do believe that I'll take a long time to be productive on it.

My main reason to take a look at Scala is Akka. Scala + Akka seems like a awesome environment for large distributed applications.

Collapse
benetsc profile image
Chris Bennetts

Something old and mainframey like Cobol or M204. Those systems are archaic, but they were usually designed by incredibly bright engineers and surprise you with their well thought-through architecture.

Of the modern world, definitely Swift and Dart.

Collapse
dgbrewer1989 profile image
David Brewer

Python. I only have experience in Java at the moment (at least professionally) and it seems like Python has some cool little features. I feel like if I knew Python more I could utilize it at work and in my career going forward.

Collapse
saudiknight966 profile image
Saudi Knight

I'd like to learn Swift to be honest. While I'm not necessarily interested in iOS app development, I discovered it has major audience here in Saudi Arabia due to how profitable, and popular apps are in terms of software development in general. However personally I'd like to get more familiarized with scripting languages such as PHP and JavaScript. I just feel like it's a pretty important skill to have as a Software Developer.

Collapse
theodesp profile image
Theofanis Despoudis

I would say Forth.

en.wikipedia.org/wiki/Forth_(progr...

Its simple and powerful and I would like to create an interpreter so it will execute Forth programs for learning purposes.

Collapse
aghost7 profile image
Jonathan Boudreau

Rust. System language seems to be a bit more approachable than C or C++ when it comes to making a useful project. Dependency management, documentation system, etc. I've actually already done a small project using the language but I'm still very much new to it. Will be gradually working my way to lower level programming.