Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   Java (http://www.programmingforums.org/forum17.html)
-   -   Java vs All (http://www.programmingforums.org/showthread.php?t=10673)

Toro Jul 10th, 2006 2:58 AM

Java vs All
 
Here my problem. I am on my way on becoming a professional programmer, at least trying to be. I have really good grasp of Java, C++, and right now I am learning PHP. My problem is that the Java language itself though. I consider Java my most knowledgable language I know. I personally like to program in Java but others seem to treat Java if it was the worst language to program in or something what is very evil. Honeslty, does Java even have it's on place in a category of programming.

Web programming: PHP
General-purpose and Game Programming: C++.
System Administion: Perl

Where does Java has it's own place. Is Java worth even continuing or should I be a lot more proficient in other language, maybe C++ more or Python. Can't things be acomplish in other language better than Java? Besides Cross-Platform, what does Java have to offer?

Ooble Jul 10th, 2006 5:48 AM

Well, it has a decent GUI toolkit, a large API, it's very object-oriented (if that's what you're looking for), it's easy to use, relatively speedy and, as you say, it has the whole "write once, run anywhere" thing going. If that's not reason enough for you, by all means, don't use it. :)

Arevos Jul 10th, 2006 6:41 AM

Quote:

Originally Posted by Toro
Where does Java has it's own place.

Java is big in two markets. Firstly, embedded devices, such as mobile phones. Most phones nowadays can run J2ME.

Secondly, server-side applications with J2EE. Messaging systems, database management, business logic - whatever you need a server for, Java's a relatively good match for business use. This extends to web applications. For simple web programming, PHP is a good choice, but Java's strength is in its two-dozen and one web frameworks that allows a developer to take a very structured and scalable approach to web design.

Java's just about the fastest and most scalable language around for that sort of work. It's virtual machine is the speediest around, and it's excellent support for threading, combind with a truckload of pooling and clustering libraries, make it a good idea if you need to deal in huge volumes of data. Google, for instance, use Java alongside C++ and Python, and I don't need to point out how much data they have to manage.

Java also has something of a niche in desktop applications, although here it is not nearly so popular.

There are things I don't like about the language. Sun is very slow to update Java to update. Hell, before Java's generics system was put in, Java's static typing was made redundant by the sheer amount of casting you had to do. Java's main competitor, C#, already has the edge on it in terms of features.

The other thing I dislike about Java is all the syntax cruft it's picked up from C++. In C++, the new operator actually meant something; it distinguished between objects created on the stack and on the heap. In Java, there's really no point for it, as every object is created in the same section of memory.

Oh, and Java isn't fully object orientated. You have to jump through hoops to mess around with classes. Methods aren't objects. Primatives aren't objects. Once you get used to working in a fully OO environment, Java's limitations can get somewhat irritating.

I should also mention Java's lack of operator overloading, lack of mutable classes, and lack of multiple inheritance, which all annoy me. But these are deliberately missing from Java, and whilst I don't agree with that, I understand Sun's reasoning for doing so.

Despite all this, however, Java's certainly a language that has it's place. Indeed, I suspect by now it's one of the most used, if not the most used, programming language today.

King Jul 10th, 2006 10:09 AM

Well said Arevos. Java for sure has its place in web development, but I would choose many other languages over Java for stand alone desktop applications.

Jimbo Jul 11th, 2006 12:07 AM

Quote:

Originally Posted by Toro
General-purpose and Game Programming: C++.

Wow... nice grouping... general purpose + niche...
Quote:

Originally Posted by Toro
Is Java worth even continuing or should I be a lot more proficient in other language, maybe C++ more or Python.

I'd recommend that instead of mastering languages, you focus on mastering practices. Know algorithms and data structures well. Know the benefits of different types of languages (OOP, procedural, functional, etc). Make sure you have good programming habits. Know how to read and understand documentation. Don't focus on the languages (though it is good to know their strengths and weaknesses). Picking up a language is relatively trivial.

Then again, I'm still in school, don't have much experience yet... just my $.02

gryfang Jul 12th, 2006 1:18 PM

It doesn't necessarily matter if the language is "best" at a specific niche because it may not be the reason that a Person/Group is using it. It could be any reason that a language is ultimately decided (it's what was used on the last 50 pojects, It is what they learned/used for 10 years, it's what the original version used, the person just likes it, etc.). I mean not all games are made in C/C++, not all system administration is in Perl and not all Web Development is in PHP.

I think Jimbo has the most sound advice because if you don't know how to solve the problems then the language isn't going to suddenly help, and if you can solve the problem then in most cases you sould be able to scribe it to most languages (normally, some may be easier than others).

Harakim Aug 3rd, 2006 10:08 PM

1. Java is portable.
2. Java has a great standard library and great documentation.
3. It is easy to write relatively bug-free code in Java.
4. It is fast.
5. It gets better every version.

Those are my five main reasons for using it. No language comes close on all 5 counts, but most beat it on 1 or 2.

On the other hand, Java handicaps you in a lot of ways. Slowly but surely they are fixing everything I find wrong with it. That's why I put #5.

AntiNinja Aug 3rd, 2006 10:37 PM

6. Well lets face it, Java just plain kicks ass.

v0id Aug 4th, 2006 3:00 AM

Go for C/C++.
There's lots of information about the language, reference, library's and if you're using windows there's nice documentation on msdn, or you can use some crossplatform library (Qt, maybe?)
And like Arevos pointed out..
Quote:

Originally Posted by Arevos
I should also mention Java's lack of operator overloading, lack of mutable classes, and lack of multiple inheritance, which all annoy me

C++ got it!

Arevos Aug 4th, 2006 3:15 AM

Quote:

Originally Posted by Harakim
3. It is easy to write relatively bug-free code in Java.

I'd say Java's error handling systems were about average, here. It doesn't really boast any advanced error prevention devices, such as the design by contract methodology found in Eiffel, or the NullPointerException prevention syntax found in Nice.

Quote:

Originally Posted by Harakim
5. It gets better every version.

At a snail's pace! Improvements to Java seem glacial compared to most other languages (especially Java's main competitor; C#).


All times are GMT -5. The time now is 12:22 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC