20 プログラミング共通

今、最強の開発言語はあるの?将来は?

個人的には、

最強の開発言語 = コンパイル型 + オブジェクト指向 + 関数型支持 + 並列処理API + オープンソース + α

「違うプログラム言語を学ぶことによって、改めて使っている言語の本質・欠点・利点等がみえてくる」

WEBと関連がある主なプログラム言語

命令型言語 vs 関数型言語 (Imperative vs Functional)

命令型言語:「目的をどのように達成するか(how)」という点に着目

関数型言語:「目的は何か(What)」という点に着目

命令型の8回処理と比べ、関数型の5回処理は早くなることがわかる。

★エスケープ

\n ラインフィード(LF・アスキーの0x0A)

\r キャリッジリターン (CR・アスキーの0x0D)

\t 水平タブ(HT・アスキーの0x09)

\\ バックスラッシュ

\$ ドル記号

\" 二重引用符

\NNN 8進数表記 NNNの正規表現: [0-7]{1,3}

\xNN 16進数表記 NNの正規表現: [0-9A-Fa-f]{1,2}

echo "Hello\tworld.";

echo "Hello\011world."; // 8進数表記

echo "Hello\x09world."; // 16進数表記

★プログラミング手法

命令式 命令型 Imperative

List<int> results = new List<int>();

foreach(var num in Enumerable.Range(1,10))

{

if (num > 5)

{

results.Add(num);

Console.WriteLine(num);

}

}

声明式 宣言型 Declarative

var nums = from num in Enumerable.Range(1,10) where num > 5 select num;

函数式 関数型 Functional

Enumerable.Range(1, 10)

.Where(num => num > 5).ToList().ForEach(Console.WriteLine);

响应式 反応型 Reactive

IObservable<int> nums = Enumerable.Range(1, 10).ToObservable();

IDisposable subscription = nums

.Where(num => num > 5).Subscribe(Console.WriteLine);

subscription.Dispose();

スクリプト型言語 vs コンパイル型言語