Skip to main content

Develop in Java or not?

13 replies [Last post]
khouwen
Offline
Joined: 2007-06-20
Points: 0

I have used C++ and Delphi 4 in the past. I switched to a manager job for more then 5 years, no writing of code was needed. Now i'm a self-employed IT consultant. A customer asked me to develop a new program for his shop, so i will start programming again but i have to choose a language to start with.

I always liked Java but because the JVM was slow in the past, i never used it. Now i've read some articles about Java 6 being the "desktop-edition" with very nice features (and even a database). But is the JVM still slow for desktop applications?

Is Java a language to use for developing applications for small businesses (< 50 users), like most of my clients? Can you deploy a Tomcat or websphere in these kind of companies? Or is this only for the large ones? Should i go for the .net platform or can java do the job?

Please some advice / comment.

Kristof

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
jmarranz
Offline
Joined: 2006-05-06
Points: 0

There are many tools to integrate Java with the OS, sometimes your code could be 100% Java, for instance with JNIEasy

mjparme
Offline
Joined: 2005-01-27
Points: 0

> Forget everything you take for granted. Placing a
> shortcut on the desktop? Only with additional native
> code. Getting a menu entry into the main menu? Only
> with ...

Native code? Java Web Start can do both of these things.

> Getting the application installed according to the
> native mechanisms of the platform? Only with ...
> Registering handlers for file types? Only with ...

Their are installation packages out there for Java.

> Getting access to serial, USB, FireWire, parallel
> ports? Only with ... The list is endless.

Umm, Java Communications API...http://java.sun.com/products/javacomm/

>
> You have almost no access to desktop features. After
> ten years Sun finally provided the ability to place
> an icon in the system tray. Ten years of begging, and
> all we got was this lousy system tray icon.

Actually JDIC provides more than just a system tray icon.

>If you actually want to make use of desktop features and operating system features
> you are better of with another language than Java.

I guess Windows is the only operating system in your world. Let me know when your .NET application is running on a Linux box and Mac OS.

neunerball
Offline
Joined: 2005-11-22
Points: 0

I was using NetBeans IDE a lot (since it is for free), but currently I am using Eclipse as my IDE (also for free).
Both IDEs have their advantages and disadvantages, but I prefer using Eclipse with one exception. Creating GUIs is easier in NetBeans, but you can take the generated java file and use it in Eclipse for further adjustments.

maxprobes
Offline
Joined: 2007-07-06
Points: 0

Sir, do you any short cut way on how to solve a problem about doing a Flow Chart?
Pease help me I am a Student and i don't have any knowledge about analizing a flow chart but I am will learn on how to to solve a Problem about Flow chart...
so please help me, here is my email address maxprobes@yahoo.com....
thank you very much..

truly yours,
evan a. henderson.

lucumu
Offline
Joined: 2004-10-17
Points: 0

I had written a small CRM for a small company, abount 30-80 employees.and it is a small program.
it contains: salers,sale,storage management and some report,
It's based on:
Derby Database.
Genuine Swing Framework.
Swinglabs components.
embed webserver Jetty(for webreport)

It has run pefrectly for 1 year more and go on.

Message was edited by: lucumu

cbaatz
Offline
Joined: 2005-12-27
Points: 0

You should also consider the availability of programmers in your area. I know about eight years ago when I was finishing up my undergrad most schools were making a shift to Java as the main programming language taught. Starting a small programming business you really need to look at what resources you have, what best solves the customers needs (see the list of it has, it doesn't have above), and in the end what you are most comfortable. In my own opinion you need to look at your situation as what can you do now to best serve this one client while still setting you up with the biggest advantage for the next.

When I did the independent scene a few years back it was easy for me to use Java, because I was most accustomed to that programming language. However, experience has shone me that their isn't one perfect language. You can do just about anything in any language. The one real restriction is if you embrace a fully Microsoft world, your application will only run on Microsoft Platforms.

ewin
Offline
Joined: 2005-07-15
Points: 0

The problem with Java on the desktop is not speed. The problem is the degree to which one can integrate a Java application into the platform's desktop. Sadly you barely can.

Forget everything you take for granted. Placing a shortcut on the desktop? Only with additional native code. Getting a menu entry into the main menu? Only with ... Finding the DVD/CD drive? Only with ... Getting the application installed according to the native mechanisms of the platform? Only with ... Registering handlers for file types? Only with ... Getting access to serial, USB, FireWire, parallel ports? Only with ... The list is endless.

You have almost no access to desktop features. After ten years Sun finally provided the ability to place an icon in the system tray. Ten years of begging, and all we got was this lousy system tray icon.

If you actually want to make use of desktop features and operating system features you are better of with another language than Java.

mhall
Offline
Joined: 2003-06-15
Points: 0

https://jdic.dev.java.net/ provides much of what you are looking for. Application installation isn't really a language function, there are plenty of installers you can use for your Java app that can register the installation with Windows, create desktop and start menu shortcuts, and register file types to launch with your Java application.

Device access is of course going to require a bridge to the OS API unless the OS is itself written in Java. This isn't a limitation specific to Java, you need such a bridge for Perl/Python/Ruby as well. Even C# and VB need a bridge, you just don't notice because it is provided by Microsoft already.

vitallis
Offline
Joined: 2005-06-20
Points: 0

I have made the simplest decision: just now I have issued SDK that is a paradigm of .NET Platform Invoke.
See Java Platform Invoke SDK Demo at
http://www.sharewareplaza.com/Java-Platform-Invoke-API-Demo-version-down...
In near future I plan to recompile this project for Linux.

dansiviter
Offline
Joined: 2005-09-26
Points: 0

I agree with jwenting. But I feel you're probably taking on more that you can chew if you're expecting to create a desktop and/or a web application and not developed in Java in a long time.

Java is, at the end of the day, a wrapper on top of natively compiled code so will not out perform well written C/C++ applications. However, in the real world, people rarely write well written code, but java helps promote good code through it's excellent APIs and IDEs. To the point that in many of our feasibility studies, Java performed noticeably better than it's C/C++ counterparts in desktop and server guises with reduced development time.

I've only briefly looked into .NET, but what I've seen it's largely similar to Java so gains many of it's benefits while still being able to hook into C/C++. It wasn't in our benchmarks so I can't comment on it's speed, but I'm sure Microsoft wouldn't make an under-performing lame duck, would they?!

jwenting
Offline
Joined: 2003-12-02
Points: 0

> I always liked Java but because the JVM was slow in
> the past, i never used it. Now i've read some
> articles about Java 6 being the "desktop-edition"
> with very nice features (and even a database). But is
> the JVM still slow for desktop applications?
>
Java hasn't been "slow" for years. And for most desktop purposes "slow" is irrelevant anyway, as they spend most of their time waiting for user input.
If a user takes 10 seconds to enter data before pressing a button to get it processed it hardly matter whether that processing takes 10 milliseconds or 20, and the difference between Java and C++ is often smaller than that.

The main problem with Java on the desktop is the poor quality of the code most programmers produce, leading to applications that are sluggish due to no fault of the language itself.
This is in large part due to lack of training and the terrible quality of the code churned out by tools like Netbeans.

> Is Java a language to use for developing applications
> for small businesses (< 50 users), like most of my
> clients? Can you deploy a Tomcat or websphere in

I don't see what the size of the business has to do with it. There's no label "this programming language should only be used to write applications for multinationals" AFAIK.

What need do you have of Tomcat or Websphere? You're talking about a desktop system...

> these kind of companies? Or is this only for the
> large ones? Should i go for the .net platform or can
> java do the job?
>

That's a business decision. There is no technical reason you have given to choose either one (as you lack experience in both, so both will mean a period of study on your part and probably quite a few false starts before you have something that's good enough to be delivered to your clients).

