Nicholas Van Weerdenburg
12/7/2004 4:12:00 PM
On Tue, 7 Dec 2004 14:32:32 +0900, John <jtrunek@hotmail.com> 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