Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Joe Chip
Jan 4, 2014
i just switched jobs from a java shop to go and as lovely as go is i have to say i appreciate being able to use emacs instead of having to wait for intellij to load. i know deep down that java is better but the baroque tooling just gets to me and i like being able to just drop down into the cli and make projects work. the insistence on having unix tools work with the language at every level is refreshing. i also think awk is really cool so i can be safely ignored

Adbot
ADBOT LOVES YOU

Joe Chip
Jan 4, 2014
gopls + lsp-mode + company + projectile has been working pretty well for me. i keep my init.el light but the only thing i'm missing right now is tags. i like ggtags but it appears the only options are kind of hacky

as far as java in emacs: i've tried it and i have to say it's really bad. i did it for a couple weeks but it was just unbearable compared to intellij. if you're doing anything java or java adjacent i would stick with intellij

Joe Chip
Jan 4, 2014
.

Joe Chip fucked around with this message at 20:50 on Aug 24, 2021

Joe Chip
Jan 4, 2014

Nomnom Cookie posted:

go is java for people who refuse to consider java. down to similar performance

except that go is worse in almost every way. no objects but everyone pretends structs are objects and treats interfaces like java interfaces instead of traits, no generics but that's a dead horse at this point, no exceptions and someone i work with actually proposed catching panics as a way to do error handling. it's java only in the sense that every idiot thinks they should write their microservices in it but it is strictly a worse language. we actually have a proposal to do a rewrite in java and/or kotlin because it's gotten so bad

Joe Chip
Jan 4, 2014
and don't even get me started on the garbage that go has for 3rd party libraries. we have multiple dependencies in production that aren't even 1.0 and i spend a lot of my time forking them to fix dumb bugs

mostly i choose to use c libraries when i can

Joe Chip
Jan 4, 2014
.

Joe Chip fucked around with this message at 00:15 on Nov 19, 2021

Joe Chip
Jan 4, 2014
i worked with go a couple jobs ago and whoever said "what if rob pike learned nothing about programming languages for 30 years except gc and you should have explicit error handling" was right on the money.

it's fine i guess. i wouldn't work with it if i didn't have to. the only part i thought was neat was the c ffi implementation (cgo) since it meant i could use crusty old (dependable, well-tested, well-supported) libraries. a lot of the go packages i saw were npm level trash with a single developer and no support. packages for xml were particularly bad so i just did it in libxml2 for example

Adbot
ADBOT LOVES YOU

Joe Chip
Jan 4, 2014
oh no question it's awful. it's easy enough to use at a basic level and go packages are so bad it was nice to have an escape hatch if needed. a few things off the top of my head that sucked about it:

1. anything with multithreading inside the library is a headache. i didn't have time to dig into this and for our application forcing the library to use a single thread was fine
2. hope you're not using alpine because you will find a lot of fun problems with musl. tbf this is probably more musl's fault but it was annoying to deal with (by switching to debian/glibc lol)
3. tons of explicit casting back and forth, especially if you need to use a void*

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply