まつもとゆきひろ氏が新言語「Streem」を開発中 114
ストーリー by headless
言語 部門より
言語 部門より
あるAnonymous Coward 曰く、
Rubyの創始者として知られるまつもとゆきひろ氏が、新しい言語「Streem」を開発中だという。CodeZineの記事では、GitHubで公開されている開発中のソースコードを解説している。
リポジトリにあるREADMEによると、Streemはストリームベースで並列処理指向のスクリプト言語だという。また、Rubyだけでなく、Erlangやその他の関数型言語の影響も受けているとのこと。パイプを使って処理を行う例がサンプルコードとして示されており、CやRubyとは全く異なるデザインの言語になるようだ。
Perlは偉大だなぁ (スコア:5, 参考になる)
古臭いとかなんとかあちこちで叩かれまくってても、6年も7年も前に殴り書きしたものが今でも普通に動くもの。
最終リリース日が8年前とかいうPerlアプリだって今でも普通に動く奇跡。
一方のRubyと来たら・・・。
ついこないだまでどんな場合でもスカラ値が帰ってきたメソッドが、ある日突然nilを返すようになったとか余裕。
それすら一時期はemptyだったりboolだったりあれこれ変わりまくった末に。
ましてメジャーバージョンやマイナーバージョンが上がったのではなく、teenyがいっこ増えたとかそんな程度で・・・。
あるメソッドがある日突然非推奨入りしたかと思えばいきなり消滅。
しかし非推奨入りして何年も経つメソッドがあったり、かと思えば数ヶ月もしない内に消え去ったり、そんな程度のルールさえmatzの驚き最小の法則適用。
おかげでマイナーバージョンが増分したりしようもんなら、生み出される非互換の山。
Rubyでは1年前の殴り書きどころか、3ヶ月前のものだってすんなり動くとは思えない。
Rubygemsひとつ取ったって、どこからどこまでのバージョンがどの系統のRubyに適合するものか、何も見ずに言える人なんて重度のRubyistくらいのもんだよ。
それがついに、matzでさえ手に負えなくなって新言語作成ですか?
使えば使うほどにRubyが収集つかなくなっていたのは知ってるだろうから、新言語作成自体に反対する気は無いけれど。
Rubyの失敗を生かして、毎度毎度非互換の山をこしらえるのはもう止めにしてね。
非互換を作る時はPythonのように上手くやらなきゃダメだよ。
Ruby 1.8の切り捨ての時みたいに無理やり切り捨てると、それから先ずっとそんなことしなきゃならなくなる。
この後に控えてるRuby 1.9や2.0の切り捨て時に一体どれだけの阿鼻叫喚騒ぎになるか考えるだけでも恐しいよ。
#Rubyの切り捨てのやり方に慣れすぎて、1.9 → 2.0の変更点なんて微々たるものじゃんとか思ってしまう自分がまた恐しい。
Re:Perlは偉大だなぁ (スコア:4, 参考になる)
> しかし非推奨入りして何年も経つメソッドがあったり、かと思えば数ヶ月もしない内に消え去ったり、そんな程度のルールさえmatzの驚き最小の法則適用。
Rubyって1.9.2以降はだいたい年に1度くらいのリリースペースなんですが、何か別の話ですかね。
さておき、非推奨なのにずっと残っているのは単に忘れているだけの場合もありますが、
何か有力なアプリケーションが使っているからというパターンのこともあります。
>ついこないだまでどんな場合でもスカラ値が帰ってきたメソッドが、ある日突然nilを返すようになったとか余裕。
Ruby本体は値の型は結構気にしているので、そういう変わり方はあまりないような気がするのですが。
全体的に見て、Ruby本体とgemをごっちゃにして語っているような印象があります。
なお、Googleも含め結構な数のユーザーが2.xにとどまっているPythonがうまくやってるとはとても思えませんね。
手間をかければ移行してくれるというわけでもないのが難しいものではあります。
Re:Perlは偉大だなぁ (スコア:1)
ruby は登場して,まだ10年しか経ってない.まだバージョンも2.2ぐらい.
一方,perl は30年近い歴史がある.バージョンは5.20ぐらい.
全体でみれば,perlでも数々の非互換な仕様変更があったわけで,
仕様変更の問題点はrubyに限らずperlにもpythonにもある.
たとえばpythonだと,2系と3系で互換性がなさすぎて,
結局 redhatとかdebianのようなディストリビューションでは
2系と3系とが共存する羽目になっている
偉大だなぁというなら C言語とかLispをあげるべき.
ANSIやJISで,ちゃんと言語規格が定義・管理されていてる
Re:Perlは偉大だなぁ (スコア:2)
wikipediaによるとfjで発表されたのが1995年だそうです。今年は2015年。だから19年ないし20年経過。
https://ja.wikipedia.org/wiki/Ruby [wikipedia.org]
10年しか経っていないというのは別の方法で誕生年を認識していらっしゃる?
Re:Perlは偉大だなぁ (スコア:1)
多謝。
そういう観点であれば10年というのはしごくなっとく。
とはいえそれは共感できるという意味ではない(余計な一言)。
Re:Perlは偉大だなぁ (スコア:1)
JIS X 3012「呼んだ?」
Re:Perlは偉大だなぁ (スコア:1)
本人の日記「そろそろStreemについてひとこと言っとくか [rubyist.net]」でも触れていますが
雑誌の連載用に作った言語に過ぎないのでそれがついに、matzでさえ手に負えなくなって新言語作成ですか?なんていうのは的外れでは?
本人の日記記事は関連リンクに入ってないのか……
Re: (スコア:0)
perlは、そもそもperl4の時点でいちど完成してしまってますから。
当初はマルチバイト対応もなかったですし。
CPANなしで、標準で添付される範囲しか使わずにいれば、今後もいつまでも使い続けられる。
しかしJavaもRubyも、随分と標準でいろいろ添付するようになったと思う。
揉めたくないから名前は挙げないけど、それ標準で必要?というのが色々と。。
Re: (スコア:0)
昔Perlで書いていたCGIがteenyがあがっただけで動かなくなったことがあるので、どんな言語でも書き方次第なんじゃないかなぁ。
#そのときの原因は$.がcloseの影響を受けるように変更されたからでした。
この人知ってる。2chの管理人 (スコア:2, おもしろおかしい)
だった人だよ
サンプルコードを見る限り (スコア:0)
CやRubyにソックリ・・・
Re: (スコア:0)
言わんとすることはわからんでもないが 「C や Ruby にソックリ」 ってすごい表現だな。
記述の意図が伝わっているって意味だとすると、かなり褒め言葉かもしれない。
Re: (スコア:0)
推移則が成り立つとすると
CとRubyもそっくりということになって、
さすがにそれはどうかと思うのです。
Re:そして、Rubyは死んだ。 (スコア:5, すばらしい洞察)
Rubyはもうmatzだけのものじゃない。
だからmatzの趣味でErlang風並列処理指向を取り入れるわけにはいかない。
それをやるのにRubyはもはや存在が大きすぎる。
それでmatzは新しい言語を作って、Rubyはメンテナが着々と育てる。それでいいじゃないか。
ユーザがいる限りRubyは死なない。新しい言語が世にもう一つ増えるだけ。
Re: (スコア:0)
創始者が作ったとしても、ほとんど人が付いてこなかったりする場合もありますし。Perl 6とか
Re: (スコア:0)
> Rubyはもうmatzだけのものじゃない。
じゃあrubyspecの件は何なの。CRubyの動作こそが仕様だと宣言するなら結局matzの私物じゃん。
Re:そして、Rubyは死んだ。 (スコア:3, すばらしい洞察)
Streem は 『日経Linux』 の連載「作りながら学ぶプログラミング言語」でやってる言語の実装です。
記事では Ruby 3 への言及もしてますし、そもそも Ruby から離れると宣言したわけでもないので、やさしい独裁者モデルは継続中です。
Ruby 方言としては、Ruby の組み込み向け実装の Embedded Ruby (mruby) もリリースされて2年近いし、こちらも平行して開発中です。
なにを目的に Ruby が死んだことにしたいのかさっぱりわからないが、無理にいいわけしなくても使いたくないなら使わなければいいのでは。
Re:そして、Rubyは死んだ。 (スコア:1)
年末に 2.1.5 と 2.2.0 がリリースされて、日々まつもとさんを含む開発者のやりとりを見ていると、なにをもって死んだと指摘されたのかがさっぱりわからないのです。
とくに目的がないというのであれば、死んだという指摘をした根拠を示してもらえませんか?
新しい言語を始めたからというのは、飛躍しすぎです。
Re: (スコア:0)
そりゃ根拠も出さずに「死んだ」なんて言えば使ってる人は反論するでしょうよ。
ちなみにあんたはRubyは死んだと思ってるの?
Re: (スコア:0)
Rubyが好きならRubyを使い続ければ良いだけ.
カリスマ性がすきなら,カリスマを追い続ければいいだけでしょ
Re:そして、Rubyは死んだ。 (スコア:1)
まつもとさんの勝手でしょ
それ以上もそれ以下も何も言えない
Re: (スコア:0)
日本では個人の自由なんてないのだよ
ネタにマジレス カッコイイ (スコア:1)
> 『日経Linux』誌上で執筆されている連載「作りながら学ぶプログラミング言語」用の新言語
マジをネタだというやつカコワルイ (スコア:1)
本人が日記で
http://www.rubyist.net/~matz/20141222.html [rubyist.net]
実用的価値があり今後も開発をすると言ってるぜ
Re: (スコア:0)
LinusもGit作ってたじゃん。
別物でしょ。
Rubyが死んだとしてもこいつのせいじゃない。
Rubyがいけてると思ってたら、そんなコメント書かなかったでしょ。
Re: (スコア:0)
GitはOSではない。
しかしRubyもStreemとやらもプログラミング言語だ。
Re: (スコア:0)
力の入れ具合を気にしてるんじゃないなら、ただの言いがかりとしか思えない。
Rubyへの期待をすごく感じるんだけど、他人に心中してくれってのは
期待しすぎでは。
Re: (スコア:0)
心中ってどっちにしても死亡確定なのかよ
そんでもって沈没する船から船長だと思ってた人が真っ先に逃げたって事かい
その方がいい (スコア:0, 興味深い)
Rubyはそのポテンシャルに対しての普及ペースが遅すぎる。
まつもとさんが居たからとて、彼が死ぬまでに今後Rubyがどれほど広まるというのか。
個人的には、Rubyの期待感は開発初期とRalisの2回で完結した。
あの時点で決定的に普及せず、今更微妙にユーザー数が増えているのが微妙過ぎて、
どちらかというときっちり死んでもらう方がスッキリする。
微妙過ぎるシェアは使うにも捨てるにも説得力に欠ける。
今までだって新しい事したかったんだろうし、好きにやって欲しい。
Re:その方がいい (スコア:2, 興味深い)
貴方が Ruby に期待しないのは構わないですが、死んでほしいというのはひどいです。
現状を見ても、ある程度普及したプログラミング言語はそうそう簡単にはなくならないのははっきりしているので諦めてください。
普及というのはどういう状況を期待しているのですか?
かつての VB6 やいまどきの PHP のような人月いくらのコーディング作業で短期雇用されるような状況には、むしろなってほしくないです。 # 個人の感想です。
すでに私どもの現場では期待するレベルには普及しています。
本題に戻ると、まつもとさんが新言語と処理系の開発に手を出したからって Ruby が捨てられたって考えるのは短絡過ぎだと思いますが、このツリーが伸びてるのはそう考える人が結構いるってことなんでしょうか?
もしかして mruby も知らないのかな?
Re:その方がいい (スコア:1)
言ったのはある意味本心だが、若干の誇張や失礼があるので謝る。すみません。
現状を見ても、ある程度普及したプログラミング言語はそうそう簡単にはなくならないのははっきりしているので諦めてください。
了解した。
普及というのはどういう状況を期待しているのですか?
Windowsユーザーがrubyを使っているのがそれほど珍しくない、ruby実行環境をユーザーにインストールさせるのに
嫌な顔をされない、rubyによる提案を呵責なくできる、といった時代が来ていればよかった。
普及に協力した人間ではないので、突っ込まれると言い返せないが。
Re: (スコア:0)
確かにユーザの Windows 環境への導入についての悩ましさはありますね。
互換性問題を考えると、rbenv 相当のしくみも必要かもしれないと思うとなおさらです。
こちらはユーザが直接操作するところではない領域ということで、若干相性がよかったのだと思います。
ありがとうございました。
Re: (スコア:0)
まあ、それでいいんじゃない?
なんか、覇権を取らねばならぬ、みたいな強迫観念が前提にあるように見えるけど。
新しいプログラミングパラダイムが出てきたらそれを組み入れた新しい構造の言語を試しに作ってみて、
こなれてきたら、そこから有効だった部分を残し、要らなかった部分を消し去りしたサブセットを取り出し、
さらに洗練させた新しい言語を作り…で、プログラミング環境を発展させていけば。
Perl→PythonやRubyの流れでも、Java→C#の流れでも、実際に使ってみてから見えて来た、
良いアイデアだった部分も有り、いまいちだった部分も有り。
Re:どうせコンパイラだけ (スコア:2)
「IDEがないと書けないような言語がクソ」
と言う主張もあります.
いや,私はそこまでは思いませんけど,IDEだけを想定しなかったら,流石に
shouldBreakLineByHyphenatingBeforeCharacterAtIndex [hatena.ne.jp]
なんて命名はしなかったのでは?
OSS界隈の開発者たちは,IDEをあまり必要としていないから,OSS界隈ではIDEが発達していないと思っています.
私もIDEは余計なことするので嫌いです.
Re:どうせコンパイラだけ (スコア:1)
>なんでOSS系にはいまだにまともなIDEもないんだか
ここで emacs 信者の登場。
Re:どうせコンパイラだけ (スコア:1)
Eclipse や NetBeans も沢田が JetBrains が一歩抜きんでているような気がする。
Re:どうせコンパイラだけ (スコア:1)
netbeansはjrubyのおじさんがrubyのプラグインをメンテしてくれてるけど片手間だからやはりしんどい
debug回りとか相当挙動があやしいところがある、でも自前でプラグイン改修したりするのは楽
でjetbrainsのIntelliJベースのIDEなんだがやっぱ一番楽なんだわ
複数プロジェクトを1画面で開けない以外はなんもかも全部お手軽にできるようになってる
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
おめでとうございます。
何とご本人から否定のTwitterコメントが。
https://twitter.com/yukihiro_matz/status/559608862076985344 [twitter.com]
マニアが、有名なことを知らなかった呼ばわりされたら、そりゃまあ落ち込むだろう。
ちなみにたぶん言ったのはC++のビャーネ・ストラウストラップ。
それもたぶん本当に知らなかったというより、
それは(Smalltalkの世界で言うところの)オブジェクト指向ではない、
とさんざん言われていい加減頭に来ていたのだと思われ。
基本的に、言語設計者にとってパクることは恥ではない。芸術家とは違う。
むしろパクらないとまともな言語など作れない。
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
PowerShellは、プログラマが開発に使うようなもんじゃないよ。
クラスすら定義できないしね。
# C#を埋め込むような形では可能だけど。
でも、Linuxでもプログラマが開発言語にbashを選ぶことは稀だろ?
それと同じ。
一方、インフラエンジニアはよく使ってる。
てか、WindowsやVMwareを運用するなら、使わざるを得ない。
Linux上のbash程じゃないにせよ。
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
PowerShellは便利なんだけどオブジェクト指向の知識が無いと使いこなせん
「オブジェクト指向の知識」は大袈裟でしょう。
だって、継承も仮想関数も知らなくて構わないんだから。
せいぜい、.Net Frameworkとメソッド呼び出しを知ってればいい程度。
でも、ハマるのは事実。
Cmdlet相当の関数をちゃんと定義するのだけでも、PowerShell固有の知識が必要とされるしね。
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
cmdletで取得したオブジェクトのプロパティがcmdlet実行時に決まらずに
プロパティアクセス時に決まるとか理解してもらえない場合があります
その人は関数すら理解してないのでは?
オブジェクト指向以前の問題だと思うな。
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
$hoge = Get-Hoge
$hoge.state
2行目で関数呼び出ししていると言って理解できるのはオブジェクト指向言語を使った経験がある人だけ
オブジェクト思考なんか知らなくても、構造体を知ってたり、関数ポインタを知ってたりしても不思議は無いと思うが。
先にオブジェクト指向って言葉を知ってるから、メッセージパッシングだとかメソッド呼び出しとかで説明したくなるけど、違う言葉でも説明できると思うよ。
ちなみに、PowerShellのメソッド呼び出しなら
になるはずだね。
括弧必須。
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
君の言ってるのは、ScriptPropertyだね。
で、()無しで手続きを呼び出すことは、オブジェクト思考の専売特許でも何でもないね。
加えて、すでに指摘した通り、
で何らかの手続きを呼び出すのも、オブジェクト指向の専売特許でも何でもない。
CとC++の関係を知ってれば、容易に理解できることなんだが。
君の説明を、他人が理解しなかったとすれば、その原因は君自身にあるんじゃないかな?
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
Cmdletがオブジェクトを返すから、オブジェクト指向でないと説明できない。
...という狭い考えを私は否定しているだけです。
ScriptPropertyは、文字通りプロパティを意識しているわけです。
プロパティは、オブジェクト指向特有の考え方ではなく、それ以前の構造体のメンバとしてでも説明可能です。
メソッド呼び出しだって、構造体のメンバを関数として呼び出すことで説明できます。
ちょうど、C++が仮想関数でそうしたように、です。
ScriptPropertyはその組み合わせに過ぎませんし、()を付けずに関数を呼び出すことは珍しいことではありません。
相手がこれらを理解できないとすれば、あなたの説明が悪いか、相手が関数も構造体も理解してないかのどちらかでしょう。
私は、前者の可能性が非常に高い、と推測しています。
私は、私の知識が十分でないことを認めてないわけではありませんよ。
ScriptPropertyのことはすっかり忘れてました。
あなたとはその辺りが違います(笑)。
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
cmdletでオブジェクトを取得してそのプロパティにアクセスする事で情報を得たり
メソッドを呼び出して何らかの操作を行ったりする事はオブジェクト指向とは無関係と主張するならどうぞ。
お、ついに出ましたな。
相手が主張してもないことを否定して悦にいるメソッド(笑)。
よっぽど反論に窮したようですね(笑)。
そんなもの構造体のメンバと関数ポインタ使えばCでも簡単に実現できるぜ
といった実装と無関係な概念の話なのですが理解はしてもらえないようですね。
あなたが説明した場合はそうなんでしょうね。
普通のレベルの人は、実装の話もできるし、コードの動作の話もできますし、相手に理解してもらうこともできます。
事実、あなたは私の説明を理解しちゃいましたね。
あなたにとっては、ひじょーにざんねんなことに(笑)。
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
十把一絡げで人月売りされているSEと呼ばれる集団での「普通のレベル」にそこまで期待できるとは。
あなたのレベルがそこまで低い…じゃなかった、あなたの周りのレベルがそこまで低いとは思ってませんでした。
でもならば、なおのこと「オブジェクト指向」なんて難しい概念でなく、構造体とか関数とかで説明した方がいいんじゃないかな。
そのあなたの脳内「普通のレベル」集団とオブジェクト指向を知らない集団の積集合がφになったりしませんかね。
なっても問題ありませんよ。
私の言う「普通のレベル」の人達は、メソッド呼び出しやプロパティを、オブジェクト指向の言葉に頼らずに、その実装やコードの説明をできる人を言います。
一般に、そういう「普通のレベル」の人達は、オブジェクト指向についてある程度知っているでしょうから、オブジェクト指向を知らない集団とは重ならないでしょうね。
何か問題でもありましたか?
Re:どうみてもWindows PowerShellの二番煎じ (スコア:3)
このあたりでしょうか。
http://togetter.com/li/54495 [togetter.com]
Re:結局 (スコア:1)
一部のプロの絵描きの気晴らしは趣味の絵を描く事らしいですし、
そういうものなんでしょうね。
確かに、言語を作ることが好きな人なら、昔作った言語に囚われるのはうんざりするのかもしれない。
#存在自体がホラー
Re:結局 (スコア:1)
タバコのブレンダーが休憩時間にタバコを吸うみたいなもんですかね。
コンピュータ技術者の趣味がコンピュータってのも珍しくはないかもね。
Re:名前 (スコア:1)
まつもとゆきひろ氏の日経Linuxでの連載「作りながら学ぶプログラミング言語」は最新の2月号で第11回になりますが、先月号から、新たに設計する言語の概略が出てきています。
とりあえずコンセプト的なところを抜き出すと「軽量なコンカレント実行」「コンカレント実行における競合条件の排除」「抽象度が高いコンカレント計算モデルを導入」を備えるべきものとして設計していくとのことです。
「21世紀のシェルスクリプト」として、シェルスクリプトでのパイプ利用のような、ストリームに基づいたデータ処理をメインにしているため、言語名は「Stream」と命名。
で、今月号で、検索エンジン対策として、一般名詞を避けて「Streem」に改名しています。