Ask HN: Which has more jobs: Python or Java+Kotlin? For a Go dev
2 points| profwalkstr | 3 years ago | reply
What I love about Python:
- Programmers culture of simplicity, simple solutions are always preferred (contrast that to Java, below)
- Fast development and iteration
- Easy debugging
- No need to deal with Maven or Gradle
What I hate about Python:
- The language is huge, a lot larger than Java, takes a lot more time and effort to master it. It's easy to get started programming in it, but I'm talking about mastering it, not intermediate-level knowledge of Python. And it keeps growing. It's going the way of C++.
- The GIL and lack of multithreading. There are several workarounds but they are still workarounds.
- Deployment (pip, venv, etc)
What I love about Java:
- The JVM
- The performance
- Easy deployments with JARs
- Language small enough to master, unlike Python which is huge (although it seems that Kotlin is also huge)
What I hate about Java:
- Cold start time
- Maven (which is its own beast)
- Gradle (which is its own beast)
- XML obsession
- forced OOP where it doesn't fit well
- Programmers culture of complexity, love for "design patterns", overengineering, "enterprise" stuff, getters and setters (public fields frowned upon), etc
(I know modern Java has gotten better and less enterprise-y but some points above still stand)
I have a feeling I'd be happier writing backends in Python instead of Java (or Kotlin), but the availability of jobs is a huge factor for me.
Background: software developer with >10 year experience, haven't touched Java since 2012 (so I'd need a big refresh and relearn it), have worked on simple Python scripts for automation (so I'd need to dive deeper and learn it more) and most of my work has been with Golang. Plus if I decide to go with Java I feel compelled to also learn Kotlin since it seems the future in the JVM world.
[+] [-] tgflynn|3 years ago|reply
Could you elaborate on why you believe that ?
I'm not especially up to date on either Python or Java but I've certainly never had the impression that Python was particularly "huge" or difficult to master. It does come with a comprehensive standard library but I'm not sure why that would count against the language itself.
[+] [-] abraxas|3 years ago|reply
In Python on the other hand it's all resting on good documentation and in the absence of it your work becomes a long journey of sleuthing the input parameters and the return values every step of the way, sometimes forcing you to read the original sources.
When it's already written I like Python code more but when it comes to writing it Java type system coupled with its tooling has no equal.
[+] [-] testbjjl|3 years ago|reply
If you talk about mastery in Java but exclude build tools like maven and gradle you are far from mastery in the Java ecosystem.
[+] [-] wizofaus|3 years ago|reply
[+] [-] shoo|3 years ago|reply
i say this with fondness: python
[+] [-] mr90210|3 years ago|reply
What’s making you leave Go lang?
[+] [-] profwalkstr|3 years ago|reply
[+] [-] pacarvalho|3 years ago|reply
[+] [-] profwalkstr|3 years ago|reply
[+] [-] mr90210|3 years ago|reply
[+] [-] umen|3 years ago|reply
[+] [-] badpun|3 years ago|reply
Specifically for serving requests, lack of firbers/green threads is a killer for Java (you will be outcompeted by languages which have fibers, such as Scala), but it's still miles ahead of languages which don't even have full-blown multithreading (i.e. without interpretet lock), such as Python.