Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> So with this, the last thing Go had going for it over Java is gone, right?

Go still has composition over inheritance, which is vastly more flexible. Go favors explicit (verbose copy-paste, redundancy, use stdlib first, libraries second) over implicit (magic annotations, frameworks everywhere) and I like when I can understand what's happening without holding 10 files in my brain context. Go's memory usage doesn't trigger the OOM killer every 10 minutes. Go favors copy-pasting because what you copy is short and understandable, and function names don't have 10 words in it.

It's always going to be a personal choice, and even though virtual threads bring java closer to where go is, it's still not there for me.



How does a language favor copy/pasting? Do you mean it makes code reuse harder?


It's not so much part of the language but it's an idiom that is said by one of its authors (https://youtube.com/watch?v=PAAkCSZUG1c&t=9m28s). "Code reuse" always has some non-compressible context: another import with a line in go.mod, another repo and dependency, which doc is going to be on another page/site, etc... It makes sense for big dependencies but not for small ones; the threshold where "small" becomes "big" being of course subjective.


A language's type system can disallow certain constructs that you might want to reuse. Mappable, for instance.


> How does a language favor copy/pasting?

It favors as a culture. A little copying is better than a new dependency

Just like Java has culture to setup a single http endpoint one typically adds 50-60 little jar files of Spring Boot starter.


> Just like Java has culture to setup a single http endpoint one typically adds 50-60 little jar files of Spring Boot starter

No, you add a single annotation..




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: