give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

「プロを目指す人のためのRuby入門 改訂2版」が増刷されました🎉&Ruby 3.0で学習すべきかどうかについて

お知らせ

先日拙著「プロを目指す人のためのRuby入門 改訂2版(通称・チェリー本)」が増刷されました!🎉

いやあ、嬉しい!いやあ、めでたい!
本書を買っていただいたみなさんのおかげです。どうもありがとうございます!

そもそも「増刷」って何なん?

増刷(ぞうさつ)というのは、簡単に言うと「本の在庫がなくなってきたから、在庫を補充するために追加で印刷すること」です。
「え、それだけ?」と思われるかもしれませんが、商業出版の場合、一回につき、かなりまとまった冊数を印刷します。
つまり「増刷される=それだけ本がたくさん売れている」ということを意味するので、「増刷しますよ」の連絡は本の著者にとって、大変嬉しいニュースになります😄

ところで、Ruby 3.0で学習を進めてもいいの?

さて、話は変わりますが、本書の対象バージョンはRuby 3.0です。
出版当時(2021年)は最新バージョンでしたが、Rubyは毎年12月25日バージョンが上がります。
2024年5月現在の最新バージョンはRuby 3.3です。

そして、定期的に古いバージョンからサポートが切れていきます。
Ruby 3.0は2024年4月23日にリリースされたバージョン3.0.7が最終バージョンとなり、現在はサポートが切れた状態(EOL = End of Life)になっています。


では、このサポートが切れたRuby 3.0でRubyの学習を進めてもいいのでしょうか?

筆者の答え:Ruby 3.0でもいいし、Ruby 3.1以上でもOK!

最初に結論を言うと、学習目的で使用するならRuby 3.0でもいいし、Ruby 3.1以上でも構いません。
詳しい話は以下に書きます。

Ruby 3.0を使う場合

公式サポートが切れると、Ruby本体のバグ修正やセキュリティパッチのリリースがなくなります。
もしRuby 3.0を使って、外部に公開するようなアプリケーションを開発している場合はこれが深刻な問題につながる可能性があります。

ですが、チェリー本のサンプルプログラムはローカルマシン内に閉じた簡単なものばかりです。
なので、学習用として使うのであれば、Ruby 3.0を使い続けても問題はありません。

Ruby 3.0の問題点

ただし、Rubyのバージョンが古くなっていくと、「最新の開発環境にうまく対応できなくて、インストールにすごく苦労する」という現象がときどき発生します。
今はすんなりインストールできると思いますが、数年すると「Ruby 3.0をインストールしようとしたらエラーが出た」みたいな問題が起きるかもしれません。
その際は無理に頑張らず、新しいバージョンのRubyをインストールして学習することを検討してください。

また、最新のRubyでは本書の説明と異なる部分もいくつかあるため、業務で新しいバージョンのRubyを使ったときに「あれ、こんな構文あったっけ?」と疑問に思うことが出てくるかもしれません。
そうならないように、Ruby 3.0で学習が終わったら今度は次の項で紹介する説明記事を参考にして、Ruby 3.1以上の新機能や新構文もチェックしておきましょう!

Ruby 3.1以上を使う場合

Ruby本体はバージョンが上がっても、大半の部分で後方互換性が維持されています。
ですので、Ruby 3.1以上のバージョンでチェリー本を勉強したとしても、9割以上の内容は有効です。

ただ、そうは言っても「100%同じ」というわけにはいきません。
そんなに数は多くないものの、中には「チェリー本に書いてある内容と、実際に動かしたときの挙動が異なる」という部分もところどころに出てきます。

そういうときのために、Ruby 3.1、3.2、3.3の各バージョンについて、チェリー本の説明との差異をまとめています。

Ruby 3.1以上のバージョンを使って学習する場合は、事前にこれらの記事に目を通しておくと、安心して学習が進められると思います。

このような最新バージョンとの差異の説明は、今後も引き続き行っていく予定です。
なので、書籍のRubyバージョンが多少古くても気にせず本書を手に取っていただけるとありがたいです!

チェリー本に関する書評ブログあれこれ

最後に、読者のみなさんが書いてくださった書評ブログ(一部)を掲載させてもらいます。
まだ本書を持ってない方はこちらの書評も参考にしてみてください。

engineer-umd.hatenablog.com
torihazi.hateblo.jp
engineer.crowdworks.jp
qiita.com
neco3s.hatenablog.com

あなたの書評もお待ちしています!

書評を書いてくださったみなさん、どうもありがとうございます!
どんな内容であれ、書評を書いてもらえるのは著者としてとても嬉しいです。
簡単な内容でも良いので、みなさんぜひ「プロを目指す人のためのRuby入門」を読んだ感想を教えてください!

まとめ

というわけで、このエントリでは「プロを目指す人のためのRuby入門 改訂2版」が増刷されたお知らせと、サポートの切れたRuby 3.0で学習を進めても良いかどうかについて書いてみました。

これからもたくさんの人に本書を読んでもらえると嬉しいです。
引き続き「プロを目指す人のためのRuby入門」をよろしくお願いします!

あわせて読みたい

blog.jnito.com
blog.jnito.com

ネチャッとして跡が残るシールやラベルをきれいに剥がす

はじめに

ケースに貼ってあったラベルを剥がそうとしたら、きれいに剥がれなくて「これだったら貼ったままにした方がマシだった😭」と後悔することってよくありません?

たとえばこんなふうに↓

でもこれ、意外とかんたんにきれいに剥がせるんです。

用意するもの

  • ドライヤー
  • ガムテープ
  • ちょっとした時間と根気


注意:必ず自己責任でお願いします!!

ラベルが貼ってある素材が熱に弱いものだったりすると、ドライヤーの熱で変形したりするかもしれません。
このやり方はあらゆる素材に適用可能、というわけではないので、みなさんご注意ください。

また、ドライヤーの熱で素材が熱くなってやけどしたりする恐れもあります。
作業中はやけどにもご注意ください。

ドライヤーでシールを温める

シールやラベルに熱を加えると、シールの糊が柔らかくなって剥がしやすくなります。
端っこの方からドライヤーでシールを温めましょう。

ゆっくり、少しずつシールを剥がしていく

ドライヤーで温めたら、シールをゆっくり、少しずつ剥がしていきましょう。
ドライヤーの熱が加わってない箇所はシールが剥がしにくくなるので、そういう場合は無理に剥がさず、「温める→剥がす→温める→剥がす」をこまめに繰り返してください。

いったんシールを全部剥がす

とりあえず、シールを全部剥がしてみました。
まだ本体にシールの糊が残っていますが、次のステップできれいにするので大丈夫です。

残った糊をガムテープで除去する

本体に残った糊はガムテープでペリッと剥がします。
こんなふうにガムテープを貼り付けて・・・

えいっ!と引っぺがします。

一回ではきれいに取れないかもしれませんが、何度かガムテープをペタペタやっていると、徐々に糊が取れていきます。
取れにくい糊はドライヤーで温めてからガムテープを使うと取れやすくなります。

できた!✨✨✨

ガムテープ作戦を繰り返して、本体に残った糊が全部なくなったらおしまいです。

どうでしょう?ほぼ完璧にラベルの痕跡を無くせたんじゃないでしょうか?

なお、今回の作業にかかった所要時間は約15分でした。
どうもお疲れ様でした!!

まとめ

「このシール、全然きれいに剥がれない!キーッ!!」とイライラしながら無理に剥がそうとすると余計に状況が悪化します。

爪でカリカリッとシールを剥がそうとしてみて、「あ、これはきれいに剥がれないタイプだな」とわかったら、さっさと今回紹介したような「ドライヤー&ガムテープ作戦」に切り替えましょう。
今回は「手で剥がそうとして失敗した状態」がスタート地点だったのでちょっと時間がかかりましたが、この作業をやるなら「シールがきれいに貼ってあるまっさらの状態」の方がシールを剥がしやすいので早く終わります。

