A lot of interesting tech died off or never took off because the tooling was just too cumbersome to setup and use.
A lot of interesting tech died off or never took off because the tooling was just too cumbersome to setup and use.
If it was just rustc on it's own I doubt it would have people chest-thumping like they do.
I say this, as a lover of Rust: precisely because of Cargo, rustup and the crate system.
Speaking, myself, as someone who likes Rust but wishes people would be more clear-eyed and less obnoxious about it.
[0] Someone remind me what the standard term for this is? You know, the thing where people get really emotionally invested in things where they've invested a lot of time and effort, like Vi or Emacs or Dark Souls?
Would generally refer to this as a sunk cost dilemma
- run code
- build code
- format code
- generate code
- profile code including flame graphs
- run tests and report performance down to allocations
- benchmark code
- manage packages
- manage workspaces
- scan and vet suspicious code
It's amazing how much a 2 character command can do.
* C: make gave a standard way to compile/link a program. * Perl: CPAN as standard library/repository location. * Java: javadoc gave a standard format for low level documentation. Rules like 1 file=1 class, 1 folder=1 package gave a standard source tree layout. * Java/maven gave standard way to download, install and upgrade dependencys * Go: Built in formatter. * rust: cargo combines the strengths of Go standardization and Java/maven repositorys
Every iteration provides extras that the previous tooling generation sees as trivial. They'll say you can add them to the mix yourself if you want to. Their company likes things in a different way, and are happy to have the option.
But that's missing the point. The whole language ecosystems standardizes on a reasonable (but not 100% perfect) way of working. This has a lot of secondary benefits: * People move easily between organisations with minimal up-to-speed costs. * Somewhere in the ecosystem, someone still has your ancient tooling version, and the upgrade path is clear(er). * No discussion about in-house standards. (Try to get 2 C programmers agree on a coding style and watch the hours fly discussing what to take from ugly K&R vs ugly GNU.) * Real pain-points get solved, because someone feels your pain.
I've seen the in-house stack developed by a Cobol company. It's finely tuned to that 1 company, yielding huge benefits. It's also a very non-trivial investment and maintenance cost.
And it can be called from go command too: go fmt main.go
https://pkg.go.dev/cmd/go#hdr-Gofmt__reformat__package_sourc...
Why Rust, then? It is not particularly good on this front. Hardly the worst, but is still pretty Mickey Mouse compared to the languages that excel here.
I expect the zealotry/chest thumping is entirely a product of fashion. There are some things about Rust that are truly great, but nobody would go out of their way to mention it if it wasn't what is in style.
At the end of day, people are afraid of functional languages. It doesn't matter how amazing they are if almost everyone is too scared to use them.
But so does, say, ATS and does a better job on the aforementioned merits. But, indeed, it is not in fashion.
> At the end of day, people are afraid of functional languages.
To be fair, they are also afraid of Rust.
Compare that with the likes of JS, people learn that in a few weeks bootcamp.
Rust absolutely has hurdles, but you can be largely successful without ever touching them (you can get a surprising amount done without ever worrying about lifetimes).
Which is to say that he is not actually afraid, it's just a roundabout way to say that the only reason he is on the Rust trumpeting bandwagon is because it what is in fashion.
If you like rust, but hate Cargo, I'd suggest looking at building with Bazel :D
Bazel is a build system, but I don't use it as much as I'd like precisely because I'd have to manually write out all the DAG stuff.
I would say that applies much more for Go, where the language is decidedly meh, but the tooling is fantastic. Arguably even better than Rust.