Quote Originally Posted by Chobley

I've got another question...open to anyone; I want to actually move onto Java; ultimately I would like to write mobile apps and games...but, a daft question it may seem; why do a lot of people choose Pascal? <--- thats probably a tough question to ask...but under my own admission as a beginner whilst I'm trying to get to grips with programming, I really don't know what I am talking about...but what are the advantages of Pascal lets say over Java?
_in general_ Java tries to abstract you too much from the system. This might be different for certain mobile devices with a device specific SDK, but in general it is a bit sluggish.

Pascal is a very decent language, with some serious speed attached to it, that doesn't shield you from the system. Also it allows to generate binaries (e.g. .exe's on windows) that don't require installation or other files, making it also great for utils and even mid sized apps.

Personally, one of the gripes with Java is that on one level they pretend it is the same everywhere, and on the other you have to use special editions (J2EE, j2ME), versions, SDKs, widget sets (swt,awt,swing). So first they hook you onto the one to rule all attitude, but when you actually try to do that, you either are stuck with a one size fits all app (that e.g. has a non native feel on windows), or you have to differentiate again, negating the use of using Java in the first place.

That combined with the more difficult interaction with other software (be it OS or other apps not specifically written to communicate with Java) is why I only do it when I can't avoid it. (and if Windows is a major factor, that is almost never, beter go with .NET then)

For mobile games it is different, because sometimes you can't use native code (due to native bins not being allowed), but this is not a technical reason, but marketing.

But even then, even Java is not always as free either, so be careful, some Java devices will only run java apps when properly signed, and you have to register and pay for that. (e.g. carrier locked phones). Be sure to check your targets first if you can actually run custom Java code on them.