And how about a decent package manager? Yesterday I saw an attempted installation of iWork on a friend's machine, and it kept telling him that it was already installed and refused to install one off the CD. He was certain that it was not installed.
I would just ssh in, and fix things myself. Over the command line. I believe quicken works with wine. Remote admin (even over slow connection): one of the hidden beauties of linux.
And if you say that grandma does not have an internet connection, I will say that you are just a greedy bastard. Go buy your grandma an internet connection, and forward her a bunch of pictures. As a bonus she will actually know someone cares.
there are two different modes: one that writes to disk and one that sleeps while keeping RAM powered.
Both typically require ACPI/APM bios calls, which are incredibly poorly implemented. swsusp2 is a linux suspend that actually implements a bios write to disk without any need for bios support -- making it a reliable option.
ACPI sleep is still available, but does not work on all motherboards.
I doubt this will be a problem for Macs, since they standardize on a single mobo, for which they will know the specs.
Actually, all that has to happen is for the kernel to support mac hardware (slightly different BIOS/firmware calls). The general architecture, such as bit order, will now be compatable, and since programs do not touch any hardware devices themselves, they will likely be binary compatable. Thus any IA32 linux program that does not have kernel modules should be able to run on a Mac.
Although your post uses the correct grammar, the idea has been explored multiple times. You should revise your thesis, and post it again in the next thread.
Exactly my feelings for the "linux not ready for the desktop" response.
My last experience with XP has been buying a new sound card because creative ditched the driver, saying there is a generic one for XP. There was one, but microphone and digital out did not work. Solution: buy a new sound card. In linux, there is at least an option to tinker. (not that I had to, sound blaster pci 512 is nicely supported by linux.)
I would not be surprized if jwz is a bit hot-tempered, but I do think that the issue he talks about is real. A lot of sound cards will not properly without major hacks. It is hard to get an arbitrary system to run linux properly.
But it is definitely easier to get linux working than it is get windows working when you lost the driver.
Except fixes to something that is in vanilla branch propagate quite fast back to vanilla. If someone fixed ACPI in a way that was reliable, the vanilla kernel would have it.
Slow Down Cowboy!
Slashdot requires you to wait 2 minutes between each successful posting of a comment to allow everyone a fair chance at posting a comment.
It's been 1 minute since you last successfully posted a comment
Chances are, you're behind a firewall or proxy, or clicked the Back button to accidentally reuse a form. Please try again. If the problem persists, and all other options have been tried, contact the site administrator.
Stupid slashdot. Would not one minute be enough for me not to be a bot.
I do believe I have seen the claim that OpenFirmware is going away on some tech sites. I do not know the details, nor have I spoken with any Apple engineers. So my guess is as good as mine.
As far as Apple's engineering, I think they are more of the "it must look good" crowd. It does not surprise me the least that Jobs would be dissatisfied with the look of traces on memory, and rearrange them, even if it screws up the memory controller delay. Their equipment IMO has always been not that great. Lots of physical weaknesses.
I doubt that they want to go around changing the design of the hardware too much. If they do, they will not be able to get enough of it in production to meet the initial demand. My guess...they will put a different bios, and not change much of architecture. After all, any big clean up, will require clean up on the chips as well (16-bit real mode start-up, etc)
Mozilla has used fontconfig for years, ever since the GTK 2 port became the default.
Interesting. Mozilla and firefox do not see some fonts that gucharmap sees. Mine do have antialiasing, but not on all machines. I am not sure why.
I don't understand this. Virtually all modern Linux distributions have anti-aliasing setup out-of-the-box, with no need for additional configuration whatsoever. They do, but you have to configure it separately for GTK and for QT. If you are not running Gnome or KDE it can be quite an experience to figure out where those settings live.
And I am not stuck in the past. I am aware of the font system. I am also aware of the fact that it is new, and has gone through many changes in the last couple of years. xft, xfs, xtt, other junk. All these components are present on a modern system, causing a configuration nightmare. While all the new apps are using fontconfig, there questions of where you can configure the system.
For example do xset fp commands actually change anything? Where do I set the path directories? Do I need to run xfs when using X over the network?
Of course once everyone assumes fontconfig is the ONLY system, the confusion will go away, but for now it is still around.
MS Office 97 (I have not used later versions) used to add two things to startup. One of the was findfast.exe which is similar to updatedb in linux, and the other one was OSA.exe, which actually stands for Office Startup Application. It used up about 10Mb of memory back then, and it was a dll preloader. I think it handled context menus for "create new text document" and a systray icon as well, but I do not remember for sure.
I do not think it is due to laziness. I will guess this is due to lack of specs for the cards. There are sound cards that have hardware mixing in the drivers. All the soundcards I have had run hardware mixing (even my laptop, which has to use an outdated OSS trident driver (alsa ALI driver does not work for that model) that halts the computer for 10 seconds on init).
There is xterm, which is not necesserily fontconfig. Emacs, but I am not going there. Some apps see certain fonts, others do not, do not know why. Mozilla is a big violator in the last one.
There are many apps that are not using fontconfig.
But that is not the issue that I am referring to. My issue comes with font management itself. I still have no clue which command needs to run to properly make all the fonts work. There is something called x font server, there is xset fp rehash, there is fonts.conf. Some fonts (true types) are managed by one thing, others by another.
Then there is font selection. Some apps work with a single font, and force it. (I think KDE does this) This results in text written in other languages to not appear when using certain fonts. There is Pango which allows fonts to be mixed and matched, even when you specify a certain one, etc.
There is also not a standard way to force the use of antialiasing in some apps.
And another thing, I still have not been able to find a good font enumerator/chooser in linux. I guess gucharmap comes close.
Except controllers will need to talk to the chips and trigger interrupt lines, etc.
Add to that that Apple is abandoning OpenFirmware, and I am guessing that they are just going to go with plain x86 motherboard, probably with a slightly modified bios.
Well, the funny part is that I think they will go the other route. They will add something that OSX will not boot without. They will not fix anything, as fixing things takes money.
But if they I will be glad. Then I will start running linux on the fixed motherboards.
You are assuming fonts are a solved problem. They are not. And many apps try to use very different systems to get to the fonts.
Plus fonts are in now way done evolving. I am still waiting for fonts where letters appear as a burning flame, or made out of glass so that they refract things underneath them.
From day dot, the OS was designed to insure that the number of cycles needed to shove the bytes through to their audio chips would be there. They made sure to carry that through when they went to Unix. Huh? There should be no need to have cycles to pump audio. This is why the buffer is there. You fill it, and it plays. Even if your program is not currently runnable. This is why most sound cards have something like 64 hardware buffers, 4 seconds each, and the driver knows how to fill them up, one per request. This means that on these cards, a program needs to be not switched to for four seconds (or not run long enough for the buffer to fill), before the audio becomes choppy.
Okay Apple came up with a chipset that includes something like DMA for audio and they can handle variable delays of feeding audio while the output is smooth as silk. Its got a variable length buffer that doesn't depend on getting fed bytes whenever the CPU can get around to it. Huh? Are you saying there is a kernel task to pump audio into the buffer. Or are you saying that dumping the pcm into the sound buffer from memory is DMAd that makes a Mac that special. Here is a clue: I remeber DMA being in sound cards in 1993. You had to manually configure it for SB16 cards. And no, unless you are playing raw PCM sound from hard drives, you still need the CPU to decompress it, and therefore you need the CPU to at least issue the DMA instruction. Which means that if your program did not run in the time it takes to empty the buffer, it will skip. That's what is needed. It CAN'T be done without it. Unless Linux can come up with the Audio hardware, it's never going to be anything more than a hack. It is already done. Many soundcards do not have working drivers though. Get a real soundcard and then compare.
Its just that the __purpose__ of an OS dictates that somethings run more optimallly (you don't have streaming of dirty great big blocks of bytes when you need instant interruptability.) Huh? All hardware implementations have an instant, stop playing instruction. If the sound does not stop instantly, then that means your driver sucks, or you are using a sound server. In the case of the sound server, you should not use it unless you need networked sound. There is no reason for you you to use a high latency software mixer.
I listen to iTunes on my iMac G5, my TiTanium G4 laptop, my wife's purple iMac G3 and the performance is always flawless. Just run a process that uses a 100% cpu time, without renicing. Then run a process that reads random bytes from the hard drive. The more seeks the better. Then run your player. I bet it will not even be able to fill the sound cards buffer, unless OSX also gives the player real time priority (includion IO priiority).
My Linux box has the speakers turned off because it sounds like shit (the selection is reminiscent of fart noises) even when it's working. Sounds like a speaker problem to me. Although a really crappy soundcard can do that to (especially if you crank up the volume). Compared to a proper audio system, apple sound like shit too. Even with their "we look better than we sound" Harmon-Kadron speakers.
My SysAdmin friend is having 'issues' with the sound drivers. I tell him not to bother but he wants to 'get it working' on the box. Not a bad advice. I would recommend getting a more supported sound card. Live! is not a good sound card, but it is very well supported, never ever did I have a problem with it. Most distros autodetect it, and works perfectly, even with hardware mixing.
The selection, the selections and the selection of the selection are so poor that I just prefer to shut the audio off. Alright. This part I really do not get. Either you should get a better collection of music, or I may have been trolled.
I am not the same poster as GP, but your claims about Ubuntu are impossible. How does a distro fix something that is not fixed in any version of the kernel.
Power management This will work perfectly if you have an APM machine. If you have an ACPI machine, you get an implementation that works from what I know on half of the machines. The specs simply do not exist, and there are tons of broken implementations out there.
wireless This is perhaps the worst arena. Sure most chipsets work...but not Broadcom, which represents 90% of PCI 802.11B cards. And for the 802.11g, the only chipset that is used in US (prism54), has an excellent driver, if the people who sold the cards did not tinker with hardware and reimplement proprietary versions of firmware loading, and moving the code to the drivers instead of the chips.
And Ubuntu's ndiswrapper is not a solution. It sucks, and does not even work on non x86 machines.
sound My general experience here tells me that half the cards have absolutely no issues with sound. If you have a problem with sound, you simply did not research your purchase. You are an idiot, or you just promoted yourself to driver developer and dmix tinkerer.
suspend and hibernate modes see power management. Interestingly enough, IMO linux has better power management than windows. In windows, if your bios does not have suspend, you can not suspend. In linux swsusp is actually a software implementation, that also uses your swap partition, so you do not have to waste space on a special suspend partition that your bios understands.
detected widescreen res Luckily the video resolution reporting has been pretty well standardized. Plus most video cards have drivers that implement at least the video modes and the frame buffer, which means they actually work.
As far as media, I think that linux actually beats Windows and OSX. In windows it is amazing that you have to install a specific codec pack that installs a hundred codecs, and a bunch of tools, such was reclockers(wtf?) just so WMP can play a DIVX/XVID. And then you end up constantly switching the codecs manually, because there are two implementations, and one does not work for your file. A lot of people in windows world end up using vlc. Same with Mac. Most people on anime forums (which deal with exotic and complex media) tell people to just ditch the POS that is quicktime, and get vlc. Quicktime can not handle a lot of the formats that are out there, plus you have to get the premium version to enable fullscreen legally. (This is the reason why I think apple people are on crack.)
So I definitely agree with you. Linux is probably the most usable OS, with the least headaches, if you research it. Ubuntu has a lot of proper defaults. Personally I have run Gentoo for about 3 years now, and I am also extremely satisfied (although, I have done a lot more tinkering I bet).
Except escape codes are a part of the specification. The funny part is that they are the only part of the specification that has really survived.
Take a look at the ASCII 0-31. How many of them are useful nowdays. Those were the core....and someone was smart enough to put in a special extender code (escape, 27). So to switch the color, you just escape it.
The other alternative would involve shells having an api into the terminal. This would be nice...but there is no difference, as api would have to be serialized into the device file. Thus everything would be escaped. (or worse, api would be based on top of ioctl, which are used for termios (stty) changes.
Thus what happens is that another specification is written on top the extension system, which explains what can be provided. There are many systems where this unstructured approach is used with the hope that a higher-level structure would be imposed. For example, Apple Randezvous is completely unstructured. Basically it is a bunch of devices broadcasting string to one another, hoping that the other devices will understand what to do with them. There is no set specification for the information passed.
As for the extension, I have absolutely no clue why most X terminals prescribe themselves to "xterm". One example of one that does not is eterm, but I have no clue what functionality that provides. All of these non-standard things are described in termcap, which allows different terminals to come up with their own escape sequences, and have a way for all shells to send the correct escapes to it.
I'd prefer to see a solution where X events and escape codes both are equal frontends to some internal mechanism instead. Escape codes are a sort-of-natural extension when you're dealing with physical terminals and printers, but just feel unnatural in a graphical environment. Again, IMHO.
The issue here is that you are going to be breaking the definition of the shell. Shell by nature can only talk to its tty device, which is conveniently attached to the stdin and stdout. It does not connect to the above X, nor can it as it does not even have a handle to its own window.
So if these things were to be used by the shell, they need to be passed by escape codes. Think of escape codes as serialized objects, and now any information can easily be passed to the shell.
I think escape codes are not a limitation at all....just the fact that defining new features is an uncertain process.
How about focus follows mouse?
And how about a decent package manager? Yesterday I saw an attempted installation of iWork on a friend's machine, and it kept telling him that it was already installed and refused to install one off the CD. He was certain that it was not installed.
Never, if the Jesux people can do something about it.
I blame grandma for having an idiot grandson.
I would just ssh in, and fix things myself. Over the command line. I believe quicken works with wine. Remote admin (even over slow connection): one of the hidden beauties of linux.
And if you say that grandma does not have an internet connection, I will say that you are just a greedy bastard. Go buy your grandma an internet connection, and forward her a bunch of pictures. As a bonus she will actually know someone cares.
there are two different modes: one that writes to disk and one that sleeps while keeping RAM powered.
Both typically require ACPI/APM bios calls, which are incredibly poorly implemented. swsusp2 is a linux suspend that actually implements a bios write to disk without any need for bios support -- making it a reliable option.
ACPI sleep is still available, but does not work on all motherboards.
I doubt this will be a problem for Macs, since they standardize on a single mobo, for which they will know the specs.
Rob????
You are saying it like employees are entitled to the money no matter what. Guess what...they are not.
Actually, all that has to happen is for the kernel to support mac hardware (slightly different BIOS/firmware calls). The general architecture, such as bit order, will now be compatable, and since programs do not touch any hardware devices themselves, they will likely be binary compatable. Thus any IA32 linux program that does not have kernel modules should be able to run on a Mac.
Although your post uses the correct grammar, the idea has been explored multiple times. You should revise your thesis, and post it again in the next thread.
Exactly my feelings for the "linux not ready for the desktop" response.
My last experience with XP has been buying a new sound card because creative ditched the driver, saying there is a generic one for XP. There was one, but microphone and digital out did not work. Solution: buy a new sound card. In linux, there is at least an option to tinker. (not that I had to, sound blaster pci 512 is nicely supported by linux.)
You mean xterm -A fontname of course. Yeah, it is pretty crappy. It also does not have proper pango/i18n support, which makes it fairly useless to me.
in typical jwz fashion he flies off in a huff
I would not be surprized if jwz is a bit hot-tempered, but I do think that the issue he talks about is real. A lot of sound cards will not properly without major hacks. It is hard to get an arbitrary system to run linux properly.
But it is definitely easier to get linux working than it is get windows working when you lost the driver.
Except fixes to something that is in vanilla branch propagate quite fast back to vanilla. If someone fixed ACPI in a way that was reliable, the vanilla kernel would have it.
Slow Down Cowboy!
Slashdot requires you to wait 2 minutes between each successful posting of a comment to allow everyone a fair chance at posting a comment.
It's been 1 minute since you last successfully posted a comment
Chances are, you're behind a firewall or proxy, or clicked the Back button to accidentally reuse a form. Please try again. If the problem persists, and all other options have been tried, contact the site administrator.
Stupid slashdot. Would not one minute be enough for me not to be a bot.
I do believe I have seen the claim that OpenFirmware is going away on some tech sites. I do not know the details, nor have I spoken with any Apple engineers. So my guess is as good as mine.
As far as Apple's engineering, I think they are more of the "it must look good" crowd. It does not surprise me the least that Jobs would be dissatisfied with the look of traces on memory, and rearrange them, even if it screws up the memory controller delay. Their equipment IMO has always been not that great. Lots of physical weaknesses.
I doubt that they want to go around changing the design of the hardware too much. If they do, they will not be able to get enough of it in production to meet the initial demand. My guess...they will put a different bios, and not change much of architecture. After all, any big clean up, will require clean up on the chips as well (16-bit real mode start-up, etc)
Mozilla has used fontconfig for years, ever since the GTK 2 port became the default.
Interesting. Mozilla and firefox do not see some fonts that gucharmap sees. Mine do have antialiasing, but not on all machines. I am not sure why.
I don't understand this. Virtually all modern Linux distributions have anti-aliasing setup out-of-the-box, with no need for additional configuration whatsoever.
They do, but you have to configure it separately for GTK and for QT. If you are not running Gnome or KDE it can be quite an experience to figure out where those settings live.
And I am not stuck in the past. I am aware of the font system. I am also aware of the fact that it is new, and has gone through many changes in the last couple of years. xft, xfs, xtt, other junk. All these components are present on a modern system, causing a configuration nightmare. While all the new apps are using fontconfig, there questions of where you can configure the system.
For example do xset fp commands actually change anything? Where do I set the path directories? Do I need to run xfs when using X over the network?
Of course once everyone assumes fontconfig is the ONLY system, the confusion will go away, but for now it is still around.
MS Office 97 (I have not used later versions) used to add two things to startup. One of the was findfast.exe which is similar to updatedb in linux, and the other one was OSA.exe, which actually stands for Office Startup Application. It used up about 10Mb of memory back then, and it was a dll preloader. I think it handled context menus for "create new text document" and a systray icon as well, but I do not remember for sure.
The blame here lies squarely with driver writers
I do not think it is due to laziness. I will guess this is due to lack of specs for the cards. There are sound cards that have hardware mixing in the drivers. All the soundcards I have had run hardware mixing (even my laptop, which has to use an outdated OSS trident driver (alsa ALI driver does not work for that model) that halts the computer for 10 seconds on init).
There is xterm, which is not necesserily fontconfig. Emacs, but I am not going there. Some apps see certain fonts, others do not, do not know why. Mozilla is a big violator in the last one.
There are many apps that are not using fontconfig.
But that is not the issue that I am referring to. My issue comes with font management itself. I still have no clue which command needs to run to properly make all the fonts work. There is something called x font server, there is xset fp rehash, there is fonts.conf. Some fonts (true types) are managed by one thing, others by another.
Then there is font selection. Some apps work with a single font, and force it. (I think KDE does this) This results in text written in other languages to not appear when using certain fonts. There is Pango which allows fonts to be mixed and matched, even when you specify a certain one, etc.
There is also not a standard way to force the use of antialiasing in some apps.
And another thing, I still have not been able to find a good font enumerator/chooser in linux. I guess gucharmap comes close.
Except controllers will need to talk to the chips and trigger interrupt lines, etc.
Add to that that Apple is abandoning OpenFirmware, and I am guessing that they are just going to go with plain x86 motherboard, probably with a slightly modified bios.
Well, the funny part is that I think they will go the other route. They will add something that OSX will not boot without. They will not fix anything, as fixing things takes money.
But if they I will be glad. Then I will start running linux on the fixed motherboards.
You are assuming fonts are a solved problem. They are not. And many apps try to use very different systems to get to the fonts.
Plus fonts are in now way done evolving. I am still waiting for fonts where letters appear as a burning flame, or made out of glass so that they refract things underneath them.
Why not just switch to a card that has hardware mixing?
What hardware do you have?
From day dot, the OS was designed to insure that the number of cycles needed to shove the bytes through to their audio chips would be there. They made sure to carry that through when they went to Unix.
Huh? There should be no need to have cycles to pump audio. This is why the buffer is there. You fill it, and it plays. Even if your program is not currently runnable. This is why most sound cards have something like 64 hardware buffers, 4 seconds each, and the driver knows how to fill them up, one per request. This means that on these cards, a program needs to be not switched to for four seconds (or not run long enough for the buffer to fill), before the audio becomes choppy.
Okay Apple came up with a chipset that includes something like DMA for audio and they can handle variable delays of feeding audio while the output is smooth as silk. Its got a variable length buffer that doesn't depend on getting fed bytes whenever the CPU can get around to it.
Huh? Are you saying there is a kernel task to pump audio into the buffer. Or are you saying that dumping the pcm into the sound buffer from memory is DMAd that makes a Mac that special. Here is a clue: I remeber DMA being in sound cards in 1993. You had to manually configure it for SB16 cards. And no, unless you are playing raw PCM sound from hard drives, you still need the CPU to decompress it, and therefore you need the CPU to at least issue the DMA instruction. Which means that if your program did not run in the time it takes to empty the buffer, it will skip.
That's what is needed. It CAN'T be done without it. Unless Linux can come up with the Audio hardware, it's never going to be anything more than a hack.
It is already done. Many soundcards do not have working drivers though. Get a real soundcard and then compare.
Its just that the __purpose__ of an OS dictates that somethings run more optimallly (you don't have streaming of dirty great big blocks of bytes when you need instant interruptability.)
Huh? All hardware implementations have an instant, stop playing instruction. If the sound does not stop instantly, then that means your driver sucks, or you are using a sound server. In the case of the sound server, you should not use it unless you need networked sound. There is no reason for you you to use a high latency software mixer.
I listen to iTunes on my iMac G5, my TiTanium G4 laptop, my wife's purple iMac G3 and the performance is always flawless.
Just run a process that uses a 100% cpu time, without renicing. Then run a process that reads random bytes from the hard drive. The more seeks the better. Then run your player. I bet it will not even be able to fill the sound cards buffer, unless OSX also gives the player real time priority (includion IO priiority).
My Linux box has the speakers turned off because it sounds like shit (the selection is reminiscent of fart noises) even when it's working.
Sounds like a speaker problem to me. Although a really crappy soundcard can do that to (especially if you crank up the volume). Compared to a proper audio system, apple sound like shit too. Even with their "we look better than we sound" Harmon-Kadron speakers.
My SysAdmin friend is having 'issues' with the sound drivers. I tell him not to bother but he wants to 'get it working' on the box.
Not a bad advice. I would recommend getting a more supported sound card. Live! is not a good sound card, but it is very well supported, never ever did I have a problem with it. Most distros autodetect it, and works perfectly, even with hardware mixing.
The selection, the selections and the selection of the selection are so poor that I just prefer to shut the audio off.
Alright. This part I really do not get. Either you should get a better collection of music, or I may have been trolled.
I am not the same poster as GP, but your claims about Ubuntu are impossible. How does a distro fix something that is not fixed in any version of the kernel.
Power management
This will work perfectly if you have an APM machine. If you have an ACPI machine, you get an implementation that works from what I know on half of the machines. The specs simply do not exist, and there are tons of broken implementations out there.
wireless
This is perhaps the worst arena. Sure most chipsets work...but not Broadcom, which represents 90% of PCI 802.11B cards. And for the 802.11g, the only chipset that is used in US (prism54), has an excellent driver, if the people who sold the cards did not tinker with hardware and reimplement proprietary versions of firmware loading, and moving the code to the drivers instead of the chips.
And Ubuntu's ndiswrapper is not a solution. It sucks, and does not even work on non x86 machines.
sound
My general experience here tells me that half the cards have absolutely no issues with sound. If you have a problem with sound, you simply did not research your purchase. You are an idiot, or you just promoted yourself to driver developer and dmix tinkerer.
suspend and hibernate modes
see power management. Interestingly enough, IMO linux has better power management than windows. In windows, if your bios does not have suspend, you can not suspend. In linux swsusp is actually a software implementation, that also uses your swap partition, so you do not have to waste space on a special suspend partition that your bios understands.
detected widescreen res
Luckily the video resolution reporting has been pretty well standardized. Plus most video cards have drivers that implement at least the video modes and the frame buffer, which means they actually work.
As far as media, I think that linux actually beats Windows and OSX. In windows it is amazing that you have to install a specific codec pack that installs a hundred codecs, and a bunch of tools, such was reclockers(wtf?) just so WMP can play a DIVX/XVID. And then you end up constantly switching the codecs manually, because there are two implementations, and one does not work for your file. A lot of people in windows world end up using vlc. Same with Mac. Most people on anime forums (which deal with exotic and complex media) tell people to just ditch the POS that is quicktime, and get vlc. Quicktime can not handle a lot of the formats that are out there, plus you have to get the premium version to enable fullscreen legally. (This is the reason why I think apple people are on crack.)
So I definitely agree with you. Linux is probably the most usable OS, with the least headaches, if you research it. Ubuntu has a lot of proper defaults. Personally I have run Gentoo for about 3 years now, and I am also extremely satisfied (although, I have done a lot more tinkering I bet).
Except escape codes are a part of the specification. The funny part is that they are the only part of the specification that has really survived.
Take a look at the ASCII 0-31. How many of them are useful nowdays. Those were the core....and someone was smart enough to put in a special extender code (escape, 27). So to switch the color, you just escape it.
The other alternative would involve shells having an api into the terminal. This would be nice...but there is no difference, as api would have to be serialized into the device file. Thus everything would be escaped. (or worse, api would be based on top of ioctl, which are used for termios (stty) changes.
Thus what happens is that another specification is written on top the extension system, which explains what can be provided. There are many systems where this unstructured approach is used with the hope that a higher-level structure would be imposed. For example, Apple Randezvous is completely unstructured. Basically it is a bunch of devices broadcasting string to one another, hoping that the other devices will understand what to do with them. There is no set specification for the information passed.
As for the extension, I have absolutely no clue why most X terminals prescribe themselves to "xterm". One example of one that does not is eterm, but I have no clue what functionality that provides. All of these non-standard things are described in termcap, which allows different terminals to come up with their own escape sequences, and have a way for all shells to send the correct escapes to it.
I'd prefer to see a solution where X events and escape codes both are equal frontends to some internal mechanism instead. Escape codes are a sort-of-natural extension when you're dealing with physical terminals and printers, but just feel unnatural in a graphical environment. Again, IMHO.
The issue here is that you are going to be breaking the definition of the shell. Shell by nature can only talk to its tty device, which is conveniently attached to the stdin and stdout. It does not connect to the above X, nor can it as it does not even have a handle to its own window.
So if these things were to be used by the shell, they need to be passed by escape codes. Think of escape codes as serialized objects, and now any information can easily be passed to the shell.
I think escape codes are not a limitation at all....just the fact that defining new features is an uncertain process.
This works well, but it requires now that only a single object of a single type be output. This is too limiting for most programs.