I’ve been using the Web Developer Toolbar for quite some time. It’s a Firefox plugin providing the web developer with some very useful tools. Blogger Christian Watson from Smiley Cat recently wrote an article called, 10 Things You May Not Know About the Web Developer Toolbar. Christian was right, I wasn’t aware of many of the features he outlines, like viewing color information, small screen rendering, populating form fields, marking all links unvisited, and a speed report. Read all ten at his site, Smiley Cat – web design blog.
I recently found this nice and simple Firefox plugin called View Source Chart, created by Jennifer Madden
Learning a new language and a new framework can sometimes be overwhelming simply because of not knowing where to start, and due to the large number of new terms and concepts. I hope to help ease the learning curve by presenting here a brief overview of the most common terms and concepts you will see as you begin your Rails learning adventure. I will then follow with another post called, How To Learn Rails, which will present the reader with some step-by-step suggestions for getting started.
Update: I do hope to get around to writing some helpful tutorials on Ruby on Rails, but have been overloaded with projects recently and haven’t gotten to it yet.
This is not a complete list of every term and concept, but I believe it is the right size list with the most important initial definitions.
Overview of Ruby on Rails
Ruby on Rails consists of two components. The core component is Ruby which is an object-oriented interpreted scripting language. It was created by Yukihiro Matsumoto and released in 1995. Rails is a web development framework built with the Ruby language. The framework was created by David Heinemeier Hansson, while working for 37signals on their product Basecamp, and released in July 2004.
In order to become a proficient Rails developer, you will need to learn both the Ruby language and the Rails framework, but it is such a well integrated framework that initially, you will be unaware of where one ends and the other begins.
By becoming familiar with the list below before proceeding on with further study, you’ll be more comfortable as these terms present themselves to you.
Usually referred to as MVC, this is a pattern that goes back beyond web applications, but today is most commonly used in reference to a web application. The idea behind this pattern is to have a separation in the application between three distinct functionalities: the Model, the View, and the Controller. The Model represents information that you are using in your application. In an Object Oriented language this is commonly represented by classes. The View is the user interface that is used to interact with that data. This could be an interface written in HTML, Flash, or any other technology used for the interface. The Controller responds to user interactions and in turn, performs various operations on the Model, including causing it to persist (such as in a database), be redisplayed in a different format, or any of a number of other functionalities.
All modern web development frameworks are based on MVC and Rails is no exception.
A framework means the foundational functionality or the “frame” for a web development platform. This frame is usually built on top of an existing language, such as Java, PHP, C#, and in our case Ruby. This frame provides the developer with the basic functionality needed to produce a web application. Rails is a framework for Ruby, thus the name Ruby on Rails.
The full-stack term is used by the Rails promoters and community to describe their belief that the Rails framework is complete and provides the normal functionality you will need while developing the majority of web applications. Many frameworks will not provide all the functionality needed, but only the core functionality. In many frameworks, you may spend a large amount of time getting, learning, and configuring third party libraries and solutions to fulfill very important elements of common web applications. But Rails’ goal is to provide functionality for the developer to eliminate the redundant development of the same web framework tasks over and over. This includes creating the user interface, dealing with business logic, persisting data into the database, and everything in between. All of it, already working together, without the need for the developer to figure out how to configure these elements.
For the past six months I’ve had the pleasure of working with Rails in my spare time. I’ve read several books, and written several applications for personal use. Soon, I will begin to put most of my spare time toward a Rails application I hope to release to the general public. As well, I will begin to share more of my Rails experiences on my blog. (Watch for new posts on getting started with Rails, like Ruby on Rails – Terms and Concepts).
I remember well the early days of cgi programming when I wrote my first Perl web applications. Then I transitioned to some kind of Oracle web procedures (I forget the real name) for some larger applications for Fortune 500 companies first getting onto the web (ex. Lucent Technologies). Eventually I did Flash and Java applets as they first came out. I made the move to Java (beyond the little applets I’d done) when Sun released the first beta specs of JavaServer Pages, in late 1998. In fact, thanks to the beauty of Internet archives I found this post written by none other than myself while working at Cox Target Media in 1999. (Guess I don’t have to worry about proving I’ve been doing JSP since it first came out). I have been involved in Java web application development ever since. I didn’t take an interest in .NET, and didn’t pay much attention to ColdFusion. I’ve done some PHP, mostly for small solutions and to customize my WordPress blogs. But, for 99% of my web software development in the last 8 years, I have stayed committed to Java.
When I took my second look at Rails about six months ago, and this time, really tried to discover what it was all about, I was really hooked. It made simple so many of the common every day tasks I’ve been doing for years. Ruby really made sense as a language and Rails as a framework. I have a lot to compare to it, and so far I’ve been very impressed with how well thought out it is.
In this series of Rails posts, I’m not going to take time to bash Java or any other languages and frameworks. I still believe Java is a great development platform that fulfills real software development requirements. However, I don’t feel like Java is the solution in every case. I count myself as an Internet Software Developer, not as a Java Developer. I have experience with many tools, and I prefer to choose the right tool for the job at hand. I’ll leave when I would use Java vs Rails to another discussion, as the focus of these posts will be on sharing my Rails experiences, and hopefully helping some other interested Internet Software Developers get their first taste of Rails development. This will not be a discussion of which is the best development platform, but instead will simply be me sharing with you, this new exciting and beautiful web application framework. I truly haven’t had this much fun developing web applications in a long, long time.
Hmm. According to Ajaxian, there are approximately 210 Ajax frameworks available. Is that really enough? Come on, let’s at least have one for each day of the year.
Now my question is, do you have to know all 210 in order to get a job as an Ajax developer?