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
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>25 years of Dillo</title>
<link rel="icon" type="image/png" href="../img/favicon.png">
<style>
body {
background: white;
line-height: 1.5;
margin: 3em;
font-family: sans-serif;
font-size: 16px;
}
article {
margin: 2em auto;
max-width: 80ex;
}
h1 {
font-size: 28px;
margin-bottom: 0.5em
}
h2 {
font-size: 24px;
}
figure img {
text-align: center;
}
footer {
text-align: center;
margin-top: 2em;
clear: both;
}
figure {
vertical-align: top;
margin: 1em auto;
text-align: center;
}
figcaption {
padding-top: 0.5em;
font-size: 13px;
font-style: italic;
}
</style>
</head>
<body>
<article>
<h1>25 years of Dillo</h1>
<i>Written on 2024-12-15 by Rodrigo Arias Mallo</i>
<p>Back in 1999, a group of developers lead by Jorge Arellano Cid forked the
<a href="https://levien.com/gzilla/">Gzilla/Armadillo</a> code originally
developed by Raph Levien, and began working on what is now known as the Dillo
web browser.
<p>Today, as of December of 2024, <b>Dillo is 25 years old!</b></p>
<p>During this long journey, the project has seen a lot of changes and has
stalled several times, but it managed to survive to this day. As a commemoration
of this milestone, so I wanted to write a short history of the project.</p>
<p>Notice that Jorge had lead the project from 1999 until 2019, and as of
today, we don't have more news about him anymore. I hope he is okay and just
decided to move on to other projects. Since then, I (Rodrigo) decided to
resurrect the project and bring it back to life. I have no relationship with the
previous developers, but I try to do my best to keep the original goals intact.
<p>This document tries to tells the history as I have observed it through the pieces I was
able to collect from the
<a href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/latest">mailing
list</a>, the
<a
href="https://raw.githubusercontent.com/dillo-browser/dillo/refs/heads/master/ChangeLog">changelog</a>
and the
<a href="https://github.com/dillo-browser/dillo/commits/master/">git
history</a>.
<h3>GTK period (1999 - 2006)</h3>
<p>When Dillo was forked, it was using GTK 1.0 as the UI library. The first
releases were done in December of 1999 as recorded in the ChangeLog. At the
time, this is how Gzilla 0.3.9 looked like:
<figure>
<a href="img/gzilla-0.3.9.png">
<img alt="Gzilla 0.3.9" src="thumb/gzilla-0.3.9.jpg"></a>
</a>
<figcaption>Dillo 0.8.3, source <a href="https://commons.wikimedia.org/wiki/File:Gzilla-039.png">WikiMedia</a>
</figcaption>
</figure>
<p>During the initial development, Jorge first designed and wrote the naming
convention for the function names (like prefixing them with a_ when they are
public) or using 3 spaces for indentation, and began adjusting the code base to
follow the same convention.
<p>On March of 2000, the license was changed to the GPLv3 with the permission of
Raph Levien (the main developer of Gzilla/Armadillo).
<p>The browser experimented a large rewrite with the idea to maintain several
flows of communication following a signal driven approach. This work ended up in the
publication
<i><a href="https://ieeexplore.ieee.org/document/890406">Network programming
internals of the Dillo Web browser</a></i> by Jorge Arellano-Cid and H.H.
Von Brand. This work would later derive in the Concomitant Control Chain (CCC),
the mechanism that Dillo still uses today to track multiple connections and
among its internal modules.
<p>Sebastian Geerken began working on the code base at least since June of 2000.
First submitting small patches and then moving to the rendering engine, of which
he became the main architect. The rendering engine is one of the most important
components of the browser, which essentially reads a tree of elements and
determines the size and position of each element on the screen, like the
words of paragraphs and images.
<p>The support for HTML and CSS features started to grow during the coming
years, specially for tables and text elements.
<p>Shortly after GTK2 was released, the team was considering porting Dillo to
it, but there were some concerns regarding the complexity and size of the new
GTK version.
<p>On October of 2003,
<a href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/thread/QES7WLKQMOKJ6UMYK2FYRQV4QTWMBABI/">
Jorge asked the FLTK maintainer Michael Sweet</a> if it would be feasible to
port Dillo to FLTK, as it was considered to align better with the objectives of
speed and stability:
<blockquote>
We were following our plan to port dillo from GTK1 (currently
used TK) to GTK2, when one of our list subscribers suggested
considering FLTK because of shared philosophy backgrounds
</blockquote>
<p>The team decided to focus on FLTK 2 instead of GTK 2.0, as it was considered
far more bloated and slow. Notice that at the time, FLTK 2 was not yet released,
but is was planning to be released "soon".
<p>On August 2004, Sebastian decided to make an interesting design decision,
<a href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/thread/EKVI6KKMVBLPKA54IPPIV5PKNR3OBJW5/">to make the
Dillo widget toolkit independent</a>. This way it was posible to continue the
development of GTK1 and FLTK2 in parallel, among other benefits.
<blockquote>
The most complex part is certainly Dw, since it is tightly bound to
Gtk+. By all means, I want to prevent, that there exist different
versions of Dw, with different features (e.g., when the development of
the Gtk+ version continues, while the FLTK version is developed),
which are hard to integrate.
<p>For this reason (and others), I'm currently working on a redesign of
Dw, which will make Dw toolkit independant. This is not the single
goal of this redesign, it will also make some other features possible,
e.g. a preview window, in which the whole page may be seen with
reduced size, also, it will make reusage of Dw within graphical
plugins possibel, and some more. (Actually, the idea for this design
is already older, except the platform independency, but this was simple
to add.)
</blockquote>
<p>During this period, the DPI mechanism (plugins) was improved and some
functionality was moved to external programs that talk to the browser via the
DPI protocol, like the downloads, bookmarks, FTP and also HTTPS. The version
0.8.3 released on October, 2004 had already HTTPS support. Here is how it looked
like (still using GTK1):
<figure>
<a href="img/dillo-0.8.3.png">
<img alt="Dillo 0.8.3" src="thumb/dillo-0.8.3.jpg">
</a>
<figcaption>Dillo 0.8.3, source <a href="https://commons.wikimedia.org/wiki/File:Dillo.png">WikiMedia</a>
</figcaption>
</figure>
<p>During the following years, the development of the FLTK port was underway.
The functionality that was provided by glib was implemented in a custom Dlib
library so Dillo would not need to depend on glib anymore.
<p>On February 2005, Jorge and Sebastian gave
<a href="https://dillo-browser.github.io/old/conferences.html">a
talk at FOSDEM</a> about the Dillo browser. Unfortunately, there is no
recording of that talk. But shortly after, Jorge gave another talk at LSM in
2005 which is was recorded, which was the first time the FLTK2 implementation
was shown.
<figure>
<a href="https://www.youtube.com/watch?v=A6mb9qt2-3o">
<img alt="Picture of Jorge from the LSM 2005 video" src="lsm.jpg">
</a>
<figcaption>Picture of Jorge from the LSM 2005 video, from the <a
href="https://www.youtube.com/watch?v=A6mb9qt2-3o">YouTube video</a>
</figcaption>
</figure>
<p>The last release that still used GTK1 was 0.8.6 on April, 2006. We will have
to wait two years until the next release 2.0.0 was finally published with the
port to FLTK2 completed.
<h2>FLTK 2 period (2005 - 2011)</h2>
<p>The porting to FLTK2 was intended to make the browser smaller and provide other
features like antialiasing. On April 2005, Jorge reported that the port to FLTK2
was making
<a
href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/thread/LKXQDFLOSGOOG7K63XIFQD6DNFU3PRIC/">great
progress</a>.
<blockquote>
<p>Here are some good news with our current progress in porting
dillo to FLTK. It has being going-on very fast and we have made great progress
so far.
</blockquote>
<p>Here is how the browser looked like with FTLK2:
<figure>
<img alt="First versions of Dillo using FLTK2" src="ph1.png">
<figcaption>First versions of Dillo using FLTK2</figcaption>
</figure>
</blockquote>
<p>During this time however, the source code for the new FLTK2 port was not
available in the CVS to the public. Instead, Jorge was focusing on rising
funding to cover the project development from some interested companies.
<p>On March 2006, Jorge reported that so far
<a
href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/message/NQYEX32HFQXG3UO235IDUP6IFRG34EDS/">it
was not being successful in attracting funding</a>.
The project faced a serious risk of stalling.
<p>After mid 2006, there were no more releases of Dillo until 2008, and so far
no success in getting more developers involved or funding for the project. The
project was considered frozen or stalled and the FLTK2 code remained closed
source.
<p>On April 2007, Jorge
<a href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/message/DBDCWY7AK65QNTLKJMC6DPH7KQFLVKWV/">reports</a>
that he had intentions to release the FLTK2 port
as soon as Sebastian agrees.
<blockquote>
In fact, I think it was more or less 6 months ago, after some
emails with Andrew Tanenbaum, who finally helped me to see that
it was a good time to release the code again.
Since then, I've tried to contact Sebastian to agree on this.
</blockquote>
On September 30, 2007, Jorge finally
<a
href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/thread/2ODF4BFCKD6W33NRVSDER5Z7BEHLOBKZ/?noscript">announces</a> that the FLTK2 port is now
available:
<blockquote>
<p>This is an alpha release of the next generation of the Dillo
web browser. The code underwent a major rewrite: significant
parts of the codebase were ported to C++, and the rendering
engine now uses the FLTK2 library instead of GTK1.
<p>Please read the README inside dillo's tarball.
<p>Developers willing to join the project and contribute are
highly encouraged. Sebastian did an excellent work documenting
the new dillo widget engine (just run doxygen inside DW tree).
</blockquote>
<p>This move started a lot of patches from other developers that were quickly
integrated in the FLTK2 port. These contributions pushed Dillo towards an active
state of development again.
<p>On September of 2008, Jorge
<a
href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/thread/IJ273SVPTQ32DP4YZZ427MGPDCVXB4ER/?noscript">announced</a> the support for tabs, which was
included for the release. After a lot of bug fixing, the next version based on
FLTK2 was ready and on October of 2008, Dillo 2.0.0 was finally released.
<p>A year later, on July of 2009,
<a href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/thread/SKJ3DQURZWEMS7O3UAURQFM3EHNZFV7M/?noscript">Jorge
announces that he is now a father</a>, and
his time for developing Dillo will (understandably) be affected.
<blockquote>
I'm quite happy to let you know that yesterday 19 Aug [July],
my first daughter Lisa was born!
<p>Everything is OK, we're vey happy with this "release" :) and I just wanted to
communicate it here, so you more or less know or understand my activities (or
lack of) in the next days.
</blockquote>
<p>More features and bug fixes were added in the coming releases, until the last
release of the 2.X series, the version 2.2.1 released on 2011. During this
period, we don't observe more patches from Sebastian or emails in the mailing
list.
<p>Here is how Dillo was looking in the 2.2 version, very similar as how it
looks today:
<figure>
<a href="img/dillo-2.2.png">
<img alt="Dillo 2.2" src="thumb/dillo-2.2.jpg">
</a>
<figcaption>Dillo 2.2, source <a
href="https://tuxarena.blogspot.com/2010/09/how-to-install-dillo-web-browser-in.html">TuxArena</a>
</figcaption>
</figure>
During this period, another problem was coming in FLTK. The
<a
href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/message/O4YFNSCDATQDKUNRHUJPGEDJPNKGXLDP/">development for
FLTK2 was considered stalled</a> and there was no official version released.
This caused issued in downstream distributions, as Dillo required to link with
a FLTK package that was not available.
<p>So, the team decided to switch to FLTK 1.3 as soon as it was released, and bump
Dillo to the series 3.X.
<h2>FLTK 1.3 period (2011 - 2016)</h2>
<p>On June 2011, with the FLTK 1.3 release done, the port of Dillo to FLTK 1.3 was
underway. Only a few months later, the first 3.0.0 release using FLTK 1.3 was
published.
<p>On July of 2012, Sebastian presented a new hyphenation algorithm that
implements the same mechanism used in TeX. This new implementation makes its way
to the 3.0.3 release on April of 2013.
<p>Several releases were made until the version 3.0.5 on June 2015.
<p>During these last two years, we see a shift in the amount of commits
introduced by Sebastian, which grow quite substantially.
<figure>
<img style="width:100%" alt="Commits" src="commits-author.png">
</figure>
On that time, Sebastian was working on the GROWS redesign, which changed the way
the size of the widgets (elements of the page) where computed.
<p>Sadly, on October 2016, <a href="https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/thread/OCKYTCIUXPQ26DIBNBIZVJARJEIJXDBI/?noscript">Sebastian
passed away</a>, leaving much of his work not included into a new release.
Since then, the development quickly stalled until in 2019 Jorge sent his last
email <a
href="https://groups.google.com/g/dillo/c/UQ1nWyMa3yo/m/07qhu9KqAgAJ">recorded
by the mailing list</a>, recommending a user to simply use the current version
of the repository, rather than waiting for the 3.1 release:
<blockquote>
> According to the info on<br>
> https://hg.dillo.org/dillo/raw-file/default/ChangeLog, dillo-3.1 [not
released yet].<br>
><br>
> I will probably wait until they release it officially.<br>
<br>
IMHO, you should get it. It's being stable for years.<br>
<br>
--<br>
Cheers<br>
Jorge.-
</blockquote>
<p>After this moment, the project began to deteriorate. On 2022 the DNS domain
of dillo.org <a href="/dillo.org.html">was lost</a>, causing the website, the
mercurial repository, the mailing list and the email server to disappear.
<p>The project quickly became abandoned, as there was no more developer activity
anywhere. The dillo.org site now became a weird zombie copy of the once original
website, but now plagued with SPAM in a Wordpress blog.
<h2>The resurrection (2024 - present)</h2>
<p>On December of 2023, I began spending some time patching Dillo to make it build
again. I tried to fix some simple bugs, and when I saw that the Atari forum had
managed to port Dillo to Atari (!) based on my repo I though that it may be
feasible to try to resurrect it. I commented it on
<a href="https://news.ycombinator.com/item?id=38847613">Hacker News</a> and it
got surprised on the of interest it drew.
<p>I first made a GitHub organization to hold the Git repositories and used the
GitHub pages to make a new Dillo website. I tried to get a copy of all materials
I could, and upload them to the new website and mailing list.
<p>I tried to fix all the issues to finally make the 3.1.0 release, and after
some months of work in my free time, I managed to release it on May of 2024. It
caught the attention of
<a href="https://www.theregister.com/2024/05/07/dillo_browser_v3_1/">several</a>
<a href="https://9to5linux.com/dillo-3-1-open-source-web-browser-released-after-9-year-hiatus">news</a>
<a
href="https://hackaday.com/2024/05/11/the-minimalistic-dillo-web-browser-is-back/">sites</a>
and soon later it made its way to several
<a href="https://repology.org/project/dillo/versions">Linux distributions</a>.
<p>As of today, 15 of December of 2024, I continue to maintain the project, and
we are getting some new contributors which help with patches and discussion
about the development. We are still far from having enough developers to cover
all the issues, but we are slowly making some progress.
<p>The last release of Dillo is 3.1.1, and this is what is looks like when
loading the new Dillo website:
<figure>
<a href="img/dillo-3.1.1.png">
<img alt="Dillo 2.2" src="thumb/dillo-3.1.1.jpg">
</a>
<figcaption>Dillo 3.1.1 in my computer</a>
</figcaption>
</figure>
<footer>
<a href="../index.html">← Home</a>
</footer>
</article>
</body>
</html>
|