SlideShare a Scribd company logo
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

More Related Content

What's hot

Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
 
OpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみたOpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみた
Hide Koba
 
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Sho Yoshida
 
async/awaitダークサイド is 何
async/awaitダークサイド is 何async/awaitダークサイド is 何
async/awaitダークサイド is 何
Kouji Matsui
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
Kota Saito
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」Yoshiki Shibukawa
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメYoji Kanno
 
フィーチャモデルの描き方
フィーチャモデルの描き方フィーチャモデルの描き方
フィーチャモデルの描き方
H Iseri
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
信之 岩永
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
Yoshitaka Kawashima
 
キメるClojure
キメるClojureキメるClojure
キメるClojure
Yoshitaka Kawashima
 

What's hot (20)

Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
OpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみたOpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみた
 
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
 
async/awaitダークサイド is 何
async/awaitダークサイド is 何async/awaitダークサイド is 何
async/awaitダークサイド is 何
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
フィーチャモデルの描き方
フィーチャモデルの描き方フィーチャモデルの描き方
フィーチャモデルの描き方
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
 
キメるClojure
キメるClojureキメるClojure
キメるClojure
 

More from Masashi Umezawa

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

More from 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だめ自慢