From: James Britt Date: 2005-11-04T01:40:09+09:00 Subject: Re: Ruby Certification Daniel Lewis wrote: >>I have a hard time believing that someone experienced with only C and >>Java, however good they are with them, can really learn Lisp or Haskell >>by looking at some examples. > > But if you know the concepts of declarative programming, then lisp > will be easy. If you know the concepts of functional programming then > Haskell will be easy. That sounds very much like begging the question. Yes, if you understand the concepts of functional programming, then learning a functional programming language should be reasonably straightforward. > My point was merely on a syntax level. Once you > have the syntax, then people can delve into the other concepts. For > example, I'd like to know how Ruby can work functionally, I'm not > rushing into learning that straight away, I want to learn the > syntax/key-words first. > JavaScript is an unjustly maligned language. It has fair amount of Lisp-y qualities. It has closures. It has (more or less) open 'classes'. Yet 99% of the JavaScript one encounters looks suspiciously like C or Java. Most JavaScript books I've seen don't even *mention* 'prototype', let alone give examples using it. And if they do mention it, they don't do a good job of explaining the implications. So, people (well, Java/C/VB coders mainly) look at it, make a mental note, then never use it because it doesn't readily map to an known concept. Folks go and learn the syntax that is already familiar, and don't learn the language itself. Folks at RubyConf 2005 saw at least half the crowd go off to listen to Chad Fowler and Jim Weirich talk about continuations. The two did a really good job of explaining what they are and how they work (and Thanks! I learned a lot). But for those of us who are not already experienced in using continuations, there's still a fair amount of work to do to fully understand when and where and why continuations would make for an appropriate solution to some programming task. I'd venture that most of the audience left knowing continuation syntax, but far fewer could make practical use of them. That's not the fault of Chad and Jim. Skill to do comes of doing, and even then you may need guides to poke you with a stick until you reach enlightenment. And that's my beef with many certification programs and tutorials. They tend to be syntax-centric. You don't really learn the language; you learn how to construct syntacticly-correct scripts to accomplish tasks without errors (which, truthfully, is often all some people need to know). Perhaps the best way to learn Ruby is to post code to ruby-talk and invite public criticism. You'll get enlightened soon enough. James -- http://www.ruby-doc.org - The Ruby Documentation Site http://www.rubyxml.com - News, Articles, and Listings for Ruby & XML http://www.rubystuff.com - The Ruby Store for Ruby Stuff http://www.jamesbritt.com - Playing with Better Toys