On Thu, Aug 03, 2006 at 12:21:56AM +0200, Werner LEMBERG wrote:
> 
> > A revised, simplified file format proposal based on my original
> > sketch, some of Markus's ideas for "NCF", and an evaluation of which
> > optimizations were likely to benefit actual font data.
> 
> What about using bitmap-only TrueType fonts, as planned by the X
> Windows people?

Could you direct me to good information? I have serious doubts but I'd
at least like to read what they have to say.

> This has the huge advantage that both FreeType and
> FontForge (and X Windows too in the not too distant future) already
> support them.

Quite frankly it doesn't matter it FontForge supports a bitmap font
format because "xbitmap" is the ideal tool for making bitmap fonts.
However as long as you can import and export glyphs I see no reason
FontForge couldn't be used for this too.

I also get the impression from some Apple papers i was browsing
recently that TTF/OpenType put the burden of knowing how to stack
combining characters and produce ligatures onto the software rather
than the font. Under such a system, applications will never support
all scripts unless they use one of the unweildy libraries with all of
this taken care of...

> I can't see an immediate advantage of a new bitmap format.

...on the other hand, at least for bitmap fonts, simple rule-based
substitutions set up by the font designer can easily provide the
needed functionality with less than 5kb of code doing all the glyph
processing.

Right now we're at an unfortunate point where the core X font system
has been deprecated, but there is nothing suitable in its place.
Moreover non-X unix consoles are essentially deprecated as well since
they lack all but some patronizing Euro-centric 512-glyph "Unicode"
support. Do you think someone is going to integrate FreeType into
Linux anytime soon? :)

All problem solving is about choosing the right tool for the job.
Storing bitmap fonts in the TTF/OpenType framework is like using a
nuclear missile to toast fruit flies, or like driving an SUV to
commute to the office...

When it comes to character cell fonts (which is an even narrower
problem field than bitmap fonts), the goal is something that can
provide the baseline support for readable and correct display of any
script and that can work in any environment needing character cell
display, from embedded systems to unix console drivers to 'poweruser'
X sessions with 50 terminals open across 8 virtual desktops and half
of them scrolling text constantly... What is NOT needed is more
substanceless eyecandy that takes 500 megs of ram and 3ghz to run
smoothly. Doesn't anyone find it a bit ironic that you can get
translations of the featureless GNOME and KDE applets (which are about
as bare and useless as the MS Windows "accessories") into almost any
language and that the widgets display all the scripts correctly, but
then when you go try to USE your language for any serious work on unix
you find that everything displays bogus when you type "ls" in your
shell, that most of the powerful text editors have no idea about
something as basic as nonspacing characters, that ELinks still insists
on dumbing-down the perfect UTF-8 it received from the web into a
legacy codepage before converting it back to UTF-8 to display on your
terminal, etc.?

There's a severe gap in where the focus on m17n and i18n is being
placed and where it's needed, and IMO a huge part of that comes from
the fact that most competent unix users _scorn_ m17n and i18n because
of the perception that it's inherently bloated. I've met plenty of
people whose knee-jerk reaction after typing ./configure --help is to
--disable any i18n-related option they see out of fear that it will
fill up their disk with unwanted crap, introduce security vulns, or
just make the program use 3-10x the memory it should.. Fears like this
are compounded by the fact that, at present, the user is forced to
make a choice between "lightweight configuration with incorrect or no
m17n support" and "bloated configuration that pulls in Pango, glib,
fontconfig, Xft, Xrender, ..." just to be able to get "odd scripts I
don't really care about" to display properly. This sort of dichotomy
of course perpetuates the lack of good support. GNOME coders who have
no features in their apps except for the beautiful behavior of the gui
widgets are happy to spend effort (and tens of megabytes) linking to
the behemoth libs and patting themselves on the back for being
"internationally friendly", while developers working on long-standing
projects where most of the substance lies somewhere other than the gui
presentation are baffled by these libs for which they understand
neither the necessity nor the implementation. And unlike rad gui
monkeys who are happy to copy-and-paste-and-glue whatever libs someone
throws at them, people working on mature projects with actual features
are weary of including support for anything they don't understand. The
perpetuation of the myth that "correct rendering of all the world's
scripts is difficult and requires advanced software" of course makes
them even more weary.

I could go on and on for years and years about this for sure. I'm
extremely bitter about the sad state of m17n on unix and the fact that
there is not even one working Unicode terminal with simultaneous
support for all scripts.

So with that said, I'll continue on with my draft bitmap font format
(which already has a lot more simplifications -- remember, a work of
art is only complete when you can't find anything left to _remove_
from it), write my 5kb of code, integrate it into uuterm, and
somewhere in the next few months aim to have the first working Unicode
terminal emulator... in a 50kb static binary.

So much for "m17n is bloated crap"...

Rich


P.S. At the same time I'd be very happy to discuss bitmap and
character cell fonts, others users' and developers' requirements for
them (particularly for scripts I'm not familiar with). Also I have a
tendancy to flame especially when I'm bitter about something. Please
don't take anything I said too seriously except for that overall
thesis that things are in a bad state and lightweight m17n support is
critically needed in order to enable use and development of m17n in
serious apps.


--
Linux-UTF8:   i18n of Linux on all levels
Archive:      http://mail.nl.linux.org/linux-utf8/

Reply via email to