Remix.run Logo
remus 4 days ago

That's a reasonable trade-off to make for some people, no? There's plenty of work to be done where you can cope with the occasional runtime error and less then bleeding edge performance, especially if that then means wins in other areas (compile speeds, tooling). Having a variety of languages available feels like a pretty good thing to me.

gf000 4 days ago | parent | next [-]

Well, I personally would be happier with a stronger type system (e.g. java can compile just as fast, and it has a less anemic type system), but sure.

And sure, it is welcome from a dev POV on one hand, though from an ecosystem perspective, more languages are not necessarily good as it multiplies the effort required.

pjmlp 3 days ago | parent | next [-]

It is kind of ironic that from Go's point of view, Java's type system is PhD level of language knowledge.

Especially given how the language was criticised back in 1996.

Mawr 3 days ago | parent | prev [-]

What do you mean by saying Java compiles just as fast? Do you mean to say that the Java->bytecode conversion is fast? Duh, it barely does anything. Go compilation generates machine code, you can't compare it to bytecode generation.

Are Java AOT compilation times just as fast as Go?

gf000 3 days ago | parent [-]

> Duh, it barely does anything. Go compilation generates machine code, you can't compare it to bytecode generation

Why not? Machine code is not all that special - C++ and Rust is slow due to optimizations, not for machine code as target itself. Go "barely does anything", just spits out machine code almost as is.

Java AOT via GraalVM's native image is quite slow, but it has a different way of working (doing all the Java class loading and initialization and "baking" that into the native image).

const_cast 3 days ago | parent | prev | next [-]

But go tooling is bad. Like, really really bad.

Sure it's good compared to like... C++. Is go actually competing with C++? From where I'm standing, no.

But compared to what you might actually use Go for... The tooling is bad. PHP has better tooling, dotnet has better tooling, Java has better tooling.

ponow 3 days ago | parent | next [-]

Go was a response, in part, to C++, if I recall how it was described when it was introduced. That doesn't seem to be how it ended it out. Maybe it was that "systems programming language" means something different for different people.

tom_m 3 days ago | parent | prev | next [-]

Go tooling is among the best out there. You ever see npm?

melodyogonna 2 days ago | parent | prev [-]

Go tooling is fine.

const_cast a day ago | parent [-]

Again, compared to languages that you probably shouldn't be contorting to make a web backend in, sure. Its better than C++ and JS (npm).

Compared to incumbents like dotnet and PHP? Uhh, no. The tooling is very far behind and cumbersome in comparison.

Filligree 3 days ago | parent | prev [-]

Unfortunately the lack of abstraction and simple type system in Go makes it far _slower_ for me to code than e.g. Rust.