"Today's Big News" 来る2015年6月17日、JavaScriptの生みの親でもある超有名人のBrendan Eichが以下の記事を発表しました。海外では結構この話題がもちきりみたいです。そういえば最近のRebuild.fmでもこの話題が出ていましたね。 (注) 訳は意訳です。原文との乖離があれば教えてください。 Today's Big News It’s by now a cliché that JS has become the assembly language of the Web. Rather, JS is one syntax for a portable and safe machine language, let’s say. Today I’m pleased to announce that cross-browser work has begun
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
Intro 今日は、フロントのプログラミングスタイルに、にまた一つ大きな変化をもたらすであろう Stream という API についてです。 この仕様は現時点でまだ策定中であるため、 API は変更される恐れがある点にご注意ください。 Stream API 以前 「Node.js の Stream API で「データの流れ」を扱う方法」 という記事を書きましたが、簡単に言うとあれがブラウザにもやってくるという話です。 非同期処理おさらい もう何度も書いた話なので駆け足で。 JS はシングルスレッドでイベント駆動な世界なので、何をするにも非同期であり、コールバックを登録することで完了した結果を受け取る API が基本です。 これは、ブラウザの DOM の API でも、 Node.js でも共通しています。 概念を疑似コードで書くと以下のような感じです。 console.log('1');
これは VirtualDOM Advent Calendar 2014 に勝手に参加する記事です。 あたたかい春の昼下がりのこと、あるブラウザベンダの社内を不穏な噂が駆け巡った。 「React.js なるライブラリ、どうも仮想 DOM というやつのせいで速いらしいぞ」 もうリアルな DOM はお役御免、ブラウザも商売上がったりか・・・。雇用に不安を覚える人(私)がいる一方、 そのアイデアをとりこんでブラウザの DOM を速く出来ないかと考える人たちもいた。 仮想 DOM はなぜ速いのか。誰かのつてを辿って React.js チームにおいでいただき、速さの秘密をテックトークしてもらう。 イミュータブルなデータ構造による単純化、非同期適用による処理のバッチ化、差分アルゴリズムによる副作用の最小化… いくつかのアイデアはブラウザからはどうにもならないが、たとえば非同期化なんかは形は違えどブラウザ
JavaScriptによるモダンなプログラミング入門書『Eloquent JavaScript, 2nd Edition』のオンライン版がリリースされたことを、作者のMarijn Haverbeke氏が自身のTwitterアカウントで7月30日(現地時間)に明かした。「Creative Commons 表示 - 非営利 3.0 非移植(CC BY-NC 3.0)」のライセンスのもと、無料で閲覧することができる。文中のソースコードはMITライセンス。 『Eloquent JavaScript』は、JavaScriptおよびプログラミング全般に関する入門書で、読者をサンプルコード漬けにし、冒頭から実際に手を動かして試させることで、いち早く読者が一人立ちできるように工夫されている。 『Eloquent JavaScript』の第一版は2007年に公開。第二版のコンテンツは「Language」「B
document.elementFromPoint という便利な関数を知ったので、今作っている Chrome 用 Migemo ページ内検索で使ってみた。 これが困ったことに、ブラウザごとにかなり挙動が違うのだけど、本来の動作はこんな感じらしい。 待望の document.elementFromPoint が Firefox 3.0a8pre にて実装された。仕様は nsIDOMNSDocument.idl に詳しく書いてあるが、おおよそ以下の通りである。 HTML, XUL どちらの document に対しても使用可能 document の左上を (0, 0) とし、位置 (x, y) にある実際に見えている要素を取得する 同一の document 内に存在する要素のみ取得可能。例えばインナーフレーム内の document 内に存在する要素は取得できず、代わりに iframe 要素を返
As most web developers are aware, a significant amount of a script's running time may be spent performing DOM operations triggered by the script rather than executing the JS byte code itself. One such potentially costly operation is layout (aka reflow) -- the process of constructing a render tree from a DOM tree. The larger and more complex the DOM, the more expensive this operation may be. An imp
はじめに CanvasはHTML5とは切り離された独立した仕様(HTML Canvas 2D Context)になっているようですが、現状のブラウザ上でのCanvasのについて、普段はあまり気にしない微妙な振る舞いについて調べた結果をまとめてみました。 調べたブラウザの各バージョンは以下の通りです。 Firefox Chrome Safari Opera 3.6.8 6.0.490.1 dev 5.0.1 10.61 線を描く (lineTo) ただの直線を描くだけのlineToですが、その単純なものにも、恐らく、多くの人が普段は気にしないような問題があります。それは座標値とアンチエリアスです。詳しく見る前に、実際の結果を示しましょう。下記のイメージ中に描かれている線は、いずれも線幅(lineWidth)が1の線です。 (左から、Firefox, Chrome, Safari, Opera
JavaScriptのサブセットとして静的型付け言語を定義し、事前コンパイルを可能にすることでJavaScriptの実行速度を劇的に改善しようというasm.jsの概要を、1つ前の記事で調べました。 まだasm.jsの情報は少ないのですが、その中でも分かりやすくまとまった記事がDevon Govett氏のブログBADASS JAVASCRIPTのエントリ「asm.js: A Low Level, Highly Optimizable Subset of JavaScript for Compilers」です。 Govett氏に翻訳の許可を得たので、翻訳記事として掲載します。 asm.js: A Low Level, Highly Optimizable Subset of JavaScript for Compilers MozillaのDavid Herman、Luke Wagnerそして
Update 2013-12-30: New feature 32 bit floats pushes asm.js performance to 70% of native. More JavaScript engines support asm.js. The conclusion mentions LLJS as another asm.js source language. asm.js defines a subset of JavaScript that can be compiled to fast executables. It has been created at Mozilla by David Herman, Luke Wagner and Alon Zakai. According to the specification, “[asm.js] effective
dynamis (でゅなみす/レッサーパンダ) @dynamitter JSには型固定配列が実装されていてそれを使えばかなり高速化されるので型のある言語で書いたコードをTyped Array使ったJSコードにコンパイルすれば手で書いた型なしJSコードより高速になる 2013-03-17 02:09:57 dynamis (でゅなみす/レッサーパンダ) @dynamitter JSでもn=n|0は常にintのように型を固定する書き方がある。C等からそんなアセンブラ的JSに変換するコンパイラとそんなJSを高速実行するよう改良したエンジンにより、JSは後方互換性を保ったままJava/C#以上の速度を実現可能な実行環境に進化する 2013-03-17 03:27:17 dynamis (でゅなみす/レッサーパンダ) @dynamitter アセンブラ的JSサブセットがasm.js、C等から変換する
Flow.js Version 1.0.1 をリリースしました。 使い方はこちらをごらんください http://www.slideshare.net/uupaa/flowjs リポジトリはこちらです https://github.com/uupaa/flow.js $ npm install flow_js でもインストールできます 既にインストールしている方は、 $ npm update flow_js でupdateできます。 主な改善は、 FlowのargsをJunctionに引き継いでいなかったので引き継ぐようにしました var Flow = require("flow_js").Flow; var junction = new Flow(2, function(err, args) { // この場合の args は = [ [1,4], [2,3] ] です。 // Array
Preface This comprehensive primer on the internal operations of WebKit and Gecko is the result of much research done by Israeli developer Tali Garsiel. Over a few years, she reviewed all the published data about browser internals and spent a lot of time reading web browser source code. She wrote: As a web developer, learning the internals of browser operations helps you make better decisions and k
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く