August 9th, 2009, 10:11 PM
Interested in Ruby
Hey Everyone, just had a cousin-in-law get me all psyched up telling me about Ruby on Rails. Not a programmer, only know html and css. However, he says it is supposed to be way better than php. I was doing a little research, and came across someone mentioning not only a hefty learning curve, but also that ruby on rails is a process hog or something like that. Any one able to comment on that for me?
Also, i go to the rubyonrails web site, and it has that tutorial for creating a blog really fast. I also went to the library and got a ruby on rails for dummies book to start exploring, but I also got a Ruby visual quickstart guide as well. Do I need to first take the time to learn ruby, before trying to apply it to the rails framework? Or do I move forward with the rubyonrails web site and the dummies book that seems to have coupled them together as an animal that needs to be tackled together?
Thanks in advance for any help!
August 10th, 2009, 12:34 AM
Although I have superficial experience with Ruby and Rails, I think my advice will still help. I first answer the questions in your second paragraph.
Yes you do. Because of the documentation, the good framework, and the community, you can get started (with a struggle) and not have to really know anything about programming. However, you will very rapidly approach a brick wall. A hard brick wall.
Rails is a web development framework for a programming language (Ruby). Ultimately, it is a tool for developers to use. A framework is prewritten code and tools to tackle a problem (in this case a web application). Obviously, any premade foundation helps any programmer, as they don't have to waste time redoing what the framework does, and they have a community to turn to for help. However, in the end, much of the rest of the work involves programming. You cannot avoid this.
You can try, but I think you'll find learning to be less enlightening and more a question of memorizing. Programming is about problem solving, but anytime you run into something a book hasn't covered (which would be pretty much all the time), you can't tackle the problem, and must instead turn to others for help.
It's not even about knowing Ruby. It's about the mentality of a programmer, the knowledge programmers acquire, and the sense of how to tackle programming problems. Which is what a web application involves. Some of it is solved by Ruby and Rails. But only some.
I have no first hand experience on this issue (suggested in my disclaimer above). However, from my research and knowledge, I'll say this. It's true that scalability issues have been raised about the Rails framework, and also about Ruby. That said, it's also in active usage in many heavily used websites. Twitter comes to mind. Although to note, a part of their web application is actually done in Scala because of the scalability and performance issues.
I largely avoid making comments like "yes, it's slow" or "no, it's just fine" because scalability isn't an issue that beginners can tackle. Picking a bunch of nice tools do not absolve you from scalability issues. If you do not have the knowledge base to evaluate or comprehend information on the scalability of frameworks or the technical facts about them, you aren't prepared to tackle an application of that scale anyway.
Consider that you have no programming experience. Ultimately, your limiting factor will be your lack of knowledge, your lack of programmer sense on how to tackle problems, and time.
Also, this isn't 2004 when Rails was just released. The ecosystem has changed rapidly. So here's what you do need to know. The main popular languages for web applications are PHP, Java, C#, Ruby, and Python. Let me condition that statement: for getting started, you'll find yourself practically one of these five programming languages. All of these languages have good solid web development frameworks. In general, they all have mature libraries (prewritten code) to use
You'll find that getting started with PHP, Ruby, and Python to be easier. I generally recommend starting with Python, but then again that's what I myself tend to program in. It won't matter in the long run, so just do your research and then pick one. You can see the beginner subforum on the Devshed forums for more discussion on picking a programming language.
EDIT: So if you are hyped about Ruby and Rails go ahead and use it. I do recommend spending time getting up to speed with Ruby first. There's plenty of documentation, so spend the time reading.
Comments on this post
When you ask a question, be prepared to tell us: what have you tried? If you think you don't need to try anything, we will never be interested in helping you. If you agree with the link, and you refuse to answer that question, you are being a hypocrite.
Need help with broken code? Your question should be like a good bug report: (1) It has the smallest number of steps to reproduce the problem you see (2) It tells us precisely what you expected to see and (3) It tells us what you saw and how it differed from what you expected. We need all three to help you.
Want better answers? Tell us what you Googled for and what steps you took to answer your own question.
August 10th, 2009, 12:49 AM
Wow, thank you so much for that in depth response. I truly appreciated it! I will check out that beginner thread you mentioned as well before completely making my decision. Thanks again!
August 13th, 2009, 02:14 PM
I'm not a programmer either and have used some PHP on my websites. I learned a little Ruby to do some scripts to do things like change file names.
I thought I'd give Rails a try, but can't get my head around it. With PHP you can just stick some into your site. May not be elegant but it works. Rails requires you use the whole frame work/structure, so the learning curve is high. I think Rails is more for Web 2 sites, that is, for dynamic sites that interact with the user or sites that change frequently in complicated ways.
Many, if not most, hosts support PHP. In other words you put in the PHP code in your HTML and it works. Not so easy with Rails, again you have to work within the Rails framework and the framework of the host. I think Passenger has made that easier. I'm using framework to mean also the structure of your space at the host. Most hosts don't support Rails, and if they do not in a consistent fashion.
With PHP, if you want to use or reference a file, you put it wherever you want and create a link. With Rails it has to be where Rails expects to find it. That's good in that you don't have to create different folders, but if you don't know where Rails expects to find it, you can't do what you want. That's the learning curve. I assume once you've got it down, things go much easier and faster than PHP.
I don't think Rails is for casual use for non-programmers. And Rails is changing pretty fast. You read something about how to do something, but find out that the procedure is already two steps beyond. Passenger/Mongrel is an example. The development is great, but hard for a beginner to jump in.
You probably don't need to know much Ruby to get started with Rails, but if you're really going to use it you will have to learn more and more Ruby.