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.
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 10 years ago.
Intro
One of the coolest things about Java is that the JRE has a very small footprint as well as being highly portable, so I can run my application on nearly any platform with ease, and without having to integrate into the operating system linked libraries or C:\Windows\System etc - that is, the JRE can be run from within a folder.
.NET struggles in this regard - especially with size. Mono is becoming an ever popular choice but there seems to be too many dependencies that the Operating System needs to have.
Question
Are their any other RUNTIMES/languages (Perl, Ruby) that have this similar functionality that I mentioned above?
Again (1) Portability (2) Multiple OS support (AIX, Solaris, Linux) (3) Size for re-distribution over a network (4) Easy to Install and Deploy.
AIM
I'm looking for a light-weight run time or language that can be deployed on a server as easily as the JRE is.
For example: If I had to use Python, that would require added libraries to be installed on OS etc. Perl would be a good example, found on most Linux but endless hassle of for version and getting a third-party library.
ANSWER!!!!
This was CLOSED because it was thought to not be RELEVANT.
But FYI for those who this may help; outside of JRE, LUA is probably the most portable not requiring dependencies and compiles or system integration.
Ruby is not quite there, although it's default on most Linux (not on BSD)
BSD comes with Lua though :)
Lastly, Jruby is not practical, as it may use the JRE (20MB) and then JRuby itself (16MB).
Some thoughts for someone considering a deploy across multifarious "OS's" and being portable enough to distribute without consuming excessive bandwidth.
Thanks
JVM and .NET are only virtual machines, that interpret bytecode. There are a lot of language on top of them.
JVM
Java
Groovy
Scala
JRuby
Jython
JavaScript (Rhino)
Clojure
etc.
.NET
C#
VB.NET
Nemerle
J#
Boo
IronRuby
IronPython
etc.
There are another VM and script languages that can be run across the platform, i.e. Parrot that is Perl 6 VM or Lua that is X-platform script language (i.e. WoW use it). There are also project like LLVM (Low Level Virtual Machine) but this is still a little bit platform dependent.
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.
In order to develop a web application that can easily scale, provide production stability, is easily deploy-able, and allows for fast development cycles, what points would you recommend I look at before choosing one or the other framework - using Java and Tomcat, or Django and Apache/Mod_WSGI?
Some pros and cons I could see immediately,
Tomcat apps are simple to deploy - drop a WAR file and you're done. Django apps seem to need more wrangling (Not sure if creating .egg files and dropping them in would work as well?)
Django's ORM seems much nicer than Hibernate - generates models directly compared to Hibernate's manual configuration files
Python as a language is faster to develop in, and much more concise than Java can be. (Of course, this is a relatively higher level discussion).
I've looked at Disqus's slides about scaling Django and am under no doubts it can be done. But would scaling a Django app be any harder than scaling a Java/Tomcat one?
I'm familiar with both Java and Python and the frameworks mentioned above, and it boils down to getting feedback those who've worked with either (or both) on scale.
Thanks!
Here are my experiences:
Django-Apache fits in 16MBs of memory, whereas Java-Tomcat requires much more than that.
Coding in Python is much faster, that is true. In Java, on the other hand, you have compile-time checks, profilers and debuggers that help you increase the stability of your application.
If you are planning to do heavy computations or need complex data structures, Java's compilation technologies will provide the speed you need.
It is easier to maintain a large project in a strictly object-oriented environment with advanced refactoring tools, such as Java.
Then again, coding in Python is much faster.
It's worth noting that Python code can be extended with C/C++ code. So Django applications can, in fact, be faster than their Java equivalents if one is careful to use native code where speed or complex data structures are required.
Obviously, my vote's for Django.
I choose Python with Django, because it is better in deployment. You don't need build war. You only copy files on server and that's all.
Django is easily scalable and production stable. see this.
If you prefer Java look at Grails. But it has 2 minuses: building war and a lot of memory usage(200 mb without users).
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.)
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
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'm looking for a java gui testing tool in which tests can be created by recording my gui actions (buttons pressed, windows closed, etc.)
A scripting mechanism for writing tests is not required.
It could be free or commercial, but cheap and great is better than expensive and great.
My application is a rich-client app written in Java SE 6.
Yoav
If it's a Swing app you could take a look at Marathon.
I concur with Kettelerij, Marathon's the way to go.
It's easy to integrate into external systems like Subversion & CruiseControl, becasue all the scripts are human readable (Jython) and not locked into some proprietary format that requires an export (like most of the commercial tools).
It is able to record scripts in your choice of Jython or JRuby, which are essentially python and ruby that give you access to Java API. Very easy to understand.
For advanced testers, you are able to identify which GUI component you want to select using not just their names, but instead a a unique subset of their properties, for example
click('{Text: OK Enabled: true}')
... finds a component whose getText() is "OK" and isEnabled() is "true". This makes the scripts highly dynamic and easier to maintain.
I used Jemmy some years ago. Now I'm mostly doing webapps, so my experience in this field may be somewhat old. :-)
A scripting mechanism for writing
tests is not required.
Yes, it is. Pure capture/replay simply does not work in practice, you always have to edit the resulting scripts. And you often end up spending so much time doing that in an inadequate environment that you save no time over a pure scripting solution tailored for efficient script writing.
I have been impressed with Quick Test Pro. It is pay software from HP, but it has been able to get at some software that most tools can't work with. It has some data features so that tests can be run multiple times with varying data inputs. It is scriptable through VB so most Tester/Developer people will be able to work with it. I have been using it lately to execute tests on many machines for use in performance testing.
Try QEngine will do the record and play back. Has scripting options also
jameleon is very useful for testing web based applications. It combines a number of frameworks providing great flexability to your approach contained in a single launch framework.
There is no capture for jameleon I think you may be confusing this with selenium capture and record. Jameleon is a pure scripting framework.
You also have IBM's Rational Functional Tester:
http://www-01.ibm.com/software/awdtools/tester/functional/
I used an older version to test .NET forms applications (it also works with java apps, windows native apps, web pages). It failed a lot of times, and the integration with .NET was not so great. I don't quite recommend it for that purpose.
However, it is known to work a better with Java apps (RFT itself is made in java, and Java apps were the original target I think), specially in its most recent versions.
It's a very expensive application though. Personally I wouldn't use it again, unless I didn't have another choice.