I have a pretty good Java background and about a year's experience with Android. I was looking to learn a Web based language but I am not sure which one to? It's not necessary that it has any thing to do with Java. But something that will be useful and interesting to learn? I know this sounds stupid, but any suggestions? Thank You.
By web based language I assume you mean a server side technology that spits HTML.
Learn the
Ruby Language
[1] using the
JRuby interpretor VM implementation
[2] which is tightly integrated with Java, and then check out
Ruby on Rails
[3], this framework teaches you some of the best things (flow, patterns, etc.) one needs to know about web development.
Some screencasts on Rails:
http://rubyonrails.org/screencasts
If you already have experience with Java, then it's time to learn something new. Try .NET with ASP.NET AJAX or ASP.NET MVC, alternatively learn some python.
If you know Java, that will work, In addition look at GWT, it is a really cool technology that allows you to run the Java code you write in your browser, by translating it to JavaScript.
I would recommend that you learn HTML and CSS for starters; You will need that skill-set for all languages.
Some Web Programming languages that are popular include PHP, Ruby and Python, there are many more.
If you already have experience with Java, go with Java EE's servlets and JSP. Apache's Tomcat [1] is a good and simple Servlet+JSP container to use. Once you get use to the basics, you can move on to a higher level framework such as JSF, Struts or any other Java based framework you want.
[1] http://tomcat.apache.orgIf you want use java, then there's Java EE it's server side html preprocessor and a lot of more.
The best move in my career was moving to Groovy (and of using the grails [1] framework).I was coming as well from the Java world (I already was working in J2EE technologies).
The main reasons for moving to Groovy are the usual things cause the people move to Any Dynamic Language, plus the fact that you are running on the JVM. And for the framework, I'll just point on the reasons that makes the most of the web frameworks as amazing as they are:
But mainly, I am having fun programming again after few years.
[1] http://www.grails.org/Well, if you want to try something different, I suggest you have a look at haXe [1]. It is an expressive and concise language. It is open source. It runs on lot of platforms. It has a great community. It evolves and adapts quickly. An Android backend is currently being worked on.
Among popular web programming languages, C# and Ruby are the only two, that can compete with haXe. The former due to expressiveness and feature richness, the latter due to its conciseness. Java OTOH is not a great language. Instead Java is a great platform. The beauty of Java lies in the fact, that if you do it right, you don't really have to write a lot of code. But if you actually like coding, don't go with Java.
greetz
back2dos
The lowest barrier for entry and most prolific would be PHP. It's very easy to get started and there are innumerable examples on the internet to help you.
Your choices are the normal Java bits as mentioned in other posts, the .Net stable of technologies (ASP.Net Web Forms Or ASP.Net MVC), Python or Ruby (MVC). Personally I would currently look at something completely different called Silverlight (from Microsoft). I beleive that it has recently reached a decent level of maturity and offer alot of benefits that other browser based technologies do not, whilst removing alot of problems they had. In other words, Silverlight is basically the 'next-gen' approach which everyone will be cloning soon. And it runs on mast browsers (on most platforms). If I had to learn something new right now, I would learn something that is cutting edge and will be relevant for a long time to come.
Why do want to learn a new language? Is it a work related need or you just want to expand your knowledge? How much time do you have to put on it? Depending on your reasons and motivations it can go either way.
If it is a work related need, i.e your company wants to port some desktop application to the web, and you need to do it quickly, I would go with Java EE's servlets and JSP as Pablo said. It will save you time since you have experience with the java plataform.
If you want to expand your knowledge, do some personal projects and overall just improve your portfolio, I would go with python or ruby, they are easy to pick up and have good frameworks for web development.
PHP + AJAX is a good set.
PHP has many frameworks, such as: Zend, Yii and etc. I was also write less php code than java. But I ramp up quickly with PHP framework. And same as, Ajax framework Jquery is more popular. For a fresh man, I think lightweight frameworks will help him to create an application quickly .
If you're looking for job-related skills, check out indeed.com job trends:
For client side, stick with the core standards -
Silverlight and/or Flash will probably fade away and be replaced with HTML 5
For server side technologies, you can't go too far wrong with Microsoft technologies -
If you are looking to build a career , then many fortune 500 companies have Enterprise development environments that are focused around Microsoft tools.
Some of the Microsoft tools can be expensive, but the express version are free, and a great starting point http://www.microsoft.com/express