Java Desktop application framework [closed] - java

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.

Related

Developing Desktop Application using Java [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I was figuring out on the net, how to create a desktop application with Java. I found I can do it through NetBeans IDE. Is there a better IDE?
Can you suggest me a suitable eBook for learning Java NetBeans?
There are three major IDEs for Java:
NetBeans - https://netbeans.org/
Eclipse - http://www.eclipse.org/
IntelliJ - http://www.jetbrains.com/idea/ (This one is a commercial product.)
Pick your religion.
Actually, you can create desktop application with Java Swing GUI Toolkit, which is a part of the Java JDK, regardless of the IDE. #Lee Meador gives you some to choose from.
Here is a tutorial on making a simple desktop application with NetBeans.
There are also tons of YouTube tutorials for beginners. Search for "Java tutorials" and you'll be all set.
IDE preferences are fairly subjective. Netbeans is not bad. Eclipse is also a good IDE. My favorite one, though, is IntelliJ IDEA. They have a free Community Edition which lets you do a lot of things, but I paid for it to get full functionality.
As far as eBooks for learning about the IDEs, I would suggest just looking on the website of whatever IDE you end up choosing.
Here's how I see things when it comes to IDE's:
NetBeans is fantastic for beginners, but the code it generates for the Swing WYSIWYG editor looks like absolute garbage. If you're okay with keeping the code in NetBeans and not worrying about how the code for you GUI looks, it's an excellent way to go if you don't feel like hard-coding Swing.
Eclipse is a very professional and powerful tool, but it's a bit daunting at times as well, and it's not quite as quick and easy to get things up and running. It has no built-in drag and drop Swing editor (although Google provides an excellent one called the Google Plugin for Eclipse) but it's got far and away the most powerful debugger I've ever used.
I don't know a lot about IntelliJ other than that it's also a good choice for beginners and professionals alike, but I haven't seen as much community support for it. That may just be because I've been an Eclipse die-hard for ages, but that's just how I see it.
What's more important than your IDE choice is that you figure out early on how to use it to its full potential. All three are excellent pieces of software, and all three will help you do whatever it is you want to build. But they can only help you if you learn to use their organizational tools, their editor/template options, their respective debuggers, etc. Honestly, I would say if you have any friends that are Java developers, choose whatever they're using at least for now so you have someone to go to when you don't understand how to use a particular option.

Is there a good framework for Java desktop applications? [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 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.

Looking for the Right Java Guide [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
And by the right guide, I mean one which doesn't necessarily focus entirely on how to program in Java, but puts forth a bit of effort on everything else. In other words, something which has enough information on the things which IDEs like Eclipse do for you, and how to manage those things without using an IDE.
Some examples of what I'm looking for:
How to import Java files without packaging them first.
How to specify directories for file/package imports, and where that specification needs
to be placed.
How to use Gedit to effectively program in Java with nothing but a few plugins and command line for compilation.
Great compiler error avoidance practices.
Seriously, I've looked enough now to come to the conclusion that Google really can't just hack what I need, and my best bet is an actual resource filled with lots of information.
If anyone has any ideas or thoughts on where I should look, or even an answer to any of these questions specifically, I would greatly appreciate the input.
IMHO you can't effectively program in Java without IDE (especially working on bigger project). You should learn about using/setting CLASSPATH, also check documentation for basic JDK commands (javac, java, jar, javadoc etc.).
Eclipse IDE has support for other important project tools e.g. Ant and Maven (for example with M2Eclipse plugin), so you can learn them too if you want.
Check this question for more lightweight IDE than Eclipse.
Java programming is quite a broad area. You may wish to do web-programming or Swing and there are lots of frameworks and framework combinations to work with.
If you want to be productive there is no way you can survive, especially for large projects, without using one IDE, or maybe even two. You will need a simple JUnit integration, as well as a debugger and automatic code generation for POJO methods, and autocompletion and refactoring capability and you name it.
I think that the best IDE for Swing development is Netbeans7. Matisse is implemented best, stable and fast. You can drag and drop anything you like anywhere and the generated code is always clear and well organized.
Eclipse has a great GWT-Designer. It is also great for Struts2 programming etc. Both work great with Maven and Ant and Hibernate.
If you need three months for a project you can do with an IDE in two weeks, there is no point in not using an IDE. On the other hand there are also masochists between us...
I recommend programming with an editor and the shell only for beginners, until they get the grasp of things and understand layouts, jars etc. Using a graphical tool to get started is wrong, since the students learn to drag and drop components mechanically and relying upon lack to get things straight. Only as soon as one knows how things work, is IDE a one way street. You never look back again. There is amazing free software today.
Eclipse has a very thorough Java dev guide, which should tell you pretty much everything it will do for you. http://archive.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/org.eclipse.jdt.doc.user.3.1.pdf.zip I think the guide does a decent job as far as helping you help yourself as well, so I think it could still be a worthy source for what you are seeeking.
In other words, something which has enough information on the things which IDEs like Eclipse do for you, and how to manage those things without using an IDE.
So you acknowledge IDEs are great. Why aren't you using one? In particular, IDEs come with step by step documentation on how to accomplish these simple tasks. I suspect the reason there is little IDE agnostic documentation on these things is that most people actually use IDEs.
Great compiler error avoidance practices.
I for one wouldn't want to code without the Quick Fix feature of eclipse ...

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.

Is Java the best language to develop cross-platform GUI 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
For "best" I intend that the code shouldn't need, or need very few, platform specific tweaks.
I strongly recommend Java for cross-platform GUI development. In particular, I recommend the GUI builder that comes with the Netbeans IDE. It's very simple and very powerful. You can point and click and drag and drop to create a GUI, and easily customize the actions which various buttons and other components take.
I much prefer Python as a language, but none of the free tools for GUI development come anywhere close to this, and the same thing seems to be true for the other languages I've used. (I should point out that QT has wonderful GUI developers for various languages such as C and Python, but it's only free when used on open source projects.)
EDIT: QT has recently been relicensed as LGPL, so you're free to use it in commercial applications. The Python bindings for this (PyQT) have not been re-licensed, but another project called PySide has been created to provide Python QT bindings.
I personally despise the whole concept of emulating the native GUI that is where the Java GUIs are rooted. Instead of being at home wherever you go, it makes you a tourist everywhere, often needing an interpreter. The Eclipse GWT is a better toolkit that makes much better use of local resources, but it still holds that people love to write Java code, and hate to use Java applications, think of it: which Java applications you love on your desktop?
Tk is just as ugly and limited on any operating system you choose to run it onto, and the same goes for Qt, in my opinion.
Mono would need a good try, as it is a way to answer the question "why Linux sucks", if you remember that old post bi Miguel de Icaza. Mono comes with a mature set of widgets and Apis and does not try to limit what you can do in order to give you portability.
Silverlight is close to portable and has a great interface definition language, but lacks access to the system, you have to split the application between a server and UI even on the same machine to overcome it.
Adobe AIR is a dog and local system acces is not easy.
If I am able to choose, I tend to avoid GUIs altogether and try to use a web server, even a local web server, and Json, JQuery and all that stuff. I found out that I can have many more choices and am more productive than with native widgets. This combines the strengths of the use of a real language server side and the wonderful disordered geniality of JavaScript in the GUI.
Yes: use Eclipse RCP. You can write not only cross-platform, but e.g. multilingual applications with it. SWT provides the native look-and-feel for multiple platforms and windowing systems.
So as I understand it, there is currently NO truly cross-platform high level language & GUI toolkit right now.
Java is cross-platform, GUIs in both SWT and Swing can look good, when you really try hard to tweak them pixel-precise and provide modifications to the look to supported platforms. There are currently some good GUI designers, but nothing as great as OpenStep 15 years ago.
QT is now LGPL'ed so long as you only link to it dynamically. Well but QT has its own set of problems and is a superset of C++. You have to compile against QT-hacked compiler, not the generic C++ one.
didn't try the wxWidgets, but from the looks of it, it can work, but is NOT high level toolkit at all!
There seems to be an option to write in C# and opensourced .NET and run it via Mono in other platforms than Windows... Didn't try, but it seems to me, that is just porting Microsoft on other platforms.
There is GNUstep, but for now it looks for me, like it is only developped by some opensource geek fans. It would be really interesting to see the OpenStep stack outside of the Mac OS X, but for now this looks to me as not viable.
Even Java, while it is self-contained, does not currently provide great GUI designer capabilities. I used the GUI designer tool once when starting to learn how to code with SWT, and now I find myself coding it by hand, which is really not bad, but it really should not be necessary. But that was few years ago, I will have to try again.
You can of course create your cross-platform application core and service code in one language (Java, or C/C++ if you want speed), creating something like a server or unix tool and just connecting to it from the GUI that you create on each desired platform using its own tools. The result is that the GUI is platform native, taking advantages of the features of the platform, and should be fairly simple to create for each desired platform. (Cocoa on Mac and .Net on windows provide rich features for the platform they are native to).
We will have to look into the robustness and matureness of such ideal solution. It should have good commercial and comunity backing and be fairly evolved right now, so as the future implementations of such tools will provide us with more than the mere LOWEST COMMON DENOMINATOR for all the supported platforms, but to leverege the cross-platform tools to include and adopt well-designed concepts and rich features native to the relevant platforms and distribute them cross-platform.
Only than can be cross-platform development truly viable and adoptable in great numbers.
Suggestions?
Java is certainly nice, but I've been doing just fine with Python and Qt via PyQt4 lately. I find that I get things done faster than I did in Swing or SWT, too.
So far, no platform-specific tweaks have been necessary, and Qt4 widgets look nice on different platforms. The Qt GUI builder is very nice, and using Python has enabled easy integration with some other cross-platform frameworks (notably VTK, scipy-cluster, and some SWIG-wrapped objects for interfacing with files output from a performance tool).
Note that Qt is not free unless you use it on open source projects.
As long as someone defines "platform independence" correctly, Java is the best.
Some people argue that C# is the best, but those people seem to misunderstand the term
"platform independence" ;)
Note: I refer to the fact that C# is ported to Linux/Unixes only as long as Microsoft and Novel keep up their treaty. The community itself would never be able to maintain such huge platform as .NET
These days there are many languages that allow you to create cross-platform GUI applications efficiently. Java, Python, Tcl/tk, C#...
I think you need to define the requirements of your application a bit more, for instance:
Will the UI be Web-based, or desktop-based?
Is the application going to be a large or a small?
Will it feature some sort of "extension" feature (e.g. plug-ins)?
Will it function over a network, and is it likely to be distributed/load balanced?
The list can go on forever, work out the defining points about your application, and start researching the language based on the whole.
I would also consider Mono as serious contender for platform independence and a good IDE tool.
Java's performance sucks on the desktop. Just check http://www.codeproject.com/KB/dotnet/RuntimePerformance.aspx
For native binaries, wxWidgets is a convenient solution.
I would tell you that is even better than Java for the user experience side. Even though you can make the presentation layer look pretty much the same for all platforms in Java, they all look like Java. On the other hand, wxWidgets make the user feel like a platform specific build (and it is, indeed), but you can use the same code to compile for several platforms (at least the major ones).
I would think that it depends on what kind of platforms you plan on targeting. Java will have the most platforms with a VM. However, if you just want to use Windows and Linux, you can use C# (using mono on linux).
Based on your definition, no. Even wit the newest graphical libraries you can expect to do a bunch of testing on different platforms.
Flash would probably be the best. Wide spread and better at looking the same across different platforms.

Categories

Resources