Eclipse/RCP (SWT) vs Qt Creator (Qt) as a framework for plug-in development?
I have known many good applications (including UG Team Center, IBM Lotus Expeditor etc.,) developed over Eclipse (RCP Framework). Of late, i find some application developed over Qt Creator exploiting its plug-in architecture (GCF, VTK designer etc.,).
I wish to know the pros and cons of Eclipse and Qt Creator as base framework for developing applications over it. Also if someone can list down the modules that support the applicat开发者_StackOverflowions in each of these framework. Which one do you recommend for a cross-platform application development?
many thanks.
Disclaimer: I hack on creator
I consider both creator and Eclipse to be stable and pretty full-featured IDEs. Creator is focusing heavily on C++ and Quick (the new bling thing in Qt land;-) while Eclipse supports a whole host of languages, with its Java support really shining. This of course does also influence the functionality your plugin can easily provide.
The first visible difference to a plugin developer is of course the programming language: Eclipse is written in Java while creator is developed using C++ with Qt. Depending on your development background that can be pretty significant.
Both provide a decent plugin system with all the mayor functionality like handling dependencies between plugins, versioning, etc. I guess the plugin system of Eclipse is a bit more "battle-hardened" by now, since they have quite a few more 3rd party plugins that is constantly "testing" it. Both projects have some APIs that are still developing (my impression is that this less of an issue with eclipse at this time), so it is worth checking the roadmaps.
Eclipse tends to have more plugins available and this can be an advantage if your plugin can benefit from functionality already implemented in other plugins. Graphic modeling, etc springs to mind here. Creator does not have that many plugins yet, but there is lots of Qt-based open-source code available which should be straight forward to port into plugins (if the licensing permits this!).
Both projects are open source, so you can view the code. The license is different though Qt Creator and Eclipse. Better get a lawyer to read over them if you consider doing a proprietary plugin for either of them... but that is just standard advice:-)
Both project have welcoming user communities that are willing to help when getting stuck and both projects accept code contributions (in case you do not want to keep updating your code yourself all the time;-).
That is what I can think about at the top of my head...
Initially I was a huge fan of QtCreator. Then I discovered that it was letting me get away with many programmatic things that I shouldn't have. I can't remember any off the top of my head, but when I ported to Mac OSX I decided to build it in XCode rather than QtCreator. Upon my build, I discovered a load of errors that I had never seen.
...And I had known this as normally functioning code...
Anyways, I still work in Qt a lot and thoroughly enjoy it, but I develop in Visual Studio, XCode, and GCC on their respective platforms. Sorry that I can't remember any examples, I ran into this problem 6 months ago.
Eclipse is more an Java-based, Qt is C++ and some helpful additions (signals+slots among others). I've never heard of Eclipse as a framework, but that of course does not speak for or against it. I'll give my thoughts on Qt here:
I believe strongly in Qt as a base, because it (its devs) has had years of experience providing a good cross-platform framework with pretty much everything you'll ever need. It has network, file system, gui, algorithms, containers, translation tools, UI designer, VERY good documentation, and a solid community. It is C++ based, which makes interaction with pretty much any C or C++ library "a breeze". Qt is by far the more mature player here.
Note: I develop on both, I share my experiences on a Java blog, Qt blog, and Forum Nokia blog. I'm also a Forum Nokia Champion.
The simple answer is Eclipse RCP.
I blogged about cross-platform desktop frameworks sometime ago here, including Eclipse RCP vs Qt Creator vs other frameworks.
Eclipse RCP is not just for complex applications. Developing with Eclipse RCP is very easy to get started. Get a good book for Eclipse RCP, I recommend this one. And you practically have no platform barriers. It's good for long term development. In my personal experience, maintainability for Eclipse RCP apps (and well designed Java apps for that matter) is much better than a Qt app.
An "extension" to Eclipse RCP that I suggest is EMF. Although EMF is very complex, the easiest path is using it to design metamodels and generate Java classes from it. You'll also be able to edit your objects easily in RCP UI (in web apps world, the "CRUD" part). Here's a good practical book on EMF.
Eclipse ecosystem is very broad, and it may be confusing at first, but the trick is to focus on the task at hand. After you're confident with the basic stuff (which is relatively easy, you can run your first hello world RCP plugin/app just by starting a wizard or following the provided tutorial), the plethora of tools and options in the Eclipse community is just awesome. (most of the Eclipse projects are mature/stable, some of them require patience or even contribution, but that's the beauty of the open source community)
Note that I have nothing bad to say about Qt. Qt is an excellent framework, with Qt Quick and QML and mobile support. And it's best used if you're on to those purposes. Unless you actually require Qt, Eclipse RCP should make your life easier.
精彩评论