On 5/4/13 3:55 AM, james wrote:
It might be development policy, but it seems to me a terrible idea.

How do you fork a requirement? (or discussion thereof?)

How do you fork a design? (or discussion thereof?)

It seems to be the old 'show me the code'. :-(

I think it's totally fine to bring up design issues if people see legitimate, fixable problems in the language. I for one encourage it! I'd like to know about potential language issues, so that we can fix them if they are indeed problems.

An excellent example is commenter SteveMcQwark's post about an earlier version of lifetime syntax that pointed out that there were indeed serious mistakes (which have since been fixed):

http://www.reddit.com/r/rust/comments/17ka3b/meeting_weekly_20130129_region_syntax_impl_type/

However, there are a couple of important caveats:

1. Some requirements just *are* and can't be changed without jeopardizing the applications that Rust is designed for (most notably Servo). A common example is the requirement for Rust to support manual memory management. Many people think that manual memory management adds too much cognitive and syntactic overhead (what are all these smart pointer sigils all over my code?) and would like to see Rust move to a mandatory, global concurrent garbage collector like Java, throwing away unique pointers, lifetimes, borrow checking, and references in the process. This, however, would be in direct contradiction to the systems-oriented, low-level nature of Rust (which is the reason Rust is starting to find a niche in graphical-intensive apps and games) and so couldn't really be changed without a fork.

2. Sometimes there are issues with perfectly legitimate arguments on both sides, and someone will be disappointed with *any* decision. An example is the requirement that statements be separated by semicolons instead of using whitespace like Python or performing automatic semicolon insertion like JavaScript or Go. Many C and C++ programmers like semicolons; many Python programmers and Ruby programmers detest them. But if we changed this, we'd probably hear just as much criticism from the other side. So arguing doesn't seem really productive to me; a fork is about the only thing that can be done here.

Patrick

_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to