PDA

View Full Version : What is Java good for?



leeward
July 31st, 2008, 07:22 PM
My first programming class used Java. I got pretty far in it even after the class was over. After a while, I kind of put the book down because I was dealing with moving, getting married, etc. and other things kept me from sitting at my computer. Lately, I've been picking up the book and flipping through it, again and doing a little Java work.

I'd like to know what Java is good for? I know that it's big in web development and embedded devices, but what else could it be good for? The biggest program I can think of that's written in Java is Netbeans. Is Java worth learning, or should I look at a different language, such as C++ (lot of job offers I see want C, C++ and/or Java)? I do kind of like Java. I don't know why.

I want to clarify something. When I ask if it's worth learning, what I mean is what basis should I use to decide if it's worth learning for me? Once I get out of the military, I'm going for my B.S. in either Electrical or Computer Engineering. I haven't decided whether I want to get into hardware or software (I do kind of like programming). One thing I am a bit interested in is embedded devices. That makes me think that Java would be very good to learn. At the same time, I haven't decided for sure, and I wouldn't mind writing some programs between now and that time (we're talking 6 years before I finish school).

I hope I don't upset anyone with my wording.

tuxxy
July 31st, 2008, 07:25 PM
Java is an industry standard so it must be worth learning :)

Wybiral
July 31st, 2008, 07:27 PM
Java is an industry standard so it must be worth learning :)

Windows is a desktop standard, so it must be worth using.

mech7
July 31st, 2008, 07:29 PM
Java runs on everything... windows / linux / mac / phones / tv's / blu-ray you name it :p...

Only Java app that i really use is Eclipse though :) it's slow but great

jimi_hendrix
July 31st, 2008, 07:31 PM
i was curious about java a little while back because of all the inbedded online games (i want to make gamesas a hobby...im no where close though) and i looked into java they didnt say this directly but aparently java is useable on any type of computer if i recall so you can program your microwave =D

i am probably wrong about this though and please correct me if i am

its also aparently very simple to learn and use

tuxxy
July 31st, 2008, 07:32 PM
Windows is a desktop standard, so it must be worth using.

Desktop you have control and choice over what you use, in the workplace you may not.

Well try PHP then for a hobby if you like, im not saying java is incredible just that all programming knowledge is good and that it may come in useful on his mext course.

mikazo
July 31st, 2008, 07:40 PM
Java is a good language for learning the concepts of object-oriented programming, without having to deal with pointers and memory allocation and all that. Not that pointers aren't a good thing to learn, but Java seems like a good beginner language to me.

As for what Java is good for, try to think of applications you might want or use and then try to make it. For example, I once made an intsant-message-like chat client that communicated over the internet. Programming a GUI for your application takes a little time to learn but eventually isn't that hard to implement. My dad wants me to program him a picture organizing program, so that will be my next Java project. Java can be applied to lots of things, so anything you might want to make, chances are you can do it with Java.

Other languages can do the same things, and they may even be better at it, but Java is definitely worth learning if you are going into either hardware or software.

pmasiar
July 31st, 2008, 07:47 PM
My first programming class used Java. ... I haven't decided whether I want to get into hardware or software (I do kind of like programming). One thing I am a bit interested in is embedded devices.

To become competent programmer, you need to learn more than one language: you want to understand what part of a problem is "real" and what part is just specific to the tool (language) you use to solve the problem.

Every competent programmer should know also
- C (if not assembler), to understand how CPU deals with what we want to code
- dynamically typed scripting language like Python, Perl, Ruby, (to quickly solve problems, if agility is more important than raw processing speed)
- SQL, to store data in database
- general understanding of concepts of couple other "different" languages, like Lisp, Erlang, Forth - just to get you out of the routine, stretch your brain.
- possibly HTML/CSS, for web frontend

It is hard to know which languages would be popular 6 years from now, but for sure 25 years from now there would be languages beyond Java (even if Java would be still used - like COBOL is still used).

Read sticky FAQ, plenty of good advice there (and often better quality than random advice from occasional posters in single thread).

