Re: State of Text Rendering 2024

Hin-Tak Leung <[email protected]> Mon, 29 Jul 2024 00:06:31 +0000 (UTC)
Newsgroups gmane.comp.fonts.freetype.devel,gmane.comp.freedesktop.harfbuzz,gmane.comp.lib.cairo,gmane.comp.gnome.gtk+.devel.general
Message-ID <[email protected]>
------=_Part_1176475_217724679.1722211591529
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

 Please feel free to TL;DR.

A bit more about skia and various skia resources; and a little commentary a=
bout the state of "open-source" font editors, and open-source development i=
n general.



Since I last wrote, qt 6.8 has gotten into beta2, and it is interesting to =
note that they switched the webengine backend (a fork of the chromium code)=
 from m118 to in qt 6.8 beta 1 to m122 in qt 6.8 beta 2. So it is still abo=
ut 6-9 months behind skia/chrome, which are at m128 now. I wasn't expect su=
ch a move to happen during the beta stage - skia itself has 480 commits bet=
ween m127 and m128 (a month apart) so it is about 15-25 commits per day/wor=
king-day just from Skia alone, and Chrome is Nx that (N ~ 20?) - and webeng=
ine is about 60%-70% of chrome by my estimate. That kind of change can be q=
uite disruptive.

skia-python m128 is going out in the next few days - it is only about 10 da=
ys behind skia. The patches to add OT-SVG support to qt webengine (https://=
github.com/HinTak/Qt6WE-OT-SVG/ ) is updated to m122 as in qt 6.8 beta 2; f=
reetype2-demos-skia and skia-building-fun are both up to m128.

I have filed https://github.com/mono/SkiaSharp/issues/2939 to add OT-SVG su=
pport to skiasharp.



Times and again I see the comment: "the code is a mess, fixing the remainin=
g issues is too hard; let's throw it away and start from afresh..." . That =
has certainly been a comment on fontforge; mupdf came about partly, because=
 ghostscript's pdf related code is difficult to navigate. And there has bee=
n gtk4 from gtk3 from gtk2 from gtk1 following the same pattern. There are =
multitude of new and promising font editors come and go.

I understand working on somebody else's code is not as glamourous as starti=
ng a new project. I also see what I describe as the 20%-80% effort/outcome =
divide coming up often: 20% of effort can get 80% of a goal done, but the r=
emaining 20% of a goal will takes 4 times the effort. People getting excite=
d early, and cannot follow through when they encounter difficulties. That s=
eems to apply to some of the new and promising projects.

For something quantifiable - old MS FontVal backend was capable of emitting=
 about ~70 different font error/warning messages ; the first 50+ took a few=
 weeks to add to freetype. The rest (~20) took another 2+ years; the last f=
ew, each of those took perhaps weeks. Skia has about ~2400 public symbols (=
by comparison, FreeType about ~220 the last time I counted), and skia-pytho=
n binds to around ~1000 of them (freetype-py knows about ~160 of the ~220 p=
ublic symbols of FreeType). It comes with an API test of about ~2200 . At f=
irst moved from m87 to m116 a year ago, only about ~800 of the public symbo=
ls are found, so about 20% of skia-python was broken, or > 400/ 2200 of the=
 tests were broken. When skia-python m116 was released about a month later =
last summer, it was down to ~150/2200 . A year on, skia-python m128 next we=
ek, the number of broken tests is ~ 98 / 2200 . The rest is projected to ta=
ke another two years. So let's say it was 400 broken, the first 250 (~65%) =
took about a month, the next 50 ( another ~15% ) took another year, and the=
 last 20% will take perhaps another 2 years from now.

After the last comment, I also thought of "familiarity" as a powerful emoti=
on - people often don't want "better", if "better" means "different from wh=
at they are familiar and somewhat happy with". This is certainly true for M=
ac OS / IOS fans for their retina displays, and MS users who swear by speci=
fic older versions of MS windows having the specific behavior of the font s=
caler / ClearType at that particular version which most pleases their eyes.=
 That also applies to font editors and design tools - people often want gim=
p to be more like Photoshop, etc. Anyway, that's one reason I think FontVal=
-RX (currently projected to 2030, I think) is interesting, for its possibil=
ity of bring Visual TrueType and Glyphs and Apple's libValidation (backend =
of Apple's ftxvalidator) to other platforms.

Thanks for those who read this far - the last bits were boring reading, was=
n't it? :-). That's 20%-80% again.


On Thursday 11 July 2024 at 21:52:10 BST, Hin-Tak Leung <[email protected]=
forge.net> wrote:


Thanks, Behdad, for a very thorough if somewhat subjective and at times inc=
omplete survey.

