たびたび世話になってます。
Rubyというより、Unix初心者なのかもしれんが、
Rubyから外部アプリケーションを利用するとき、

io = IO.popen("/usr/bin/hogehoge cmd_option_A cmd_optionB","r")

みたいな感じでIOオブジェクト生成して、
外部コマンドからの戻り値はioに書き込まれるものとして扱うという理解でOKなん?

もしそれでよかったとしてね、
外部コマンドをコマンドリテラルでRubyスクリプトの文脈中に書いてるものを見つけたんだけどさ、
たとえば上の例でこんな感じ。

io = `/usr/bin/hogehoge cmd_option_A cmd_optionB`

問題なく起動するんだけど、

1.上で扱った場合との違い
2.1.とかぶるけどメリットデメリットは?
ってのが疑問なんだけど。
激しく初心者ですまん…