1 :
デフォルトの名無しさん :
2011/11/11(金) 03:21:00.78 について語るスレ
2 :
デフォルトの名無しさん :2011/11/11(金) 03:28:01.74
『煮解賭(にげと)』 明朝末期、中國北東部の男達の間で、素麗建(すれたて)なる遊びが流行していた。 先端に話題旗をくくりつけた棒を地面に立て、合図と共に棒に駆け寄りに旗を奪 い合うという、己の機敏さを誇示する遊びであった。 やがてこの遊びにも飽きた者達が、毒草を煮込んだ煮汁を飲み、その解毒剤を旗 代わりにして奪い合うという競技に発展させた。 これのせいで命を落とす者が続出したが、競走に勝利したものは現人神として賞 賛され、朝廷に仕える者を輩出するほどであった。 この、解毒剤を賭けた戦いは「煮解賭」と呼ばれ、時代を左右する勝負の場でも 最も信頼できる、決定権獲得試合として行われてきた。 己の速さを誇示できることの少なくなった現代社会においては、電子掲示板などで 「2ゲットォォ!」と、機会を変えて、現代人が機敏さを争っているのかもしれない。 (民明書房刊 「DNAに刻まれた勝負心 現代人の奇行のルーツを探る」より)
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
元々ロジックに厚みを持たせないjsが、多少楽に書けても、だからなんだって感じ。 node.jsで使うなら、まぁ分からんでもないが、それならmode.jsスレでやれと。
久々に凄い言語が現れたと思う 芸術的な言語ってのを絵に描いたような言語
lst.filter((x) -> x % 2 == 0) lst.filter(x -> x % 2 == 0) でぜんぜん違うコードを吐き出す 良い言語だと思うけど吐き出されるjavascript常にチェックしとかないとちょっと怖い
つーか例えばC言語をマクロで別言語にしたら袋叩きなのに、 CoffeeScriptがあっさり受け入れられてしまうJavaScriptはすげえな。 よほどのクソ言語という傍証
コーヒースクリプトって名前がダサすぎるよ もっと洒落た名前だったら、使ってやろうかなという気も起きるんだが
SwordOfLegendScript
コーヒースクリプトって…。リテラシーがないやつは敵わんなw
>>7 お前それギャグで言ってるの?
C++があれだけ受け入れられてるのにw
12 :
デフォルトの名無しさん :2011/11/19(土) 12:46:39.99
cfrontのことを言っているのかテンプレートのことを言っているのか判断しかねるな。
何にせよC言語にコンパイルするプログラミング言語なんていくらでもあるし 原理的にはほとんどの言語がそういう作りにすることが出来る その言語をクソと判断する理由が全く不明
なんかお節介な言語だな、これ
まぁぶっちゃけ使ってない
まともなフリーの開発環境がないに等しいのはしょうがないのか rubymineやtextmateは良いらしいけど有料だし
早くもオワコン
え?JS書かずにCSで書けば良くね?って考えが浸透し始めてきた時期だと思ってたんだが…
「射撃しつつ前進」の話にある援護射撃のような感じが少しする
この手のjsにコンパイルする言語って自分用のものを自作したくなってくるよね
どうせなら、As3位にもっとOOP的に書けるやつとかいいな。
Dart...
25 :
デフォルトの名無しさん :2012/03/19(月) 10:53:44.78
jQueryを使ったfoo.coffeeを、コマンドラインで実行する方法ってあります?
27 :
デフォルトの名無しさん :2012/03/19(月) 17:11:55.91
>>26 いえ、node.jsでは動かしたくありません。
逆に質問なんですが、jQueryを使ったcoffeeスクリプトをコマンドラインで動かすには、
node.jsが必須ということですか?
であれば、しかたありません。node.jsを使います。
PerlスレやRubyスレにも同様の宣伝書き込みしてるようだな Wikibooksでもいじってみれば?
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 で囲ったら
更に幸せな感じが…自分のおつむが幸せなだけかしら)
31 :
trydev :2012/03/27(火) 03:05:24.98
あっ func.call obj のほうが…もう遅いかorz 後、()-> じゃなくてもよいのかな。 まあ、finally で obj の終了処理書けそうだしよいかo(^-^)o
32 :
trydev :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
33 :
trydev :2012/05/01(火) 16:15:48.37
using 関数にオブジェクトを渡して無名関数を返させ、 それに関数を渡して実行させるようにしました。 (もう訳わかりませんねorz) タイプ数は結局変わらないけど、 (括弧であるかスペースとカンマの違い) 若干自然な感じになった気がします。 注) using と括弧の間にスペースを入れたり -> を括弧に付けるとおかしくなります。 例) using (base)-> … 前者は using 関数に、 base を引数に持つ無名関数を渡しているようです。 例) using(base)-> … 後者は parse error がでていますので、 多分文法的におかしいのだと… 呼び出しなのか、定義なのか…
34 :
trydev :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()
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 すら要らない…
クラスではなく、オブジェクトを返すように修正 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()
実装部を 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
全角スペースでインデントしろよ
いや、 にすべき。
>>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()
未実装なのに動く(!)ように修正 (空コンストラクタだと定義時に割り当てた 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()
定義したインターフェースのみ動作するように修正 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
gistでやれ
保守してくれてるんだから保守してもらえばいい。
JSXとかもここ?
47 :
デフォルトの名無しさん :2012/07/22(日) 01:37:57.53
CoffeeScriptの名前の由来ってなんですか?
48 :
デフォルトの名無しさん :2012/07/22(日) 02:50:08.85
49 :
デフォルトの名無しさん :2012/07/22(日) 11:12:51.71
>>48 Javaっていうかジャワコーヒーから?
よく分からんけど
50 :
デフォルトの名無しさん :2012/07/22(日) 13:03:03.35
コーヒー自体を俗にJavaと呼ぶ。
あっという間にオワコン化した気がするなこれ 何ヶ月か前にプチ論争になってたけど、JS生で書くのと迷うレベルじゃ駄目だわ それどころか変態文法がES6にフィードバックされてJSの変態化に貢献してしまう有様
数千行以下ならJSで変態テク使ったりせず普通に書く 数千行超えたらHaxeなりGWTなり、きちんとした静的JS変換言語使うでFAで。 CSは中途半端だった。
最近話題にもならないDart
>>53 あれもオワコン気味
一応ヲチしてるが最近仕様が激変していて追いつけん。
あとはJSXはがんばれ期待してるぞってところか。
55 :
デフォルトの名無しさん :2012/07/27(金) 17:28:35.53
\ ヽ | / / \ ヽ / / ‐、、 殺 伐 と し た ス レ に 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 の文字数のみ。
>>57 >行数が減るのは 括弧閉じのみのわずか数文字の行が省略出来るだけだし
んなこたない、普通に色々な機能のお陰で減るだろ
jQueryは何か関係有るのか?
60 :
デフォルトの名無しさん :2012/09/20(木) 11:35:06.16
>>57 CoffeeScriptが解決するものは、jQueryのそれとは違うんだけどな。
つか、なんでJavaScript+jQueryとCofeeScript+jQueryを比べないの?
バカだからjs→coffeeにベタ移植しかできないんだろうな
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の文字数だろう。
もし、エディタの自動入力機能を使っていたとしたら、タイプするの差は限りなく小さい。
66 :
uy :2012/09/21(金) 05:44:06.06
この手のバカ減らないよな タイプ速度にしても自動挿入と手打ちどっちが早いと思ってんだよ インテリセンスとかタイプ遅いゴミカス用のバリアフリー機能じゃねえか
>>64-65 jQueryとCoffeeScriptが同じような機能って、なんじゃそりゃ?
セミコロン省略?挙句に「forやifは一行でも書けるの知ってるよね?」だって?
レベル低すぎてマジで引くわ。お前どうせCoffeeScriptでjQueryが使えると思ってなかったとかそういうオチだろどうせ。
で、手元のファイルを見てみたけれど、実際1/10くらいしか減ってないのがほとんどだな
嬉しいか?って言われると正直何とも思わないな
functionがうざすぎて可読性が落ちる 単純なタイプ数の問題じゃない 書き捨てのゴミコード量産してる奴には 可読性なんて関係ないけどね どうせ読み直さないから
> JavaScript + jQuery = JavaScript + JavaScript拡張 + DOM操作 と > CoffeeScript = JavaScript + JavaScript拡張 を比べたら、CofeeScriptを使った時にDOM操作をベタで書かなきゃならないんだから、 そりゃコード量は同じか下手したらCofeeScriptを使った方が多くなるわ。 アホなの?
70 :
デフォルトの名無しさん :2012/09/21(金) 12:38:41.90
>>69 だから最初からコード量に大差はないと言ってるだろw
72 :
uy :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があることと
可読性は別問題だよ。
>>73 理解力ゼロだなお前。
>>57 > JavaScript + jQuery と CoffeeScriptを比較したら
> コード量は殆ど減らないよな。
>>60 > つか、なんでJavaScript+jQueryとCofeeScript+jQueryを比べないの?
>>64 > なんでかというとつまりこういうこと。
> JavaScript拡張×2ってのは結局同じような機能を二重に追加してるだけだから意味が無い。
> だから、殆ど変わらないってこと。
>>69 > CofeeScriptを使った時にDOM操作をベタで書かなきゃならないんだから、
> そりゃコード量は同じか下手したらCofeeScriptを使った方が多くなるわ。
>>70 > だから最初からコード量に大差はないと言ってるだろw
>>60 > つか、なんでJavaScript+jQueryとCofeeScript+jQueryを比べないの?
という流れだ。
>>73 > 結局のところ、文字数が少ないだけだろう?
http://coffeescript.org/ 読め。
まぁ、CofeeScriptのメリットがタイプする文字数が少なくなるだけだと思うんならそれでもいいんだが、
そもそもお前は「ほとんど変わらん」という主張じゃないのか?
CofeeScriptにはあってjQueryにはないものは、 ・class ・var ・=== あたりか。
backbone.jsと一緒に使うと、幸せになれるらしいぞ。 俺は、cofeescriptもbackbone.jsも使ったことないけどw
thisのバインド
「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であることがわかるだろう?
後者のeach/mapはCoffeeScriptのほうが段違いに読みやすいじゃないか
>>81 じゃこれ、CofeeScriptの変換後のコードじゃなくお前なりのコードで同等のもの書いてみな。
class Animal
constructor: (@name) ->
move: (meters) ->
alert @name + " moved #{meters}m."
こっちもよろしく。 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')
>>84 はかわいそうだからこっちでいいや。
class Foo
constructor: (name) ->
console.log name
class Bar extends Foo
constructor: ->
super 'unk'
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
>>87-88 別のものと比較してどうするんだ。
同等なコード書けよ。
thisとかselfとか意識しなくて良いコードしか書いたことないんだろ
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") } } } これでいいかい?
>>96 とか
プロトタイプベースのOOPのやり方知ってるか?
基本的に、プロトタイプベースで実装しないと、CoffeeScriptと同等にならない。
>>96 のコードで
Animalにbark()ってメソッドを後から追加するにはどうするの?
念のため言っとくと、 function Animal(name) { return { name: name, move: function(meters) { alert (this.name + " moved ”+meters+"m") } bark: function() { } } } ってことじゃないからな。
あ、それから、newが何するか知ってるか?
100 :
92 :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ライブラリです。
使わんのと使えんのは話が別だから
newを使わないって、プロトタイプチェーンをまったく使わないってこと? オブジェクトつくるときに属性とかメソッドを常に全部コピーしたりすんのか?
107 :
uy :2012/09/24(月) 10:25:59.55
プロトタイプOOはこんな言語でやるのやめたほうがいいよ どんなマゾゲーっすか
>>107 クライアントのUIが複雑になって、MVC的なことがやりたくなりMVCをサポートするフレームワークを
使おうとすると、嫌でもプロトタイプベースのOOをやらなきゃならなくなるよ。
事実上、クライアントの言語としてJavaScript以外を選択することはできないから、JavaScriptでできる
ことは見といた方がいいよ。
プロパティ全コピで継承らしきものができましたー、じゃかっこわるいでしょ。
console.log([ [1,1,8] [2,1,16] ]); これでundefinedになるとかさっぱりわからん… インデックスのスライス表記か何かに解釈されてundefinedなんか
事故解決。[][a,b,c]で暗黙の了解でインデックスと解釈 添え字はcのみを取ってa,bは意味を成さないか…なるd
結局の所、CoffeeScriptはJavaScriptの単なるシンタックスシュガーにしかすぎず、 タイプ量が多少減る程度のメリットに比べれば、デメリットが大きすぎる。 Haxeみたいに積極的なメリットがあれば採用を考慮するに値するが、現状は積極的な メリットと呼べるほどのものは無い。
しょせん、スクリプト言語だしな。
>>113 その話は、これまでの話の何と関係があるの?
>>115 コンパイル後のJavaScriptを実行せざるを得ないというのが、最大の問題。
117 :
uy :2012/09/26(水) 11:01:39.38
歯臭せー
coffeeは
>>109 みたいに省略可能な部分が行き過ぎてる
具体的に言うとrubyに影響受けすぎ
>>116 それのどこが問題なのだ。
ブラウザをリロードするのと、IDEからキー一発で実行するのと手間はまったく変わらんぞ?
だいたい、もはやHTMLもCSSもJavaScriptも人間が直接書くものではない。
つか今度はMSから新言語出てきたぞw>TypeScript
もはや何でもありだな。
Dartのようなものがまた一つ増えたのか・・・
それも全てJavascriptがゴミ過ぎるから
>>121 エラーも静的解析ツールによる問題の指摘も、カバレッジも全て変換後のコードに対して行われ、
変換前のコードではそれらがどうなのかがわかりづらい。
また、あたりまえだが、何をするにしてもいちいち変換が必要。
なお、この問題は「JavaScriptに変換する系の言語/ツール/コンパイラ」に共通して言えることであり、
それらnew言語X用のUnitTestツールや静的解析ツール、カバレッジ測定ツールが存在し、
ブラウザが直接その言語を実行できるようになれば問題ない。
125 :
124 :2012/10/02(火) 13:52:01.88
上記デメリットを超えるメリットがあるなら、そのnew言語Xは採用を考慮するに値するが、 CoffeeScriptにはメリットと思えるようなものがほとんどない。 HaXeやMSの新言語には、上記デメリットを超えるメリットがあり、採用を考慮するに値する。 JSXは微妙。Dartはよく知らない。
> それらnew言語X用のUnitTestツールや静的解析ツール、カバレッジ測定ツールが存在し、 これは出来た方が良いけど、 > ブラウザが直接その言語を実行できるようになれば問題ない。 これができる必要は全くない
coffeeのよさは
js2coffee
http://js2coffee.org/ コードにある程度の可塑性を望めるところだろうか…
ほかのはプロプラのツールから生成した自動コード的な
色合いがどうしても強くなって、しまうま
しまうまとしまうまを
掛け合わせたら何ができるとか考えたら
なんか黒魔術っぽくて素敵やで!(中二病
次世代言語X 正式名称はTypedCoffeeDartedScriptX
129 :
デフォルトの名無しさん :2012/10/04(木) 21:39:10.87
>>127 それ、欠点にしか思えないんだけどw
変換しても可読性があるということは
単純なコードの置き換えしかしていない。
最適化やブラウザ依存対策なんかしてないということだ。
それによって得られるのは、わずか数文字、タイプ数を減らせるだけ。
タイプスピードどれくらい? 100文字/分? 200文字/分?
タイプ数(
Javascriptは読み難いんだよ タイプ数とか言ってるアホは論外
132 :
デフォルトの名無しさん :2012/10/04(木) 23:18:07.32
133 :
デフォルトの名無しさん :2012/10/04(木) 23:20:45.95
読みづらいとか単なる慣れじゃないか。
読んでて楽しくないのはいくない
知らんけど、若い言語で信者着いてるもんなんだね。立派立派。
信者よりもアンチのほうが…
ただ source map で対応関連の情報が取れても その先にある node 本体がまぁゆるい try catch の連続とデバック文埋め込みと ブラウザのデバッガ機能(これはjsオンリー) で凌がないといけないのは変わらないんではないかと > 変換系(coffee, typescriptなとなど goとかはセグフォで落ちる 使ってない変数とかあるとコンパイルが確実に止まる で問題の特定はしやすい… cの利点か。(ruby, pythonとかのc拡張系もスタックトレースは読み易い傾向はあるか
『TypeScriptが世に出てきてしまった以上、CoffeeScriptは「型付けのできないTypeScriptの出来損ない」みたいな存在になってしまったかなぁと。
>>140 それは全然違うでしょ
TypeScriptはCoffeeとは大分毛色の違う物だよ
でも今後はTypeScriptの方が流行りそうだね
・別の言語の一部だけから変換するもの ・JSに変換する目的で簡潔な構文のみ使えるもの ・上位互換(+静的型チェック)でJSの文法も使えるもの CoffeeScriptはPython風の構文と簡潔な文法(しか書けなくしてる)が特徴だけど、 IDEサポートの充実期待やjsのライブラリが開発環境でも同期できるなら、TypeScriptでもいいかなと思ってしまうな。
1.4
coffeeはruby風だと思う
145 :
trydev :2012/11/27(火) 00:40:10.66
# 名前付き引数みたいなの(構造的部分型かな) User = (Id: id, Name: name) -> &nbsp;&nbsp;alert id + ' ' + name User Name: 'Mochi', Id: '000' # 引数を省略したときの既定値 User = ( &nbsp;nbsp;{Id: id, Name: name} = {Id: '001', Name: 'Tarou'} ) -> &nbsp;&nbsp;alert id + ' ' + name User()
あれれorz
&#160;
148 :
デフォルトの名無しさん :2012/12/06(木) 17:48:11.07
いろいろと対応無理だから新しいコンパイラを作ったんだよ
150 :
デフォルトの名無しさん :2012/12/06(木) 20:49:03.33
>>149 そうなのか……。まだ、一部のコードがコンパイルできなかったりして、バグが多いんだが。開発は活発そうだし、頑張って欲しいね。
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
うお、インデントがなくなってしまった。 でも一応、分かりますよね?
>>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は使わない方が良いよ
ご指摘ありがとうございます。気をつけます。
Animal::func.apply(this) これでいけるけどほかにも書き方があるかもしれん
157 :
デフォルトの名無しさん :2012/12/08(土) 22:34:27.19
>>156 ありがとうございます!
こんな書き方知りませんでした。勉強になります。
奥が深いなぁ。
Cat.__super__.func.call(this)
159 :
デフォルトの名無しさん :2012/12/10(月) 16:57:16.81
>>158 なるほど。その書き方が一番良いかもしれませんね。
ありがとうございます!
node.jsやrails以外にこの言語の使いどころってあんの?
GreaseMonkeyとかのUserScriptsをCSで書いてるよ
162 :
デフォルトの名無しさん :2013/01/29(火) 06:31:45.86
ほ
CoffeeScript > pythonをjsでやってみたらこんなんでました って認識でおk?
pythonに影響を受けてるのはインデントブロックぐらいで それ以外はrubyの影響が強いな とくにclassシンタックスまわり
165 :
デフォルトの名無しさん :2013/02/01(金) 20:05:29.96
ruby に良く似てるね どちらかというと node.js が python に似てると思う
最近はTypeScriptの方が言語的に優れてていいって巷では言っているが、 どうなんだろ……。
Unix派(coffee) vs MS派(typescript) または静的型付け派 vs 動的型付け の代理戦争っぽいところもある JSクソといってたMSベッタリな知り合いは TypeScript出た瞬間いやーJS未来ありますねって言ってて笑った
乱立した挙句デファクトが決まらないまま、別に素のJSでいいという流れになりそう
数年後、そこにはTyped CoffeeScriptの元気な姿が…
いずれ実現するんじゃないかな CoffeeScriptの評判がいい点て軽量言語らしいゆるふわシンタックスで TypeScriptはコンパイラレベルの型があってIDEに統合に強い 現状TypeScriptをCoffeeScriptみたいなシンタックスで書けるコンパイラ出たら俺はそれに乗り換える コンパイラっていうかプリプロのプリプロだけどな で、現状 heap.coffee ってのが一番近いんだけどなんか目指してるものが微妙で、そんで動かん
そして忘れ去られるDartとJSX。
(x) -> (y) -> x+y とか書けるから楽ちん
1.5.0
Ruby利用者が減ってCoffeeScript利用者が増えると予想
まだまだクライアントでコールバックチェーンをちゃんと書ける人が少ない
1.6.1
sourcemap対応きたな typescriptに先んじられてた部分に追いついた
>>177 ようやく来たかー。
これでCoffeeScriptRedux使う理由はなくなったな。
180 :
忍法帖【Lv=2,xxxP】(2+0:5) :2013/03/10(日) 00:06:37.29
名前を付けない、それがクロージャ javascriptと同じで変数に割り当てるんじゃ
名前ついててもクロージャはクロージャなのじゃ
ご苦労じゃな
>>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 なるほど!ありがとう!
カリー化ってなに?
ggrks
ググレカリー
189 :
忍法帖【Lv=3,xxxP】(1+0:5) :2013/03/12(火) 07:53:06.74
どーせカリーとか言ってるだけでほんとは意味知らない人多いんでしょ
ジョン・スカリー
野菜をいちどきに鍋にぶちこむのではなく火の通りにくい順に入れていくこと
たまねぎだけ先に炒めて入れる
193 :
デフォルトの名無しさん :2013/03/12(火) 11:59:13.57
CoffeeScriptからExcelで迷路を描く方法を教えてください
WSHでJScript使えばなんとかなりそう
CoffeeScriptはJScriptでも動くんですか?
197 :
trydev :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。
これ書きやすいけど見にくいね
Pythonの人やRubyistに書かせると綺麗になる(作者のAshkenasがそうなので) PHP/JavaScript上がりの人に書かせると破綻しそうではある 大規模プロジェクトならやっぱTypeScriptなんだろうけど、5000行ぐらいまではcoffeeでいい
Haxe「(/ω・\)チラッ」 JSX「|冫、)ジー」
基本、括弧を書かなくていいのは地味にラクなんだけど 後から見にくいんだよな
205 :
デフォルトの名無しさん :2013/06/08(土) 18:37:56.27
なんでVBの真似なんかしちゃったんだろ
>>204 実際のプロジェクトで使うとそうなんだよな・・
ただオブジェクトリテラルのネストがすごい見やすくなるのはでかい
自分はGrunt.jsの設定ファイルだけにcoffee使ってる
これは使わないと損するレベル
関数実行時のカッコが省略できるのは見にくいので カッコを省略しないで書こう
ああ
github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS/_history javaのひとは groovy のほうが馴染むだろうか grail もあるし というかインデント記法の言語というので全部書くのは なかなか辛いケースもありそうだな…
やっぱ型あるほうがいいわ CoffeeScriptで作ったのをTypeScriptやHaxeにそのまま手作業でコンバートしたら とんでもない潜在的バグが発覚ってケースが何度も何度も。マジで
同じインデント記法でもPythonは読みやすいよ 変に弄らないでPythonの猿真似でよかったのにな ただ一番の問題はシンタックスじゃなくて、JSやRubyに合わせて インデント幅を2にしてると浅すぎてわかりにくいことだと思うけどね Pythonだと規約でインデント幅4推奨だからな
var宣言とかあった方が良くない? どこのスコープで宣言してる変数なのか 何が使われているのかとか、分かりにくすぎる
>>213 Pythonはそれでうまくいっているという事実がある
ただインデントの話もそうだけど、最初からそれを大前提にして一から設計されたPythonとは違って
JavaScriptの仕様や慣習に縛られているので、その兼ね合いでいろいろと綻びが出ている
皆さん、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
あ、自己解決しました。 for i in [0...max] console.log i ってやればいいだけですね。スレ汚しすまんでしたorz
いや上の使っても綺麗には変換できないか…うーんorz
使うか使うまいかまだ迷ってる俺ガイル
コード片を突っ込んでから目視で確認して直す分には便利 ライブラリまるごと突っ込むにはちょっと無理かな
221 :
デフォルトの名無しさん :2013/08/30(金) NY:AN:NY.AN
ほしゅ
の難しい言語
coffeescript使う意味ってあるんですか? エディタの補完じゃだめなんですか?
Coffeeが要らないと感じるくらい強力な補完が出来るエディタを使っているのだとしたら、別に無理してCoffee使う理由は全く無いと思うよ
225 :
デフォルトの名無しさん :2013/08/31(土) NY:AN:NY.AN
でもfunctionとreturnと括弧の補完さえできれば CoffeeScriptのメリットの9割がなくなったも 同然だと思う。
fでfunction %1(%2){%3}って置換してるしCoffeeScriptを書くのが苦痛 %nのところはtabで移動できるやつ、いわゆるvimのアレ 強力な補完の定義がないからいまいち何を言いたいのか分からない
functionとreturnと括弧の補完ができても 読むときにfunctionとreturnと括弧が邪魔で ロジックに集中できず読み難い
228 :
デフォルトの名無しさん :2013/08/31(土) NY:AN:NY.AN
>>227 いちいち、functionやreturnを読んでるの?
読み飛ばしてロジックだけ見ろよ。
230 :
デフォルトの名無しさん :2013/08/31(土) NY:AN:NY.AN
・functionタイプするのウザいわ <= 補完機能使え(提案が解決策になっている例) ・function読み飛ばすのウザいわ <= 根性で頑張れ(提案が解決策になっていない例)
233 :
デフォルトの名無しさん :2013/08/31(土) NY:AN:NY.AN
>>231 情報量はどっちも同じだけど。
でないと関数を関数とみなせないってw
単に単語が違うだけ。
functionと=> だっけ?の違いだろう
どっちがわかりやすいか。
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には当てはまらない。
>>235 いや、お前が当てはまるかどうかなんてどうでもいいんだが……
237 :
デフォルトの名無しさん :2013/08/31(土) NY:AN:NY.AN
>>236 だからお前が当てはまるかもどうでもいいだろ。
ようは慣れだよ。
入力も別に問題ないし、
読むのも問題ない。
大学で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 そうなんだよね。
書き方がちょっと違うだけで、宣伝ほど
コードが減った感じがしないし、
将来性を考えると使うメリットがないかなって。
そもそもML使うような層はJavascriptなんて使わない 根本的に住んでる世界が違う
ML使う層はものづくりの層ではないからな。
ドカタしか使わない言語に 関数型言語風の表記を取り入れるとか、 明らかにニーズを取り違えている 流行るワケが無い
ドカタって言葉が好きなのかな? 日本のことを鬼子とかいう韓国人っぽいね。
しかし、いつまで経ってもドカタからネガティブなイメージが抜けないな やっぱドカタ呼ばわりされてる奴等の実態が悲惨だからかな
wikipediaはどうでもいいよw
>>248 建設業の業態をそっくり真似たものだから
>>248 上流に高学歴、下流に低学歴が集まる所までそっくりだから
>>251 建設業の業態をそっくり真似たものは
一部の会社の話だろ。
何を言ってるんだろうか?
ソフトウェア業界の全てが 建設業と同じ業態を真似てるわけじゃないし。 特にウェブ業界のほとんどは建設業とは全く違う。
いろんな形態があるのに 話も聞かないですぐにドカタって言ってる奴 あれは単に他人を見下したいだけだから気にするな。 大抵言ってる本人が自分の立場に満足してないだけ。
ドカタとは呼ばなくとも兵隊と呼ぶ奴はリアルにたくさんいる
>>254 そうなんだよね。
IT業界がデジタル土方って言われる原因はSI系の企業が「大企業ほど」腐ってるせいなんだけど、
こういう会社に勤めてるPG()はCoffeeScriptを標準サポートしてるRuby on Railsとかを使った開発に掠ってないから
CoffeeScriptの将来性が疑問に見えちゃうんだろうね
NTTデータが偽装請負 直接指示どころか下請け富士ソフト社員を奴隷扱い、指摘後も対応せず
http://www.mynewsjapan.com/reports/458
ほらみろ、変なことを言い出すから せっかくのCoffeeScriptスレがあれる。 お前のせいだぞ。
いまのJS界隈には、元からJSやってた奴ら、Rubyとかから流れ込んで来た奴ら、 Javaから流れ込んで来た奴らが混在してて、 わりと前の2グループはJSを改善していきたいと思ってるけど、 Javaから来た奴らは基準がJavaだから、現状のJSですら十分簡潔に書けると思ってるし、 何も変化しないことが善だと思ってる
問題は実際にJavaScriptで十分に簡潔であるってこと。 ほんの少し文法を変えた将来性のない言語を 使う奴はいない。
Pythonは誰が書いても似たようなコードになるって思想があるからこそ インデント記法が成り立ってるのに、思想はRubyで構文はPythonってそりゃ無茶苦茶になるわな
これGrunt.coffee専用言語なんよ それ以外で使う価値はない
>>259 俺はJavaが誕生したときからずっとJavaやってきて
ここ4〜5年JavaScriptもやるようになったけど
ぜんぜん違和感なくやってるぞ。
Coffeeよりは、TypeScriptとかDartのほうがJava屋的には
馴染みやすいけど。
でも、たしかにエンタープライズ系のWeb開発やってる層だと
ブラウザ側に何かリッチな処理をさせるのって違和感あるみたいだ。
でも、これからはますますブラウザ側での処理の重要性って
上がっていくんだろうな。この流れに対応できないサーバーサイドの
開発者はどんどん落ちこぼれていくんだろう。
やっぱ駄目だこれ 読みにくすぎ
ハッカーには受けが良いけど、 ドカタには読み難く感じるらしいね
ハッカー(自称パソコンの先生)ね
あぁ、ここにもキチガイがいたw
普段RubyとJSを同時に書いてる身としてはCoffeeScriptの方が段違いに脳が適応してくれるから重宝してまつ 生のJSだとunlessを無意識に使ったり、varを平気で書き忘れてまうねん
>>257 俺がみたRailsプロジェクトの大半が中身が空の.coffeeばかりだったからgit rm *.coffeeしてpushしたけど怒られたことなかったよ
Dartは消えてくれ Javaと全く互換性のないJavaモドキって誰得だよ わざわざ余計なものをJSの世界に持ち込まないでほしい
277 :
デフォルトの名無しさん :2013/12/09(月) 11:43:48.53
DartはJSの消滅を狙ってるだろ
時代はTypeScript
DartもWebMもWebPもWebSocketもSPDYもみーんな同じ会社が同じ目的のためにやってること
社内にドッグフード食べさせることが出来れば、加速的に成長するんだろうけどdartはあまり芳しくなさそう。
coffeedocの書き方がよく分かるサイト教えてくださいm(_ _)m
あ、ごめんやっぱcodoっての使ってみる
もっと早く使えば良かった。書いてて気持ちいい。
285 :
デフォルトの名無しさん :2014/01/19(日) 10:58:46.02
いいよな。 grunt使えば自動コンパイルしてくれるし ブラウザの自動更新までしてくれるからデメリット無いわ
ハッシュをYAMLっぽく書けるのが良いですね
Railsコミュニティは何故、CoffeeScriptなんぞ採用したのか 全部、JSで書いた方が効率良いだろ
JSがうんこだからに決まってる 馬鹿にはゴミっぷりが理解できないらしいが
時代はTypeScript
生のjsはリファクタリングする気にもならない・・・
すぐに下品な言葉を使う男ってダサい 本人は理解できてないみたいだけど(24歳OL)
CoffeeってJSが次世代JSに移行したら用済みよね?
またしょうもない言語を作ってみろ その時は第二、第三のコーヒースクリプトが
お前らってjavascriptより良い言語作れないのに javascriptのことバカにすんのな
1.7.0きたー メソッドチェーン改良
ねえねえ、 test = (-> hoge )() これもっと綺麗に書く方法ある? test = -> hoge () だと怒られる
あ、 test = do-> hoge か、スマソ。
ちゃうちゃう (test = -> hoge)() を綺麗に書く方法だった。 test = -> hoge test() とか気持ち悪い。
>>299 do test = ->
hoge
でOK。
coffee使っても隠し切れないjavascriptのクソさ・・・
誤魔化すための言語だししょうがない
coffee使ってもごまかせないって話
やはりtypescriptなのか
typescriptはむしろ誤魔化すのを諦めた人向けじゃね
Dart煮汁
Dartは個人情報送信されないかガチで心配
Dartは文法がダサくて嫌い。 わざわざjavascriptリプレスするのがあんな古臭い言語とか。。
Haxe
311 :
デフォルトの名無しさん :2014/03/19(水) 05:59:24.74 ID:hkFV9ojg
>>310 へー!こんなのあるんだ
jsはcoffee使ってもコールバッグ地獄対応しなきゃいけないから気持ち悪いんだよね
jQueryDeffered使ってるけどすべての関数をDeffered化するわけにもいかないし
Haxe使えば回避できる??
Haxe...んーまあ、そう。見ればね。分かるよね。うん。 というか、すでにスクリプト言語じゃないというね。 アプローチはかつての Java 思想を思わせる。 またそれをやりたいのか?っていう。
JavaではなくMLね。
Web屋ならわかるだろうけど、coffeeの一番の利点は配列の,が不要なこと IEでエラー吐くからすごく神経使ってたけど coffeescriptはタイプミスの心配しないでいいしのびのび書けるわ
315 :
デフォルトの名無しさん :2014/03/31(月) 10:17:42.35 ID:7W/yiWCF
IEが糞なだけ
一番の利点がそれかよw
CoffeeScriptはGruntの設定ファイル専用言語だよ
StratifiedJSとCoffeeScriptってやっぱ共存むりぽ? jQueryDeferredとか面倒くさいっす
gulp導入してGrunt使わなくなったと同時に この糞言語も使わなくなった バイバイCoffeeScript
ぷぷ
322 :
trydev :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定義前の実行は可能です。
323 :
trydev :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
324 :
trydev :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
>>319 gulpってどうなの?
周り誰も使ってなくてさ
gruntもgulpもcoffee対応してるよね
>>325 coffeeの替わりに何を使うようになったのかは気になるな
327 :
デフォルトの名無しさん :2014/11/29(土) 15:02:55.14 ID:iygsHyiP
ruby と python の両方の良いとこ取りしたような文法だが どっちかというと ruby 寄りって感じか javascript のソースを coffee script のコードに変換してくれるツールがあると嬉しいかも
class の prototype に member 書かなくても class A constructor: (@hoge, @fuga) -> で member 作れてしまいますが (prototype にはないけど) こういう作り方は良くないですか? ちゃんと class B hoge: null fuga: null constructor: (@hoge, @fuga) -> って書くべき?
>>329 多分大丈夫。俺はいちいち定義してない。
331 :
デフォルトの名無しさん :2015/02/09(月) 18:24:45.55 ID:sBN76GX2
ありがとうございます
332 :
330 :2015/02/10(火) 02:10:18.03 ID:C6NMDC3K
どういたしまし。 ていうかこのスレ過疎りすぎ coffeescript大好きなのに(´・ω・`)
良いよね 日本でRuby流行ってるって言うの嘘かもね
334 :
330 :2015/02/10(火) 05:29:12.28 ID:C6NMDC3K
>>333 ぶっ!!!
うちの会社でもRubyの時代だとかって
最近Ruby on Railsのプロジェクトまかされてるんだけど
マンセー記事多い割に詳細なドキュメント少なくて
「本当に流行ってるのか???」と思った。
とくにActiveRecord周りの具体的な使い方に関しては
書物にも乗ってないからすっごい苦戦している。
ほんとにRuby流行ってるのかなぁ…(まぁRubyも好きなんだけど)
Ruby に Python スパイスを振りかけて 使いやすくしたのが CoffeeScript って感じ Ruby が本当に流行ってるなら CoffeeScript も流行ってないと可笑しいと思う
正直一時期よりCoffeeScript使われなくなってると思う TypeScriptやHaxeやES6に行った人が多いと思う
337 :
330 :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に流れてるのか!
あれらの言語は調べてわりとすぐに体が拒絶したんだけども
正直♀でも♂でも拒絶しない体になってしまったなんな
アーッ!
うーん?俺今仕事で普通に複数人でCoffeeScript書いてるし、 海外ライブラリも国内ブログでもCoffeeScriptが廃れたようには思えないけどな 浸透し過ぎて珍しくも無くなったから話題にならないだけじゃないの? 技術記事を書く時は他AltJSユーザーに配慮してコード部分
JSで公開するし
今リリースが1.9.0だし2.0出たらまた盛り上がるんじゃない? js2coffeeとかもやる気見たいだし
浸透しすぎて話題ないのか たしかにCoffee覚えるの簡単だし困ったら公式サイトで気軽にテストできるもんなあ みんな愛情表現くらいしていいんだよ(〃∇〃)
343 :
デフォルトの名無しさん :2015/02/13(金) 13:52:41.41 ID:dpVVOxpY
お世話になってます
Railsってw 今もうAngular.js使ったSPAの話題しか聞かないのに
Angular.coffee ってあるんだっけ
>>344 えっ。マジ??
あれってSEO心配なんだけどバリバリ使われてるの?
たまによくみる
どっちやねん
まさにcoffee+angularで開発してるわ ほとんど何の問題もなく使えてる ごく稀に、暗黙のreturnでハマるくらい Coffeeはいいけど、angularはダメだわ 何度殺意を抱いたか 仕方なく使ってるけど、なんであんなもんが流行ってるのか 皆目見当がつかない あれみんな使ってるけど、みんな理解できてるのか
350 :
デフォルトの名無しさん :2015/02/16(月) 22:35:50.45 ID:N4N5sFFI
具体的に
>>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でさえしぶとく残ってるから大丈夫
でさえってww Dの扱いひどいなぁ
かってに消えたことにしないでくれる?
自動コンパイルに1番適してるのはどのツールですか? 色々あるみたいなので迷ってしまいます。
ぼくはGrunt使ってる
gulpも良い
なんとなくgruntかgulpの二択な印象だったんだが迷うほどあったっけ
361 :
デフォルトの名無しさん :2015/03/08(日) 08:38:38.97 ID:/MgTL3zQ
make最強
Angular2がTypeScriptベースになるらしいな 時代はTypeScript
そうなの?
Angular アキ た
新プロジェクトでAngular使いたいって訴えたけど AngularはSEO的に信頼できないから無理とかいわれたよ。 まぁ、反論するどころか納得させられたからそれ以上求めなかったが。
順調にRailsのDSL化が進行してるな
367 :
デフォルトの名無しさん :2015/03/11(水) 05:12:23.67 ID:GVtyvoiQ
railsのdsl化かあ 既にそうなってると思ってたけど 完全ではないってことだよね? ってスレチじゃね
>>365 angularは難しすぎて開発が困難だからやめて正解
AngularがTSベースにしたかったのはアノテーションとかを生かしたかったからで 本来はTSをかくちょうしたAtScriptを使うつもりだった
371 :
デフォルトの名無しさん :2015/03/11(水) 10:10:12.86 ID:3uN2N73I
>>368 難しいというより言語仕様と関係ないところの枝葉で覚えることが大杉なんだよな
フレームワークに縛られるのは嫌
>>365 Angularは、SEO無関係のとこしか使えないっていうのを知らない人が多い。
>>370 AtJSはTSに実行時型情報を持たせる拡張なので、あくまでTSの静的なクラス構造の存在が前提
分けて考えられるようなもんではないよ
実行時の振る舞いに影響するとなるとアプリもTS以外では書きにくくなるんだろうな
TSの型情報はコンパイル時のためのものだがAtでは利用しない。 ランタイムエラーのためのもので、あくまでより良くするためで必須ではない。