As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I come from a few years experience in .NET, and played a bit with
Java during my uni studies.
Could you recommend any good books to learn the best ways to
develop a Java web applet?
There is a good SUN tutorial on Applets here.
I wouldn't put applets at the top of the list of Java EE technologies to learn. They were very important when Java first came out, because they made the browser dynamic, but they aren't as important now.
I'd say that the best approach is to start with servlets, JSPs using JSTL (Java Server Pages and JSP Standard Tag Library), and JDBC (database access). You can go a very long way writing web apps just with those technologies.
Just a suggestion, but the documentation on Sun's Documentation Site and their Tutorial sections offer a lot of good information that'll put you on track with their core functionalities. I'm currently taking a Java course at my local college, and I refer to the API website & documentation sites more frequently than my book.
The use of Applets has declined, especially, in light of newer technologies like Flash. However, you still see some use of Java Applets. For example Facebook has an Applet to help you upload photos.
There is quite a push to re-invigorate the Java applet technology, and most of this push comes from JavaFX. JavaFX is a scripting environment which offers many of the features which has made Flash so popular. JavaFX runs on top of Java's applet technology, but uses it's own graphics run time instead of Swing.
Most books on Java applets were written pre-Y2K. The few up to date books on applets are mostly written for non programmers. See the books by Elizabeth Boese for example.
If you want to take up learning JavaFX (which will teach you a bit about applets), I'd suggest reading Pro JavaFX⢠Platform.
If you're developing applets, you'll inevitably be better off starting by learning to develop using the swing api. I'd suggest pulling down the netbeans ide, and create a swing ui in it (you'll feel pretty comfy with this if you have experience with winforms, etc.) It's not hard to turn this result into a webstart app or applet. I'm partial to netbeans because of it's excellent ui builder's integration with the matisse layout concept.
If you're interested in an asp.net (ish) framework for developing web applications, take a look at Tapestry. It's not identical, but a lot of the concepts are the same (you extend a page object, you make reusable components, etc.)
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I have a Delphi background, also C++ background. But last several years, I involved in web projects, and worked primarily with PHP. Now I am looking for a platform to develop simple desktop applications (interacts with server). I was thinking of Java as I am used with Eclipse IDE, and have C++ background. But I see Lazarus became a mature environment. its applications even work on Java Virtual Machine. In the past I have seen that some Amateur looking technologies have became popular than professional ones like PHP, Flash even Object Pascal. So should I choose Java, or lazarus for desktop application development.
If you have a C++ background, try the Nokia Qt framework which has everything you want to develop desktop application. the Qt SDK is shipped with its own IDE (which's really great) and rich APIs.
Enjoy :)
Of the two options, I would certainly choose Java (larger support base, more stable, more 3rd party libraries, etc).
You mention that you come from a C++ background. Why not just use C++ (theoretically easier than picking up a new language).
If Lazarus runs on the JVM, it should have access to the same libraries as every other JVM language, so you'd be learning swing, etc.
If you are going to do desktop apps and you want a decent GUI toolkit you really have two choices as far as I know, either go with a JVM language or .net
If you go with a JVM, why in specific Lazurus? There are dozens (well technically hundreds--possibly thousands) of JVM languages to choose from. Go with anything stable that helps you get the job done.
Hmm, that is UNLESS you don't work alone. If you work with others, I suggest Java (or C#) period (Maybe Scala). Otherwise you will have a heck of a time hiring and training.
There are also probably C++ GUI frameworks, even cross-platform sometimes but none will be as rich as everything that is available on the JVM or .net platforms.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm working on a practical work for college, and I have to develop a web-app that could be used by all the teachers from my province.
The application should let the users (teachers) manage some information related to their daily duties. One of the requirements is that I must use
Google App Engine platform for developing and hosting the web application.
I have 2 months to finish the work.
I have some intermediate knowledge of C++, so what language (Python or Java ) and web framework do you think would the best to
develop the application in less time?
I know this is not a strictly programming questions, but please don't delete this post at least until I get a
few answer in order to have an idea of how to proceed.
Many thanks in advance!
I would recommend using Python + Django framework. I love Java, but for the Google App Engine there is much more documentation online for Python.
I would recommend taking a look at Java + slim3. I have my own MVC framework for AppEngine (PhD thesis work), and I really wish I had started after slim3 came out. I'd be using it myself. I can't really speak vs using Python on AppEngine, but I don't think I'd recommend any other Java framework vs slim3. I've tried a few. As an example, I use Struts2 at work. I would not recommend Struts2 given your timeframe -- the learning curve would make your deadline ambitious. Part of this is just due to the fact that Struts2 isn't quite a full stack (saving data in AppEngine is a big deal when you are first learning), which makes only some documentation useful for your particular project. Slim3 sidesteps this by being explicitly targeted to AppEngine.
Go with python and default webapp framework . As you are new to both java and python. Appengine on python has been there for sometime, you will find lots of solution on python as it was introduced earlier. Learning curve is very small in python when compared to java according to me. Also go for eclipse with pydev plugin as your IDE. This will make your deployment and development much easier . Google 's own documentation is the best place to start.
All you need to do is spend some time reading the whole documentation patiently . Even i started with appengine very recently.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
Now before At the risk of getting this subject closed I just need to resolve an issue between I and the other developer consultant.
We're tasked with redeveloping a web app that does some employee management and financial book-keeping of sorts. I'm no web technologies expert but I believe in subscribing to the MVC type development methodology. So I have been looking at the tool of choice to get the job done for a while now. The other guys is championing PhP as a tool of choice, however I have reservations because using php will not really allow for the good practice of MVC. I have been looking at other alternatives and have heard Ruby on Rails, Wicket, Django e.t.c. mentioned. My only objection with PhP is that the business code is tied to the view code.
This is an edit.
I am currently looking at the ruby on rails site. Does anyone have a comment as to the suitability of this web technology/framework for medium (to possible enterprise) level web app development?
I think you're going about your evaluation incorrectly.
Your stack depends on at least a few factors:
Developer familiarity/learning curve
Community volume
Licensing
Scalability
Server availability/configuration
Supportability
Maintainability
There are probably dozens of subtle factors that will contribute to the total cost of ownership of your webapp.
Every language/framework you mention will solve your problems. PHP has MVC frameworks like CakePHP (which is modeled after Rails). Python has Django. Java has SpringMVC/Roo. Groovy has Grails. Ruby has Rails.
Every one of these adhere to MVC principles and contain RAD tools (i.e. rapid development), so in my opinion, you need to chart and evaluate the other factors because unless you have a preference or are forced to conform to executive mandate, you could just as easily pick a stack out of a hat.
Codeigniter is the one of the most lightweight(fast) PHP framework which uses MVC. You could use both languages(PHP/Java). You could even use both languages at the same time. Just get programming ;)
For example on Java I was impressed with the simplicity of Play! framework.
Well, PHP is just a programming language, is up to the programmer to turn things into good or bad ones. Ruby On Rails bring the MVC pattern to the web scope but that doesn't mean that Ruby is better than other languages to make web development with MVC in mind. And the same apply for Java vs PHP, in fact since PHP5
support a similar set of OOP constructs that Java, you can do easily your own controller factory supporting dependency injection...
Now, Almost any major programming language today have at least a good MVC implementation, with good meaning: testable, database independent, extensible and backend by an strong community. You can view this
Wikipedia page to see a list of implementations.
So if you need to rewrite a web site using MVC in mind (more soon than later), I think your tool of choice must be determined by the background of the programmers you have avalaible. In case of doubts run an small demo with the options you have, is the best way to tell.
hope this helps!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Most of the desktop application development I do is in Swing, and I'm curious to hear people's thoughts on using JavaFX and/or Adobe Flex for building desktop applications. Have you had success building desktop apps with these? Or would you stick with Swing for now and use tools to help make Swing development more productive?
If you're making desktop apps, I'd stick to Swing. JavaFX/Flex/Silverlight would be more appropriate for RIA - rich internet apps. Although I'd argue that none of them would be a choice for the long term - looks to me like HTML5/CSS3/Ajax are winning the day, but thats a pretty subjective area. But for desktop apps - I'm a big fan of Swing (also Java Web Start is a very underrated technology)
I would say that JavaFX can be seen as a kind of extension of Swing with a new way of developing a Java GUI by using a declarative programming language: the JavaFX Script. JavaFX Script code looks exactly like a JSON script, unlike Adobe Flex or Microsoft Silverlight which uses an XML syntax.
JavaFX Script can interface with Java and therefore can call Swing components easily. It's really a new generation of GUI API, like Swing was for AWT: nice graphical components, new easy ways to manage layouts, really nice features to build dynamic interfaces: bindings, timers (to build animations), etc. Have a look here: http://www.javafx.com/samples/ and to the tutorials and see how fast you can build a kind of Google Picasa application... The API even contains some tools to use easily web services: you can find plenty of samples of GUI built in JavaFX connected to some public web services (like a Weather Forecast tool).
And the best... is the deployment part. You can embed your application within an html page, like an applet, and the user can drag and drop the application to her/his desktop to use it whenever she/he wants (without returning to its browser)!
Really, I think JavaFX, at its early stage though (v1.2), is a really good tool and represents the first step for Java toward the next generation of applications: the Rich Internet Applications (RIA).
Java Swing is an established and mature technology for desktop development. You'll be able to find lots of information online and plenty of sample programs. With that said, however, you might want to consider Adobe AIR. AIR is basically a runtime that lets you run your Flex apps on the desktop, and gives them access to local resources such as the file system. I've written Java Swing apps for 10 years and I am amazed at how much more productive I am using Flex/Adobe AIR. One nice aspect of Flex is that you can create your GUIs declaritively, much like how you use HTML to declare the layout of a webpage. It's a much more concise way to specify a GUI, and much faster and easier to maintain than the reams of Java Swing code you need to do the same thing. I wouldn't recommend JavaFX since it is so late to the party and hasn't really gotten with mainstream developers.
You should try them all and see which one fits best with your requirements. If you want to see what you can do with Flex and how to do it then check out Tour de Flex.
Some of the advantages of Flex are that it is mature (over 5 years old now) and a significant area of investment for Adobe. You can also find numerous examples of AIR apps built with Flex in the Adobe AIR Marketplace.
Swing can look good with Substance L&F.
However, if you are developing alone (as opposed to with a team), trying JavaFX might be a good idea.
Please read the about this, write extremely lightweight swing applications and with the same code base move it to web.
demos
runtime
I had evaluated these for desktop application and finally desided to go for JavaFx . This have very good media library and hardware accelerated graphics and media capabilities . With Jdk 7 update 6 onwards contains JavaFx totally I integrated no separate installation is required . Java swing is very good technology and will be continued but I see JavaFx is the future for GUI and Internet application to some extent. Biggest advantage for me was that JavaFx app could be converted to exe files with native packaging
Also try scenebuilder for drag and drop component designer
I feel that I do not have enough information to answer this question. There are many applications in which an AIR approach is a better choice, other applications use other technologies better. I am primarily an AS3/Flex developer, but I know there are many instances where one of the Java platforms is a better choice. Now that Flex is no longer an Adobe product but rather a Apache product, it will either improve the product as the users will create the roadmap, or kill it off completely.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I've recently heard about Apache Pivot being moved to the Top Level Projects category and I was wondering who has tried the most recent version and compared it to other RIA tools. What are the proper categories for comparison?
It seems to be easier to pick up for Java developers since JavaFX has a different scripting language. The Pivot developers say that Pivot is what Sun should have made instead of JavaFX.
Good to hear from you. :-) I agree that we tend to focus more on applet deployment in Pivot's design. However, there is nothing inherent in the platform that prevents an application from using multiple top-level windows. It's just not something we cater to since it isn't relevant to our primary use case (which, as you noted, is browser deployment). Note that it is also not possible to create multiple top-level windows in Flex or Silverlight.
Re: "who is creating applets these days?" - it's not so much about creating applets as it is about creating RIAs. If you ask the question, "who is creating RIAs?", I think the answer would be "a lot of people". Pivot simply allows developers to build RIAs in Java (rather than ActionScript, for example).
Greg
I worked with Pivot and even been part of Pivot development. It is a nice little library, but...
It cannot replace Swing or JavaFX. The original authors are positioning it to compete with Adobe Flex. Because of that its concepts are more like applet than desktop application. It is almost impossible to create a modern desktop application simply because it has a concept of one main window and all the child windows are "inside" of it. I discussed this with authors but it looks like this is the way they want to go.
The library uses its own custom collections library which is sort of strange, but it isn't a show stopper.
Other then that the library is nice. But who is creating applets these days?
Well, I checked pivot 1.4. You can have sub-windows.
Oracle/Sun is putting a lot of effort into promoting JavaFX but it seems to me that all the layout feature etc from swing are gone in profits to some multi-media stuff. Right now FX and business applications are two things very far from each other.
For business RIA application, my first impression is that Pivot is much better designed than FX.
Pivot provides a lot: binding, easy web service, nice design, xml definition of UI... - Yes a lot to consider for a Java developer.
Not perfect but looking at what they have accomplished these last 6 months... impressive!
If you are intereseted in the statistic view -
I compare through 'google trends' between JavaFx to 'Apache Pivot'
and looks like there is no competition - JavaFx lead in a rate that is close to 1 to 0
so it gives perspective about the standard of the industry towards those frameworks.
http://www.google.com/trends?q=apache+pivot%2C+javafx&ctab=0&geo=all&date=all&sort=1