X



CoffeeScript

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2011/11/11(金) 03:21:00.78
について語るスレ
0129デフォルトの名無しさん
垢版 |
2012/10/04(木) 21:39:10.87
>>127
それ、欠点にしか思えないんだけどw

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

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

それによって得られるのは、わずか数文字、タイプ数を減らせるだけ。
タイプスピードどれくらい? 100文字/分? 200文字/分?
0132デフォルトの名無しさん
垢版 |
2012/10/04(木) 23:18:07.32
>>129 もう一回、読み直してみて。
0133デフォルトの名無しさん
垢版 |
2012/10/04(木) 23:20:45.95
読みづらいとか単なる慣れじゃないか。
0137デフォルトの名無しさん
垢版 |
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

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

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

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

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

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

cの利点か。(ruby, pythonとかのc拡張系もスタックトレースは読み易い傾向はあるか
0139デフォルトの名無しさん
垢版 |
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.

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

CoffeeScriptはPython風の構文と簡潔な文法(しか書けなくしてる)が特徴だけど、
IDEサポートの充実期待やjsのライブラリが開発環境でも同期できるなら、TypeScriptでもいいかなと思ってしまうな。
0145trydev
垢版 |
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()
0146trydev
垢版 |
2012/11/27(火) 01:25:01.49
あれれorz
0148デフォルトの名無しさん
垢版 |
2012/12/06(木) 17:48:11.07
慣れてる人にとっては必要ないかもしれないけど、
Chromeのデベロッパーツールで、CoffeeScriptコードをそのままデバッグできる方法があった。

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

CoffeeScriptReduxっていう非標準のCoffeeScriptコンパイラを使わないといけないのだけど、本家coffeeでも対応しないかなこれ。
0150デフォルトの名無しさん
垢版 |
2012/12/06(木) 20:49:03.33
>>149
そうなのか……。まだ、一部のコードがコンパイルできなかったりして、バグが多いんだが。開発は活発そうだし、頑張って欲しいね。
0152デフォルトの名無しさん
垢版 |
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()

ちなみに上のコードだと、出力結果が
名無しちゃん「親クラスのメソッドです」
になってしまいます。これを
タマ「親クラスのメソッドです」
という出力にしたいのですが……。
0153デフォルトの名無しさん
垢版 |
2012/12/08(土) 21:08:18.68
うお、インデントがなくなってしまった。
でも一応、分かりますよね?
0154デフォルトの名無しさん
垢版 |
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は使わない方が良いよ
0155デフォルトの名無しさん
垢版 |
2012/12/08(土) 21:48:59.28
>>154
レスありがとうございます。

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

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

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

ご指摘ありがとうございます。気をつけます。
0157デフォルトの名無しさん
垢版 |
2012/12/08(土) 22:34:27.19
>>156
ありがとうございます!
こんな書き方知りませんでした。勉強になります。
奥が深いなぁ。
0159デフォルトの名無しさん
垢版 |
2012/12/10(月) 16:57:16.81
>>158
なるほど。その書き方が一番良いかもしれませんね。
ありがとうございます!
0162デフォルトの名無しさん
垢版 |
2013/01/29(火) 06:31:45.86
0164デフォルトの名無しさん
垢版 |
2013/02/01(金) 19:28:13.12
pythonに影響を受けてるのはインデントブロックぐらいで
それ以外はrubyの影響が強いな とくにclassシンタックスまわり
0165デフォルトの名無しさん
垢版 |
2013/02/01(金) 20:05:29.96
ruby に良く似てるね
どちらかというと node.js が python に似てると思う
0166デフォルトの名無しさん
垢版 |
2013/02/09(土) 20:27:31.48
最近はTypeScriptの方が言語的に優れてていいって巷では言っているが、
どうなんだろ……。
0167デフォルトの名無しさん
垢版 |
2013/02/09(土) 21:31:45.39
Unix派(coffee) vs MS派(typescript) または静的型付け派 vs 動的型付け
の代理戦争っぽいところもある

JSクソといってたMSベッタリな知り合いは
TypeScript出た瞬間いやーJS未来ありますねって言ってて笑った
0170デフォルトの名無しさん
垢版 |
2013/02/10(日) 18:47:12.97
いずれ実現するんじゃないかな

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

で、現状 heap.coffee ってのが一番近いんだけどなんか目指してるものが微妙で、そんで動かん
0180 忍法帖【Lv=2,xxxP】(2+0:5)
垢版 |
2013/03/10(日) 00:06:37.29
>>172
それってどうやって使うの?呼び出す時
0185 忍法帖【Lv=2,xxxP】(1+0:5)
垢版 |
2013/03/10(日) 06:37:40.29
>>184
なるほど!ありがとう!
カリー化ってなに?
0189 忍法帖【Lv=3,xxxP】(1+0:5)
垢版 |
2013/03/12(火) 07:53:06.74
どーせカリーとか言ってるだけでほんとは意味知らない人多いんでしょ
0193デフォルトの名無しさん
垢版 |
2013/03/12(火) 11:59:13.57
CoffeeScriptからExcelで迷路を描く方法を教えてください
0197trydev
垢版 |
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]
0198デフォルトの名無しさん
垢版 |
2013/03/29(金) 00:20:14.82
railsの公式サポートにあってcoffeescript使い出したら普通のjsが書けなくなるほどドップリはまった
ある程度書ける人からしたらおせっかいなのかもしれないけど、自分みたいなDOM操作ばかりの人間には非常に使いやすい
0199デフォルトの名無しさん
垢版 |
2013/05/25(土) 12:29:57.80
Webのフロントエンド書く仕事でCoffeeScript、趣味でTypeScriptだけど
結局、サーバーサイドを何で書くか次第な気がしてきた。

