1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

フロントエンド言語の概要

Posted at

最近よくフロント言語を触ることが多いので、ここで自分の知識を共有したいと思います。

まず、Javascriptには色々なフレームワークがあり、開発用途によって使用するフレームワークが違っていること。

#そもそもフレームワークって何?

 一言でいうとアプリケーションの骨格。

 JavascriptでWedサービスやアプリを開発する上で、サーバーとの連携、ルーティング、データの送受信など、全体的な処理の構造化をしたものみたいです。

 イメージすると車の骨組みがJavascriptでそれに基づいて色々な種類の車を作って行く過程がフレームワークと解釈しても良いと思います。

話を下に戻すと、会社は目的に応じてフレームワークを使い分けているとのこと
(以前は業務でReactを使用していました)

そこで一旦、その一般的なフレームワークやライブラリーの特徴について簡単に述べようと思います

#React
 ユーザーインターフェースを構築するためのライブラリーで、MVCのViewに特化しており、状態を保持するUIコンポーネントを簡単に作成可能。Reactは仮想DOMを実装した最初のライブラリーで、メモリ内の構造とページとの差異を演算することで、ページを効率的に更新できるようです。

###長所
・効率がいい
・高速、柔軟性が高い
・シンプルなコンポーネントモデル
・ドキュメントとオンラインリソースが充実している。
・サーバーサイドでの描画も可能
・現在人気が高く、急成長している

個人的にはかなり使いやすい感じがします。

###短所
・新たな考え方と構文を学ぶ必要がある
・ビルドツールが必要不可欠
・モデルとコントローラーを提供するほかのライブラリーやフレームワークが必要
・DOMを操作するコードやほかのライブラリーと共存できない可能性がある

#Angular.js

AngularはHTMLを双方向データバインディングによって拡張し、DOM操作をアプリケーションロジックから分離しています。
フロント言語で個人的にAngularが好きです笑

※データバインディングとは
→データと対象を結びつけ、データあるいは対象の変更を暗示的にもう一方の変更へ反映すること、それを実現する仕組みのこと

種類は1.Xと2.x(現在は4.x)と時が経つにつれ使用する用途が広くなっているみたいです。

###AngularJS 1.x:長所
・大企業が採用している人気のフレームワーク
・AngularのみでモダンなWedアプリケーションが作成可能
・「標準の」MEANスタック(MongoDB、Express.JS、AngularJS、NodeJS)の一部なので、数多くの記事やチュートリアルが存在

###AngularJS 1.x:短所
・他の選択肢に比べて学習コストが高い
 →所感として言語仕様が複雑な感じです
・コードベースが大きい
・Angular 2.xにアップグレードできない

#AngularJS 2.x ※現在4.xです
2016年9月にリリースされました。完全に書き直され、コンポーネントをベースにしたモジュール方式を導入しています。TypeScript(JavaScriptにコンパイルされる)で作られています。 バージョン1とは根本的に違うことから互換性なし。

###AngularJS 2.x:長所
・モダンWebアプリケーションを構築できる
・Angular 2+のチュートリアルの数は(前のバージョンと比べて)少ないが、
それでもMEANスタックの一部である

###AngularJS 2.x:短所
・競合する選択肢に比べて学習コストが高い
・コードベースが大きい
・Angular 1.xからアップグレードできない
・Angular 2.xは1.xに比べて普及速度が遅い

#TypeScript
JavaScript超進化版の言語で静的型付けのクラスベースオブジェクト指向言語
C#やJavaなどの静的型付け言語に詳しい開発者に利益をもたらす

最近はかなりホットな言語ですね

#Vue.js
ユーザーインターフェースを作るための軽量で先進的なフレームワークです。Reactのような仮想DOMを使ったView層がフレームワークの核で、他のライブラリーとの結合が可能。シングルページアプリケーションを作ることができます。

追加ツールを使えば、ルーティング、状態管理、アニメーションを実装できます。

###長所
・急速に普及中で人気も上がっている
・導入が簡単で、レベルの高い開発者にも満足度が高い
・依存オブジェクトが少なく、高性能

###短所:
・比較的新しいプロジェクトのため、リスクは大きい
・他の選択肢と比べて、リソースが少ない

#Backbone.js
 サーバーサイドにフレームワークのMVC構造を、クライアントサイドで利用できるようにしたフレームワーク
 同じ開発者によって作られたUnderscore.jsが唯一の依存オブジェクトです

※Backbone.jsは他のプロジェクトと統合できるため、位置付けはライブラリーみたいです

###長所
・小さく、軽量で、比較的単純
・HTMLにロジックを追加しない
・Trello、WordPress.com、LinkedIn、Grouponなど数多くのアプリケーションで採用

###短所
・AngularJSなどの競合する選択肢と比べて、抽象化のレベルが低い(利点にもなる)
・データバインディングなどの機能を実装するためにはコンポーネントを追加する必要がある
・新しいフレームワークはMVCアーキテクチャーではない別の手法に移行している

他にも多くのライブラリーやフレームワークがあるみたいなので調べてみたらよいかもしれません

#そもそもなぜJavascriptの需要が高いの?

主に理由は3つあるみたいです

1.Wed系のフロント開発において世界最高基準のポジションにあること
→JavaScriptを利用したWebサイトやWebサービスは現代のトレンドとなっている

2.あらゆるWedアプリに活用されているため
→JavaScriptはWebアプリケーション開発において、フロントとサーバーサイド双方に活用できる汎用性の高い言語です
 Ruby、PHP、Javaといった他の言語と組み合わせての開発も可能で、JavaScriptのみでもWebアプリケーションのサーバーサイドを開発することができるためです

3.開発環境も充実している

この前置きを踏まえて、今回新たに学んだ事を書こうと思います。

#新しいJavascriptのフレームワークMa_gician

どういうもの?
→新しいアーキテクチャで作られた JavaScipt フロントエンド フレームワーク

どこで見られるの?
→ソースコードと正式名称は未公開です。

キャッチコピー
→世界中のフロントエンダーの残業時間を減らす

当初は世界中のフロントエンダーを jQuery の記法から解放することが目的で作成されたみたいです
(僕もあまりjQueryは好きではないので少し賛成)

つまり.....
・コンポーネントを作ると、コード料が減る
・コード料が減れば、バグの可能性も減る
→作業時間の短縮
・作業時間が減れば、残業時間も減る!

##最後にJavaScript関数型プログラミングをよんだ感想
次は以下の本を読んだかん感想でした。

・思ったより良書であり実戦向きとなっている。
・初心者向けではなく中級者向けの本です。

個人的には良い本だと思います。(結構難しかったです....)

本の名前は「JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ」
ぜひ、読んでみてください

##結論
まとめてみて思ったことは、Javascriptはかなり奥が深いです。

頑張って僕も時間をかけて学習します。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?