プログラミングの未来:JavaScript後のWebAssembly&Life
キーテイクアウト
- プログラミングの未来には、WebAssemblyの導入により、Webを他の言語のより魅力的なコンパイルターゲットにすることで、プログラミングの未来が見られる可能性があります。 著者は、JavaScriptを置き換えるものはすべて、組み込みの不変のデータ構造、オブジェクト、コレクション、原始的なタイプのリテラルフォーム、閉鎖のあるラムダ、および最小限の構文などを特徴とすることを望んでいます。
- システム内の反応的な関係を簡単にモデリングと視覚化できるようにする視覚IDEは、プログラミングの標準になる可能性があります。これは、視覚的にプログラムをモデル化する方法の根本的な再考、視覚的な混乱を減らし、頭上で配線することによって促進されます。 プログラミングの将来には、候補プログラムの集団がテストに合格する能力に基づいて作成およびフィルタリングされる遺伝子プログラミングと、AIシステムがコードを分析し、潜在的なバグと脆弱性を検索するAIアシストプログラミングが含まれる可能性があります。記述する必要があるテストを提案します
- 最近、WebプラットフォームはWebAssemblyと呼ばれる新しいブラウザネイティブコンパイルターゲットを取得していると聞きました(WebAssemblyとは何かを参照:詳細については新しい時代の夜明け)。 WASMは、Webプラットフォームを他の言語のより魅力的なコンパイルターゲットにします。それは私たちにJavaScriptの後に何が来るのか疑問に思っています
- JavaScriptにはいくつかの優れた機能がありますが、できるだけ早く先に進むことを心から願っています。 JavaScriptは素晴らしく、それは私たちに多くを教えてくれましたが、プログラミングは進化します。 JavaScriptの後の人生があります 私はCのファンではありません(私は回収されたユーザーであり、Cの虐待者です)が、JavaScriptにコンパイルされたときに素晴らしい実行されるUnreal Engineを含む多くのもののファンです。 JavaScriptにすべてを永遠に書く正当な理由はありません。未来に目を向ける時です。
私は時々Coffeescriptを使用していて、本当に楽しんでいます。これは、多くの新しいES6機能を刺激するのに役立ちました。 CoffeescriptはJavaScriptよりもはるかにシンプルです。より簡潔な構文を備えていますが、ES5には存在しなかった多くの表現力のある機能を追加します。もちろん、Coffeescriptをさらに単純化し、有毒なクラスのキーワードを取り除くことでさらに簡素化します。私もハスケルをいじるのが好きです。しかし、これらの言語は現在を表しています
では、次に何ができるのでしょうか?JSの後に火をつけたものは何でも、これらの機能があることを願っています:
- 組み込みの不変のデータ構造とデフォルトでの不変性。 オブジェクト、コレクション、プリミティブタイプのリテラルフォーム。
- ほとんどのユースケースのデフォルト番号タイプの方が優れています。 低レベルのバイナリタイプの優れたサポートを含む
- カスタム構造タイプ(定義可能なリテラル構文を取得した場合のボーナス)。 閉鎖のあるラムダス。
- 機能的なユーティリティベルトが組み込まれています。 RXJSの観測可能APIと同様 オブジェクトと工場の構成に対するネイティブサポート。組み込みのスタンプのようなもの。
- ゲーム、音楽とビデオの制作、DSP、科学的アプリケーション、分散システムの同期などのアプリの低遅延処理と精度スケジューリングのリアルタイム保証…
- Ruby、Python、またはCoffeescriptに似た 最小構文。どこにでも巻き毛の装具やセミコロンなしで快適になる機会があったので、私は構文によってはるかに閉じ込められていないと感じています。
- リアクティブプログラミングの第一クラスのサポート
- 言語に焼き付けられています。
- streams。
アレイやオブジェクトなどのコレクション。
このAPIは、データが一度に1つの値(つまり、繰り返し /ジェネレーターの収量)を介して機能するか、放出されたイベント(ノードスタイルのストリームなど)、またはそのような連続データソースに応じて、一度に1つの値(つまり、反復型 /ジェネレーターの収量)を介して流れるかどうかに関係なく、同じ方法で使用する必要があります。オーディオ、電気信号、UI入力、センサー、さらにはベクターグラフィックスなどの時間非依存のものとして…
このような組み込みのAPIは、すべてのタイプをラップすることができます。これは、構文を簡素化する可能性もあります。- このすべての反応性がどのように機能するかについての本当に洞察に富んだ視点については、反応性の一般的な理論をチェックしてください。
- より良いツール
- Unreal Engine 4 BluePrint
タイムトラベルデバッグ(JavaScriptを使用した例)は、不変のデータ構造によって有効になっています。タイムトラベルのデバッグを使用すると、ライブ、ランニングプログラムの歴史の中で簡単に行き来できます。
JS&WASMにコンパイルして、ブラウザとノードの優れたサポート。より良い分析ツールは、静的とランタイム /ダイナミックの両方です。リアクティブな依存性グラフを分析することにより、プログラムをより予測可能にするために特別に設計されています。これらは、
複雑さのレポート、および
大理石の図を含む優れた視覚レポートを作成することもできますプログラムの動作をさらに理解して予測するのに役立ちます。
.merge()
ビジュアルアイデスは標準になります
フローベース/データフロープログラミングに精通している人は、それが新しいことではないことを正しく伝えます。視覚的なプログラミングツールは何十年も前から存在しており、これまでのところ、テキストベースのプログラミングを置き換えることができませんでした。
これをエッジに押し上げるのは、視覚的に視覚的にモデル化する方法を視覚的にモデル化する方法の根本的な再考であり、視覚的な混乱と配線のオーバーヘッドを減らして、ほとんどのフローベースのプログラミングソリューションを悩ませています。 この分野のイノベーションのほとんどは、プログラミング環境ではまったく起こっていません。代わりに、データフローモデリングが主要なタスクである生産アプリケーションで発生しています。オーディオ制作アプリよりもこれが図解されていない場所はありません。
オーディオ制作アプリは、通常、エフェクトプロセッサのネットワークを介して生のオーディオをルーティングします。プログラミングの用語では、エフェクトプロセッサを機能マップと考えることができます。リスト内の各要素に対して呼び出される純粋な関数。これらの要素はオーディオサンプルスライスに対応しています。
ほとんどのオーディオアプリは、本物のマシンとケーブルを懐疑的な方法でシミュレートすることにより、このプロセスを視覚的にモデル化します。 Skeuomorphicユーザーインターフェイスは、ソフトウェアでモデル化されている元のオブジェクトのユーザーインターフェイスをエミュレートしようとするものです。Skeuomorphic Designの問題は、ユーザーインターフェイスの散乱とオリジナルの非効率性のほとんどを忠実に再現することです。オーディオ制作などのデータ集中アプリケーションでは、プログラマーに非常によく知られているように見えます。ワイヤーはスパゲッティのように見えます。
BayareAmodularMeet - George P. Macklin - (CC by-sa 2.0)
しかし、最近、Ableton LiveやRenoiseなどのソフトウェアは、チャネルとチェーンを使用して完全にワイヤークラッターを取り除く賢い方法を見つけました。
Abletonライブエフェクトチャネル。データは左から右に流れます
ルノワーズチャネル、それぞれにエフェクトチェーンが付いています。データは上部から下に流れます
コードでは、チャネルは次のように見える場合があります:
これについて慎重に考えると、このモデルを使用してオーディオおよびデジタル信号処理(DSP)以上のことができることが明らかになります。たとえば、エクスプレスのルートとミドルウェアを視覚的にモデル化するために使用できます。ここでは、ルートはチャネルで表され、ミドルウェアは効果で表されます。
ルートをプログラムするための仮想的なルノワーズにインスパイアされたUI
もちろん、これは、チェーン内の各効果が共有APIを使用して入力に作用する必要があることを意味します。そこで、機能的で反応的なプログラミングの概念が輝いています。ネットワークリクエストのストリームを含む、あらゆる種類のコレクションに対して統一されたAPIを簡単に提供できます。機能的なプログラミングでは、それらのラッピングAPIはファンサーと呼ばれます。平易な英語では、ファンチャーはマッピングできるものです。
これがサイエンスフィクションのように聞こえる場合は、TreeLineを見てください。今日は非常によく似たことをします。 Treelineでモデル化されたこの投稿 /サインアップルートをご覧ください。ユーザーのパスワードを暗号化し、ユーザーモデルを作成し、Status 200 OKで応答します。これらの各ステップは、チャネル効果と考えることができます:
treeline:データは上から下に流れます
遺伝子プログラミング
遺伝子プログラミングは、ホットコードと重要なアルゴリズムを継続的で自動化した改善の可能性を提供します。 GITリポジトリに遺伝子プログラミングアルゴリズムを指し示し、人口が以前の展開バージョンで改善されたときに新しい世代のソフトウェアを自動的に生産にプッシュする可能性があります。
ai-assistedプログラミング
Scott Ingram - デュアルニューロン(CC by-nc 2.0)
強いaiは今日ここにいます。多くのAIシステムは、さまざまなカテゴリーにわたって私たち自身のゲームで人間を破っています。 AIの主な利点の1つは、多種多様な代替品を非常に迅速に分析できることです。 AIは、書いたコードを調べたり、潜在的なバグと脆弱性を検索したり、抽象化できるパターンを認識したり、遺伝子プログラミング集団のパターンを認識したり、遺伝子プログラミングを微調整するために人口と環境のパラメーターを自動的に調整したりすることさえあります。アルゴリズム。
言い換えれば、長期的には、AIは貴重なプログラミングツールになる可能性が非常に高いです。実際、AIが人間の援助なしでプログラムを作成できる未来を想像するのは簡単です。
結論
WebAssemblyとその将来に関するよくある質問(FAQ)
JavaScriptとWebAssemblyの主な違いは何ですか?
JavaScriptは長年にわたってWeb開発のバックボーンでした。ただし、特にパフォーマンス集約型アプリケーションに関しては、制限があります。一方、WebAssemblyは、コードが一般的なハードウェア機能を活用して、コードが近くのスピードで実行できるようにするバイナリ命令形式です。それは、ネイティブに近いスピードでコードを実行する低レベルの仮想マシンになるように設計されており、ゲーム、コンピューター支援設計、ビデオ編集、科学シミュレーションなどのタスクに最適です。 javascriptを交換しますか?
いいえ、WebAssemblyはJavaScriptを置き換えるようには設計されていません。代わりに、JavaScriptと一緒に作業することを目的としており、開発者がジョブに適したツールを選択できるようにします。 JavaScriptは、複雑なユーザーインターフェイスを備えた動的なWebサイトとアプリケーションを構築するのに最適ですが、WebAssemblyはパフォーマンス集約型タスクに適しています。
WebAssemblyはどのようにWebパフォーマンスを改善しますか? Webのより効率的なバイナリ形式。このバイナリ形式により、コードをJavaScriptよりも迅速に解析および実行できます。さらに、WebAssemblyは、パフォーマンス集約型タスクの大幅なパフォーマンスを高めるコードを実行する低レベルの仮想マシンになるように設計されています。
はい、現在のWebプロジェクトでWebAssemblyを使用できます。ほとんどの最新のブラウザはWebAssemblyをサポートしており、WebAssemblyにコードをコンパイルするのに役立ついくつかのツールがあります。 WebAssemblyへのコンパイルに最適なサポートを提供します。ただし、目標は、将来、できるだけ多くの言語をサポートすることです。また、Python、Go、Javaなどの他の言語のサポートを追加するための継続的な取り組みもあります。 JavaScriptと同じサンドボックス環境内で動作します。つまり、同じアクセス制限があります。さらに、それは低レベルのバイナリ形式であるため、JavaScriptによく見られる特定のタイプの攻撃の影響を受けにくい。いくつかの方法。たとえば、WebAssemblyからJavaScript関数を呼び出すことができます。その逆も同様です。 2つの間にデータを渡すこともできますが、現在は手動での作業が必要です。 WebAssemblyの未来は何ですか?
WebAssemblyの未来は有望に見えます。すでにすべての主要なブラウザによってサポートされており、そのパフォーマンスの利点は、Web開発者にとって魅力的なオプションとなっています。より多くの言語がWebAssemblyへのコンパイルのサポートを得るにつれて、より広い範囲のアプリケーションで使用されることが期待できます。いくつかの制限があります。たとえば、現在、DOMへの直接アクセスが不足しているため、任意のDOM操作にJavaScriptを使用する必要があります。ただし、これやその他の制限に対処するための継続的な取り組みがあります。
WebAssemblyの学習と使用を開始するにはどうすればよいですか?公式WebAssembly Webサイトは、テクノロジーの包括的な概要を提供するため、開始するのに最適な場所です。また、WebAssemblyを始めるのに役立つオンラインで利用可能な多くのチュートリアルとガイドもあります。
以上がプログラミングの未来:JavaScript後のWebAssembly&Lifeの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
