RubyからJavaScriptへのトランスパイラ「Opal」チュートリアル最新改訂版!『実践Opal』発行 技術の泉シリーズ、5月の新刊 インプレスグループで電子出版事業を手がける株式会社インプレスR&Dは、『実践Opal』(著者:大崎 瑶)を発行いたします。 最新の知見を発信する『技術の泉シリーズ』は、「技術書典」や「技術書同人誌博覧会」をはじめとした各種即売会や、勉強会・LT会などで頒布された技術同人誌を底本とした商業書籍を刊行し、技術同人誌の普及と発展に貢献することを目指します。 『実践Opal』 https://nextpublishing.jp/isbn/9784844378822 著者:大崎 瑶 小売希望価格:電子書籍版 1800円(税別)/印刷書籍版 2000円(税別) 電子書籍版フォーマット:EPUB3/Kindle Format8 印刷書籍版仕様:B5判/カラー/本文1
RubyJSをためしてたらこんな時間で明日が心配な今日この頃です。 RubyJSはUnderscore.jsやstring.jsみたいなJavaScriptのライブラリです。 特徴はRubyの機能をJSで実装しているところ。JS的な書き方を無視して、以下にRubyらしく書けるかに注力されています。RubySpecに準拠するように書かれているので、Rubyを普段使っている人には無意識に使えるようになっています。 使い方は簡単でライブラリを読み込んで、JSの任意のオブジェクトやプリミティブな値を RubyJS メソッドを使ってラップしてやります。この RubyJS メソッドが適切な RubyJS オブジェクトに変換してくれます。もちろん R というエイリアスが切られているので、こちらを使いましょう。 R 'hoge' #=> RubyJS.String R 1 #=> RubyJS.Fixnu
RubyJSはRuby 1.9.3のcorelibをJavaScriptに置き換えたライブラリです。 RubyやPythonのようにJavaScriptを書けたら良いのに…というところから生まれたのがCoffeeScriptですが、今回はRuby 1.9.3のcorelibをJavaScriptに取り込んだRubyJSを紹介します。 R()で囲むとRubyJS用のオブジェクトが返ります。 こんな感じで使います。最後にto_nativeを実行すると文字や数字が返ってきます。 配列を扱うこともできます。 each_with_indexなどRubyならではのメソッドもあります。 RubyJSを使うとJavaScriptの中でRubyのようにProcを使ったり、チェーンでつないだり、Enumeratorが利用できます。Gzipして20KBとそれほど大きくないので使い勝手が良いのではないでしょうか。
「Ruby脳が理解するJavaScriptのオブジェクト指向 」の続きです。 引き続きJavaScriptのオブジェクト指向における「継承」について学んだので、自分の理解を書いてみます。当然に、間違いが含まれています。ご指摘助かります。 前回のまとめ 前回の記事では、JavaScriptの「オブジェクトの生成」、「プロトタイプチェーン」、「オブジェクトコンストラクタ」、「new演算子」の各概念について順にみました。これらを通したJavaScriptのオブジェクト指向に対する僕の理解は概ね次のようなものです。 すべてのオブジェクトは__proto__プロパティ(非標準)を持っていて、プロパティ探索に関し、ここにセットされたオブジェクトを順次たどりこれを解決する(プロトタイプチェーン)。__proto__にはデフォルトで空オブジェクトがセットされている。 同種オブジェクト(属性値だけが異なるオ
(追記:2012-12-15) 本記事およびこれに続くその2,その3をまとめて電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、誤記の修正およびメディア向けの調整を行っています。 電子書籍「Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 購入ご検討のほどよろしくお願いしますm(__)m 関連記事: 電子書籍「Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版をGumroadか
LL Decadeで、Polyglotの話を聞いて面白かったので、私もやってみました。 そこで、FizzBuzzを書いてみました。 fizzbuzz.rbですが、JavaScriptとしても動作します。Rubyのバージョンは1.9です。 'use strict'; "#{define_singleton_method(:var){|*v|}||";/*"}" # */ var puts=console.log; /* # */ Number.prototype.to_s = function(){return this;}; var max=100, a=0, b=0; "#{";/*"}" (1..max).each { |i| # */ for(var i=1;i<=max;i++){ a = i % 3 < 1; b = i % 5 < 1; puts((a ? 'fizz' : '
Webアプリケーションを構築しているとどうしても必要になるのがJavaScriptだ。サーバサイドの言語はPHPやRuby、Perl、Java、Pythonなど様々な言語が選ばれるが、JavaScriptについては代わりがない。 RubyからJavaScriptが生成される 元のRubyコード サーバサイドの言語は得意だが、JavaScriptはちょっと…という人もいるのではないだろうか。そんな人にとって、これは朗報かも知れない。 今回紹介するオープンソース・ソフトウェアはRed、RubyスクリプトをJavaScriptに変換するソフトウェアだ。 RedはRubyの文法に則って記述したプログラムをJavaScriptに変換してくれるソフトウェアだ。まだ複雑な構文に対応している訳ではなく、クラスや関数を定義したり(無名クラス、無名関数も作成できる)、プロパティを設定したりといったことができる
「Twitter住所特定実験」を開発中に気づいた事です。取得したツイートをサーバからJSONでクライアント側のJSに送る処理があって、当初この時にTwitterのツイートのIDをJSONに数値として含めて送っていました。 が、JavaScriptではこの値を受信してeval()した†1際、うまく変換することができず、たとえばChrome/Firefoxでは「76287755398823940」となり、微妙に異なった数値になってしまいました。 以下をクリックすることで、実際に実行できます。 javascript:alert(76287755398823936) IE8/9だと「76287755398823930」となり、まだ微妙に違った値になります。 ■doubleの精度の問題?? まず疑われたのはdoubleの精度の問題。一部では有名な話で、JavaScriptでは数値はすべてdouble
rubyに限らず同系統のLLはjavascriptに滅ぼされるんじゃないかと先輩が言ってたので、流石にそりゃないでしょうと言ったところ、以下の反論をされた。 サーバも同じ言語で書けるメリットは大きい最近のjsは速くなった。他のLLよりもずっと速い 速度については、幾つかのベンチマークを組み合わせて評価している Which programming language is fastest? によると、確かにjs(というよりv8)が他のスクリプト言語をちぎっている *0 。v8はただのフィボナッチだとCに迫る速度だ。恐ろしい。crankshaftでさらに1.5倍ほど高速化するらしいし、ブラウザの開発競争が続く限りjsの速度的な優位は他のLLと比べてますます大きくなるであろう状況にある。 さて、速度的にも優位だしクライアントとの親和性も抜群とくれば、もはやnode.jsを使わない理由は無く、他のL
配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)
古いエントリーなのですが、まだ時折検索エンジン経由?でいらっしゃる方がいるみたいなので追記 Titanium Desktopは今はTideSDKと変わってオープンソースプロジェクトになっています。 いいたい事を先に。 Ruby,Python,PHP,JavaScriptやってる人でデスクトップアプリ作成に興味ある人は Appcelerator Titanium Desktop さわってみるといいと思います。OS X, Windows,Linuxとマルチプラットフォームなデスクトップアプリをhtml,JavaScript,Ruby,Python等の慣れ親しんだ技術で簡単に作成、公開することができます。 予想以上にブクマされてるみたいなので、Titanium Desktopの特徴を箇条書きですが追加しておきます。 一言で言えばJavaScriptで記述するAdobe AIRのようなRIAフレー
Jeremy Ashkenas氏がRuby/Pythonライクな文法でJavaScriptを記述する、興味深い試みをおこなっている。同氏が開発した「CoffeeScript」と呼ばれる簡易言語は、"a little language that compiles into JavaScript"の名のとおり、コンパイルするとJavaScriptコードを出力するというものだ。Ruby製のコンパイラが用意されており、デベロッパはCoffeeScriptで書かれたファイルをコンパイラに通すことでJavaScriptコードを得られる。 CoffeeScriptで記述されたソースをコンパイルした結果。左側にCoffeeScript、右側にコンパイル後のJavaScriptが表示されている - Mini Overviewより引用 現在のバージョンは1月10日(米国時間)にリリースされた0.2.3で、Th
Juicer - a CSS and JavaScript packaging tool Webページの表示パフォーマンスはWebデベロッパにとって常に最大の関心事だ。ページのロード時間はそのままユーザの満足度に直結する。ファイルサイズは小さく、そしてリクエスト回数は最小であることが望ましい。JavaScriptもCSSもできればファイルは1つづつだけで、なるべく小さい方がいい。 これまでJavaScriptのミニファイアや検証ツール、CSSのミニファイアツールはいくつも登場している。ここではChristian Johansen氏が新しく公開したJuicerに注目したい。Juicer自身はRubyで開発されている。Juicerを利用するにはRuby、RubyGemsが必要なほかYUI CompressorとJava、それにJsLintが必要になる。JavaScriptとCSSのパッキングツ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く