JSP_Blog

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

40歳文系のRust

2019-10-08 12:02:23 | 日記
2年ほど前からプログラミング言語のひとつである「Rust」言語の勉強を始めました。

これまでシステム開発を生業としてきており、主にデータベースを使ったWEBの業務系アプリをJavaやPHPといった言語で作ってきました。
大人数でのプロジェクトでは、当然利用人口が多く、安定したフレームワークがあるような言語がプロジェクトで選択されるのが常ですので、必然とそのような言語を習得することになりました。

さてそのような中、今から新たにWEB業務アプリを開発するのに利用する言語は何にしますかね。
利用人口が世界最大で、オンライン画面・バッチ処理など幅広く使え、性能もよく、有償無償で騒がれましたが、やはり安定のJavaでしょうか。
オンライン画面開発の生産性が高い、スクリプト言語のPHPでしょうか。
性能はいまひとつだけど、画面だけでなく、サーバサイドでも同じ体系で使えるJavaScriptでしょうか。
Javaと互換性があるためJava資産が使え、Javaをより簡潔に記述できるようにし、Androidでも幅広く利用されるようになったKotlinでしょうか。
同じくJavaと互換性があり、関数型言語のScalaでしょうか。
基本的にお金を払って安定した開発環境(VisualStudio)やデータベース(SQLServer)を利用する、Microsoftにこの身をささげるC#でしょうか。
ポストJavaといわれ、WindowsやLinuxのネイティブ環境にクロスコンパイルできるので性能がよく、学習コストも低いGoでしょうか。

いずれもプロジェクトの特性によって、ベストな選択肢になり得ると思います。
ですが私はあえて、業務アプリに「Rust」を使えないかの研究をしています。
Rustは、C言語級に性能がよく安定し、並列処理が得意なのが特徴です。
なので、Javaなど以上に、とことん安定した高速性を提供できる業務アプリが作れるのではないかというところに期待しています。
反面、なかなかコンパイルは通らないため、学習コストがかなり高いといわれています。(安全性の維持をコードに、つまりプログラマ側に求められるため、コンパイル時によくエラーが出ます...直感的に記述しようとしても、コンパイラが許してくれません)
これが、Rustの利用人口が増えない理由のひとつともいわれてます。
ですが、用途をDB入出力・四則演算・ファイル操作・WEBからのリクエスト受付と応答などに絞れば、記述する内容は必然と似てきて、パターン化できると思われます。
特にWEB用途ですと、「actix-web」というRust言語のフレームワークが今流行りで、これも使い方を勉強しています。
コードのパターン化によって、コンパイルも通りやすくなると思います。
(画面UXをどうするかは、また別の話で...(JavaScriptフレームワークとか、SSRとかSPAとか))

あと、統合開発環境も他の言語ほどまだ整理されていません。
ですが、これも「Visual Studio Code」に「Rust(rls)」などのプラグインを導入することで、完全ではないものの、ある程度開発がしやすくなります。
それでも「Eclipse」「IntelliJ IDEA」「Visual Studio」に比べると、まだまだな使い勝手とは思います。

というところで、まだまだ書き足りないところですが、引き続きRustの学習と業務アプリを開発する基盤を作っていこうと思います。
40歳文系ですが.....
(酒)

moniswitch
  今お使いの離床センサーがそのまま使える!
  離床センサーのスイッチ入れ忘れ事故を防止するスマートスイッチ

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

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

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

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする