21のホットなプログラミングトレンドと21のコールド

プログラマーは、流行がそよ風のように吹き抜けるファッションの世界を嘲笑するのが大好きです。スカートの長さは上下し、顔料は行き来し、ネクタイは太くなり、そして薄くなります。しかし、テクノロジーの世界では、厳密さ、科学、数学、そして正確さが流行を支配しています。

それはプログラミングがトレンドのない職業だと言っているわけではありません。違いは、プログラミングの傾向は、効率の向上、カスタマイズの向上、および使いやすさによって推進されていることです。これらの1つ以上を提供する新しいテクノロジーは、前世代を凌駕します。それは実力主義であり、気まぐれなオクラシーではありません。

以下は、今日のプログラマーの間で注目されているものとそうでないもののリストです。Aリストにあるもの、Dリストにあるもの、および除外されているものに全員が同意するわけではありません。それがプログラミングを際限なく魅力的な職業にしている理由です。急速な変化、情熱的な議論、突然のカムバックです。

ホット:プリプロセッサ

ない:完全な言語スタック

新しいプログラミング言語を作成した人々が、コードをシリコンに供給されるビットに変えるすべてのものを構築しなければならなかったのはそれほど昔のことではありません。それから誰かが前に来た仕事に便乗することができると考えました。今では、賢いアイデアを持っている人は、新しいコードを豊富なライブラリとAPIのセットを使用して古いものに変換するプリプロセッサを作成するだけです。

PythonやJavaScriptのようなスクリプト言語は、かつては小さなプロジェクトに限定されていましたが、今では本格的な作業の基盤となっています。また、JavaScriptが気に入らなかった人は、面倒な句読点を使わずにコーディングできるプリプロセッサであるCoffeeScriptを作成しました。構文を異なる方法で事前にスライスおよび予測するバリエーションは数十あります。

動的型付けを愛する人々は、句読点を過度に強調することなく、Javaのより単純なバージョンであるGroovyを作成しました。JVMで実行される言語は、Groovy、Scala、Clojure、Kotlinなど、数十あるようですが、JVMは1つしかありません。.NetのVMでも多くの言語を実行できます。なぜ車輪の再発明をするのですか?

ホット:サーバーレス

ない:Docker

これは正確には真実ではありません。Dockerコンテナはいたるところにあります。サーバーは常にコンテナーをスピンアップおよびシャットダウンしています。しかし、ドッカーコンテナはサイコー彼らがする必要があるよりもはるかに大きいです。

あなたがそれについて考えるならば、あなたはあなたが展開しているそのマイクロサービスのために数十行の実際の意思決定コードを書くだけかもしれません、しかしあなたはNode.jsと他のものを始めるために何億行もの構成を投げ込む必要があるでしょうDockerで正しくアップします。はい、それはすべて定型的なものですが、それは要点を欠いています。

新しいサーバーレスアーキテクチャでは、実際の決定を行ういくつかのif-then-elseステートメントのみをデプロイできます。他のすべては、サーバーレスプラットフォームをレンタルしている人々に任されています。

はい、数年以内にロックインとカスタマイズの欠如について不平を言うでしょうが、今のところ、サーバーレスオプションはすべてのDevOpsと構成からの甘い救済のようです。

ホット:JavaScript MV *フレームワーク

ない:JavaScriptファイル

ずっと前に、誰もが警告ボックスをポップアップするか、フォームの電子メールアドレスに@記号が含まれていることを確認するためにJavaScriptを書くことを学びました。現在、HTML AJAXアプリは非常に洗練されているため、最初から始める人はほとんどいません。精巧なフレームワークを採用し、ビジネスロジックを実装するためのグルーコードを少し書く方が簡単です。

現在、Kendo、Sencha、jQuery Mobile、AngularJS、Ember、Backbone、Meteor JSなどの数十のフレームワークがあり、すべてWebアプリやページのイベントやコンテンツを処理する準備ができています。

これらは単なるWebアプリです。スマートフォン/タブレットの世界にクロスプラットフォーム開発を提供するように調整された数もあります。NativeScript、PhoneGap、Apache Cordova、React Nativeなどのテクノロジーは、HTML5テクノロジーからアプリを作成するためのオプションのいくつかです。

ホット:CSSフレームワーク

ない:ジェネリックCSS

昔々、ウェブページにちょっとしたピザを追加するということは、CSSファイルを開いて、のような新しいコマンドを含めることを意味していましたfont-style:italic。それからあなたはファイルを保存し、ハードな朝の仕事の後に昼食に行きました。現在、Webページは非常に洗練されているため、このような単純なコマンドでファイルを埋めることは不可能です。色を微調整すると、すべてがうまくいきません。それは彼らが陰謀と生態学について言うことのようです:すべてが相互に関連しています。