<snipped> =20
------=_Part_1176475_217724679.1722211591529
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div>                Please feel free to TL;DR.<br><br>A bit more about ski=
a and various skia resources; and a little commentary about the state of &q=
uot;open-source&quot; font editors, and open-source development in general.=
<br><br><br><br>Since I last wrote, qt 6.8 has gotten into beta2, and it is=
 interesting to note that they switched the webengine backend (a fork of th=
e chromium code) from m118 to in qt 6.8 beta 1 to m122 in qt 6.8 beta 2. So=
 it is still about 6-9 months behind skia/chrome, which are at m128 now. I =
wasn&#39;t expect such a move to happen during the beta stage - skia itself=
 has 480 commits between m127 and m128 (a month apart) so it is about 15-25=
 commits per day/working-day just from Skia alone, and Chrome is Nx that (N=
 ~ 20?) - and webengine is about 60%-70% of chrome by my estimate. That kin=
d of change can be quite disruptive.<br><br>skia-python m128 is going out i=
n the next few days - it is only about 10 days behind skia. The patches to =
add OT-SVG support to qt webengine (https://github.com/HinTak/Qt6WE-OT-SVG/=
 ) is updated to m122 as in qt 6.8 beta 2; freetype2-demos-skia and skia-bu=
ilding-fun are both up to m128.<br><br>I have filed https://github.com/mono=
/SkiaSharp/issues/2939 to add OT-SVG support to skiasharp.<br><br><br><br>T=
imes and again I see the comment: &quot;the code is a mess, fixing the rema=
ining issues is too hard; let&#39;s throw it away and start from afresh...&=
quot; . That has certainly been a comment on fontforge; mupdf came about pa=
rtly, because ghostscript&#39;s pdf related code is difficult to navigate. =
And there has been gtk4 from gtk3 from gtk2 from gtk1 following the same pa=
ttern. There are multitude of new and promising font editors come and go.<b=
r><br>I understand working on somebody else&#39;s code is not as glamourous=
 as starting a new project. I also see what I describe as the 20%-80% effor=
t/outcome divide coming up often: 20% of effort can get 80% of a goal done,=
 but the remaining 20% of a goal will takes 4 times the effort. People gett=
ing excited early, and cannot follow through when they encounter difficulti=
es. That seems to apply to some of the new and promising projects.<br><br>F=
or something quantifiable - old MS FontVal backend was capable of emitting =
about ~70 different font error/warning messages ; the first 50+ took a few =
weeks to add to freetype. The rest (~20) took another 2+ years; the last fe=
w, each of those took perhaps weeks. Skia has about ~2400 public symbols (b=
y comparison, FreeType about ~220 the last time I counted), and skia-python=
 binds to around ~1000 of them (freetype-py knows about ~160 of the ~220 pu=
blic symbols of FreeType). It comes with an API test of about ~2200 . At fi=
rst moved from m87 to m116 a year ago, only about ~800 of the public symbol=
s are found, so about 20% of skia-python was broken, or &gt; 400/ 2200 of t=
he tests were broken. When skia-python m116 was released about a month late=
r last summer, it was down to ~150/2200 . A year on, skia-python m128 next =
week, the number of broken tests is ~ 98 / 2200 . The rest is projected to =
take another two years. So let&#39;s say it was 400 broken, the first 250 (=
~65%) took about a month, the next 50 ( another ~15% ) took another year, a=
nd the last 20% will take perhaps another 2 years from now.<br><br>After th=
e last comment, I also thought of &quot;familiarity&quot; as a powerful emo=
tion - people often don&#39;t want &quot;better&quot;, if &quot;better&quot=
; means &quot;different from what they are familiar and somewhat happy with=
&quot;. This is certainly true for Mac OS / IOS fans for their retina displ=
ays, and MS users who swear by specific older versions of MS windows having=
 the specific behavior of the font scaler / ClearType at that particular ve=
rsion which most pleases their eyes. That also applies to font editors and =
design tools - people often want gimp to be more like Photoshop, etc. Anywa=
y, that&#39;s one reason I think FontVal-RX (currently projected to 2030, I=
 think) is interesting, for its possibility of bring Visual TrueType and Gl=
yphs and Apple&#39;s libValidation (backend of Apple&#39;s ftxvalidator) to=
 other platforms.<br><br>Thanks for those who read this far -  the last bit=
s were boring reading, wasn&#39;t it? :-). That&#39;s 20%-80% again.<br><br=
><br>On Thursday 11 July 2024 at 21:52:10 BST, Hin-Tak Leung &lt;htl10@user=
s.sourceforge.net&gt; wrote:<br><br><br>Thanks, Behdad, for a very thorough=
 if somewhat subjective and at times incomplete survey.<br><br>&lt;snipped&=
gt;            </div>           =20
------=_Part_1176475_217724679.1722211591529--