I am going to create a online game, so what is better, JavaFX or Flash?
For now use Flash as Oracle released the beta version for JavaFX for the Linux and OpenSolaris platforms.
Systems requirements here:
An "online game" is a bit vague, so it's difficult to give an accurate answer... do you mean a game that's played on your browser and/or a multiplayer game ?
it's a difficult question : some say HTML5 means the death of Flash - it is probably way too soon to tell. Java FX could be fine, though you'd need to check Oracle policy. I find it easier to find tutorials, resources, advices for flash, much more difficult to find it for Java FX.
Java + JMonkey give impressive result, including online games. I'd look into that.
well the current JavaFX 1.3 is not being continued anymore. Oracle is working on the JavaFX 2, which is quite different from the current version (no JavaFX script language anymore!) and will be released late in 2010.
So I do not recommend you on starting with the dying JavaFX 1.3...
See the currently released roadmap of JavaFX.com/roadmap
Here the analysis of the JavaOne 2010 about the NEW JavaFX: http://java.dzone.com/articles/javaone-2010-alternative-jvm
So better go with Flash or even some other technologies...
Related
I'm about to start a fairly big application for my company, and since it HAS to be cross platform, we're pointing towards Java (would have loved C#, but explored the Xamarin ecosystem and the Mac part seems to be quite behind the rest package...)
Now, I'm evaluating both Netbeans 8 and Eclipse 4 as RCP. Before I continue I have to say that I've been maintaining for almost a year our previous software which was written in Netbeans Platform, but it has so many performance issues and so many bugs (some of which, it seems, tied to the platform itself -- i.e. plugins not updating with no apparen reason) that both me and my company kinda lost faith in Netbeans Platform, but on the other side I can't seem to figure out a good way to start digging in Eclipse RCP. Of course, mantaining that software means that I'm already experienced in Netbeans Platform, while I'm at "Hello World" level with Eclipse RCP.
On top of that, I guess I'm going to use JavaFX 8, which I have to learn as well, since it seems it's the new de facto standard in Java GUI.
Basically my software should handle a (local, SQLite or JavaDB or similar) database of customers, with various data to be sent via Ethernet to other devices.
So, has anyone experiences with one or the other? And, if someone's into Eclipse, could gift me with some updated tutorials for Eclipse 4 RCP before I start buying books?
Thanks anyone.
Depends on your choice of UI toolkit, eclipse is SWT and netbeans is pure swing, therefore pure java. I have not worked with eclipse, but I have been doing Netbeans plugins for nearly three years. Netbeans modular programming is pure pleasure like no other I know.
Which Rich Client Platform to use
JSR 296 has been postponed to Java 9 after being postponed from java 7 to Java 8. So I wouldn't wait on that. Spring RCP is dead long time ago. The author of the above post seems to have preconceived notions about Netbeans RCP's approach.
Netbeans has already implemented both JSR 296 & JSR 277 long time ago and their implementation is time tested, nearly 15 years now.
At the end of the day, it boils down to what you are trying to do. But Netbeans RCP is a great tool and is used by many customers. FedEx and US airforce are the ones that come to my mind.
Listed below is netbeans' showcase that lists all the existing users of the RCP. It may be a bit out of date IMO.
https://platform.netbeans.org/screenshots.html
Update
There was one more thing I wanted to write but found it hard to gather myself at the bar last night :). A while ago I tried to convert SquirrelSql to use JavaFX, but as with all my other ideas, I lost interest midway. I found it surprising that I could just use the JavaFx's sorta kinda MVC with JBoss weld CDI and I really liked programming MVC in Java Desktop UI world. I know you must have already made your decision, but this with worth taking a look at ,i am sure it might come in handy for your future endeavours as you spend your time doing desktop apps for a living. Here is the code, look into fw-fx directory.
udutha-sql
Does JFreeChart work on Blackberry?
(Just want to get a quick answer before I spend hours trying to give it a shot, would rather know now if it doesn't work)
No, as it states on the front page for that library "JFreeChart requires the Java 2 platform (JDK version 1.3 or later)" and the BlackBerry platform is J2ME (CLDC 1.1).
If you can post what requirements you are looking for, perhaps the community can recomand a library that works for you. For example on of the regular BlackBerry contributors on Stack Overflow works for a company that provides a product called aiCharts and I'm guessing there are others out there, too.
You cannot if you are looking to run JFreeChart directly on the Blackberry as Marc mentioned. If however you are up for a little web programming then JFreeChart would be on the server which could surely meet the java requirements. JFreeChart can serve up images and html maps for interactive use. Check out another answer of mine for tips.
I have a DVD cataloging application that I wrote a few years ago with MFC. Records are saved in a sqlite database, so basically it's a CRUD app. UI-wise, it has a tree view on the left, a list view (grid) on the top right, and an HTML view (embedded IE) on the bottom right. Nothing fancy.
I wanted to update the app with more features, but I've been using Java EE for the past couple of years and I realized that I wasn't productive at all with MFC. So I'm thinking maybe I should use something else to boost my productivity. Cross-platform would be a big bonus, but it's not absolutely required.
Here are the options based on my research:
Java / Swing: I can utilize my Java knowledge; great third party libraries (such as Spring for IoC and Hibernate for ORM); cross-platform. Downside is, JRE required for users; Swing seems to be in the "maintanence" mode and it's not getting much attention from Sun.
C++ / Qt: native application;
cross-platform. But I'm new to Qt so
I have to learn it first.
C# / WPF: WPF seems to be the future
of Windows GUI development and I'm
impressed by some WPF sample apps. I
have some experience with C# but I
need learn WPF. Downside is, Windows
only; .NET 3.5 runtime required.
So what would you use if you were in my situation? Thanks in advance for any suggestions.
If you want to learn some new skills while developing this application, then C# / WPF, and LINQ in C# 3.0 is really great if you didn't have it in Java.
If you just want to get on speed, then you already answer your own question, Java / Swing. It is what you are good at.
I'm actually a big C# fan, but since you said that cross-platform would be a huge bonus, I think that Qt might actually be better for that. C# can be cross-platform via Mono, but I've had better results with Qt in that respect. They also have real good documentation in QtAssistant to get you started.
Consider PyQt + Python as well if your productivity is a big issue. Trust me when I say the learning curve for Qt is well worth it, and not as hard as it may seem at first.
Sqlite support is in both the Python standard libraries and the QSql module in Qt if you prefer to use that.
PyQt + Python is a cross-platform option as well, since Python is available for many platforms and Qt's cross-platform to begin with.
The controls you mentioned you used in your application are all available in Qt.
The only other tool apart from raw C++ is Delphi. Period.
With other tools you will have problems in the deployment.
With Delphi you will produce native exes, self-contained. Also, the database connectivity is great.
You never will be dissapointed by lack of controls or 3d party tools, a lot with source code and with free/commercial toolset.
And the compiling times are the fastest in this galaxy ;)
So, if you are serious in provide no-hasle app for your customers, and that customers are not tech-oriented like developers so could be confused because which one of the 4 .NET runtimes install, want minimal support, easy downloads, click-click-install-go, apps that work instanly like Skype,TopStyle (made with Delphi) and others,then Delphi/C++ is are your only option. Seriously. The ONLY options.
If you want a cross-plataform solution, then FreePascal/Lazarus could work if your GUI is minimalist.
In most cases, as long as the scope of the project is reasonably small, and the computational needs are modest, I tend to favor using TCL/Tk. I have not yet learned a gui api in which I'm more productive than tk (not to say that there isn't one, just that I've tried several and found them slower). TCL is not the most wonderful language to program in, to be sure, although there are a number of add-ons that help a lot, specifically [incr tcl] and tcllib.
The reason I choose this instead of other systems, I prefer coding in python, for instance, is because deployment with tcl/tk is close to unbeatable. With Starkit, you end up with a single file double clickable application that requires no installer, and is trivially portable.
Well if you really want a class platform type of application, I would convert it into a web application and host it. That way if one user uploads dvd information or a dvd cover picture another user could take advantage of that information already input into the system.
If your going to develop for the desktop try to make feel like its an application made for that platform by utilizing the OS UI tools. And for windows, pick your 3rd option C# /WPF.
If you have some non UI code in your MFC app that you would like to reuse then consider QT. Otherwise pick whatever you prefer to learn.
Instead of C#/WPF you could give Silverlight a look. You app seems simple enough that it would not take a lot to get up and running. Similar to the demos that are shown off at conferences.
Once you get the basics down it will be fairly easy to add some cool features like animations, movie clips, album art, coverflow like interface etc.
You will be able to target Windows/Mac users and possibly Linux with Moonlight. But I haven't looked at Linux in the past 8 years so I really can't say much about it.
With Eclipse RCP, you get Java, cross-platform development (see Delta Pack), native look (via SWT) and a great framework collection for desktop development (declarative UI, plugin management etc.). You should definitely give that a try.
I went the C++/wxWidgets (but you could do Qt) route a few months back when presented with almost the exact same scenario (upgrade an app with a SQLite db). wxWidgets was fairly easy to pick up, had everything I needed, and was way easier than MFC. The best part was I found a good C++ wrapper for SQLite on CodeProject (e.g., CPPSQLite) and had the whole thing up an running in no time... The project sold me on wxWidgetss, in case you couldn't tell.
I would actually look very closely at something like adobe air. It is cross platform and can be html/javascript based so chances are you won't have a heck of a lot to learn except maybe a javascript library or two. It has the ability to talk to a local datastore or over the interweb to a webservice or RESTFUL service. Development is free with aptana. Check out some of the stuff written in it:
http://www.adobe.com/products/air/showcase/
Does anybody know of any real-world web applications based on JavaFX? I'm an experienced Java programmer considering starting a website while I'm not at my day job. I don't have a lot of expertise on the UI side, so I'm looking for the best way to leverage my existing skills to create something that can provide an awesome RIA experience. Only trouble is, I don't know of any sites that are implemented using JavaFX, since it's so new. I'd like to see what it's capable of.
Found here quite an interesting stories. Top two listed below.
TweetBox
TweetFX
I think the best example of what JavaFX can do is in the examples on JavaFX.com.
However, it's still early in the JavaFX days thus you will be in pioneer days. Which means there are potential rich rewards to be had, but also - many unknowns.
What I think JavaFX "sweet-spots" are:
1 - If you either have Photoshop skills or are collaborating with someone who is - JavaFX provides the only real platform that lets you take Photoshop and generate a UI. Normally you mock-up in Photoshop and try your best to replicate, JavaFX can leverage it natively.
2 - You get all of the goodies from Java libraries "for free".
3 - Can leverage the UI skills to mobile (those that JavaFX will run on anyway).
However, if you are just wanting to have a Java GUI but would rather wait for more polish on JavaFX - I would recommend grabbing MigLayout & go with Swing on Java 6u10 or later.
There are a few JavaFX apps from the JavaFX Coding Challenge; my personal favorite is Music Explorer FX.
The new version of Indaba Music's software was written in JavaFX; the old version was in Flash.
In my personal opinion I would not use JavaFX for web. Simply because HTML5 is crushing everyone in sight. Now, I totally recomend the use of JavaFX for desktop applications.
I'm developing a Java ME app & need pointers to some really good UI libraries. I did see a few such as Java ME Polish. Are there any more out there? For e.g. ebuddy's java ME app has an amazing UI and so is gmail's java ME app. What libraries would they have been using or would have they have developed it on their own?
Sun recently released and opensourced their solution to crappy looking lcdui. It is called LIghtweight UI Toolkit and can be found on lwuit.dev.java.net
We have been trying lately on kuix.. So far so good and more light weight than LWUIT
code.http://code.google.com/p/kuix
eSWT would be available for MIDlets on the latest J9 VM, as used by the Series60 3rd Edition feature Pack 2 handsets (Nokia N78, 6210, N96...) but we're mainly talking about nicer looking UI controls. Basically, a MIDlet can look much more like a native application now.
Sun has recently open-sourced LWUIT.That could also be worth a look.
Nothing beats drawing your own images on a Canvas,though. Generic layout managers in any kind of library will only get you so far. You should only look at the available technologies once you have a good idea of how many different kind of screens your application should have and what they look like.
Most of the apps with amazing UIs (Opera Mini, Gmail, any game from an AAA developer) use custom UIs developed in-house. These developers take the task of developing an UI as one more in their projects and give it personality, involving professional graphic designers. Going with a packaged library would quickly accomplish the task but it would make the application look generic and bland (less bland that with the default UI, but still bland and limited).
In short, go with a packaged UI for quick development, but don't expect the level of quality to be near the apps you mentioned.
I'm facing a similar dilemma right now. We're currently using the default, high-level LCDUI framework for the speed of development, but its severely limiting what we can do. I had thought our best option would be to use a third-party UI framework, but I'm now coninced that if we're serious about the application we should write our own. Its like anything in software, if its mission critical to your application you should write it yourself, even if it that means re-inventing the wheel.
Digitalapes has developed a framework for J2ME application development that includes a high level UI library.
The library is lightweight and well documented, you can get have a look at the Gear framework page for more information, or you can directly download the JAR and javadoc from Gear's sourceforge page.
Digitalapes blog includes also a series of tutorial about how to use the framework.
Polish has really nice set of UI components, which are skinable with css style comments.
It also features a device database for compatibility purposes.
Some tipps if you decide to go with polish (as i did):
Use eclipse and the mepose plugin. The netbeans integration is really nerve wracking.
The bulletin board is dead, so by all means !use the mailing list!.
If you are not familiar with the ant building system, you better start now.
The J2ME Polish book is not worth its money. (My opinion). The documentation on their website and the sample coded are enough to give you a solid start.
I've used SWT when deploying to a full profile J2ME (IBM J9 on PocketPC), I don't know if it is usable by MIDlets however. It's quite a nice GUI library in its own way, and far better than AWT.
Unfortunately companies usually end up designing their own GUI's when it comes to mobile development. It's the only way to have full control over your interfaces, but you should consider if it's worth the additional development time, and you're also on your own when it comes to device compatibility issues / handset bugs - of which there are plenty.
If you are happy with a less flexible interface, you can go with one of the existing libraries. I currently use J2ME GUI from http://www.garcer.com/. We get the same flexibility as with desktop development and it also features custom styling, so with a little extra effort you can make it look the way you want it to.
You can use LWUIT for the UI development in J2ME framework.