ここで、SASSのようなCSSフレームワークとCompassのようなそのいとこが確固たる基盤を見つけました。それらは、実変数、ネストブロック、ミックスインなどのプログラミング構造を提供することにより、読み書きのできる安定したコーディングを促進します。プログラミング層ではそれほど新しいようには聞こえないかもしれませんが、設計層にとっては大きな飛躍です。

ホット:Canvas上のSVG

ない:フラッシュ

Flashは何年もの間人々を夢中にさせてきましたが、アーティストは常にその結果を気に入っています。アンチエイリアスレンダリングは見栄えがよく、多くの才能のあるアーティストが、洗練されたトランジションとアニメーションを提供するためにFlashコードの深いスタックを構築しています。カジュアルゲームは引き続き非常に人気があります。そのため、FlashはWeb上での生活に固執します。

JavaScriptレイヤーがほとんど同じことを実行できるようになったので、ブラウザーのメーカーと開発者はFlashの終了を応援しています。彼らは、SVG(Scalable Vector Graphics)のような新しいフォーマットから来るDOMレイヤーとのより良い統合を見ています。SVGとHTMLは、Web開発者が使いやすいタグの1つの大きな山で構成されています。次に、多くの場合ビデオカードの助けを借りて、Canvasオブジェクト上に精巧な描画を提供する大きなAPIがあります。それらを組み合わせると、Flashを使用する理由がほとんどなくなります。

ホット:ほぼビッグデータ(Hadoopを使用しない分析)

ない:ビッグデータ(Hadoopを使用)

誰もがキャンパスのビッグマンのように感じるのが好きで、そうでない場合は、目立つことができる適切なサイズのキャンパスを探しています。 「ビッグデータ」という言葉がエグゼクティブスイートに流れ始めたとき、スーツはまるでヨットや超高層ビルを購入しているかのように、最大​​で最も強力なビッグデータシステムを求め始めたのは当然のことです。

面白いことに、多くの問題は、最も素晴らしいビッグデータソリューションを使用するのに十分な大きさではありません。もちろん、GoogleやYahooなどの企業はすべてのWebブラウジングを追跡しています。ペタバイトまたはヨタバイトで測定されたデータファイルがあります。しかし、ほとんどの企業は、基本的なPCのRAMに簡単に収まるデータセットを持っています。私はこれを16GBのRAMを搭載したPCで書いています。これは、数バイトの10億のイベントに十分な量です。ほとんどのアルゴリズムでは、SSDからのストリーミングで問題ないため、データをメモリに読み込む必要はありません。

並列で実行されているHadoopクラウド内の数十台のマシンの高速応答時間を要求する場合がありますが、多くの場合、調整や通信の手間をかけずに1台のマシンで細かいプラグインを実行します。

ホット:スパーク

ない:Hadoop

Hadoopがクールダウンしていることはそれほど多くありません。さらに、Apache Sparkは真っ赤で、Hadoopモデルが少し古く見えます。Sparkは、大量のデータから意味を抽出するHadoopのアプローチの最良のアイデアのいくつかを借用し、コードをはるかに高速に実行するためのいくつかの確実な改善でそれらを更新します。最大のものは、分散ファイルシステムへのすべての書き込みと分散ファイルシステムからの読み取りを要求するのではなく、Sparkがデータを高速メモリに保持する方法かもしれません。

もちろん、多くの人がHadoopの分散ファイルシステムに保存されているデータに対してSparkの処理速度を使用して2つをマージしています。HadoopとSparkは、競合他社よりも多くの場合パートナーです。

ホット:データベース構成

ない:ソフトウェアプログラミング

ずっと前に、プログラマーは次の世紀にプログラミングがどのようになるかわからないと冗談を言っていましたが、Fortranと呼ばれることは知っていました。このジョークはとても面白かったので、恐竜から落ちて木製の下着を壊してしまいました。次に、データベースの構成に戻ります。

そして、私たちは今日もデータベースを構築していますが、私たちが「データベース」と考えるものは、今では何倍も洗練され、強力になっています。既製のデータベースは、一貫性と速度の間の柔軟なトレードオフを提供しながら、大陸間で同期します。Firebaseなどの一部のクラウドサービスは、モバイルクライアントで実行されているウェブアプリに新しいデータをプッシュします。

サーバーレス革命の多くは、クラウドデータストアの多くが非常に強力になっているため、非常に優れたWebアプリを構築するためにif-then-else句をいくつか記述するだけでよいという認識に基づいています。

ホット:ゲームフレームワーク

ない:ネイティブゲーム開発

昔々、ゲーム開発は、すべてをゼロからCで書いた開発者をたくさん雇うことを意味していました。確かに、それは数億ドルの費用がかかりました、しかしそれは素晴らしく見えて、そしてそれは風のように走りました。今では、誰も贅沢なカスタムコードを買う余裕はありません。ほとんどのゲーム開発者は何年も前にプライドを放棄し、Unity、Corona、LibGDXなどのライブラリを使用してシステムを構築しています。彼らは、ライブラリの指示ほどCコードを記述しません。

