by shigemk2

当面は技術的なことしか書かない

Language Update Decade #lldecade

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.

過去のレガシーコードでも動く!
(RailsRubyではこうはいかない)

使う機能をバージョンごとに取捨選択できる

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

みんなのPython 柴田淳


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サーバになって、並列計算が主流に

FORTRANMathematicaなどの代替としてPythonが選ばれるように。

Pythonデファクトで使われるようになっていく

Lucasfilm Twited
2004から利用
分散レンダリングに利用

気象とPython

PyAOS (Python for Atomospheric and Oceanic Science)
(海洋気象物理学のためのライブラリ 日本の気象庁でも利用)

Simple is best
10年でそんなに変化がない

シンプルさがもたらす恩恵

今時のPythonベースサービス
instagram
Dropbox
YouTube

マイクロフレームワーク
Pythonが発祥(Denied)

  • 単一ファイルで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(未完成だが楽しい)

Happy Hacking!