CoffeeScript

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2011/11/11(金) 03:21:00.78
について語るスレ
2012/09/24(月) 13:05:32.98
console.log([
[1,1,8]
[2,1,16]
]);

これでundefinedになるとかさっぱりわからん…
インデックスのスライス表記か何かに解釈されてundefinedなんか
2012/09/24(月) 13:09:11.61
事故解決。[][a,b,c]で暗黙の了解でインデックスと解釈
添え字はcのみを取ってa,bは意味を成さないか…なるd
2012/09/24(月) 14:09:28.21
結局の所、CoffeeScriptはJavaScriptの単なるシンタックスシュガーにしかすぎず、
タイプ量が多少減る程度のメリットに比べれば、デメリットが大きすぎる。

Haxeみたいに積極的なメリットがあれば採用を考慮するに値するが、現状は積極的な
メリットと呼べるほどのものは無い。
2012/09/24(月) 18:51:00.46
しょせん、スクリプト言語だしな。
2012/09/24(月) 21:48:23.53
http://code.google.com/p/esprima/issues/detail?id=241
https://gist.github.com/3668391

処理系によって実装・未実装があって
唯一無二のJavascriptというものがある

という訳ではないのだ。すくなくとも現状では。
2012/09/25(火) 17:07:04.38
>>113
その話は、これまでの話の何と関係があるの?
2012/09/26(水) 09:27:11.60
CoffeeScriptはJavaScriptの弱点をそのまま引き継いでしかも読みにくいからな
個人や少人数で開発するにはJavaScriptよりは面倒がなくていいが、その程度でしかない。

