Rubyが書ければ他言語も書ける。ピックアップホームテクノロジーRubyが書ければ他言語も書ける。2018.04.09>>エンジニア養成プログラムNo.1未経験からのITエンジニア転職ならテックエキスパート2018年に、誕生25周年を迎えた日本生まれのプログラミング言語「Ruby」。英語でコードを書いているような、直感的で生産性の高い文法が最大の魅力。楽しくプログラミングができることから、スタートアップ企業のエンジニアやプログラミング初心者の間で圧倒的な支持を集めている言語です。高評価を受けるRubyの文法は、他のプログラミング言語にも強く影響を与えています。文法のエッセンスを抽出した上で、Rubyには無い新たな要素を追加した新たなプログラミング言語も登場しています。それらの言語はRubyエンジニアには非常に馴染みやすく、かつスキルの幅を広げる意味で魅力的なものです。今回はそんなRubyライクな言語を5つ紹介します!Rubyの文法がわかれば、簡単なコードであればすぐに試し、実行する事ができます。気になる言語があればまずはインストールし、コードを書いてみてください。Goby」のYoutube動画を、記事内に追加しました。Railsのコアメンバーが生み出した新言語ElixirはErlangの文法をRubyライクで、分かりやすいものにアップデートしたプログラミング言語。Elixirの文法はRubyに極めて近いため、Rubyエンジニアにとっては、他の言語を学ぶより学習コストが小さいです。Elixirで本格的な開発を行うには、Erlangの知識も必要になります。Erlangはハイパフォーマンスでスケーラブルなアプリケーションの開発に用いられる機会が多く、落ちづらいシステムを作るのには最高の言語です。大量のユーザーが長時間に渡って使用し続け、かつユーザー数の継続的な増加が見込まれるような高負荷なアプリケーションの開発に適しています。日本ではドワンゴやLINEがサーバーサイドの開発に採用しています。Legends」のチャットシステムに使われています。Erlangは1986年に登場し、1998年にオープンソースとなりました。古い言語であり、文法には古めかしさや使い勝手の悪い部分があるのも事実です。独特の言語仕様の悪影響もあり、ベテランエンジニアが現役でコードを書き、若手が育ちづらい現状もあります。した現状を受け、Erlangの長所はそのままに、評価の高いRubyの文法を取り入れた新言語として開発されたのがElixirです。Railsのコアメンバーです。Elixirは非常に完成度の高いプログラミング言語です。RubyやPython、PHPといった言語に比べると知名度は低いですが「落ちにくいWebアプリ」を開発するなら、Elixirは採用すべき言語の代表格になりつつあると言えます。リアルタイムWebとの高い親和性Elixirの最大の美点は、リアルタイムWebとの親和性の高さです。リアルタイムWebとはtwitterやfacebookのように、情報がリアルタイムに更新され、ユーザー同士が交流を行うことを指します。したWebアプリケーションは実行速度の高速性と安定的な稼働が必須の要件です。Railsはスピーディーな開発ができる反面で、その重さが課題となっています。Valimが開発した新言語であるElixirに注目が集まっているのです。Erlangの仮想環境上で実行ElixirはErlangの仮想環境上で実行される言語です。Erlangの関数の呼び出しも可能です。Elixirのインストール方法Elixirの公式ウェブサイトにインストール方法が解説されています。elixir」を実行すれば、インストール完了です。Windowsの場合はインストーラーが用意されています。Discordでメイン言語の1つとして採用ElixirはRubyライクな文法の言語としては、最も普及が進んでいると言っても過言ではありません。Elixirの採用事例として、最も先進的なものの1つがDiscordです。Discordは端的に言うと「Webブラウザで軽量に動作する、SlackとSkypeのいいところ取りをしたVoIPアプリケーション」です。Slackのチャット機能に、ボイス通話機能を組み込んだものとイメージすると非常に分かりやすいです。同じような通話機能を持つアプリには、Skypeが存在します。Skypeに比べると、Discordは遥かに軽量な上、Slackと同等の直感的で分かりやすいグループ管理機能を持ちます。通話品質にも定評があり、Skypeから乗り換えるユーザーも少なくありません。Discordではメッセージ配信などの裏側の処理を、Elixirで開発しています。おすすめ書籍Elixirについて日本語で書かれた書籍は非常に少ないのが現状です。Thomas氏の「プログラミングElixir」はElixirのバイブルと言っても過言では無い網羅性を誇っています。Elixirの開発思想や「RubyとErlangの合いの子」とも言える文法の特徴を把握するには、最適な一冊です。プログラミングElixirCrystal(クリスタル)Rubyとの高い互換性CrystalはRubyとの高い互換性を保ちつつ、高速な処理を可能としたコンパイラ言語です。Cのように高速で、Rubyのように柔軟な言語と形容される機会が多い言語です。Rubyとの互換性の高さは、Elixir以上であり「Rubyのコードがそのまま動く!」と一時は噂になったほどです。実際にCrystalでは、Rubyのコードが動作することもあります。複雑なWebアプリケーションを、Rubyのコードをそのままペーストするだけで作る・・・のは不可能です。Rubyエンジニアであれば、Crystalを習得するのは容易です。2018年3月時点でCrystalは「アルファ版」であり、言語仕様のアップデートが続いています。Crystalのコンパイラは既に完全にCrystalで書かれており、Webアプリケーション開発向けのフレームワークとして「amber」も公開されています。アルファ版ということもありまだ大企業による導入事例は無く、ライブラリも充実しているとは言えないのが現状です。「静的型付けを持つRuby」として今後本格的なアップデートが行われていくと見られ、要注目の言語です。・公式ウェブサイト・GitHub静的型付けが行われるCrystalの特徴は動的型付け言語であるRubyの文法を持ちながら、静的型付けが可能なことです。静的型付けとは、そのプログラムが実行される前に全ての変数の型が決まっていることを指します。分かりやすく、端的に言うならば「プログラムが実行される前に、コンパイルでエラーを洗い出せる」ことです。動的型付け言語にはコンパイルという段階が存在せず、エラーの有無はプログラムの実行時に初めて確認されます。動的型付け言語のデメリットは、この実行時に「本当はコードに文法ミスが含まれているにも関わらず、見た目上は正しく動いてしまう」ケースがあることです。静的型付け言語ではコード内で全ての変数の型を宣言しておくのがルールです。書いたコードは、コンパイルを行います。コンパイルを行うことで、コードに含まれるエラーは実行前に洗い出されます。エラーの修正を経てコンパイルされ、完成したコードは非常に品質の高いものとなるのです。静的型付けを持つ言語の代表格は、Javaです。大企業のシステム開発など、開発スピード以上に安定的な動作が優先される案件ではこうした言語を使うのが望ましいです。CrystalはRubyの分かりやすさと、静的型付け言語の安定性を併せ持つ言語になり得る存在なのです。C言語、C++のライブラリの使用が可能CrystalではC言語とC++のライブラリをよびだせるという特徴があります。C言語とC++は共にコンパイラ言語であり、実行速度が高速なことで知られます。「主な処理は分かりやすい文法を持つCrystalで書きつつ、少しでも高速な処理を実現したい箇所はC言語のライブラリを使う」など、用途に応じて様々な活用ができます。実行速度が高速Crystalの処理は、Rubyに比べて非常に高速なことで知られます。下記のブログによれば、フィボナッチ数を求める計算処理でRuby、Crystal、C言語の実行スピードを比較したところCrysalとC言語はほぼ変わらない速度であったとのことです。・Ruby風の文法でかけるcrystalが面白そうだったので、ベンチマークしてみたCrystalすごいですね。これでRubyを包括した言語に育ってくれれば、私の要求をほぼすべて満たすんではないでしょうか?–出典:Ruby風の文法でかけるcrystalが面白そうだったので、ベンチマークしてみたおすすめ書籍Crystalはまだ発展途上の言語であり、残念ながら文法やサンプルコードがまとまった書籍は発刊されていないのが現状です。そのため日本語でCrystalを学ぶには、日本語版のドキュメントを参照するのが最適です。Crystalこの記事のハッシュタグ#Ruby#JavaScript#おすすめ書籍#おすすめツール#プログラミングCoffeeScript(コーヒースクリプト)JavaScriptをRubyライクに記述可能CoffeeScriptはRubyライクな文法でコードが書けるJavaScriptです。Rubyの他、PythonやHaskellに影響を受けた文法が特徴です。CoffeeScriptが一番最初に公開されたのは2009年。2010年12月に最初の安定版である1.0.0がリリースされました。Railsでもサポートされるなど学習資料と開発環境が共に充実しています。・公式ウェブサイトコンパイルすると素のJavaScriptが生成されるCoffeeScriptは「AltJS」の1つとして公開以来、大きな注目と支持を集めてきた言語です。AltJSとは、コンパイルすることでJavaScriptが生成される言語を指します。JavaScriptは非常に便利な言語で、用途が幅広く、複雑な環境構築も不要な反面「文法がいまいち整備されていない」「書きづらい」という声も大きな言語です。これにはブラウザだけで実行できるフロントエンドの言語がJavaScriptだけであるにも関わらず、Web業界の発展のスピードが著しく早く、JavaScriptに求められることが複雑化したという面もあります。JavaScriptはそもそもタイプ数が多く、コードが長くなりやすい言語でもあります。JavaScriptはその重要性と汎用性にも関わらず、苦手とする人が多い言語なのです。そこで台頭したのが、JavaScriptよりも直感的にコーディングできるAltJSです。AltJSを書くにはJavaScriptの最低限のスキルは必要です。開発の度に、毎回「素のJavaScriptを書く」必要は無いというのがAltJSを使うメリットです。RailsではCoffeeScriptをサポート。Pipelineという機能によって、自動的にコンパイルが行われます。シンプルで、短いコードが書けるvar宣言が不要JavaScriptが一部の開発者から敬遠される理由には、JavaScriptの文法ルールの面倒臭さがあります。その1つがvar宣言です。varとはJavaScriptで使う変数を宣言する際に必要な命令です。123;上のように書くと、numberという変数に123を代入したことになります。この「var」がCoffeeScriptでは不要です。123;上のコードでは、文末にセミコロンがついています。JavaScriptでは文末のセミコロンが必須です。CoffeeScriptではこのセミコロンも不要です。計算プログラムや時計、ゲーム、botの制作などを通じ、CoffeeScriptを習得できるのが「つくって覚えるCoffeeScript入門」です。プログラミングの初歩から解説するため、RubyやJavaScriptの未経験者でも安心して入門できます。未経験からIT業界に挑戦するポイントをまとめた資料を公開しています。以下のような疑問はありませんか。読むだけで転職が有利になる限定資料をダウンロードしてみてください。Opal(オパル)RubyのコードからJavaScriptにコンパイルOpalは100パーセントRubyで書かれたコードを、JavaScriptへと変換するコンパイラです。Opalを使うことで、RubyのコードをWebブラウザ上で実行できるのです。厳密にはOpalは「プログラミング言語」というより、上にも書いたように「コンパイラ」です。OpalはRubyのプログラムのため、Opalの利用にはRubyのインストールが必須です。RubyはMacであれば、プリインストールされています。Opalはgemを使うことで簡単にインストールできます。opal」のコマンドで可能です。・GitHubWebのフロントエンドをRubyで開発可能OpalはRubyのコードをJavaScriptに変換することで、ブラウザ上でRubyを実行します。一般的なエンジニアがJavaScriptで開発するフロントエンドのコードを、Rubyで書くことができるのです。DOM操作などJavaScriptでできることは、Opalを使えばRubyで書けます。Railsで使用する際は、gemでインストールできます。installを行います。‘opal-jquery’」で、jQueryライクなライブラリも入れられます。Reactも使用可能OpalでReactを使えるフレームワークに「Hyperloop」があります。Reactは、UIをコンポーネントと呼ばれる要素の組み合わせで構築。JSXと呼ばれる記法で、JavaScriptのコードの中にHTMLライクなコードを書きます。HTMLとjQueryの組み合わせでは後者が複雑化することが多いフロントエンドも、Reactを使えば分かりやすく、コードの再利用性が高い状態で開発できるのがメリットです。そんなReactを、Rubyで使えるのが「Hyperloop」です。Hyperloopのセットアップは以下のコードです。type=”text/ruby”>と指定するとRubyでコーディングが可能になります。Rubyで作るブラウザアプリケーション開発ガイド」のみです。Opalの日本語資料はまだまだ数少なく、Rubyでのフロントエンド開発に興味がある方は必携です。(技術書典シリーズ(NextPublishing))Goby(ゴービー)100パーセントGO言語で実装された、Rubyライクな言語Gobyは誕生したばかりの、Go実装によるRubyライクな言語です。Commitからまだ1年も経っておらず、バージョンは0.1.3。マイクロサービスの開発などに最適化された言語として開発が進められています。lo氏のRubykaigiでのプレゼンテーション動画。本格的な普及はこれからGobyは今回紹介した言語の中で、最も誕生から日が浅く、チュートリアルやドキュメントも未整備な状態が続いています。日本での普及もまだまだこれから。日本語資料の少なさは、日本の学習者にとってはやや不便なところです。Rubyの文法を生かしつつ、Goのパッケージも使用できる言語として、今はまだ「カルト的」な注目を浴びている段階です。他のRubyライクな言語を超える人気を得ることになるのかは、これからの開発の進捗次第です。まとめ5つのRubyライクなプログラミング言語を紹介しました。落ちにくいWebアプリを作るなら、Elixir。高速かつ静的型付けがある言語を選ぶなら、Crystal。AltJSで楽しくJavaScriptを書くなら、CoffeeScript。100パーセントRubyでフロントエンドを開発するなら、Opal。RubyとGoの合いの子に誰よりも早く触ってみたいなら、Goby。いずれも個性に溢れた言語ばかり。これらの優れた言語が、いずれもRubyから影響を強く受けているというのは驚くべきことです。Rubyエンジニアの方は、ぜひここで紹介した言語の中から気になるものをインストールしてみてください。プログラミング初心者の方は、まずはRubyのプログラミングを身につけてください。世界的に高く評価されるRubyの文法は、Elixirなど新世代の言語に引き継がれています。初心者にも覚えやすく、身につけておいて損はありません。エキスパート)ならやりきれますプログラミングを独学で学ぶことに限界を感じていませんか?効率よくプログラミングを学ぶなら、プロのメンター(講師)のもとでしっかりと教わることがおすすめ。エキスパート)ではすぐにメンターに質問できるから「わからない」を「わかる」に変えられて、プロとして通用する技術が身につきます。プログラミングを学ぶ同期がいるのも挫折しないポイントです。エキスパート)の強みやミッション、実績をまとめたサービス資料をぜひみてください。Seki音楽ライターとしてエイベックス、ビクター、トイズファクトリー等に所属するアーティストの取材を担当。Digital』の取材経験から、VR×音楽に関心を抱く。2017年よりテクノロジーに関するライティングを開始し、TECH::NOTEにジョイン。猫とウサギを飼っています。おすすめ記事パティシエから女性エンジニアに転職。TECH::EXPERT受講生が語る仕事とプログラミング学習を両立させるコツとは毎日新聞掲載の女性プログラマーは未経験からのエンジニア転職成功者!JapanTaxi採用担当者はどう見抜いた?年齢の壁を越えて~31歳の僕が、未経験からエンジニアになるための3ヶ月~農協からエンジニアへ!どこでも活躍できる人間になるために10週間でエンジニア転身に成功!建築からITへ。エンジニア紹介TECH::NOTEはこれらのサービスを運営する株式会社divのオウンドメディアです。弊社代表の真子がビジネス・人生に役立つことを話します!株式会社divで一緒に働きませんか?スタッフインタビューTECH::EXPERTの学習カリキュラムに込められた想いとは。記事で紹介している情報は更新時・公開時のものです。スクールやサービスの最新情報は、必ずその公式サイトをご確認ください。