开发者

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

开发者 https://www.devze.com 2022-12-20 06:07 出处:网络
Closed. This question needs to be more focused. It is not currently accepting answers. Want to improve this question? Update the question so it focuses on one problem only by editing this
Closed. This question needs to be more focused. It is not currently accepting answers.

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Closed 3 years ago.

开发者_如何学运维 Improve this question

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.


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.


You can browse the source code of Firefox here:

http://mxr.mozilla.org/firefox/source/.

And Thunderbird:

http://mxr.mozilla.org/seamonkey/source/.

Anyway if you want to build a portable app with plug-ins I suggest you forget about trying to copy Mozilla and learn Qt or wxWidgets instead.


Eclipse RCP can be a good solution to build rich cross-platform client applications with plug-in features. Eclipse RCP is based on Java and SWT technologies.

Here is a list of applications build with Eclipse RCP. A demo mail client build with RCP is also available here. Another great software build with RCP is RSSOwl, a feed reader.


While selecting a language/platform for development, I think the following points are to be thought of:

  1. Development support for the features looking for.
  2. Maintainability - in terms of the support of the platform/language, how much it is supported for maintenance.
  3. Compatibility with the platforms of intention (cross platform etc.)
  4. Future expandability of the language/platform

C++ is simply a great language. The rest (making use of rich graphics etc.) is to learn...


Lots of options and others have already suggested good ideas. Java will make your life (reasonably) easy but C/C++ give you more power at the expense of needing to abstract APIs.

I should add be careful - it'll likely be difficult to make changes to your app once you have committed to one set of technologies and done some serious development without re-writing. For example, if you chose C and the Apache Portable Runtime, you might have a hard time converting to something else. Likewise if you write a UI in swing, converting to SWT/Eclipse will mean a UI rewrite. I don't want to discourage you, just add a warning that I think x-platform apps require quite careful planning.

A few notes r.e. the Mozilla tree too. Thunderbird/Firefox etc essentially build from the same source tree, just using different components. The Mozilla build system is pretty complicated, in my opinion more so than the Linux Kernel. Thus, Manuel's suggestion about forgetting Mozilla is a good one unless there's something to be gained by their route.


Mozilla's category manager makes it very easy to add plugin support to your application, but like other posters said, you'll have a fair hill to climb before you get there.

0

精彩评论

暂无评论...
验证码 换一张
取 消