RubyKaigi 2022 Keynote https://rubykaigi.org/2022/presentations/kateinoigakukun.html#day1
Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた 2019年12月25日にリリースされたばかりのRuby 2.7では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさんに詳しくうかがいました。 まつもとさんはとにかく忙しくて 実はすごいirbの改良 パターンマッチはRubyをどう変えるか キーワード引数は、端的に壊れていたのを大整理した 高速化に向けたいくつかの観点 Ruby 2.7で導入される「コンパクションGC」とは Ruby 3のビジョンは「静的解析」「並行並列」「JIT」 プログラミング言語Rubyには、クリスマス前後に新しいバージョンをリリースする伝統があり、2013年の2.1.0以降は毎年12月25日にメジャーバージョンアップが行われています
Abstract プログラミング言語Rubyはバージョン2.6でJust-In-Timeコンパイラを搭載し、Ruby 2.0に比べて2.5倍も高速になりました。言語処理系が2.5倍高速化するためにどのような魔法が使われたのか興味はありませんか? evalや動的なメソッドディスパッチなど、Rubyは高速化が困難な問題を多数抱えていますが、これらは実行時の情報を利用して最適化を行なうことによってエレガントに解決することができます。 このセッションでは、RubyのJust-In-Timeコンパイラがいかにしてそのような言語の高速化を実現しているかのエッセンスを、RubyやJust-In-Timeコンパイラの前提知識がなくてもわかるように解説します。 もしあなたがRubyを使うことがなくても、このセッションを聴けば、あなたが使う言語でどのような言語機能を使うと最適化の妨げになるかが理解しやすくなる
タイトルは釣りです。Ruby に盲目的に惚れている迂生には Ruby の痘痕(あばた)はエクボです。 それはともかく。 メソッド名の別名がありすぎ 「あなたは map 派? それとも collect 派?」っていう問いがまず嫌い。 いや,別名にも意義があるとは思うんだけど,記憶の負担が大きい。 自分では map しか使わなくても,他人のコード読むんだったら collect を知っていなくちゃならない。 しばらく前に reduce っていうメソッド見て,そんなのあったっけ?と思ったら inject の別名だった。 map/collect と inject/reduce の名前とその背景にある発想については,Rubyist Magazine に良い記事がある: そうかと思えば,Array#delete_if と Array#reject! みたいに,働きは基本的に同じだけど,削除が行われなかっ
「Ruby 2が一般化した今、そろそろ新しいことを始めよう。これはRuby 3.0への扉を開く宣言です。未来へ備えよう。コミュニティとして死なないように、ワクワクする未来を妄想しよう。新しいことを始めよう」 こんな風に開発コミュニティに呼びかけたのは、世界的に人気の高いプログラミング言語「Ruby」(ルビー)の生みの親で言語設計者のまつもとゆきひろ氏だ。この「宣言」とも言える発言は、2014年9月に開催された「RubyKaigi 2014」で出てきたものだ。基調講演をしたまつもと氏は、講演の中で初めてRuby 3.0というメジャーバージョンへ言及して、次なるマイルストーンとして設定することを公の場で宣言した。 まつもと氏によれば、Rubyのコア開発者はこの何年かはRuby 2で忙しかったという。目の前にある現行バージョンのRuby 2をどうするかということや、機能の安定化、メモリ周辺の改善
Rubyで微積分や統計解析を快適に扱うDSL作ったヨ!↓ github バグ報告を頂ければ24時間以内に直します. このDSLで一番大事にしたのは、 微積分や極限、対数や三角関数などを紙上で数学をする感覚と同じ感覚で取り扱える事. わざわざRubyでやる必要、あったの...?(;゜0゜) 僕がこのDSLをRubyで作ったのにはいくつか訳があります. Rubyが好き MATLABが苦手 Rubyが好き mathmaticaが苦手 Rubyが好き pythonが苦手 Rubyが好き ... とにかくRubyが好きです. 少しマジレスすると僕の大好きなRubyは数学色が薄いのが少し悲しかったのです. (蛇足ですが、この想いからrubyのMatrixクラスにシコシコcommit してます. ex. https://github.com/ruby/ruby/pull/568 Matrixを成長させ組
ローカルには映画の視聴記録とか食べ歩きのお店評価とか投資履歴とかガラクタコレクションリストとかの自身の活動記録的なデータが溜まります。そしてどういうわけかそれらのデータは大概表計算ソフト「Excel」の上に置かれているのです。その結果、溜めたはいいが有効に活用されない、場合によっては見ることすらしないという事態に陥ります。それらのデータが本来的に置かれる場所が「データベース」であり、その活用によりデータ価値が向上するということに誰も異論はないとしても、データはExcelに置かれるのです。 理由は一つ。そう、データベースは敷居が高いのです。 データベースの敷居が下がれば、みんながローカルのデータをもっともっと大量に公開して世の中はもっと便利になるに違いありません。 まあ、実際のところはよくわかりませんが。 そんなわけで… データベースの敷居を下げるべく、CSVデータを簡単にデータベース化する
http://patshaughnessy.net/2013/10/24/visualizing-garbage-collection-in-ruby-and-python Pat Shaughnessyが、ブタペストで開催されたRUPY2013でのプレゼンの前半を自らのブログで紹介しています。 ガベージコレクタは、「ゴミを集める」という行為だけでなく、「新しいオブジェクトのためにメモリをあてがう。」「不要なオブジェクトを見つける」「不要なオブジェクトからメモリを取り戻す。」という、人間の心臓が血液を浄化するような働きをしている。 この簡単なコードサンプルを見ると、RubyとPythonの記述はよく似ているが、それぞれの言語の内部でのインプリの仕組みは違う。 1) Rubyのメモリ Rubyは、コードが実行される前に、数千のオブジェクトを先につくり、それをリンクされたfree listに置
日本時間だと2013年2月7日未明のことですが、「Topaz」(トパーズ)と名付けられたPythonで実装されたRubyのバージョン0.1がリリースされました(リリースに関するブログ、プロジェクトのページ、GitHubのリポジトリ)。Ruby処理系はC、Java(JVM)、Ruby、CLI、JavaScript、Smalltalkなどによる実装がありましたが、Pythonというのは、ちょっと驚きです。ただ、Pythonといっても、Python言語で書くのが主眼なのではなく、Pythonエコシステムで高速処理を目指して作られた「PyPy(パイパイ)」の成果物の上に実装したというのがTopazのようです。現在のところコード作者リストに9人の名前が上がっていて、JRuby実装で知られるチャールズ・ナッター氏の名前も入っています。 Topazは正確にはPythonではなく、RPythonと呼ばれる
Ruby on RailsのメジャーバージョンアップとなるRails4のリリースが近づいて来ました。先日、日本人(あるいはアジア人)として初めてRailsコアチームのコミッタとして迎え入れられた松田明氏によると、Railsの生みの親であるDavid Heinemeier Hansson氏(以下、通称のDHHを使います)は、プロジェクトをリードするという意味で活動が活発になっているそうです。 そして最近のDHHは、ブログもよく書いています。彼は歯に衣着せぬ発言でも知られています。強い主張を持った(opinionated)なフレームワークの作者らしく、DHH自身もきわめてハッキリと物を言います。攻撃的とまでは言いませんが、IT業界や技術動向などでは割と何かをクソミソにけなしたりということをします。 DHHが何かをけなすときは、だいたい何らかの鋭い洞察とパンチの効いた皮肉が含まれていて、Twit
Ruby を試してみたいけどインストールするのは面倒…。そんな人のためにブラウザ上で Ruby を試せる IRBWEB というサービスを作ってみました。 irb のように、Ruby の構文を実験できてとてもお手軽です。 完全にブラウザ上で動作するため、動作もさくさく。ちょっとしたコードを書いて動作確認も楽しめますね。 なお、変数を定義するには $a のようにグローバル変数として定義しないと、次の入力で参照できません。 動作環境 Silverlight 2.0 のランタイムが必要です。 Silverlight 2.0 は Windows の IE だけでなく、Firefox や Mac の Safari、さらには主要な Linux ディストリビューションでも動作するので、この機会にインストールしてみるとよいですね。 (追記 2009/4/6) Firefox 3.0 では動かないようです。
Rubyには大量のメソッドがあります。次のコードでRuby1.9.3に含まれるメソッド数を数えたら単純合計で1659個、ユニーク数(同名を1と数えて)で937個と出力されました。 all_methods = ObjectSpace.each_object(Module).flat_map do |c| c.methods(false) + c.instance_methods(false) end.reject { |m| "#{m}".start_with? '_deprecated' } all_methods.size # => 1659 methods = all_methods.uniq methods.size # => 937 つまりRubyには、937個もの異なる名前のメソッドがあるのです。各メソッド名は、その動作や機能を端的に表現したものでなければならないので、その一つ一
Matzさんに「closureの件、結論としては元記事のPerl, Python(+JavaScript), Schemeプログラムがそれぞれまったく別のことをしていただけで、closureの仕様はすべて同じであるということ。」と指摘されたので、もう一度整理してみます。 http://twitter.com/yukihiro_matz/status/26707927087 sumimさんのSmalltalkとRubyの例(http://d.hatena.ne.jp/sumim/20101008)も加えます。 実験内容 言語間でやっていることの相違がないように、できるだけ似たコードにする。 ループでiを0から4まで回す ループブロック内で: iを埋め込んだlexical variable、'localvar'を定義。 localvarを参照したclosureをリストに追加。 5つのclosu
Hi everyone, in an effort to retain the information of railsinstaller.org we have decided to merge it with hotframeworks.com, this resource will always be live for everyone who needs it. Thanks to the team at Hot Frame Works for all their help. Whether you're on windows or mac this is the quickest way to going from nothing to developing ruby on rails applications. Start by downloading the relevant
昨日も同様の記事を書きましたが、コマンドプロンプトからの標準入力の文字コードは何か?という問題。 というのも、こんなプログラムを作って、標準入力から「あいうえお」と打ちみます。 # -*- coding: Shift_JIS -*- puts $1 if gets =~ /あ(.*?)お/ 期待値は「いうえ」なんですが、実際は、 sample.rb:2:in ` ': incompatible encoding regexp match (Shift_JIS regexp with Windows-31J string) (Encoding::CompatibilityError) となります。 コマンドプロンプトのプロパティを見ると、 現在のコードページ:932 (ANSI/OEM - 日本語 Shift-JIS) とあります。一応、標準入力の文字コードを調べるため、次のプログラムで実験
Windowsのrubyを1.8.7から1.9.1にあげてみた。するとこんな簡単なプログラムですら文字化けするようになった。 # -*- coding: utf-8 -*- puts "あいうえお" プログラムファイルはもちろんUTF-8で保存している。事実、次のようにしてもUTF-8と表示されるのであっているはずだ。 # -*- coding: utf-8 -*- puts "あいうえお".encoding ちなみにこうするとうまくいった。 # -*- coding: utf-8 -*- puts "あいうえお".encode("Shift_JIS", "UTF-8") うーむ。なんでShift_JIS?色々考えた挙句、理由が分かりました。 Windowsのコマンドプロンプトのプロパティを見ると、 現在のコードページ:932 (ANSI/OEM - 日本語 Shift-JIS) となって
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く