JSP_Blog

ジェイエスピー社員が綴る日替わりブログ

注目されている言語「Rust」「Flutter」

2021-08-04 09:33:12 | 日記
エンジニア向けの転職サービス「Findy」を運営するファインディがシステムエンジニア約1,000人への調査で、「今後、習得・強化したいプログラミング言語」を聞いたところ、1位は「Rust」と「Go」だったというニュースが先日発表されていました。

【ITmedia NEWS】
https://www.itmedia.co.jp/news/articles/2108/02/news135.html

やっぱりそうなのだなーと思いました。
「Go」のよいところは、Pythonのような動的型付けができたり、比較的学習しやすい言語であるにも関わらず、WindowsやLinuxのOSネイティブで実行可能なバイナリにビルドすることで、高速に処理が可能なシステムを構築できる点にあると思います。
実務では利用したことないですが、データベースのCRUDが可能なWEBサーバを作ったことがあります。
短期間で開発したいが、性能もそこそこ求められるシステムを、できるだけにはいい選択肢になりそうです。
Googleが開発しており、長期的なメンテナンスも維持してもらえそうです。

次に「Rust」のよいところですが、メモリ安全でかつ「Go」以上に高速な処理が可能なアプリをビルドできる点でしょう。
「Go」と同様、WindowsやLinuxのOSネイティブで実行可能なバイナリにビルドされます。
「Go」は「Java」と同様にガーベージコレクションによりメモリ解放が行われ、多少なりとも性能に影響が出ますが、「Rust」はガーベージコレクションが行われません。
その代わりコンパイルできる条件がなかなか厳しく、コンパイル不要なスクリプト言語、メモリをあまり意識しなくて済む言語を利用されてきた方は、コンパイルエラーに悩まされることが多いかもしれません。コーディング段階でメモリ安全ではない処理をコンパイラが見つけてくれますので、うまくビルドできれば堅牢なアプリとして稼働することが期待できます。
WindowsやLinuxといった主要OSの開発にも、「Rust」を採用しようとしています。
以下外部サイトです。
Microsoftが「Rust」言語を導入、安全性以外の理由あり
Linuxカーネル開発の第2言語にRustを採用する試み、議論の意義とこれから

私はかれこれ4年くらい、実務外ですが「Rust」触り続けてきました。
「Go」と同じく、データベースのCRUDが可能なWEBサーバの開発をしています。
だいたいWEBサーバの開発となると何かフレームワークを使われると思いますが、触り始め当初は「Iron」「rocket」というものが主流になりつつあるところでした。
時は流れ、今や「Iron」は開発が止まり、「actix web」が頭角を現してきました。私もそれを使っています。「rocket」はまだ活発に開発が継続しているようですね。
ともかく、「Rust」は学習やコーディングに時間がかかろうとも、性能やメモリ安全を徹底的に追及したシステムを構築する場合に採用するとよさそうです。

さて、上記の【ITmedia NEWS】を再度見てみると、「Flutter」も注目度が高いことがわかります。
「Flutter」はDart言語によって書かれたコードで、iOSとAndroidといったモバイルアプリのネイティブ環境で動作するアプリを生成することができます。
今年2021年3月にリリースされた2.0では、そのコードでWEBアプリも生成できるようになりました。
ちょうどその直後のタイミングで、当社で「Flutter」を使ってモバイルアプリを開発しました。
そのプロジェクトでは私はただの調整役で、チームメンバーの皆さんに「Flutterでお願いします!」といって作ってもらいました。
恐らく当社では「Flutter」は初めてということもあり、さらに初めての「Google Firebase」も採用したので、2か月ほどは申し訳なくもチームの皆さんには大変苦労をかけてしまいました.....
が、おかげ様でそれぞれの技術を習得し、想定どおりiOSとAndroidのアプリを1ソースコードで生成することができました。
ちなみに、この2か月(2021年5~6月あたり)の苦労の中には「Flutter」や「Google Firebase」のバージョンアップが盛んにおこなわれ、この間書いたコードが今日いきなり動かなくなる(メソッドの引数などの仕様が変わる)といった事態に何度も見舞われたことがあったようです。
これは....今後も要注意ですね.....


ここまで、私も注目している「Go」「Rust」「Flutter」を超簡単に見てきました。
共通しているのは、クロスコンパイル可能で性能もよいという点と思います。
コンパイル不要のスクリプト言語である「JavaScript」や「Python」もよく使われている言語ではありますが、質実剛健なシステム開発には、これらの言語は使えるようになっておくとよさそうです。
(酒)

シンプル入退室管理
  限りなくシンプルなタイムカードシステム

WhitePlug
  手のひらサイズのLinuxサーバ

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

moni-stock
  一括スキャンで入出庫・棚卸作業にかかる時間を短縮
  お客様も現場も笑顔にする在庫管理システム

Smart mat
  重さセンサIoTで在庫管理に革新を。
  自動発注&メールアラートで欠品・発注ミスを防ぎます

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(moniシリーズ)、それに農業も手がけるIT企業
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« きらきら光る お空の星よ | トップ | 猫の尊敬するところ »
最新の画像もっと見る

コメントを投稿

日記」カテゴリの最新記事