Advertisement

Your Unix and why you use it

Started by June 24, 2003 06:38 AM
69 comments, last by Flarelocke 21 years, 2 months ago
quote: No, it''s not important to provide users with a consistent interface. It''s important to provide users with whatever GUI they want.


Yes, and the GUI I want is a consistent one. Scratch that, the GUI I need is a consistent one. That means handing over my right to complete and utter configurability to a central body that decides user interface issues for me. Why that''s a problem I''ll never understand. I''m not an expert at interface design, very few programmers are experts at interface design. But some people out there are experts at interface design. They make decisions better than I or any typical programmer ever could. They should decide my interface for the same reason an architect should design my house or Engineer plan out my television. I recognize I can''t do everything, and am grateful that there are people out there that can do this for me, and do i t well (note, none of those people seem to work for Microsoft )

Open source operating systems are one of the very few things in life that just allow everyone to bring whatever to the pot, stir it all together, and force the user to muck through it. Very few organizations could get far on this model. Sure there''s planning and structure within a project, and distro/os developers do the best they can with what they got, but there''s little to no organization at the big picture level. Why do you think Redhat came out with Blue Curve, and Mandrake created Galaxy? They''re a tiny stab at the problem, but they''re a start.

Consistency leads to stronger work flow and greater productivity. Consistency means easily moving into new programs and reduces the need to relearn things.
quote: Original post by CoffeeMug
quote: There''s going to be some point at which you have to say "Okay, here''s the API. Anything beneath this API is my territory, and anything above it is your territory". The linux developers have chosen to draw the line so that they have a manageably small territory.

Nothing stops the developers from publishing important APIs on various levels above that point. They don''t have to implement it, just need to publish a set of reasonable interfaces. POSIX is very limited in scope, we need a few more guidelines than that.


quote:
If you were a Linux user learning Win32 and you see a "knife()" function, would it be immediately obvious what it does?

Unless it''s named ExcisesTheForeskinOfTheProcessIdentifiedByIntegerPIDInArgument1With
--- broken so as not to break table layout ---
BooleanIndicatingToUse_true_OrNotUse_false_anaestheticInArgument2(), then I don''t have enough information to fully identify what it does.

quote: Actually, the architecture makes sense, but the protocol needs help. X transmits ever single graphical operation over the network; a higher-level protocol that first described high level objects (only once) and subsequently transmitted events modifying the states of those objects would be nice.
Not sure, but this sounds like Corba to me (upon which Bonobo and thus Gnome are built).

quote: I agree. What would be nice - and note that I keep saying "nice", because I understand that people are free to do whatever they want - would be to see GUIs that interoperated completely and could assume a user-specified "native" look and feel, so your KDE and GNOME apps could look just like your Window Maker apps, if that was your preference.
IIRC, there are no specific Window Maker apps, only X apps controlled by window maker (and thus given titlebars and such by windowmaker itself). So to make KDE and Gnome look like apps running under Window Maker, you''d need a windowmaker theme for Gtk and Qt (plus whatever window manager you actually use). There may be ways of sharing this information with KDE and Gnome from Window Maker itself, but it''s probably going to be a voluntary thing.

Once given the description, however, knife() would be sufficient to remember.
quote: It''s called context switching.

What does context switching have to do with it?? Noone is suggesting to run the drivers in different processes. You just link to them dynamically instead of statically, that''s all. There is absolutely no context switching involved.


The kernel has had this capability since 2.0, but due to GCC''s architecture, the ABI has historically been a moving target. This should have calmed down now.

And if you''re not talking about switching processes, then you run the risk of destabilizing a system due to buggy drivers (i.e. drivers that edit memory beyond what they''ve allocated), leading to the same problems as Windows. For this reason, kernel developers would like to incorporate all the drivers into the kernel tree. If the code is GPL''d, kernel developers can examine the drivers to ensure that they have no such aberrant behavior.
---New infokeeps brain running;must gas up!
Advertisement
quote: The only problem with usability in X right now is that you can start it without Gnome or KDE.