というわけで、きれいに剥がれないタイプのシールやラベルに遭遇したら、ぜひここで紹介した方法を試してみてください!
(ただし、熱に弱い素材や作業中のやけどにはくれぐれもご注意を〜)

【RubyMine】「機能拡張さえ入れれば無料で使える機能」と「最初から全部入りの機能」の違いとは? #ソニックガーデン勉強会

はじめに

先日、弊社ソニックガーデン主催の「エンジニアのためのスキルアップ勉強会#2 自分が考える最高の開発環境」に参加しました。(登壇者ではなく視聴者として)

sonicgarden.connpass.com

その中で弊社の @ruzia がRubyMine愛、もといJetBrains愛を熱く語っていたのですが、同じRubyMineユーザーとして、彼の言うとおりRubyMine(およびJetBrains系IDE)の一番の強みはやっぱり、「デフォルトにして至高」つまり、「最初から全部入り」であることだな〜と再確認しました。


RubyMineじゃなくてもできるから、無料のエディタで十分?

RubyMineの便利機能を紹介するとよく耳にするのが、

「それ、RubyMineじゃなくても <<あの機能拡張>> を入れたら <<あのエディタ>> でもできるよ。しかも無料だよ!」

というセリフです。

ですが、同じ機能が使えるとしてもスタンスとして大きく違うのは、

  • 無料で使える(でも自分で機能拡張をインストールしなければならない)
  • 最初から使える(でも毎年利用料を払わないといけない)

のどちらを重視しているか、ということです。

無料で使える機能拡張は素晴らしい?

RubyMineを使う前は僕はVimをメインで使っていました。

ネットの情報を見ながら、いろんな機能拡張(プラグイン)をインストールしていたんですが、意外としんどいんですよね。
というのもインストールしたらおしまい、ではなく、

  • 他のプラグインとショートカット等が競合して動かないときがある
  • Vim本体やプラグインがアップデートすると突然動かなくなってしまうことがある

みたいなトラブルが起きるからです。

古いバージョンを使い続けるのはイヤだから早くアップデートしたい、でも、アップデートするとエディタが動かなくなるかもしれない、みたいな心配って結構開発体験(DX)が悪いです。

何の気なしに新しいプラグインを入れたら、それまで使えていたプラグインの機能が使えなくなって、何が原因なのか調査しないといけない、みたいな問題も困ります。
「今すぐコードを書きたいのに、なんで俺はエディタのconfigとにらめっこしてるんだー!?」みたいな体験は苦痛以外の何物でもないです。

「私は <<あのエディタ>> のエキスパートだから、トラブルが起きてもすぐ直せる自信がある」とか「突然起きたトラブルを解決するのも <<あのエディタ>> を使う醍醐味のひとつ」みたいに考えている人はいいですが、僕にとってエディタは「いつでもすぐ使える状態になっている便利な道具」であってほしいです。

「最初から全部入り」ならトラブルが起きにくい

その点、RubyMineはほぼすべての機能がデフォルトで入っています、
RubyMine用のサードパーティ製プラグインも用意されていますが、数えるほどしか入れていません(今調べたら「CSV Editor」と「GitHub Copilot」だけでした)。

なので、プラグイン同士の相性問題やRubyMineをアップデートしたときに便利機能が壊れることを心配する必要がありません。
なぜなら、そうした問題が起きないようにJetBrains社が責任を持って機能の整合性を管理してくれているからです。

お金を払う=損、ではない

そして、「お金を払う=損」ではありません。
費用対効果が見合っているのなら、お金を払う価値はあるでしょう。
その点、JetBrains社はお金を払っただけの(もしくはそれ以上の?)働きをしてくれます。

上で述べたとおり、「JetBrains社が責任を持って機能の整合性を管理してくれる」というのも価値のひとつですが、それだけではありません。

