forked from fontforge/fontforge.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ff-history.html
executable file
·519 lines (519 loc) · 27.5 KB
/
ff-history.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
<HTML>
<HEAD>
<!-- Created with AOLpress/2.0 -->
<!-- AP: Created on: 13-Oct-2006 -->
<!-- AP: Last modified: 9-Nov-2008 -->
<TITLE>The history of the development of FontForge</TITLE>
<LINK REL="icon" href="fftype16.png">
<LINK REL="stylesheet" TYPE="text/css" HREF="/assets/css/old/FontForge.css">
</HEAD>
>
<div style="margin:0; height: 4 em; padding: 0.5em; background: red; color:yellow; text-align:center; font-size:1em; font-family: sans-serif;">
<p><a href="http://fontforge.github.io" style="padding: 0.5em; color: yellow; font-weight: bold; text-decoration: none;" onmouseover="this.style.background='black';" onmouseout="this.style.background='red';" >This is part of the old website. New website begins at fontforge.github.io</a></p>
<p><a href="https://github.com/fontforge/fontforge.github.io" style="padding: 0.5em; color: yellow; font-weight: bold; text-decoration: none;" onmouseover="this.style.background='black';" onmouseout="this.style.background='red';" >Are you a web developer? Help us migrate this page on Github</a></p>
</div>
<DIV ID="in">
<H2>
<IMG SRC="/assets/img/old/fftype300.svg" WIDTH="300" HEIGHT="300" ALIGN="Right">What on
Earth Possessed me...
</H2>
<P>
I have always been interested in calligraphy, especially the eccentricities
of the swash and black letter capitals.
<P>
My father was deeply concerned with Renaissance printing, being a textual
bibliographer of Shakespeare. His major focus was in the errors printers
were likely to make, nevertheless I grew up in an environment where the long-s
and other archaic devices appeared. My father used to brag that a great aunt
of his still used the long-s in her hand-written notes.</BR>
<BLOCKQUOTE ID="lit">
<TABLE>
<TR VALIGN="Bottom">
<TD><SMALL><B>MALVOLIO</B></SMALL><BR>
By my life, this is my lady's hand, these be her<BR>
very C's, her U's and her T's and thus she makes her<BR>
great P's. It is, in comtempt of question, her hand.
<P>
<SMALL><B>Sir ANDREW</B></SMALL><BR>
Her C's, her U's and her T's: why that?</TD>
<TD><P ALIGN=Right>
-- Shakespeare<BR>
Twelfth Night, II, v</TD>
</TR>
</TABLE>
</BLOCKQUOTE>
</BR CLEAR="ALL">
<P>
Why that indeed. Some questions may have no answers.
<P>
In the early '80s I was working at JPL and I met my first bitmap display.
The primary use of this display was to make movies of a simulated fly-by
of Olympus Mons (on Mars). I used it to design my first bitmap font.
<P>
In the late '80s I bought my first computer, a Mac II. And with it a bought
a little program called Fontastic which allowed people to design their own
'FONT' resources (mac bitmap fonts).
<P>
Then a friend, Godfrey DiGiorgi, recommended that I buy a copy of Fontographer
and design PostScript fonts. I was leary initially. How could a rasterizer
match the quality of a hand crafted bitmap? But eventually I succumbed to
the attractions of the cubic spline.
<P>
In the meantime I had studied calligraphy, and once I had Fontographer began
designing fonts based on various (latin) calligraphic hands.
<P>
In the early '90s I was working at a little web start-up company, called
NaviSoft, which was almost immediately bought by AOL. My product was an
html-editor (best known as AOLpress). As I was working to convert it to handle
Unicode I became concerned about the lack of Unicode fonts. I began working
on my own Unicode font (just the alphabetics and symbols, I knew there was
no way I'd be able to deal with all the CJK characters). I designed a font
based on Caslon's work with Bold and Italic variants. And then I started
working on monospaced and sans-serif families (I called the sans-serif design
"Caliban" as a play on Arial).
<P>
Aldus (the makers of Fontographer) had been bought by MacroMedia, and MacroMedia
seemed to have no interest in continuing Fontographer. So development on
Fontographer ceased. It did not support OpenType, and its unicode support
was minimal. I began to write little programs to decode Type1 fonts and fix
them up in various ways.
<P>
AOL did not really know what to do with AOLpress. AOLpress had been designed
with web designers in mind, not with Steve Case's mother (which was AOL's
target audience). So development on AOLpress ceased and the Unicode/CSS version
never was completed. I continued to work on my fonts however and continued
to be dissatisfied with Fontographer. In 1998 my AOL options matured and
I was able to retire.
<P>
I wanted to try to become a primatologist and had made arrangements to spend
4 months in Madagascar as a field assistant to Chia Tan studying the Greater
Bamboo lemur (<I>Hapalemur simus</I>). Sadly I found that I was not really
cut out for that life. I had a hard time recognizing individual animals,
and found that after a few months the leaches were more annoying than I had
expected.
<P>
So I gave up on that.
<P>
Instead I set about working on an improved version of my html editor, and
started by writing my own Unicode based widget set for it (this was before
pango was out). When the widget set was usable I decided to write a small
application to test it, and something to display the splines of a postscript
font seemed just the thing. Having done that I figured I might as well allow
people to edit those splines and save it back. And so was born the first
version of PfaEdit.
<P>
Somehow the html-editor never got written.
<P>
I quickly discovered I was better at designing a font editor than I was at
designing fonts, so I gave up on them too.
<P>
After a couple months of work I had something which worked, or so I thought,
and I posted it to the web (my friend, Dan Kenan, very kindly gave me some
space on his server, aptly named bibliofile) on 7 November of 2000. Within
a month I had received my first bug report, and presumably had my first user.
<P>
I continued working on PfaEdit, adding support for pfb fonts and then in
December for truetype and bdf fonts. I learned about sourceforge and moved
PfaEdit there in April of 2001.
<P>
In April of 2001 I added support for type2 fonts embedded in an sfnt wrapper
(opentype fonts, but not the advanced typographic tables). In July of 2001
MinGyoon (from Korea) asked me if PfaEdit could support CID keyed fonts so
I learned about those and added support for them in August.
<P>
Valek Filippov suggested that I make PfaEdit be internationalizable, so I
provided a mechanism and he provided a Russian translation of the user interface
in June of 2001. On December of 2005 I gave up on my own system and switched
to GNU gettext.
<TABLE BORDER CELLPADDING="2">
<TR>
<TH>Language</TH>
<TH>Translator</TH>
<TH>Initial version</TH>
</TR>
<TR>
<TH>English</TH>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TH>Russian</TH>
<TD>Valek Filippov</TD>
<TD>June 2001</TD>
</TR>
<TR>
<TH>Japanese</TH>
<TD>Kanou Hiroki</TD>
<TD>August 2002</TD>
</TR>
<TR>
<TH>French</TH>
<TD>Pierre Hanser</TD>
<TD>September 2002</TD>
</TR>
<TR>
<TH>Italian</TH>
<TD>Claudio Beccari</TD>
<TD>February 2003</TD>
</TR>
<TR>
<TH>Spanish</TH>
<TD>Walter Echarri</TD>
<TD>October 2004</TD>
</TR>
<TR>
<TH>Vietnamese</TH>
<TD>Clytie Siddall</TD>
<TD>July 2006</TD>
</TR>
<TR>
<TH>Greek</TH>
<TD>Apostolos Syropoulos</TD>
<TD>August 2006</TD>
</TR>
<TR>
<TH><SMALL>Simplified</SMALL> Chinese</TH>
<TD>Lee Chenhwa</TD>
<TD>October 2006</TD>
</TR>
<TR>
<TH>German</TH>
<TD>Philipp Poll</TD>
<TD>October 2006</TD>
</TR>
<TR>
<TH>Polish</TH>
<TD>Michal Nowakowski</TD>
<TD>October 2006</TD>
</TR>
<TR>
<TH><SMALL>Traditional</SMALL> Chinese</TH>
<TD>Wei-Lun Chao</TD>
<TD>August 2007</TD>
</TR>
</TABLE>
<P>
I started working on support for simple aspects of the OpenType GSUB and
GPOS tables in April of 2001 and finished the process (ignoring bugs of course)
with the contextual chaining lookups in August of 2003. Similarly I started
adding support for the various equivalent Apple Advanced Typography tables
(primarily 'morx') at about the same time.
<P>
In an early attempt to get PfaEdit to generate instructions to grid-fit truetype
fonts, I set about to write a truetype instruction simulator so that I could
debug the generated code. It didn't work very well on real fonts. Then, in
early 2001, I discovered <A HREF="http://freetype.sf.net/">freetype</A> and
found that freetype already did this (and did it right). At first I examined
their code to try and figure out what was wrong with mine, but eventually
I gave that up and simply used freetype as an instruction simulator. As things
got more complicated (with David Turner's permission, and many suggestions
from Werner LEMBERG), I eventually wrote a visual front end for freetype's
built-in debugger. For a while this lived in a separate program called mensis,
but in March of 2003 I integrated it into PfaEdit.
<P>
Many people urged me to provide a scripting interface to PfaEdit. At first
I could not understand the point -- font design needs a graphical interface
after all. But I was only looking at a small fraction of the tasks that could
potentially be done with such an interface, and in January of 2002 PfaEdit
gained the ability to run scripts.
<P>
In 2003 Yannis Haralambous invited me to talk at EuroTex. I fear I rather
disappointed him in my choice of subject matter -- I tried to do better the
next year when Apostolos Syropoulos invited me to EuroTex 2004 (but I overreached
myself then and made some incorrect assumptions). These conferences were
the first time I had actually met any of my users and were quite stimulating,
leading to many suggestions and requests. I learned about SVG fonts at EuroTex
2003 and implemented them soon thereafter.
<P>
Yannis was also working on a book, <I>Fontes & codages</I> in which FontForge
figures. He spent a lot of time making suggestions and finding bugs. He
encouraged me to support multi-master fonts and by February of 2004 I had
done so. Then I started working on Apple's distortable font technology (which
has many similarities to Adobe's multi-master, but is rather badly documented)
and, with help from Apple, had them working in April of 2004. I then extended
freetype's support for multi-master fonts to support Apple's distortable
fonts.
<P>
In early 2004 people complained that the name "PfaEdit" no longer reflected
the abilities of the program and requested that I change it. Various people
suggested names (including me), but the one I liked the best, FontForge,
came from David Turner of freetype. And in March of 2004 PfaEdit changed
its name to FontForge.
<P>
At about the same time I wanted to provide a somewhat more complete ability
to handle PostScript Type3 fonts (or SVG fonts). So I implemented a multi-layered
editing mode which provided a rather clumsy interface to some of the facilities
of vector graphics programs.
<P>
In 2005 a Korean company asked me to do something. We had some difficulty
communicating (I don't speak Korean), but eventually I figured out that they
wanted to be able to group glyphs together. Prior to this FontForge handled
encodings as an integral part of the font, which didn't seem right, and it
made implementing groups impossible. So I had to rewrite much of the internals
of FontForge to redo encodings before I could even start on groups. This
took longer than I had thought it would, and by the time I finished (in July
of 2005) the Koreans seemed to have lost interest. Ah well.
<P>
I got interested in pdf files in October of 2005, and gave FontForge's Print
command the ability to print to a pdf file. Then I thought it would be kind
of fun to be able to read a font out of a pdf file. I was a little worried
about implementing this because I know that most fonts stored in pdf files
are sub-sets, and only contain the glyphs actually used in the pdf file itself.
I was convinced that I'd get lots of bug reports from people complaining
that FontForge didn't read the entire font. Nevertheless my sense of fun
overcame my fear of silly bug reports and I implemented it.
<P>
And I did get bug reports complaining that FontForge did not read the fonts
correctly. <BR>
And I don't think I was able to convince some of the complainers that the
fonts were incomplete in the pdf file. Ah well.
<P>
The X11 folk want to move away from the bdf format, so they came up with
their own format (call opentype bitmap, with extension "otb") which was
essentially an sfnt wrapper around a series of bitmap strikes with no outline
font. I implemented that back in July of 2003. But then in July of 2005 they
wanted to preserve the BDF properties as well. So we worked out a new table
(called 'BDF ') to contain the properties from all the strikes in the font.
Now it should be possible to make a round trip conversion of
bdf->otb->bdf and not lose any information.
<P>
Many people complained about FontForge's ability to edit quadratic splines.
I had no experience editing quadratic splines before I wrote my original
version, I just made it behave like the cubic spline editor (which seemed
obvious). But doing the obvious makes it hard to create a font that uses
some of the optimizations in the ttf file, and made instructing the font
confusing. So between January and February of 2006 FontForge's quadratic
editing capabilities underwent an evolutionary change as people complained
and I tried to fix things.
<P>
I have a testsuite for fontforge. Obviously. Originally it was very simple:
a set of script files which did various actions. If FontForge didn't crash,
then I presumed it worked. That was about all I could test, and although
that's important, there are a few other things which might be examined. So
I wrote a command to compare two fonts and see if they were equivalent.
Originally this had been a separate command (called sfddiff), but if I integrated
it into FontForge I could increase the abilities of the tests I wrote.
<P>
FontForge produced some rather naive type1 and type2 fonts which did not
make good use of the PostScript concept of subroutines. In June of 2006 I
did a substantial rewrite of the type2 output code and decreased the size
of my output fonts considerably. My new comparison command was helpful in
debugging. Nonetheless I introduced a number of bugs. Which got fixed, of
course. But it made me leary of doing the same thing for type1 output. After
all, Adobe doesn't even produce type1 fonts any more, so surely I don't need
to optimize them. Michael Zedler said otherwise, and after great effort on
his part induced me (in October 2006) to make better use of subroutines in
Type1 output also. No bugs yet... (but it's still October of 2006).
<P>
All of FontForge's dialogs had a fixed layout. Which works fine if you've
only got one language to support, but which looks really ugly (and worse
can be totally illegible) when the dialog is translated into a different
language and labels suddenly become longer (or shorter) and spill over into
the textfield they identify. There has been a sudden burst of people willing
to do translations recently. This mattered. So I stole the concept of boxes
from gtk and implemented them in my widget set (in August of 2006), allowing
a dialog to do its own layout to match the size of the things in it.
<P>
The pace of change seems to have slowed recently (Oct 2006) as all of the
large tasks have either been done or proved insurmountable. As more people
use the program they find more bugs and I have less time to do development.
In the last few years there have also been large internal changes which (I
hope) are practically invisible to users and cosmetic changes which make
the dialogs look nicer and more comprehensible but which aren't functional.
<HR>
<P>
My interface to GSUB/GPOS was not well thought out. I stored things in FontForge
at the feature level, while OpenType wants things done at the lookup level.
I thought lookups added an unnecessary level of complexity and ignored them.
But people complained (they always do) that once a font had been read in
to FontForge and saved out again it wouldn't work any more. And that was
because I had lost the ordering imposed by the lookups. So in early 2007
I had to redo much of the internals of fontforge as it related to OpenType.
I also changed the Metrics View so it would handle all OpenType lookup types
(rather than just kerning).
<P>
And people didn't like my scripting language. Why hadn't I used python? (Well
because I didn't know python and was lazy about learning more stuff that
I didn't think would be useful to me). Various people told me that they just
couldn't use FontForge because it didn't support python. So I added python
support. Then I discovered that my build machine has such an old version
of python that it doesn't provide libpython -- and I can't upgrade my machine
any more because all the distros require booting from CD now (and my machine
can't).
<P>
In May of 2007 I went to the Libre Graphics Meeting in Montreal, and as I
listened to the Inkscape talk on how they handled plugins, I realized that
I could do that too. So I extended the python interface to support python
plugins and menu items. Dave Crossland, as is his wont, had many requests,
and had me update the old Display dialog to support all the OpenType lookups
(just as I'd done for the Metrics View) and then merge that into the Print
dialog too. Dave also felt that FontForge should be able to store a font
directly on the Open Font Library website. Well, they had no API for this,
so I had to sit down and figure out http all over again and see what bits
of the user API I needed to walk through.
<P>
In June I started working on Adobe's feature files (I could support them
now that I was handling lookups properly), and found to my shock that
<OL>
<LI>
The syntax as presented by Adobe wasn't complete (could not represent all
of opentype)
<LI>
Some of the syntax that was presented hadn't been implemented by Adobe yet
and was marked "Subject to change"
<LI>
There was no easy way to represent the "Everything else" class (class 0)
of a class set without enumerating every glyph by hand (which could not be
translated into a class 0.
<LI>
There was no way to distinguish a contextual class based lookup from a contextual
coverage-table based lookup.
<LI>
... on and on ...
</OL>
<P>
I had assumed that feature files were a stable useful format and found to
my distaste that they were not. I implemented the bits that Adobe hadn't
implemented, and extended them a bit so I could represent more of OpenType
(and told Adobe what my extensions were, but was told they didn't like them).
Grump. Well I wanted something to store as much of OpenType as I could, and
I wasn't going to wait for Adobe to come up with something (which they still
haven't).
<P>
Apostolos gave me the spec for the new 'MATH' table. But that spec had MicroSoft
Confidential printed all over it and I wasn't about to touch it. Apostolos
got annoyed at my ignoring it, so in July he had Sergey from MS send me a
copy of the spec that no longer said "Confidential" on every page. Then I
implemented the new 'MATH' table.
<P>
I'd never had a good Embolden function. I'd tried various approaches and
none worked well. This year I decided to try a very simple idea: Use expand
stroke and then squash the glyph together so it was the same height it had
been before. That basically worked. Still a few oddities, but basically
functional.
<P>
In July Michal Nowakowski gave me a patch which vastly improved the truetype
auto instructor. I told him I'd only accept it if he would support it. After
some initial grumbling he did so -- and then proceded to make it even better!
Then about a week later Alexej Kryukov said he wanted to make the autoinstructor
support diagonal stems, and the two of them started working together on this.
<P>
At the Libre Graphics Meeting Dave demoed Raph Levien's spiro splines and
encouraged me to integrate them into fontforge. But Raph released under GPL
and wasn't willing to change, and I released under BSD and wasn't willing
to change. I got permision from Raph to repackage his spiro routines into
a small shared library (libspiro) which could be released separately from
FontForge but to which FontForge could link. And we had Raph's spiros in
FontForge.
<P>
I realized that no only could I stick python into fontforge, but if I did
a little more work, I could stick fontforge into python. So I wrapped up
most of fontforge into a shared library that python could load. Dave Crossland
had been complaining (again) about the FontForge widget set. When was I going
to move to gtk? (well, I'd tried gtk back in 2004, and found it hard to use,
and bits of it ugly -- and less functional than my own widget set in the
ways that mattered to me, so I had given up on it). Dave offered to fund
development of a gtk fontforge UI, but only if I'd switch to GPL. I dislike
GPL, it seems so restrictive to me, so I said I wouldn't. Then I realized
that I could rework my library until it was independant of widget set, and
allow Dave to write a UI to sit on top of it, not bound by the fontforge
license. So I reworked the internals of fontforge to make them extensible,
stripped the UI out of libfontforge. And started to work on a gtk based fontforge
of my own.
<P>
Dave Crossland was complaining on the Open Font Library mailing list about
how much information was lost when a font was released. Guidelines. Names
of lookups. Cubic splines used for generating the quadratics of TrueType.
And about the need for providing sources. Well, providing sources of fonts
can be difficult, and not always useful if the tools to generate the fonts
aren't also available. However there is no reason why much of that information
can't be stored in the font itself. I already had a table that FontForge
would create called ('PfEd', left over from PfaEdit days) which stored per-glyph
comments, and other things. I could simply extend that table to store guidelines
and other things. And document it so that others could use it, of course
-- but I'd already done that.
<P>
And that brings us up to Jan 2008, I guess the pace of change sped up a bit
this year as opposed to last.
<P>
Alexey and others complained that they wanted multiple layers of splines.
More than just the Foreground, Background, Guidelines layers that FontForge
came with. One common request was to have both a cubic (PostScript) and a
quadratic (TrueType) layer and be able to generate fonts from both. So in
March of 2008 FontForge grew multiple layer support.
<P>
Later in March I added support for the OpenType 'BASE' and Apple 'bsln' tables.
And to amuse myself I added the ablity to have gradient fills in Type3 (and
svg) fonts.
<P>
In June I was thinking of the embolden command I did the year before, and
realized that that was essentially the same idea as was needed for generating
Small Caps glyphs from Capital letters. And then some of those algorithms
could be used to create condensed and extended glyphs. And then I sat down
and wrote a generic "glyph change" dialog -- years ago I had had a "MetaFont"
command which was supposed to allow the user to embolden fonts for condense
them or ... Unfortunately my MetaFont never worked very well (And some users
complained that It didn't read Knuth's mf files. Sigh. No, it metamorphosed
fonts in its own way, not Knuth's), so it got removed. Now it was basically
working in a new form -- but I know better than to call it MetaFont now.
<P>
Alexey then stepped in and rewrote much of the code. I did not handle diagonal
stems well when creating small caps, and that was just what he was doing
with the autohinter. So he greatly improved the output.
<P>
I was also intregued by italics. Converting a font to italics involves so
many different things -- the font is slanted, compressed, serifs change,
letter forms change, ... I studied exisiting fonts to see what I could learn
and asked various real typographers. The consensis I heard from them was
that I could never make a good italic font from a roman one mechanically
and should not bother to try -- it would just lead to people making bad italic
fonts. Good advice, but I didn't follow it. I thought it was a neat challange.
And it was something Ikarus had done, so I wanted to do it too.
<P>
In July a friend of mine, who is a mac user, said she wouldn't even consider
looking at fontforge on her mac unless it behaved more like a mac application.
So I figured out how to build a mac Application, and how to respond to apple
events (like having someone double click on a font file, or drop a font file
on fontforge's icon). I figured out how to start up X so that the user didn't
have to. I made pretty (well, I think they are pretty) icons for font files.
I even changed the menus to use the command key on the mac and to show the
mac cloverleaf icon.
<P>
My friend still (November) has not looked at fontforge. Ah well.
<P>
Dave Crossland had hired someone to integrate cairo into fontforge. But the
result never got back to me. In a moment of foolish boredom I decided I could
do that too. So I studied cairo, and it really didn't seem that hard. But
it was slow -- at least on my 10 year old x86 machine which doesn't support
XRender. Cairo gave two things I cared about, anti-aliased splines in the
glyph view, and anti-aliased text everywhere. Well I needed cairo in the
glyph view, but pango would also provide fuzzy text and was lighter weight
and would also support complex scripts (which fontforge's own widget set did
not do). So I could turn off cairo everywhere but the glyph view but still
get fuzzy text from pango. And speed things up. Then Khaled Hosny suggested
that I implement pango. Hurumph. And I had wanted to surprise people. Oh
well. Implement Pango I did.
<P>
A group in Japan created the "Unofficial mingw fontforge page". A very nice
piece of work. It included a set of X resources which provided another, nice
look to the UI. A theme. And then other people started writing themes -- and
started complaining about and finding old bugs in fontforge's resource reading
code -- it had never been exercised before I guess.
<HR>
<P>
I have received many suggestions from many people, too many to enumerate
here, and FontForge is the better for their requests. Often I have reacted
badly to these suggestions (because they always mean more work for me), and
I apologize for that, but mostly I wish to thank those who have helped make
FontForge what it is today.
<P>
Currently, probably the biggest complaint about FontForge is the choice of
widget set. No one likes my widgets (except me). Unfortunately for the rest
of the world <A HREF="faq.html#widget-set">I don't like the two choices of
widget set available to me (gtk and qt)</A>. I will get started working on
converting to one and then run into some problem I can't work around easily
and give up and go back to my own. Well in 2008 I still don't like gtk, but
I have the fontview working in it. A start but probably not something I will
continue.
</DIV>
</BODY></HTML>