Is there a good framework for Java desktop applications? [closed] - java

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I have developed many desktop applications in Swing, even those a bit more complex, with Hibernate and Spring integration. I found out that many things repeats and should be done quickly and in convenient way, like application lifecycle, logging, alerts, authorisation, forms and their validation. I started looking for frameworks. I met Swing Application Framework which is dead since several years, as it turned out. Spring RCP really met with my expectations, especially creating forms basing on Java Bean model is what I liked, but I realised it is dead too. Netbeans RCP is not for me, I am using Eclipse and I don't want to use another IDE for desktop development. I am not really excited about Eclipse RCP, I got feeling that it is too Eclipse oriented, I would prefer something low coupled to any tool, besides it is not so straightforward to learn.
I am surprised that there is so weak support for developing desktop-based business applications in Java. It's like Java was only used in web environment. What is the preferred language for making such apps then? And if I want to stay with Java, is there a chance to find something similar to Spring RCP (so far I couldn't)?

i asked a similar question some time ago, see Swing desktop-development if you are interested.
My conclusion was/is that there simply are no frameworks that can do for your desktop-application, what any of the bazillion great WEBframeworks can do for your webapplication. It seems absurd, but in my experience due to the great web-frameworks and the lack of desktop-frameworks it has become much easier to develop a webapplication.
I have been using Spring-RCP for 2 projects. It was great, but is pretty much unusable nowadays, because you are stuck to spring 2.5 with it. Also it "feels" a bit slow to me and is really memory hungry on 64-bit machines, which is a Spring-Swing problem most likely: https://jira.springsource.org/browse/SPR-9628
I waited for Project Valkyrie, but it seems to be dead already
I think you will not find anything that completely covers your requirements. http://swingx.java.net/ could maybe offer you a few GUI-Widgets, like JXDatePicker. I also recommend JGoodies Binding and JGoodies Form, both are great. IF you use a client-server application i highly recommend using Spring-Remoting (e.g. HTTP Invoker) with Spring-Security. Really makes things simpler.
I enjoy developing desktop-apps with Swing, but unfortunatly you really have to "go the extra mile". Client-Server-communication, security or even validation are only a few examples of the many things that seem overcomplicated these days (compared to modern webframeworks). Also you might find out that it is not as easy to automatically build, sign and deploy an application with java-webstart as it should be.
Spring-RCP was the closest thing to a "complete" desktop-framework that i found so far and it has been dead for years.
Good Luck!

Please try griffon. This is based on groovy language and inspired by grails framework. It runs on JVM, language is very much friendly for java programmers.
Quote from the site
Griffon is an application framework for developing desktop
applications in the JVM, with Groovy being the primary language of
choice. Inspired by Grails, Griffon follows the Convention over
Configuration paradigm, paired with an intuitive MVC architecture and
a command line interface.
....
The architecture is very much extensible.
The Griffon framework is extensible via Plugins. There are many to
choose from. For example you'll find plugins for 3rd party Swing
components like Swingx, Jide and Macwidgets; persistence related
plugins like DataSource, GSQL, Hibernate among others; 3D graphics and
animation support is possible via JOGL, LWJGL and Processing. And many
more!

It mostly depends on the size of the application.
For smaller and medium sized apps it makes sense to use JavaFX 2 that does not use a differnt language, you can start of by some of the basic tutorials .
As you have mentioned for Enterprise level application Eclipse RCP and Netbeans RCP are a good pick.
Netbeans RCP is lot simpler for development, you should not dismiss it just because of the IDE preferences. There is a free book about it that is a good starting point.
There is also the option of e4 that should be significant improvement for eclipse but I can't say that I have used it yet
Related resource worth looking might be :
http://netbeans.dzone.com/why-from-eclipse-rcp-to-netbeans-platform
Netbeans RCP vs Eclipse RCP

Check out JGoodies. Not only is the Look and Feel much better they also offer a framework to design Swing apps.
The big issue when it comes to desktop applications is that it really depends on what you're trying to design. Unlike webapps where it's webpage->request->webpage, desktop application can pretty much do anything. There is no standard cycle, even for business apps. It's much much more like AJAX than say your normal Java EE or PHP webapp. And how many AJAX libraries actually offer a framework other than calling and updating specific components.
You could have menus, buttons, panels being updated, things being rendered on the fly, graphs changing, data being updated, etc.
If you're just looking for forms, then JGoodies is probably your best bet.

