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 コンパイル型言語