Infoma!!
情報系大学生が最強のオサレプログラマを目指す
プログラミング

【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【中編】

【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【中編】

こんにちは、mochi(@osaremochi)です!

今回も2018年現在世の中に普及しているプログラミング言語やフレームワークをまとめてみたいと思います。

この記事は前回の記事の続きになります!良ければこちらもご覧ください(´ー`)

【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【前編】
【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【前編】こんにちは、mochi(@osaremochi)です! 日頃twitterやQiitaを見ていると分からない言語やフレームワークが...

今回も引き続きNode.jsってなんやねんReactってなんやねんというような方のために解説を行っていきます(´◉◞౪◟◉)

それでは続き行ってみましょう!!

Java(ジャバ)

イメージ画像

ジャバジャバ。静的型付けを行う言語のひとつです。C, C++を元に開発され、「どのようなOSやプラットフォームでも動く」を売りに世界イチの使用率を誇ります。

Java仮想マシンというものを利用してコンパイルを行っていますね。

最近だとJavaベースの言語も多かったり…(´ー`)

かなり古めの言語なので、参考資料が多く、学習が進めやすい点はGooooodですね。

金融関係のプログラムによく使われるほか、求人数も全言語中最多なので、仕事としてプログラマをやるのであれば覚えていて損はありません。

2018年版プログラミング言語人気ランキング堂々の1位です。最強ですね(*’ω’*)

 

Kotlin(コトリン)

イメージ画像

ひよこ的風情。Javaベースの静的型付けオブジェクト指向言語です。Javaでは採用されていない型推論や、演算子オーバーロードなどの機能があります。

ざっくりいえばJavaの進化系みたいな感じですね!

Androidの公式開発言語であり、オープンソースで開発が行われています。Android関連の開発がしたいなら必須級ですね(´ー`)

Javaプログラムとの完全互換性を謳っていて、Javaのコード内にKotlinを書き、その後にJavaを書くといった芸当も可能です。

Javaに足りなかった部分を補っていたり、導入コストが低いという点で人気が高いようですね。

ちなみに名前の由来はバルト海のコトリン島です。なぜ…??

 

Scala(スカラ)

プログラミング風景

名前の由来はScalable Languageの略ですね(´ー`)スケーラブルというのは、「同じ考え方で小さいプログラムも大きなプログラムも記述可能」という意味です。

Javaの仮想マシン上で動作する言語で、オブジェクト指向言語と関数型言語、両方の特徴を持っています。

こんな感じで複数の考え方を持っていることをマルチパラダイムといいます。

全関数をオブジェクトとして扱うことができ、静的型付けをもち、Javaのライブラリを使用でき、XMLをプログラムに直接記述でき…という全部載せ具合。盛り盛りです。

非同期プログラミング、並行・分散プログラミングという最近流行の技術を実現するのに適した機能を持っています。良い感じですね(*’ω’*)

これからシェアが広まっていきそうな言語です。

 

Servlet/JSP(サーブレット/ジェイエスピー)

サーバーサイドでJavaを動かすために定められてJavaプログラムの標準、およびそのプログラムのことです。お前PHPちゃうんけぇ!

厳密には、上の定義はServletのことを指しており、HTML内に直接Javaを書ける技術のことをJSPといいます。

フロントエンドもサーバーサイドも全部Java…Java…Java…

Javaの伝道者になりたい方はぜひ勉強してみてください。

 

JavaScript(ジャバスクリプト)

イメージ画像

名前がややこしすぎるんだよ!!(‘Д’)

こんな名前ですがJavaとの関連性はありません。リリース当初人気が高かったJavaにあやかってつけられたらしいですが、現在ではJavaScriptのほうが言語としてのニーズは高いです。

様々な環境で動作するインタプリンタ型の言語です。フロントエンド(サーバーではなくて、ユーザーのデバイス側)で動作する言語です。

主にWebページに動きを付けるために使用されます。ボタンが押されるとこんな処理をして、スクロールしたらこんなアニメーションを出して,というのを実装したり、日付を自動取得して表現したりですね。

もとのままのJavaScriptは少し扱いづらいので、様々なフレームワークがリリースされています。そちらを触ることのほうが多いでしょう。

