To view parent comment, click here.
To read all comments associated with this story, please click here.
The Windows HAL is not the same as HAL the program, even though they have the same name. HAL the program provides information to user programs about devices and suchlike (the kernel already provided this information; HAL just makes it easier to get it); hal.dll is the lowest level of NT, and performs I/O and handles interrupts for the NT kernel.
Specification: This is what we want you to do.
Convention: This is how things are actually done in the real world.
Convention beats specification most every time. Almost by definition, really.
The standard udev rules may need to put up with some ugly cruft for a while, in the form of legacy device names. Of course, it's easy for me to say that since I don't have to support the additional maintenance overhead. But there is a notable (excruciatingly slow, but relentless and pragmatic) trend to eliminate arbitrary "differences which make no difference" in our Linux world. Someday, things'll be brighter. And this issue will be a non-issue that we will all have to give newbies an historical perspective upon before explaining the actual "problem".
Our lives and our consciousnesses are but cursors on the progress bar of time.
Edited 2008-08-24 20:10 UTC
As others have said, Linux HAL is something different to Windows HAL entirely.
About your convention argument, it's true that convention pretty much always is more important than specification for the real world. However what I'm trying to argue is that application writers should be trying to depend on something that will *always* be true, for instance, they can find the first hard drive through hal, rather than, for example the first hard drive is always /dev/hda. Poor example but I think it illustrates what I mean.
In the case of SQL, if you're intending for your program to work with every SQL implementation, you shouldn't in that case use SQL SPs. You could target your application at all SQL implementations that support SPs. I take it that most app developers are targetting all modern Linux systems, rather than ones configured in a particular manner.
The point is, while convention essentially overrides specification, trying to follow the specifications will enable users, administrators, packagers, etc. to be more sure that it'll work properly on their system without being dependent on some unwritten convention.






Member since:
2006-02-05
Windows has had a HAL for over a decade now. Not the main thing I wanted to respond to, but the Linux HAL was far from revolutionary, it is something it was way behind on.
<rant>
Convention is almost always more important, and more useful, then specifications. Specs are usually a lowest common denominator, and typically convention goes far beyond specification. For example, the ANSI SQL spec has no way to do stored procedures in a database. SProcs are a vital feature of any half-way decent RDBMS, and any one worth its salt has a really good implementation of the feature. If you put out a database and didn't have support for sprocs, chances are nobody would ever use your product. They would have good reason too.
The other thing is Specs are generally put out by consortiums of companies with competing interests, and what gets in or doesn't tends to have as much to do with politics as technical merit. Conventions occur when everyone does something a certain way because that is the way that has proven itself to be the best.
</rant>
Edited 2008-08-24 04:05 UTC