View Full Version : Web development languages: really basic questions & which one for web apps?

04-26-2010, 04:51 AM
I am looking forward to your replies, so feel free to scroll down and begin typing :)

If I was hoping to develop some web apps (essentially saas) in a few years, and I wanted to learn how to code them now, which would be the best language/framework to learn?
Originally I would have thought RoR, however looking into it a bit it seems there are some issues with scaling, and that Java might be better?

Also, it would be great if someone could help me understand how all the different aspects of web development/design work together.
e.g. Is Java comparable to ruby, or ruby on rails?
What is ruby as opposed to RoR?
How does Javascript, Ajax and PHP come into the mix when using RoR or Java? Used with them or as alternatives?
-----If I learnt RoR, would I still need to learn html and css?
Is java for frontend also?
If you use a CDN, do you need separate web hosting as well?

I have done a reasonable amount of research prior to this, however it is the pure basics of how everything fits together that I haven't been able to find.
The 'Introduction to web development' from tip-kit (can't post urls) gave me a bit of an idea.
Also, I have built a basic website using css and html before, and coded applications in vb6 and some small objective-C apps.

04-26-2010, 09:48 PM
There really is no wrong answer... I myself enjoy and prefer PHP but that's probably because that's what I learned first. It's ubiquitous, it's free, it's install on 99% of hosting company's web servers, and it's old enough now that it's considered stable. And, I've recently discovered CodeIgniter, which makes developing a website using MVC principles a breeze. (There's my plug for CI)

But people do rave about the rails, and I have a friend who is a rabid ColdFusion supporter, and guess what-- people use all of these tools and get stuff done with them. So it boils down to what you learn first I think :p

One thing-- Java seems cumbersome, that's just my narrow-minded opinion based on what I see at my full-time job where Web Logic is used (I don't personally work on it though). Seems you need some large-scale framework on top of Java to make it useful, and these large-scale frameworks seem cumbersome to me.

04-28-2010, 07:59 AM
Cheers mate, yeh I agree with you that there are certainly a lot of competent options, I just thought that I am in a good position starting out now as I can choose a language and framework based on what has worked best rather than just what language i know.
Yeh I think I am in agreeance with you on java.
I have done a fair bit more looking into this and the only things I am left wondering are:
Which should I learn after html/css - java/grails, ruby/ror, python/django, scala/lift - I think It is good because I can start out with the 'best' language rather than choosing a framework based on what I know. Obviously this is a hard question to answer - I know there is no 'best', however I would like to hear people weigh in on different aspects.
Is ruby on rails a front end or back end framework?

04-29-2010, 01:08 AM
I had asked this question on a few other forums, and I have summarised the responses below. If you have anything to add, please do:

And to quickly note: I am aiming to develop web apps, not just websites - similar to Basecamp, Remember The Milk, Hunch.com, evernote, Freshbooks etc.

Is Java comparable to ruby, or ruby on rails?
Java and Ruby are comparable as both are languages. Java is combiled, Ruby is scripted.
Rails is a web framework for Ruby.
Java equivalent to Rails = Spring MVC/Tiles framework or Struts/tiles, or Grails

Scaling issues with Ruby?
There will always be scaling issues, and this shouldn't be worried about at the start.
Rails can actually be very easy to scale as this is one if its features.
Plenty of popular apps built using Rails: Basecamp, GitHub.
Also, scalability issues will be addressed as the language develops - Java has been around for years of performance tuning.
Very interesting note: 'it is cheaper to build a scalable product with a fast development language like Ruby where you can add servers as you need them than it is to develop in a slower-to-code environment (e.g. arguable Java).'

What is ruby as opposed to RoR?
Rails is a backend web framework for Ruby, a general programming language.

How do Javascript, Ajax and PHP come into the mix with RoR or Java?
Ajax is Javascript - clientside. PHP is an alternative to RoR or Java.
AJAX allows you to make requests to the server (which would be handled with RoR, PHP, Java etc) and to receive data back from the server without refreshing the page.
PHP is a very similar language to Java.

If I learnt RoR, would I still need to learn HTML and CSS?
Definitely, along with Javascript - also, get familiar with the DOM.
Should I learn XML?
I should start with learning these languages before moving onto a backend language w/ framework.
Also, as I am looking to code web apps, not just sites, I should learn SQL.

Is Java for frontend also?
Yes? Java applets are client side and Javascript is client side.

If coding in java for a website, I assume that the JRE is not required on the client's computer?
Only for Java applets, which are essentially dead. Not for Java deployed on a server.

Is ruby on rails a front end or back end language framework?
Back end.

If you use a CDN, do you need separate web hosting as well?
Yes. CDN handles your content (images, css, js, views), then you will also have a db host/webhost (usually combined)
The webhost handles the Models (db handles) and the controllers.

Best language/framework to learn? [Note: Opinions reside below! Not purely factual!]
Look at the typing methods of each languages - strong/weak.
Differing syntaxes - verbose like VB, or short syntax.
Will depend on: cost, scalability, maintenance, learning curve, time to launch, language capabilities.

Cautions against Scala and Lift for a beginner - not mainstream enough.
+ for ExtJS.
PHP frameworks: CodeIgniter, CakePHP are good. Zend Framework is terrible. Hydrogen is a PHP toolkit. Frameworks often force you to comply with their methods of doing things, which can be good for a beginner.
PHP > RoR due to popularity - means highly supported, huge community support, easy to scale, however RoR is gaining momentum.
RoR: harder to find a reliable webhost that suppors Rails.
Python: most popular framework is Django, again harder to find a reliable host.
Java = cumbersome, complicated. Fast, scalable - however can be daunting to learn. You need to learn the language, as well as how to use it to manipulate web pages - before it becomes powerful you need to learn libraries like Struts, Spring, Hibernate, Log4j and XMLbeans.
Then you also need to to use Ant an Maven - and terminology such as EAR, WAR. More suited to massive operations for big corporations.

04-29-2010, 01:18 AM
Christ, I phased out about three lines into that. Just pick whichever languages suit you and your purpose. You'll most likely be going with Javascript/AJAX for any client side work and then just use whichever rocks your boat for the server side scripting.

06-10-2012, 01:19 AM
It has been two years since this was posted, but here is what I would say to anyone in the original poster's situation, namely: wanting to develop web applications but lacking experience and having some time to learn.

Your inexperience can be seen as an advantage. One of the main reasons people use the most popular tools like RoR or PHP is that they are already familiar with these things and hence can get things done quickly by using them. That reasoning does not apply to you. So there's no reason to use what's popular; you are free to study whatever technology appeals to you most. And there are many very effective technologies available today that have not achieved great popularity, mainly because of momentum. For example, I am an advocate of Scheme as a web development language (http://gcbenison.wordpress.com/2012/02/19/guile-vs-php/) - not seen very often, but a pleasure to work in.