CoffeeScript

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
について語るスレ
2デフォルトの名無しさん:2011/11/11(金) 03:28:01.74
『煮解賭(にげと)』

明朝末期、中國北東部の男達の間で、素麗建(すれたて)なる遊びが流行していた。

先端に話題旗をくくりつけた棒を地面に立て、合図と共に棒に駆け寄りに旗を奪
い合うという、己の機敏さを誇示する遊びであった。

やがてこの遊びにも飽きた者達が、毒草を煮込んだ煮汁を飲み、その解毒剤を旗
代わりにして奪い合うという競技に発展させた。
これのせいで命を落とす者が続出したが、競走に勝利したものは現人神として賞
賛され、朝廷に仕える者を輩出するほどであった。

この、解毒剤を賭けた戦いは「煮解賭」と呼ばれ、時代を左右する勝負の場でも
最も信頼できる、決定権獲得試合として行われてきた。

己の速さを誇示できることの少なくなった現代社会においては、電子掲示板などで
「2ゲットォォ!」と、機会を変えて、現代人が機敏さを争っているのかもしれない。

(民明書房刊 「DNAに刻まれた勝負心 現代人の奇行のルーツを探る」より)
3デフォルトの名無しさん:2011/11/11(金) 03:37:12.00
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
4デフォルトの名無しさん:2011/11/17(木) 18:12:34.00
元々ロジックに厚みを持たせないjsが、多少楽に書けても、だからなんだって感じ。
node.jsで使うなら、まぁ分からんでもないが、それならmode.jsスレでやれと。
5デフォルトの名無しさん:2011/11/17(木) 22:04:40.06
久々に凄い言語が現れたと思う
芸術的な言語ってのを絵に描いたような言語
6デフォルトの名無しさん:2011/11/18(金) 01:33:21.06
lst.filter((x) -> x % 2 == 0)
lst.filter(x -> x % 2 == 0)

でぜんぜん違うコードを吐き出す
良い言語だと思うけど吐き出されるjavascript常にチェックしとかないとちょっと怖い
7デフォルトの名無しさん:2011/11/18(金) 14:35:48.17
つーか例えばC言語をマクロで別言語にしたら袋叩きなのに、
CoffeeScriptがあっさり受け入れられてしまうJavaScriptはすげえな。
よほどのクソ言語という傍証
8デフォルトの名無しさん:2011/11/18(金) 15:51:42.05
コーヒースクリプトって名前がダサすぎるよ
もっと洒落た名前だったら、使ってやろうかなという気も起きるんだが
9デフォルトの名無しさん:2011/11/18(金) 15:53:48.60
SwordOfLegendScript
10デフォルトの名無しさん:2011/11/18(金) 16:50:54.17
コーヒースクリプトって…。リテラシーがないやつは敵わんなw
11デフォルトの名無しさん:2011/11/19(土) 12:21:38.47
>>7
お前それギャグで言ってるの?
C++があれだけ受け入れられてるのにw
12デフォルトの名無しさん:2011/11/19(土) 12:46:39.99
cfrontのことを言っているのかテンプレートのことを言っているのか判断しかねるな。
13デフォルトの名無しさん:2011/11/19(土) 13:56:42.87
何にせよC言語にコンパイルするプログラミング言語なんていくらでもあるし
原理的にはほとんどの言語がそういう作りにすることが出来る
その言語をクソと判断する理由が全く不明
14デフォルトの名無しさん:2011/11/19(土) 14:54:32.35
なんかお節介な言語だな、これ
15デフォルトの名無しさん:2011/11/19(土) 16:34:22.21
まぁぶっちゃけ使ってない
16デフォルトの名無しさん:2011/11/20(日) 00:13:45.99
まともなフリーの開発環境がないに等しいのはしょうがないのか
rubymineやtextmateは良いらしいけど有料だし
17デフォルトの名無しさん:2011/12/02(金) 04:58:15.18
早くもオワコン
18デフォルトの名無しさん:2011/12/03(土) 13:49:37.83
え?JS書かずにCSで書けば良くね?って考えが浸透し始めてきた時期だと思ってたんだが…
19デフォルトの名無しさん:2011/12/03(土) 16:53:36.48
「射撃しつつ前進」の話にある援護射撃のような感じが少しする
20デフォルトの名無しさん:2011/12/13(火) 23:10:28.08
この手のjsにコンパイルする言語って自分用のものを自作したくなってくるよね
21pros and cons めどい:2011/12/20(火) 19:58:57.86
>>20
http://net.tutsplus.com/articles/interviews/should-you-learn-coffeescript/
http://news.ycombinator.com/item?id=3370428
http://franklinchen.com/blog/2011/11/06/the-real-reason-for-the-coffeescript-slash-javascript-flame-war/

tanepiper Tane Piper
A war against CoffeeScript is like a war against Atheism, a stupid
pointless war for silly strawman gods

http://core-js.org/documentation
https://github.com/raganwald/homoiconic/blob/master/2011/12/jargon.md
p.s. My friend Nikolai had this to say about CoffeeScript providing a
standard way to solve common JavaScript problems such implementing OOP:
"Those who do not learn from history, are doomed to repeat it."
http://xkcd.com/927/
22デフォルトの名無しさん:2012/02/03(金) 22:41:55.33
The little book on CoffeeScript : 全訳公開 - minghaiの日記
ttp://d.hatena.ne.jp/minghai/20120203/p1
23デフォルトの名無しさん:2012/03/18(日) 12:42:45.42
どうせなら、As3位にもっとOOP的に書けるやつとかいいな。
24デフォルトの名無しさん:2012/03/18(日) 12:53:28.97
Dart...
25デフォルトの名無しさん:2012/03/19(月) 10:53:44.78
jQueryを使ったfoo.coffeeを、コマンドラインで実行する方法ってあります?
26デフォルトの名無しさん:2012/03/19(月) 16:54:24.17
jQueryをnode.jsで動かしたいということか?
http://lmgtfy.com/?q=node.js+jquery
27デフォルトの名無しさん:2012/03/19(月) 17:11:55.91
>>26
いえ、node.jsでは動かしたくありません。

逆に質問なんですが、jQueryを使ったcoffeeスクリプトをコマンドラインで動かすには、
node.jsが必須ということですか?
であれば、しかたありません。node.jsを使います。
28デフォルトの名無しさん:2012/03/20(火) 07:18:05.44
ウィキ作った。
書くの手伝ってくれ。
http://goo.gl/vLauZ
29デフォルトの名無しさん:2012/03/21(水) 00:19:33.71
PerlスレやRubyスレにも同様の宣伝書き込みしてるようだな
Wikibooksでもいじってみれば?
30trydev:2012/03/27(火) 02:31:52.54
with 的なの出来ないかなと
ほんのちょっと試行錯誤したら出来たo(^-^)o
なんかちょっと幸せな気分だ…
(サンプルは .net を意識した訳じゃないよ多分)

using = (obj, func)->
__func.call(obj)

System =
__Console:
____WriteLine: (str)->
______document.writeln str + "<br>"

using System, ()->
[email protected] "Hello,World!"
[email protected] "1+1=#{1+1}"

(using 関数の func.call(obj) を try 〜 catch 〜 finally で囲ったら
更に幸せな感じが…自分のおつむが幸せなだけかしら)
31trydev:2012/03/27(火) 03:05:24.98
あっ func.call obj のほうが…もう遅いかorz
後、()-> じゃなくてもよいのかな。
まあ、finally で obj の終了処理書けそうだしよいかo(^-^)o
32trydev:2012/04/23(月) 03:48:31.85
何の意味もないかもだけど…
プロトタイプも同じ様に書けたorz

class Base
__constructor:->
____@name="Base"

Base::getName=->@name

base=new Base
alert base.getName() # Base

using=(obj,func)->func.call obj

using Base,->
__@::setName=(name)->@name=name

base.setName "Test"
alert base.getName() # Test
33trydev:2012/05/01(火) 16:15:48.37
using 関数にオブジェクトを渡して無名関数を返させ、
それに関数を渡して実行させるようにしました。
(もう訳わかりませんねorz)

タイプ数は結局変わらないけど、
(括弧であるかスペースとカンマの違い)
若干自然な感じになった気がします。

注) using と括弧の間にスペースを入れたり
-> を括弧に付けるとおかしくなります。

例) using (base)-> …

前者は using 関数に、
base を引数に持つ無名関数を渡しているようです。

例) using(base)-> …

後者は parse error がでていますので、
多分文法的におかしいのだと…
呼び出しなのか、定義なのか…
34trydev:2012/05/01(火) 16:20:50.00
以下サンプルです。
(気分で書いてますので、各コードで記法に統一性がみられないので悪しからずorz)
using = (obj)->
__(func)-> func.call obj