And read blog posts of smart forward-looking hackers, like The hundred year language (http://www.paulgraham.com/hundred.html) by dot-com millionaire Paul Graham.

dribeas
July 31st, 2008, 07:52 PM
I'd like to know what Java is good for?

For desktop applications windows is going into .NET world (C#/VB), while MacOSX standard application language is C++ and in the linux world I guess C/C++ would be the most common, with python really hitting hard.

In application servers you find quite a lot of Java programming (both in some web servers and control servers for other networks (phone, voip, ...) most telecom industries are going towards Java in Spain.

In my case, the company I work for has two businesses: Microsoft World (where C# is becomming standard both for web apps and some desktop apps) and Simulation (where I am) that works in C++.

David

LittleLORDevil
July 31st, 2008, 07:52 PM
Portability.

LaRoza
July 31st, 2008, 08:19 PM
I'd like to know what Java is good for? I know that it's big in web development and embedded devices, but what else could it be good for? The biggest program I can think of that's written in Java is Netbeans. Is Java worth learning, or should I look at a different language, such as C++ (lot of job offers I see want C, C++ and/or Java)? I do kind of like Java. I don't know why.

You know, I asked the same question. http://ubuntuforums.org/showthread.php?t=484783

There are few times where one would say "This looks like a job for.. Java!" in real life, but it is used a lot by companies (so many jobs require Java) and it does have uses (one person I know (online) does work in Java for his client, because it has to have speed and be cross platform and Java is the best suited for this)



I hope I don't upset anyone with my wording.

Only people who like Java and they don't matter :-) </joke>

a9bejo
July 31st, 2008, 09:26 PM
The biggest program I can think of that's written in Java is Netbeans.

Here are three much bigger, java programs: gmail, ebay and amazon .

almostlinux
July 31st, 2008, 09:27 PM
What is Java good for?

Making programs slower :lolflag:

Java should stay on the server side where it is very mature. No desktop programs or (*shudder* :shock:) applet garbage please.

drubin
July 31st, 2008, 10:30 PM
Here are three much bigger, java programs: gmail, ebay and amazon .

Gmail runs on java server side? I was under the impression it was written with mix of googles own internal languages and python

scorp123
July 31st, 2008, 10:50 PM
I'd like to know what Java is good for? Many application servers (e.g. JBoss, Apache Tomcat, IBM WebSphere, BEA WebLogic ...) use Java as their basis. What this software does ... oh well, let's ask Wikipedia:

IMHO and based on my experience these are the most widely used ones ... and believe me when I say that companies *do* *use* these applications and very often have business critical applications running on these installations:

http://en.wikipedia.org/wiki/Apache_Tomcat
http://en.wikipedia.org/wiki/BEA_WebLogic
http://en.wikipedia.org/wiki/JBoss
http://en.wikipedia.org/wiki/IBM_WebSphere_Application_Server


There are more ... But honestly: I have so far never encountered any of these here at any customer site ... and I have been at many sites in many countries, in many server rooms ... So I wonder who uses these for I have never ever seen an installation anywhere so far:

http://en.wikipedia.org/wiki/Glassfish_Application_Server
http://en.wikipedia.org/wiki/JOnAS_application_server
http://en.wikipedia.org/wiki/OC4J#OC4J
http://en.wikipedia.org/wiki/Apache_Geronimo


So you know Java? Good for you. If I may suggest something: Take a look at opensource application servers such as Tomcat and JBoss (both are opensource) or commercial ones such as WebSphere and WebLogic (as far as I know both can be downloaded for free; but they are commercial proprietary programs and may require registration and/or a trial license), and learn how to write and deploy applications on those J2EE environments ...

It should then be very easy for you to find a well-paid job in the IT industry, should that be your goal. :)


I know that it's big in web development and embedded devices, but what else could it be good for? See above. Often when companies need to offer services to a potentially large audience they use application servers such as those I listed above and then a web-based application specifically written for this purpose handles all the requests, the orders, the numbers ... whatever. I guess you know "Amazon". Bingo. The online shop of theirs is a huge Java application that takes all the orders and other requests and feeds and fetches many thousand entries from their huge databases ....

Other example -- one I personally work with:

"Sun Secure Global Desktop"
http://www.sun.com/software/products/sgd/index.jsp

What it does ... Hmmm, let's Wikipedia explain that too:
http://en.wikipedia.org/wiki/Sun_Secure_Global_Desktop

This is about the coolest piece of software ever written in Java!! With it I can access my company desktops (no matter if Windows, Linux, Solaris!) from anywhere in the world ... and all I need is a web browser.

Currently we're selling "SGD" installations like mad to other companies.

Now if you could program something like that ... and make it OpenSource? ... hey that would be niiiiiice :D


The biggest program I can think of that's written in Java is Netbeans. the billing system of a really big telecom company I happened to have amongst my customers (... I think I am not allowed to say their name ...) during my time at Hewlett-Packard (2000-2007) was all written in Java ... It needed to sort through ~350 GB of data *per day*, put the fragments together (so called "Caller Detail Records" ... hexadecimal log files you and me leave behind on every telecom switch when we do a phone call, send SMS, send MMS, etc.), find out which phone number on this planet initiated the call and find out the precise costs this caused, put the sorted data back into a nice database system (you can't imagine how huge their storage system is ...!) and then initiate the billing so that everyone (you, me, other phone providers, other countries, etc.) gets a precise phone bill at the end of the month ... As I said: this thing was written in Java. The advantage here being that they used "Java Enterprise Beans" technology and other tricks so that the application and its writers didn't have to worry about the make-up and setup of the databases that feed the program and to which the program would write its data to ... Business logic was separated from the application's logic, as they say. And the application did many things in parallel as far as this was possible. As I said: This things needs to go through 350 GB of data every day.

For this program to run they needed a fully equipped HP 9000 "Superdome" computer, with 64 CPU's and 2 TB (= 2048 GB) of RAM. The price range of such a computer is somewhere around 2 million dollars if I am not wrong :)

Not bad for a Java app ;)


Is Java worth learning Definitely!! And the others are right too... it can't harm if you add other languages to your repetoire. C# is currently very popular in the Windows world. Good old C is pretty much universal and can be used anywhere. PHP is nice for web server stuff and web development, but I personally would not invest too much time into it. PERL is *definitely* a big bonus if you have to do sysadmin-tasks on UNIX systems (e.g. automagically analyse large amount of log files, etc.). Last but not least it's never a bad idea to learn shell scripting (bash, awk, regular expressions ...).

Just don't waste your time with "Visual Basic" and other such nonsense languages ... that won't get you anywhere.


lot of job offers I see want C, C++ and/or Java There you go. The market wants Java programmers. If you can convince your future employer of your talents maybe you can even broker a really nice salary for yourself .... ;)

