
Ask HN: Python developer for 8 years. What should I pick up next? - random42
I have been prominently python&#x2F;backend developer for majority of my career, and I feel I need to pick up some new tech&#x2F;tool and update myself.<p>I explored frontend technologies, Android and nodejs&#x2F;express in the last 12 months, but none of them resonated with me much.<p>What would you recommend picking up next?
======
maybeok
It's been done to death, but Common lisp. If you're looking for a new magic
shiny you will find it here.

You develop in a parsed environment, not raw text. Tooling will allow you to
make structural edits instead of traditional text edits.

Everything is an expression and can be used as a value. Even loops and if-
statements are expressions that can be assigned to a variable.

Macros. You can create languages. Change rules and syntax. Do performance
optimizations moving processing to compile time instead of run time. To
process matrices you create an intuitive language to handle them, rather than
shoe-horning into a general purpose language missing low hanging optimization-
fruit.

You develop against a running program. Other langs can do this but they are
missing the first rate tooling or the community doesn't do things that way.
While you develop the 4 times become 1. Thinking time, Typing time, Compile
time, Run time. Try an idea, get immediate feedback. Your design medium is
play-doh so design by making something tangible you can feel. In other langs
your medium is marble so you plan it out ahead of time before you mess up your
expensive marble block, then waste hours/days before you realize all your unit
tests were made against a flawed API.

So much time and energy is wasted protecting marble. Play-doh is better.

------
brudgers
Understanding why you want to "update" yourself is the key to finding
something that will resonate deeply enough to support a long term commitment.
Then again, there's nothing wrong with trying out interesting tech for a time
and later deciding it's not for you.

For me, the important distinction has become: Is my interest in X as a
professional or as a hobbyist? Treating X as a hobby takes the pressure
off...and lets me make sense of why the overhead of something like Android
development creates enough friction that it doesn't feel sustainable. YMMV.

Good luck.

------
marvel_boy
Elixir is the new thing all people are talking. Just try and see if makes
sense for you.

------
bbcbasic
Haskell resonates well with me, although it is hard/almost impossible to get a
job as a Haskell dev. I also like the idea of the Haskell-like languages that
even enahnce some of the features, PureScript, Elm for example.

Even if you only ever do basic Haskell it is very useful to have that mindset
when using lambda expression and functional programming features embedded in
other languages. Or to use the FP languages tied to a platform, like Scala and
F#

------
fiedzia
I'm in similar situation and rust worked well for me, also having practical
benefit of nicely complementing python. Otherwise you may try something
functional: f#, scala or haskell.

~~~
random42
I am looking to get into functional programming and exploring haskell. I will
also look into Rust.

~~~
watmough
+1 for Rust.

I think there's two main areas I'd be interested in, at least from my own
perspective:

    
    
      1) Rust and/or C++. Performance. Systems programming. Industrial 
         strength apps. Libraries such as CUDA.
    
      2) Javascript and WebGL. Chrome(OS). Dart. 
    

I've skipped over Agile process and C#, which is probably where the bulk of
the career programmers are. If you avoid this, then I suspect you are
guaranteed a more interesting life.

Both 1) and 2) above are where I'd suspect the bulk of the intellectual
firepower is deployed. Think D3.js, three.js, Rust, boost, CUDA, OpenCL,
WebGL.

------
ankurdhama
Try Go language.

------
user1241320
Try nim*

*[http://nim-lang.org/](http://nim-lang.org/)

~~~
nyan4
+1

------
hanniabu
i see nothing wrong with staying in python and just continuing to broaden your
capabilities within that language....big data, statistics, machine learning,
all that 'new' hip stuff, unless of course you already know all that in which
case don't mind me =)

