News for hackers. Stuff that matters.
Re:Why Not Rust? (2020) by ncmncm on Saturday December 18, 2021 @07:14PM (#29610095)
Go, like Java, was designed by people who intended never to write any code in the language, themselves. Both are languages which those individuals designed for use by people less intelligent, careful, and thoughtful than themselves.

The case of Java demonstrates they were mistaken: their estimation of their own understanding was grossly outsized. I don't know enough about Go to say whether that is true of Go's designers.

Re:Why Not Rust? (2020) by cmrdporcupine on Saturday December 18, 2021 @08:07PM (#29610390)
I am not sure why you're being downvoted, you're right. Here's the quote from Rob Pike I find astounding:

"The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike" [1] (emphasis mine)

You and I: we're not smart enough to use modern language features. And it just so happens that the language features and practices that we can handle are the ones that Rob Pike likes and settled on as good in the 70s and 80s. Anything from the last 25 years, we're not capable of understanding.

Honestly, part of many bonuses of leaving Google at the end of the month (after 10 years there) is that I hopefully will have the choice not to use Go and its heaps of insulting boilerplate... but I also hopefully won't have to deal with that kind of arrogance.

[1] http://nomad.uk.net/articles/why-gos-design-is-a-disservice-...

Re:Why Not Rust? (2020) by adam_arthur on Saturday December 18, 2021 @08:58PM (#29610660)
Researchers tend to write pretty poor code, if any of the research papers I've read/read corresponding code for are any indication.

Obviously not trying to state anything deep here by over-analyzing that one point in his quote, but kinda funny his statement implies researchers write decent code.

Often I question the result of a paper due to how bad the code is. Many paper results cannot even be replicated by writing your own code following the papers description.

I agree more fundamentally with the fact that most people write low quality code if there aren't structures/patterns already in place to protect them from themselves. From that perspective, I agree with his point. Though I'm not a big fan of the implementation of the idea

Re:Why Not Rust? (2020) by Wonnk13 on Saturday December 18, 2021 @08:42PM (#29610578)
Welcome to the Xoogler club :D. Just curious what areas did you work in, generally speaking? I never saw a line of Go in close to three years working around the Ads products.

Obviously it's a massive company and I saw maybe 5% of it, but I joke with my friends that I had to leave goog to get real exposure to Go and borg/k8s.

Re:Why Not Rust? (2020) by cmrdporcupine on Saturday December 18, 2021 @08:45PM (#29610596)
I've been through all sorts of PAs (including ads in my first two years). And yes, I only really saw Go in my last year here, working in Core. I transferred from Nest/Hardware because WFH was too difficult for that kind of work (hardware devices), and I wanted to get back into Google3 so I could be more productive. And it so happened the codebase I landed in was Go. I mean, it's been mostly tolerable, but it's also just... not good honestly.

And yes, I do think generally Go is used more outside Google than it is inside. It's not a language made for Google -- despite what Pike is saying -- it's a language made by some people who happen to work at Google to scratch an itch they've had since they worked at Bell Labs.

Re:Why Not Rust? (2020) by johnnycerberus on Saturday December 18, 2021 @08:33PM (#29610538)
In Romania there's an old question to find the character of somebody: are you Roman or Greek? Because if you are Roman, you put practice above theory, you are a pragmatist, skeptic, if you are Greek you will put theory above practice, you are an idealist, optimist, at the expense of hardships in the material world and other potential drawbacks. Rob Pike chose Roman, otherwise it would have cost Google money to train those people and we don't know if those language features could bring any benefits for the kind of software they develop. As he said, they are not researchers working with category theory, instead they program ever-changing software for an imperfect world driven by profits, rather than academic idealism.
Re:Why Not Rust? (2020) by cmrdporcupine on Saturday December 18, 2021 @08:38PM (#29610562)
I mean, I actually work(ed) at Google and this is nonsense for Google developers.

The most used and deployed code at Google is written in C++, not Java or Python, and while we have a sane subset of it in our style guide it is by no means dumbed down to the level that Pike seems to imply we need it to be.

Google has done fairly fine deploying C++ into production for a couple decades. I haven't found Go superior at all so far, more insulting than anything. And tedious and opinionated in all the wrong ways.

Re:Why Not Rust? (2020) by Wonnk13 on Saturday December 18, 2021 @08:45PM (#29610589)
I just replied to your other comment further up thread, but yes this is my anecdotal experience as well. You couldn't walk ten feet without tripping over C++ and Java. Never myself saw Go checked into corp.
Re:Why Not Rust? (2020) by geodel on Sunday December 19, 2021 @12:46AM (#29611696)
Seems Go insulted you so much that you really lost sense of proportion or any reasonableness in your comments.
Re:Why Not Rust? (2020) by cmrdporcupine on Sunday December 19, 2021 @09:03AM (#29614006)
I never had that, so we can't blame Go.
Re:Why Not Rust? (2020) by littlestymaar on Sunday December 19, 2021 @06:56AM (#29613242)
”Pragmatism vs Idealism” is pretty much like saying “we're doing the right things and others are wrong”. No software engineer would define themself as an “idealist who don't take reality into account into their design”.

For instance, I'd consider Go being very “idealistic” since it was designed mostly from the vision of a small group of people with a clear mantra: “simplicity”. But of course, Rob Pike would never have advertised his language this way.

On the other hand, one could argue that Rust is pretty much is the “realist” camp, since it was initially designed in a very different shape from what it later became when early adopters started using it (the Servo team at Mozilla in the beginning, and then other groups: for instance the Fushia team at google at an impact on the design of the async part of the language).

Re:Why Not Rust? (2020) by eternalban on Sunday December 19, 2021 @07:24AM (#29613362)
Curious: Did 'Commander Pike' influence choice of 'Comrade Porcupine'?
Re:Why Not Rust? (2020) by cmrdporcupine on Sunday December 19, 2021 @10:23AM (#29614607)
No I've had this nick and various variations on it since I was a teenager on LambdaMOO in the early 90s, and I don't think I was conscious of Commander Pike.
Re:Why Not Rust? (2020) by zerocount on Sunday December 19, 2021 @06:44AM (#29613193)
You sound like you have a chip on your shoulder and you come off as a spoiled child. Just as the anti-Trump crowd doesn't like Trump's personality, you reject Pike for his arrogance.

He's done great things. Think about the caliber of people that man worked with every day. And then he goes to Google and sees thousands of 'ordinary' people slinging C++ and doing web work. We become products of our environment. There's a lot of gap between him and you. And that's ok. You'll go on to do another 10 years at another big tech company and live a good life.

I'm way below your caliber and I see some arrogance in your words. I think both of you are arrogant because you unconciously became a product of the environment. I'm just a nobody that fails 9/10 interviews, including Google 2 months ago. It takes luck for me to get hired anywhere and I find it hard to relate to the middle class people I work with because I've been so poor. But I bet you I come off as arrogant to tradesmen, cashiers, janitors, and many others. Just let it go.

Re:Why Not Rust? (2020) by lr1970 on Sunday December 19, 2021 @07:51AM (#29613496)
> Think about the caliber of people that man worked with every day.

Greatness by association is not a solid concept. It shows how lucky a person is to be surrounded by great people but in itself does not count as an evidence of his greatness. But on the other hand, great research minds tend to cluster, thus his priors are above average.

Re:Why Not Rust? (2020) by kiawe_fire on Sunday December 19, 2021 @09:50AM (#29614350)
> Just as the anti-Trump crowd doesn't like Trump's personality, you reject Pike for his arrogance.

This feels like an odd and unfair comparison.

I have nothing but respect for Pike and what he’s accomplished.

I don’t dislike him in some anti-cult-of-personality. I’m not ignoring good work he’s done just because it doesn’t fit my world view.

But I CAN criticize his individual work for being limiting or lacking ergonomics that I like.

And it’s entirely fair to look at Pike’s personal motivation for making the decisions he made, because it has an impact not only on what Go is currently, but also what it’s likely to be (or likely to not be) in the future.

If Go were created with the intention to be, say, a cleaner C++ with garbage collection, then I’d be all over it. I’d know that even if I don’t fully like it’s implementation today, it might eventually “get there”.

But instead it was created as an admittedly dumbed down language for people that Pike personally decided needed a dumbed down language, so I know that it’s never going to be what I want it to be.

That’s not an attack on Pike as a person. It’s not me blindly following a media campaign trying to destroy someone.

It’s me saying that I benefit greatly from generics and more robust error handling, and Go is not likely to have those in the capacity that I want because the whole motivation behind the language was to avoid those things at all costs.

None of which takes away from Pike’s career in its entirety.

Re:Why Not Rust? (2020) by cmrdporcupine on Sunday December 19, 2021 @08:54AM (#29613946)
Nah man, you are not below me. And those kind of comparisons are ridiculous in any case, which is why I reject the content and tone of Pike's quote there and also many of the value judgements about programmer's 'smarts" that seem to have gone into the development of Go itself. It's that kind of attitude that turns me off entirely (also Google's ridiculous interview process but that's another story).

I'm not sure if Pike himself holds these opinions, or if that quote was just a slip, but it's not nice. TLDR Pike is a 'great' man, with smarts well beyond me, but that's not of a lot of relevance to the code that we (code mechanics / producers) have to write every day, and I found Go tiring and insulting to work with.

Re:Why Not Rust? (2020) by WalterBright on Saturday December 18, 2021 @08:05PM (#29610374)
Not only do I use D for all my programming now, I've also gone back and translated my older programs I still use into D.

Most recently I converted my ancient (1980s era) disassembler into D.

Re:Why Not Rust? (2020) by pjmlp on Sunday December 19, 2021 @04:39AM (#29612608)
What are you talking about Java?

Gosling and others have written plenty of code in Java themselves, plenty of Solaris tooling was migrated to Java (a fact that Bryan Cantrill has complained often in his talks), and it replaced their OpenSTEP efforts, with Java EE being a rewrite from Distributed Objects Everywhere, originally written in Objective-C.

Re:Why Not Rust? (2020) by ncmncm on Sunday December 19, 2021 @05:27PM (#29619109)
The Java authors were quite open about their absolute preference for Lisp, and their distaste for OO.

That Gosling did not fully understand features cribbed from other languages is evident from how broken the Java version of those features are.

Re:Why Not Rust? (2020) by pjmlp on Monday December 20, 2021 @06:19AM (#29623568)
Surprising opinion given that Java is heavily based on Objective-C.

https://cs.gmu.edu/~sean/stuff/java-objc.html

As for your reference to Guy Steel, he was just one person on a large team, which besides the point above was full of ex Smalltalk and SELF people as well.

Maybe learn properly about the Java history?

Re:Why Not Rust? (2020) by Skunkleton on Saturday December 18, 2021 @07:58PM (#29610343)
Go itself is a huge project written in Go. What are you talking about?
Re:Why Not Rust? (2020) by lucian1900 on Saturday December 18, 2021 @08:22PM (#29610475)
Famously, it even took many years for the compiler to be bootstrapped. That’s unusual in the extreme.
Re:Why Not Rust? (2020) by adgjlsfhk1 on Sunday December 19, 2021 @03:12AM (#29612298)
One thing that has been discovered over the past 50 years and applied over the last 30 or so is that writing a bootstrapping compiler for a young language tends to strongly bias the language towards being good at writing compilers (potentially to the detriment of other features). Compilers are essentially graph algorithms on loosely typed data. I think a lot of the reason it took so long for Rust and Julia to be invented is that they are both not very good languages for writing a compiler in, so in the era where all the new languages had bootstrapping compilers, no one would write a language with the sets of tradeoffs they have.
Re:Why Not Rust? (2020) by surajrmal on Sunday December 19, 2021 @06:22AM (#29613088)
I very much agree. In fact, taking it a step further, OS which self-host development also have this problem where they over optimize for an OS good at compiling and not necessarily good at other things.
Re:Why Not Rust? (2020) by atrn on Sunday December 19, 2021 @12:18AM (#29611577)
They had a functioning compiler and decided to concentrate on other areas and it's not too uncommon for a languages's compiler to NOT be written in that language. Afterall Rust relies on the non-Rust LLVM.
Re:Why Not Rust? (2020) by tmp538394722 on Sunday December 19, 2021 @12:03AM (#29611493)
> Unusual in the extreme

The most popular python and ruby implementations are written in C, right?

Swift is written in C++

It seems not sooooo unusual.

Re:Why Not Rust? (2020) by jacquesm on Sunday December 19, 2021 @04:55AM (#29612670)
Python and Ruby are not from the get-go compiled languages but interpreted ones.
Re:Why Not Rust? (2020) by ncmncm on Sunday December 19, 2021 @04:55AM (#29612672)
Writing the compiler for your new language in it amounts to wankage, these days.

There was a time when doing that helped convince people the language could do practical things, and might be useful because you might not have had a compiler you liked for your dev environment. Nowadays, though, there is so much support for coding compilers in an existing langauge that building one in the immature language means wasting a lot of time, and furthermore makes your language hard to change because maybe the compiler is using something you want to change. There are more impressive things to write in your new language that might be actually useful.

Thus, rustc is (mostly) not coded in Rust. Rust's demonstrator project was the guts of a browser, instead. Notably, that project was coded in a language substantially different from Rust both today and at the time.

Re:Why Not Rust? (2020) by mseepgood on Sunday December 19, 2021 @03:41AM (#29612411)
3 years is not that many years (Go is now 12 years old), and that's not unusual. There are other priorities when you have just released a new language.
Re:Why Not Rust? (2020) by zozbot234 on Saturday December 18, 2021 @08:42PM (#29610575)
Go is really just a modernized Alef/Limbo, and there's plenty of code written in those languages, in their own niches. It's quite a good language for what it's intended to do. (People sure love to talk about its lack of generics, but Java pre-1.4 or so didn't have generics either. It takes time to find out the best semantics and integrate them into the language.)
Re:Why Not Rust? (2020) by erik_seaberg on Saturday December 18, 2021 @09:13PM (#29610729)
Pre-generic Java required (un)boxing and runtime casts everywhere, so it wasn’t really safer than a dynamic language, just far more tedious. I’m thankful that we pretty much burned that code to the ground and started over. Those casts are still in the bytecode for the verifier, but at least we no longer have to reread them, and we have warnings when we violate the assurances that they won’t fail.
Re:Why Not Rust? (2020) by fsdjkflsjfsoij on Sunday December 19, 2021 @01:34AM (#29611942)
> was designed by people who intended never to write any code in the language

That's false. All of the original developers started writing side projects in Go extremely early on and all of them still write tons of Go including on their side projects. They don't have their ego tied up in their choice of programming language.

Re:Why Not Rust? (2020) by aredplug on Saturday December 18, 2021 @07:55PM (#29610324)
Even if that were true, is it a bad thing?