CoffeeScript

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2011/11/11(金) 03:21:00.78
について語るスレ
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 もあるし

というかインデント記法の言語というので全部書くのは
なかなか辛いケースもありそうだな…
2013/06/13(木) 16:54:26.66
やっぱ型あるほうがいいわ
CoffeeScriptで作ったのをTypeScriptやHaxeにそのまま手作業でコンバートしたら
とんでもない潜在的バグが発覚ってケースが何度も何度も。マジで
2013/06/15(土) 18:24:35.11
同じインデント記法でもPythonは読みやすいよ
変に弄らないでPythonの猿真似でよかったのにな
ただ一番の問題はシンタックスじゃなくて、JSやRubyに合わせて
インデント幅を2にしてると浅すぎてわかりにくいことだと思うけどね
Pythonだと規約でインデント幅4推奨だからな
2013/06/16(日) 00:27:57.21
>>211
http://editorconfig.org/
2013/06/22(土) 22:46:16.40
var宣言とかあった方が良くない?
どこのスコープで宣言してる変数なのか
何が使われているのかとか、分かりにくすぎる
2013/06/23(日) 00:49:50.71
>>213
Pythonはそれでうまくいっているという事実がある
ただインデントの話もそうだけど、最初からそれを大前提にして一から設計されたPythonとは違って
JavaScriptの仕様や慣習に縛られているので、その兼ね合いでいろいろと綻びが出ている
2013/06/28(金) 19:35:44.69
皆さん、JavaScriptで以下みたいなforループがあったとして

for (var i=0; i<max; i++) {
console.log(i);
}

CoffeeScriptでは同等のforループをどう書いてます?

for i in [0..max-1]
console.log i

ってやったら、max=0 の時に案の定うまくいかなかった。
すごい初歩的な質問でスミマセンorz
2013/06/28(金) 19:41:09.59
あ、自己解決しました。

for i in [0...max]
 console.log i

ってやればいいだけですね。スレ汚しすまんでしたorz
2013/07/02(火) NY:AN:NY.AN
http://js2coffee.org

みてると双方向で変換できるのは利点なんだな

typescirptもhaxeも一度出力したら元に戻すのはだいぶ困難だという…
なかなか上手くいかんな
2013/07/02(火) NY:AN:NY.AN
いや上の使っても綺麗には変換できないか…うーんorz
2013/07/03(水) NY:AN:NY.AN
使うか使うまいかまだ迷ってる俺ガイル
2013/07/07(日) NY:AN:NY.AN
コード片を突っ込んでから目視で確認して直す分には便利
ライブラリまるごと突っ込むにはちょっと無理かな
221デフォルトの名無しさん
垢版 |
2013/08/30(金) NY:AN:NY.AN
ほしゅ
2013/08/30(金) NY:AN:NY.AN
の難しい言語
2013/08/31(土) NY:AN:NY.AN
coffeescript使う意味ってあるんですか?
エディタの補完じゃだめなんですか?
2013/08/31(土) NY:AN:NY.AN
Coffeeが要らないと感じるくらい強力な補完が出来るエディタを使っているのだとしたら、別に無理してCoffee使う理由は全く無いと思うよ
225デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
でもfunctionとreturnと括弧の補完さえできれば
CoffeeScriptのメリットの9割がなくなったも
同然だと思う。
2013/08/31(土) NY:AN:NY.AN
fでfunction %1(%2){%3}って置換してるしCoffeeScriptを書くのが苦痛
%nのところはtabで移動できるやつ、いわゆるvimのアレ

強力な補完の定義がないからいまいち何を言いたいのか分からない
2013/08/31(土) NY:AN:NY.AN
functionとreturnと括弧の補完ができても
読むときにfunctionとreturnと括弧が邪魔で
ロジックに集中できず読み難い
228デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
>>227
いちいち、functionやreturnを読んでるの?

読み飛ばしてロジックだけ見ろよ。
2013/08/31(土) NY:AN:NY.AN
[>>228は馬鹿]もちろん[>>228は馬鹿]読み飛ばしてるに[>>228は馬鹿]決まってんだろ
でも[>>228は馬鹿]邪魔な情報が[>>228は馬鹿]挿入されていると[>>228は馬鹿]画面が
うるさくなって[>>228は馬鹿]読み難いんだよ
230デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
>>299
[>>229は馬鹿] 書き方が悪いんじゃね?w

[>>229は馬鹿] 普通キツキツに書かないよね?
空白改行入れるよね? [>>229は馬鹿]

お前 [>>229は馬鹿] が何を言いたくて
[>>229は馬鹿] そんな書き方をしているのか
さっぱりわからんわ。 [>>229は馬鹿]
2013/08/31(土) NY:AN:NY.AN
>>229>>230
やっぱ読みと飛ばせても要らない情報は邪魔だなw
2013/08/31(土) NY:AN:NY.AN
・functionタイプするのウザいわ <= 補完機能使え(提案が解決策になっている例)
・function読み飛ばすのウザいわ <= 根性で頑張れ(提案が解決策になっていない例)
233デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
>>231
情報量はどっちも同じだけど。

でないと関数を関数とみなせないってw

単に単語が違うだけ。

functionと=> だっけ?の違いだろう

どっちがわかりやすいか。
2013/08/31(土) NY:AN:NY.AN
1 + 2 * 3 と 1.add(2.product(3)) は情報量同じだよ、確かに

でも、1 + 2 * 3 が読みやすいと感じる奴に 1.add(2.product(3)) 使えって言うのは傲慢
coffee使っている奴にJS使えってのも同じ話
235デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
>>234
それは四則演算の書き方に慣れているだけだな。

functionには当てはまらない。
2013/08/31(土) NY:AN:NY.AN
>>235
いや、お前が当てはまるかどうかなんてどうでもいいんだが……
237デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
>>236
だからお前が当てはまるかもどうでもいいだろ。

ようは慣れだよ。

入力も別に問題ないし、
読むのも問題ない。
2013/08/31(土) NY:AN:NY.AN
大学でMLとかに触れる機会すら無かった
生粋のドカタには -> や => は見慣れんだろうなぁ

内包表記なんかも数学やってた奴には馴染みありまくりだが、
ドカタには不評だしなぁ
239デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
ただひとつ言えるのは、CoffeeScriptは
個人の作ったオレオレ言語であり
将来性に普及にも疑問があるということ。

これは大きなデメリット。
240デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
ブロックが {} じゃないから
CoffeeScriptは見にくい。
それだけで十分デメリットじゃねぇの?
241デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
>>238
原点とも言えるC言語にはないからね。
こちとら生粋のプログラマーなんで(笑)
242デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
>>239
そうなんだよね。

書き方がちょっと違うだけで、宣伝ほど
コードが減った感じがしないし、
将来性を考えると使うメリットがないかなって。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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