SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Smalltalkだめ自慢
LL Diver 帰ってきた言語だめ自慢
2014 © Masashi Umezawa
老害
「t小文字とかいちいちウルサイ」
「オブジェクト指向言語の元祖とか偉そう」
「ジジイが思い出に浸っているだけ」
だめ1
老害ですが、何か?
 毎月開催のSmalltalk勉強会の年齢層高いです
 http://www.smalltalk-users.jp/Home/gao-zhi
 若い人もたまーにいますが、40-50代は当たり前
 「オブジェクト指向」については「メッセージ指向」
のほうが、たぶんよかった
 いわゆるC++やJava的な「オブジェクト指向言語」ではない
 t大文字の処理系もあるので、SmallTalkでも良いです
 http://smalltalk.smalltalk-users.jp/
エディタ
使えず
「viもemacsも使えないとかマジ?」
だめ2
あなたの好きなエディタは使えません
 SmalltalkはSmalltalkで開発
ツールもSmalltalkで書いてある
なんなら作れば?
 テキストを対象としないスタイル
メモリにうかんだオブジェクトをメッセージ送信で
インタラクティブに変容させていく育てゲー
常にデバッガの中でプログラムを作っているような
もの
スタイルが違いすぎて理解されにくい
理想世界に
ひきこもり
「美しい世界はわかった。で?」
だめ3
もともとOSなんで...
 仮想化環境で別のOSを動かしているようなもの
 外部とつながらないと困らないの?
 実際は結構つながる
FFI, COM Connect, JNI Port,
Objective-C Bridge, Python Bridgeなど
しかし老害Smalltalkerはあまり外の言語や環境に
関心なさげ
これらの機能が活用されることは少ない!
俺が
Smalltalkだ!
「 お、おう...」
だめ4
処理系の乱立
 正当派
 Squeak
 Pharo
 VisualWorks
 VA Smalltalk
 Cuis
 CUI重視
 GNU Smalltalk
 VM乗っかり派
 Amber (JS)
 SqueakJS (JS)
 Essence# (.NET)
 F-Script (Cocoa)
 Redline Smalltalk (JVM)
 DB合体
 Gemstone/S
 泡沫がその他20ほど
互換性はあるようでなかったりする
微妙に書き換える!
リポジトリの乱立
 SqueakSource
 www.squeaksource.com
 SqueakSource3
 ss3.gemstone.com
 SmalltalkHub
 smalltalkhub.com
• どこに何がおいてあるのか
• どの処理系についてのものか
よくわからない
 Public Store Repository
 github
 その他の野良リポジトリ
言語そのものは?
 予約語5つの言語なので、ツッコミどころはあまりない
 nil, true, false, self, super
 Smallなtalk
 なんなら拡張どうぞ
 「自分で作ろうぜ」症候群を生む
 中央で統制するプレーヤーがおらず、混沌としている
 これがSmalltalkらしいといえばらしい
 好き放題にやりたいことをやれる、やってしまう
 狭い廊下を突き進むのでなく、モンタナの空の下を闊歩 - Kent Beck

Contenu connexe

Tendances

Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
 

Tendances (20)

Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
 
Elixirと他言語の比較的紹介 ver.2
Elixirと他言語の比較的紹介ver.2Elixirと他言語の比較的紹介ver.2
Elixirと他言語の比較的紹介 ver.2
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
キメるClojure
キメるClojureキメるClojure
キメるClojure
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
早わかりSmalltalk
早わかりSmalltalk早わかりSmalltalk
早わかりSmalltalk
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
Oss貢献超入門
Oss貢献超入門Oss貢献超入門
Oss貢献超入門
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
 
WPF .NET Core でも XAML デザイナをあきらめない
WPF .NET Core でも XAML デザイナをあきらめないWPF .NET Core でも XAML デザイナをあきらめない
WPF .NET Core でも XAML デザイナをあきらめない
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 

Plus de Masashi Umezawa

Plus de Masashi Umezawa (20)

第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション
第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション
第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション
 
FileManで楽々ファイル操作
FileManで楽々ファイル操作FileManで楽々ファイル操作
FileManで楽々ファイル操作
 
TruffleSqueakの紹介
TruffleSqueakの紹介TruffleSqueakの紹介
TruffleSqueakの紹介
 
SmalltalkBoltでUFFI入門
SmalltalkBoltでUFFI入門SmalltalkBoltでUFFI入門
SmalltalkBoltでUFFI入門
 
TaskItの紹介
TaskItの紹介TaskItの紹介
TaskItの紹介
 
Smalltalk勉強会 - 過去、現在、そして未来へ のその後
Smalltalk勉強会 - 過去、現在、そして未来へ のその後Smalltalk勉強会 - 過去、現在、そして未来へ のその後
Smalltalk勉強会 - 過去、現在、そして未来へ のその後
 
Revealing ALLSTOCKER
Revealing ALLSTOCKERRevealing ALLSTOCKER
Revealing ALLSTOCKER
 
TarandocでJSONを永続化
TarandocでJSONを永続化TarandocでJSONを永続化
TarandocでJSONを永続化
 
Dockerizing pharo
Dockerizing pharoDockerizing pharo
Dockerizing pharo
 
Tarantubeでメッセージキューを使い倒す
Tarantubeでメッセージキューを使い倒すTarantubeでメッセージキューを使い倒す
Tarantubeでメッセージキューを使い倒す
 
VerStixの紹介
VerStixの紹介VerStixの紹介
VerStixの紹介
 
Oldtalk - あのころの処理系は今
Oldtalk - あのころの処理系は今Oldtalk - あのころの処理系は今
Oldtalk - あのころの処理系は今
 
Pyonkeeを鳴らす
Pyonkeeを鳴らすPyonkeeを鳴らす
Pyonkeeを鳴らす
 
Smalltalk勉強会 - 過去、現在、そして未来へ
Smalltalk勉強会 - 過去、現在、そして未来へSmalltalk勉強会 - 過去、現在、そして未来へ
Smalltalk勉強会 - 過去、現在、そして未来へ
 
Tarantalk
TarantalkTarantalk
Tarantalk
 
Introduction of Pharo 5.0
Introduction of Pharo 5.0Introduction of Pharo 5.0
Introduction of Pharo 5.0
 
Pillarの紹介
Pillarの紹介Pillarの紹介
Pillarの紹介
 
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
 
NanoStrand
NanoStrandNanoStrand
NanoStrand
 
何が変わった? VisualWorks 8.0
何が変わった? VisualWorks 8.0何が変わった? VisualWorks 8.0
何が変わった? VisualWorks 8.0
 

Smalltalkだめ自慢