[assaf@casper work]$ whatis ruby ruby (1) - Interpreted object-oriented scripting language ruby (rpm) - An interpreter of object-oriented scripting language ruby-bdb (rpm) - Sleepycat Berkeley DB and DB XML ruby-devel (rpm) - A Ruby development environment ruby-docs (rpm) - Manuals and FAQs for scripting language Ruby ruby-irb (rpm) - The Interactive Ruby ruby-libs (rpm) - Libraries necessary to run Ruby ruby-mode (rpm) - Emacs Lisp ruby-mode for the scripting language Ruby ruby-mysql (rpm) - A Ruby interface to MySQL ruby-postgres (rpm) - A Ruby interface for the PostgreSQL database engine ruby-racc (rpm) - LALR(1) Parser Generator ruby-rdoc (rpm) - A tool to generate documentation from Ruby source files ruby-ri (rpm) - Ruby interactive reference ruby-sqlite3 (rpm) - A Ruby interface for the SQLite database engine ruby-tcltk (rpm) - Tcl/Tk interface for scripting language Ruby [assaf@casper work]$ whatis java [assaf@casper work]$
One of my pet peeves about Java is he choice to separate itself and live in a bubble, isolated from the operating system. I got used to it over the years, but working on Buildr opened my eyes to the discrepancy. Lower common denominator, reinventing that which already exists, and layers upon layers of “value-added” infrastructure. I can see how that influenced later works.
REST isn’t even the real lesson; the real lesson is applying principled software design and architectural styles to problem spaces; it’s about getting off fads and hype cycles that infect the industry.
If there’s a lesson there, I hope we’re going to apply it wider and wiser, to more fields than just our choice of firewall-piercing protocols.