Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

言語の変遷

No description
by

tanaka yuichi

on 2 October 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of 言語の変遷

言語の変遷
ポストJavaについて
【Scala】
OOPと関数型の両方のプログラミングパラダイムをサポート
【Ceylon】
Javaの失敗を踏まえ、「もし今Javaを設計したのなら」というコンセプト
【Clojure】
既存のJavaフレームワークを活用しながらも独立した言語として関数型のプログラミングパラダイムを提供

OOPからの決別
そもそもOOPの問題
全てをクラスとして扱う事の難しさ
委譲
平行性の問題
マルチスレッド、プロセス間通信
Conclusion
言語の変遷
JavaとScala
OOPの最初の成功事例
write once,run anywhere
膨大なライブラリの積み上げ
OOP過渡期のライブラリの罠
並列性の問題

プログラミングモデル
何か問題を解決するために新たな言語が登場
assembly
C
Java
手続き型からオブジェクト指向そして関数型へ
分野の細分化・専門化による特化した言語の登場

言語の乱立
オブジェクト指向
Ruby
Scala
プロトタイププログラミング
Javascript
IO
Lua
Self
制約論理プログラミング
Prolog
関数型プログラミング
Erlang
Clojure
Haskell
Scala

Java
Scala
Javaの資源をそのまま利用可能
関数型とOOPの両方を扱える
簡単にJava化してしまう
Java8の登場
プロトタイプ型
OOPの拡張

JavaScript :
導入:ハードルは低い
立ち上げ:確り書くにはかなりの理解が必要、参考ドキュメントは多いが参考ドキュメントがbatケースである事もしばしば。
速度:普通
アプリ構築:普通
Lua :
導入:ハードルは低い
立ち上げ:ゲームでの実績は多いが参考ドキュメントがほとんど英語
速度:LL系では最速
アプリ構築:普通
オブジェクト指向
Ruby :
導入:ハードルは若干高め
立ち上げ:日本語ドキュメントが豊富なため容易
速度:若干遅い
アプリ構築:爆速
Java :
導入:ハードルは若干高め
立ち上げ:エンジニアが豊富、日本語ドキュメントが豊富なため容易
速度:速い
アプリ構築:遅い、また環境準備が難しい
Scala:
導入:ハードルは若干高め
立ち上げ:エンジニアが皆無、関数型として使うのは難しい
速度:遅い
アプリ構築:遅い、環境構築はjavaと変わらない
PHP:
導入:容易
立ち上げ:容易
速度:普通
アプリ構築:速い
関数型
Clojure :
導入:ハードルは若干高め
立ち上げ:パラダイムを選択できる。
速度:JVM依存
アプリ構築:Lispに抵抗無いなら速い。
Haskell :
導入:ハードルは若干高め
立ち上げ:関数型でしか実装できない
速度:かなり遅い(List使わないとか気にすれば別)
アプリ構築:難易度が高い
Erlang :
導入:ハードルは若干高め
立ち上げ:関数型でしか実装できない
速度:高速
アプリ構築:難易度が高い
Full transcript