The C language saw the light in 1972. GDB followed in 1986. Thatās both over 30 years.
Give Rust some time. Iām pretty sure debugging C in 1987 was much more of a PITA than it is for Rust right now, after only 1 year.
Calling C functions directly from you projectās code (as opposed to via some wrapping crate) works against the entire purpose of Rustās safety bounds. The last thing I want to have to think about when writing Rust is segfaults, buffer overflows and the like. I would have to if I was to call C directly.
Rust is a cross-platform language. Rust is using C for FFI for the same reasons that you are using C for programming: platform independence. Abstractions. Letting you get stuff done at the end of the day.
In that case you might want to consider APL.
Anyway, joking aside, you must no forget that we are humans after all. Weāre not computational number-crunching machines. Regular expressions are a perfect fit for computers. But most human users struggle with them. Why? Because they are utterly dense in syntax and lack any visual structure (as does APL, one could say, btw). I still love 'em though. 
I wouldnāt consider Go a clean language at all. Itās small, sure. (Too small even.) But not clean.
func Reduce(
in interface{},
memo interface{},
fn func(interface{}, interface{}) interface{}
) interface{} {
ā¦
}
There are no fields in a trait. There are type defs. But those are statements. Semicolons are for statements. Structs list their members. Enums list their variants. Commas are for lists.
Compare Rust:
struct Foo {
bar: Int,
baz: Int,
}
With Swift, e.g.:
struct Foo {
let bar: Int;
let baz: Int;
}
(Idiomatic Swift omits the semicolons, but for the sake of semantic correctness Iām including them here.)
Notice how Swift has the let in there. The let turns bar: Int into a statement. Thus the semicolon. If Rust had used Swiftās let syntax for fields, then youād be right in expecting semicolons. But as it is Rust is simply consistent with its semantics.
The Input -> Output syntax is a common idiom in functional languages.
Remember: Thereās more than just C out there.
Your criticisms sound a bit like C is your hammer and you havenāt had a look at the other tools in your toolbox for a while. There are lots of things where C got it right. But even more where it didnāt.
Wrong. See Aatch.
Different strokes for different folks. I came to Rust for the safety, sure. But most importantly I came for the incredibly strong type system and the expressive power through the use of tuples, pattern matching and closures. Itās 2016 after all. Time to leave the cave.
Coming back to your point on verbosity:
I develop in both Rust and Swift. Their syntax very is similar (due to Swift taking quite a bit of inspiration from Rust). Trivial code is so much more ergonomic in Swift. But as soon as one tries to solve real problems the simplicity (or cleanness as you might call it) of Swift (compared to Rust) comes at a cost: Swiftās syntax simply lacks the tools to express more sophisticated types or patterns (things will improve slightly with Swift v3, fortunately).
Rust aims to solve difficult problems. Difficult problems that I wouldnāt dare try to solve in C or even Swift, e.g. while Rust makes it fun even.
Did you consider submitting an RFC for this? There are quite a few community-related RFC already.
This is specifically something that the Platform proposal by @aturon tries to tackle, btw.
So why then is Rustās logo a cogwheel?
*cough*
Because platforms. Lots of them. Many without a package manager even.
Also because thereās no need to needlessly hurt oneself.
Now youāre just messing with us, arenāt you? O.o
No. It makes Rust consistent and ergonomic. Nothing prevents you from setting up your own fork/clone of crates.io. Itās open source and one can simply point Cargo.toml to somewhere else.
Beg to differ.
Not sure which book youāre referring to, but thereās an entire chapter on traits and trait bounds in āThe Bookā explaining the concept in depth.
There is a list: https://doc.rust-lang.org/error-index.html
Such a list wonāt help you on an airplane or a dead spot though.
This is the part where I have to agree. But then again Iām probably not the target audience anyway. I donāt read programming books cover to cover.
What I want from a technical book is to be presented the problem at hand followed by the solution and its reasoning. No fluff. No theoretical proofs. I also donāt want to have to build a silly pet project in order to be able to follow the book. Chances are I donāt care about your pet project.
Again: thatās me. I also canāt stand GIFs/memes/jokes in tech talks. So maybe Iām just dead inside or something. ĀÆ\_(ć)_/ĀÆ
From a technical standpoint however I consider āThe Bookā (and āRust by Exampleā) one of the best books out there. On any language.