4 ms·
I can comment on this on my own: 1. Java - did not want to adopt the entire ecosystem. This is very much wanted a banana and got the whole jungle with a gorill
by dfischer 7y ago
I can comment on this on my own:
1. Java - did not want to adopt the entire ecosystem. This is very much wanted a banana and got the whole jungle with a gorilla type of story.
2. Python - dynamic. Don't want that. Go's minimal typing is perfect. It's easy to deploy (binaries). It's fast. It can scale well. It's opinionated (love this).
Python and Java both encourage and allow developers to flex creative solutions that are hard to maintain long-term. Sure, seniority helps with that, and being part of a good team; however using Go, you just run into that less due to the conciseness of the language and strong idioms.
- jayd16 7y agoYou can write small Java services. You really don't need Spring or anything. You should try it some time.
- dfischer 7y agoI think Java is ok. I just don't like all the weight you inherit with the ecosystem. There's a lot of buttons you have to learn and history. It's working a submarine vs purposed craft (bad example).
- tomohawk 7y agoYou can, but you can't deploy them. If you really want to keep your services separate, you need a separate JVM installation and jars for each service. Go gives you this automatically with a simple binary. Go's standard library is an order of magnitude (at least) better than Java's, much more comprehensive, much more cohesive, and much more capable.
- carterehsmith 7y ago>> Go's standard library is an order of magnitude (at least) better than Java's, much more comprehensive, much more cohesive, and much more capable Can you please provide some examples? This would be a useful comparison, as Java had way more time to work on the libraries.
- thelastbender12 7y agoDon't you think it'd be the other way around - the older a language gets, the standard libraries degrade since you can't introduce newer patterns without breaking compatibility.
- carterehsmith 7y ago>> you can't introduce newer patterns without breaking compatibility. Yeah it is tricky, but Java has a good track record here: In 1.2 they added all-new Collections API. The old API is still there and still works, though it is not used much these days. Then in 5 or thereabouts Collections API got generics. Then in 8 or so, Collections API got streams, magical multithreading etc etc. Lambdas were added to the language and standard libraries, and so on.
- winrid 7y agoCan't deloy them how? You would still use gradle or maven and package/deploy the same way.
- hannofcart 7y agoPython with type annotations and use of the mypy typechecker is really darn great. I work on Golang stuff at work where we made the switch after the troubles associated with refactoring Python. Recently though, I 'typed' a personal project of mine that was fairly large, and it's become a pleasure to work on. IDE integrations of mypy warn you as soon as type errors occur. The fact that the type annotations are first-class features of the language and not embedded in comments also makes it great. The compromise of type-safety at the boundaries where you interface with 3rd party APIs that don't provide type annotations (the major ones do) does not get in the way too often contrary to what I expected. mypy makes Python a pleasure to work with again.
- Rotareti 7y ago> mypy makes Python a pleasure to work with again. This is my experience as well. I love that I have the option to use Python typed and untyped. For little scripts, fiddles, prototypes, etc. it's often convenient to omit type annotations. For solid software that runs in production it's nice to have them. Another thing that I'm excited about is nuitka [0], a Python to C compiler that allows you to create binaries from Python code. It cut start-up time of a command line tool that I compiled with in half. [0]: https://github.com/Nuitka/Nuitka https://github.com/Nuitka/Nuitka