From: Nicholas Van Weerdenburg Date: 2004-12-08T01:12:02+09:00 Subject: Re: Recommened readings? On Tue, 7 Dec 2004 14:32:32 +0900, John wrote: > For one of my university courses, I have to complete a paper on Ruby. > I need to address the majority of the following items: > Syntax/Semantics > Bindings/Type Checking > Data Types/Expressions/ADT > Control Structures > Subprograms/Implementing Subprograms > Support for Object-Oriented Programming > Concurrency > Exception Handling > > While I have found a good number of online sources, I am lacking in > print based sources, and was wondering if anyone had any > recommendations. > > John Trunek > > What is the purpose of your paper? Is it comparitive? Or simply descriptive? And what level course is it? "Programming Ruby, 2nd Edition" is a great book on the language. "The Ruby Way" is also great, and more of a cookbook type of book. It may offer more examples of control structures and ways of doing typical things a language is used for. Since you are interested in the language specifically, these are probably the only two books. The other Ruby books, while almost all good, focus more on task-orient rather then language-oriented aspects of programming in Ruby. Depending on how you searched for on-line sources, you can expand your search from them into some really interesting on-line content. From a link to RubyVsPython, I ended up reading Lisp Vs PythonAndRuby, Smalltalk comparisions, discussions on closures, continuations, coroutines, Haskell, as well as some general papers on productivty in typed vs. dynamic languages. Run-time vs Static, weak vs. strong typing was also interesting. Most of this was on the c2 wiki. Books that go into this would be on language design, and probably would not include Ruby yet, being more likely to focus on Lisp, Scheme, Smalltalk, Haskel, ML, Caml, Ocaml etc. Smalltalk seems to be the most conceptually similar language from my perspective, but I don't really know Smalltalk, so I may be wrong. If you want to explore practical applications of Ruby control structures, the web frameworks are interesting- Borges and Wee use continuations ala the Smalltalk Seaside framework. There is an Aspect-Oriented-Programming proof-of-concept somewhare, which would be an interesting way to contrast Ruby and Java. The web framework Ruby on Rails does an amazing job of getting rid of configuration files by using reflection and the dynamic nature of Ruby to do amazing things. Needle is a second generation IOC/DI (Inversion of Control/Dependency Injection) framework, replace Copland, which the author realized used too many Java paradigms. There are several great articles on this and why/how it happened. Dave Thomas also has an article on his blog about doing DI for Ruby on Rails in such a way that readability and clarity isn't lost in the code for it's default case (e.g. it looks as if there was no DI). I also mention again the Ruby vs. Python discussions- the very nature of such a discussion brings out detailed language design comparisions, and provided a wealth of insight into Ruby for me. Regards, Nick