Re: Spec vs. Implementation
Rogelio Serrano <[email protected]>
| Newsgroups | gmane.comp.graphics.y.devel |
|---|---|
| Message-ID | <3226e06cd01c86307c19be3497e5035d@debian> |
On 2004-07-02 11:17:11 +0800 clearm <[email protected]> wrote: > I think the best way to develop a window system these days is > to develop a > specification instead of a single source tree implementation. > You'd simply > publish the specification (like the X Window spec or Java > spec), and let > anyone who wants to develop an implementation have at it. The > advantage of > this is: > > 1) Everyone can develop their own Y Server on whatever > hardware/OS they > want. All they have to do is make sure that they interface > with the client > API properly. So, if Joe Blow knows how to do hardware > acceleration on a > Xenocorp Model 300X Ultracomputer then by all means he can > create his own > fully optimized Model 300X Y Server without having to worry > about having to > target SDL, DirectX, OpenGL, GGI, DirectFB, SVGALIB, iPAQ, > Palmpilot, etc. > in the same source tree. > > 2) In the same vane as point #1 above, it simplifies the > reference > implementation (i.e. the current source tree) because it > doesn't have to be > portable. We don't need a gazillion abstraction layers in the > reference > implementation to account for every single possible hardware/OS > configuration. > > 3) They can write the Y server in whatever programming > language they want. > It can be C, C++, Lisp, even friggin perl if they want. So > long as a client > can connect to it and send Y messages, it doesn't matter what > language the > server is programmed in. > > 4) There can be more developers working/exploring the > project. With one > source tree, only a few people can submit changes without > screwing it up. > You don't want everyone and their grandmother dipping into the > source and > changing things. But if there are multiple small groups > implementing their > own Y servers they can do as they please. > > 5) Makes it easier to develop. I guess this is just a > rehash, but if > everyone can use their own language and coding style; develop > and their own > pace; and not have to flip through a huge, over-abstracted, > single base of > code; then it will be easier for them to work on the project. > For example, > when I look at a function called DrawWindow() I want to see > code that puts a > grey box on the screen. I don't want to see two or three > layers of > abstraction, pointers to user-defined functions, structures > that hold > who-knows-what information, and other garbage. > > Whaddya think? > > Mack > > > I like that idea. Then all Mark has to do is make a reference implementation.