タグ

Rubyに関するUhoNiceGuyのブックマーク (19)

  • まつもとゆきひろ氏が“幻のPerl6”から学んだ教訓 「OSSの最大の敵」と「セカンドシステムの危険性」

    プログラミング言語「Ruby」の国内最大のビジネスカンファレンス「RubyWorld Conference」。Rubyの先進的な利用事例や最新の技術動向、開発者教育の状況などの情報を発信することで、「Rubyのエコシステム(生態系)」を知ることができる場として開催します。ここで登壇したのは、Rubyアソシエーション 理事長のまつもとゆきひろ氏。プログラミング言語の過去、歴史から学ぶ教訓について発表しました。全4回。3回目は、「Second System Syndrome」について。前回はこちら。 退屈は最大の敵 まつもとゆきひろ氏:次はPerlですね。ここまでですでに4回ぐらいPerlの話題が出てきています。なぜかというと、私はPerlが大好きなんですね。実は、Perlが大好きなんですが、Perlのプログラミングは大好きじゃないんですね。あと、Perlのソースコードも大好きじゃないんですね

    まつもとゆきひろ氏が“幻のPerl6”から学んだ教訓 「OSSの最大の敵」と「セカンドシステムの危険性」
    UhoNiceGuy
    UhoNiceGuy 2024/01/13
    ただ、2000年代初頭と今は状況が違っていると思う。あの頃のOSSは勢いのあるベンチャーが使うものだったが、今ではJTCも普通に使っているのでOSSに求められるものも変わってきたのでは
  • 関数・変数・機能に対する名付け方は“理解の試金石” まつもとゆきひろ氏が、プログラミングで名前が大事だと思う理由

    技育祭は「技術者を育てる」ことを目的としたエンジニアを目指す学生のための日最大のオンラインカンファレンスです。「技育祭2023【春】」に登壇したのは、Ruby開発者のまつもとゆきひろ氏。プログラミングの体験の中で実感した、ことわざや格言について話しました。全4回。1回目は、「名前重要」について。 日プログラマーで最も有名なRubyの生みの親 まつもとゆきひろ氏:ご紹介に与りました、まつもとゆきひろです。裏番組もおもしろそうなんですけれども(笑)、こちらに来ていただいてありがとうございます。何人ぐらい来てくれているのかな? まぁいいや。 今日はですね、「プログラミングのことわざ〜Rubyの父が語る教訓と知恵〜」というタイトルでお話しします。 まつもとゆきひろです。こんな感じのアイコンで活動していますけれども、Rubyを作った人として知られています。インターネットではひらがなです。ちょっ

    関数・変数・機能に対する名付け方は“理解の試金石” まつもとゆきひろ氏が、プログラミングで名前が大事だと思う理由
    UhoNiceGuy
    UhoNiceGuy 2023/08/16
    例えばArrayにlengthとsize、同じ機能のエイリアスがある等、Rubyはめちゃくちゃ名前に気を使っている
  • Ruby30周年イベント(後編):まつもと氏「Static Compiler for Ruby」を作りたい。道具立ては揃ってきた

    Ruby30周年イベント(後編):まつもと氏「Static Compiler for Ruby」を作りたい。道具立ては揃ってきた まつもとゆきひろ氏によって開発が始まったRuby言語の30周年を祝うイベント「プログラミング言語Ruby30周年記念イベント」が2月25日にオンラインで開催されました。 イベントでは関係者やRuby愛好家らによる過去30年の振り返りやRubyにまつわるライトニングトークなどが行われ、最後にまつもとゆきひろ氏による基調講演「D is for Dream, V for Vaporware」が行われました。 基調講演では、Rubyを開発する前にまつもと氏が手がけた、Rubyの原点となるソフトウェア「CXライブラリ」や、今回初めて名前が明かされた「Tish」という作りかけのプログラミング言語や、これまであまり語られることのなかった、さらにその前の学生時代に妄想していたプ

    Ruby30周年イベント(後編):まつもと氏「Static Compiler for Ruby」を作りたい。道具立ては揃ってきた
    UhoNiceGuy
    UhoNiceGuy 2023/03/03
    プロファイルを取って最適化手法を変えるという話か//型情報を追加できる動的言語の方がもしかして最適化に有利かも、とのことだが、そのアプローチは静的言語でも本質的には取れるのでは//subset Rubyは期待
  • “親切な人たち”が言ってくる「Rubyは死んだ」「Rubyなんか使わない」 まつもとゆきひろ氏がノイズを気にせず考える、Rubyの価値

    プログラミング言語Rubyの国内最大級のカンファレンス「RubyKaigi」。「RubyKaigi 2022」のKeynoteで登壇したのは、「Ruby」開発者のまつもとゆきひろ氏。「Contribute to Ruby」をテーマに、Ruby歴史・これからについて語りました。全5回。1回目は、Rubyの価値を形作る、Productivity・Community・Joyについて。 オフラインでも開催された「RubyKaigi 2022」 まつもとゆきひろ氏(以下、まつもと):おはようございます。 会場:おはようございます。 まつもと:声が小さい(笑)! (会場笑) まつもと:おはようございます! 会場:(さらに大きく)おはようございます! まつもと:あぁ、いいですね、物理会場は。おはようございます。15分ほど遅れましたけれども、2日目を始めたいと思います。 昨日のカンファレンスはどうでした

    “親切な人たち”が言ってくる「Rubyは死んだ」「Rubyなんか使わない」 まつもとゆきひろ氏がノイズを気にせず考える、Rubyの価値
    UhoNiceGuy
    UhoNiceGuy 2022/12/13
    RubyはSmallTalk的オブジェクト指向で文法の例外がなく、チグハグがなく統一されていて凄く使って楽。考えなきゃいけないことが少ない。最近Pythonばっかだけど//SmallTalkみたいで楽ってSmallTalkってどんだけすごかったんだろう
  • Pythonの波に飲み込まれたRuby、日本のケータイ敗戦との共通点

    プログラミングの学習を始めようとする人がする定番の質問がある。「どのプログラミング言語を選べばいいか」というものだ。 私はこのコラムで以前、JavaScriptからプログラミングを始めてはどうかと書いた。JavaScriptはWebブラウザーさえあれば動作するからだ。例えば「Chrome」であれば、F12キーを押して「Console」タブを選ぶだけで、JavaScriptの対話実行環境を利用できる。 関連記事: 保存していないクレジットカード情報が漏洩する謎、鍵はあのプログラミング言語 もっとも、JavaScriptは最初に学ぶ言語としては少し癖が強いとも感じている。どちらかというと、2番目か3番目に学ぶことで視野が広がるタイプの言語ではないだろうか。 私が初心者に勧めるとしたら候補は2つある。「Ruby」と「Python」だ。 私がRubyを勧める理由は、「プログラミングの楽しさ」を体験

    Pythonの波に飲み込まれたRuby、日本のケータイ敗戦との共通点
    UhoNiceGuy
    UhoNiceGuy 2022/01/14
    記事は読んでない。Pythonのライブラリが凄いのもあるが、RubyはWindowsで気楽に始められないんだよね(だよね?)。なので、他人に勧められるのがPythonになる。自分が使っているのはRubyなのに(自分はマカー)
  • Railsの未来についての一考察 - okuramasafumiのブログ

    概要 前置き この記事はRails Advent Calendar 2020の15日目の記事です。昨日はnegito6さんの忙しい人のための Rails デバッグ方法まとめでした。 動機 うなすけさんのRailsを主戦場としている自分が今後学ぶべき技術について(随筆)という記事と、それに対するmizchiさんのアンサーブログ、Re: Rails を主戦場としている自分が今後学ぶべき技術についてに触発されて書いています。 お断り この記事ではRails技術的な側面を意図的に重視していません。というのは、私がRails以外の技術についてそこまで詳しくないため比較するのが困難だからです。 また、ふわっとした話題を扱うということもあり、どうしても書き方が推測多めになってしまっています。これは私の知見と経験の少なさによるものです。 編 アプリケーション開発のマトリックス いきなりですが、アプリケ

    Railsの未来についての一考察 - okuramasafumiのブログ
    UhoNiceGuy
    UhoNiceGuy 2020/12/17
    Webで使われてる静的言語ってなんだろ。Java、C#、Scala?//CookPadだけでなくGitHubもRailsなんだ!
  • Rubyと型についてのポエム - まめめも

    zenn.dev matz はじめコミッターの型に対する姿勢にも疑問を持っています。 というご意見が自分に刺さった気がしたので、他の話題はともかくこの点に関してだけ、ポエムを書きます。 「Rubyに型が欲しい」というのは、「もっと速い馬が欲しい」だと思っています。意味を知らない人は ヘンリー・フォード もっと速い馬が欲しい で検索してください。 これは批判でも皮肉でもありません。みんなが馬の乗り方を知っている世界では、誰も乗り方を知らない自動車より、速い馬のほうが確実で合理的です。まして、自動車が当に実現できるかどうかわからない段階では。なので、他言語で型注釈を書くことによるプログラミング体験が良いと思った人が、それをRubyでも享受したいと思うのは自然だと思います。実際、Steep や Sorbet は Ruby でそういうプログラミング体験を提供することを目指していて、すでにある程度

    Rubyと型についてのポエム - まめめも
    UhoNiceGuy
    UhoNiceGuy 2020/12/15
    おっ、Rubyにも型解析機能が入るのか。進歩してるなぁ
  • まつもとゆきひろのツイッターを見てRuby使うのをやめようと思った

    Matzことまつもとゆきひろといえばプログラミング言語Rubyの作者なのだが、技術的にはともかく政治的にはツイッターを見ていてとてもつらい。 「高度プロフェッショナル制度」について 高度なスキルを持つと自負し、高い裁量が欲しい私のような労働者を野党が目の敵にしてることはよく分かった。実に残念だ。— Yukihiro Matsumoto (@yukihiro_matz) March 1, 2018 「定額働かせ放題」とも呼ばれ、専門性も裁量性も低い業種への拡大が懸念される「高度プロフェッショナル制度」について、問題点を理解せず反対する野党を揶揄。 「IT 業界を苦しめたいか、生産性を高めるのを阻害したい勢力」について 軽減税率といい、改元といい、サマータイムといい、IT 業界を苦しめたいか、生産性を高めるのを阻害したい勢力が政治をコントロールしている陰謀論を信じたくなるな。— Yukihir

    まつもとゆきひろのツイッターを見てRuby使うのをやめようと思った
    UhoNiceGuy
    UhoNiceGuy 2020/10/14
    Matz的には広報垢ではなく個人のtwitterなんだろうね//多分、このくらいの感覚が理系エンジニアの平均だと思う
  • HomebrewのインストーラーをRubyからBashに書き直しました! - プログラムモグモグ

    みなさんはHomebrewをお使いでしょうか。macOSをお使いの多くの開発者が使っていると思います。 HomebrewのインストーラーはRubyで書かれており、次のコマンドでインストールするようになっていました。 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" HomebrewがRubyに依存していることは良いのですが (formulaの書きやすさはRubyならでは)、インストーラーの話になると事情が変わってきます。HomebrewのインストールコマンドはmacOSの工場出荷状態でも動く必要があります。こういうものにRubyを使っているのはリスクがあります。 将来的にmacOSデフォルトにRubyPythonが含まれなくなる (参考リンク

    HomebrewのインストーラーをRubyからBashに書き直しました! - プログラムモグモグ
    UhoNiceGuy
    UhoNiceGuy 2020/03/03
    これは凄い!!
  • Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた - エンジニアHub|Webエンジニアのキャリアを考える!

    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日にメジャーバージョンアップが行われています

    Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた - エンジニアHub|Webエンジニアのキャリアを考える!
    UhoNiceGuy
    UhoNiceGuy 2019/12/26
    はぁ、凄いなぁ。新しいirb楽しみ
  • なぜrubyは他の言語と比べて遅いのでしょうか?

    回答 (3件中の1件目) Rubyの実行速度に興味があって、15年くらいMRIの開発をしています。興味があるので長い記事になっちゃったことをお詫びします。 遅いと言ったとき、多分「実行速度」の話をしているんだと思いますが、それ以外にも結構いろんな「はやさ」があります。思いつくところで少しご紹介します。 (1) プログラムを作るはやさ Ruby は生産性が高い言語と言われることが多いので、プログラムを作る早さは早い、という評価が一般的です。 Cで書くと2日かかる。実行時間は0.1秒 Rubyで書くと1日かかる。実行時間は10秒(Cの100倍) と、すこし極端な仮定を置いてみると...

    なぜrubyは他の言語と比べて遅いのでしょうか?
    UhoNiceGuy
    UhoNiceGuy 2019/03/27
    truffleってのが速いのね//静的解析をがっつりやってプリバイトコンパイルできるRubyが欲しい//今はPythonと比べてどうなのだろう
  • RailsコードをGoで書き直して、FFIを使ってRailsからGoの関数を実行させて実行時間を5%以下に短縮させた - Clueit Developersブログ

    こんにちは、Webチームの柴山(@shikeapp0909)です。 今回は、弊社Webアプリ「mamanoko」の一部に処理高速化のためにGoを導入したので、どのように導入したかをご紹介しようと思います。 Railsで開発しているWebアプリ内にどのようにGoを取り入れたのか、実際のコード例を交えながら解説していきたいと思います。 なぜRails環境にGoを導入したのか そもそもなぜGoを導入することになったのかと疑問に思われるかと思います。 mamanokoはメディアサービスのため、ライターさんに文章を書いていただいています。複数のライターさんがおり、文章量も膨大になるため、表記揺れや誤字がどうしても出てきてしまいます。 そのため、文章校正が必要であり、以前からその機能を提供していました。 しかしこの文章校正の機能は記事の文章に対して表記揺れなどチェックしたい単語を総なめする処理をしてい

    RailsコードをGoで書き直して、FFIを使ってRailsからGoの関数を実行させて実行時間を5%以下に短縮させた - Clueit Developersブログ
    UhoNiceGuy
    UhoNiceGuy 2018/06/29
    校正って記事を書き上げたときに一回だけでしょ?1分程度の時間がサーバ負荷の問題になるなんてどんだけ記事を入稿しているんだろう。
  • CRuby向けのLLVMベースのJITコンパイラを書いている話 - k0kubun's blog

    LLRBというRuby向けのメソッドJITコンパイラを書いている github.com RubyKaigi 2015の最後のキーノートで@evanphxが「LLVMでCRubyのコードをインライン化するメソッドJITを実装したら速いんじゃね」みたいな発表をしていたのを覚えているだろうか。 LLRBというのはまさにそれを実装しているプロジェクトであり、少なくとも現時点で「LLVMでCRubyのコードをインライン化するメソッドJIT」と言える状態まで実装でき、ものによっては効果が出る状態になったので公開した。 なんで書いてるの 言語を自分で実装するとその言語に関する理解が大分深まる、というのをHamlの実装とかCコンパイラとかで体験していて、僕が一番好きな言語はRubyなのでRubyでもそれをやっておきたい、というのがあった。また、Rubyは遅いと言われがちだが、どこに改善可能な点が眠っている

    CRuby向けのLLVMベースのJITコンパイラを書いている話 - k0kubun's blog
  • ハッシュは頻繁に参照する値を最後に入れると高速 - まめめも

    明日から RubyKaigi なので、ちょっとした小ネタを一つ。 例えば、0 から 9999 までをハッシュに順に入れます。 h = {} 10000.times do |n| h[n] = true end このとき、h[9998] や h[9999] は、h[0] や h[1] より高速です。 どのくらい高速かというと、 1_000_000_000.times { h } # 40.8 sec (ループ自体の速度) 1_000_000_000.times { h[9999] } # 57.2 sec 1_000_000_000.times { h[0] } # 89.1 sech[0] は 89.1 - 40.8 = 48.3 nsec 、h[9999] は 57.2 - 40.8 = 16.4 nsec ということになります。なんと 3 倍も速い。*1 なぜこんなことが起きるのか ハ

    ハッシュは頻繁に参照する値を最後に入れると高速 - まめめも
    UhoNiceGuy
    UhoNiceGuy 2015/12/10
    ほぇー、面白い。なんでこういう結果になるのかの解説もあり秀逸。Rubiist以外にも読んで欲しい。面白い。
  • PHP・⌒ ヾ(*´ー`) ポイ Rubyist is better than PHPer | つい全力ツッコミしてしまうエンジニアCEOのブログ | sumyapp

    株式会社アクトキャットのCEOのブログです。Web系スタートアップ・ベンチャー企業に興味がある人や就活生に役立ちそうな事を自由に考えて投稿しています。 Rubyist is better than PHPer、ルビー使いがペチパーより優れている理由を3つ上げます。PHPおよびPHPerはコードを書くのが嫌いPHPerは実はHTMLに毛が生えた程度しか使えない人が多いPHPは低級プログラマと過去の負債に引きずられるRubyとだけ比較してますが、Pythonと比較しても、Node.jsと比較しても別に良いでしょう。結果は一緒です。さぁPHPを投げ捨てよう!PHPおよびPHPerはコードを書くのが嫌いこの根拠は、PHPがほかの言語に比べてPaaSで動きにくい、というのを根拠にしています。PaaSで動くためには、少なくても下記の条件を満たしている必要があります。DB Schemeをコードで管理して

    UhoNiceGuy
    UhoNiceGuy 2014/04/29
    「PHPerは実はHTMLに毛が生えた程度しか使えない人が多い」この程度の人でもなんとかなるというのは素晴らしい言語ということだ
  • つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

    プログラミングをより深く理解するための近道は、プログラミング言語を実装してみること。SchemeのサブセットをRubyで実装していくことで、プログラムはどう実行されるのか、その基がはっきり分かります。 ※書はCC BYにより配布されています。上記の「買い物かごへ」ボタンからは有償で購入できます。無料で入手したい場合は、下記リンクよりダウンロードしてください。なお、有償版も無償版も内容は同一です。 EPUB版PDF版内容紹介プログラムは書けても、その基礎となっている計算機科学(コンピュータサイエンス) の理解があやふやな人を、著者は多く見てきました。プログラミングに自信があるという人が、もう一歩先に進める道を示したいというのが、この文書を書き始めた動機です。 この文書を読むことで次の効果が得られることを期待しています。 プログラミング言語とは何かを深く理解することで、プログラミングのレベ

    つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
    UhoNiceGuy
    UhoNiceGuy 2013/04/16
    Amazon Kindleで決済してくれればなぁ
  • 状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    たとえば、今、「ユーザーが方向を入力したらプレイヤーが動くゲーム作りたい」みたいなはなしがあるとする。その場合、モデルクラスはまあシンプルな実装として下のようなものが考えられると思う。 「できたよー」って見せにいったら、今度は「あのさー、『高速移動モード』っていうモード欲しいんだよね。そのモードだと二倍速で動くの」って言われたとする。シンプルにやるとこうなりますね。 「できたよー」って見せにいったら、今度は「なあ、すげえ面白いこと考えたんだけど、『蟹モード』って面白くない?横は4倍速で動くんだけど縦は半分の速度で動くの」とか言われたわけです。あなたは「お、おう」と言って、以下のようにコードを修正しました。 これ、ヤバい感じしますね。破滅の匂いがする。「今度は『よっぱらいモード』欲しいな〜。入力に関係なくランダムに動くの」みたいなこと言われたら確実に複雑さが爆発してメンテ不能になりになり死

    状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    UhoNiceGuy
    UhoNiceGuy 2013/02/10
    あくまで説明用の例だとしてもcase-whenの山が気になるw(<--悪意はないよ、自分がパラノイアという意味)/MovinModeがインスタンスを持つことがないんならnewせずにクラスメソッドとか。説明のためだろうけど/個人的にはlambda
  • Rubyで点数を集計するとき、あなたはどうしてますか?

    ─ 問題 ─ 5人のプレイヤー(Alice, Bob, Jimmy, Kent, Ross)が二種類のゲーム(gameA, gameB)をそれぞれ3回ずつプレイした結果のデータdataがある。 data =<<EOS player gameA gameB Bob 20 56 Ross 68 33 Bob 78 55 Kent 90 15 Alice 84 79 Ross 10 15 Jimmy 80 31 Bob 12 36 Kent 88 43 Kent 12 33 Alice 90 32 Ross 67 77 Alice 56 92 Jimmy 33 88 Jimmy 11 87 EOS

    UhoNiceGuy
    UhoNiceGuy 2013/01/24
    自分だったら細かいとこ雑にするとstep2: scores.each{|elm| name=scores0;sums name = 足す処理(sums name, elm)} でstep4かな
  • いい加減Ruby信者がうざい件 - id:k-z-h

    Ruby信者の特徴Matzは神であり神による実装であるRubyこそが唯一絶対の言語である他の言語(特にPerl)は存在自体が悪である他の言語を使っているのはRubyを知らないからであるRubyを布教することでそのような不幸な子羊たちを救済することこそが正義であるどこかの世界宗教のようですね。 「Perlベストプラクティス」まとめ を読んでふと「Ruby使えばいいのに」と思った - World Wide WalkerPBPより先に、Perlを選択する時点で、RubyよりもPerlを使いたいという前提があることを考えて欲しい。その上でPerlをよりよく(という言い方もあまり好きじゃないけど、ほかにいい言い方が思い浮かばない)運用する方法がPBPなんだろ。それに対して「それRuby(略」っていう発言は場違いであると思わない? Perl の There are many ways to do it

    UhoNiceGuy
    UhoNiceGuy 2008/09/21
    RubistはPerlerとは仲がいいんじゃないでしたっけ。目の敵にしているのはPHPer。/たしかに"?"はないよね。真偽値を返すんだったら"-p"だろうに常考。
  • 1