I'd though I'd post something on the technology I've been most involved with lately... That is Ruby on Rails.
I think I've developed software on the most common web-platform. As of now, I think Ruby on Rails is the fastest (most agile) development platform.
My fluency now is such that I can pretty much keep up with the design of a site in real-time. That is, I can conduct a requirements session where I change/update the site while we discuss requirements. There are however areas where Ruby on Rails could improve. Here are a couple of things I'd like to contribute when I get some time.
Master-Detail editing template
Ruby on Rails allows me to easily create a CRUD web-site around a single class (usually mapped to a table). I can easily modify the web site to allow for the view/update of the dependent tables, but ONLY if the navigation is from the root-to-children.
It is typical, however, one edit a child with some associated meta-data/parents and then a set of details. Let me take an example. Say we want to create an application for keeping track of our music. We have a simple structure where we have the following types/relationships:
- Genre (metadata, we associate the albums with a genre)
- Artist (has many albums)
- Album (belongs to an artist, belongs to a genre, has many tracks)
- Track (belongs to an album, has many tracks
It would be easy to create a site where one first creates the artists, then associate the albums, and link it to one of a fixed set of genres, and then from albums we edit the tracks.
However, this is not really the way we would use such an application. A more natural use-case is that one has bought an album... We then want a form that allows us to enter the data of the album, associate it with an artist (or create a new artist if we don't have any other albums of that artist), link it to a genre (or create a new genre), then add the detailed tracks (the easy part).
To build such a site, is a project. Say I was doing one of my real-time requirements gathering sessions, I would have to save this one for the evening so that I can get a few hours of undisturbed time.
I want to extend the meta-protocol so that I can declare (as opposed to program) these editing templates. Or, I may just create a code-generation template (add it to the rake tasks for the invited :)).
Improve the error detection during code generation
There are a set of naming conventions in Ruby on Rails. The various concepts (like tables in the DB, controllers, Model objects, routing rules) are typically wired together by convention. That means that you need to know exactly when to use upper-case, camel-case, lower-case, underscore, etc. Usually, I don't make mistakes with this as I've used it quite a bit, however, when I teach Ruby on Rails, this is one of the most common mistakes done by my students. A bit of verification during code generation and elsewhere in the framework could give valuable feedback to the newbie's and make it easier to get started with Ruby on Rails.
Add a comment