Programming languages and Frameworks to learn in 2015
I can't make a poll on HN, but I would like everyone to contribute with an opinion. Which languages are worth to devote learning in 2015? and what about the new frameworks? Please, be patient and open :)
78 comments
[ 2.9 ms ] story [ 155 ms ] threadIf you're really into system languages, then maybe also do Rust.
node.js, express, hapi are all good to learn. Knockout (knockback), Angular would also be good to add to that list.
golang is something I am personally working to get better at in 2015. I am not sure which frameworks inside of Go would be best to learn but I am curious to see what others suggest to you as well.
ansible (or puppet, chef etc). Even if you don't do devops as a job. I learned (still am finding new uses) Ansible this past year and it helped me understand more about the challenges of deploying what I build in an automated and scalable way.
I have also been picking up Lua as it is pretty powerful, but I am by no way totally proficient yet.
Also, not necessarily a language/framework to learn but something I think that is worth learning. Lucene queries, I went the Elasticsearch route, but Solr or others are just as viable. But between ELK and loading our data into Elasticsearch to handle the searching needs of our application really helped us solve things faster and easier. But at least for me, getting the query side of Lucene down took some effort.
[1] http://webcomponents.org/
[1] http://www.html5rocks.com/en/tutorials/webcomponents/imports...
Languages move painfully slowly.
What the Rust devs are doing is great, but so far system programming languages only succeed when OS vendors adopt them into their SDKs. Otherwise they are just another language to write business applications.
Even if that does happen to Rust, it surely won't be in right away in 2015.
http://www.thoughtworks.com/radar/languages-and-frameworks
http://www.thoughtworks.com/radar/tools
http://www.thoughtworks.com/radar/techniques
http://www.thoughtworks.com/radar/platforms
However, if you don't already know Rails or Grails (or possibly Django), then that is a good place to start.
http://www.erlang.org/download/armstrong_thesis_2003.pdf
Rich Hickey's video presentation "The value of values" is also a good overview of some concepts that are important to Functional Programming:
https://www.youtube.com/watch?v=-6BsiVyC1kM
What we have hit is is the max frequency the CPU can operate at. This is not something Moore claimed (as far as I'm aware). Physics got in the way when the transistors got so small that they can't operate any faster without causing problems.
EDIT: reddit discussion about MHz cap from 3 years ago: http://www.reddit.com/r/askscience/comments/ngv50/why_have_c...
Django and Rails are still powerful in web development territory, but I don't find them particularly exciting anymore.
I'm quite interested in seeing where Go and Rust evolve to provide developer-productivity and performance at the same time. Previously, we've had these kind of splits where we have Ruby/Python/other at one end, and C/C++ at the other, and things in the middle have felt like compromises (Java, etc). I'm thinking we can get to a nice happy medium, once their standard libraries mature. Still, there's not a lot of job opportunities out there in these yet. But interesting!
To me, a lot of what makes a language usable is how big the standard library, and community libraries around it grow to be. So, for now, a lot of the cool stuff would require more legwrok on your end to make it work for certain applications.
On the UI side, JavaScript remains absolutely pervasive, but I wish there were clean alternatives that didn't require something compiling down to JS. It seems that Angular is going in the right places.
I'd be interested in people's takes on whether Scala/Clojure are no longer gaining any interesting traction or whether I'm wrong about that - there's still a giant ton of Java out there, obviously.
If you just want to hurt your brain in interesting and useful ways, functional languages can be great fun.
I'll be taking up Scala, as well as F# and Haskell, in the new year, because I've increasingly realized that whether functional programming really it's the new OOP or not, it's certainly the specialty I most enjoy working in. As a Windows (and Windows Phone) user I'm especially interested in F#, and the .net world it offers to FP. I find it fascinating that so many developers spend their time finding any and all means to work around the reality that Windows is what nearly all their users are actually running. We've turned web browsers into miniature OSes, just to avoid that reality, and it's weird.
I also think F# is a better bet, because it is a first class citizen in the .NET eco-system, whereas Scala and Clojure are third party languages on the JVM.
In the enterprise space this little difference plays a big role when choosing languages.
Why F#
http://fsharpforfunandprofit.com/why-use-fsharp/
Why rust
http://www.rust-lang.org
https://nim-by-example.github.io/
> I discover that I missed Nim!
> Nim was born somewhere around 2006-ish and is clearly a very serious language to consider, but is going suspiciously under the radar. Having reviewed this language more closely (and still doing so) I can safely say that for me it actually easily tops this list.
http://goran.krampe.se/2014/10/20/i-missed-nim/
Does anyone know of any interesting projects using Nim?
- Another: https://github.com/Vladar4/nimgame
- Aporia IDE: https://github.com/nim-lang/Aporia
- Web framework: https://github.com/dom96/jester
- Jade templating: https://github.com/idlewan/jade-nim
- Emerald templating: https://github.com/flyx/emerald
- Nake build system: https://github.com/fowlmouth/nake
- Cross platform skeleton: https://github.com/yglukhov/nim-sdl-template
- Package manager: https://github.com/nim-lang/nimble
- Pitting Nim against C++, Go, Rust, D: https://news.ycombinator.com/item?id=8778041
- String formatting library inspired by Python's `format`: https://bitbucket.org/lyro/strfmt
- ZeroMQ wrapper: https://github.com/nim-lang/nim-zmq
- bcrypt wrapper: https://github.com/flaviut/easy-bcrypt
There is Jester, a framework for web applications: https://github.com/dom96/jester
HastyScribe looks pretty nice as well: https://h3rald.com/articles/hastyscribe/
1) Static and dynamic typing
2) OOP and functional paradigms
3) Multi-platform via single framework: WP, Android, iOS, Mac, PC, Xbox, PS4, Linux etc.
4) Two super-powerful IDE-integrated static analysis tools to choose from: ReSharper and Roslyn
5) Mature workflows for developing Web, mobile, enterprise apps and games.
6) High performance on WP and desktop, reasonable elsewhere.
As for the market size it is a matter of perspective. On my home country iOS comes out on third place.
http://nim-lang.org
I also plan on picking up Rust and somehow integrating it into my workflow (I'm a web developer).
Ideally, for the future (2015 and beyond), I want a basket of languages I could use for building web-scale applications. So, for example, within a single application:
I think I would stick with these languages for the next ~10 years and try not be distracted by anything else.Side note: I do love Haskell, but let's admit it, the learning curve is pretty steep once you hit monads/comonads.
Shameless Plug, I send a weekly newsletter here: http://swiftnews.co
http://intercoolerjs.org/
MaxCDN has donated their CDN services, so it's easier to install now.
I now have some decent non-backend specific demos up as well, using mockjax.
If you want to Get Shit Done and ship a product, pick a tried and true (and possibly boring) stack
Be wary of the Magpie! http://blog.codinghorror.com/the-magpie-developer/