In general though, if the customer is solely using Windows workstations a .NET application would look more instantly familiar to them, which might be a selling point.

khouwen
Offline
Joined: 2007-06-20
Points: 0

Thx for the reply.

> The main problem with Java on the desktop is the poor
> quality of the code most programmers produce, leading
> to applications that are sluggish due to no fault of
> the language itself.
> This is in large part due to lack of training and the
> terrible quality of the code churned out by tools
> like Netbeans.

Any suggestions about a good IDE, because on the www, you find a lot of people who like Netbeans.

>
> > Is Java a language to use for developing
> applications
> > for small businesses (< 50 users), like most of my
> > clients? Can you deploy a Tomcat or websphere in
>
> I don't see what the size of the business has to do
> with it. There's no label "this programming language
> should only be used to write applications for
> multinationals" AFAIK.

I know a program language has no label on it, but because i never hear about small companies using the language, mostly it are always big multinationals who has used Java to do large projects. That's why i'm asking this question, is it because of the investment in servers to run Wepshere of Tomcat, or is there anohter reason, or am i wrong and are there a lot of small companies using java apps to do there daily tasks on. The reason for asking is a commercial one, because i do have to think about the future of my small company :-)

> What need do you have of Tomcat or Websphere? You're
> talking about a desktop system...

This desktop application is the reason for start writing code, but i hope to do other projects also.

> > these kind of companies? Or is this only for the
> > large ones? Should i go for the .net platform or
> can
> > java do the job?
> >
>
> That's a business decision. There is no technical
> reason you have given to choose either one (as you
> lack experience in both, so both will mean a period
> of study on your part and probably quite a few false
> starts before you have something that's good enough
> to be delivered to your clients).

Indeed i do have to do a lot of study in the language a choose, that 's the main reason i asked the question.

> In general though, if the customer is solely using
> Windows workstations a .NET application would look
> more instantly familiar to them, which might be a
> selling point.
Isn't 90% of all small companies (< 50 users) using a windows workstation?

jwenting
Offline
Joined: 2003-12-02
Points: 0

> Any suggestions about a good IDE, because on the www,
> you find a lot of people who like Netbeans.
>

If you check out their backgrounds most have close ties to Sun :)

IntelliJ is excellent, pays for itself in short order through improved productivity.

> I know a program language has no label on it, but
> because i never hear about small companies using the
> language, mostly it are always big multinationals who
> has used Java to do large projects. That's why i'm

Those just make the news, and look good in whitepapers.

> asking this question, is it because of the investment
> in servers to run Wepshere of Tomcat, or is there
> anohter reason, or am i wrong and are there a lot of
> small companies using java apps to do there daily
> tasks on. The reason for asking is a commercial one,
> because i do have to think about the future of my
> small company :-)
>

For desktop systems you hardly need an application server. And if you do need one somewhere as a backend, there are choices for every budget (from (nearly) free to the massively expensive ones like Websphere).
If you code smartly you should be able to create things that aren't (overly) dependent on your application server choice, just as you should possibly code to avoid database vendor lockin.
That way you can tailor your systems rapidly to what the customer already has in place, and provide him a choice of options if he yet has to set up his infrastructure.

> In general though, if the customer is solely using
> Windows workstations a .NET application would look
> more instantly familiar to them, which might be a
> selling point.
> sn't 90% of all small companies (< 50 users) using a
> windows workstation?

Possibly, Depends on your target market. Whether the outward face of the application is so important also depends on your potential users.
If they're secretaries they'll care more (or rather be less confused by it) about a common interface than if they're network admins or graphics artists for example.