Hacker News new | ask | show | jobs
by bit_flipper 1244 days ago
Go has probably the most extensive stdlib of major languages outside of Python (happy to be corrected on that). You can get a sense for what is available by looking here: https://pkg.go.dev/std. There is also the "pseudo stdlib" that is maintained by the Go project but for one reason or another is not available in the stdlib currently: https://pkg.go.dev/golang.org/x
6 comments

.NET is a strong contender, I would say. The standard library is immensely useful, and many things you may wonder if you need are available as Nuget packages, coming from the same devs who build the std lib.
Java seems to have just as much if not more available in its standard lib.
Though some modern features are lacking, like a JSON parser or web server.
It does contain several Javascript (!) interpreters, so you could probably glue those together as a JSON parser :)
Java has had a basic http server built in since 1.6

https://docs.oracle.com/javase/8/docs/jre/api/net/httpserver...

It does have a web server: https://openjdk.org/jeps/408
> It is not a goal to provide a feature-rich or commercial-grade server.

That server is not remotely comparable to the one in Go.

That’s indeed true, but it wasn’t a constraint so I thought it may be of interest to post it :D should have added a note regarding that though, but I can no longer edit.
It is tailored for the same purpose as Go's one, hello world.
Go's net/http is essentially the only used Go HTTP(S) server. It is often wrapped with other libs to add things like request routing, but it is always used as the actual HTTP implementation. Not sure why you're saying its purpose is "hello world".

The Java one is not usable in anything beyond hello world, and is explicitly not intended to be.

Does anyone actually use it? I’ve never even heard of this thing and I’m a professional Java dev
Given that it was only added in Java 18 and it is a simple static file server (no way to run custom code when serving a URL), I don't think it's in any way widely used at the moment.

Edit: or will ever be. It is definitely explicitly not an equivalent of go's net/http. Indeed, there is probably never going to be an equivalent of net/http in the Java stdlib (since they prefer to rely on the user choosing one of the existing server frameworks, such as Jetty).

The specific web server in the JEP is relatively new, but there has been an http server implementaion since 1.6:

https://docs.oracle.com/javase/8/docs/jre/api/net/httpserver...

From your description it sounds like it is a completely different beast from net/http
Not as Java and .NET.
Hell, I'll argue Go standard library is more extensive and better than Python's. Case in point: HTTP. The batteries included in Python definitely reflect the era of their creation.
Go probably pales in comparison to .NET [0]. Its about 1 million APIs

[0] https://apisof.net/

No "outside of Python" qualifier needed.