The next presentation that we had in the subject Case Studies II was given by Carlos García Campos, that he gave a speech about GNOME, where he collaborate with the community, but he is working in the company Igalia and from the beginning started on the Webkit team.
What is Webkit?
Carlos indicated that it is curious to think of Apple as a company that does not produce open source but it is not, and Webkit is an example.
- Open Source: BSD-style and LGPL licenses.
- Compatibility: regression testing to maintain compatibility.
- Standards Compliance: regression testing to maintain standards compliance.
- Stability: crashes, hangs and regressions are dealt with promptly.
- Performance: maintaining and improving speed and memory use.
- Security: security issues are ﬁxed promptly.
- Portability: desktop, mobile, embedded and other platforms.
- Usability: good human interface design principles.
- Hackability: trying to keep the code relatively easy to understand, using straightforward algorithms and data structures when possible and trying to write clear, maintainable code.
- Web Browsers: Epiphany, Chromium, Arora, Safari, Midori, OLPC Sugar, Android Web Browser, etc.
- Email clients: Mail (Apple), Claws Mail, Balsa, Evolution, etc.
- IM/Chat clients: Adium, Empathy, Colloquy, etc.
- RSS Readers: Liferea, NewsFire, NetNewsWire, etc.
- Help viewers: Devhelp, Help Viewer (Apple), etc.
- Media Players: Rhythmbox, Real Player, etc.
- Others: like apps of web development that use previewers with Webkit, and many others.
Where is Webkit currently used?
And there are a devices using Webkit:
- Computer Desktops: GNOME, KDE, MacOSX, etc.
- Mobile Phones: Android based phones, Maemo based phones, Meego based phones, iPhone, etc.
- Tablets: Android based tablets, WebOS based tablets, iPad, etc.
- Video game consoles: Nintendo 3DS, PlayStation Vita.
- E-book Readers: Amazon Kindle.
- and growing.
Carlos told us that in Webkit architecture the application is out and there are a layer called Webkit, there two thing that are called Webkit, all the layers and the first layer.
- WebKit: API layer.
- WebCore: Rendering, layout, network, multimedia, a11y, etc.
- Platform: hooks to implement generic operations for every platform.
But Webkit don’t exists like an application, but needs a platform API (called port) to use the Webkit rendering motor. The most relevant ports are:
- Apple Mac
- Apple Windows
- Cairo-based Windows
- Windows CE
Some numbers of Webkit
- Total Source: 1.203.452
- Total Websites: 154.324
- Total Tools: 147.490
- Total commits: 26.621 – reviewed: 17.673 (66.38%)
- Commits per day (avg): 73
- Commits per month (avg): 2.217
- Bugs closed: 16.947
- More than 350 contributors (45 not committers)
In my opinion, this presentation was very interesting not only because it allowed me to know Webkit (I didn’t know completely nothing about it) but because it reveals the importance of this platform in the software world in general, not only for FLOSS. As we have seen Webkit is used in many applications and different systems.
Another fact that I have found very interesting is that the origin of Webkit was Apple, which is not highly regarded in the FLOSS world, yet Apple had been able to release Webkit for the benefit of large number of projects. It is curiously appreciate that much advertising is false and there are many big companies involved in some way with the FLOSS.