You said you just got married ... Trust me: The bills won't get smaller. Especially if you plan on having kids ... soon every cent, every penny counts! To quote from one of my favourite movies "Thank you for smoking": We all have a mortgage to pay ....

So you like Java, you like the language, you'd like to expand on it ... that's perfect. Keep going, don't put those Java books away ... ;)

xlinuks
July 31st, 2008, 10:51 PM
My first programming class used Java. I got pretty far in it even after the class was over. After a while, I kind of put the book down because I was dealing with moving, getting married, etc. and other things kept me from sitting at my computer. Lately, I've been picking up the book and flipping through it, again and doing a little Java work.

I'd like to know what Java is good for? I know that it's big in web development and embedded devices, but what else could it be good for? The biggest program I can think of that's written in Java is Netbeans. Is Java worth learning, or should I look at a different language, such as C++ (lot of job offers I see want C, C++ and/or Java)? I do kind of like Java. I don't know why.

I want to clarify something. When I ask if it's worth learning, what I mean is what basis should I use to decide if it's worth learning for me? Once I get out of the military, I'm going for my B.S. in either Electrical or Computer Engineering. I haven't decided whether I want to get into hardware or software (I do kind of like programming). One thing I am a bit interested in is embedded devices. That makes me think that Java would be very good to learn. At the same time, I haven't decided for sure, and I wouldn't mind writing some programs between now and that time (we're talking 6 years before I finish school).

I hope I don't upset anyone with my wording.

There is wikipedia and goolge, I'm sure there's enough info to answer your question.

tinny
August 1st, 2008, 06:38 AM
Java dominates the world of "back end" systems. J2EE is the de facto standard for developing the types of systems you will never “see”.

E.g.
Banking systems
Electronic payment systems
Insurance systems
Billing systems
Telecommunications Systems
etc...

In theory Java is also good for developing mobile phone applications (J2ME - MIDP). However ive found that in practice the constraints that network providers impose on their handsets have made this a slightly disappointing experience for me (complicated application signing processes).

I personally believe that Java is also very good for desktop application development. Not that long ago I developed a substantial project management desktop application using J2SE (swing). I was careful to write my application in a very generic way from the first day of starting the implementation and when I finished I had a working Windows, Linux and Mac application! :) (no platform related bugs, amazing!!!)