I don't know of any framework as such, but Netbeans provides a drag and drop wizard for Swing components. Eclipse also has similar plugin but it is based on the Netbeans plugin.

I found out that many things repeats and should be done quickly and in convenient way, like application lifecycle, logging, alerts, authorisation, forms and their validation.
I'd recommend to extract these into your personal "Core" library that you can share and use across all your projects. Since you already implemented the things you're talking about, it should be easier to generalize them than study a completely new framework. Probably, a private Maven project?
The development focus is moving towards Web and Mobile, so we shouldn't expect any considerable efforts from framework vendors for Desktop.

Related

Please recommend a good Java framework for web development [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am new to Java framework.
I am looking for a good Java framework to help me build a JSP web site.
I googled for Java framework and it returned a few related terms for me:
struts, Cocoon, WebWork.
I have no clue which of them is for beginning learner.
Do I need to download netBean or eclipse to work along with any of these Java Framework? I need an auto-complete tool that helps when typing hundreds of lines of code.
Please advise and help.
Thanks
Edited reason,
I have just found out that netBean has got Struts Java framework, what do you think of it? Is it good for beginning learner?
The Play framework makes it easier to build Web applications with Java. I havn't tried it though, but I feel it's "with" the present day web-dev framework ecosystem. It seems inspired by Rails.
Very much depends on your concrete needs but I'd invest some time into looking at Spring. It is a really great and flexible framework that promotes best practices.
I admit it will be a bit difficult to understand initially, especially if you're a beginner. But if you're willing to learn it's real fun. For using Spring framework you can use any arbitrary IDE, it really doesn't matter, although personally I prefer the Eclipse IDE, in this special case the Edition for Java EE developers.
As Juri said, Spring is worth looking at. For the specifics of web development, take a look at the Spring MVC tutorial.
Spring is pretty good. Struts is another framework with a pretty easier learning curve IMO.
#kwokwai: I have seen your comment on #Juri post.
Spring IDE would be helpful if you plan to choose Spring for your application.
Grails is my favorite.
While it's not Java the language, it's Java the platform. It compiles to Java bytecode and runs on any appserver / servlet engine. And integrates well with existing Java code.
Grails is more than just a web framework, it's a complete web application stack. But you can use only the web part if you like.
Grails really brings speed of development known to e.g. Rails to the Java platform.
During development, you can edit your controllers and services, and just hit reload in the browser, no redeploy needed (as you also can in The Play framework).
Tag libraries are really easy to create. And being able to write Groovy code rather than EL in the views (GSP, Grails' variant of JSP) is really powerful.
I would recommend Apache Wicket, its very easy, no XML-Configuration-OVerhead. Just have a look a the examples on the website.
Play! Framework. This is by far the easiest one to use. Been a user of Apache Turbine (since 2002), Apache Struts, CakePHP, I finally landed on Play!. You can watch a 10 mins video on http://www.playframework.org/ but here I would like to mention some of my gotchas:
Easy, actually too easy to use. Many people's first impression on Play is it makes web dev become fun again on Java
Scalable. Because of the stateless model, the only thing you need to do to scale your 5 page hello world web app into a million vists per day busy site is to increase your box and running more instance of your app. You don't need to change one line of code to reach there.
Performance. Check this to see how Play! outperforms it's competitors when you use it as a standalone http server
Very active community and very good contributors. The questions you post on Play's google group get answered promptly. And you can find many interesting stuff contributed by community at here
You can also take a look at Spring Roo. It allows you work with Spring in a very lightweight fashion. In terms of ease of use this seems on par with Play framework or even better (due to tools support). Spring itself is a very established application framework and you are very likely to work with it during your professional career.
Although I'm spring user, I would encourage you to look at JBoss Seam. This framework is built on top of other powerful technologies, such as JPA, EJB3 and JSF. You will spent some time learning it of course. And keep in mind, that in order to run its applications, you will need java EE server such as JBoss, not an ordinary servlet container like Tomcat (actually you can run Seam on Tomcat, but you will get into some problems). And java EE hosting costs usually ~two times as much as Tomcat hosting.
Here is the comparison of Spring and Seam:
http://www.andygibson.net/articles/seam_spring_comparison
Just google seam vs spring if you want more details.

Is there anything RAD comparable to VCL? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
After years in embedded programming, I have to develop a Windows app. I dug out my old C++ Builder and Delphi. These are great and the latest version costs over $1k, so I won't be going there.
What I particularly like is the VCL (visual component library) which let's me code my own components and share them with others, plus the thousands of existing 3rd party components. I noticed that there is now also a RAD PHP from Borland too.
I realize that MSVC, QT, NetBeans, etc are good enough IDEs for RAD, BUT does anything offer the ease of the Borland products for developing additional components - and does anything else have thousands to choose from?
PC based? Cross-platform is good. Browser based? Free is always good ;-)
I don't particularly care about the programming language.
I went with Lazarus and am pretty happy with it. I can't just recompile my code and expect it to run, but it covers 90% of my existing Delphi code. I'd recommend giving it a whirl before spending $1k for Delphi
Try Lazarus, Lazarus is a cross platform visual IDE for Pascal and Object Pascal developers. It is developed for and supported by the Free Pascal compiler. is available for several Linux distributions, FreeBSD, Microsoft Windows (win32/64/CE) and Mac OS X (including IPhone/IPad). The language syntax has excellent compatibility with Delphi (classes, rtti, exceptions, ansistrings, widestrings, interfaces).
for additional info check theses links
free pascal
Components and Code examples
Lazarus Components
SHORT
.net, it's the closest you will get
If you want develop desktop apps, Delphi is a clear winner: Single executable, no runtimes, few dependencies in the case you have to deploy an app with database access, native code
As already said, Lazarus + FreePascal makes for the "free Delphi" role. I personally didn't have a good experience with it - but I heard that got better since I last tried it.
(I'm talking of lazarus IDE, since FreePascal seems to be a very stable compiler and used by very serious Delphi projects for various purposes - like creating Win64 binaries, for example)
.NET, on the other side, offers some free solutions:
On the multiplatform side, Mono + MonoDevelop
On MS stack, the Visual Studio Express IDE.
All the choices allow you to visually create hierarchies of forms and change it in design time. Visual Form Inheritance, VFI for short, can save you a lot of time if done well.
Web things, the major players are Java (JSP and the like) and .NET (ASP.NET). Having done some webservice development in dotNet(1.1), I loved it for the simplicity. Seems Java boys have a lot more work to make things work (that was said from a Java enthusiast friend of mine) with SOAP Webservices.
The Visual Studio Express Editions are pretty good if you don't want to spend any money on an IDE. I started programming in C++ Builder and also liked the VCL a lot. I dabbled in Java a bit but found C# to be much closer to the C++ Builder/VCL experience.
http://www.microsoft.com/express/
You can always try these out and if you really like the environment the upgrades aren't too expensive to the full versions. I think the only major feature missing from express editions are plugins.
For the Java platform, Apache Click is a web based solution.
Highlights:
Very easy to learn
Component and Page Oriented design
Event base programming model
Stateless and stateful page support
Exceptional performance
Automatic form rendering and client/server side validation
Supports Velocity, JSP or FreeMarker page rendering
Supports Java 1.5 and up
Click examples are available online at http://www.avoka.com/click-examples/home.htm.
There are a number of extension projects that provides extra features and components.
Click applications can also run "in the cloud" on Google App Engine. This means you can develop and test them on a local app engine server and then deploy them to GAE which is free within the basic quota (up to several millions of requests per month).
Eclipse is also a great IDE, and there's a good number of libraries which can integrate into it, so Eclipse + free 3rd party components >= VCL.
If you are interested in PHP, the next version 6.9 of the NetBeans IDE will include support for the Zend Framework. Milestone 1 of NetBeans 6.9 is already available here (24 MB size).
A blog entry with screenshots can be found here: Zend Framework support.
There are quite a few options available. You can download the express versions of Visual Studio for free and they are quite good. Not as many features as the full paid versions but very close (however the C++ version DOES NOT support MFC/ATL only C++/Win32). This gives you great exposure to the .net framework if you wish to learn it.
I haven't used the free Delphi tools so I can't say what they're like.
You could also give Qt or WxWidgets a try as well. Both are great products but I think Qt is more mature and has a better component library. However both of them come with runtime components that have to be distributed with your app.

What platform would you recommend to develop a SAAS application? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
Should I use LAMP, .Net, or any other platform? I have access to resources with LAMP, .Net, ROR and Java experience. Thanks.
Sorry for being vague. Could you give me a few pluses and minuses of each like Paul? Thanks for your time and effort.
If you're planning to host the system, then you are best to work in a language that you are comfortable with and can hire people to help you. That means you want something reasonably popular, but also oriented towards the type of functionality you are implementing. Presumably you are writing some form of web application.
Personally, my favorite web app language was Perl, but it took a huge amount of self-discipline to keep from making it a mess. It's probably not great for big teams, and it's hard to hire people with experience.
PHP is great for pounding out web apps, and it has a big following. Unless I haven't been keeping up on it LAMP, .Net, ROR and PHP are all bounded by web 1.0 technologies, which means augmenting them with a JavaScript library like Dojo if you want to use AJAX (which is all the rage these days).
If the software is enterprise, then Java or C# are more sellable, but since you're running it yourself that doesn't matter. Personally I'd stay far away from J2EE, it's just too much complexity for too little functionality.
My latest combo is Java, GWT and hibernate, but I find they are very difficult technologies to master. Good if you have the time for long term development, but not so great if you're in a hurry.
So, if you're in a rush, prototyping in LAMP, with a very simple 1.0 front-end is probably best, then later once you've crystallized the concept, redoing the system in some stronger technology will help you get to the next level of performance.
Paul.
If its a professional project then use whatever you have the best resources for, if you don't know then ask your coworkers what they would be most comfortable with. If things really are equal (and I doubt they are) then use each of the platforms to write a random platform selector, and use that to make your choice.
Conversly if its a personal project and you are looking for something new, then use the thing that you know least about.
Waaaay too subjective/argumentative.
They all have gains and losses and are all adept at SAAS type architectures these days. Use whichever you're most or least comfortable with depending on your goals.
Try to see which platform has purpose built solutions. I know in .NET there is Apprenda's SaaSGrid and in Java, BEA was working on something called Genesis, but I think it was cancelled when Oracle bought them.
My answer is the same as Paul's.
Know who your users are and if they have software requirements, such as Microsoft licenses etc. It's much easier to bind Microsoft applications with .net than any other language.
Know your budget if you have one. PHP will be the cheapest and fastest to build a web app in. All you need is apache, roughly 10 lines of site configuration, and about 50 lines of code for a SAAS app.
Is it a once-off develop and forget? Most applications won't be, so you'll need to develop it in a language that's accessible and well supported. No point developing in Ruby or Perl if you need high availability, accessibility and support.
Keep in mind that you can develop enterprise-level applications in PHP, Java and .NET. One of the reasons why people develop in .NET and Java for enterprise level applications is for the available support, stricter languages, typically better developers etc. It's a myth that PHP is no good for enterprise - each platform is only as strong as its weakest component.
Are you using an Oracle or Microsoft database? While PHP can connect to those systems, they require additional drivers to do so.
First of all, figure out what you're trying to build. Prototype it in a language that you won't develop the final solution in (unless that language is your strongest and most competent language) so that you simply can't continue using the prototype as the final solution. Transfer the business logic, framework scaffolding and library ideas to your chosen language.
I've developed SaaS apps in PHP before, and from my experience there's hundreds of ways to skin the same cat so to speak
Pros:
Cheap development
Rapid development
Low server costs
Low initial maintenance costs
Cons:
Semi-competent developers who are most likely unfamiliar with OOP & SAAS concepts (this is almost always a given)
Expensive maintenance down the track, especially point 1
Performance overhead without effective caching strategies
Every developer who touches the application will want to develop it into their own system
Not a strongly typed language, so type hints are very important as well as constantly validating input for type and correctness (word?)
Hope that helps...
You could use a free web RAD called 4WS.Platform:
www.4wsplatform.org
which is free.
You could deploy it in Google App Engine and use it to create web applications on the cloud, which are a Saas solution...

Is Java suitable for "Web 2.0" applications? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I was chatting to someone the other day who suggested that Rails and PHP are the most suitable platforms for web applications, and to avoid Java. My background is mainly Java, and I know that it is considered by some to be too verbose and "heavyweight", but is used occasionally (e.g. by LinkedIn).
So I'm wondering whether anyone has had success using Java for a recent web application that has gone live, either using the language itself (e.g. with Stripes/Spring + Hibernate), or the runtime with a dymamic language (such as JRuby, Groovy, Jython)? If so, please share what worked and what you would do differently.
Some background (added later):
Tim O'Reilly coined the phrased "Web 2.0" and here is his definition: http://www.oreillynet.com/lpt/a/6228
I think it's the "End of the release cycle" and "Lightweight programming model", involving rapid iterations and simplified deployment, where Java may be less suitable. Thoughts?
I would argue that there is no specific technology for Web 2.0. The main concept behind a Web 2.0 application is that much of the content is provided by it's users and not one specific person. If you can achieve this with Java, then that is fine. Many people are creating startup companies with technology that is free because they don't have the capital.
there are two totally different concepts called 'Web 2.0':
user generated content (usually with some 'social networking')
dynamic AJAX-based web apps
the second one somewhat dictates the technologies that you have to use (at least some JS, and machine-readable content in (some) responses). of course, there's nothing against using Java (or CGI, Perl, whatever) on the server.
the first one doesn't have anything to do with technology, and everything to do with the service itself you're providing. again, you can use anything you want.
why are these two mixed in the same therm? and more to your point: why are dynamic languages assumed 'more appropriate' for it? i'd guess it's just a temporal coincidence, all three things (user-generated content, AJAX, serious dynamic languages) jumped to the limelight roughly at the same time, and most of the proponents of each concept are using the other two.
in short, better avoid undefined marketroid terms like "web 2.0", and use proper descriptions. at least while working. when selling to the VCs and PHBs use any and all buzzwords that come near!
Of course it is. Java has some extremely mature and well tested frameworks for doing web applications, including so called Web 2.0 websites. Hibernate, Spring, even Struts and Tiles, or even Plain Old Servlets will do.
In addition, Java is very fast (see the Debian speed tests) compared to Ruby, which is good for websites handling lots and lots of requests, which Ajax does tend to inflate the number of! :)
Your friends, with all due respect, are dolts. Java is a rich language with incredible tools support. You could build a fantastic backend in Java and use anything you want for the front end.
It took me a while to figure out what to say in this answer because I was agape at the sheer craziness of the notion.
Where I work, all our applications are built using Java. They are web apps, built using either hibernate or direct JDBC on the data end, and using Struts or JSF for the presentation side. I would not work with JSF again unless we had access to the latest version (we were stuck on 1.0 because of our IDE) as we encountered MANY issues with it and were told that they had been fixed in later versions. As for the rest of the technologies, they work fine if you know how to use them.
In general, you are going to be better off developing in a language you know well and is capable of doing the job than in one you barely know but may be the "best" language for the job.
"Web 2.0" more often than not refers to the user interface than the underlying technology powering the webapp.
What's stopping a Java-based webapp from being totally flashy and AJAX-y in the UI layer? Nothing. You'll be writing the middle layers in Java - which is transparent to the user anyway.
I think that the people who gave you this advice are more concerned about being "hip" and (what they perceive to be) current with what is "hot" right now - which is totally irrelevant to the markup of your UI. I wouldn't listen to them.
Wonderful day, I get to post about Wicket again! :)
Java is very suitable for Web2.0 applications as long as you know how to use the tools which are available for you. The Apache Wicket I just linked is a POJO-based web application framework with such incredible way to hide all that boring server-client stuff that it allows you to do just about anything you can think of. The strong point here is that since Wicket is just POJOs, you can get very fast, iterative and unit tested code that works just as one would expect in browser.
To create Web2.0 sites with Java you don't of course have to use Wicket but I'd recommend it anyway.
I build Web apps at work in Java and then I use PHP for my personal projects. While Java is certainly capable of all that you might require it to do, I've found it a little cumbersome at times and have wished I was using PHP (or another language, for that matter). It does depend on what type and size of application you're building, but I think there are good reasons why many people choose PHP, Ruby and Python for their personal projects, i.e. where they get to choose what language they build Web apps in (and not their superiors).

