I do realize that some technologies can be complicated, but tonight I was able to see the power that you have once you "breakthrough" some of those initial barriers. A cool guy and colleague of mine offered to stay a couple hours over after work and help with my "programming" efforts in Ruby on Rails. It was great.
Isn't it allows great to work with someone who is excited about what they are doing? You just want to be around those kinds of people. The knowledge is breath-taking and the enthusiasm is incredible. I have been trying to learn to program in the Rails for awhile now. You have to understand, I am not a programmer, I have never been a programmer, and I'm not sure I will ever be labeled as a programmer, but tonight I was able to build a basic weblog application from scratch.
The power of making every decision is both overwhelming and exciting. It kind of reminds me of when I started my own company in 1998. (I had a conversation about that today and it made me think a little about it.) There were so many things going on and small details that had to be worked out. Tonight, we worked through the basic thought process of building a database-driven web application and then spent a fair amount of time on CSS design. This also sent me flashing back to 1998 when I taught web-design classes. I spent 3 to 4 hours of a three day class talking about table-based web design and as you may know.... that is so 1998.
I was then walked through the MVC process within Rails. Although the letters seem to be a little out of order.... You develop your Model first, deciding what the program will access from the database, in my application we wanted to pull the "Posts" for the web blog. Then you develop a Controller, this is the business logic that actual tells the programs the logic for the specific "actions" that will be performed in the blog. We created an index, bits, individual, about, archives, and maybe 1 or 2 other actions. I learned if you allowed Rails to "generate" your controller and actions it would actually put a place for each action within the new controller, and all you have to do is go back and define what each action will do. The next step was the View. I had to create a way to present the results for each action that the controller was going to do in a view for the end user.
So MVC is actually MCV.... but you know, programmers just don't have a problem with this.
There were actually a few other critical steps with chunks for specific details that make them work. I think that I will try to go back and document them in detail.
You may be wondering... "So Lee, are you going to be using this new application or are you just going to move on to the next project and not work through all this slimy details that need to be addressed to make a program functional?" (Were you really wondering that?) I think I am.
I have a feeling that the group of people in the world who blog through a tool that they created completely from scratch is a pretty elite group. And not that I desire to be elitist, be I do want to take pride in getting something complete. Kind of like when I lost 40 pounds last year or completed a marathon in earlier this year. There's just something cool in achieving a task that once seemed impossible.