digitalmars.D - On * Language Design
- Justin Johansson (23/23) Mar 13 2010 I just happened across an essay by Tim Bray (http://www.tbray.org/ongoin...
- bearophile (6/7) Mar 13 2010 Wonderful ^_^
- Bane (1/5) Mar 13 2010 Interesting point in chapter Evolution vs. Stability. Maybe v2 came to f...
- Don (5/11) Mar 13 2010 The naming of D1 vs D2 is a bit misleading. v1 was actually a fairly
- Bane (3/9) Mar 13 2010 From the article:
- bearophile (5/6) Mar 13 2010 I think Walter & Co. have taken the right decisions about versions and r...
I just happened across an essay by Tim Bray (http://www.tbray.org/ongoing/misc/Tim) that he wrote back in 2006 about XML Language Design (I guess he means schema design though). Now why should D people care about this guy's rant about (XML) Language Design? As I read the essay, the insight that I took away was that you can take out all references to XML and replace them with PL (as in programming language) without loss of generality and most of what he says, imho, is applicable to, and there are lessons to be learned (or should have been learned in 20/20 hindsight) for the development of D (and for any aspiring PL for that matter). Up front he strikes a chord that will be familiar to D people quoting another author: “There are only two hard things in Computer Science: cache invalidation and naming things” And this snippet is a goodie too: "Each and every language-design effort has the potential to blow through its deadlines and trail along forever, and offers many chances to fall into the bikeshed trap." The main headings in his essay are: Expect Semantic Gaps Manage the Process The Syntax-vs-Model Wars Minimalism vs. Completeness Evolution vs. Stability Extensibility If you have the time, this essay by Tim Bray is well-worth a read. Here's the link: http://www.tbray.org/ongoing/When/200x/2006/01/09/On-XML-Language-Design Enjoy, Justin Johansson
Mar 13 2010
Justin Johansson:“There are only two hard things in Computer Science: cache invalidation and naming things”Wonderful ^_^ Finding good names for things is both hard and important. Python development process, and the language they have produced, show that trying to invent good names is not wasted time. Every single person has quirks. So no single person is enough to invent good names. A community of people is able to smooth out such quirks and invent names that are good for the higher percentage of people. But Python again shows that sometimes in the end the final decision of a dictator is necessary (see the "x if foo else y" syntax), both to stop endless discussions, and to keep an uniform design style in the language. Most times a dictator is not necessary, and consensus emerges from the crowd itself. Bye, bearophile
Mar 13 2010
If you have the time, this essay by Tim Bray is well-worth a read. Here's the link: http://www.tbray.org/ongoing/When/200x/2006/01/09/On-XML-Language-DesignInteresting point in chapter Evolution vs. Stability. Maybe v2 came to fast, before v1 became popular?
Mar 13 2010
Bane wrote:The naming of D1 vs D2 is a bit misleading. v1 was actually a fairly arbitrary snapshot of the development of D, to create a stable branch. There was absolutely no pause in language developement. D2 is completely different. It's a fully planned release.If you have the time, this essay by Tim Bray is well-worth a read. Here's the link: http://www.tbray.org/ongoing/When/200x/2006/01/09/On-XML-Language-DesignInteresting point in chapter Evolution vs. Stability. Maybe v2 came to fast, before v1 became popular?
Mar 13 2010
From the article: "...Having said that, the advantages to stopping with 1.0 are huge. Here’s why: one of the main success factors for a new XML language is how much software there is out there that does useful things with it. (See my proposed restatement of Metcalfe’s law over in the companion piece.) And software developers love a stable target above all things. If you publish 1.0 of your language and are fortunate enough to get some uptake in the developer community so some useful tools are shipping, bear in mind that if you then release 2.0, you’ve quite likely broken all those tools. You can maybe do this once before the developers are going to start seeing you as part of the problem rather than as part of the solution. They might just give up on you, or they might decide to go on maintaining their 1.0-compatible releases and simply ignore your 2.0, which will then likely go un-used. This is more or less exactly what happened to XML 1.1 which, despite having my name on the cover, I thought was a bad idea and fought every step of the way..." Just found some truth in all said above. Luckuly, difference between D1 and D2 isn't that great (I hope)....Interesting point in chapter Evolution vs. Stability. Maybe v2 came to fast, before v1 became popular?The naming of D1 vs D2 is a bit misleading. v1 was actually a fairly arbitrary snapshot of the development of D, to create a stable branch. There was absolutely no pause in language developement. D2 is completely different. It's a fully planned release.
Mar 13 2010
Bane:Just found some truth in all said above. Luckuly, difference between D1 and D2 isn't that great (I hope)....I think Walter & Co. have taken the right decisions about versions and releases, so I am happy about how he has managed the versions. The only thing that I don't fully like is the release date for the D2, I think it's a little too much early, because I think few more tiny breaking changes can be useful for D2. (But I know Andrei's situation). Thankfully Andrei has probably avoided to put part of the dark corner cases of D2 in his book, so they can be fixed still :-) Bye, bearophile
Mar 13 2010