Ask HN: What language will you learn in 2015?
What language/s will you learn this year? Are you doing it to chase after a market or to expand your mental horizons? I'm planning to spend some time with Nim, specifically to explore its metaprogramming facilities. #lang2015
30 comments
Elixir/Erlang my next project (starting tomorrow) looks like it will really benefit from the things that the Erlang VM brings to the table, and Elixir is very promising, and rapidly maturing, way to write code for it.
I'm going to be focusing on Clojure, JavaScript and Rust. First though, I'm taking a break from Clojure to read SICP and do the exercises/problem sets, because I think that's going to help in the long run. After that I'm reading Joy of Clojure and going back to working on web apps with ClojureScript and Reagent. As for JavaScript, it's easy to work with Node and I'm interested in React.js and WebGL so I'll just keep using it regularly. Rust is very appealing to me, and having just taken a course in assembly at uni, I'm craving some lower level programming. The documentation has improved considerably, right now I'm just working through Rust by Example (http://rustbyexample.com/) here: https://github.com/bryangarza/rust-by-example and then I want to make a Vi clone.
The language that I most want to learn in the short term is Ocaml, been seeing a fair few posts about the language showing up in the past year, it seems like the community is a good fit for me.
MirageOS looks very intersting, and I want to try a language with a strong type system (of the static languages I have only really used C and Java, and Ocaml, Haskell etc seem to be further along the continuum of type systems.)
I also would like to learn about compilers and static analysis and Ocaml appears to be quite popular for such projects.
I would also like to reacquaint myself with Python, and maybe dabble with some Julia as well.
Coq looks pretty intersting as well, but that will probably be late 2015 or 2016.
May start playing around with Rust a little as well, they have some intersting ideas that I am curious about.
I am also keen to play around with assembler again, my only real usage of assembler was in a Uni paper a few years back and looking at some x86 aseembly from GCC and Clang. Thinking of MSP430 and some ArmV7
MirageOS looks very intersting, and I want to try a language with a strong type system (of the static languages I have only really used C and Java, and Ocaml, Haskell etc seem to be further along the continuum of type systems.)
I also would like to learn about compilers and static analysis and Ocaml appears to be quite popular for such projects.
I would also like to reacquaint myself with Python, and maybe dabble with some Julia as well.
Coq looks pretty intersting as well, but that will probably be late 2015 or 2016.
May start playing around with Rust a little as well, they have some intersting ideas that I am curious about.
I am also keen to play around with assembler again, my only real usage of assembler was in a Uni paper a few years back and looking at some x86 aseembly from GCC and Clang. Thinking of MSP430 and some ArmV7
Forgot to mention some form of HDL, probably Verilog and further delving into problems with parallel code and the various models on offer.
Jepsen[1] is the killer app that's leading me to learn more about
the Clojure and Go ecosystems.
I mostly write Python by day but since Jepsen revealed consistency problems in etcd[2], I've had to learn more Clojure/leiningen to see if the ?quorum=true option fixed them.
What I've learned so far is that Clojure's error reporting sucks unless you use something like Cider[3] and that etcd till fails to pass Jepsen with ?quorum=true
1- https://github.com/aphyr/jepsen
2- https://aphyr.com/posts/316-call-me-maybe-etcd-and-consul
3- https://github.com/clojure-emacs/cider
I mostly write Python by day but since Jepsen revealed consistency problems in etcd[2], I've had to learn more Clojure/leiningen to see if the ?quorum=true option fixed them.
What I've learned so far is that Clojure's error reporting sucks unless you use something like Cider[3] and that etcd till fails to pass Jepsen with ?quorum=true
1- https://github.com/aphyr/jepsen
2- https://aphyr.com/posts/316-call-me-maybe-etcd-and-consul
3- https://github.com/clojure-emacs/cider
Rust. It's been many years since I ran across a programming language whose innovations I'd call exciting. It's still early days, but it might be the language that finally overtakes C++.
I'm familiar with C and Java, and I can build viable projects in Python/ Django.
To expand my understanding I'm looking at Go or Haskell next, although I might take a quick spin through Rails to see how it compares to Django. I'll continue to build the projects I care about in Python, though, because I'd rather go deep with what I know than spread myself too thin. I expect to become better at Python by dipping into these other languages.
To expand my understanding I'm looking at Go or Haskell next, although I might take a quick spin through Rails to see how it compares to Django. I'll continue to build the projects I care about in Python, though, because I'd rather go deep with what I know than spread myself too thin. I expect to become better at Python by dipping into these other languages.
Less tools, but stronger and sharper tools.
I'm going back to the basics. No more jumping to a new language or framework for each new project. My goal for 2015 is to have better results (output) in my projects, not focus on tools.
My goal is to learn enough Python and Javascript to build a significant sized project by the end of the year. This will be a nice change from my job where I use a Java stack (Jetty, Jersey, Jackson, Hysterix)
I'm going back to the basics. No more jumping to a new language or framework for each new project. My goal for 2015 is to have better results (output) in my projects, not focus on tools.
My goal is to learn enough Python and Javascript to build a significant sized project by the end of the year. This will be a nice change from my job where I use a Java stack (Jetty, Jersey, Jackson, Hysterix)
I will be writing a lot of Elixir in production. 2014 wss learning Elixir and convincing people to let me use it in
production :)
As a hobbyist, if I have time, I plan to spend a lot of time with Rust.
In 2014 I spent at least a month each with Elixir, Rust, Clojure and Scala (I gave Go a long hard look in 2013 already). Elixir and Rust are the two that have stood out to me for the types of problems I want to solve and the types of growth I want to experience as a programmer.
As a hobbyist, if I have time, I plan to spend a lot of time with Rust.
In 2014 I spent at least a month each with Elixir, Rust, Clojure and Scala (I gave Go a long hard look in 2013 already). Elixir and Rust are the two that have stood out to me for the types of problems I want to solve and the types of growth I want to experience as a programmer.
Probably Swift, I am getting into mobile development. For actual languages I will probably attempt French.
Scala, for sure!
I've been procrastinating learning Scala for a long time and have a project this year on Spark, so, yay! :)
I've been procrastinating learning Scala for a long time and have a project this year on Spark, so, yay! :)
2014 was my year of Python, I learned how to make actual tools rather than scripts for myself.
2015 will be at the very least JavaScript. One of my Master's units is in C++ which I have never done more than hello world in before. I am very interested in Scala.
Best of luck to everyone learning something new this year!
2015 will be at the very least JavaScript. One of my Master's units is in C++ which I have never done more than hello world in before. I am very interested in Scala.
Best of luck to everyone learning something new this year!
C++ - I've been making games with Javascript and Python for a while and I want to learn a lower-level language. C++ has quite a few frameworks and engines for game dev so I'm combining the two.
I'll also brush up on Node and ES6 to help with my day job.
I'll also brush up on Node and ES6 to help with my day job.
I want to do some more programming in python. I always plan to. I even have small scripts that I've written in python. But I wanted to try some serious web development with it. My default language is C right now. (not for the web)
In 2015 I would like to make something useful with what I've learnt so far. I also want to try my hands on scientific programming languages but I will have to find a mock scientific problem first :)
Swedish. :-) (My main new year resolution)
Other than that, most likely taking javascript more seriously. I've never really studied it, just picked it up as I've gone along over the past several years.
Other than that, most likely taking javascript more seriously. I've never really studied it, just picked it up as I've gone along over the past several years.
Looks like my 2015 will be a lot of python -- specifically to build more robust systems with Django, Scrapy, and NLTK.
And if I get a new Mac this year I might attempt Swift.
And if I get a new Mac this year I might attempt Swift.
What are you building in Python!?
A few things, but this is my baby at the moment: http://3cosystem.com
It is a global calendar for tech and startup events.
It is a global calendar for tech and startup events.
I'm thinking of Rust, as I've becoming more interested in system programming again and not only web development
Go or(and) Rust. I've heard good things on both and they all looked pretty damn fun and productive.
Lisp. I have a basic knowledge, but one of my goals for 2015 is to become competent with it.
[deleted]
Rust and/or Nim, depending on which will feel better as I learn more.
More of J, I'm thinking.
Elixir
There are so many languages on my "to learn" list that it's ridiculous. And I never seem to find much time to actually spend on new languages. But, realistically, the one(s) I may actually be able to spend some time on in 2015 are probably:
Javascript - OK, strictly speaking I "know" javascript to some extent, but I don't consider myself an expert on it, and I'll probably be using it more and learning more, for the foreseeable future.
Scala. I keep saying this, but I think I'll have more reasons to actually spend time on this in 2015.
Clojure. See above, re: Scala.
Prolog. Probably wishful thinking that I'll find time to put into this, but we'll see. Some of my interests include NLP, and Prolog has a reputation for being good for NLP applications, so I may finally start exploring that world.
R. The interest is there, but time is, again, the limiting factor. If a real world reason to use R emerges, then I might actually get somewhere with it.
The stuff that's on my list that I seriously doubt I'll even touch in 2015 includes: Erlang, Julia, Nim, Haskell, Ceylon, Kotlin, Ada, Go, Rust, Elixir, etc.
Javascript - OK, strictly speaking I "know" javascript to some extent, but I don't consider myself an expert on it, and I'll probably be using it more and learning more, for the foreseeable future.
Scala. I keep saying this, but I think I'll have more reasons to actually spend time on this in 2015.
Clojure. See above, re: Scala.
Prolog. Probably wishful thinking that I'll find time to put into this, but we'll see. Some of my interests include NLP, and Prolog has a reputation for being good for NLP applications, so I may finally start exploring that world.
R. The interest is there, but time is, again, the limiting factor. If a real world reason to use R emerges, then I might actually get somewhere with it.
The stuff that's on my list that I seriously doubt I'll even touch in 2015 includes: Erlang, Julia, Nim, Haskell, Ceylon, Kotlin, Ada, Go, Rust, Elixir, etc.
If you haven't got it yet, I'd recommend the 7-in-7 book on languages (https://pragprog.com/book/btlang/seven-languages-in-seven-we...). It covers the 5 of the languages you mention and could help you determine which one you'd want to go in more depth on.
Hope you're healed up from your adventures btw.
Hope you're healed up from your adventures btw.
If you haven't got it yet, I'd recommend the 7-in-7 book on languages
Yep, I have it, I just haven't gone through it yet. My problem is I'm so busy doing all the actual day to day "stuff" of working my dayjob AND trying to build our startup product, AND do marketing, sales, etc. for the startup, that there's very little time left for experimenting and tinkering with new stuff and outside interests.
Hope you're healed up from your adventures btw.
Working on it. Thanks!
Yep, I have it, I just haven't gone through it yet. My problem is I'm so busy doing all the actual day to day "stuff" of working my dayjob AND trying to build our startup product, AND do marketing, sales, etc. for the startup, that there's very little time left for experimenting and tinkering with new stuff and outside interests.
Hope you're healed up from your adventures btw.
Working on it. Thanks!