JavaScriptライブラリの隆盛は激しいので、様々な宗派が存在します…案件や獲りたい仕事によって、自分がしっくり来たものを選びましょう(*’ω’*)とはいえ多すぎィ!

記法はPythonですが変数の宣言はJavaに似ています。プログラミングの初歩としてもかなりいい言語だと思います。

 

TypeScript(タイプスクリプト)

アイキャッチ画像

マイクロソフトが開発しているJavaScriptの拡張言語です。JavaScriptのSyntactic Sugar(とっつきやすくしたもの)ともいわれます(´ー`)

JavaScriptに対して、静的型付けやクラスの簡潔な記述ができるようになっています。

変数になんでもかんでも値を入れることができなくなるので、JavaScriptより一見めんどくさそうに見えますが、複数人での開発の際にはバグの原因を未然につぶすことができるので、結果的に保守性が向上します。

また、C#と同じ開発者が作成しているので言語系統が似ています。なので、TypeScriptの経験がそのままサーバーサイドに活きる、ということもあるみたいです。

Angularに使用されており、運用もしやすく、さらにJavaScriptの知識があれば使用できるため、非常に使いやすい言語といえます。

 

AngularJS(アンギュラー ジェイエス)

Googleが主導して開発しているJavaScriptフレームワークです。1.x系と2.x系で仕様が全然違うので、今回は1.x系をこちらで、2.x系以降を下の項(Angular)で解説しています。JSがついているほうが古いほうですね。

HTML文書内に簡単に構造を記述するだけで、複雑な動作を実装することができます。

また、ユーザーとWebページ側で双方向的に挙動を制御できる双方向バインディングという機能があります。

また、Webアプリケーションを効率的に作成することができます。何でもできちゃいますね(*’ω’*)

運営保守目的でAngularJSを勉強するのはアリですが、かなり勝手が違います。

AngularJS系とAngular系に互換性はないので、これから勉強していくのであればAngular系を選ぶべきだと思います。

 

Angular(アンギュラー)

イメージ画像

以前はAngular2のようにバージョン付きの名前で呼ばれていましたが、いまではAngularのように名前だけが正式名称です。どうしてJS系は名前がややこしくなるんだ…(‘Д’)

TypeScriptベースで実装されています。今ではJavaScript3大フレームワークのうちの一つになってますね(´ー`)

AngularJSの基本理念である簡潔な実装や優れた保守性などは引き継いだまま、様々なJavaScriptライブラリを取り入れ、さらに利便性を向上させています。

Angularのメリットとしては、Webページやアプリケーション作成の環境がAngularのみでほぼ完結するという点ですね。

ほかにいろいろなライブラリの導入を検討したり、構造を考える必要が少なく、Angularで作り上げることができます。

シングルページアプリケーションを創るならこれって感じですね(*’ω’*)

 

React.js(リアクト ジェイエス)

例示画像

主にページのUIを作成するのに向いているJavaScriptライブラリです。HTML内に簡単に書くだけで、サクッと電卓を実装できたりします。

仮想DOMというものをレンダリングに使用しており、従来のフレームワーク(主にjQuery)と比較して大幅に描画パフォーマンスを向上させることができます。

Reactではまずブラウザから情報を受け取った後、その情報をもとにすぐにページを再描画するのではなく、仮想DOMという構造体を作成し、その構造体と現在表示しているページの差分のみを描画します。

ブラウザでの画面表示という処理は非常に重たいものなので、これで速度が速まるという訳ですね。

現在主流のJavaScriptフレームワークには基本的に実装されていますが、Reactがその先駆けのような感じです。

Facebookが作成しているライブラリで、FacebookのUIやGithub産のエディタであるatomにも使用されています。

windowsだと結構環境構築が大変だったりするんですが、一度勉強してしまえば様々なアプリケーションやWebページに使えちゃうそのエコさも魅力ですね。

詳しくはこちらの記事が詳しいです(´ー`)

 

Vue.js(ビュー ジェイエス)

AngularやReact.jsと同じく、仮想DOMを有するJavaScriptのプログレッシブフレームワークです。必要なUIに合わせてちょっとずつ機能を盛っていけるって感じですね。

簡単なシングルページアプリケーションから、高機能なWebアプリまでさまざまなものを構築することができます。

Vue.js自体がシンプルな構成になっているので、ほかのさまざまなライブラリと組み合わせて使用できるのが大きな魅力ですね(´ー`)