Java Desktop application framework [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am working on designing and building a desktop application. I am thinking about using eclipse or netbeans for the base of this application. However, I have never built on either of these platforms. I am personally leaning to using netbeans because it seams like that platform is an easer learning curve. But, I wanted to ask people that have actually build on these platforms before which one is easier to use?
My personal definition of easer is as follows:
Easy to get started with
Consistent and logical API
Good documentation
Easy to build and deploy
Thanks very much,
Josh
I can't say enough about the Eclipse RCP platform. I would recommend it for any Java desktop app development.
It's free, has great tutorials, and allows cross-platform development of rich desktop applications that use native OS windowing toolkit, meaning that your application will look native in any platform. It also has a clean API that stays out of your way, and makes deploying to any platform a piece of cake.
If your interested check out this book: http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612
Easy to use: I have experience developing on Eclipse and I have to say it's not easy to understand its development model. Sure for basic stuff it has some wizards that make easier, but for something a little more complex it's just difficult. I don't know about Netbeans, but I heard its easier.
Consistent API: I think Eclipse wins in this aspect. It runs over OSGI (brings some complexity though) and has plugins extensions for pretty much everything. It seems to be the platform of choice for plugin development, so I can assume it's reliable.
Documentation: Eclipse wins by far. The help from eclipse site is excelent and the mailing list has plenny of users questions.
I have used Eclipse as a framework base but it was mostly just using SWT-- we didn't really use much of the RCP.
It really depends on what you're writing, but from what I have learned from using Eclipse it is really only suited for writing an app that involves you editing data using various views (just like editing code).
Anything more random that than can cause you to start pushing the framework in a direction it wasn't designed and causing massive fail.
You'll use Swing to develop your application because any other windowing framework is useful only if you have a previous knowledge or the appropriate background.
You can rely on http://www.javadocking.com/ to streamline you application.
If your application requirements are highly focused on the user interface, maybe you can look in another direction like Adobe Air.
RCP has a bigger learning curve, but once you learn the basics the Eclipse IDE itself supports building RCP applications very well. I have only built a plugin for NetBeans (not build a full-fledged application), and the learning curve was lesser than for the RCP application. The book Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications provides a detailed introduction to building RCP applications.
Please see some of the open source applications at http://www.eclipse.org/community/rcp.php before opining that RCP is only for building a text editor. Thanks.
I have a similar task and I am also considering different frameworks. I have some experience with Eclipse (~4 months developing RCP) and now Netbeans (played around for a couple of days). IMHO these frameworks are too complicated. You just end up debugging into Eclipse-specific plugin loaders trying to figure out why you get a ClassNotFoundException or a NullPointer. The same story with NetBeans: somehow somewhere somewhat reads out xml config files and creates UI from that, cool, as long as you follow the tutorial. And of course you can't develop and Eclipse-based RCP using some other IDE, NB is also very jealous about its usage (unless you do some hacks like I did).
What I'm lacking is a clear way to debug my threads from main to action performed. Instead I'm always told what I have to do to avoid exceptions. And so I have to keep my fingers crossed each time I'm trying to pull something new. And it never works out the first time.
Now I thought about the features I need and I looked out for smaller projects that aim at specific functionality like plugin management eg. And there are plenty. Just compile a list of the functionality you need and start adding smaller frameworks by integrating them into your project. This also makes sense since your project should consume less RAM in the end.
Introduction to Eclipse RCP.
I've done a little work with both, but only on relatively simple applications. Both seem to have roughly equal capabilities. I personally prefer the Netbeans platform as it makes more sense to me.
You should also consider JSR-296, the Swing Application Framework. It provides a basic framework for building Swing Applications, managing application resources, state, etc, but without as much "baggage" as Netbeans and Eclipse. Netbeans IDE has a number of tools for building applications on the SAF. See https://appframework.dev.java.net/ for more info.
Without knowing more about your application, it's hard to point you at the appropriate strengths/weaknesses of the two platforms.
If you really want to avoid crossplatform maintainance then work with Swing. This buys you all platforms. RCP requires native libraries for each platform.
We have had good experiences with Swing.
I would use eclipse RCP when you really need a platform to built on top, not just "widgetery" like swing or swt. RCP is rock solid and consistent, modular and very flexible. Once you master it, you get huge benefits. Being a platform it give you the most commonly used things - preference, configurations, automatic updates, layout management, branding and things like that. You build a product, not an app. But learning curve is pretty steep in the beginning.
Swing on the other hand is not a platform, you will re-invent the wheel by writing your own things I mentioned above. But yes, swing is faster to learn and get started. I think it fits better for smaller applications with shorter life span.
Look some of the open source applications at http://www.eclipse.org/community/rcp.php before opening that RCP is only for building a stuff.

Categories

Resources