News for hackers. Stuff that matters.
Re:Introducing MIR by AlisdairO on Thursday April 28, 2016 @10:00AM (#11588880)
> "Explicit is better than implicit" is also a naively wrong maxim. Verbosity is bad. Period. Every good writer I know is non-verbose. Meaning behind words is what makes a good literature, not long words or elaborate passages half page long

Good writing often allows (or even encourages) a reader to concoct their own inference of exactly what the author means. Witness discussions that last to this day of many ancient classics. Such ambiguity may be fine for writing, but it is obviously disastrous for large engineering projects.

That's fine - not all code is a large engineering project - but most of the people I know who work on very large code bases will take explicitness every time. And those are the kind of projects that Rust is aimed at tackling.

Re:Introducing MIR by dschiptsov on Thursday April 28, 2016 @11:47AM (#11589720)
Explicitly passing &self is lame. Haskell's implicit parameters are clever.)

Actually, the language fells Rubysh - a bit of syntax from here and there. Swift has much more refined and concise syntax, because they paid way more attention to details.

Patter matching on type constructors could have been taken from Haskell - it won't hurt.

Block syntax with where clause (why?) is really bad.

The syntax inconsistency and awkwardness aren't major issues, but it is telling.

Re:Introducing MIR by pcwalton on Thursday April 28, 2016 @06:02PM (#11592231)
None of your examples make sense to me.

You say "explicitly passing self is lame" and then praise Golang for "feature restraint" when it does the exact same thing.

I don't know what "pattern matching on type constructors" means. You use the constructor syntax to pattern match in Rust.

There is no such thing as "block syntax with where clause". Where clauses go on signatures, not blocks. This is also the exact same syntax as Swift, which you praise for "more refined syntax".

Re:Introducing MIR by dschiptsov on Thursday April 28, 2016 @11:11PM (#11593554)
Golang is praised for attention to details and fair attempt to attain that kind of balanced mix of complementing each other features.

The principles, rather idealistically, are outlined here:

http://karma-engineering.com/lab/wiki/Bootstraping

Pattern matching is technically almost unchanged since Standard ML, but in Haskell the syntax is refined by perfectionists (in best possible meaning of this word).

Swift, obviously, trying very hard to look familiar for [Objective-]C (but not Java) programmers, and to follow the principle of less astonishment, produced much more concise syntactic choices, and the devil is in the details.

BTW, if one wants to see another example of carefully crafted language, there is PLOT

http://users.rcn.com/david-moon/PLOT3/

Re:Introducing MIR by pcwalton on Friday April 29, 2016 @01:50AM (#11593967)
This is very philosophical and also entirely unresponsive to my points.
Re:Introducing MIR by AlisdairO on Friday April 29, 2016 @09:45AM (#11595653)
> Explicitly passing &self is lame

Explicit passing of &self (or &mut self, or self) might be 'lame', but it also gives more clarity as to what the code is doing. I can't say it's ever once given me pause.