今と昔でこんなに違う!同じ言語のバージョン比較
[ PR ]
今日、古いプログラミング言語がなくならない理由 | ReadWrite Japan という記事が掲載されました。
その中で興味深い名言があったので紹介します。
「わからないけどそれでもそれはFortranと呼ばれているだろう」 ― 深い言葉ですね。
身近なことで言えば、昔の地図と今の地図は全く違いますね。でも、それでも地図と呼ばれているのです。
そこで今回は、プログラミング言語の昨今を比較してみたいと思います。
Java 1 (1997年) と Java 8 (2014年)
2003年2月頃の java.com
この頃はまだJ2SE, J2EE, J2MEが台頭していた時代で、2000年問題も回避し、新しいIT革命が起こっているころでした。
当時はOracleではなくSun Micro SystemsがJavaを開発しており、Javaのロゴも今と微妙に違いますね。
Java1(1.1)のソースコード
import java.awt.*;
import java.awt.event.*;
public class Box extends Component{
Box(Color c){
setForeground(c);
}
public void paint(Graphics g){
super.paint(g);
g.setColor(getForeground());
g.fill3DRect(0, 0, getSize().width-1, getSize().height-1, true);
}
public Dimension getPreferredSize(){
return new Dimension(64, 16);
}
}
この頃は、やっとAWTが開発され、まだSwingもSWTもありませんでした。
内部クラスや多言語対応もこの頃登場し、まだ総称型や列挙型、ボクシングなどはありませんでした。
この頃に内部クラスが追加されなければ、Scalaのような関数型言語は生まれなかったでしょう。
Java8のソースコード
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.util.*;
public class FilterLambda{
public static void main(String[] args){
List list = Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20).stream()
.filter(n -> n % 3 == 0)
.collect(Collectors.toList());
System.out.println(Arrays.toString(list.toArray(new Integer[]{})));
// # [3, 6, 9, 12, 15, 18]
}
}
新しくラムダ式も登場し、今やJavaFX2の時代です。Arraysという配列支援のフレームワークも存在しており、もはや同じ言語とは思えません。
昔はJava AppletとしてFlashへの礎を築いたJavaですが、今後はどういう立場になっていくのでしょうか。楽しみですね。
PHP 3.0 (1999年) と PHP 5.4 (2013年)
PHP3のウェブサイト
この頃の問題は、2000年問題でした。
PHP2からPHP3への重要な変更点:
Noticeable Changes between PHP 2.0 and PHP 3.0
終了タグを > から ?> に変更
それまで?がなかったことに驚きです。
<? echo "hello"; > <!-- PHP 2 -->
<? echo "hello"; ?> <!-- PHP 3 -->
開始タグを **sayHello(); ?>
```
まとめ
同じ言語でも、今と昔で全く違う形になっていることが分かりました。
過去の財産を活かしながら、次第に時代に合わせて進化していくのは、人間の生き方そのもののような気がしますね。
NTT出版
売り上げランキング: 196,925