CML2 Coming in Kernel 2.5 190
MrHat writes: "Eric S. Raymond's CML2, or 'Configuration Menu Language' -- part of the next-generation Linux kernel build system -- is now officially ready for 2.5. CML2 includes a compiler for a domain-specific configuration language, used to configure kernel subsystems and resolve dependencies between them. CML2 and Linux 2.5 will 'ship' with several different configuration interfaces, including an adventure game, whipped up by ESR during an extended flight. The story from the horse's mouth (or LKML, if you prefer):'This release resolves all known logic bugs and rulebase problems. The only things left on the to-do list are convenience features and some minor improvements in the test/coverage tools. This code is now officially ready for the 2.5 fork.'"
A promising step (Score:5, Insightful)
It was promising then to see ESR say that he wanted this language to help GNU/Linux newbies. There's been a lot of good work recently on making the first steps more accessible, but there's been little progress in helping people who have completed the first challenge and who then want to get their OS running smoothly.
Re:Why not XML? (Score:2, Insightful)
But I agree. There's no reason why he had to invent a new syntax, when CML2 could have been defined as an XML application. Like you say, there's plenty of tool support.
Widespread acceptance (Score:2, Insightful)
That statement is only true if 'people' == 'developers compentent enough to maintain kernel code'. If Linux is to gain widespread acceptance, then for 99.9%+ percent of the population, it will be equally difficult to remove an easter egg from the Linux kernel as is to remove the flight simulator from Microsoft Excel.
I believe it is the development paradigm you are espousing here that is one of the largest roadblocks to mainstream acceptance - you've implicitly excluded the large majority of the 'people' who could be using Linux, without even noticing that you did.
Re:A promising step (Score:2, Insightful)
I don't know that I agree. What we've essentially got here is yet another language that a user needs to learn in order to take advantage of something that's supposed to make the user's life easier. It's like forcing a student to study thermal dynamics so that they can learn to put gas in the car tank. It's this approach to making things user-friendly that Linux has been taking for a long time now, and it's only making things worse the more applications and tools show up.
Windows may have it's sucky points, but it's pretty much always click-point-click-scroll-click to get something set up. You can't get easier than that. Yes, it limits the interface for the user. For a potential hacker, I know that's a problem. For an end user and help-desk technician, it is a wonderful boon.
In my opinion, a completely radical approach should be taken -- all config and setup scripts as XML files. That way, you've got one DTD binding you to whatever you're trying to set up, and a protocol that you only need to learn the nuances of once.
Re:Something similar for BSD? (Score:3, Insightful)
I've honestly been very impressed with how logical the BSD configuration "system" is; it's not pretty but it's straightforward and easy to make changes to. The
Re:another language? (Score:2, Insightful)
Uh -- CML2 is not a programming language, per se, but a language for representing a dependency graph for configuration options.
I fail to see how either XML or Scheme would be at all useful there. You would still have to invent conventions for how to store the graph, so instead of a language invented out of the blue, you get a language in XML or S-exp syntax invented out of the blue.
If anything, you should be advocating Prolog, which (unlike Scheme or XML) is a rule-based language, somewhat similar in semantics to CML2 data files. What's that, you say? Not enough people know Prolog? You can't be expected to install a Prolog compiler just to build a kernel? My point exactly.