サーバ側がRubyやPythonで書かれていれば、サーバ側技術者が馴染みやすいのはCoffee。
サーバ側がJavaやC#だったら、TypeScript。
0202デフォルトの名無しさん
垢版 |
2013/06/08(土) 00:12:52.78
Pythonの人やRubyistに書かせると綺麗になる(作者のAshkenasがそうなので)
PHP/JavaScript上がりの人に書かせると破綻しそうではある

大規模プロジェクトならやっぱTypeScriptなんだろうけど、5000行ぐらいまではcoffeeでいい
0205デフォルトの名無しさん
垢版 |
2013/06/08(土) 18:37:56.27
なんでVBの真似なんかしちゃったんだろ
0206デフォルトの名無しさん
垢版 |
2013/06/09(日) 01:05:16.45
>>204
実際のプロジェクトで使うとそうなんだよな・・

ただオブジェクトリテラルのネストがすごい見やすくなるのはでかい
自分はGrunt.jsの設定ファイルだけにcoffee使ってる
これは使わないと損するレベル
0209デフォルトの名無しさん
垢版 |
2013/06/13(木) 14:04:45.48
github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS/_history

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

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

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

ってやればいいだけですね。スレ汚しすまんでしたorz
0220デフォルトの名無しさん
垢版 |
2013/07/07(日) NY:AN:NY.AN
コード片を突っ込んでから目視で確認して直す分には便利
ライブラリまるごと突っ込むにはちょっと無理かな
0221デフォルトの名無しさん
垢版 |
2013/08/30(金) NY:AN:NY.AN
ほしゅ
0224デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
Coffeeが要らないと感じるくらい強力な補完が出来るエディタを使っているのだとしたら、別に無理してCoffee使う理由は全く無いと思うよ
0225デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
でもfunctionとreturnと括弧の補完さえできれば
CoffeeScriptのメリットの9割がなくなったも
同然だと思う。
0226デフォルトの名無しさん
垢版 |
2013/08/31(土) NY:AN:NY.AN
fでfunction %1(%2){%3}って置換してるしCoffeeScriptを書くのが苦痛
%nのところはtabで移動できるやつ、いわゆるvimのアレ

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

読み飛ばしてロジックだけ見ろよ。
■ このスレッドは過去ログ倉庫に格納されています

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