たとえば、RubyMineは毎年数回バージョンアップします。そのたびに新機能が追加されます。
つい先日もバージョン2024.1がリリースされました。

RubyMine 2024.1 の新機能

こうした定期的なアップデートから、僕は「お金をいただきました、はい終わり。じゃないですよ、いただいたお金はちゃんと機能開発に回しますよ」というJetBrains社の意志を感じます。

また、そこまで頻繁に利用するわけではないですが、動作がおかしいときはサポートに直接問い合わせることができます。
個人開発の機能拡張とかだと「issueがあふれかえって返信が全然返ってこない」とか、「作者が興味を失ってメンテが止まってしまった」みたいなことがあったりしますが、RubyMineは個人ではなく企業として対応してくれるので、いつでも迅速に応対してもらえます。

このように、たしかにお金を払う必要はあるけれど、

  • ツールが壊れる心配をせずに開発に集中できる
  • 定期的に新機能を追加してくれる
  • いざというときはサポートが助けてくれる

というメリットや安心感があるので、お金を払う価値は十分にあると思っています。

初心者の人にこそ勧めたいRubyMine

「RubyMineってなんかすごそうだけど、有料だし、そんな高機能なエディタは初心者の自分はとても使いこなせる自信がないので、私はもうしばらく無料の <<あのエディタ>> でいいや」と思っているそこのあなた!

むしろ、僕は初心者の人にこそRubyMineをお勧めしたいです。
というのも、RubyMineを使えばそれだけでスキルアップ・効率アップできるからです。
つまり、初心者が苦手だったり時間がかかったりする作業や調査も、RubyMineを使えばIDEの力でさくっと終わらせることができる、ということです。

RubyMineを利用することは、重労働時にパワードスーツを着るようなものですね。


Image: https://news.livedoor.com/article/detail/17510385/

実際、僕自身もRubyMineを使い始めてから、RubyやRuby on Railsに対する理解がぐっと深まった経験があります。

RubyMineの強力なアシストを受けながらコードを書けば、無料の <<あのエディタ>> を使い続けている周りの初心者グループから一足先に抜け出せるかもしれません。

もちろん、熟練者にとってもRubyMineのアシストは強力です。
僕はもうRubyMineなしだと戦闘力が20分の1に下がっちゃいます😅

初心者にお勧めの入門本

RubyMineをこれから使い始める方は、 ikuma-t さんが書かれたこちらのwebブックがお勧めです。
まずはこの本の内容に従って手を動かしながら、徐々にRubyMineに慣れていくのがいいと思います。

zenn.dev

コラム:だからといって、Vimを完全に卒業したわけではない

ちなみに僕はRails開発する際のメインエディタはVimからRubyMineに切り替えましたが、だからといってVimを完全に卒業したわけではありません。
むしろ今でも頻繁にVimを使っています。

ただし、Vimの用途はあくまで「テキストエディタ」です。
つまりプレーンテキストを編集するための便利ツールとしてのみ、Vimを使っています。

Railsをがっつり開発するときはRubyMine、それ以外の場面(プレーンテキストや小さなスクリプトの編集等)ではVim、というふうに使い分けています。

言い方を変えるというと、「Vimにプラグインを入れまくってRubyMine並みに高機能なエディタにする、というアプローチは取らないことに決めた」という感じです。

VimはVimで、さっと起動して、ぱぱっとテキストを編集できるから便利なんですよね。
大は小を兼ねないというか、Vimを封印してそういう作業も全部RubyMineでやれ、と言われたらそれはかえって不便だと思います。

まとめ

というわけで、このエントリではRubyMineの何がすごいのか、なぜお勧めなのか、というポイントを僕なりに語ってみました。
30日間は全機能を無料で使えるので、興味がある人は一度無料版を使ってみてください!
(僕はJetBrains社の回し者ではないですし、以下のリンクもアフィリエイトリンクとかではないですよw)

https://www.jetbrains.com/ja-jp/ruby/