I think that there is a common misconception that Java is slow, swing is slow etc... Back in the days of Java 1.3 sure it was slow! But now its not. Unfortunately Java obviously hasn't been able to shake this misconception :( Now a days any slow Java desktop application performance is due to bad application design. E.g. Doing computations within the swing thread. (this will always make a swing application seem terrible).

Examples of Java desktop applications

OpenOffice
Acrobat Viewer
Eclipse
NetBeans
jEdit
IntelliJ
Limewire
Aerith
Maple Mathematics Software - MapleSoft
Kbforge


Plus many many more: http://java.sun.com/products/jfc/tsc/sightings/S01.html

david_lynch
August 1st, 2008, 06:46 AM
At my university, java was used as the main programming language in the computer science curriculum. A wise choice, not only because it's so widely used, but because it matters not whether the student is running peecee, mac or linux, the same java code runs on all 3 platforms, and more.

In the software engineering class, I used linux, but my co-programmer used windows. We passed the jar file back and forth via email, updating it throughout the semester, until the final project was turned in. I would hack on the code in linux, jar it up and mail it to my partner, and he could run the jarfile on his windoze peecee.

Other languages we had to learn for the degree:
c
c++
c#
lisp
prolog
x86 asm

My favorite java program is azureus

Pasty-Flawss
August 1st, 2008, 11:40 AM
so you can program your microwave =D


Rofl! Please teach me...

tinny
August 1st, 2008, 12:19 PM
i was curious about java a little while back because of all the inbedded online games (i want to make gamesas a hobby...im no where close though) and i looked into java they didnt say this directly but aparently java is useable on any type of computer if i recall so you can program your microwave =D

i am probably wrong about this though and please correct me if i am

its also aparently very simple to learn and use

This "so you can program your microwave" statement is completely true!!!

Java was originally conceived as an embedded systems technology (programming for small micro computers).

Its funny to think that this technology now dominates the enterprise software space.

BTW: If your interested in embedded Java have a look at the JStamp (http://jstamp.systronix.com/Resource/jstamp_datasheet.pdf), I have one and its soooo cool. Its native Java! The aj-80 microcontroller native JVM bytecode execution is amazing! You can handle hardware interrupts directly in Java (translation: thats a big deal).

siDDis
August 1st, 2008, 12:49 PM
Today Java is a great tool thanks to the open source community which has improved Java a lot with Hibernate, Spring, Groovy etc..

The main problem with Java is that it tries to be a tool that can do everything, and it can, though there are other programming languages which does things better.

And I don't find Java slow at all, Yake2 is a great example of that http://bytonic.de/html/benchmarks.html

Even GUI apps feels very good and responsive today. On my Windows desktop PC I use aTunes for music. It's a great application, fast and requires very little memory.

drubin
August 1st, 2008, 02:43 PM
And I don't find Java slow at all, Yake2 is a great example of that http://bytonic.de/html/benchmarks.html

Been looking for this one for a while, lost if for a little bit.

Java is DEF on the up and up