私たちのゲームが誇りを持って手作りされておらず、同じエンジンを使用して打ち抜かれているのは残念ですか?いいえ。開発者のほとんどは安心しています。詳細を扱う必要がないため、ゲームプレイ、物語の弧、キャラクター、アートに集中できます。 

ホット:静的ウェブサイトジェネレーター

ない:単一ページのWebアプリ

URLが静的なテキストや画像で埋められたウェブページを指していたことを覚えていますか?次に、動的な単一ページのWebアプリが登場し、それらすべてを、問題のデータをフェッチする1つの巧妙なWebアプリに置き換えました。何だと思う?振り子が振り返り、すべての子供たちが静的サイトジェネレーターを構築しています。それらは数十あります。それはハイブリッドのようなものです。すべてのデータを1つの山にまとめてから、データをいくつかのテンプレートに貼り付けるコードを記述して、静的URLごとに1つのHTMLファイルがあり、これがデータテーブルの各行から取得されるようにします。

子供たちは、これらの静的サイトは超高速であると考えています。WordPressやDrupalのような古い動的システムが、最新のデータで生成された静的ページでほぼいっぱいになったキャッシュを維持することで、ほとんど同じように機能したことを彼らに言わないでください。

ホット:GraphQL

ない:REST

RESTが死んでいるわけではありません。APIをさらに活用したいというだけで、GraphQLはそれを実現する方法です。GraphQLは、RESTと同様に、データをJSONで返します。GraphQLは、多くのREST呼び出しと同様に、HTTPPOSTから始まります。GraphQL構文を使用すると、数回のキーストロークで非常に複雑なクエリを指定できるようになります。これにより、プログラマーは自分が欲しいものだけを尋ねるのが簡単になり、誰かがわずかに異なるAPIを必要とするときに実行しなければならないサーバー側の作業の量が減ります。

ホット:クラウドIDE

ない:ローカルIDE

昔、人々はコマンドラインコンパイラを使用していました。次に、誰かがそれをエディターや他のツールと統合してIDEを作成しました。今度は、動作中のシステムのコードでさえも、コードを編集できるブラウザーベースのツールによってIDEが隠されてしまう(ha)時が来ました。 WordPressの機能が気に入らない場合は、コードをその場で変更できるエディターが組み込まれています。 MicrosoftのAzureを使用すると、ポータルでJavaScriptグルーコードを直接記述できます。これらのシステムは最高のデバッグ環境を提供しておらず、製品コードの編集には危険な点がありますが、アイデアには足がかりがあります。

AWS Cloud9、Codenvy、MozillaのWebIDEから始めることができますが、探索を続けてください。Webベースのツールはますます強力になっています。たとえば、MicrosoftのAzureWebサイトでビッグデータ分析プロジェクト全体を構築することができます。また、サーバーレスオプションを検討し始めている場合は、すべてのコードをWebページのフォーム要素に記述できることがすぐにわかります。Facebookで友達を更新するために使用するフォームよりもそれほど大きくないもの。

ホット:GPU

ない:CPU

ソフトウェアが単純で、命令が適切に配置されていたとき、CPUはすべての面倒な作業を行ったため、コンピューターの王様でした。ビデオゲームが並行して実行できる広範なグラフィカルルーチンで満たされているので、ビデオカードはショーを実行します。派手なビデオカードに500ドル、600ドル、またはそれ以上を費やすのは簡単で、一部の真面目なゲーマーは複数を使用します。これは、多くの基本的なデスクトップの2倍以上の価格です。

さらに、GPUカードを自慢しているのはゲーマーだけではありません。コンピューター科学者は現在、GPU上で数百倍高速に実行されるように多くの並列アプリケーションを変換しています。また、データサイエンティストは、GPUを搭載したサーバーを使用して、機械学習モデルの開発をスピードアップしています。 

ホット:GitHub

ない:履歴書

確かに、中学生のチェスクラブの副会長を含む業績の膨らんだリストを読むことによって、候補者について学ぶことができます。しかし、誰かの実際のコードを読むことは、はるかに豊かで有益です。彼らは良いコメントを書いていますか?アイテムをほとんど何もしない小さなクラスに分割するのに多くの時間を浪費していませんか?拡張の余地がある実際のアーキテクチャはありますか?これらの質問はすべて、コードを垣間見ることで答えることができます。

これが、オープンソースプロジェクトへの参加が仕事を見つけるためにますます重要になっている理由です。プロプライエタリプロジェクトのコードを共有するのは難しいですが、オープンソースコードはどこにでも行くことができます。