新製品のWEB UIを作ることになりました。 「functionって書くのダルいから、CoffeeScriptにしましょうよ」 「でもCoffeeScriptって、そろそろオワコンじゃないか?」 「ちょっと待てよ、そろそろES6(ECMAScript6、JavaScriptの次期標準、後述)が使えるようになってるんじゃないか!?」 そう思ってES6を調べましたが、やっぱりCoffeeScriptを使うべきだという結論に達しました。 CoffeeScriptとES6のおさらい CoffeeScriptはいわゆるAltJS 長所 「functionの代わりに->」「ローカル変数にvarが不要」といったイケてる文法が使えます。 事前にJavaScriptにコンパイルして使う。*1 Ruby on Railsが対応しているなど、かなり普及しているようです。 短所 事前コンパイルが必要なので製品のビ
僕はcoffeescriptは人類がプログラミングにおいて堕落するために手に入れた最高のゆるふわ文法だと思っていて、これを殺すわけにはいかない、という気持ちがある。で、es6/typed annotationが跋扈するこの時代にふさわしいものに改造されないといけないとも思っている。最近だと、正直coffeescript方面のイノベーションはあんまりない。 そういうわけで、ちょっと前までtyped-coffee-scriptを作ってたんだけど、現状ある種の問題を迎えていて、開発が半年ほど止まっている。それをどうするかということを考えた結果、別の型付きaltjsに乗りゃいいじゃん、という発想に至った。 altjs on altjsってどうなの、っていう問題もあるが、基本的にflowtypeもtypescriptもes6~以降との標準化追従する方向性であり、そう大きな問題になることはない、と認識
coffeescriptのclass syntaxで生成されたコードと、typescriptのそれは、お互いに継承でき、互換があると言われている。 本当に互換があるのかちゃんと調べないといけないなーと常々思ってたので、確認する。 検証コード coffeescript class A f: -> console.typescript class A{ f() { console.
http://discuss.atom.io/t/why-coffeescript/131 2 comments | 2 points | by noto ■ comment by noto | 約1時間前 先日 GitHub が発表してエディタ ATOM のディスカッション・フォーラムでなぜ CoffeeScript で書かれていて、EcmaScript 6 (ES6) じゃないの? node.js/V8 を利用するデスクトップアプリケーションなら ES6 をすぐに使うほぼ完璧な機会なのに、という問題提起があり、それについて議論があったようです。 前提として、GitHub の JavaScript StyleGitHub の中の人としては
CoffeeScriptの関数は明示的にreturnするべき | 本当に遅いのか、それを確かめましょう。 適当にでっちあげたコードです f1 = -> for i in [1, 2, 3] for j in [4, 5, 6] i + j f2 = -> for i in [1, 2, 3] for j in [4, 5, 6] i + j return console.time "f1" for i in [1..100000] then f1() console.timeEnd "f1" console.time "f2" for i in [1..100000] then f2() console.timeEnd "f2" 実行してみます $ coffee hoge.coffee f1: 105ms f2: 4ms 約26倍違う、ということがわかります。
「CoffeeScript を SuperCollider みたいに処理をしよう ♪♪」をコンセプトに開発していたブラウザ音響プログラミング言語 CoffeeCollider をリリースしました。音響プログラミング言語ということで、とにかく試して聞いてもらうのが手っ取り早い。以下のリンク先で "BOOT" と "RUN" すれば深夜っぽい音が鳴ります。 CoffeeCollider で、なんなの? SuperColliderってなんだ?という人には 言語 & ライブラリ & 実行環境 という意味で processing.js の音楽版と言った方が分かり良いかもしれない。とにかく音がでる。音しかでない。とにかく音を出してほしいという気持ちで作った。最初はいい加減な気持ちでやっていたのだけど途中から結構がんばりだして、最終的にはカレーを食べにいく趣味ができました。 CoffeeScript拡張
こじらせJavaScriptシリーズです。 mizchi/deftypes.js https://github.com/mizchi/deftypes.js 主にcoffee-script用のDSLです。以下すべてcoffee。 ブラウザ <script src="https://github.com/mizchi/deftypes.js/master/deftypes.js"></script> Deftypes(); //provide DSLNode npm install deftypes 概要 型が書けます。残念ながら動的チェックです。 Point = {x: Number, y: Number} p1 = def Point, {x:1, y:2} #=> {x: 1, y:2} p2 = def Point, {x:1, z:2} #=> type
何も調べずにこれ書いたらコンパイルが通ったので a ? 1 : 2 これでいいのかな?と思ってたら、全然違いました。 正しくはこう書きます if a then 1 else 2 間違ってた方は、本当に全然違うので、興味が合ったら確認してください。 とりあえず、1 : 2 の部分は { 1 : 2 } という解釈になってます。 配列に対する値の存否判定には in を、 オブジェクトに対するキーの存否判定には of を使います。 coffee> 10 in [10] true coffee> 'x' of {x:1} true 何はともあれ、JS での in が Coffee では of になっているのが間違え易い! じゃあ、配列に対するキーの存否判定に of が使えるかというと.. coffee> 1 of [0,0] true .. 使える! んじゃ、オブジェクトに対する値の存否判定に i
最近CoffeeScriptというものを知って少し調べてみたら、本家の言語リファレンスがそんなに多くなかったので日本語訳に挑戦してみました。 http://coffeescript.org/ CoffeeScriptとはJavaScriptにコンパイル可能なシンプルな言語です。クラスベースのオブジェクト指向、Python/Rubyを参考にした内包表記、文字列内変数展開、スタティックスコープなどなどがあります。 先にネタバラシをしておくと日本語訳は既に別の方がしていました\(^o^)/ http://sites.google.com/site/sappariwiki/coffeescript しかも僕の日本語訳より全然わかりやすい!ぶっちゃけ英語は大の苦手なので、翻訳したはいいけど間違ってるところは色々あるはずです。 でもまあ技術的なドキュメントの翻訳に挑戦したのは、数年前に前職でRDP(R
なぜ CoffeeScript がダメか - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtechについて。 いや、本当はこのタイトルにするほど CoffeeScript 推しているわけではないのですが、まあそういう建前で書きます。 CoffeeScript のメリット 簡潔に書ける 簡潔であるということは、ソースコードにおいて、本質ではない部分を書かなくてよいということで、逆に言えば必要なことだけが書かれている状態に近くなります。少し慣れればむしろ読みやすくなる(と思います)。 JavaScript の罠を回避できる var を忘れた変数がグローバル変数になるとか、変数のホイスティングとか、オブジェクトリテラルの最後のカンマとか、 JavaScript の for in は prototype を辿ってしまう問題とか、JavaScript の等価演算子が曖昧すぎて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く