過去1〜2年間で、プログラミングの分野では、Cは、JAVAは、これらの過去数年間、世界中で人気がある場合、Tiobeリストをつかんで、今日のモバイル分野でobjetive-Cの出現の時代にもJavaに大きな影響を引き起こし、大変革の到来を告げています。プログラミングの分野では、"ワントリックポニー "のようなものはありません。開発者は常にさまざまな分野で適切な****言語を探しているからです。
例えば、erlangは並列処理に、PHPはWEBに、Rは統計に、C#はインターフェイスに適用されます、このように、芸術には専門分野があります。優れたプログラマーは何千もの言語を気にしません、プログラミング技術の発展が向けられる分野をより気にします。
そこでこの記事では、現在さまざまな分野で人気のある4つの主要なプログラミング言語と、さまざまな分野やさまざまな場面での****プラクティスを分析します。
エルユーエー
Cocos2dxと組み合わせたゲーム開発
Cocos2d-xチームがLuaバインディングを強力にサポートしたことで、モバイル開発者の注目を集めました。ゲーム開発に関わるユーザーインターフェイスのインタラクション、シーン管理、キャラクターロジックをすべてLuaで行うことができます。実際、100%LuaのゲームエンジンであるCorona SDKと比較して、cocos2d-x+Luaは明らかなパフォーマンス上の利点があるだけでなく、スケーラビリティの制限もありません。
1.実行効率:様々なテストにおいて、LuaのパフォーマンスはJavaScriptよりもはるかに高速です。JITをサポートしていないモバイルデバイスの場合、JavaScriptに対するLuaのパフォーマンス優位性はさらに明白です。
2.セキュリティ:cocos2d-xでは、Luaの実行にLuaJITを使用しているため、Luaコードをバイトコードにコンパイルし、ゲームにパッケージすることが可能です。LuaJITのバイトコードは高度に最適化されているため、デコンパイルツールはまだありません。また、JSでもバイトコードは使えますが、現状ではLuaJITのセキュリティには及びません。
3.C/C++とのインタラクション:Luaは元々組み込み言語として設計されたため、C/C++とのインタラクションは当然容易ですが、JSは不利です。
4.Java/Objective-Cとのインタラクション:quick-cocos2d-xが提供するluaoc/luajモジュールや、wax、luajavaなどのオープンソースプロジェクトにより、C/C++レイヤーをバイパスしてLuaとJava/Objcのインタラクションを実現できます。これは、サードパーティのSDKをゲームの配布段階で統合する際に、大きな時間節約となる利点です!
もちろん、cocos2d-xはJSを推しています。JSはモバイルとデスクトップの垣根を越えて、どのプラットフォームでも動作するプログラム群を実現できるからです。ただ、個人的にはHTML5が発展している現状では、体験重視のゲームではHTML5には時間がかかると思っています。
つまり、現在の市場状況から見れば、Luaの方が明らかに合理的な選択なのです。成熟しており、安全で、業界大手の多くが使用しています。
パイソン
ウェブバックエンド、サーバー開発
糊付け言語として知られるpythonは、コンパイルされたCプログラムによって拡張することができ、開発者が日常的に行っていることを含め、実世界の幅広いタスクを実行することができます。他のコンポーネントをコンパイルし、スタンドアロンプログラムを実装するためのツールとして、様々な分野で一般的に使用されています。実際、汎用言語であるPythonの役割はほぼ無限であり、Webやゲーム開発からロボット工学やスペースシャトルの制御まで、あらゆる文脈でPythonを適用することができます。
多くの開発者が気に入っているのは、Pythonコードの読みやすさです。明快でシンプルなコーディングはプログラミング時間を短縮します。オブジェクト指向、命令型、関数型アプリケーションの両方、また自動メモリ管理もPythonの特徴です。
そこで、ウェブ上でのPythonの利点のいくつかに基づいて、いくつかの点を要約します:
2.Web2py、Web.py、Zope2、Pyramid、Djangoなど、主流のWebオープンソースフレームワークが豊富にあります。
3.Mac、Linux、Windowsなどをサポートするクロスプラットフォーム機能。
4.Pythonは利用可能なライブラリやモジュールが比較的多く、とても便利です。
5.Pythonは、バックエンド、サーバー、Webアプリケーション開発など、幅広い用途があります。
6.Pythonコミュニティはとても活発で、コミュニティで必要なすべての答えを見つけることができ、また多くの素晴らしいプロモーションを得ることができます。
R言語
統計分析***、バーなし
A: R言語分析用のデータソースが必要ですか?
B:Rを素早く上手に使うには?
要約すると
要は、通常のビジネスでは大げさにやる必要はないということです。コーディングの勉強をする時間さえあれば、普通のソフトで十分なのですが、自分でデータモデルを書いたり、分析したり、自分の前提を予測したりすることも必要だと感じています。これは本当に非常にクールなことですが、前提の使用は、上記の2つの問題を解決する必要性であり、あなたが良い仕事をしたい場合も、R自体を学ぶにはかなり忍耐が必要です。
実際、R言語の実際の意義は、それらの商用ソフトウェアの内部コードのように回避することであり、計算や分析のルールは、内部の関係者にのみ知られており、一般的なユーザーやアナリストは知りません公開されていません。Rの目的は、統計やグラフを計算したい任意の自由な計算の前提の下でデータを持つことであり、実際には、それはまた、統計ベクトルとして切断平均を取ることによって得ることができない問題のいくつかの固定された商業分析を回避することができ、不明確な統計解析手法の問題を回避するための良い方法することができます。
Node.js
ウェブサイトのフロントエンドおよびバックエンド開発
まず第一に、ノードのオーバーヘッドは、新しいhttp接続を開くには、大規模な関数呼び出しに相当する、hpの新しいスレッドと比較すると、簡単にメモリとコンテキストスイッチングの長い時間のMBを要することができる、それは非常に小さい非常に小さいされています。したがって、deは非常に並行アプリケーションの誕生のために生まれた、設計の初めに巨大な使命を運びます。そして、この極端な追求のコード効率とデザインの美しさ、理解するための学習の難しさを強化することであり、コストでプログラミング能力のテスト。もしあなたが私のように、コードの綺麗さ、○○○の追求を求めるのであれば、デを選択するでしょう。ただ仕事をこなしたい、プロジェクトを素早く立ち上げて稼動させたいというのであれば、hpなど一見便利そうですが、まったく「美しくない」言語を使う方がいいでしょう。
上記の2つの点から、nodeは大量の小さなhttpリクエストのある環境、典型的にはebライブチャットプログラムや、何万人ものオンラインユーザーを同時にサポートするゲームサーバーで動作するのに適しています。httpリクエストが多すぎるという問題を考える必要もありません。
nodeでウェブサイトを開発する場合、データリクエストを小さなチャンクに分割することができます。つまり、phpのように一度にすべてのデータをクライアントにロードする必要はなく、一部をロードし、他の部分をロードしている間にブラウザにページをレンダリングさせることができます。これにより、ページの読み込みが5倍から10倍速くなり、ユーザーエクスペリエンスが向上します。
コードの実行速度とオーバーヘッドの両方において、nodeは最も****な選択です。しかし、欠点は、jsの非同期機能を理解し、制御することは困難であるということです、かなりハードjsの開発経験とプロジェクトの特性の理解がない場合は、少し大きく、コード構造は混乱になります。nodeは、そのような九陰鎮京のように、コードを設計し、制御する人の能力のテストであり、1つのジェダイのマスターに良いの練習は、武道の世界を支配し、練習は火の精神崩壊に入るのは良いことではありません。最大8層のネストされたコールバックを持つことは冗談ではありません。制御フローの反転と深いネストされたコールバックを解決するためにステップ同期ソリューションを使用することに加えて、データ要求は非常に小さく分割され、複数の負荷に分割され、コードの流れだけでなく、より美しいですが、また、よりノードの特性に沿ったものです。
非同期コードは反人間的だと言う人がいます。実際には、反人間的なのは同期的な実行です。プリンターが動き出し、あなたはそこに立って待ち、5分後に印刷が終わり、あなたは材料を受け取ってオフィスに戻ります。大したことではありません。しかし、印刷が必要な部数が100部や1万部だったらどうでしょう?あなたもそこで立って待っているのですか?その間にコーヒーを飲んだり、もう少し他の人のものを書いたりした方がいいかもしれません。




