4 ms·
Naturally there are tons of aspects to consider for a change like this; the biggest probably being your team's existing experience, preferences, and the kind of
by kjeetgill 8y ago
Naturally there are tons of aspects to consider for a change like this; the biggest probably being your team's existing experience, preferences, and the kind of software you're building.
A ton of python programmers love go (aka golang) and at least where I work thats what out python codebases are turning into. Those are mostly command line tools but go should work well for services.
If you're building service I'm going to throw out an alternative that you might not want to hear: Java or Kotlin. I personally prefer Java but coming from python it is going to feel repetitive and verbose. They're a kind of sweetspot between straight-forward, battle-tested, and popular.
Compared to Rust, OCaml, Haskell either Java or Kotlin will probably:
- Have a larger talent pool to hire from similarly to python. Java programmers won't have a ton of trouble getting on board to Kotlin.
- Have a large ecosystem of library support similar to python. Kotlin has access to java's substantial library ecosystem.
- Have fewer new programming language concepts to learn. (I think java just has primitives and generics?) Kotlin has more going on but you won't need it all at once.
- Produce a codebase more architecturally similar to your python code base. I imagine it will be fairly more straight forward to migrate.
Nothing against Rust, OCaml, Haskell, I've dabbled in them and they're all compelling. But as a frequent python programmer myself I'd say Java and Kotlin make more sense given your concerns about hiring and migrating python.
Disclaimer - I'm a big fan of JVM land. I suppose most of what I said could apply to C# and F# too but ... ehhh.
Hope this helps! Let us know what you do!