13 ms·
Hello Ruby – Almost there
- staticelf 11y agoCool book, I hope you will get some success with it. I don't have a kid (yet) but I will maybe buy it as a gift as I live in one of the countries with publishers.
- knivets 11y agoLooks great. Recently, I was trying to wrap my head around eigenclass inheritance mechanisms and it was pretty tough. Not to mention the object model, where classes are also objects and the Object - Module - Class relationship. I wouldn't recommend Ruby as a first language to anyone — it may look easy at first, but to grasp it, you need to invest much more time in future.
- Argorak 11y agoPeople can get very far without knowing anything about that.
- amencarini 11y agoWe are talking about a children's book, I don't think a reader of this book will have to maintain large codebases for a job anytime soon. Incidentally, Ruby is great for beginners thanks to its expressiveness.
- mikekchar 11y agoSometimes the bias you have from learning programming one way makes it more difficult to grasp concepts which are different. I recall a study[1] where they questioned whether recursion is more difficult than iteration if it is introduced first. Certainly recursion was difficult for me when I was first learning because I had done a lot of programming using iteration first. It seems surprising that it may have just been a bias of what was introduced first. I think that eigenclasses are a good example of this. Just because of the languages I learned early on, eigenclasses were obvious to me. I had a hard time even understanding why they had a name: OO without eigenclasses was just another way of saying "broken OO" ;-) Again, it's a bias which is hard to be aware of. [1] It may be this one: http://dl.acm.org/citation.cfm?id=2361296 http://dl.acm.org/citation.cfm?id=2361296
- agumonkey 11y agoWhat troubles me the most with the iter/rec debate is that iteration is so trivial for most, but then many problems look intractable. Recursion feels awkwardly void, empty, almost nonsensical, but when you click your horizon broaden dramatically. That said, I still fail to recognize recursive patterns far to often.
- e12e 11y agoEigenclasse, had to look that up: "A hidden class associated with each specific instance of another class." https://en.wiktionary.org/wiki/eigenclass#English https://en.wiktionary.org/wiki/eigenclass#English https://gist.github.com/jfarmer/2625060 https://gist.github.com/jfarmer/2625060 Yep. Makes perfect sense that if everything is an object, and class methods belong to a class, and a that class method has to be attached to an object -- you'd need an object to attach it to...
- vidarh 11y agoAnd in Ruby they are only "special" because they have been intentionally hidden from the publicly visible inheritance chain. Personally I think that's what makes it hardest for people to grasp. E.g. if you define class methods on class Foo, all that's happening is that the class of the object defining Foo is no longer an instance of Class but of a subclass of Class. But it gets confusing because Foo.class still returns Class.
- bhaak 11y agoThese are advanced subjects and even a proficient programmer doesn't need those very often. The advantages of Ruby as a first language IMO are that it is a pure OO language. No special cases, no unnecessary boilerplate. Much better than Java in that regard. But you could argue if nowadays you still need to focus that much on OO. I'll be interested on the book turns out. Usually, I wouldn't recommend a generic programming language as a a first language for kids. I would use something with turtle graphics and a REPL.
- mieko 11y agoI think, day-to-day, the Ruby object model can be as simple or as complex as you'd like it to be. Most dynamic or static OO languages have just as much complexity under the hood (vtables, doesNotUnderstand, metaclasses, etc). It has to be complete anyway, so it's made accessible, for better or worse. I think you're more likely to run into it in the wild in Ruby because it's better exposed than most languages. When you see reflection or meta-object APIs in a lot of (typically not-as-dynamic) languages, it's sort of a "HOLY FUCK, WATCH OUT, I'M METAPROGRAMMING" flag. In Ruby, it's easier to daintily follow the white rabbit into the object model and care about the relationships you're referring to. But on its surface level (class keyword vs. Class.new, def vs. define_method), I don't see it being any more complicated than similar dynamic languages. When you say "puts 1+1" in a blank file, I can't imagine that not grasping that you're in a binding of an anonymous singleton instance of an Object named "main" being an hindrance. What's cool is, if you need to know, there's not a weird brick wall in your way.
- atmosx 11y agoThese are the advance features. You are not required to know how inheritance works (or what the Singleton is) to write runy code. You dont have to use OO design or anything. You can write procedural code in ruby if you want. These advanced fratures are used mostly in metaprogramming. Ruby is like the guitar: easy to learn, hard to master.
- hnmodturds 11y agoSeems a shame to damage the kids learning by introducing the clusterfuck of a language such as ruby. gem install learn_a_better_language
- deleted 11y ago[deleted]
- limedaring 11y agoAnother personal datapoint — I wrote a book and funded it on Kickstarter as well (similarly named: Hello Web App) and mine was 12 months delayed. Producing a book was definitely way harder than I anticipated, esp. as I am used to the fast-turnaround times of producing something for the web. Additionally, printing alone took two months which was surprising.
- pavlov 11y agoDeleted my comment to which you'd replied because I shouldn't be talking about something I know nothing about.
- code_chimp 11y agoI'm not sure what the deleted post was about, but as a backer of both yours and Linda's projects there is quite a bit of difference. You did an excellent job communicating with us exactly what was going on, and why delays were happening. At the end of the campaign I received exactly what I paid for - not some excuse why I was paying an extra $20 to receive it only a month before everyone else can get it on Amazon much cheaper. I never questioned for a second my purchase of "Hello Web App", but the little girl that I bought "Hello Ruby" for is going to be almost too old for the book finally being delivered.
- limedaring 11y agoI'm really happy to hear that! The 12 month delay really made me feel terrible, and I got a lot of (justified) emails asking me what was up and why I hadn't delivered yet. I'm actually considering a Kickstarter campaign for the next book (not announced yet, shh) but this time I'm not running the campaign until the first draft is actually completed, so I can actually have reasonable launch dates. :) Thanks for being a backer!
- tigroferoce 11y agoCool. Would you translate into other languages? Having kids speaking Italian I would be interested ;-)
- kevincarter22 11y agoCool. Would you translate into other languages? Having kids learning Haskell I would be interested ;-)
- tigroferoce 11y agoI probably would. I remember once I offered to translate a kickstarter project for baby girl engineers, so why not a book for baby programmers :-). Feel free to get in touch if needed.
- danugolini 11y agoAmazing book! I don't have kids :( but I would be more than happy to help for the italian translation
- vitorbaptistaa 11y agoI have the same feeling, and would be more than happy to help with a brazilian portuguese translation (if the author is reading this, my email is on my profile o/)
- wyclif 11y ago"Its" not "its'", heads up.
- x0 11y agoThat book is absolutely beautiful.
- pluma 11y agoI'm not sure whether Ruby is a good intro to programming. It doesn't have first-level functions, instead it has blocks (which can take parameters to serve the same use as functions but aren't). What would syntactically be a reference to a method in other languages instead invokes the method with no arguments. It doesn't have namespaced imports, instead its imports effectively behave like includes (i.e. the "dump truck" approach to imports). I could go on. Ruby isn't widely used in practice (although its users tend to be vocal and particularly prevalent in the web startup scene). Installing it requires some amount of care and technical knowledge (don't even bother installing it with a Linux package manager -- you're almost guaranteed to end up with the "wrong version" of ruby and rubygems). I understand that Ruby programmers tend to be very emotionally invested in their programming language and that this book is probably written for Ruby programmers looking to teach their kids programming (using their favourite programming language) but it would be nice if there were well-written books aimed at a more general audience. I'm not sure what the "best" first programming language is. JS has its merits -- it's becoming increasingly important, can be used throughout the entire stack of a web application and all you need to try it out is a modern web browser. Python is a lot more straightforward to learn and has consistent and mostly unsurprising concepts that are generally very compatible with more mainstream languages (plus it was intentionally based on a language developed for beginners). If market use were the main concern you could probably argue for Java or C# (although I think starting with a class-based language locks you into the wrong mental model). In any case, I don't think Ruby is the best choice, even with its quirky community lore and the general emphasis on "play" and expressing yourself in code (although this seems to have died down a bit as the community matures). I guess it depends on whether you want to teach programming as an art form and toy, or as a general skill (like maths, biology or chemistry). Both can be fun and entertaining but maybe I'm just getting old and cranky.
- claudiug 11y agois for kids. I found you post quite strange. Every language has good parts or bad parts. so, because ruby does not have first-level functions is a bad languages, also because does has block is bad. The same for namespace. But let me put it this way. Are you an expert in language design and are you an expert on how children learn new stuff? Or you just don't like ruby as a language. Also, Ruby developers tend to be emotionally. Again very biased against the people that use ruby
- olorundaglory 11y agoAUCTION..... AUCTION........ AUCTION.......The Nigeria Custom Auctions Is Up Again and Granting Nigerians the Privilege to Own Vehicles at Affordable Rates. Approved By The Federal Government Of Nigeria, All Individuals Should Note That These Vehicles Are Impounded Due To Smuggling And Improper Importation Which Has Resulted In The Forfeiture Of The Said Property As Penalty For The Illegal Act. Consequently, These Impounded Vehicles Are Now Being Auctioned To Eligible Nigerians In The Ongoing 2014/2015 ( N.C.S. Batch B-) Vehicle Auctions And This Action Is In Line With The Directives Of The Government Of The Federal Republic Of Nigeria. These Vehicles are neat, in a perfect condition and Has Never Been Used In Nigeria. The Vehicles Are Currently In The Custom Warehouse At Ogun State, Idiroko Border Ports Awaiting Removal By Clearance.. Contact Address: Operation 2-Enforcement Office, Idiroko BordeCommand. Contact MRS OLORUNDA GLORY ON 08068017569Name:zonal commander Public Relation Officer, Federal operations Unit, investigation and inspectorate. Contact MRS olorunda glory 08067834923Office Mailing Address: Nigeriacustom916@gmail.com THIS CARS AND SUVS ARE VEHICLES RANGING FROM 2001 MODEL TO 2013 Prices of some Toyota cars: Land Cruiser-N700,000 • Toyota Prado N900,000 • Toyota Corolla –N500,000 •Toyota 4Runner-N850,000• Toyota Tundra-N700,000• Toyota Tacoma-N750,000• Toyota Camry Tiny-Light –N350,000• Toyota Camry Spider-N800,000 • Toyota Camry Muscle-N700,000• Toyota Avensis – N200,000-N500,000 • Toyota Yaris – N300,000 • Toyota Matrix – N400,000 • Toyota Camry Big Dady-N 450,000• Toyota RAV4 SUV –N600,000 • Toyota Hilus -N750,000 • Toyota Dyna Truck – N350,000 • Toyota Hiace Bus – N600,000 • Toyota Coaster Bus 32 seaters – N600,000 . Toyota highlander- N800,000• Toyota Sequoria-N500,000 • Toyoya sienna -- N550,000 • Toyota Avalon -- N500,000 • Toyota Venza --N750,000 Prices of some Peugeot Cars Peugeot c230 N300,000 C300 N450,000 Peugeot-406 N500,000 prices of some Honda cars Honda Civic cars – N350,000. Honda CRV 400,000-750,000. Honda EOD 600,000. Honda DC 700,000. Honda Evil Spirit 800,000. NOTE=The nigeria custom service Recruitment and Replacement of new take is on for BATCH 1 hurry up For more enquiry call MRS OLORUNDA GLORY ON 08067834923 Thank for your patronage.
- juhq 11y agoTorilla tavataan!
- revskill 11y agoI found Python's rule of space and tab is the most confusing thing that will happen to a kid. They open a command prompt, then instead starting writing the real code, they have to <space><space>, blahblah , <enter><space><space>... to do something that they hope to run. It's a waste of time.
- Sir_Cmpwn 11y agoipython improves this quite a bit. If you haven't tried it: https://asciinema.org/a/2vvs3gg2dk93xizc3splrrfyw https://asciinema.org/a/2vvs3gg2dk93xizc3splrrfyw
- gregd 11y agoWhat makes you think the book is ready? We've been told (KS backers) that the book isn't shipping until October 2015. There is absolutely nothing that you've linked to to indicate that it's ready. Incidentally the book costs less at retail, then even the lowest tier of it's Kickstarter campaign.
- sleepychu 11y agoIt's always really disappointing for me when people see Kickstarting as a way of purchasing the end product. With economies of scale you should really expect prices to come down for retail. What you're getting for the money with a kickstarter campaign is the chance to help someone realise their product, which hopefully you believe in, without the creative inhibitions that come with strings-attached funding.
- gregd 11y agoYou must be disappointed a lot then? I did believe in her product. What I didn't believe in was an utter lack of regard to KS backers, poor communication, misdirections, a publishing contract with Macmillan, a late delivery (while being less than truthful with KS about it). The author bears some responsibility for changing my mind from believing in her product (what you call helping, "someone realise their product") to simply just wanting the end result of what I paid for at a higher cost than retail.
- sleepychu 11y agoI guess my point was two-fold. 1) The end product will probably be cheaper than the kickstarter backing. (You seem to agree with this, at least in general) 2) People shouldn't see backing a product as a purchase. There's clearly risk involved in any transaction where the obligation of the seller to provide anything, let alone meet your expectation of exactly how the end product will be realised. It's sucky that you've had such a bad time with this KS though, the real value in backing ought to be the opposite of what you've experienced!
- yorak 11y ago
- _sword 11y agoI don't believe the book is ready to ship yet, but I'm looking forward to when it is! I had the pleasure of working with Linda (author of this book) a few years back and she is really a wonderful person and I'm very happy for the initial success of Hello Ruby.
- tern 11y agoDitto, had a chance to meet and work alongside Linda a few months ago and she has an incredible enthusiasm – looking forward to buying this for my younger cousins :)
- hopeless 11y agoThe character's name is 'Ruby' but I don't expect the book itself to be any sort of introduction to ruby-the-language! I'm a backer — I expect the book might contain some Ruby code because it's pretty readable though I'm bothered either way. I am full expecting it'll be an engaging story to teach my kids some of the concepts of programming, which have nothing to do with any particular language.
- hopeless 11y agoJust to repeat and highlight this: THE BOOK ISN'T ABOUT TEACHING RUBY-THE-LANGUAGE I've yet to even find a mention of Ruby-the-language on the site.
- sigzero 11y agoRight. It teaches programming concepts with Ruby. It's not about learning Ruby the language.
- JeremyNT 11y agoIt's unfortunate that the currently top rated post on this thread is about the merits of using Ruby as an introductory programming language. That's completely off topic! I also backed the book with the understanding that it would essentially use pseudo-code. For as long as I've followed it this has never been advertised as a book about learning a language, it's always been presented as a book about learning basic concepts.
- FilterSweep 11y agoIt's all fun and games until the kids reach a gem dependency conflict that bundler doesn't fix......
- MrBra 11y agolibrary dependacy problems could happen with any language.
- deleted 11y ago[deleted]