2017年3月17日金曜日

2017年版 Ruby(Rails) vs Python(Django) vs Node.js vs Go言語 vs ServerSideSwift

2017年版
■Ruby(Rails)
□メリット
無料のオンライン学習がフレームワーク含めて充実している(外国語版含む)。
比較的覚えやすい。
プログラムしていて楽しい。
メンテナンス性が比較的良い。
Amazonにフレームワーク含めて本が沢山あります。
□デメリット
Ruby単体に比べ、Railsフレームワークをマスターするには、少し難しくなる。
一万同時アクセス問題、世界中からの同時アクセスに向かない処理速度の遅い言語なので、イントラネットなどアクセス範囲の狭い(少ない)場合に限られる。

■Python(Django)
□メリット
Google、Youtube、NASA、JAXAなどでも採用されているので信頼性が高い。
無料のオンライン学習は、Python単体なら充実している・
比較的覚えやすい。
コードの視認性が良い。
チームで開発して他人が開発しても同じ様な非個性的なソースコードが出来上がりやすい。
自分で数年後にでもメンテナンスがしやすい。
AmazonでPython単体の本は割とあります。

□デメリット
AmazonでDjangoの本が非常に少ないです。
まだ、Djangoフレームワークの無料オンライン学習は無い。
Python2のソースコードがまだ多く残っており、Python3に完全に移行できていないので、
Python2とPython3混在する環境はあまり良くない。
現時点では、処理速度はそれほど高速でないので一万同時アクセスを実現するにはサーバーの台数が必要になります。解決策としては以下の内容を参考までにどうぞ。
http://codezine.jp/article/detail/9918

Google、PythonのコードをGo言語に変換する「Grumpy」を公開


■Go言語
□メリット
一万同時アクセス問題に対応している最速のWEB言語である。
比較的覚えやすい。
シンプルである。
Go言語単体ならオンライン学習のスキルチェックはPaizaで充実しています。
AmazonでGo言語単体の本は割とあります。

□デメリット
機能を削りすぎてる感じがある。
Go言語のフレームワークを含めた無料のオンライン学習はまだありません。
AmazonでGo言語のフレームワークの本をまだ見かけません。(探し方が足りないかも知れません。)

■Server Side Swift
□メリット
iPhoenとAndroidのスマホの業界標準の共通の開発言語となりました。
SwiftのスキルチェックはPaizaにあるようです。
AmazonでSwift単体の本は沢山あります。

□デメリット
Server Side Swiftの無料オンライン学習は、まだありません。
Amazonの本のServer Side Switの本は英語版しかありませんでした。(早く翻訳版が出ると良いですね。)
サーバーサイドWEB言語としては、まだ速度がそれほど早くない。
解決策として将来、SwiftをGo言語上で動作させる様に移植されるかも知れません。
http://codezine.jp/article/detail/9918

Google、PythonのコードをGo言語に変換する「Grumpy」を公開



■Node.js
□メリット
フロントエンドとバックエンドがJavaScriptでコーディング出来る。
一万同時アクセスに対応している(但し、Go言語の方が優れている。)
Amazonで本が充実しています。

□デメリット
引用元
http://qiita.com/hshimo/items/156249ec8e6dbf75205a
以下に上げたものも、解決策があるものが多いです。

はじめてのNode.js (2013年3月26日初版)

  • どこか1か所CPUリソースを多く消費するような重い処理が入ると、全体のパフォーマンスが低下する
  • マルチコア/マルチCPU環境を十分に生かすことができない
  • コールバックを多用するためにコードが複雑になる

merittyの記事 (2012年12年23日)

  • JavaScriptの限界、オブジェクト指向が不完全
  • マルチコアサーバで性能を十分に発揮できない
  • 文法エラーが、サーバーの停止を引き起こす
  • あるリクエストに問題があると、他のリクエストをブロックする

ZEALOT社員の方 (2012年10月29日)

  • まだ商用で使うには不安定な部分がある。
  • 開発者が少ない。 : JavaScript開発者がNode.jsの開発者ではない。
  • メジャーでもない。
  • 非同期処理なのでエラーハンドリングが難しい。
  • 基本的にシングルプロセスなのでどこかでシステムエラーが発生するとサーバダウン。
  • Hot deployができない。

GREE CTO藤本さん (2012年8月)

  1. ひたすらすごい勢いでバージョンアップしているので安定しない。コストを払ってついていく覚悟を持って取り組んでいる。
  2. メモリリークがあるので、サーバを起動しっぱなしにするとメモリが食いつぶされる。
  3. コードをデプロイしても再起動しないと読み込まれない。
解決策は、上記リンク先に書いてあります。

ーーーーーーーーーーーーーーーーーーー
プログラマーからレッスンを受ける場合は、Cloud9とSlackを同時起動して、先生のe-mailアドレスを入力して招待して利用する方法がありますが、
Cloud9には、Node.js、Ruby(Rails) 、Python(Django) 、Go言語(対応しているが設定が必要)。
但し、ServerSideSwiftは未対応の様です。

0 コメント:

コメントを投稿