日本人が作ったプログラム

日本発プログラム言語「Ruby」、国際標準に (追加) 2012年4月3日 朝日新聞デジタル
情報処理推進機構IPA)は2日、日本生まれのプログラム言語「Ruby(ルビー)」が国際規格「ISO/IEC30170」として承認されたと発表した。日本生まれのプログラム言語が国際規格となったのは初めて。言語仕様の安定性や信頼性が増し、企業が安心してルビーに基づく大規模な開発投資や人材育成を一段と活発化できる。
ルビーはネットワーク応用通信研究所松江市)フェローの“まつもと・ゆきひろ(松本行弘)氏”が1993年に発案した。豊富な機能と簡便さを併せ持ち、欧米での採用が相次ぎ、日本に逆輸入された。
http://www.asahi.com/digital/nikkanko/NKK201204030014.html
プライムニュース 「2020年に900兆円市場 ソフト開発者と経産省 担当者が語る世界戦略」 (追加) 2012年1月11日 BSフジより
【キャスター】八木亜希子、反町理、安倍宏行奏解説委員 【ゲスト】Herokuチーフアーキテクト まつもとゆきひろ経済産業省クール・ジャパン海外戦略室室長補佐 高木美香
様々なWEBサイトで使われている、プログラム言語「RUBY」の開発者、まつもとゆきひろ氏と、日本の持つ伝統的なソフトやポップカルチャーに代表される新たなソフトをどのように活かして、外国から日本へ呼び込むコンテンツとするか、経済産業省の旗振り役として取り組んでいる高木美香氏を迎え、日本のソフトパワーの可能性について考える。
少子高齢、低成長時代にあって、これからの日本をけん引するものとしてソフトウェア開発のあり方を再考し、これからの国際競争力復活への足掛かりを見つける方法とは? 日本経済成長に向けた次世代育成への道を提言する。
前編:http://www.bsfuji.tv/primenews/movie/index.html?d120111_0
後編:http://www.bsfuji.tv/primenews/movie/index.html?d120111_1
どうでもいい、じじぃの日記。
私は今から約20年前、日本電気でX-Windowを使ってプログラム開発をしていたことがある。
その当時、日本電気が開発した基本ウインドウというのがあった。
機能的には同じだが、基本ウインドウ→X-Window版に置き換えての作業だった。
開発ツールをマイナーからメジャーに置き換えたのだった。
OS、javaなどの開発言語、データベース、通信ソフトなど、ほとんどアメリカで作られている。
それでも日本人が作ったものとしてTRONRubySeasarなどがある。
特に今、生産性の高いWebアプリケーションを構築するためのフレームワークとして「Ruby on Rails」が注目を浴びている。
Rubyまつもとゆきひろ氏によって作られた開発言語だ。
日本人として誇りを感じる。
その他、ゲームソフトで日本人が作って有名なのものとしてスペースインベーダーパックマンスーパーマリオなどがある。
パックマンなどはアメリカで、ほとんど知らない人がいないのだそうだ。
アメリカ人がほとんど知っているということは全世界のほとんどの人が知っているということかもしれない。
今年の世界で販売されたゲームソフト1位から5位までの内2〜4位は日本製だ。(任天堂
これら日本人が作ったソフトに大企業が作ったものがまったく無い。
まぁ。任天堂は大企業だが、スーパーマリオがヒットする前は小さな企業の花札屋さんだった。
追記。
三菱東京UFJ銀行のシステム統合なんかは富士通が作っている。
富士通などの大企業が黒子で頑張っていることは分かっています。パソコンのCPUを最初に作ったのは日本人の嶋正利さんだ。念のため。
話変わって
perlrubyの比較のため二乗和を求めるプログラムを作ってみた。

                                        • -

perlの場合 (calc_2jyowa.pl)
# perl 二乗和を求めるサブルーチン (1+4+9=14)
#my @array = (1,2,3);
#my $jyowa = &calc_2jyowa(@array);
my $jyowa = &calc_2jyowa(1..3);
printf "二乗和=%d\n", $jyowa; # 結果を表示.

# 受けとったリストの二乗和を求めるサブルーチン
sub calc_2jyowa
{
  my $jyowa = 0;
  foreach $x (@_) {
    $jyowa += $x ** 2; # 二乗和
  }
  return ($jyowa);
}

                                        • -

rubyの場合 (calc_2jyowa.rb)
# ruby 二乗和を求めるサブルーチン (1+4+9=14)
def calc_2jyowa(range, &b)
  range.inject{ |part,n|
    part + b.call(n)
  }
end
print "二乗和="
#array = [1,2,3]
#puts calc_2jyowa(array){|i| i*i}
puts calc_2jyowa(1..3){|i| i*i}