Report: Ruby on Rails and YUI (Brenna)
Contents
Ruby on Rails
Ruby on Rails (Rails) is an open-source web framework created by David Heinemier Hasson in 2004 (Rouse, 2006). It was written in Ruby and is considered an object-oriented programming language. It was created while developing Basecamp, a project management tool that stores web-based text documents, file sharing, and other services (Varwig, 2009). Rails allows a developer to create pages and applications that retrieves information from the web server, talk to or query the database, and render templates. Hasson didn’t believe that PHP or java were powerful or flexible enough to accomplish his project. He created Rails using simple ideas that were proven successful. Popular sites that were developed using Rails include Basecamp (Varwig, 2009), Scribd , old versions of twitter , and more relevant to Web Programming II, Github (Developer Drive, 2011).
Rails is based on the Model-View-Controller pattern. This model splits an application into three parts; the models, the views, and the controller. The models map to a table in a database and a Ruby file. A controller responds to external requests from the web server to the application and triggers template rendering. The view is the templates that render data to the user (Varwig, 2009). The installation process for Ruby on Rails depends on the operating system the user is running. On Linux, you can use the package management system of your distribution. If you prefer, you can also use third-party tools (recommended rbenv and RV), if you are running Linux or OS X. On a Windows machine, you can use RubyInstaller or pik. There is a thorough installation guide located on the Ruby on Rails website. Once Ruby is installed, you can install all of Rails and through RubyGems on the command line (RubyonRails.org).
Rails is extremely useful for object relational mapping, or converting data between incompatible types. Ruby, the language Rails uses, is extremely readable and well-planned (Griffiths, 2008). Rails also supports several database management systems including MySQL, PostgreSQL, and SQLite (Rouse, 2006). On the other hand, Rails also has several faults. Rails is hard to debug or step through the code. It also relies heavily on “magic and assumptions” that may leave you confused. Rails is also not as well supported on Windows compared to OS X (Griffiths, 2008). Rails is extremely useful for building complex web applications, especially when a database is needed. Because I have experience with mySQL and SQLite, it would be extremely intelligent to use Rails if I need to use a database. Those libraries are available through Rails and are widely accepted and documented, easing any questions or curiosities I have.
(Back to top)YUI
Yahoo User Interface Library (YUI) is a free, open source javaScript and CSS library for building web applications. Yahoo began development in 2005, but YUI wasn’t released to the public until 2006 (Yahoo, 2006). YUI’s lightweight structure and architecture make it fast and strong. YUI powers some of the most popular sites in the world, including yahoo.com, NFL.com, and 1001freefonts.com. It’s well-designed and well-documented API covers event handling (DOM) to building maintainable applications on desktop browsers, mobile browsers, servers (Yahoo, 2006). The Event Utility feature allows developers easy and safe access to mouse click, keyboard input, or other user interaction.
There is an extensive list of utilities including animation, browser and cookie managers, drag and drop element managers, and resizable elements. There are also widget libraries that help the developer control the appearance and functionality of their web site. Styling and appearance are very easy to manage, and learning how to accomplish this stylizing is simple through the YUI User Guide (Yahoo, 2006).
The zip file is easily accessible from the YUI website to download to your machine. It is available for all platforms (Yahoo, 2006) . It works with the Ajax technologies that consists of a class that makes HTTP requests, deals with HTTP responses, handles boilerplate, among many other services (PDoc, 2012). YUI has a clear separation of client and server code, making it easy to use and understand. It’s easy to adapt for advanced JavaScript users and has controls that are very each to implement (panels, tabs, sliders, etc.) (Kapadia, 2009). There is also an extremely informed community along with advanced documentation (Yahoo, 2006). Unfortunately, the lack of a good IDE causes difficulty in development and only works using commercially available IDEs (Kapadia, 2009).
This technology is extremely useful because it extends the capabilities of javaScript. It is also strong in widgets and event handling. Because I might want to do some sort of music data visualization for my project, I could use YUI’s graphics tool to interactively draw a path with my mouse and use that as the baseline for sound. It is also available for most web browsers so compatibility would not be an issue. The large number of tools that are available are really powerful and may take the place of hours and hours of time writing code on my own. If I was going to try and do something as advanced as a music visualizer in three months, I would not have a very good product without utilizing code snippets and this library. The interaction with the user is extremely important for my potential project.
(Back to top)References
- Developer Drive. (2011, September 28). 20 Best sites built with ruby on rails. Retrieved from here
- Griffiths, K. (2008, May 13). Ruby on rails pros and cons: Let’s get real. Retrieved from here
- Kapadia, J. (2009, May 4). Yui pros and cons. Retrieved from here
- PDoc. (2012, August 27). Namespace ajax. Retrieved from here
- RailsGuides. (n.d.). Getting started with rails. Retrieved from here
- Rouse, M. (2006, April). Ruby on rails (ror or rails). Retrieved from here
- RubyOnRails.org. (n.d.). Learn all about ruby on rails. Retrieved from here
- Varwig, J. (2009, March 19). Getting started with ruby on rails. Retrieved from here
- Yahoo. (2006). Yui. Retrieved from here