プラットフォームとフレームワークをおさらいしてみた。~新米中途エンジニアがカレーつくってるだけ
1. はじめに
冬至の候、皆様如何お過ごしでしょうか。エンジニアの靱(うつぼ)と申します。
w2には中途で入社し、前職ではデータ入力会社でキーパンチャーなどをやっておりました。20代半ばを過ぎてからVBAに触れ、調子に乗ってエンジニアを志し、ギリギリ20代の内にキャリアチェンジを果たしました、そう、ただの新人です。
お陰様で、w2では日々勉強させて頂きながら、実り多い生活を送っております。
ほんとは.NET 5でハブられたWeb Formsと代替手段としてのBlazorについて語ってみたかったのですが、記事を書く段階でめちゃくちゃ初歩的なこと(この記事の内容)で首を傾げた自分に気づき、自省の意もこめてこの内容とさせて頂きました。
ちなみに、.NETのゆくものくるものについてはALGYAN様の勉強会が大変参考になりましたのでご紹介致します。後半には「.NET 5でIoTやろうぜ」というお話もあるので、IoTに関心のある方も是非。
以下、本題です。
2. プラットフォームってなに
一言で言えば「利用環境」
サービスやシステム、アプリケーションなどなどを提供・カスタマイズ・運営するために必要な環境を指します。
WindowsやMac OSなどのOSを指すことが多い(と思う)言葉ですが、プラットフォームとはあくまで相対的な関係性を表す言葉です。その為、先ほど例に挙げたOSにも、OSにとってのプラットフォームが存在します。(OSにとってのプラットフォームはパソコン本体そのものですね)
一般的にソフトウェアは、対応しているプラットフォームが予め決まっています。Mac使いの方なら一度は出くわしたことがあるだろう現象、使いたいソフトがWindows版しかない問題。これこそ正に、「使いたいソフトに対応しているプラットフォームがWindowsしかない!」ということです。
ただ、勿論異なるプラットフォーム向けにそれぞれ開発されているソフトもわんさかありますし(スマホアプリのiPhone版・Android版なんか好例だと思います)、何なら単体で複数プラットフォームに対応している場合もあります。これらは「クロスプラットフォーム」「マルチプラットフォーム」と呼ばれます。
.NET 5はクロスプラットフォーム化を押し進めるところが一つポイントだったりします。
3. フレームワークってなんぞ
一言で言えば「枠組み」
アプリケーションにとっての枠、骨組みです。フレームワークという言葉自体、日本語訳すれば「骨組み」となりますね。個人的にはアプリケーションの「土台」と言ってしまった方がちょっとしっくりきます。
具体例としては、先ほどから話題に出している.NET 5もそうですし、JavaScriptだと流行りのReactやVue.jsなどがそうなります。靱は開発の勉強をしている時はRuby on Railsを使用していました。
例えば、ウェブアプリを開発したいなというときに、フレームワークを用いて作成すれば、開発者が何をせずとも取り合えずサンプルページだのトップページだのは表示させることが出来ます。これこそ骨組み・土台あってこそなんですよね。便利です。
ここに機能とかライブラリとかガンガン乗せて、アプリケーションは開発されていきます。
4. ちょっとよくわかんないからカレー作った
個人的に、ここまでの話は全てカレー作りに例えると分かり易いかなと思ったりします。
まず、プラットフォームがカレーを作る為の器、鍋とかフライパンですね。高機能なOSとかだとホッ〇クックとかかもしれません。開発を調理、利用を食事と置き換えると、利用者側にとってはお皿といっていいかもしれません。
要は、無いとこぼれます。液体ないし固体を受け止めるものがないと、カレーは作れませんし食べれませんね。
フレームワークはいわば市販のカレールーです。工程はさておき、とりあえず溶かせばカレーになるじゃないですか。この、具の入っていない状態が、フレームワーク上で何か作るときの初期画面ということです。
市販のカレールーにも色々種類がありますね。こ〇まろとかバ〇モントとかジャ〇カレーとか。同じようにフレームワークにも.NETですとか、Ruby on Railsですとか、Reactですとか、様々なものが存在していて、共存し、競い合っている感じかと。
その上に、ライブラリや機能といった各ご家庭の具を足していくのが「アプリケーション開発」ということになります。
5. おわりに
駆け出しエンジニアの基礎おさらい記事にお付き合い頂き、有難うございました。
次回はBlazor使ってWebアプリなのかデスクトップアプリなのかよくわからないものでも作成してみたいです!