And, of course, that no matter what the user chooses, there are often about 3 or so different looks for X apps, depending upon whether they''re based upon Gnome, KDE, etc. It''s just plain ugly.

quote: I don''t know what you mean by "architecturally ugly and unnecessarily complex", but you''re probably wrong.

I like your arrogance.
Well, a good example of unnecessary complexity is X''s handling of color. Most other examples come from the excessive number of times that the programmer can''t make assumptions, forcing him to account for a dizzying array of cases that just aren''t necessary with other windowing systems.

quote: No, it''s not important to provide users with a consistent interface. It''s important to provide users with whatever GUI they want.

This, of course, is purely a matter of opinion. If you think like Apple, then consistency is of higher priority than, say, Unix people. I happen to believe that there is logic in the assertion that consistency makes new software easier to use. I believe that there are papers that prove this, and probably others that disprove it. Of course, there are people and papers that say that 16.8 million colors are overkill for the human eye--which is rubbish, otherwise Pixar wouldn''t use higher color depths for rendering their films.

quote: If by "modern" you mean crappy, then you would be correct. The NT kernel pays lip service to modern microkernel architecture, but doesn''t even come close to QNX or the Hurd.
quote:
I never claimed that NT was the end-all of kernel design. I said that it is more "modern" (and by this I mean architecturally superior) than the typical Unix kernel. This includes most Linux distributions. QNX is not typical.

quote: Fork is perfectly descriptive of what''s happening.

Well, fork is one of the few functions that is also a full English word. I think it''s simply inexcusable to have to live with a system that doesn''t even have words spelled out. The reasons for such tersity no longer exist, after all.

quote: X is bad because people with experience with windows like to complain about the absurdity of a vital system being run through the network (In linux, the loopback (127.0.0.1) is always on.

No, people dislike X because it''s ugly, and not just superficially.
the gtk/qt thing won''t be resolved ever, really. but themes that make each look the same and similiar controls in each will probably come to pass.

the kde/gnome thing won''t resolve, either. gnome will probably standardize on a WM, however...... (hopefully)

X is stagnant, but functional. a lot of the wild and crazy ideas that people come up with for how to "do it better" are complete crap. if you want to prove me wrong, implement it. make your improved server, make an X compatibility server, and port qt and gtk to your system.

compiling drivers into the kernel is not essential. most things can be compiled as modules, these days.

and the suggestion that the linux KERNEL people write an API like Win32''s is laughable. they''re writing a kernel, not the damn GUI.

just a few random tidbits
AIX is stable, elegant, aesthetic, functional, efficient, and expensive. IRIX is also, except its ugly (IMHO). Solaris is the above, except the x86 version is rather slow. Solaris offers real-time gaurantees and IRIX offers hard-time gaurantees.

For something different, there's QNX, which now has a non-commercial flavor with v6.2. Once-upon-a-time it was Qunix, as-in Quick Unix, much like DOS (that was once called QDOS, or Quick & dirty OS). See also OpenQNX

[edited by - Magmai Kai Holmlor on July 11, 2003 1:17:12 PM]
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
quote: Original post by C-Junkie
A lot of the wild and crazy ideas that people come up with for how to "do it better" are complete crap. if you want to prove me wrong, implement it. make your improved server, make an X compatibility server, and port qt and gtk to your system.

I''d love to. In fact, I might make it my project (possibly commercial) in a while. The problem is that it''s an enormous amount of work due to the fact that linux''s graphics architecture is crap. The X server (or any other graphics server) is responsible for accessing low level hardware (which should really be the job of Hardware Abstraction Layer), drawing shapes and text (which should be the job of GDI) and providing a GUI API and a sample implementatin. I''d love to work on a consistant GUI API, I''d even port it to X but I am not about to sink into the enormous job of developing a HAL and a GDI. As much as I would be interesting in implementing these features, this is a job for at least 10 people and I do not have such a team at my disposal.

I''m also not sure whether this project would be commercially viable (I have to research this some more). Who''s going to use (or better yet pay) for a server that has no application base? Of course there''s the X port, but then what''s the point? Why not run an X server in the first place? How am I going to convince KDE and Gnome teams to drop Qt and GTK and use my API? It would be interesting as a hobby project, but commercially a superior solution to X would probably fail.
Advertisement
quote: Original post by Oluseyi
I''ve pretty much decided on OS X Panther as my next platform (which implies purchasing a Mac; I''m holding off until Powerbook G5s are announced).


Get comfortable. The G5 processor right now is nowhere near ready to be stuck into a laptop. Even rumors don''t place the G5 Powerbook until mid-2004 pretty much at the earliest.

I''m getting a G4 Powerbook in a few weeks. I''m not waiting.

quote: Original post by Legion CSUF
Get comfortable. The G5 processor right now is nowhere near ready to be stuck into a laptop. Even rumors don''t place the G5 Powerbook until mid-2004 pretty much at the earliest.

I''m getting a G4 Powerbook in a few weeks. I''m not waiting.
Good point. I was thinking about getting the dual-G5 as well, so I might spring for that now and get a PC laptop to tide me until mid-2004.

Of course, by then it might not be such a hot product. Maybe I''ll get a 15" Powerbook G4 too...
quote: Original post by CoffeeMug
I''m also not sure whether this project would be commercially viable (I have to research this some more). Who''s going to use (or better yet pay) for a server that has no application base?
Here''s how you''d do it:
  1. Write the Hardware Abstraction Layer first as a collation point on top of X. It aggregates smaller X function calls (intercepting xlib on the way to the client) into larger event notifications or something similar.

  2. Write the GDI on top of this HAL, and make the GDI dynamic. ie, don''t require binary code to create a GUI; mark-up or script should do it (start with XHTML/DHTML and refine from there). This facilitates rapid application development and porting.

  3. Continuously re-implement the HAL as native code over time. You can make it an Open Source project to take advantage of your technically adept users. Choose your license carefully to be commerce-friendly and give you as much control as possible.

  4. Make your own tight, integrated Linux distro that exploits this new environment to its fullest potential. You''ll need some killer apps or killer approaches to give this the momentum to knock out the competition. Talk to established brand names either to co-brand or to license technology entirely to them, creating a cohesive environment.

  5. Approach abstraction toolkit authors and work with them to help their toolkits turn out native-comparable applications (aesthetically and in terms of performance). Work directly with Qt, Gtk[+], wxWindows and other authors/groups. Properly done, applications that depend on these libraries will port to your environment with a simple recompile - very compelling.

  6. Publish loads of documentation, examples, style guides, user interface guidelines and references a la Apple Developer Connection to promote good code. Because your framework allows for faster development of complex UIs without performance loss (assuming it does, of course) without limiting end user or developer options (careful license choice), there''s good reason to use it and no reason not to.

  7. Sit back and become a self-effacing "Elder" of the "Linux community" a la Linus Torvalds, Larry Wall and Eric Raymond. Do NOT follow the footsteps of RMS.
quote: Original post by Oluseyi
Of course, by then it might not be such a hot product. Maybe I''ll get a 15" Powerbook G4 too...


Heh. There ARE rumors of the 15" Powerbook being updated soon. People expected it to happen a couple weeks ago, even. The update WON''T be a G5 (save for some stunning miracle - never rule anything out!), but it would be an update to the system.

I wish Apple would just TALK TO US. I''ve never owned an Apple before, but my best friend has for many years, and I''ve used his systems. The Powerbook will be my first Apple. I must say that I don''t like the tight-lipped approach to doling out info that Apple has. I wish they''d just tell us in advance when products will be coming. Then maybe people wouldn''t be so dang gun-shy when it comes to pulling the trigger on a purchase.

That''s one thing you don''t have to worry about in the PC world. Product updates are pretty regular, but small and incremental. You know well in advance when a new CPU is coming into the market and can easily predict when products that have them will hit the shelves.

Of course, if you have my girlfriend''s luck, your new laptop PC blue-screens and crashes regularly after purchase, and the problem is only alleviated after the boyfriend (me) updates the BIOS and video drivers many times.

We''re switching her over to an iBook soon.

This topic is closed to new replies.

Advertisement