views:

185

answers:

3

Is there anything that java cannot do? But other's can?

I am talking about Java as a programming language.

This is just something to help me about what other programming languages I should also consider learning.

Edit: Ok, ive been doing java programming for many years and i sometimes have the feeling that I wouldn't need to learn another one. Java used to be somewhat limited in previous versions like there's no enums, autoboxing, generics, and many more. I am asking about "Java as a programming language" or maybe we can consider the syntax limitations of java that you guys wish it has. Something about the syntax/features that other languages offer but java doesn't.

Edit: Thank you for closing this. I wish though that i was given a little more time to make my question a little clearer. Seems like it was closed before my first edit was made.

A: 

If you mean language constructs that it just doesn't have then you need to look into a different category of language. Something like Haskell is a functional language approaches software development in a very different way. They all DO the same thing (they're all turing complete) but they do it in different ways. Java is a very static language, so you can even look at say Python to see a different approach in that respect.

Aidan Kane
Ok, Python sounds interesting as I hear it almost anywhere...
demotics2002
@demotics2002: Python can do `if (a < b < c)`; Java can't. That's just one simple example. I don't know if that kinds of things really matters to you, though.
polygenelubricants
@polugenelubricants: Good example. Just what I was asking about.
demotics2002
A: 

This is an ambiguous question. If you want to learn programming choosing Java would be a good start.

Pram
Java would be a good start? Then what to learn next? Should I consider Java as a starter's program and other languages as advanced?
demotics2002
Yes, Java would be a good start. Don't worry about what to learn next as getting your head around Java will take a couple of years at least.
Pram
+5  A: 

All general purpose programming languages in use are Turing complete, so in that very rigorous theoretical sense, they have the same power. There's NOTHING that is computable in, say, C#, but not computable in Java.

In a more practical point of view, though, yes, there are things that other languages can do that Java can't. It really depends on how you want to pick your nits. Java has no 8-bit unsigned byte, Java can't convert an int to a boolean value, Java has no first class methods, Java has no pass by reference semantics, etc. None of those would prevent you from getting things done, but they are nonetheless things that Java can't do that other languages can.

As far as learning how to program goes, Java is not a bad choice. It's practical enough, but can be quite verbose. Rather subjectively, though, there are other more "fun" languages for learning that is just as if not more instructive than Java.

With regards to this remark:

I've been doing java programming for many years and I sometimes have the feeling that I wouldn't need to learn another one.

I'm sorry to say that this is a very self-limiting point of view. Learning another language can really expand your mind on what programming is all about. It can also be fun.

Related questions

polygenelubricants
wow! these related questions will be most useful. thanks.
demotics2002