全ての言語のコードをパイプラインで結びつけるという理論です。
パイプラインで通過するデータは基本XML形式にしようという理論でもあります。
いろいろな言語で作ったコードを共通の仕様のインターフェースで通してしまえば、いいじゃん。という感じです。
ATOM SHELL 理論は、自分が提唱する理論の名前です。 Yahoo pipsにインスパイアされました。
URL
いろいろな言語で、パイプ処理用のインタフェースをそろえ、 iPhoneのAppストアのように、ライブラリを一元管理し、バージョン、評判のインタフェースを提供することで 車輪の再発明を押さえながら発展していくための理論、哲学をまとめていこうとおもっています。
現在データは全てRSSでいうところのATOMで表現する等が流行っているが、これはパーサが比較的用意しやすいからである。むしろパーサを用意するには、javascriptのほうが適していたりする場合がある。
これは、各処理言語の既存のモジュールに依存しているだけの話である。
パイプとは関数言語的な仕組みであるから、これに含まれるデータはデータのみならず、関数自信も含んでいたほうがよい。関数とはフィルタであり、パラメータによって可変であれば、yamlの定義ファイルで置き換えることができる。
で、極力フィルタは一元管理して、再発名を防ぎたいから、単機能のフィルタになる。 それらは、一元管理されているべきである。有用なものには、値段がついていたほうが、開発者のモチベーションはあがると考えられるので、ますますAppStore?のようになるかもしれない。
いろいろな言語をつなぐには、UNIXのパイプ処理に焦点をあててみてもいいかもしれない。
でも、結局人間が見やすいのはExcelやOpenOfficeのスプレッドシートであるから、最終的にはこれらのファイルに変換するマクロを用意するようにする。
例えば、技術評論社のATOMフィードは下記のアドレスです
http://rss.rssad.jp/rss/gihyo/feed/atom
これを取得する方法は
http://d.hatena.ne.jp/GARAPON/20090120/1232449513
http://www6.airnet.ne.jp/manyo/xml/ruby/home.html
http://d.hatena.ne.jp/unageanu/20091019
import java.io.BufferedReader; import java.io.InputStreamReader;
public class ReadLineSample { public static void main(String[] args) { try { BufferedReader stdReader = new BufferedReader(new InputStreamReader(System.in)); String line; while ((line = stdReader.readLine()) != null) { System.out.println("java:" + line); } stdReader.close(); } catch (Exception e) { e.getStackTrace(); System.exit(-1); } } }
javac ReadLineSample.java
例cat ReadLineSample.java | java ReadLineSample
Do Until WScript.StdIn.AtEndOfLine strInput = WScript.StdIn.Read( 5 ) WScript.Echo strInput Loop
これを保存しておき、たとえば、filter.vbsというファイル名で保存したとすると、
cscript filter.vbs
で実行できます。