http://codezine.jp/a/article/aid/2144.aspxは間違いだらけの糞記事

JavaRubyの言語比較は興味あるから読んでみたんだが、あまりにひどかったので。

←原文

 Rubyでは、requireステートメントを使用してパッケージやモジュールをインポートします。 たとえば、extensionsパッケージ/モジュールをインポートするには次のようにします。

まず、requireはステートメントとか構文ではない。れっきとしたメソッドだ。

Javaな人向けの記事だろうけど、ここで「モジュール」という表現を使ってはいけない。Rubyのモジュールはファイル名とは関係なく定義できるんだ。Rubyの場合はライブラリのファイル名とモジュールは直交している。

ここまではまぁギリギリ我慢できるんだが、ここからがひどすぎる。

module Catalog
  PI=3.1419
  @journal                    # *1

  def setJournal(journal)
    @journal=journal          # *2
  end
end

おいおい、*1と*2は別の変数だろ。*1はCatalogというモジュールオブジェクトのインスタンス変数で、*2はモジュールメソッド(インスタンスメソッド)のインスタンス変数だよ。
こんなこともわからんと比較記事書いてんじゃねーよ。それもプロの技術者がよぉ。

 モジュールは、mixinを使用して他のクラスに含めることができます。クラスにモジュールを 含めるには、まずそのモジュールのrequireステートメントを指定し、その後にincludeを使用 してそのモジュールを含めます。たとえば、CatalogEntryというクラスにCatalogモジュールを 含めるには次のようにします。

require Catalog
class CatalogEntry
  include Catalog
end

ここを読んで俺の怒りは頂点に達した。

はぁ?なんでそこにrequireが出てんだよ!requireとincludeは直交してんだよ。わかってねーな、コイツ。動作確認してないだろ。

begin
rescue RubyException1
  RubyException1が発生したときに実行するステートメント
rescue RubyException2
  RubyException2が発生したときに実行するステートメント
ensure
  例外が発生してもしなくても実行するステートメント
end

StandardErrorな例外の場合はrescueの後にクラスを省略できることも書かないとな。

この記事が個人のブログとかだったら「ここは違うよ」と普通に言えるのだが、プロの技術者がコードの動作確認すらしてない記事をこういう大きいサイトに載せてるのが許せなかったので。