I bought the pickaxe about 1 1/2 months ago, and I have been reading through it and learning Ruby in my spare time. I'm about 200 pages into it, and I'm starting to think I don't need to know all of the in's and out's of Ruby to get a good hang on Rails. How much Ruby do I really need to be proficient in Rails? Ruby is a great language, I love it, but I don't see myself ever using it outside of Rails. Thanks a lot,
on 2006-04-26 01:06
on 2006-04-26 01:18
>>>>> "Matt" == Matt R. <firstname.lastname@example.org> writes: > How much Ruby do I really need to be proficient in Rails? Honestly, this kind of question baffles me. Rails is a Ruby framework. In order to use Rails, you write Ruby code. Thinking that you can somehow be proficient in Rails without being proficient in Ruby makes about as much sense as thinking that you can write in English without learning the latin alphabet. True, that alphabet is also used for other languages and, true, you may never write a single word in any of those languages -- but that doesn't somehow mean that you don't need to learn the alphabet to use it in English! -- Calle D. <email@example.com> http://www.livejournal.com/users/cdybedahl/ "It's not much of a silver lining, but I'll take what I can get." -- yasminm, on LiveJournal
on 2006-04-26 01:21
On Apr 25, 2006, at 3:04 PM, Matt R. wrote: > How much Ruby do I really need to be proficient in Rails? Ruby is a > great language, I love it, but I don't see myself ever using it > outside of Rails. > Keep in mind that there's a difference between "productive" and "proficient". You can be "productive" in Rails without knowing a lot of Ruby at all, outside of some of the basic structures (e.g., loops) that are common to any modern programming language. But if you want to be "proficient" - if you want to use some of the more complex Ruby idioms like blocks and iterators, if you want to write your own DSL on top of Rails, if you want to write code that grafts itself into existing classes, if you want to extend Rails with plugins - the more Ruby you know, the better off you'll be. The good news is, you can learn a lot of Ruby by osmosis, just by reading the Rails source code. Pick a feature of Rails that you want to learn more about, and connect the behavior you see with the source code that implements that behavior. Just like learning any foreign language, there's no better path to true understanding than immersing yourself in that language. David
on 2006-04-26 01:24
I might be chastised for saying so, but generally I think it's more important to understand the general approach of a language and start coding rather than worry too much about understanding everything before you embark upon a project using it. If you already develop web applications to a good standard, those standards will be passed on to any new language/platform you move to. For me, Rails had everything i've been working towards with my own PHP applications. I've found myself questioning for my next project: 'do i recode all my PHP methods to fit in with my ideal view or take the hit of a hard-core learning curve and using Rails?'. Ruby is obviously the core of Rails but I don't see a problem with learning along the way. Rails has some pretty strong opinions of how applications should be developed and it doesn't mind enforcing them. As such you can be fairly sure that doing things the 'Rails' way is doing things the 'Ruby' way too. I see this as a good thing :0) Saying that, i'm a born hacker so you might not want to trust my opinions too much :0) Steve
on 2006-04-26 01:27
Hi -- On Tue, 25 Apr 2006, Matt R. wrote: > I bought the pickaxe about 1 1/2 months ago, and I have been reading through > it and learning Ruby in my spare time. I'm about 200 pages into it, and I'm > starting to think I don't need to know all of the in's and out's of Ruby to > get a good hang on Rails. > > How much Ruby do I really need to be proficient in Rails? Ruby is a great > language, I love it, but I don't see myself ever using it outside of Rails. Funny you should ask :-) I think that Ruby skills are very important for Rails developers who want to go beyond the level of just getting a limited number of Rails things to work. And I really want to encourage Rails people to embrace Ruby for the productive, pleasurable thing it is, and for its central role in both using and understanding the Rails framework. So I wrote a book :-) (See sig, below.) On the Amazon page for the book you'll find some info and a post from me summing up the goals of the book (and why I think they're important). You can also get a couple of free sample chapters on the book's home page at Manning, http://www.manning.com/black, as well as the Table of Contents, DHH's foreword to the book, and the Preface. There's an Author Online forum there, too. Anyway, I don't know what others will say but that's *my* answer to the question! :-) David -- David A. Black (firstname.lastname@example.org) Ruby Power and Light, LLC (http://www.rubypowerandlight.com) "Ruby for Rails" PDF now on sale! http://www.manning.com/black Paper version coming in early May!
on 2006-04-26 01:36
> How much Ruby do I really need to be proficient in Rails? Ruby is a this is covered in the foreword or one of the first chapters of Ruby for Rails, which last i checked Amazon the print edition is coming out in 7 days (you can buy the PDF edition now and get a hardcopy when it rolls off the press) personally i think you dont need to know any Ruby, if youre just sticking to a basic CRUD site. if like me you started thinking about how to replace activerecord with something that doesn't use SQL, or want to know how ezra's ez_where plugin works, you need to understand ruby it can't hurt to learn ruby - it is in a unique position in that it came 'after' other popular languages like Perl, so it was able to pick nice things about them, a la carte. if your idea of metaprogramming includes throwing out the concept of OO entirely (or inventing an OO system from the ground up), id check out TCL, otherwise Ruby has most facilities you might need..
on 2006-04-26 01:46
Thanks for all of the responses. I'm not trying to find an easier way to learn Rails and make nice web applications, but some things I have been learning and working on don't really seem to apply when you're working with Rails. I planned on finishing the book and learning as much Ruby as I can, because it's fun and a great language. Thanks again
on 2006-04-26 04:24
On Tue, 25 Apr 2006, David R. wrote: > But if you want to be "proficient" - if you want to use some of the more > complex Ruby idioms like blocks and iterators, if you want to write your own > DSL on top of Rails, if you want to write code that grafts itself into > existing classes, if you want to extend Rails with plugins - the more Ruby > you know, the better off you'll be. I would say that you can understand these concepts in other languages (e.g. Smalltalk) and just map them to Ruby. I certainly am not a Ruby expert, but I do know Smalltalk well enough, and I "just got" Ruby blocks and open classes the first time I saw them -- and I thought "ah finally, a usable language."* --Jim * apologies to the LISPers
on 2006-04-26 04:58
>I'm not trying to find an easier way to learn Rails and make nice web applications Really? I am. Rails *is* an easier way to make web applications, and if it wasn't nobody would be using it. Seriously though, I do know what you mean. I've been learning rails, and just learning ruby as I go along. It seems to be working ok for me. I know that at some point, I am going to have to sit down and learn all the ruby theory, but the way I see it, at the moment, I don't really need to. -Nathan
on 2006-04-27 02:26
> So I wrote a book :-) (See sig, below.) > > David > > -- > David A. Black (email@example.com) > Ruby Power and Light, LLC (http://www.rubypowerandlight.com) > > "Ruby for Rails" PDF now on sale! http://www.manning.com/black > Paper version coming in early May! Thanks for your book, David. I am not a typical technical geek. I come from management and sales, and started with developement from the user angle, I understood the customers, and quickly become in charge of translating the users demands to the technical guys. I have been working with a 4GL tool (eDeveloper Magic) for 12 years, and a few years ago I decided to learn Java to develop a Web client to our software application (Oracle-based). I bought books (Eckel etc), read them and we started programming. But too much overhead (Jakarta, Velocity, SPring, ANT, Struts, Java WARS, XLM-configuration, etc) compared to my beloved tool eDeveloper Magic. And then came Rails. I found out about it a few months ago, and got really excited. It has a bit of eDev Magic approach to it. And I bought books (Pickaxe, Agile Dev. w Rails) and started. Last week I bought your book. And I give your book the best marks! Superb explanation of objects and classes. For the first time I actually think I understand it!! And the chapter on modules and mixing a module with a class is crystal clear. I just read it and understood. ItÂ´s like reading a work of philosophy (which I also love!). From my angle I want to understand what I do, I want to connect "my world", the customersÂ´ world to what goes on within an application. Just repeating what someone else shows you and doing it without knowing what you do is what I call "Parrot" knowledge. When something goes wrong you donÂ´t understand why. I tell my customers every day not to settle for parrot knowledge of my application: "try to understand why to do this, or why to do that, then you donÂ´t have to call me when you get stuck". So I want to learn why does Rails do this or that, and thatÂ´s where your book stands out in explaining! It has been a real joy to read, and how often can you say that about a book on computer languages. God bless, Per-Olof H.