I have an idea for a web project that I would really like to do. As a beginner I am absolutely daunted by the seemingly limitless web technologies (XML, ASP,AJAX,RUBY,SQL,PHP, and on and on) and what theyre used for. I have a very basic understanding of html (which I’ve learned from this site!) but I need to know what technologies I would need to become familiar with to complete my project.
Basically, I want to build a web site that members can join and use to catalog parts (with photos) for vintage motorcyles. I know this is very broad but if I could get help with what web languages would be best for a project like this then that would point me in the right direction. I am pretty good with learning new things so I know I could put the site together (with a little help from my friends!)
All of the server-side languages are about equally capable. PHP has the advantage of having everything either built in or available for free as an extension. With ASP, you typically have to pay for DLLs to duplicate a lot of functionality that PHP provides out of the box. AJAX will work with both. Everything you need for AJAX is built into the visitor’s browser. SQL can be used with both. Again, the open source SQL database servers commonly used with PHP (MySQL, Postgres, etc.) are free and work under all operating systems, whereas you have to buy a license for MS SQL Server, which only runs on Windows servers. Ruby on Rails uses FastCGI on Apache servers and can crash the server if your applications are not very well-designed. This is not only a nuisance for you, it pisses off other people who have sites hosted on the same server.
I have to agree that PHP seems like an optimal choice, given your background. The things you need to learn, in order to get some kind of effect, is minimal. For beginners, the ability to simple mix PHP with HTML, makes it very easy to approach. In addition, installing is dead simple, compared to most other technologies. Some of these attributes, are also what makes it a bit of a pain in the long run, but none of it are show-stoppers.
Start small; Don’t pick a framework from the start - Learn the basics first. And use the friendly PHP forum on this site; Since PHP is such an easy language, it means that there are a lot of amateurs and beginners using it, so “stupid” questions aren’t as likely to be scoffed at.
You should also look into CMS frameworks like joomla or drupal. PHP based and open source, they provide a lot of core functionality out of the box and also allow for customization as you develop your programming skills.
ASP is history now, so we’re referring to ASP.NET here. It does NOT need any “pay-for” DLLs to duplicate PHPs “out-of-the-box”. In fact, if you are on a shared host PHP will be limited by the available extensions while ASP.NET hosters will allow you to upload third-party (or own) compiled assemblies (has to do with the trust the hoster can have in PHP extensions versus .NET assemblies). So, as far as functionality goes you will be consiberalbe less restricted with ASP.NET than with PHP or RoR. I’m curious what functionality apart from pdf generation PHP delivers out of the box which is not matched by ASP.NET?
You are correct that all of the database servers can be used with ASP.NET, PHP and RoR alike. However, it is incorrect that one needs to buy a license for SQL Server. At least for projects this size the free SQL Server Express will do just fine. As will MySQL, PostgreSQL, Oracle etc.
There is multiple ways to deploy Ruby on Rails. While it is not as mature as PHP deployment, you are incorrect that FastCGI is more dangerous to the server than the PHP method. In fact, it is the other way around. FastCGI will always be more robust for the server than an apache module. With FastCGI the “handler” (Ruby on Rails in this case) runs in its own separate process and is thus shielded from the server. You may experience the handler process going AWOL, but that will not crash the server. PHP on the other hand has every oppurtunity to crash the server, as mod_php runs in server processes. It is only because PHP sheds everything between requests and uses prefork MPM (sacrificing some performance and scalability) that you have the perception of PHP being more stable. Indeed PHP is so challenged in the memory-management department (bugs, corruptions, circular references) that it would never be able to run any other way. I’m not going to pretend that deploying and managing RoR applications is easy. On the contrary; it seems to be the biggest problem of RoR; but you should be more precise in your statements, however. You also forgot to mention that there’s other ways to deploy RoR applications, such as mongrels.
The project in question is actually in the area where Ruby on Rails excels. There’s no need to learn advanced programming to design a database backed site. Just grab a RoR book, experiment and use the samples as a roadmap for your own site. Very little code is needed. You need not understand the Ruby language itself, just the limited part which enables you to write RoR apps.
My recommendation would be to grab a beginners book on RoR.