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.
Quote:
|
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
Quote:
|
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).'
Quote:
|
What is ruby as opposed to RoR?
|
Rails is a backend web framework for Ruby, a general programming language.
Quote:
|
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.
Quote:
|
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.
Quote:
|
Is Java for frontend also?
|
Yes? Java applets are client side and Javascript is client side.
Quote:
|
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.
Quote:
|
Is ruby on rails a front end or back end [s]language[/s] framework?
|
Back end.
Quote:
|
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.
Quote:
|
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.