HN user

heluser

57 karma
Posts2
Comments16
View on HN

Java 8+ is basically a declarative language. They even officially started departing from Object Oriented Programming towards Data Oriented Programming ( article by their chief architect https://www.infoq.com/articles/data-oriented-programming-jav... ). Unfortunately, most of the comparison articles come from people who still code POJOs with setters, use for loops and overall rely on mutable and unsafe code.

And using Pike’s own words “go is unapologetically imperative”.

I long for a deep article about the same topic. The real, core difference between Java and Go for backend is declarative vs imperative coding styles.

This one, as typical for such articles, repeats typical secondary talking points and even makes similar mistakes. For example it conflates the concept of DI with specifics of implementation in some frameworks.

Yes there are older Java frameworks that do runtime magic. But both new Java apps and well designed Go services use compile time dependency injection as a way of achieving dependency inversion.

It looks like the answers are heavily biased towards “my favorite tool”. And don’t take into account what’s actually asked. For a person who doesn’t want to become an swe (e.g. working on a specialized area at a big company) and who is a newcomer the answer is simple: JS, period. Take Next.js and try writing something using SO, chatGPT, articles and books. Treat html , css as “will learn on the go when I need something”. Next.js is the closest that the JS has to the standardized, pawed path. It covers all you need front-end, back-end, static sites. Batteries included.

Note: I am mostly a back-end / SWE and mostly avoid JS, but I also have to admit that IMO that’s the best match with the authors goals.

Big +1 to this. I’ve been using JDBI lately and could not be happier. It is not an ORM, only a lightweight mapper. And it supports all modern libraries and paradigms (Vavr, Immutables, immutable “value classes” …)

I used to have a local only manager but then, obviously, syncing becomes a problem. And then it becomes a choice between syncing an encrypted blob using your own solution (potentially not very secure) vs using a provider who still treats your data as an encrypted blob with no access to the data and tries to do it securely. I think the provider is still more secure (again assuming the 1password access model not talking about LastPass-like providers) plus much more convenient. So if not 1password what would be a recommendation assuming syncing is required?

I guess “Static vs dynamic/gradual typing” would’ve been a better title. If the author had used Go/OCaml/.net/etc the result would’ve been the same : better performance and easier maintenance in long term