Haxeにしようぜ(´・ω・`)
コンパイル爆速だし、普通のC系の構文だし、今トレンディー()な関数型言語の皮もかぶってるし。
知名度は低いが、逆にそれくらいしか問題がない。
(Flash界隈生まれ、フランスのゲーム会社生まれ、あたりが理由だろう)

英語圏でも知る人ぞ知るcoolな言語ポジションになってきてる雰囲気だよ。
現時点で少なくともStack OverflowでDartを一蹴する程度の力はあるw
http://stackoverflow.com/questions/12289852/dart-vs-haxe-current-state-hype-usability
2012/09/26(水) 10:27:46.51
>>115
コンパイル後のJavaScriptを実行せざるを得ないというのが、最大の問題。
117uy
垢版 |
2012/09/26(水) 11:01:39.38
>>108
バカだな・・・
忠告はしたぞ
2012/09/26(水) 14:49:03.70
歯臭せー
2012/09/26(水) 23:16:35.71
https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS/_history

次期coffeescript決定戦!

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/#mailing2012-09
http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport

意外と眺めてたのしいc++1y。std::tupleが入ったのか!
インタープリンターでデバック困難。コンパイラでビルド時間爆発、披露困憊ら。
お茶でも飲んで。

http://www32.ocn.ne.jp/~ons/text/CPP0xFAQ.html.ja
2012/09/28(金) 21:05:02.30
coffeeは>>109みたいに省略可能な部分が行き過ぎてる
具体的に言うとrubyに影響受けすぎ
2012/10/02(火) 05:35:16.93
>>116
それのどこが問題なのだ。
ブラウザをリロードするのと、IDEからキー一発で実行するのと手間はまったく変わらんぞ?
だいたい、もはやHTMLもCSSもJavaScriptも人間が直接書くものではない。

つか今度はMSから新言語出てきたぞw>TypeScript
もはや何でもありだな。
2012/10/02(火) 05:43:22.96
Dartのようなものがまた一つ増えたのか・・・
2012/10/02(火) 07:31:08.53
それも全てJavascriptがゴミ過ぎるから
2012/10/02(火) 13:49:31.06
>>121
エラーも静的解析ツールによる問題の指摘も、カバレッジも全て変換後のコードに対して行われ、
変換前のコードではそれらがどうなのかがわかりづらい。

また、あたりまえだが、何をするにしてもいちいち変換が必要。

なお、この問題は「JavaScriptに変換する系の言語/ツール/コンパイラ」に共通して言えることであり、
それらnew言語X用のUnitTestツールや静的解析ツール、カバレッジ測定ツールが存在し、
ブラウザが直接その言語を実行できるようになれば問題ない。
125124
垢版 |
2012/10/02(火) 13:52:01.88
上記デメリットを超えるメリットがあるなら、そのnew言語Xは採用を考慮するに値するが、
CoffeeScriptにはメリットと思えるようなものがほとんどない。

HaXeやMSの新言語には、上記デメリットを超えるメリットがあり、採用を考慮するに値する。
JSXは微妙。Dartはよく知らない。
2012/10/02(火) 20:55:15.71
> それらnew言語X用のUnitTestツールや静的解析ツール、カバレッジ測定ツールが存在し、

これは出来た方が良いけど、

> ブラウザが直接その言語を実行できるようになれば問題ない。

これができる必要は全くない
2012/10/03(水) 12:53:49.72
coffeeのよさは

js2coffee
http://js2coffee.org/

コードにある程度の可塑性を望めるところだろうか…

ほかのはプロプラのツールから生成した自動コード的な
色合いがどうしても強くなって、しまうま

しまうまとしまうまを
掛け合わせたら何ができるとか考えたら
なんか黒魔術っぽくて素敵やで!(中二病
2012/10/03(水) 12:58:28.40
次世代言語X

正式名称はTypedCoffeeDartedScriptX
129デフォルトの名無しさん
垢版 |
2012/10/04(木) 21:39:10.87
>>127
それ、欠点にしか思えないんだけどw

変換しても可読性があるということは
単純なコードの置き換えしかしていない。

最適化やブラウザ依存対策なんかしてないということだ。

それによって得られるのは、わずか数文字、タイプ数を減らせるだけ。
タイプスピードどれくらい? 100文字/分? 200文字/分?
2012/10/04(木) 22:41:42.21
タイプ数(
2012/10/04(木) 22:55:45.76
Javascriptは読み難いんだよ
タイプ数とか言ってるアホは論外
132デフォルトの名無しさん
垢版 |
2012/10/04(木) 23:18:07.32
>>129 もう一回、読み直してみて。
133デフォルトの名無しさん
垢版 |
2012/10/04(木) 23:20:45.95
読みづらいとか単なる慣れじゃないか。
2012/10/05(金) 04:03:55.04
読んでて楽しくないのはいくない
2012/10/05(金) 18:54:16.04
知らんけど、若い言語で信者着いてるもんなんだね。立派立派。
2012/10/05(金) 18:59:05.62
信者よりもアンチのほうが…
2012/10/05(金) 20:22:53.49
line number mapping for debug
https://github.com/jashkenas/coffee-script/issues/558
Possible to add line number to debug output? (undefined @) (very minor)
https://github.com/jashkenas/coffee-script/issues/2507
https://github.com/jashkenas/coffee-script/pull/2483

ソースコード変換系全般にいえるけど
コンソール上でデバックしやすい

エラー箇所の行番号の表示とか
その辺もうちょい改善できるとこだとは思う
2012/10/05(金) 21:43:32.77
ただ source map で対応関連の情報が取れても
その先にある node 本体がまぁゆるい

try catch の連続とデバック文埋め込みと
ブラウザのデバッガ機能(これはjsオンリー)

で凌がないといけないのは変わらないんではないかと > 変換系(coffee, typescriptなとなど

goとかはセグフォで落ちる
使ってない変数とかあるとコンパイルが確実に止まる
で問題の特定はしやすい…

cの利点か。(ruby, pythonとかのc拡張系もスタックトレースは読み易い傾向はあるか
2012/10/06(土) 23:51:04.87
6.55 Built-in Functions Specific to Particular Target Machines
http://gcc.gnu.org/onlinedocs/gcc/Target-Builtins.html#Target-Builtins
An Introduction to GCC Compiler Intrinsics in Vector Processing
http://www.linuxjournal.com/content/introduction-gcc-compiler-intrinsics-vector-processing

>Fourth, don't re-invent the wheel. Intel, Freescale and ARM all offer libraries and code
>samples to help you get the most from their processors. These include Intel's Integrated
>Performance Primitives, Freescale's libmotovec and ARM's OpenMAX.

ハード側での対応というのもそれなりに大切だわな
2012/10/19(金) 01:10:29.85
『TypeScriptが世に出てきてしまった以上、CoffeeScriptは「型付けのできないTypeScriptの出来損ない」みたいな存在になってしまったかなぁと。
2012/10/19(金) 01:49:43.02
>>140
それは全然違うでしょ
TypeScriptはCoffeeとは大分毛色の違う物だよ
でも今後はTypeScriptの方が流行りそうだね
2012/10/19(金) 23:54:00.14
・別の言語の一部だけから変換するもの
・JSに変換する目的で簡潔な構文のみ使えるもの
・上位互換(+静的型チェック)でJSの文法も使えるもの

CoffeeScriptはPython風の構文と簡潔な文法(しか書けなくしてる)が特徴だけど、
IDEサポートの充実期待やjsのライブラリが開発環境でも同期できるなら、TypeScriptでもいいかなと思ってしまうな。
2012/10/30(火) 17:36:31.87
1.4
2012/11/01(木) 14:07:48.86
coffeeはruby風だと思う
145trydev
垢版 |
2012/11/27(火) 00:40:10.66
# 名前付き引数みたいなの(構造的部分型かな)
User = (Id: id, Name: name) ->
  alert id + ' ' + name

User Name: 'Mochi', Id: '000'

# 引数を省略したときの既定値
User = (
 nbsp;{Id: id, Name: name} = {Id: '001', Name: 'Tarou'}
) ->
  alert id + ' ' + name

User()
146trydev
垢版 |
2012/11/27(火) 01:25:01.49
あれれorz
2012/11/27(火) 05:23:27.46
 
148デフォルトの名無しさん
垢版 |
2012/12/06(木) 17:48:11.07
慣れてる人にとっては必要ないかもしれないけど、
Chromeのデベロッパーツールで、CoffeeScriptコードをそのままデバッグできる方法があった。

(下の記事の真ん中よりちょっと下らへんに書いてある)
ttp://blog.happyelements.co.jp/2012/09/coffeescript84source-map-livescript.html

CoffeeScriptReduxっていう非標準のCoffeeScriptコンパイラを使わないといけないのだけど、本家coffeeでも対応しないかなこれ。
2012/12/06(木) 17:51:10.74
いろいろと対応無理だから新しいコンパイラを作ったんだよ
150デフォルトの名無しさん
垢版 |
2012/12/06(木) 20:49:03.33
>>149
そうなのか……。まだ、一部のコードがコンパイルできなかったりして、バグが多いんだが。開発は活発そうだし、頑張って欲しいね。
2012/12/06(木) 22:15:02.75
新しいコンパイラの中の人のプレゼン
https://speakerdeck.com/michaelficarra/an-analysis-of-the-redesign-of-the-coffeescript-compiler-yow2012
152デフォルトの名無しさん
垢版 |
2012/12/08(土) 21:07:04.43
詳しい人教えてください。
子クラスのあるメソッドから、親クラスの別の名前のメソッドを呼ぶにはどうすればいいんでしょうか?

class Animal
name: "名無しちゃん"
constructor: (name) ->
if name?
@name = name

func: ->
console.log "#{@name}「親クラスのメソッドです」"

class Cat extends Animal
func: ->
console.log "#{@name}「子クラスのメソッドです」"

callSuperClassFunc: ->
Animal.prototype.func() # 親クラスのメソッドを呼ぶ?

tycho = new Cat "タマ"
tycho.callSuperClassFunc()

ちなみに上のコードだと、出力結果が
名無しちゃん「親クラスのメソッドです」
になってしまいます。これを
タマ「親クラスのメソッドです」
という出力にしたいのですが……。
153デフォルトの名無しさん
垢版 |
2012/12/08(土) 21:08:18.68
うお、インデントがなくなってしまった。
でも一応、分かりますよね?
2012/12/08(土) 21:28:28.00
>>152-153
Javascriptの__super__は分かるよね?
Coffeeの場合は、親クラスのメソッド同じ名前の子クラスのメソッドの中で
super
と書くだけ(引数がある場合は関数と同じように「super x」)

子クラスで独自処理を呼ぶかsuperを呼ぶか切り替えたい場合は、

func: (flag = false) ->
if flag
super
else
console.log "#{@name}「子クラスのメソッドです」"

callSuperClassFunc
@func true

とか書くと良い
ちなみにCoffeeScriptのコーディングスタイルでインデントはスペース2つが推奨だからtabは使わない方が良いよ
155デフォルトの名無しさん
垢版 |
2012/12/08(土) 21:48:59.28
>>154
レスありがとうございます。

super は分かるんです。
でも、それだと子クラスのメソッドと「同名の」親クラスのメソッドしか呼べませんよね。
ではなく、子クラスのメソッドと「名前が違う別の」親クラスのメソッドを呼びたいんです。
ちなみにその別の名前のメソッドは子クラスにもあって、でも親クラスの方のを呼びたい、という状況です。

あんまり需要がある呼び出し方かどうかわかりませんが、ちょっと気になっちゃって。

>ちなみにCoffeeScriptのコーディングスタイルでインデントはスペース2つが推奨だからtabは使わない方が良いよ

ご指摘ありがとうございます。気をつけます。
2012/12/08(土) 22:29:21.48
Animal::func.apply(this)
これでいけるけどほかにも書き方があるかもしれん
157デフォルトの名無しさん
垢版 |
2012/12/08(土) 22:34:27.19
>>156
ありがとうございます!
こんな書き方知りませんでした。勉強になります。
奥が深いなぁ。
2012/12/09(日) 08:03:11.13
Cat.__super__.func.call(this)
159デフォルトの名無しさん
垢版 |
2012/12/10(月) 16:57:16.81
>>158
なるほど。その書き方が一番良いかもしれませんね。
ありがとうございます!
2012/12/18(火) 23:39:41.86
node.jsやrails以外にこの言語の使いどころってあんの?
2012/12/20(木) 20:27:19.09
GreaseMonkeyとかのUserScriptsをCSで書いてるよ
162デフォルトの名無しさん
垢版 |
2013/01/29(火) 06:31:45.86
2013/02/01(金) 00:42:46.23
CoffeeScript > pythonをjsでやってみたらこんなんでました
って認識でおk?
2013/02/01(金) 19:28:13.12
pythonに影響を受けてるのはインデントブロックぐらいで
それ以外はrubyの影響が強いな とくにclassシンタックスまわり
165デフォルトの名無しさん
垢版 |
2013/02/01(金) 20:05:29.96
ruby に良く似てるね
どちらかというと node.js が python に似てると思う
2013/02/09(土) 20:27:31.48
最近はTypeScriptの方が言語的に優れてていいって巷では言っているが、
どうなんだろ……。
2013/02/09(土) 21:31:45.39
Unix派(coffee) vs MS派(typescript) または静的型付け派 vs 動的型付け
の代理戦争っぽいところもある

JSクソといってたMSベッタリな知り合いは
TypeScript出た瞬間いやーJS未来ありますねって言ってて笑った
2013/02/10(日) 16:37:09.50
乱立した挙句デファクトが決まらないまま、別に素のJSでいいという流れになりそう
2013/02/10(日) 18:26:17.17
数年後、そこにはTyped CoffeeScriptの元気な姿が…
2013/02/10(日) 18:47:12.97
いずれ実現するんじゃないかな

CoffeeScriptの評判がいい点て軽量言語らしいゆるふわシンタックスで
TypeScriptはコンパイラレベルの型があってIDEに統合に強い
現状TypeScriptをCoffeeScriptみたいなシンタックスで書けるコンパイラ出たら俺はそれに乗り換える
コンパイラっていうかプリプロのプリプロだけどな

で、現状 heap.coffee ってのが一番近いんだけどなんか目指してるものが微妙で、そんで動かん
2013/02/10(日) 21:10:04.89
そして忘れ去られるDartとJSX。
2013/02/12(火) 08:43:08.51
(x) -> (y) -> x+y
とか書けるから楽ちん
2013/02/27(水) 16:49:12.93
1.5.0
2013/02/27(水) 17:40:30.80
Ruby利用者が減ってCoffeeScript利用者が増えると予想
2013/02/27(水) 21:15:20.27
まだまだクライアントでコールバックチェーンをちゃんと書ける人が少ない
2013/03/09(土) 18:46:26.39
1.6.1
2013/03/09(土) 20:03:32.91
sourcemap対応きたな
typescriptに先んじられてた部分に追いついた
2013/03/09(土) 20:05:40.96
TypeScript -> PHPなやつが出たよ
Pratphall
http://pratphall.org/
2013/03/09(土) 21:22:24.13
>>177
ようやく来たかー。
これでCoffeeScriptRedux使う理由はなくなったな。
180 忍法帖【Lv=2,xxxP】(2+0:5)
垢版 |
2013/03/10(日) 00:06:37.29
>>172
それってどうやって使うの?呼び出す時
2013/03/10(日) 00:17:00.22
名前を付けない、それがクロージャ
javascriptと同じで変数に割り当てるんじゃ
2013/03/10(日) 00:23:51.98
名前ついててもクロージャはクロージャなのじゃ
2013/03/10(日) 00:28:12.70
ご苦労じゃな
2013/03/10(日) 01:55:21.69
>>180
普通に f(1)(5) #=> 6 だろ
jsのカリー化や部分適用はJavaScript: The Good Parts にも載ってる
185 忍法帖【Lv=2,xxxP】(1+0:5)
垢版 |
2013/03/10(日) 06:37:40.29
>>184
なるほど!ありがとう!
カリー化ってなに?
2013/03/10(日) 08:04:13.70
ggrks
2013/03/10(日) 08:40:49.96
>>185
http://www.ajinomoto.co.jp/consomme/remake_recipe/
2013/03/10(日) 10:37:35.20
ググレカリー
189 忍法帖【Lv=3,xxxP】(1+0:5)
垢版 |
2013/03/12(火) 07:53:06.74
どーせカリーとか言ってるだけでほんとは意味知らない人多いんでしょ
2013/03/12(火) 08:10:14.32
ジョン・スカリー
2013/03/12(火) 08:21:09.79
野菜をいちどきに鍋にぶちこむのではなく火の通りにくい順に入れていくこと
2013/03/12(火) 11:12:20.87
たまねぎだけ先に炒めて入れる
193デフォルトの名無しさん
垢版 |
2013/03/12(火) 11:59:13.57
CoffeeScriptからExcelで迷路を描く方法を教えてください
2013/03/12(火) 12:44:42.75
WSHでJScript使えばなんとかなりそう
2013/03/12(火) 13:01:48.39
CoffeeScriptはJScriptでも動くんですか?
2013/03/12(火) 15:15:25.77
http://toro.2ch.net/test/read.cgi/tech/1358937029/
197trydev
垢版 |
2013/03/26(火) 00:27:54.23
Objective-○ みたいなの、、、
うごかないけどorz

@implementation = (obj) ->
  @[k] = obj[k] for k of obj

@implementation CSObject: (obj) ->
  # not implementation.

@implementation Test: CSObject
  constructor: ->
    alert "Hello,World!"

test = [[Test alloc] init]
198デフォルトの名無しさん
垢版 |
2013/03/29(金) 00:20:14.82
railsの公式サポートにあってcoffeescript使い出したら普通のjsが書けなくなるほどドップリはまった
ある程度書ける人からしたらおせっかいなのかもしれないけど、自分みたいなDOM操作ばかりの人間には非常に使いやすい
199デフォルトの名無しさん
垢版 |
2013/05/25(土) 12:29:57.80
Webのフロントエンド書く仕事でCoffeeScript、趣味でTypeScriptだけど
結局、サーバーサイドを何で書くか次第な気がしてきた。

サーバ側がRubyやPythonで書かれていれば、サーバ側技術者が馴染みやすいのはCoffee。
サーバ側がJavaやC#だったら、TypeScript。
2013/06/07(金) 16:54:13.06
>>199
良いこと書いてるね
リツイートだわ
2013/06/07(金) 23:49:53.21
これ書きやすいけど見にくいね
2013/06/08(土) 00:12:52.78
Pythonの人やRubyistに書かせると綺麗になる(作者のAshkenasがそうなので)
PHP/JavaScript上がりの人に書かせると破綻しそうではある

大規模プロジェクトならやっぱTypeScriptなんだろうけど、5000行ぐらいまではcoffeeでいい
2013/06/08(土) 04:14:48.83
Haxe「(/ω・\)チラッ」
JSX「|冫、)ジー」
2013/06/08(土) 18:22:54.75
基本、括弧を書かなくていいのは地味にラクなんだけど
後から見にくいんだよな
205デフォルトの名無しさん
垢版 |
2013/06/08(土) 18:37:56.27
なんでVBの真似なんかしちゃったんだろ
2013/06/09(日) 01:05:16.45
>>204
実際のプロジェクトで使うとそうなんだよな・・

ただオブジェクトリテラルのネストがすごい見やすくなるのはでかい
自分はGrunt.jsの設定ファイルだけにcoffee使ってる
これは使わないと損するレベル
2013/06/10(月) 06:11:50.68
関数実行時のカッコが省略できるのは見にくいので
カッコを省略しないで書こう
2013/06/11(火) 04:47:18.31
ああ
2013/06/13(木) 14:04:45.48
github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS/_history

javaのひとは groovy のほうが馴染むだろうか grail もあるし

というかインデント記法の言語というので全部書くのは
なかなか辛いケースもありそうだな…
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況