Perl @dankogai
Perl5 | 5.8(2002) | 5.16(2012) |
encoding | legacy | utf-8 |
use 5.x
my $string = "Hello, world" print $str;
perlで一番うざい
user strict; usr warnings; my $string = "Hello, world" print $str;
use 5.16
use v.5.16; my $string = "Hello, world" print $str;
νperlだとデフォルトでやってくる
個々に新機能をオンにすることも出来る
__SUB__
無名関数なのに自分自身を呼び出す
Simply Put
We have add features....
without breaking legacy codes
Your 2002 codes run unchanged in 2012.
過去のレガシーコードでも動く!
(RailsやRubyではこうはいかない)
使う機能をバージョンごとに取捨選択できる
Will run in 2022 and years to come.
どれだけ変えなくても大丈夫なのか、というのがPerlのコツ
One more thing
Language Update Decade
Perl
PHP
Python
Ruby
JavaScript?
2012では、ServerサイトでもJSを動かすことができるようになった。
クライアントサイドで唯一動くのがJSであるため、
サーバー側でもクライアント側でも動く唯一の言語がJavaScriptであり、
2012ではJavaScript vs その他大勢 みたいな構図になった。
JavaScript + Something
web | static | dynamic |
html | 4.01 | 5=HTML+CSS+JS |
JS and Perl
- Both are lightweight languages
- no compliation
- objects
- closures
- Method names in (StringlArray).prototype
- "use strict"
Perl != JavaScript
PHP Rui Hirokawa
PHPユーザー会
日本語マニュアル翻訳などやってる
4.3 '02/12
5.0 '04/7 オブジェクト機能の強化(SimpleXML, SOAP, SQLite but 移行が少し遅れた)
5.2 でずっと止まっていた
core + extension がいっぱい
5.3 '09/6
5.4 '12/3
言語、コミュニティ共にメンテを続けた
完成度が高いと逆にハードルが上がる
PHP6.0キャンセル(チャレンジングにやりすぎた?)
Unicode対応
コア/エクステンション全面的に要修正(メモリばか食い)
ブランチ(PHP5.3)に新機能が実装
(6.0は無視)
Rasmusが実装キャンセルを宣言
PHPらしさとは
Rasmus語録
PHP is about as exciting as your toothbrush. You use it
everyday, it does the job, it is a simple tool, so what?
Who would want to read about toothbrushes?
I've never thought of PHP as more than a simple tool to
solve problems.
使いこなしていくことが重要です。いつも身近で役に立つ自然な存在
Python @ats
2003(日本) ユーザーが殆ど居ない(珍獣扱い)
外資ヘッドハントの標的 (英語のドキュメントしかないからだろうか)
秘密兵器
2003(世界)
蝶メジャー
期待のルーキー
標準ライブラリが充実
マルチプラットフォーム
Googleが使い始める(2002, Python 2.2)
Python 2.3(2003)
Zope(Pythonのキラーアプリとして、テンプレートを弄れたり…)
サーバ内蔵webアプリケーションフレームワーク
オブジェクト指向、メタプログラミングを使った開発
テンプレート言語
KVM風のオブジェクトデータベース内蔵
Anaconda
GUIフレームワークPyGTKベース
ファンシーなUI
Linuxのデスクトップでは普通にPythonを使っているので、Pythonがないと動かない
NumPy
Pythonの科学計算用ライブラリ
大規模な多次元配列、行列のデータ型を内蔵
高速な数学ライブラリ
SciPy
iPython
Pythonの言語としての10年(あまり変わっていない)
Changes between Python 2.3 to 2.7
Changes between Python 3.0 to 3.2
モジュール変更くらい
Python3.3
ジェネレーター機能、例外の再構成など
慎重すぎるPython
デコレータ(関数の公開)
def foo(self); perform method operation foo = classmethod(foo)
利用者の広がり
WebだけではなくなったPython
チープ革命が科学計算の分野にもインパクトを
SGI クレイ がコモディティ化したPCサーバになって、並列計算が主流に
FORTRANやMathematicaなどの代替としてPythonが選ばれるように。
Lucasfilm Twited
2004から利用
分散レンダリングに利用
気象とPython
PyAOS (Python for Atomospheric and Oceanic Science)
(海洋気象物理学のためのライブラリ 日本の気象庁でも利用)
Simple is best
10年でそんなに変化がない
シンプルさがもたらす恩恵
- 複数の実装系
- Jython, IronPython PyPy
- Python Inspired な言語など
- Boo CofeeScript Go(?)
- Pythonの世界が広がっていく
今時のPythonベースサービス
instagram
Dropbox
YouTube
- 単一ファイルでWeb Appが作れるというエイプリルフールネタ
- 本当は他のフレームワークをラップしただけ
uWSGI
Python3移行への時期
Python3.3 ('12/8ごろ)
みんなのPython第三版
守備範囲が広い言語
Ruby まつもとゆきひろ
2003 8 what's hot in ruby is 1.8.0 (1.6.0から3年ぶりのメジャーリリース)
2007 1.9リリース なのに全然使われていない (ユーザーが甘やかされてる?
1.8
Rubyのインストールだけで使える
メンテナの不在、引退、行方不明 メンテされないライブラリの横行
RubyGem以前
1.9
YARV
高性能、高互換、多言語化(多エンコーディング対応)
1.9の問題 非互換なものが多い
そろそろ次に行こうか
RubyonRailsがwebの世界を変えた(2004)
1. Perl
2. PHP
3. Python
4. Ruby
Rails以降
DHH
2012の現在 Rubyは世界TOP3くらいには入っている
Railsの技術自体はそんなでもない、でもなんか「キモチイイ」
Rubyがなんでこんな世界的に出てきたのか
若い言語だから
コミュニティの「シンボル」だから
ユーザーが「ツール」としてだけではなく愛しているから
多様性
未来の話(Ruby2.0)
1993.2.23 来年で20年
20周年記念で2.0を出す?2013.2リリース予定?
互換性に配慮し、劇的な変化はしない、キーワード引数 遅延評価 モンキーパッチング ライブラリGem化 など…
もうひとつの未来
mruby 組み込み系Ruby(未完成だが楽しい)