Search code examples
c++programming-languagesproject-managementcross-platformmozilla

How can I build an application like Thunderbird? Which language should I select?


I don't want to build the Thunderbird functionality. I just want to build a project with plug-in features, cross platform, and easy to install. Is there any document which point to the development of Firefox or Thunderbird?

I know the Thunderbird is build in C++, then how can i get these kind of graphics and all other function.

Please help me.


Solution

  • In the spirit of other answers, I feel obliged to point out that Mozilla provides the platform they used to build their applications, including Firefox and Thunderbird, -- see XULRunner.

    With XULRunner you

    • develop interfaces in XUL (cross-platform UI description language that Firefox and Thunderbird use) or even HTML,
    • develop program logic in JavaScript or, if you really need to, C++ (or even Python, like Komodo does),
    • have support for the same extension mechanism as used Firefox/Thunderbird

    Here's a partial list of applications built on top of XULRunner: XULRunner Hall of Fame.


    To answer your original question, the Mozilla platform provides rich functionality on many platforms by specifying a set of cross-platform APIs (e.g. (oversimplifying) XUL for interface definitions) and implementing each API on each platform.

    Implementing such a cross-platform layer from scratch is lots of work, so instead of trying to look at and copy Thunderbird's implementation, you should pick one of the cross-platform solutions mentioned in the answers here (Mozilla, Eclipse, QT, wxWidgets, etc.)

    Each has its strengths and weaknesses, without knowing your current expertise and requirements it's not possible to pick one for you.