The Next XFree86 Wars: XFT2 vs STSF
NoSun writes "Sun's latest project is to create a font library for XFree86, named Stsf, that would replace Fontconfig and Xft2. But the big question is: Does the world need yet another X font library that would create more incompatibility and fragmentation? Well known Gnome and GTK+ developers are against this (yet another) X font library which just re-invents the wheel one more time with the result of slowing down KDE and Gnome in the desktop race. "
The font rendering system in Windows is still vastly superior to any free implementation. Fragmentation will only further this problem.
Competition is a good thing, but in this case collaboration is even better. The more situations we have like this, the longer it will take for Linux to be ready for the desktop.
Have you been stalked by Seth today?
Personally, I think the biggest problem other than ugly looking fonts in X is the fact that installing fonts requires one to restart X. Could someone explain to me why this necessary and why other X fonts servers haven't fixed this yet?
"Quoting famous computer scientists out of context is the root of all evil (or at least most of it) in programming." - K
Is it just me, or is it somewhat amusing that the authors of a bloated CORBA graphics framework like GNOME are complaining about re-inventing the wheel or performance sacrifices?
Wasn't the GNOME project the outraged response of the GNU crowd to KDE?
The one thing that all large open-source projects have in common is a bunch of prima donnas running the show.
Conformity is the jailer of freedom and enemy of growth. -JFK
One of the things that's always struck me about X is that the type rendering is poor, compared to the state-of-the-art rendering on contemporary commercial OSes. This has been true, in my personal comparisons, over many years. (I.e., as X advances, so does the state-of-the-art, making relative progress nil.)
I remember when I worked at Be, we licensed a renderer from Bitstream, specifically because writing a really good type renderer is exceptionally hard.
Perhaps this is an area where Open Source nees a leg up from a well-funded commercial outfit, like Sun. Can anyone comment on the actual quality of this new library, relative to existing solutions?
Is this competition the push that makes everything better? Imagine where KDE and Gnome would be today if the other wasn't around? Imagine all the features that wouldn't be in your favorite Linux or *BSD distro if there was no competition.
I am all for this. If Sun identified and added features that were missing from Xft2, that would be a benefit for all.
-- Bryan
Why don't/won't they support the XRender extension?
Are the features available from STSF (which is under the BSD license) sufficiently better than what is available to warrant the work necessary for making the changeover?
- If Sun's project is vastly inferior, no one will use it and it won't cause "fragmentation".
- If Sun's project is vastly *superior*, then the people who switch to it will enjoy a great implementation. You shouldn't force Sun to collaborate in this case. Mozart's compositions wouldn't be as good if he had been forced to "collaborate" with the inferior composers of his time.
- It's only if Sun's project is "comparable" to previous projects that it will cause fragmentation.
Change for the sake of change in a stupid thing, if it improved the X Windows System I'm all for it.
On the other hand this infighting is hurting all the *NIXs. If the development of the GUI system is stopped because of this stupuid crap we will never see commercail quality entertinament titles relased on the *NIXs. and it wouldn't matter how nice KDE/Gnome look if you can't bring in the gamers tio the desktop market Linux people are looking to take from Microsoft.
Maybe they should rename it to stfu...
Baa--dum! Thank you.. I'll be here all weekend.
Possibly competition will help both project move along faster.
...I would welcome some kind of change.
As someone new to the internals of X (but not Unix) it took me the better part of a day to sifting through out-dated documentation and installing font software and scripts for previous versions of X and hacking out the bugs, just to get the CorelDraw fonts I paid for to be available in the GIMP. In hindsight I can see how I could have done it in about 20 minutes, but it was anything but friendly.
Havoc makes a good point:
You also still have to show the server-side stuff working with good performance and real-life significant memory savings.
But one can't put something to that test unless one develops it.
It basically comes down to: If a corporation is going to invest money in an open source development they are going to have some influence on how it's spent (in this case in terms of man hours). This influence may not be considered optimal to the other people in the movement, but it is Sun's money to spend.
And since I'm running RH 8.0, and OpenOffice, GIMP and AbiWord all have completely different font selections, I can't really see how it's going to get more fragmented.
Thank you for your efforts Sun Microsystems, I'm anxious to see the reuslts.
Interesting to note that it's released under the BSD license. Are they hoping that arch-rivals such as Microsoft adopt the product or are they just thinking that it won't take off?
Trolling is a art,
stfu about stsf...
PC moderators can suck my White pierced, tattooed dick. If you think pride == hate, s/dick/Aryan meat mallet/g.
Just a small question -- when's the last time you dealt with fonts in XFree? What version? Have you used FontConfig?
As someone new to the internals of X (but not Unix) it took me the better part of a day to sifting through out-dated documentation and installing font software and scripts for previous versions of X and hacking out the bugs, just to get the CorelDraw fonts I paid for to be available in the GIMP. In hindsight I can see how I could have done it in about 20 minutes, but it was anything but friendly.
20 minutes with hindsight? Ok - here is the state of the art.
That requires fontconfig on your machine, but I don't see how it can get much easier.
Cheers,
Toby Haynes
P.S. Of course, the documentation needs to be better promoted.
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
Linux exists because of framentation. remember the famous "linux is obsolete" thread ?
Now, if work on linux had stopped, it wouldnt be where it is today. You cant assume that every fragmentation is bad.
A little off topic but still of interest, the XFree86 project is now using Bugzilla which sounds like a step in the right direction.
"Karma can only be portioned out by the cosmos." -Homer Simpson
Here is a suggestion on how to skip the dependency on X, altogether, using Qt embedded.
How open is Opentype?
Do not read this
read the middle paragraph, here it is in *ENGLISH*
... have stuck... to the console. We'd be better off today without it!
The people who built the first Motif Font architecture didn't know squat about what they where doing, even measured on a pixelfont level. They might as well
The whole current setup that just barely manages, made up of a bazzilion tidbits from xft ftx sftsxftftxsxstfts bitstreams ftfi (praise them!!!), Motif *shatonscreen* pixelfonts, KDEs fontrendering (finally from engineers with more than just a spinal column to think with - hooray!) and whatnot is so utterly bizzare it makes MS fdisk look like the reference in usability and software design.
From Sun's side-by-side comparison, it seems like Xft2 is a carefully designed project taking into account the needs of application designers to reach a clearly defined goal, whereas Stsf is has vaguely-defined and excuses its unjustified design with a lot of buzzwords.
Xft2 is slightly inferior in that it doesn't have a way of communicating the data to the server pre-rasterization, so that the server can use hardware acceleration in the rendering process. Of course, there's no particular reason that, once XRENDER is complete, this couldn't be done.
I don't know much about this whole thing. All I know is that I use a Sun for my desktop instead of my RedHat 7.3 box precisely because Sun's fonts are so much better than the ones in RedHat 7.3. Fonts in Solaris are substantially comparable to those in Windows, whereas those in Red Hat still lag behind.
Whether this has any bearing on the specific issue of XFT2 vs. STSF, I don't know. Perhaps the proposed STSF doesn't even resemble the font set in Solaris, and perhaps my RedHat font issues have nothing to do with XFT2. But regardless, I use Solaris on my desktop for font reasons, and I'm more likely to trust Sun's fonts than OSS ones simply because of my prior experience.
Of course sometimes prior experience can cause people to be stubborn, ignorant and misinformed. I'll hope that's not the case here...
I did not design this game/I did not name the stakes/I just happen to like apples/And I am not afraid of snakes-AniD
Sun ruins everything
First they fucked up gnome.
I actually LIKED gnome 1.4, but when kde 3.0 came out it sent it to it's grave. The bastardised gnome 2.0 was a joke thanks to sun.
Then they gave us openoffice. Their bloatware is worse than microsoft! 78 megs download compared to just 15 for koffice or 12 for abiword.
Now they want to fuck up our fonts too? Fontconfig/xft2 is good enough already. Please tell sun to shove it and go back to cde on slowlaris. (and rewrite slowlaris in java too).
I'm running RH 8.0, and although there is a .font-cache-1 file in my home directory, there is no .fonts directory. .fonts
/usr/X11R6/lib/X11/doc/README.fonts
.fonts.cache-1 .fonts directory in my home directory?
locate
$
The readme is a 1029 line file detailing how to add new fonts. But it makes no reference to the
Is there really any easier way?
Sheesh.
To everyone moderating the parent as Informative and Insightful: lay your crack aside.
Graphics and CORBA are independent parts of the GNOME platform, that aren't necessarily used together.
That, and other claims in the parent comment, are just rehashed old trolls. Move on.
My exception safety is -fno-exceptions.
On one end, you have stsf. On the other, you have Xft2/fontconfig. Both have their strenghts. Both have their weaknesses. But the question I have on the stsf side is: does it make configuring X for fonts better than Xft2/fontconfig?
Xft2 uses a simple XML configuration file that tells us what directories are housing fonts. This is a good thing, as it makes font configurations easier. Add that the system is also capable of manipulating the basic presets so that those with an obscure setting can still use it. This is something that XFree86 isn't capable of unless one wants to tinker around with the old archaic XftConfig file that requires super-user access to change its settings.
Big change isn't good. However, I'm fine with stsf as long as it doesn't break anything. If it does, something needs to be done. And with the recent removal of KP from the core team, am I the only one who has a odd feeling that the XFree86 team will remove Xft2 as well?
~ Old Warriors Society
Thanks, I'll play with that. That sounds much better than the methods suggested in the README.
Yes, this sucks. At least you can specify the font in ~/.gtkrc-2.0 (gtk-font-name = "Arial 11") to keep regular gtk2 programs consistant with gnome ones.
"I keep looking in the want-ads under 'revolutionary' but there don't seem to be any listings.. "
I'm with some of the other responders in this thread. I want to see some of these patent examples where they tried to patent open source work. Preferably ones that weren't a bureaucratic oversight that was reversed.
-Looking for a job as a materials chemist or multivariat
That means STSF doesn't have to be just a little bit better, it has to be VASTLY better to justify ripping out a brand new font architecture. Nobody is convinced it is.
Other people seem to be of the belief that having 2 competing font systems is ok. It's not - this is two competing interfaces, NOT implementations. Well, STSF can apparently emulate Xft, but you don't get any advantages that way, so what's the point?
So STSF had better be pretty amazing to justify it. Sure, Sun can go and use it if they like, but it'd require major b0rkage of GTK, and those patches would probably not make it back into the trunk, so they'd have basically forked GTK. Not good.
That problem won't go away until there's a neutral, acceptable to all configuration system that GTK can depend on.
Sun deserves respect and attention when it comes to server reliability. . . we should give them their due.
When it comes to their insisting they should be heard re: desktop usability and XWindows performance. . . we should give them the finger.
Sun and other committee members managed to take great ideas from HP (Openview) flush them down the toilet along with a commitee of other buffoons and then come up with CDE -- A lowest-common-denominator utter failure of a desktop. Now their trying to do the same with Gnome and X-Standards. . . forget it.
As far as Sun playing coordinator between X.org and XFree86. . . XFree86 _IS_ X now (yeah there are a few commercial guys - they'd be nowhere without XFree86 doing all the font work etc, ). If Sun had been paying attention to X over the past 8 years they would have known that X.org's attempts to commercialize X almost killed it and XFree86 brought it back from the dead with the free software stuff. Sun OWES XFree86 for the fact that X has moved at all. . . not the other way around.
Message to Sun: 1) work WITH the free community - especially if you want to use its desktop managers. You are no longer the authority and your credibility on the desktop has long been squandered. 2) work WITH the free community if their J2EE servers are some of the most deployed implementations YOUR standard. they are keeping your standards growing. 3) work WITH the free community if you are going to sell your own linux distro(LX50) instead of selling a weak/hobbled/over-priced version to make Solaris look good (it only makes you look like you can't configure linux right, btw). Figure it out or you will increasingly be replaced BY the free community.
Sun's arrogance is infuriating and counter-productive. I've been a big fan of their engineering and it is truly a strength, but the boys in executive better start reading periodicals labelled "2003" and earning their keep, or Sun is going to bite it.
The problem isn't the fonts or various bits and bobs here and there - the problem is that X itself is a complete and utter piece of shite. It was written a long time ago and it is time to scrap X entirely and rewrite it from the ground up with:
... need I say more.
- Full integrated OpenGL rendering support
- ClearType
- It needs to be much faster
Sure these are available via add-ons in the vast majority of cases, but it isn't neat and the system wasn't designed with that flexibility in mind. It would be much tidier if these were all integrated into the re-designed "kernel" of X.
RTFM vs STFU
So we should force bitmapped fonts to live in small, inefficient agricultural communities, or else we send them to Siberia? Or perhaps we should kidnap some Japanese people and force them to write a decent rendering engine!
Try crawling through the internals of any recent "desktop" distro to find all the different font solutions working "together" to render your desktop apps and X window system, and you will soon find that no two applications seem to use the same solution. Even better yet try turning them all of for a sanity check. Anti alias this, font config that, it's a mess. Maybe no one will agree with me -- but I spent a month wondering why one application looked fine, and another looked pukey, and another looked like it would never render anything above 7 pixels. 500+ fonts installed -- and no single application could use more than a handful of them. And no two applications across graphics libraries (gtk1, gtk2, gtk2 antialias, qt, qt anti alias, etc.) seemed to use the same handful. I finally decided to go back to the days where applications just used the default font server provided by launching Xwindow. I downloaded the "ancient" xfstt and imported my favorite TT Fonts -- and I was up and running with Debian stable. The only problem I have now is trying to get slightly newer verisons of some of my apps.....Some of this stuff in Debian stable are stuck in the point release my Grandfather used in his day.
(+1 Funny) only if I laugh out loud.
X *is* fragmented, so is the unix desktop world.. and it's not going to change.
Now, that doesn't mean there aren't good desktops...
KDE is fantastic.. and gnome is getting really good too.
I guess the point is.. if you look at modern linux based systems now... they are in many ways totally different operating environments, at least insofar as the average desktop user is concerned.
Mandrake has it's thing; Redhat has it's thing; Debian has it's thing kinda..... we aren't talking about a single system.. so let's not pretend that new stuff isn't good.
If a new font system is available, and it's cool, and Mandrake wants to use it, great. If not, great. Same for everyone else. IT's stilly to debate whether or note "yet another something or other" is good or bad; thoes that are good and people want end up being used. Those that fail, fail.. and in the end, we have better stuff.
What's wrong with the kerning? Just look at "the" in the 20 pt Adobe Gill Sans line, comparing "th" to "he". There are problems like that throughout the 1st screenshot.
The 2nd shot featuring Konqueror is similarly disappointing. Just in the first paragraph - "Konquerer" and "filesystem" are all over the place.
Sure the antialiasing is pretty, but it's just tinsel on a withering christmas tree from the looks of things.
- HOORAY!
In general there are too many choices, and worse combinations of choices, for a newbie user--and before you flame, remember even if you use XXXdistro that they've made a lot of choices for you by removing things they don't agree with. New font systems won't fix the problem, new X won't fix it either!
What's needed is a step back from the problem and address the real issue: DATA! All is data!
The very first thing to determine in any great improvement of Linux is universal data types then implementation takes care of itself! [look at the web for success] Fonts, spreadsheets, documents, and lots of other apps need to be reduced to data types first. As much programming as possible should be reduced to scripting [ala perl, python] or JIT [Java, Basic] that would again, turn programs into data, managed like data, and portable like data.
Untill that happens, things will remain horribly fragmented, but the markets will determine a useable and effective system anyway. It won't be as efficent as it could be though:(
Are you really surprised that Havoc (Pango) and the Xft guy are pissed when their software is going to be replaced?
I seem to remember someone saying putting font rendering in on the client side was a hack caused by them not wanting to extend the X protocol. Sounds to me like Sun are doing it properly.
Oh, and the font rendering isn't tied into X so potentially all those separate ghostscript fonts could disappear.
Sig pending!
STSF is either a replacement to XFT2 or pango (the gtk font layout library). If it is a replacement for XFT2 then it would not contact GTK at all, let alone change it enough to mean a fork. If it replaces pango, that would be a little more tricky, as pango direct contacts GTK, however the speed of Gnome portage to STSF would suggest that if it is a replacement to pango, the api is very similar and the only thing needed would be a few #ifdefs to iron over a few idosyncracys in the two apis.
To me it makes no difference, I write my programs in GTK, I do not touch the internals of X. Most of GTKs developers could claim similar. The UIs are made up of layers upon layers of libraries, only one of these layers would need to be rewritten, hopefully it will be a small one.
Don't get me wrong, I hate division, if I had the choice I would distroy this new standard, then I would force QT, TCL, Java, even Xaw to be displayed through GTK, then I would merge the BSDs, and send in the SA to beat up the XFree86 until they all get along, I would force everyone to drive on the left hand side of the road, GSM would reign supreme, I would make all those weird IBM mainframes use ASCII, I would see DVD+RW was adopted universally or ELSE, MSOffice files would be replaced by a real XML based format, ANYONE that mentioned "HTML 5" would be pronounced an enemy of the people and sent to the Gulag without trial. But I can't, I don't have that power, I don't even have a dictatorial mustache and a sad thing is that even though some people do have mustaches, nobody has the power to tell OSS developers what to do and nobody ever will.
All one has to do is remain positive, cope with the split, not get too passionant about one side or another and hope that one dissapears, hopefully within a year all the new #ifdefs in the code will become nothing but reminants of a time forgotten and we shall live happely with our finely rendered fonts and the victorious font management library shall remain buried and hidden down deep in X. Eventualy our grandchildren shall come and ask us what library was chosen, looking down at their fresh faces that have never been furroughed with the anguish of having to use windows, we will realise that we don't even remember.
When Argumentum ad Hominem falls short, try Argumentum ad Matrem
How is this impacted by Sun's choice to drop it's linux distro? I assume not at all, but I'm not sure. Can the project stay afloat without Sun's support?
I keep wondering why the metafont engine is used only by TeX and nobody else. In my opinion it is a much more elegant system than truetype. Is there some reason why it has not caught on?
If so, please continue, as lame as it was, it did make a difference ...
Infuriate left and right
Three more years until two of the three main Apple patents that cover hinting go away.
Three more long years. It actually might be 6 more years, but I'm not sure if that patent term extension from 17 to 20 years is retroactive or not.
To be honest though, I haven't heard of Apple suing anyone for infringing on that particular patent and I imagine quite a few people have.
The world is neither black nor white nor good nor evil, only many shades of CowboyNeal.
Below I've listed several reasons that STSF is technically superior to Xft/Xft2. In addition, STSF is compatible with Xft, meaning that existing Xft applications to not have to be changed unless they want to use advanced STSF features which Xft does not provide.
When you consider that drawing through Xlib or XRender must use rectangular blocks, you will realize how hard it will be for client-side font rendering to ever efficiently support non-rectilinear text.
Graphics systems typically accelerate font rendering by caching unique rendered glyphs in video memory. With client-side rendering of glyphs, several applications cannot share the same rendered glyphs. The more applications you run on the machine, the more copies of the Arial 10pt letter "L" you will have.
Another benefit of server-side rendering is better networked graphics performance. I constantly hear Linux/X developers defending X's network model over Windows' direct rendering model. Xft does not work well over a network, and Xft2/XRender have limitations over a network which are not present in STSF. As display dot-pitch increases this will only get worse for Xft.
Xft/Xft2, because they are client-side technologies, require updating applications to get anti-aliased fonts. With STSF a server-side setting can enable antialiased fonts for old applications.
Xft was great work. It has put a spotlight on XFree font rendering and provided a solution which works today. Now our goal is to have a world-class font solution which rivals MacOS and Windows. STSF has many important features and we would not be smart to dismiss it due to a political skermish about "letting go of existing work".
DISCLAIMER: I have no connection with either XFree, Xft, Sun, STSF, or any font rendering gihad. The above statements are drawn from my own experience in the PC graphics hardware industry and time spent digging through information on Xft and STSF technologies. If you don't like what I have to say, my post comes with a money back guarantee.
Well currently I must say that even Xft2 is not up to the mark. Sun's proposed solution does seem to be an improvement. I think we should let both these projects flourish and let the community decide. This is tantamount to getting community opinion on quality and implementation.
Competition is good. I don't think it will lead to fragmentation. I think you need to see it more as evolution since that is what it will boil down to.
Find a job you like and you will never work a day in your life.
Cool!
Got any good references to objective information on this?
Maw! Fire up the karma burner!
than they shouldnt have made gtk2 :)
i hate the need for EVERYTHING to be backwards compatible. every once in a while you have to leave the legacy at home. if something is superior and can be assimilated in sure the borg, i mean the XFree86 project can do the same, and any of the opensource projects. that is perfection.
i agree with the anonymous coward.
I know you are psychotic, but please make an effort.
just make anti-aliasing and hinting built-in in X-server?
I have a Slackware 9.0 box with Dropline Gnome and Xft-enabled Mozilla. Much better font rendering than I've seen on any XP box.
*nix fonts are ugly, this has nothing to do with the server subsytem of X. people just need to create some nice fonts for X. (i have found a few to my liking, but i hear people bitching about it).
how about being able to change resolution on the fly...that would be a better addition to X than a new font system.
-frozen
I'm not always the brightest pixel in the stream
And the advantages of Xft
As a programmer I know which I would rather use...
I disagree it is reinventing the wheel, but rather it prevents reinventing the wheel, since now OTF'S are being developed for each toolkit, like gtk uses pango, while the qt guys are developing their own. Having such a important feature at the X-server level is good.
Please refer to my previous post on why OTF'S are so important.
From my reading of the Sun employees vs everyone else threads about this on xfree86's forum mailing list, it seems to me that STSF is about offloading as much of the font layout/hinting as possible to a server, so that thin clients can run in less CPU/RAM. That seems like a sensible goal on the surface.
Except that CPU and RAM are so goddam cheap these days, this simply can't be worth the effort. By the time STSF is finished and the vast amount of work has been completed to integrate it in place of fontconfig and Xft, CPU and RAM will be even cheaper and even faster, so why on earth don't Sun slap 256MB of RAM and a >1ghz CPU in their thin client machines?
Surely that solves the problem without a huge engineering challenge and without returning to the insane paradigm of remote font servers (even though STSF can render locally, thus removing any point it existed for).
I would think that making fontconfig/Xft more efficient at caching and pre-rendering/hinting data would be a better path to improving performance here, or maybe using a gtk theme that has no pixmaps would reduce the memory usage sufficiently. Offloading stuff for the sake of it seems crazy to me.
Chris "Ng" Jones
cmsj@tenshu.net
www.tenshu.net