ちょくちょくReactとVueで宗教戦争が起きているのを見ることができます(´◉◞౪◟◉)

 

jQuery(ジェイ クエリー)

例示画像

かつてJavaScriptライブラリといえばこれのことを指す、といっていたくらいに有名なライブラリです。

リッチなUIを簡単に実装できることから、非常に多くのシェアを獲得しました。いまでもjQueryが使われているサイトは多いです。

ただ、これからもjQueryが使われていくかというと疑問符が付くので、新しくJavaScriptライブラリを勉強するのであれば、ほかのモダンなライブラリやフレームワークを使用したほうがいいかなと思います。

簡単なページであればjQueryでサクッと実装できますね(´ー`)

また、IE6などのいまやレガシーと化したブラウザでも動作させることができるので、広範な動作環境を求めるなら選択肢に入ってくると思います!

愛好家の多いライブラリなので、参考資料が沢山あるのもうれしいですね(´ー`)

 

Node.js(ノード ジェイエス)

イメージ画像

JavaScriptは基本的にフロントエンドで動く言語ですが、なんとNode.jsではサーバーサイドでJavaScriptを使うことができます!JavaScript最強か?

厳密にいえばNode.jsはライブラリやフレームワークではなく、JavaScriptアプリケーションのプラットフォームです。要はJavaScriptの実行環境ですね。

シングルスレッドを採用しているため、サーバーサイドでのメモリ使用量が少なく、非同期処理を用いることで、例えば大量のユーザーが同時に接続してきた場合にも問題なく処理を行うことができます。

また、イベント駆動型のプログラムに適していて、外部からの接続があったときに処理をして結果を返すというサーバー側で必要な処理を簡潔に記述できます。

Node.jsを使用するときは、Node.jsのライブラリやフレームワークも使用しますが、ここでは割愛します。

フロントエンドはJavaScriptで記述し、サーバーサイドをNode.jsで記述することによって、処理を共通にするなど効率化を図ることができます。

サーバーサイドでもJSを使いたい方はぜひ勉強してみてください(´◉◞౪◟◉)

 

Vanilla JS(バニラ ジェイエス)

例示画像

jQueryよりも有名!!!!!!!!しかも超軽量!!!!!!

あらゆるJavaScriptライブラリの根源であり、もっとも混じりッ気のない純粋さ!!!!

しかもほかのライブラリができることは何でもできます!!!!つまり最強!!!!!!!!

…はい。Vanillaは「飾りつけが無い」的な意味ですね。要はただのJavaScriptです。

制作者の方いわく「簡単にできるようなことはjQuery等のライブラリじゃなくて、JavaScriptをそのまま書いたほうがいいよ」ということみたいです。

みんなもVanilla JS書こうぜ!!!!

 

まだまだあるよプログラミング言語・フレームワーク

今回はこのくらいですね(´ー`)

JavaとJavaScript系の言語・フレームワークに終始しましたが、かなりの量があったと思います。

ぜひ自分の気に入りそうなものを選んでみてください(*’ω’*)

これでやっと3分の2が終わりました!次回で最後になりますので、お楽しみに!!(´◉◞౪◟◉)

前回の記事はこちらから!

【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【前編】
【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【前編】こんにちは、mochi(@osaremochi)です! 日頃twitterやQiitaを見ていると分からない言語やフレームワークが...
Blog Hacks

現在”ガチで稼ぎたい人しか受けてはいけないブログ講座 Blog Hacks”を受講中です!ブログの作り方や戦略だけでなく、Webマーケティングライティング心理学まで幅広い知識と、細かな記事添削、アドバイスが受けられます(´ー`)

私がたったの1記事で約5万円の収益をあげためちゃくちゃ凄い講座です!!興味のある方はレビュー記事を書いてますので、こちらの体験記事か、公式ページをどうぞ!!

【初心者が20万越え!?】大学生でもBlog Hacksで稼げる!【必見】

Blog Hacks公式ページ