Developing a Web Browser with Haskell

April 1, 2010

The beginning of develop

Filed under: hsbrowser — Tags: , , , — gcarlos @ 8:27 pm

Hello every one, this is the beginning of a series of blogs which i will write about the development of a web browser with Haskell.
There are a lot of haskellers around the world who can suggest improvements to my project, and why not get benefits from it. Probably, and I hope, there is another haskell programmer working on a pure functional web browser, and  we can approach the problem together.

Why I take this project if there are so good web browser walking around the world? Only for the reason of experiment, experiment what would result if i use Haskell as language of development. We know (as a haskelllers) that Haskell offers us a lot of benefits (the inverse is truth too), for example the readable code make a project easy to maintain for others and easy to understand, this could be interesting in a project that has changes like versions of html, css; adding to this, we can make good abstractions thanks to the hight level of programming in a functional language. And the best part i like is  (like others said) the amount of code, it is small for Haskell.

If we think in Java, they have his own web browser that programmers can use in his applications (even if it is webkit or other), we can see too that there are others languages that were used as a language of development of web browsers. This is another reason to develop with Haskell.

Ok, but don’t you know a web browser with Haskell? refering to browser with fudgets, yes, but I want to try with wxHaskell and give support for html 4 or xhtml with css.

Do you say wxHaskell? yes, I known that is possible to use the web browser of wxWidgets with Haskell and wxHaskell, but it doesn’t have css and is all written in C++, we are not getting all the benefits of Haskell. In another blog I will writte how to use this browser with wxHaskell.

Ok, What are you thinking to do? I thinking to give support for html 4 or xhtml, css, and for now only the basic events.
I am thinking to use the tools of Utrecht, uulib for parsing process and uuagc for process my datatypes and attributes, and wxHaskell as a base library of the engine html render. And of course, some library to get the html from the web. I review others libraries for the parsing process of xml, but I don’t know if i will use this.

Ok haskellers, that’s all for today.


Create a free website or blog at