class Base
__pvalue = null
__constructor: ->
____pvalue = "Base"
__get: -> pvalue
__set: (value)->
____pvalue = value

base = new Base
alert base.get()

base.set "Hello"
using(base) ->
__alert @get()
__@set "Test"
__alert @get()
35trydev:2012/06/11(月) 02:37:15.41
Java スクリプトプログラマーズガイド見てて、
Java インターフェースの実装みたく
匿名クラス書けないかと思い無駄な時間を費やしてしもたorz

java =
_lang:
__Runnable: () ->
___(obj) ->
____clazz = () ->
____clazz::[p] = v for p, v of obj
____clazz

obj = new (java.lang.Runnable()
_run: () -> alert 'hello'
)

obj.run()

動いたo(^-^)o
で、ふと

obj = new Object
_run: () -> alert 'world'

obj.run()

当たり前だけどやっぱり動いたorz
てか、new Object すら要らない…
36trydev:2012/06/13(水) 01:00:39.70
クラスではなく、オブジェクトを返すように修正

java =
_lang:
__Runnable: () ->
___(obj) ->
____impl = {}
____impl[p] = v for p, v of obj
____impl

java.lang.Runnable::run = () ->
_alert 'Not implemented!?'

obj = new java.lang.Runnable() {
_run: () -> alert 'Hello,World!'
}

obj.run()
java.lang.Runnable::run()
37trydev:2012/06/13(水) 01:55:17.94
実装部を Interface 関数に移し、
new の際の括弧を省略可能に修正

Interface = (obj) ->
_impl = {}
_impl[p] = v for p, v of obj
_impl

Test = (obj) ->
_return Interface obj if obj
_(obj) -> Interface obj

Test::run = () -> alert 'Not implemented!?'

obj = new Test() {
_run: () -> alert 'Hello,World!'
}
obj.run()

obj = new Test
_run: () -> alert 'Hello,Work!'
obj.run()

