haxtor21 said:
so what your essentially saying is that its possible to write applications in a high level language and use scripting languages for the UI ? could these be interchangeable?
I'm not sure I understand the question. Web apps are written in Javascript. UI is laid out using HTML, and Javascript is used to create interactivity.
Sometimes there is a "server side component". This means you will write the "visible" part of your application, the GUI and such, in Javascript, and then you'll stash some of the smarts on a web server somewhere. The part of the program that lives on the web server can be written in any language but will be often written in Python, PHP, Ruby or sometimes Java. You then use "XHRs" (XML HTTP Requests) to pass data back and forth between the part of your program written in Javascript (running inside the web browser) and the part of your program written in Python-or-whatever (running on the web server). Because the XHRs are invisible to the user, they have little awareness that there is a part of the app that lives outside the web browser. However the part on the web browser which the user uses is still all JavaScript. Applications that rely on this idea heavily are sometimes called "cloud" or "AJAX" apps.
The only especially good way to get around writing your web apps in Javascript is to use some kind of a plug-in or browser extension, like Flash, the Java VM, NaCl or ActiveX. Usually you do not rely on one of these unless you absolutely have to because they limit your market to people who have the appropriate browser/plug-in, and can sometimes annoy the user. I mentioned NaCL in the context of Chrome OS because if you want to run a C++ application on Chrome OS, NaCL will probably (I'm totally just guessing here) be the best/only way to do it.
Im want to become a mobile dev, so I am trying to figure out what languages to start learning after i get java down. I was considering learning some C, then maybe taking a shot at Android. But this cloud computing idea seems very interesting. What can you recommend ?
If you do Android, you have to program in Java. Period. (There is something called the NDK but you don't want to use it.)
Assuming again that by "cloud computing" you mean web apps, cloud/web apps are a good way to get your work onto mobile phones in a simple way. Both Android and iPhone have good support for web apps and if you're careful you can make web apps that rival native apps in usability.
Given what you have expressed an interest in, I might suggest you look into the "Google Web Toolkit". This is a single API that allows you to write a complete web app all in Java. The server side component runs in Java, and they have a special compiler that turns Java
into Javascript (meaning it does not require you to use the Java VM). This allows you to get around the problem that normally writing cloud apps requires you to master like three languages (you have to learn your server-side language, you have to learn Javascript in all its ungodly quirkiness, you have to master HTML/CSS/DOM and understand the strange things that happen on each browser). I have not used the Google Web Toolkit but I have heard good things about it, and Google has used it for many of their popular products.