Live data from Hacker News

The perfect language and why Go still isn't it

snazz.xyz

71–80 of 139 posts

Re: The perfect language and why Go still isn't it

#71
post #2

Go isn’t the perfect language because it doesn’t intend to be. Likely, as this article seems to hint at, there’s no such thing and there never will be. Go has a well defined set of design goals (including simple and pragmatic) that it has achieved.

> Go has a well defined set of design goals (including simple and pragmatic) that it has achieved.

If your look how much changes are proposed as part of the Go2 work, I'm not sure the Go developers agree with you.

Re: The perfect language and why Go still isn't it

#72
post #59
post #39

Well, Go seems to have enabled a new wave of software renaissance - Kubernetes, Docker, you name it - Go seems to have filled the space that Java was too fat for, JavaScript too light for, and C/C++ too difficult/fun-less to use for (which is everything). After 20 years of coding, and having just recently discovered LISP and learned Clojure, I believe the perfect language will be a Clojure compiled to native with the…

> Well, Go seems to have enabled a new wave of software renaissance - Kubernetes, Docker, you name it Let's name it. I wouldn't call either of these a "software renaissance". Docker is a wrapper on top of Linux kernel containers, and Kubernetes is a 10000 pound gorilla on top (and port of a C++ app, some say even through a Java rewrite/transpile to Go). Go was just at the peak of being fashionable at the time (and ha…

Docker is a wrapper on top of kernel containers in the same way that Emacs is a wrapper on top of the kernel filesystem API.

I've written a 150-line container manager in shell before (because we had a use case where both Docker was not the right technical fit out of the box and the organization had barely any operational experience with even normal use of Docker), and it's great that containers are built into the kernel and you can just use unshare and a bunch of bind mounts if you'd like, but Docker is its own quite substantial product and brings its own approach to building systems (Dockerfiles, container networking, etc.) that aren't implied by or required by the kernel API.

Re: The perfect language and why Go still isn't it

#73
post #70
post #69

I really like Go (and Rust) and would like a job as its main language. However I don't have enough experience with the language, anyone know the job market and recommend a path or should I give up? I don't have time to spend a few hours/wk just to learn enough to get experience.

Usually, people start building demo’s or other side projects at their main job using whatever new tech they want to pad to their resume. This is bad for the company and your coworkers, but for people jumping ship every 2-3 years leaving a mess has few downsides. A more ethical approach is to simply learn at work during downtime over browsing the web. It even looks like work, so few people complain.

Building demos to pad your resume is bad for the company, but building demos to achieve unmet business needs is good for the company, and usually there are plenty of those lying around.

Re: The perfect language and why Go still isn't it

#74
post #39

Well, Go seems to have enabled a new wave of software renaissance - Kubernetes, Docker, you name it - Go seems to have filled the space that Java was too fat for, JavaScript too light for, and C/C++ too difficult/fun-less to use for (which is everything). After 20 years of coding, and having just recently discovered LISP and learned Clojure, I believe the perfect language will be a Clojure compiled to native with the…

Kubernetes was written in Java, only got re-written in Go as another team took over and they were into Go bandwagon.

Re: The perfect language and why Go still isn't it

#75
post #59
post #39

Well, Go seems to have enabled a new wave of software renaissance - Kubernetes, Docker, you name it - Go seems to have filled the space that Java was too fat for, JavaScript too light for, and C/C++ too difficult/fun-less to use for (which is everything). After 20 years of coding, and having just recently discovered LISP and learned Clojure, I believe the perfect language will be a Clojure compiled to native with the…

> Well, Go seems to have enabled a new wave of software renaissance - Kubernetes, Docker, you name it Let's name it. I wouldn't call either of these a "software renaissance". Docker is a wrapper on top of Linux kernel containers, and Kubernetes is a 10000 pound gorilla on top (and port of a C++ app, some say even through a Java rewrite/transpile to Go). Go was just at the peak of being fashionable at the time (and ha…

Docker is a bad design. It is monstrously overcomplicated for what it does. In historico-aesthetic analogies, it's baroque, not renaissance.

Re: The perfect language and why Go still isn't it

#76
post #42
post #39

Well, Go seems to have enabled a new wave of software renaissance - Kubernetes, Docker, you name it - Go seems to have filled the space that Java was too fat for, JavaScript too light for, and C/C++ too difficult/fun-less to use for (which is everything). After 20 years of coding, and having just recently discovered LISP and learned Clojure, I believe the perfect language will be a Clojure compiled to native with the…

> C++ too difficult/fun-less C++ would be a lot more fun without the obligation to maintain header files all the time. This is one thing that modern languages get right.

Modules are in C++20 and you can already play around with them.

Re: The perfect language and why Go still isn't it

#77

This already exists, but it isn't trendy. It's FreePascal. Nobody believes me, but we have perfection already. No crap you don't need. No crazy corner cases. No C++ templated metaprogramming lambda auto pointer garbage. No "I can't write a linked list without a Grimoire" Rust. It's great. You get a ton done, and simply ignore the language wars. No VM trash (Java). No web trash (JavaScript/"Webasm"). No crap. Try all…

Please don't troll here thanks.

Re: The perfect language and why Go still isn't it

#78
post #37

Every language has flaws. Some of the best languages are those that take existing languages and just throw out some of the bad legacy mistakes, making what’s often a slightly different but pretty much objectively “better” language. For example: Kotlin is a better Java in almost every way. The problem with almost all such languages is that they aren’t different enough from their “parent” languages, meaning they strugg…

I think Kotlin has also leapfrogged D on this — Google blessing it for Android use and an Android community clearly hoping for something better than an aeons-old version of Java goes a very long way. The Android success story might just be what the language needs to establish itself enough that it’ll become a backend staple too

I think Kotlin's future is tied to Android's.

Outside Android there are better options.

On the JVM, just like any other platform, is safer to bet on the systems language of the platform than guest languages with extra debugging layers, tooling and their own wrappers for idiomatic code.

Then Kotlin is trying to stretch too much, meaning that any portable Kotlin code cannot depend on any platform or needs multiple implementations.

Finally Kotlin/Native has special semantics for handling data structures, as it tries to be Swift like, so special care is needed when the code is supposed to be used from Kotlin/Native as well.

Re: The perfect language and why Go still isn't it

#80
post #39

Well, Go seems to have enabled a new wave of software renaissance - Kubernetes, Docker, you name it - Go seems to have filled the space that Java was too fat for, JavaScript too light for, and C/C++ too difficult/fun-less to use for (which is everything). After 20 years of coding, and having just recently discovered LISP and learned Clojure, I believe the perfect language will be a Clojure compiled to native with the…

I've been learning a bit of Go and I like what I've understood so far but one thing that seems somewhat lacking in the Go Eco system is mathy projects. I know there are some but I couldn't find many that were both active and to my taste. I was looking to learn and hopefully contribute. I was mostly looking for something mature for either mathematical optimization (stuff like linear, quadratic or integer programming) and (non-DL) machine learning. For C++, Java, Scala, Python and Julia (less sure about this), there seems to be much more.

You can compare Go's gonum to Python's numpy. For Java's Weka, Scala's MLlib, Python's scikit-learn, C++'s Dlib to what Go is offering.

Maybe Go leans more on its C-interop for these sorts of things which is a bit like numpy.

Am I missing something? Will this change?

Post reply on HN