obj = new Test
obj.run() # error
38デフォルトの名無しさん:2012/06/13(水) 10:36:52.14
全角スペースでインデントしろよ
39デフォルトの名無しさん:2012/06/13(水) 14:29:59.49
いや、&nbsp;にすべき。
40trydev:2012/06/13(水) 23:40:03.82
>>38-39
ずっとオ(ry
とりまサンクス

インターフェースを整理
かなりスッキリしたかな?
(何もしていない obj は御愛嬌)

Interface = (obj) ->
 (obj) ->
  return Interface.impl obj if obj
  (obj) -> Interface.impl obj

Interface.impl = (obj) ->
 impl = {}
 impl[p] = v for p, v of obj
 impl

Interface.notImplemented = () ->
 alert 'Not implemented!?'

Test = Interface
 run: Interface.notImplemented

obj = new Test
 run: alert 'Hello,World!'

obj.run()
41trydev:2012/06/14(木) 23:28:05.78
未実装なのに動く(!)ように修正
(空コンストラクタだと定義時に割り当てた Interface.notImpl が呼ばれる)
すると new 時の括弧省略なにそれな感じにorz

obj = new Test() { ... }

とは書けない、まあ要らないか...
あと、impl に合わせて notImpl に名前を短縮

Interface = (iobj) ->
 (obj=iobj) -> Interface.impl obj

Interface.impl = (obj) ->
 impl = {}
 impl[p] = v for p, v of obj
 impl

Interface.notImpl = () -> alert 'Not implemented!?'

Test = Interface {
 run: Interface.notImpl
}

obj = new Test
obj.run()

obj = new Test {
 run: () -> alert 'Hello,World!'
}
obj.run()
42trydev:2012/06/16(土) 23:12:37.12
定義したインターフェースのみ動作するように修正

Interface = (iobj) ->
 (obj=iobj) ->
  Interface.impl obj, iobj

Interface.impl = (obj, iobj) ->
 impl = {}
 impl[p] = obj[p] for p of iobj
 impl

OddEvenTest = Interface {
 run: null
 odd: null
 even: null
}

obj = new OddEvenTest {
 start: (n) -> @run n
 run: (n) ->
  alert "#{n} = #{@even n}"
 odd: (n) ->
  return @even n-1 if n
  'odd'
 even: (n) ->
  return @odd n-1 if n
  'even'
}
obj.run 100
obj.start 1 # error
43デフォルトの名無しさん:2012/06/16(土) 23:56:29.31
gistでやれ
44デフォルトの名無しさん:2012/06/17(日) 10:52:11.59
保守してくれてるんだから保守してもらえばいい。
45デフォルトの名無しさん:2012/07/12(木) 22:42:34.34
JSXとかもここ?
46trydev:2012/07/13(金) 08:13:07.51
つ CoffeeScriptファーストガイド モダンJavaScriptによるアプリケーション開発 (NEXTーONE):Amazon.co.jp:本
http://www.amazon.co.jp/gp/aw/d/4798125997/ref=redir_mdp_mobile

>>45
ここは CoffeeScript のスレだから、
戦わせる必要無いけど「JSX vs haXe」 とか

面白く無いけど
いっそ「【混ぜるな】JShaXe【危険】」

なり新しくスレを立てないとかな
47デフォルトの名無しさん:2012/07/22(日) 01:37:57.53
CoffeeScriptの名前の由来ってなんですか?
48デフォルトの名無しさん:2012/07/22(日) 02:50:08.85
>>47
Java
49デフォルトの名無しさん:2012/07/22(日) 11:12:51.71
>>48
Javaっていうかジャワコーヒーから?
よく分からんけど
50デフォルトの名無しさん:2012/07/22(日) 13:03:03.35
コーヒー自体を俗にJavaと呼ぶ。
51デフォルトの名無しさん:2012/07/27(金) 16:39:42.99
あっという間にオワコン化した気がするなこれ
何ヶ月か前にプチ論争になってたけど、JS生で書くのと迷うレベルじゃ駄目だわ
それどころか変態文法がES6にフィードバックされてJSの変態化に貢献してしまう有様
52デフォルトの名無しさん:2012/07/27(金) 16:42:39.65
数千行以下ならJSで変態テク使ったりせず普通に書く
数千行超えたらHaxeなりGWTなり、きちんとした静的JS変換言語使うでFAで。
CSは中途半端だった。
53デフォルトの名無しさん:2012/07/27(金) 16:44:41.81
最近話題にもならないDart
54デフォルトの名無しさん:2012/07/27(金) 16:47:10.75
>>53
あれもオワコン気味
一応ヲチしてるが最近仕様が激変していて追いつけん。

あとはJSXはがんばれ期待してるぞってところか。
55デフォルトの名無しさん:2012/07/27(金) 17:28:35.53
JSXよりHaxeがイケてる3つの理由
http://d.hatena.ne.jp/mzp/20120604/jsx
56デフォルトの名無しさん:2012/08/05(日) 06:32:35.58
      \       ヽ           |        /        /
          \      ヽ               /      /
‐、、         殺 伐 と し た ス レ に CoffeeScript が ! !  _,,−''
  `−、、                  __/\            _,,−''
      `−、、              _|    `〜┐         _,,−''
                      _ノ       ∫
                  _,.〜’        /
───────‐     ,「~             ノ    ───────‐
               ,/              ` ̄7
                |      H a x e   /
           _,,−'   ~`⌒^7            /    `−、、
        _,,−''            丿            \,      `−、、
 ,'´\           /  _7       /`⌒ーへ_,._⊃         /`i
 !   \       _,,-┐    \    _,.,ノ          r‐-、、      /   !
 ゙、   `ー--<´   /      L. ,〜’             ゙、  >−一'′   ,'
  y'  U      `ヽ/     /            ヽ      ヽ '´     U   イ
            ┏━━━┓  ┏━━┓  ┏┓    ┏┓
            ┗━┓┏┛  ┃┏━┛  ┃┗┓┏┛┃
            ┏┓┃┃    ┃┗━┓  ┏━┗┓━┛
            ┃┗┛┃    ┏━┛┃  ┃┏┛┗┓┃
            ┗━━┛    ┗━━┛  ┗┛    ┗┛
57デフォルトの名無しさん:2012/09/19(水) 22:29:00.34
JavaScript + jQuery と CoffeeScriptを比較したら
コード量は殆ど減らないよな。

行数が減るのは 括弧閉じのみのわずか数文字の行が省略出来るだけだし
文字数が減るののは、function と return の文字数のみ。
58デフォルトの名無しさん:2012/09/20(木) 09:22:46.43
>>57
>行数が減るのは 括弧閉じのみのわずか数文字の行が省略出来るだけだし
んなこたない、普通に色々な機能のお陰で減るだろ

jQueryは何か関係有るのか?
59デフォルトの名無しさん:2012/09/20(木) 10:37:42.33
>>57
どうでもいいっすね〜
60デフォルトの名無しさん:2012/09/20(木) 11:35:06.16
>>57
CoffeeScriptが解決するものは、jQueryのそれとは違うんだけどな。
つか、なんでJavaScript+jQueryとCofeeScript+jQueryを比べないの?
61デフォルトの名無しさん:2012/09/20(木) 14:11:39.72
バカだからjs→coffeeにベタ移植しかできないんだろうな
62デフォルトの名無しさん:2012/09/20(木) 16:48:34.42
jQueryありのJavscriptと、jQuery使用禁止のCoffeeの比較なんじゃないの
63デフォルトの名無しさん:2012/09/20(木) 16:51:13.19
なんでそんな比較するのかわからん
64デフォルトの名無しさん:2012/09/21(金) 03:18:50.12
>>60
なんでかというとつまりこういうこと。

----------------------------
jQuery = JavaScript拡張 + DOM操作
JavaScript + jQuery = JavaScript + JavaScript拡張 + DOM操作

----------------------------
CoffeeScript = JavaScript + JavaScript拡張
CoffeeScript + jQuery = JavaScript + JavaScript拡張×2 + DOM操作

----------------------------

JavaScript拡張×2ってのは結局同じような機能を二重に追加してるだけだから意味が無い。

だから、殆ど変わらないってこと。
65デフォルトの名無しさん:2012/09/21(金) 03:24:34.11
>>58
> んなこたない、普通に色々な機能のお陰で減るだろ

減らないとは言っていない。

ただ、100文字中の10文字減って嬉しい?ってこと
サンプルコードではなく実務レベルのコードだと、
自動インデントなどで勝手に入るスペースを除くと、1/10へればいいほうだと思う。

(JavaScriptでもセミコロン省けるの知ってるよね? forやifは一行でも書けるの知ってるよね?)

しかも1/10の中で多くを占めるのはfunctionとreturnの文字数だろう。
もし、エディタの自動入力機能を使っていたとしたら、タイプするの差は限りなく小さい。
66uy:2012/09/21(金) 05:44:06.06
この手のバカ減らないよな
タイプ速度にしても自動挿入と手打ちどっちが早いと思ってんだよ
インテリセンスとかタイプ遅いゴミカス用のバリアフリー機能じゃねえか
67デフォルトの名無しさん:2012/09/21(金) 06:53:42.06
>>64-65
jQueryとCoffeeScriptが同じような機能って、なんじゃそりゃ?
セミコロン省略?挙句に「forやifは一行でも書けるの知ってるよね?」だって?
レベル低すぎてマジで引くわ。お前どうせCoffeeScriptでjQueryが使えると思ってなかったとかそういうオチだろどうせ。

で、手元のファイルを見てみたけれど、実際1/10くらいしか減ってないのがほとんどだな
嬉しいか?って言われると正直何とも思わないな
68デフォルトの名無しさん:2012/09/21(金) 07:57:48.55
functionがうざすぎて可読性が落ちる
単純なタイプ数の問題じゃない

書き捨てのゴミコード量産してる奴には
可読性なんて関係ないけどね
どうせ読み直さないから
69デフォルトの名無しさん:2012/09/21(金) 11:44:29.64
> JavaScript + jQuery = JavaScript + JavaScript拡張 + DOM操作

> CoffeeScript = JavaScript + JavaScript拡張
を比べたら、CofeeScriptを使った時にDOM操作をベタで書かなきゃならないんだから、
そりゃコード量は同じか下手したらCofeeScriptを使った方が多くなるわ。

アホなの?
70デフォルトの名無しさん:2012/09/21(金) 12:38:41.90
>>69
だから最初からコード量に大差はないと言ってるだろw
71デフォルトの名無しさん:2012/09/21(金) 12:43:20.83
72uy:2012/09/21(金) 12:44:35.37
どちらにしろ中途半端言語触るくらいならjs直でいい
使用ユーザーの少ない言語で開発するっていうのは自分がバグを潰してあげるデバッガーに立候補するようなもん
73デフォルトの名無しさん:2012/09/21(金) 13:00:08.48
>>71
解決するもの言ってみな。
できないこと(不可能なこと)が、できるようになるんだよな?

結局のところ、文字数が少ないだけだろう?
74デフォルトの名無しさん:2012/09/21(金) 13:04:31.65
>>68
functionがあることと
可読性は別問題だよ。

75デフォルトの名無しさん:2012/09/21(金) 13:15:17.34
>>73
理解力ゼロだなお前。

>>57
> JavaScript + jQuery と CoffeeScriptを比較したら
> コード量は殆ど減らないよな。

>>60
> つか、なんでJavaScript+jQueryとCofeeScript+jQueryを比べないの?

>>64
> なんでかというとつまりこういうこと。
> JavaScript拡張×2ってのは結局同じような機能を二重に追加してるだけだから意味が無い。
> だから、殆ど変わらないってこと。

>>69
> CofeeScriptを使った時にDOM操作をベタで書かなきゃならないんだから、
> そりゃコード量は同じか下手したらCofeeScriptを使った方が多くなるわ。

>>70
> だから最初からコード量に大差はないと言ってるだろw

>>60
> つか、なんでJavaScript+jQueryとCofeeScript+jQueryを比べないの?

という流れだ。
76デフォルトの名無しさん:2012/09/21(金) 13:17:35.40
>>73
> 結局のところ、文字数が少ないだけだろう?

http://coffeescript.org/
読め。

まぁ、CofeeScriptのメリットがタイプする文字数が少なくなるだけだと思うんならそれでもいいんだが、
そもそもお前は「ほとんど変わらん」という主張じゃないのか?
77デフォルトの名無しさん:2012/09/21(金) 13:26:47.64
CofeeScriptにはあってjQueryにはないものは、
・class
・var
・===
あたりか。
78デフォルトの名無しさん:2012/09/21(金) 13:33:45.15
backbone.jsと一緒に使うと、幸せになれるらしいぞ。

俺は、cofeescriptもbackbone.jsも使ったことないけどw
79デフォルトの名無しさん:2012/09/21(金) 13:38:40.66
thisのバインド
80デフォルトの名無しさん:2012/09/21(金) 13:43:46.04
「CofeeScriptってタイプ量は減るけどただそれだけで、デメリットのが多いよ」

という主張ならわかるが、コード量が減らないという主張はどうかと思う。
CofeeScript知らずにdisってると思われても仕方が無い。
81デフォルトの名無しさん:2012/09/21(金) 13:50:00.66
>>76
それみて変わらんというのが
そもそもの発端なんだけどw

# CoffeeScript
number = -42 if opposite

# JavaScript
if (opposite) number = -42

前に持ってくるか後に持ってくるかだし。

JavaScriptの例は、関数にできることをインライン化して
書いてるだけで最後の例なんて、

# CoffeeScript (40文字)
cubes = (math.cube num for num in list)

# JavaScript+jQuery (59文字)
cubes = $.each(list, function(num){return math.cube(num)})

こうかけるよね。そのうちfunctionとreturnで14文字。を差し引くと5文字。
サンプルの差の大部分は、funcitonとreturnであることがわかるだろう?
82デフォルトの名無しさん:2012/09/21(金) 13:56:18.11
後者のeach/mapはCoffeeScriptのほうが段違いに読みやすいじゃないか
83デフォルトの名無しさん:2012/09/21(金) 13:56:28.56
>>81
じゃこれ、CofeeScriptの変換後のコードじゃなくお前なりのコードで同等のもの書いてみな。

class Animal
 constructor: (@name) ->

 move: (meters) ->
  alert @name + " moved #{meters}m."
84デフォルトの名無しさん:2012/09/21(金) 13:59:58.88
こっちもよろしく。

class Tweet extends Backbone.Model
 defautls:
  'from_user': ''
  'profile_image_url': ''
  'text': ''

class TweetList extends Backbone.Collection
 model: Tweet
 initialize: ->
 update: (query) ->
  api.getTweets(query).done (tweets) =>
   @reset(tweets)
   if not tweets.length then @trigger('noresults')
85デフォルトの名無しさん:2012/09/21(金) 14:04:11.10
>>84はかわいそうだからこっちでいいや。

class Foo
 constructor: (name) ->
  console.log name

class Bar extends Foo
 constructor: ->
  super 'unk'
86デフォルトの名無しさん:2012/09/21(金) 14:08:03.02
CoffeeScript: less typing, bad readability « Manuel Cerón
http://ceronman.com/2012/09/17/coffeescript-less-typing-bad-readability/
87デフォルトの名無しさん:2012/09/21(金) 14:08:07.02
function Animal(name) {
 return {
  move: function(meters) {
   alert (name + " moved ”+meters+"m")
  }
 }
}

これでいいのか? 1文字だけの行が省略できるってのが
CoffeeScriptのメリットだねw
88デフォルトの名無しさん:2012/09/21(金) 14:09:38.88
>>85
ちょっとでないといけないので、コピペ
http://d.hatena.ne.jp/sutara_lumpur/20110128/1296174208

var Parent = {
hoge:'hoge!'
};
var Child = $.extend({}, Parent, {
hoge:'fuga!',
echo:function(){ alert(this.hoge); }
});
Child.echo(); //『hoge!』ではなく『fuga!』と表示される
89デフォルトの名無しさん:2012/09/21(金) 14:13:36.34
>>87-88
別のものと比較してどうするんだ。
同等なコード書けよ。
90デフォルトの名無しさん:2012/09/21(金) 14:13:59.07
DropboxがブラウザサイドのJavaScriptを1週間でCoffeeScriptに書き換え–コードの可読性をアップ
http://jp.techcrunch.com/archives/20120913dropbox-rewrote-its-entire-browser-side-codebase-in-one-week/
91デフォルトの名無しさん:2012/09/21(金) 14:23:49.73
thisとかselfとか意識しなくて良いコードしか書いたことないんだろ
92デフォルトの名無しさん:2012/09/21(金) 14:33:50.37
JavaScriptにおける"クラス"も良くわかってなさそうだわ
93デフォルトの名無しさん:2012/09/21(金) 16:09:05.13
はい、一旦ただいまw
またすぐ出るけど。

>>89
書き方さえわかれば、同等のコードに置き換えられるだろ?

>>92
JavaScriptにクラスはないよ。
クラスを表現するには、オブジェクト(ハッシュ)を使う。
var obj = {}; //obj = オブジェクト
var obj = Obj( return {} ); //← Obj関数は{}を返す。Obj = クラス名相当

var obj = Obj(  return { method: function() {} } ); //メソッドを追加しました。

obj.method()を呼んだ時、methodの中でthisを参照すると、objオブジェクト自身にアクセスできる。
これを強制的に変更したい時は、applyやcallを使う。

selfは呼び出し元オブジェクト(this)ではなく、呼び出し先オブジェクト自身を参照したい時に、
内部でthisをself変数にとっておく。ときによく使われる変数名。この話のselfかな?

prototypeとか使い出すと、コードがもっと複雑になるけど、
jQueryを使えば>>88のように簡単に書けるんだ。
94デフォルトの名無しさん:2012/09/21(金) 16:21:44.60
>>88は、継承の書き方をコピペしただけだけど、

>>87は同等だと思うが?

var a = Animal('cat')
var b = Animal('dog)

a.move(1); // cat moved 1m
b.move(2); // dog moved 2m
95デフォルトの名無しさん:2012/09/21(金) 16:22:27.28
dogの終わりクオートを書き損じたw
96デフォルトの名無しさん:2012/09/21(金) 16:26:58.91
あ、わかったよw
nameプロパティの話か。

function Animal(name) {
 return {
  name: name,
  move: function(meters) {
   alert (this.name + " moved ”+meters+"m")
  }
 }
}

これでいいかい?
97デフォルトの名無しさん:2012/09/21(金) 18:16:11.60
>>96とか
プロトタイプベースのOOPのやり方知ってるか?
基本的に、プロトタイプベースで実装しないと、CoffeeScriptと同等にならない。
>>96のコードで
Animalにbark()ってメソッドを後から追加するにはどうするの?
98デフォルトの名無しさん:2012/09/21(金) 18:16:58.48
念のため言っとくと、

function Animal(name) {
 return {
  name: name,
  move: function(meters) {
   alert (this.name + " moved ”+meters+"m")
  }
  bark: function() {
  }
 }
}

ってことじゃないからな。
99デフォルトの名無しさん:2012/09/21(金) 18:19:05.48
あ、それから、newが何するか知ってるか?
10092:2012/09/21(金) 18:33:48.46
>>93
> JavaScriptにクラスはないよ。
そんなこと知ってるよ。だからクォートしてるんだよ。
「JavaScript クラス」でググってみなよ。みんな普通にクラスって言ってるから。

> prototypeとか使い出すと、コードがもっと複雑になるけど、
その複雑さを隠して簡単に書けるのがCofeeScriptなんだよ。
>>96がCofeeScriptのプロトタイプベースの実装と同等かどうかは、俺はそんなに
詳しくないからわからん。
protoとか__proto__とかnew使った時の挙動とか。
なんとなく違いそうだけど。
101デフォルトの名無しさん:2012/09/23(日) 17:29:19.40
     ,' /
     i .l
.    | 、
    、.\ ヽ
      、 \ . ヽ ._
         丶.   ‐  _
           ` ‐ _  (^o^)(^o^)
                  (ー(,, O┬O
                   ())'J_))
    「俺たちオワタ?」

    「ハジマル前からオワてたよ」
102デフォルトの名無しさん:2012/09/23(日) 21:25:42.54
>>99
> あ、それから、newが何するか知ってるか?

newはオライリーの「JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス」において
bad partsに指定されたものです。

必要ありませんし、基本的に使いません。

> > prototypeとか使い出すと、コードがもっと複雑になるけど、
> その複雑さを隠して簡単に書けるのがCofeeScriptなんだよ。

いいえ、JavaScriptライブラリです。
103デフォルトの名無しさん:2012/09/23(日) 21:28:47.45
使わんのと使えんのは話が別だから
104デフォルトの名無しさん:2012/09/24(月) 03:15:52.05
newを使わないって、プロトタイプチェーンをまったく使わないってこと?
オブジェクトつくるときに属性とかメソッドを常に全部コピーしたりすんのか?
105デフォルトの名無しさん:2012/09/24(月) 06:59:49.49
http://coffeedoc.info/

documentation が決定版みたいのないのがいまいちこう惜しい

>>104
new キーワード使わないとインスタンス化できなくて取り回し
し難くないかとかか…
106デフォルトの名無しさん:2012/09/24(月) 10:25:53.32
>>102
newがbad partsって言われたから金輪際使わないよ、みたいな思考停止せずに、
例えばこんなページ読んでみたら?

JavaScriptのnewって本当にいらない子?
http://taiju.hatenablog.com/entry/20090706/1246840565

あと、プロトタイプベースのオブジェクト指向を完全理解したいなら、この本をおすすめする。
『オブジェクト指向JavaScript』
http://www.amazon.co.jp/dp/4048706705

「newなんか使わないよ」と無思考に言うのは、「オブジェクトなんかいらん。staticメソッドだけで十分」
とか言ってるおっさんと大差ないよ。

で、そんな面倒なこと知らなくていいのがCofeeScriptで、それに関しては利点として
認めても良いんじゃない?
107uy:2012/09/24(月) 10:25:59.55
プロトタイプOOはこんな言語でやるのやめたほうがいいよ
どんなマゾゲーっすか
108デフォルトの名無しさん:2012/09/24(月) 11:25:26.98
>>107
クライアントのUIが複雑になって、MVC的なことがやりたくなりMVCをサポートするフレームワークを
使おうとすると、嫌でもプロトタイプベースのOOをやらなきゃならなくなるよ。

事実上、クライアントの言語としてJavaScript以外を選択することはできないから、JavaScriptでできる
ことは見といた方がいいよ。
プロパティ全コピで継承らしきものができましたー、じゃかっこわるいでしょ。
109デフォルトの名無しさん:2012/09/24(月) 13:05:32.98
console.log([
[1,1,8]
[2,1,16]
]);

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

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

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

という訳ではないのだ。すくなくとも現状では。
114デフォルトの名無しさん:2012/09/25(火) 17:07:04.38
>>113
その話は、これまでの話の何と関係があるの?
115デフォルトの名無しさん: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
116デフォルトの名無しさん:2012/09/26(水) 10:27:46.51
>>115
コンパイル後のJavaScriptを実行せざるを得ないというのが、最大の問題。
117uy:2012/09/26(水) 11:01:39.38
>>108
バカだな・・・
忠告はしたぞ
118デフォルトの名無しさん:2012/09/26(水) 14:49:03.70
歯臭せー
119デフォルトの名無しさん: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
120デフォルトの名無しさん:2012/09/28(金) 21:05:02.30
coffeeは>>109みたいに省略可能な部分が行き過ぎてる
具体的に言うとrubyに影響受けすぎ
121デフォルトの名無しさん:2012/10/02(火) 05:35:16.93
>>116
それのどこが問題なのだ。
ブラウザをリロードするのと、IDEからキー一発で実行するのと手間はまったく変わらんぞ?
だいたい、もはやHTMLもCSSもJavaScriptも人間が直接書くものではない。

つか今度はMSから新言語出てきたぞw>TypeScript
もはや何でもありだな。
122デフォルトの名無しさん:2012/10/02(火) 05:43:22.96
Dartのようなものがまた一つ増えたのか・・・
123デフォルトの名無しさん:2012/10/02(火) 07:31:08.53
それも全てJavascriptがゴミ過ぎるから
124デフォルトの名無しさん: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はよく知らない。
126デフォルトの名無しさん:2012/10/02(火) 20:55:15.71
> それらnew言語X用のUnitTestツールや静的解析ツール、カバレッジ測定ツールが存在し、

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

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

これができる必要は全くない
127デフォルトの名無しさん:2012/10/03(水) 12:53:49.72
coffeeのよさは

js2coffee
http://js2coffee.org/

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

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

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

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

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

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

それによって得られるのは、わずか数文字、タイプ数を減らせるだけ。
タイプスピードどれくらい? 100文字/分? 200文字/分?
130デフォルトの名無しさん:2012/10/04(木) 22:41:42.21
タイプ数(
131デフォルトの名無しさん: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
読みづらいとか単なる慣れじゃないか。
134デフォルトの名無しさん:2012/10/05(金) 04:03:55.04
読んでて楽しくないのはいくない
135デフォルトの名無しさん:2012/10/05(金) 18:54:16.04
知らんけど、若い言語で信者着いてるもんなんだね。立派立派。
136デフォルトの名無しさん:2012/10/05(金) 18:59:05.62
信者よりもアンチのほうが…
137デフォルトの名無しさん: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

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

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

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

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

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

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

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

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

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

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

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

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

CoffeeScriptReduxっていう非標準のCoffeeScriptコンパイラを使わないといけないのだけど、本家coffeeでも対応しないかなこれ。
149デフォルトの名無しさん:2012/12/06(木) 17:51:10.74
いろいろと対応無理だから新しいコンパイラを作ったんだよ
150デフォルトの名無しさん:2012/12/06(木) 20:49:03.33
>>149
そうなのか……。まだ、一部のコードがコンパイルできなかったりして、バグが多いんだが。開発は活発そうだし、頑張って欲しいね。
151デフォルトの名無しさん:2012/12/06(木) 22:15:02.75
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
うお、インデントがなくなってしまった。
でも一応、分かりますよね?
154デフォルトの名無しさん: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は使わない方が良いよ

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

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

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

で、現状 heap.coffee ってのが一番近いんだけどなんか目指してるものが微妙で、そんで動かん
171デフォルトの名無しさん:2013/02/10(日) 21:10:04.89
そして忘れ去られるDartとJSX。
172デフォルトの名無しさん:2013/02/12(火) 08:43:08.51
(x) -> (y) -> x+y
とか書けるから楽ちん
173デフォルトの名無しさん:2013/02/27(水) 16:49:12.93
1.5.0
174デフォルトの名無しさん:2013/02/27(水) 17:40:30.80
Ruby利用者が減ってCoffeeScript利用者が増えると予想
175デフォルトの名無しさん:2013/02/27(水) 21:15:20.27
まだまだクライアントでコールバックチェーンをちゃんと書ける人が少ない
176デフォルトの名無しさん:2013/03/09(土) 18:46:26.39
1.6.1
177デフォルトの名無しさん:2013/03/09(土) 20:03:32.91
sourcemap対応きたな
typescriptに先んじられてた部分に追いついた
178デフォルトの名無しさん:2013/03/09(土) 20:05:40.96
TypeScript -> PHPなやつが出たよ
Pratphall
http://pratphall.org/
179デフォルトの名無しさん:2013/03/09(土) 21:22:24.13
>>177
ようやく来たかー。
これでCoffeeScriptRedux使う理由はなくなったな。
180 忍法帖【Lv=2,xxxP】(2+0:5) :2013/03/10(日) 00:06:37.29
>>172
それってどうやって使うの?呼び出す時
181デフォルトの名無しさん:2013/03/10(日) 00:17:00.22
名前を付けない、それがクロージャ
javascriptと同じで変数に割り当てるんじゃ
182デフォルトの名無しさん:2013/03/10(日) 00:23:51.98
名前ついててもクロージャはクロージャなのじゃ
183デフォルトの名無しさん:2013/03/10(日) 00:28:12.70
ご苦労じゃな
184デフォルトの名無しさん: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
なるほど!ありがとう!
カリー化ってなに?
186デフォルトの名無しさん:2013/03/10(日) 08:04:13.70
ggrks
187デフォルトの名無しさん:2013/03/10(日) 08:40:49.96
188デフォルトの名無しさん:2013/03/10(日) 10:37:35.20
ググレカリー
189 忍法帖【Lv=3,xxxP】(1+0:5) :2013/03/12(火) 07:53:06.74
どーせカリーとか言ってるだけでほんとは意味知らない人多いんでしょ
190デフォルトの名無しさん:2013/03/12(火) 08:10:14.32
ジョン・スカリー
191デフォルトの名無しさん:2013/03/12(火) 08:21:09.79
野菜をいちどきに鍋にぶちこむのではなく火の通りにくい順に入れていくこと
192デフォルトの名無しさん:2013/03/12(火) 11:12:20.87
たまねぎだけ先に炒めて入れる
193デフォルトの名無しさん:2013/03/12(火) 11:59:13.57
CoffeeScriptからExcelで迷路を描く方法を教えてください
194デフォルトの名無しさん:2013/03/12(火) 12:44:42.75
WSHでJScript使えばなんとかなりそう
195デフォルトの名無しさん:2013/03/12(火) 13:01:48.39
CoffeeScriptはJScriptでも動くんですか?
196デフォルトの名無しさん:2013/03/12(火) 15:15:25.77
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。
200デフォルトの名無しさん:2013/06/07(金) 16:54:13.06
>>199
良いこと書いてるね
リツイートだわ
201デフォルトの名無しさん:2013/06/07(金) 23:49:53.21
これ書きやすいけど見にくいね
202デフォルトの名無しさん:2013/06/08(土) 00:12:52.78
Pythonの人やRubyistに書かせると綺麗になる(作者のAshkenasがそうなので)
PHP/JavaScript上がりの人に書かせると破綻しそうではある

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

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

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

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

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

ってやればいいだけですね。スレ汚しすまんでしたorz
217デフォルトの名無しさん:2013/07/02(火) NY:AN:NY.AN
http://js2coffee.org

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

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

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

読み飛ばしてロジックだけ見ろよ。
229デフォルトの名無しさん: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は馬鹿]
231デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
>>229>>230
やっぱ読みと飛ばせても要らない情報は邪魔だなw
232デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
・functionタイプするのウザいわ <= 補完機能使え(提案が解決策になっている例)
・function読み飛ばすのウザいわ <= 根性で頑張れ(提案が解決策になっていない例)
233デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
>>231
情報量はどっちも同じだけど。

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

単に単語が違うだけ。

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

どっちがわかりやすいか。
234デフォルトの名無しさん: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には当てはまらない。
236デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
>>235
いや、お前が当てはまるかどうかなんてどうでもいいんだが……
237デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
>>236
だからお前が当てはまるかもどうでもいいだろ。

ようは慣れだよ。

入力も別に問題ないし、
読むのも問題ない。
238デフォルトの名無しさん: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
そうなんだよね。

書き方がちょっと違うだけで、宣伝ほど
コードが減った感じがしないし、
将来性を考えると使うメリットがないかなって。
243デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
そもそもML使うような層はJavascriptなんて使わない
根本的に住んでる世界が違う
244デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ML使う層はものづくりの層ではないからな。
245デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ドカタしか使わない言語に
関数型言語風の表記を取り入れるとか、
明らかにニーズを取り違えている
流行るワケが無い
246デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ドカタって言葉が好きなのかな?
日本のことを鬼子とかいう韓国人っぽいね。
247デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
しかし、いつまで経ってもドカタからネガティブなイメージが抜けないな
やっぱドカタ呼ばわりされてる奴等の実態が悲惨だからかな
248デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ソフトウェア開発に土方という言葉が合わないだけでしょ?

http://dictionary.goo.ne.jp/leaf/jn2/157529/m0u/%E5%9C%9F%E6%96%B9/
土木工事に従事する労働者。土工。

いつからソフトウェア開発が
土木工事になったの???
249デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
Wikipediaに記事があった

デジタル土方(デジタルどかた)
http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E5%9C%9F%E6%96%B9
250デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
wikipediaはどうでもいいよw
251デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
>>248
建設業の業態をそっくり真似たものだから
252デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
>>248
上流に高学歴、下流に低学歴が集まる所までそっくりだから
253デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
>>251
建設業の業態をそっくり真似たものは
一部の会社の話だろ。

何を言ってるんだろうか?
254デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ソフトウェア業界の全てが
建設業と同じ業態を真似てるわけじゃないし。
特にウェブ業界のほとんどは建設業とは全く違う。
255デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
いろんな形態があるのに
話も聞かないですぐにドカタって言ってる奴
あれは単に他人を見下したいだけだから気にするな。
大抵言ってる本人が自分の立場に満足してないだけ。
256デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ドカタとは呼ばなくとも兵隊と呼ぶ奴はリアルにたくさんいる
257デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
>>254
そうなんだよね。
IT業界がデジタル土方って言われる原因はSI系の企業が「大企業ほど」腐ってるせいなんだけど、
こういう会社に勤めてるPG()はCoffeeScriptを標準サポートしてるRuby on Railsとかを使った開発に掠ってないから
CoffeeScriptの将来性が疑問に見えちゃうんだろうね

NTTデータが偽装請負 直接指示どころか下請け富士ソフト社員を奴隷扱い、指摘後も対応せず
http://www.mynewsjapan.com/reports/458
258デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ほらみろ、変なことを言い出すから
せっかくのCoffeeScriptスレがあれる。
お前のせいだぞ。
259デフォルトの名無しさん:2013/09/01(日) 11:51:19.07
いまのJS界隈には、元からJSやってた奴ら、Rubyとかから流れ込んで来た奴ら、
Javaから流れ込んで来た奴らが混在してて、

わりと前の2グループはJSを改善していきたいと思ってるけど、

Javaから来た奴らは基準がJavaだから、現状のJSですら十分簡潔に書けると思ってるし、
何も変化しないことが善だと思ってる
260デフォルトの名無しさん:2013/09/01(日) 12:02:34.99
問題は実際にJavaScriptで十分に簡潔であるってこと。
ほんの少し文法を変えた将来性のない言語を
使う奴はいない。
261デフォルトの名無しさん:2013/09/01(日) 13:44:23.32
Pythonは誰が書いても似たようなコードになるって思想があるからこそ
インデント記法が成り立ってるのに、思想はRubyで構文はPythonってそりゃ無茶苦茶になるわな
262デフォルトの名無しさん:2013/09/01(日) 14:57:22.21
>>260
Javaドカタ発見
263デフォルトの名無しさん:2013/09/01(日) 17:17:32.88
>>233-258

までがたった一日でこんなに書き込みが@ID出ない板
夏休み終わりだからって伸びすぎだろ…

25レスだとこれくらいだぞ >>218-233
264デフォルトの名無しさん:2013/09/01(日) 17:20:03.28
>>223-258 の間違いだったわorz

たった一日で35レスか…

>>188-223

だなd
265デフォルトの名無しさん:2013/09/01(日) 18:35:30.83
これGrunt.coffee専用言語なんよ
それ以外で使う価値はない
266デフォルトの名無しさん:2013/09/01(日) 23:07:05.42
>>259
俺はJavaが誕生したときからずっとJavaやってきて
ここ4〜5年JavaScriptもやるようになったけど
ぜんぜん違和感なくやってるぞ。
Coffeeよりは、TypeScriptとかDartのほうがJava屋的には
馴染みやすいけど。

でも、たしかにエンタープライズ系のWeb開発やってる層だと
ブラウザ側に何かリッチな処理をさせるのって違和感あるみたいだ。

でも、これからはますますブラウザ側での処理の重要性って
上がっていくんだろうな。この流れに対応できないサーバーサイドの
開発者はどんどん落ちこぼれていくんだろう。
267デフォルトの名無しさん:2013/09/29(日) 02:06:43.74
やっぱ駄目だこれ
読みにくすぎ
268デフォルトの名無しさん:2013/09/29(日) 07:50:36.35
ハッカーには受けが良いけど、
ドカタには読み難く感じるらしいね
269デフォルトの名無しさん:2013/09/29(日) 15:11:56.52
ハッカー(自称パソコンの先生)ね
270デフォルトの名無しさん:2013/09/29(日) 15:28:38.66
あぁ、ここにもキチガイがいたw
271デフォルトの名無しさん:2013/10/19(土) 07:33:07.39
Spelunking into a module’s source due to bad docs,
only to discover CoffeeScript
http://i.imgur.com/KBNcZ.gif

http://tjholowaychuk.com/post/60433519326/spelunking-into-a-modules-source-due-to-bad-docs-only
272デフォルトの名無しさん:2013/11/03(日) 17:44:49.82
普段RubyとJSを同時に書いてる身としてはCoffeeScriptの方が段違いに脳が適応してくれるから重宝してまつ
生のJSだとunlessを無意識に使ったり、varを平気で書き忘れてまうねん
273デフォルトの名無しさん:2013/11/07(木) 22:47:23.49
>>257
俺がみたRailsプロジェクトの大半が中身が空の.coffeeばかりだったからgit rm *.coffeeしてpushしたけど怒られたことなかったよ
274デフォルトの名無しさん:2013/12/08(日) 22:13:51.51
http://www.similarweb.com/website/coffeescript.org#/#typescriptlang.org,haxe.org
AltJS競合がひたひたとやって来るYO
滞在時間に注目だな。
275デフォルトの名無しさん:2013/12/08(日) 22:16:15.51
http://www.similarweb.com/website/dartlang.org#/#coffeescript.org
Dartも思ったより頑張ってたが微妙なグラフ描いてるな
276デフォルトの名無しさん:2013/12/08(日) 23:37:17.96
Dartは消えてくれ
Javaと全く互換性のないJavaモドキって誰得だよ
わざわざ余計なものをJSの世界に持ち込まないでほしい
277デフォルトの名無しさん:2013/12/09(月) 11:43:48.53
DartはJSの消滅を狙ってるだろ
278デフォルトの名無しさん:2013/12/09(月) 12:05:48.13
時代はTypeScript
279デフォルトの名無しさん:2013/12/23(月) 23:21:48.32
DartもWebMもWebPもWebSocketもSPDYもみーんな同じ会社が同じ目的のためにやってること
280デフォルトの名無しさん:2013/12/24(火) 20:55:26.75
社内にドッグフード食べさせることが出来れば、加速的に成長するんだろうけどdartはあまり芳しくなさそう。
281デフォルトの名無しさん:2013/12/24(火) 21:01:06.40
http://www.transcriptsearch.com.es
講演ビデオの英語字幕探すサービスなんてあるんだ。
ただスパムサイトに見える、、、
282デフォルトの名無しさん:2014/01/02(木) 10:58:34.98
coffeedocの書き方がよく分かるサイト教えてくださいm(_ _)m
283デフォルトの名無しさん:2014/01/02(木) 11:01:48.02
あ、ごめんやっぱcodoっての使ってみる
284デフォルトの名無しさん:2014/01/18(土) 17:15:05.45
もっと早く使えば良かった。書いてて気持ちいい。
285デフォルトの名無しさん:2014/01/19(日) 10:58:46.02
いいよな。
grunt使えば自動コンパイルしてくれるし
ブラウザの自動更新までしてくれるからデメリット無いわ
286デフォルトの名無しさん:2014/01/19(日) 21:47:32.02
ハッシュをYAMLっぽく書けるのが良いですね
287デフォルトの名無しさん:2014/01/23(木) 02:51:11.53
Railsコミュニティは何故、CoffeeScriptなんぞ採用したのか
全部、JSで書いた方が効率良いだろ
288デフォルトの名無しさん:2014/01/23(木) 08:34:48.34
JSがうんこだからに決まってる
馬鹿にはゴミっぷりが理解できないらしいが
289デフォルトの名無しさん:2014/01/23(木) 08:58:24.07
時代はTypeScript
290デフォルトの名無しさん:2014/01/23(木) 14:14:45.90
生のjsはリファクタリングする気にもならない・・・
291デフォルトの名無しさん:2014/01/23(木) 14:28:28.36
すぐに下品な言葉を使う男ってダサい
本人は理解できてないみたいだけど(24歳OL)
292デフォルトの名無しさん:2014/01/23(木) 14:46:56.80
CoffeeってJSが次世代JSに移行したら用済みよね?
293デフォルトの名無しさん:2014/01/23(木) 16:26:41.62
またしょうもない言語を作ってみろ
その時は第二、第三のコーヒースクリプトが
294デフォルトの名無しさん:2014/01/25(土) 00:16:23.43
お前らってjavascriptより良い言語作れないのに
javascriptのことバカにすんのな
295デフォルトの名無しさん:2014/01/25(土) 01:06:20.63
>>293
マンモスウレピー
ttp://mammouth.wamalaka.com/
296デフォルトの名無しさん:2014/01/30(木) 10:55:06.90
1.7.0きたー
メソッドチェーン改良
297デフォルトの名無しさん:2014/02/05(水) 15:22:45.71
ねえねえ、
test = (->
 hoge
)()
これもっと綺麗に書く方法ある?

test = ->
 hoge
()
だと怒られる
298デフォルトの名無しさん:2014/02/05(水) 15:25:01.87
あ、
test = do->
 hoge

か、スマソ。
299デフォルトの名無しさん:2014/02/05(水) 15:29:34.02
ちゃうちゃう
(test = ->
 hoge)()

を綺麗に書く方法だった。
test = ->
hoge
test()

とか気持ち悪い。
300デフォルトの名無しさん:2014/02/12(水) 22:35:31.24
>>299

do test = ->
 hoge

でOK。
301デフォルトの名無しさん:2014/03/09(日) 19:03:49.61
coffee使っても隠し切れないjavascriptのクソさ・・・
302デフォルトの名無しさん:2014/03/10(月) 03:51:02.98
誤魔化すための言語だししょうがない
303デフォルトの名無しさん:2014/03/10(月) 11:23:42.42
coffee使ってもごまかせないって話
304デフォルトの名無しさん:2014/03/10(月) 12:40:43.45
やはりtypescriptなのか
305デフォルトの名無しさん:2014/03/10(月) 19:08:23.41
typescriptはむしろ誤魔化すのを諦めた人向けじゃね
306デフォルトの名無しさん:2014/03/11(火) 03:40:32.61
Dart煮汁
307デフォルトの名無しさん:2014/03/11(火) 11:24:02.35
Dartは個人情報送信されないかガチで心配
308デフォルトの名無しさん:2014/03/11(火) 14:56:45.86
309デフォルトの名無しさん:2014/03/11(火) 20:10:12.88
Dartは文法がダサくて嫌い。
わざわざjavascriptリプレスするのがあんな古臭い言語とか。。
310デフォルトの名無しさん:2014/03/14(金) 07:53:16.34 ID:AnOucO91
Haxe
311デフォルトの名無しさん:2014/03/19(水) 05:59:24.74 ID:hkFV9ojg
>>310
へー!こんなのあるんだ
jsはcoffee使ってもコールバッグ地獄対応しなきゃいけないから気持ち悪いんだよね
jQueryDeffered使ってるけどすべての関数をDeffered化するわけにもいかないし
Haxe使えば回避できる??
312デフォルトの名無しさん:2014/03/19(水) 12:58:38.79 ID:RH30AtWa
Haxe...んーまあ、そう。見ればね。分かるよね。うん。

というか、すでにスクリプト言語じゃないというね。
アプローチはかつての Java 思想を思わせる。
またそれをやりたいのか?っていう。
313デフォルトの名無しさん:2014/03/19(水) 13:08:01.00 ID:enxZECDx
JavaではなくMLね。
314デフォルトの名無しさん:2014/03/30(日) 14:57:07.33 ID:hgyYQzzz
Web屋ならわかるだろうけど、coffeeの一番の利点は配列の,が不要なこと
IEでエラー吐くからすごく神経使ってたけど
coffeescriptはタイプミスの心配しないでいいしのびのび書けるわ
315デフォルトの名無しさん:2014/03/31(月) 10:17:42.35 ID:7W/yiWCF
IEが糞なだけ
316デフォルトの名無しさん:2014/03/31(月) 12:56:40.01 ID:qJWw1Lus
一番の利点がそれかよw
317デフォルトの名無しさん:2014/03/31(月) 20:44:53.69 ID:G98C7VS7
CoffeeScriptはGruntの設定ファイル専用言語だよ
318デフォルトの名無しさん:2014/04/08(火) 06:50:17.43 ID:ArRh86Ib
StratifiedJSとCoffeeScriptってやっぱ共存むりぽ?
jQueryDeferredとか面倒くさいっす
319デフォルトの名無しさん:2014/05/28(水) 18:08:54.69 ID:Y5P4j/H6
gulp導入してGrunt使わなくなったと同時に
この糞言語も使わなくなった

バイバイCoffeeScript
320デフォルトの名無しさん:2014/06/07(土) 17:39:03.43 ID:A0a7RyVi
ぷぷ
321デフォルトの名無しさん:2014/06/14(土) 19:28:24.12 ID:YLGOTgzi
>>318
Streamline.jsとかどお?
322trydev:2014/07/13(日) 16:20:30.09 ID:F2hThxmf
モジュールのテスト

インスタンス何それ、staticなロジック関数最高(?)誰得なscriptです。

使い方
module モジュール: 他のモジュール..
 プライベート: 値or関数
 static:
  パブリック: 値or関数
  main: ->
   alert @プライベート
   alert @他のプライベート
   alert モジュール.パブリック # むむ!
   alert 他のモジュール.他のパブリック # むむむむ!!

alert オブジェクト # [module モジュール]
モジュール.main() # モジュール.static.main()

今のところMain.static.mainをエントリポイントとしていますが、
サンプルの様にMain定義前の実行は可能です。
323trydev:2014/07/13(日) 16:21:32.96 ID:F2hThxmf
# モジュール化関数
# 変数の概要
# o ・・・ object
# m/n ・・ object名
# a ・・・ argument
# s ・・・ staticな関数名
module = (o) ->
 for m of o
  if typeof o[m] is 'function'
   @[m]= o[m]
  else
   @[m]=(a) ->
    for n of o[m]
     if typeof a[n] is 'undefined'
      a[n] = o[m][n]
    a
   for s of o[m]['static']
    @[m][s]=(a) ->
     o[m]['static'][s].call o[m], a
  @[m].toString=-> "[module #{m}] "
 try
  @Main.main.call @ if m is 'Main'
 catch e
324trydev:2014/07/13(日) 16:23:57.71 ID:F2hThxmf
# サンプル - Base.iをインクリメント・デクリメント・表示
module Base:
 i: 0
 static:
  main: ->
   alert @i

alert Base # [module Base]
Base.main() # 0

module Inc: Base
 inc: ->@i++

module Dec: Base
 dec: ->@i--

module Show: Base
 show: -> alert @i

# モジュールのMixinは関数の呼び出しなので
# 最後のモジュールに空のオプジェクトを渡す
module Program: Inc Dec Show {}

module Main: Program
 static:
  main: ->
   @show()# 0
   @inc()
   @show()# 1
   @dec()
   @show()# 0
325デフォルトの名無しさん:2014/07/13(日) 17:34:52.01 ID:InKoIVOW
>>319
gulpってどうなの?
周り誰も使ってなくてさ

gruntもgulpもcoffee対応してるよね
326デフォルトの名無しさん:2014/11/14(金) 08:40:34.87 ID:+I5kxLo5
>>325
coffeeの替わりに何を使うようになったのかは気になるな
327デフォルトの名無しさん:2014/11/29(土) 15:02:55.14 ID:iygsHyiP
ruby と python の両方の良いとこ取りしたような文法だが
どっちかというと ruby 寄りって感じか

javascript のソースを coffee script のコードに変換してくれるツールがあると嬉しいかも
328デフォルトの名無しさん:2014/11/29(土) 18:05:11.36 ID:tuXtIZcM
>>327
js2coffee
329デフォルトの名無しさん:2015/01/17(土) 10:52:55.38 ID:Myj9loPB
class の prototype に member 書かなくても

class A
constructor: (@hoge, @fuga) ->

で member 作れてしまいますが (prototype にはないけど)
こういう作り方は良くないですか?

ちゃんと

class B
hoge: null
fuga: null
constructor: (@hoge, @fuga) ->

って書くべき?
330デフォルトの名無しさん:2015/02/09(月) 18:21:49.65 ID:I5gyFCGl
>>329
多分大丈夫。俺はいちいち定義してない。
331デフォルトの名無しさん:2015/02/09(月) 18:24:45.55 ID:sBN76GX2
ありがとうございます
332330:2015/02/10(火) 02:10:18.03 ID:C6NMDC3K
どういたしまし。
ていうかこのスレ過疎りすぎ
coffeescript大好きなのに(´・ω・`)
333デフォルトの名無しさん:2015/02/10(火) 04:16:34.80 ID:S8aa6Cnw
良いよね
日本でRuby流行ってるって言うの嘘かもね
334330:2015/02/10(火) 05:29:12.28 ID:C6NMDC3K
>>333
ぶっ!!!
うちの会社でもRubyの時代だとかって
最近Ruby on Railsのプロジェクトまかされてるんだけど
マンセー記事多い割に詳細なドキュメント少なくて
「本当に流行ってるのか???」と思った。
とくにActiveRecord周りの具体的な使い方に関しては
書物にも乗ってないからすっごい苦戦している。
ほんとにRuby流行ってるのかなぁ…(まぁRubyも好きなんだけど)
335デフォルトの名無しさん:2015/02/10(火) 08:04:05.65 ID:Hs3TdF+4
Ruby に Python スパイスを振りかけて
使いやすくしたのが CoffeeScript って感じ

Ruby が本当に流行ってるなら CoffeeScript も流行ってないと可笑しいと思う
336デフォルトの名無しさん:2015/02/10(火) 10:24:46.06 ID:DWVi8Vxe
正直一時期よりCoffeeScript使われなくなってると思う
TypeScriptやHaxeやES6に行った人が多いと思う
337330:2015/02/10(火) 10:46:41.40 ID:C6NMDC3K
>>335
ルビーにパイソンのスパイスw
まずそー(てか硬くて食べれないよっ)

たしかにRuby流行ってるならCoffeeも流行ってないとおかしいってのは納得な気がする

RubyをCGI的に使ってるとか、ターミナルで直接叩いてますとかっていう技術者が
どれくらいいるのかわからないけど、あんまりいないだろう。

そう考えると、Rubyの人口の殆どがRailsの人口ともいえるわけで
Ruby大好きRailsプログラマが「Coffee使わないでわざわざピュアJSで書いてます☆」ってのはちょっと違和感あるもんね
「現場ではCoffeeなんてつかいません!」って話だったらそれRails自体そうなんじゃね?って突っ込みたいし

えっ!CoffeeからTypeやHaxeに流れてるのか!
あれらの言語は調べてわりとすぐに体が拒絶したんだけども
338デフォルトの名無しさん:2015/02/10(火) 12:33:34.46 ID:Hs3TdF+4
正直♀でも♂でも拒絶しない体になってしまったなんな
339デフォルトの名無しさん:2015/02/10(火) 12:44:49.80 ID:C6NMDC3K
アーッ!
340デフォルトの名無しさん:2015/02/11(水) 22:31:52.51 ID:Of8tP6uP
うーん?俺今仕事で普通に複数人でCoffeeScript書いてるし、
海外ライブラリも国内ブログでもCoffeeScriptが廃れたようには思えないけどな
浸透し過ぎて珍しくも無くなったから話題にならないだけじゃないの?
技術記事を書く時は他AltJSユーザーに配慮してコード部分
JSで公開するし
341デフォルトの名無しさん:2015/02/12(木) 00:58:36.92 ID:1AL5ToOl
今リリースが1.9.0だし2.0出たらまた盛り上がるんじゃない?
js2coffeeとかもやる気見たいだし
342デフォルトの名無しさん:2015/02/12(木) 07:10:59.46 ID:3fwCwvaR
浸透しすぎて話題ないのか
たしかにCoffee覚えるの簡単だし困ったら公式サイトで気軽にテストできるもんなあ

みんな愛情表現くらいしていいんだよ(〃∇〃)
343デフォルトの名無しさん:2015/02/13(金) 13:52:41.41 ID:dpVVOxpY
お世話になってます
344デフォルトの名無しさん:2015/02/13(金) 14:49:09.07 ID:RWhE8JtR
Railsってw
今もうAngular.js使ったSPAの話題しか聞かないのに
345デフォルトの名無しさん:2015/02/13(金) 15:34:51.87 ID:qJaCJPEr
Angular.coffee ってあるんだっけ
346デフォルトの名無しさん:2015/02/13(金) 20:13:14.31 ID:rccc0irz
>>344
えっ。マジ??
あれってSEO心配なんだけどバリバリ使われてるの?
347デフォルトの名無しさん:2015/02/13(金) 20:48:22.73 ID:hioZiCGH
たまによくみる
348デフォルトの名無しさん:2015/02/14(土) 11:25:18.74 ID:lFgM2s5i
どっちやねん
349デフォルトの名無しさん:2015/02/16(月) 20:33:06.97 ID:8Dfi/YyZ
まさにcoffee+angularで開発してるわ
ほとんど何の問題もなく使えてる
ごく稀に、暗黙のreturnでハマるくらい

Coffeeはいいけど、angularはダメだわ
何度殺意を抱いたか
仕方なく使ってるけど、なんであんなもんが流行ってるのか
皆目見当がつかない
あれみんな使ってるけど、みんな理解できてるのか
350デフォルトの名無しさん:2015/02/16(月) 22:35:50.45 ID:N4N5sFFI
具体的に
351デフォルトの名無しさん:2015/02/17(火) 11:21:44.36 ID:jRndRgSB
>>346
SEOは結構苦労してるみたいだね。
『"note"がAngularJSでどうやってSEO, Open Graphの対応をしているか』
https://note.mu/wadako/n/n01733b19bc9c

まあ、SEO関係ない所で使うのが無難だろうね。
352デフォルトの名無しさん:2015/02/19(木) 01:41:15.65 ID:a0KxJ8y/
>>349
Googleだからだよ。
CoffeeScriptで使うならMarionetteとかChaplinの方が良いと思うよ
353デフォルトの名無しさん:2015/03/01(日) 21:56:44.27 ID:YPGv4zkT
しかし消えるの速かったな。
「これから流行る」と言われている内に既に忘れ去られる勢い
354デフォルトの名無しさん:2015/03/02(月) 04:14:16.54 ID:AZdlh9F+
Dでさえしぶとく残ってるから大丈夫
355デフォルトの名無しさん:2015/03/04(水) 20:28:30.12 ID:quZrqNva
でさえってww
Dの扱いひどいなぁ
356デフォルトの名無しさん:2015/03/07(土) 05:47:24.04 ID:Pblk2qkc
かってに消えたことにしないでくれる?
357デフォルトの名無しさん:2015/03/07(土) 13:07:59.65 ID:BwtBK1ug
自動コンパイルに1番適してるのはどのツールですか?
色々あるみたいなので迷ってしまいます。
358デフォルトの名無しさん:2015/03/07(土) 13:28:19.12 ID:Pblk2qkc
ぼくはGrunt使ってる
359デフォルトの名無しさん:2015/03/08(日) 03:35:04.25 ID:KZDCEuvj
gulpも良い
360デフォルトの名無しさん:2015/03/08(日) 05:32:01.21 ID:K/fGoOtK
なんとなくgruntかgulpの二択な印象だったんだが迷うほどあったっけ
361デフォルトの名無しさん:2015/03/08(日) 08:38:38.97 ID:/MgTL3zQ
make最強
362デフォルトの名無しさん:2015/03/09(月) 17:59:31.82 ID:J9DOTshf
Angular2がTypeScriptベースになるらしいな
時代はTypeScript
363デフォルトの名無しさん:2015/03/10(火) 10:30:51.16 ID:X2FYky+4
そうなの?
364デフォルトの名無しさん:2015/03/10(火) 15:42:48.39 ID:GWDqHHzE
Angular アキ
365デフォルトの名無しさん:2015/03/10(火) 21:14:01.81 ID:X2FYky+4
新プロジェクトでAngular使いたいって訴えたけど
AngularはSEO的に信頼できないから無理とかいわれたよ。

まぁ、反論するどころか納得させられたからそれ以上求めなかったが。
366デフォルトの名無しさん:2015/03/10(火) 23:20:47.07 ID:tjx9AHBm
順調にRailsのDSL化が進行してるな
367デフォルトの名無しさん:2015/03/11(水) 05:12:23.67 ID:GVtyvoiQ
railsのdsl化かあ
既にそうなってると思ってたけど
完全ではないってことだよね?

ってスレチじゃね
368デフォルトの名無しさん:2015/03/11(水) 06:47:08.05 ID:fjEiTS5A
>>365
angularは難しすぎて開発が困難だからやめて正解
369デフォルトの名無しさん:2015/03/11(水) 08:25:35.12 ID:EDIhvA8q
>>365
同意せざるを得ない
370デフォルトの名無しさん:2015/03/11(水) 09:44:56.42 ID:vwfEuNBo
AngularがTSベースにしたかったのはアノテーションとかを生かしたかったからで
本来はTSをかくちょうしたAtScriptを使うつもりだった
371デフォルトの名無しさん:2015/03/11(水) 10:10:12.86 ID:3uN2N73I
>>368
難しいというより言語仕様と関係ないところの枝葉で覚えることが大杉なんだよな
フレームワークに縛られるのは嫌
372デフォルトの名無しさん:2015/03/11(水) 13:06:01.50 ID:cBNF0VnC
>>365
Angularは、SEO無関係のとこしか使えないっていうのを知らない人が多い。
373デフォルトの名無しさん:2015/03/11(水) 16:14:37.06 ID:PHn8RpkC
>>370
AtJSはTSに実行時型情報を持たせる拡張なので、あくまでTSの静的なクラス構造の存在が前提
分けて考えられるようなもんではないよ
実行時の振る舞いに影響するとなるとアプリもTS以外では書きにくくなるんだろうな
374デフォルトの名無しさん
TSの型情報はコンパイル時のためのものだがAtでは利用しない。
ランタイムエラーのためのもので、あくまでより良くするためで必須ではない。