CoffeeScript
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2011/11/11(金) 03:21:00.78 について語るスレ
2012/07/27(金) 16:42:39.65
数千行以下ならJSで変態テク使ったりせず普通に書く
数千行超えたらHaxeなりGWTなり、きちんとした静的JS変換言語使うでFAで。
CSは中途半端だった。
数千行超えたらHaxeなりGWTなり、きちんとした静的JS変換言語使うでFAで。
CSは中途半端だった。
2012/07/27(金) 16:44:41.81
最近話題にもならないDart
2012/07/27(金) 16:47:10.75
55デフォルトの名無しさん
2012/07/27(金) 17:28:35.53 JSXよりHaxeがイケてる3つの理由
http://d.hatena.ne.jp/mzp/20120604/jsx
http://d.hatena.ne.jp/mzp/20120604/jsx
2012/08/05(日) 06:32:35.58
\ ヽ | / /
\ ヽ / /
‐、、 殺 伐 と し た ス レ に CoffeeScript が ! ! _,,−''
`−、、 __/\ _,,−''
`−、、 _| `〜┐ _,,−''
_ノ ∫
_,.〜’ /
───────‐ ,「~ ノ ───────‐
,/ ` ̄7
| H a x e /
_,,−' ~`⌒^7 / `−、、
_,,−'' 丿 \, `−、、
,'´\ / _7 /`⌒ーへ_,._⊃ /`i
! \ _,,-┐ \ _,.,ノ r‐-、、 / !
゙、 `ー--<´ / L. ,〜’ ゙、 >−一'′ ,'
y' U `ヽ/ / ヽ ヽ '´ U イ
┏━━━┓ ┏━━┓ ┏┓ ┏┓
┗━┓┏┛ ┃┏━┛ ┃┗┓┏┛┃
┏┓┃┃ ┃┗━┓ ┏━┗┓━┛
┃┗┛┃ ┏━┛┃ ┃┏┛┗┓┃
┗━━┛ ┗━━┛ ┗┛ ┗┛
\ ヽ / /
‐、、 殺 伐 と し た ス レ に 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 の文字数のみ。
コード量は殆ど減らないよな。
行数が減るのは 括弧閉じのみのわずか数文字の行が省略出来るだけだし
文字数が減るののは、function と return の文字数のみ。
2012/09/20(木) 09:22:46.43
2012/09/20(木) 10:37:42.33
>>57
どうでもいいっすね〜
どうでもいいっすね〜
60デフォルトの名無しさん
2012/09/20(木) 11:35:06.162012/09/20(木) 14:11:39.72
バカだからjs→coffeeにベタ移植しかできないんだろうな
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ってのは結局同じような機能を二重に追加してるだけだから意味が無い。
だから、殆ど変わらないってこと。
なんでかというとつまりこういうこと。
----------------------------
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の文字数だろう。
もし、エディタの自動入力機能を使っていたとしたら、タイプするの差は限りなく小さい。
> んなこたない、普通に色々な機能のお陰で減るだろ
減らないとは言っていない。
ただ、100文字中の10文字減って嬉しい?ってこと
サンプルコードではなく実務レベルのコードだと、
自動インデントなどで勝手に入るスペースを除くと、1/10へればいいほうだと思う。
(JavaScriptでもセミコロン省けるの知ってるよね? forやifは一行でも書けるの知ってるよね?)
しかも1/10の中で多くを占めるのはfunctionとreturnの文字数だろう。
もし、エディタの自動入力機能を使っていたとしたら、タイプするの差は限りなく小さい。
66uy
2012/09/21(金) 05:44:06.06 この手のバカ減らないよな
タイプ速度にしても自動挿入と手打ちどっちが早いと思ってんだよ
インテリセンスとかタイプ遅いゴミカス用のバリアフリー機能じゃねえか
タイプ速度にしても自動挿入と手打ちどっちが早いと思ってんだよ
インテリセンスとかタイプ遅いゴミカス用のバリアフリー機能じゃねえか
2012/09/21(金) 06:53:42.06
>>64-65
jQueryとCoffeeScriptが同じような機能って、なんじゃそりゃ?
セミコロン省略?挙句に「forやifは一行でも書けるの知ってるよね?」だって?
レベル低すぎてマジで引くわ。お前どうせCoffeeScriptでjQueryが使えると思ってなかったとかそういうオチだろどうせ。
で、手元のファイルを見てみたけれど、実際1/10くらいしか減ってないのがほとんどだな
嬉しいか?って言われると正直何とも思わないな
jQueryとCoffeeScriptが同じような機能って、なんじゃそりゃ?
セミコロン省略?挙句に「forやifは一行でも書けるの知ってるよね?」だって?
レベル低すぎてマジで引くわ。お前どうせCoffeeScriptでjQueryが使えると思ってなかったとかそういうオチだろどうせ。
で、手元のファイルを見てみたけれど、実際1/10くらいしか減ってないのがほとんどだな
嬉しいか?って言われると正直何とも思わないな
2012/09/21(金) 07:57:48.55
functionがうざすぎて可読性が落ちる
単純なタイプ数の問題じゃない
書き捨てのゴミコード量産してる奴には
可読性なんて関係ないけどね
どうせ読み直さないから
単純なタイプ数の問題じゃない
書き捨てのゴミコード量産してる奴には
可読性なんて関係ないけどね
どうせ読み直さないから
2012/09/21(金) 11:44:29.64
> JavaScript + jQuery = JavaScript + JavaScript拡張 + DOM操作
と
> CoffeeScript = JavaScript + JavaScript拡張
を比べたら、CofeeScriptを使った時にDOM操作をベタで書かなきゃならないんだから、
そりゃコード量は同じか下手したらCofeeScriptを使った方が多くなるわ。
アホなの?
と
> CoffeeScript = JavaScript + JavaScript拡張
を比べたら、CofeeScriptを使った時にDOM操作をベタで書かなきゃならないんだから、
そりゃコード量は同じか下手したらCofeeScriptを使った方が多くなるわ。
アホなの?
70デフォルトの名無しさん
2012/09/21(金) 12:38:41.90 >>69
だから最初からコード量に大差はないと言ってるだろw
だから最初からコード量に大差はないと言ってるだろw
2012/09/21(金) 12:43:20.83
72uy
2012/09/21(金) 12:44:35.37 どちらにしろ中途半端言語触るくらいならjs直でいい
使用ユーザーの少ない言語で開発するっていうのは自分がバグを潰してあげるデバッガーに立候補するようなもん
使用ユーザーの少ない言語で開発するっていうのは自分がバグを潰してあげるデバッガーに立候補するようなもん
73デフォルトの名無しさん
2012/09/21(金) 13:00:08.4874デフォルトの名無しさん
2012/09/21(金) 13:04:31.652012/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を比べないの?
という流れだ。
理解力ゼロだなお前。
>>57
> JavaScript + jQuery と CoffeeScriptを比較したら
> コード量は殆ど減らないよな。
>>60
> つか、なんでJavaScript+jQueryとCofeeScript+jQueryを比べないの?
>>64
> なんでかというとつまりこういうこと。
> JavaScript拡張×2ってのは結局同じような機能を二重に追加してるだけだから意味が無い。
> だから、殆ど変わらないってこと。
>>69
> CofeeScriptを使った時にDOM操作をベタで書かなきゃならないんだから、
> そりゃコード量は同じか下手したらCofeeScriptを使った方が多くなるわ。
>>70
> だから最初からコード量に大差はないと言ってるだろw
>>60
> つか、なんでJavaScript+jQueryとCofeeScript+jQueryを比べないの?
という流れだ。
2012/09/21(金) 13:17:35.40
>>73
> 結局のところ、文字数が少ないだけだろう?
http://coffeescript.org/
読め。
まぁ、CofeeScriptのメリットがタイプする文字数が少なくなるだけだと思うんならそれでもいいんだが、
そもそもお前は「ほとんど変わらん」という主張じゃないのか?
> 結局のところ、文字数が少ないだけだろう?
http://coffeescript.org/
読め。
まぁ、CofeeScriptのメリットがタイプする文字数が少なくなるだけだと思うんならそれでもいいんだが、
そもそもお前は「ほとんど変わらん」という主張じゃないのか?
2012/09/21(金) 13:26:47.64
CofeeScriptにはあってjQueryにはないものは、
・class
・var
・===
あたりか。
・class
・var
・===
あたりか。
2012/09/21(金) 13:33:45.15
backbone.jsと一緒に使うと、幸せになれるらしいぞ。
俺は、cofeescriptもbackbone.jsも使ったことないけどw
俺は、cofeescriptもbackbone.jsも使ったことないけどw
2012/09/21(金) 13:38:40.66
thisのバインド
2012/09/21(金) 13:43:46.04
「CofeeScriptってタイプ量は減るけどただそれだけで、デメリットのが多いよ」
という主張ならわかるが、コード量が減らないという主張はどうかと思う。
CofeeScript知らずにdisってると思われても仕方が無い。
という主張ならわかるが、コード量が減らないという主張はどうかと思う。
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であることがわかるだろう?
それみて変わらんというのが
そもそもの発端なんだけど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であることがわかるだろう?
2012/09/21(金) 13:56:18.11
後者のeach/mapはCoffeeScriptのほうが段違いに読みやすいじゃないか
2012/09/21(金) 13:56:28.56
>>81
じゃこれ、CofeeScriptの変換後のコードじゃなくお前なりのコードで同等のもの書いてみな。
class Animal
constructor: (@name) ->
move: (meters) ->
alert @name + " moved #{meters}m."
じゃこれ、CofeeScriptの変換後のコードじゃなくお前なりのコードで同等のもの書いてみな。
class Animal
constructor: (@name) ->
move: (meters) ->
alert @name + " moved #{meters}m."
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')
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')
2012/09/21(金) 14:04:11.10
>>84はかわいそうだからこっちでいいや。
class Foo
constructor: (name) ->
console.log name
class Bar extends Foo
constructor: ->
super 'unk'
class Foo
constructor: (name) ->
console.log name
class Bar extends Foo
constructor: ->
super 'unk'
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/
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
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!』と表示される
ちょっとでないといけないので、コピペ
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!』と表示される
2012/09/21(金) 14:13:36.34
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/
http://jp.techcrunch.com/archives/20120913dropbox-rewrote-its-entire-browser-side-codebase-in-one-week/
2012/09/21(金) 14:23:49.73
thisとかselfとか意識しなくて良いコードしか書いたことないんだろ
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のように簡単に書けるんだ。
またすぐ出るけど。
>>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.6095デフォルトの名無しさん
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")
}
}
}
これでいいかい?
nameプロパティの話か。
function Animal(name) {
return {
name: name,
move: function(meters) {
alert (this.name + " moved ”+meters+"m")
}
}
}
これでいいかい?
2012/09/21(金) 18:16:11.60
2012/09/21(金) 18:16:58.48
念のため言っとくと、
function Animal(name) {
return {
name: name,
move: function(meters) {
alert (this.name + " moved ”+meters+"m")
}
bark: function() {
}
}
}
ってことじゃないからな。
function Animal(name) {
return {
name: name,
move: function(meters) {
alert (this.name + " moved ”+meters+"m")
}
bark: function() {
}
}
}
ってことじゃないからな。
2012/09/21(金) 18:19:05.48
あ、それから、newが何するか知ってるか?
10092
2012/09/21(金) 18:33:48.46101デフォルトの名無しさん
2012/09/23(日) 17:29:19.40 ,' /
i .l
. | 、
、.\ ヽ
、 \ . ヽ ._
丶. ‐ _
` ‐ _ (^o^)(^o^)
(ー(,, O┬O
())'J_))
「俺たちオワタ?」
「ハジマル前からオワてたよ」
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が何するか知ってるか?
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 キーワード使わないとインスタンス化できなくて取り回し
し難くないかとかか…
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で、それに関しては利点として
認めても良いんじゃない?
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でできる
ことは見といた方がいいよ。
プロパティ全コピで継承らしきものができましたー、じゃかっこわるいでしょ。
クライアントのUIが複雑になって、MVC的なことがやりたくなりMVCをサポートするフレームワークを
使おうとすると、嫌でもプロトタイプベースのOOをやらなきゃならなくなるよ。
事実上、クライアントの言語としてJavaScript以外を選択することはできないから、JavaScriptでできる
ことは見といた方がいいよ。
プロパティ全コピで継承らしきものができましたー、じゃかっこわるいでしょ。
109デフォルトの名無しさん
2012/09/24(月) 13:05:32.98 console.log([
[1,1,8]
[2,1,16]
]);
これでundefinedになるとかさっぱりわからん…
インデックスのスライス表記か何かに解釈されてundefinedなんか
[1,1,8]
[2,1,16]
]);
これでundefinedになるとかさっぱりわからん…
インデックスのスライス表記か何かに解釈されてundefinedなんか
110デフォルトの名無しさん
2012/09/24(月) 13:09:11.61 事故解決。[][a,b,c]で暗黙の了解でインデックスと解釈
添え字はcのみを取ってa,bは意味を成さないか…なるd
添え字はcのみを取ってa,bは意味を成さないか…なるd
111デフォルトの名無しさん
2012/09/24(月) 14:09:28.21 結局の所、CoffeeScriptはJavaScriptの単なるシンタックスシュガーにしかすぎず、
タイプ量が多少減る程度のメリットに比べれば、デメリットが大きすぎる。
Haxeみたいに積極的なメリットがあれば採用を考慮するに値するが、現状は積極的な
メリットと呼べるほどのものは無い。
タイプ量が多少減る程度のメリットに比べれば、デメリットが大きすぎる。
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というものがある
という訳ではないのだ。すくなくとも現状では。
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
個人や少人数で開発するには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を実行せざるを得ないというのが、最大の問題。
コンパイル後のJavaScriptを実行せざるを得ないというのが、最大の問題。
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
次期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に影響受けすぎ
具体的に言うとrubyに影響受けすぎ
121デフォルトの名無しさん
2012/10/02(火) 05:35:16.93 >>116
それのどこが問題なのだ。
ブラウザをリロードするのと、IDEからキー一発で実行するのと手間はまったく変わらんぞ?
だいたい、もはやHTMLもCSSもJavaScriptも人間が直接書くものではない。
つか今度はMSから新言語出てきたぞw>TypeScript
もはや何でもありだな。
それのどこが問題なのだ。
ブラウザをリロードするのと、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ツールや静的解析ツール、カバレッジ測定ツールが存在し、
ブラウザが直接その言語を実行できるようになれば問題ない。
エラーも静的解析ツールによる問題の指摘も、カバレッジも全て変換後のコードに対して行われ、
変換前のコードではそれらがどうなのかがわかりづらい。
また、あたりまえだが、何をするにしてもいちいち変換が必要。
なお、この問題は「JavaScriptに変換する系の言語/ツール/コンパイラ」に共通して言えることであり、
それらnew言語X用のUnitTestツールや静的解析ツール、カバレッジ測定ツールが存在し、
ブラウザが直接その言語を実行できるようになれば問題ない。
125124
2012/10/02(火) 13:52:01.88 上記デメリットを超えるメリットがあるなら、そのnew言語Xは採用を考慮するに値するが、
CoffeeScriptにはメリットと思えるようなものがほとんどない。
HaXeやMSの新言語には、上記デメリットを超えるメリットがあり、採用を考慮するに値する。
JSXは微妙。Dartはよく知らない。
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/
コードにある程度の可塑性を望めるところだろうか…
ほかのはプロプラのツールから生成した自動コード的な
色合いがどうしても強くなって、しまうま
しまうまとしまうまを
掛け合わせたら何ができるとか考えたら
なんか黒魔術っぽくて素敵やで!(中二病
js2coffee
http://js2coffee.org/
コードにある程度の可塑性を望めるところだろうか…
ほかのはプロプラのツールから生成した自動コード的な
色合いがどうしても強くなって、しまうま
しまうまとしまうまを
掛け合わせたら何ができるとか考えたら
なんか黒魔術っぽくて素敵やで!(中二病
128デフォルトの名無しさん
2012/10/03(水) 12:58:28.40 次世代言語X
正式名称はTypedCoffeeDartedScriptX
正式名称はTypedCoffeeDartedScriptX
129デフォルトの名無しさん
2012/10/04(木) 21:39:10.87 >>127
それ、欠点にしか思えないんだけどw
変換しても可読性があるということは
単純なコードの置き換えしかしていない。
最適化やブラウザ依存対策なんかしてないということだ。
それによって得られるのは、わずか数文字、タイプ数を減らせるだけ。
タイプスピードどれくらい? 100文字/分? 200文字/分?
それ、欠点にしか思えないんだけど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
ソースコード変換系全般にいえるけど
コンソール上でデバックしやすい
エラー箇所の行番号の表示とか
その辺もうちょい改善できるとこだとは思う
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拡張系もスタックトレースは読み易い傾向はあるか
その先にある 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.
ハード側での対応というのもそれなりに大切だわな
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.02142デフォルトの名無しさん
2012/10/19(金) 23:54:00.14 ・別の言語の一部だけから変換するもの
・JSに変換する目的で簡潔な構文のみ使えるもの
・上位互換(+静的型チェック)でJSの文法も使えるもの
CoffeeScriptはPython風の構文と簡潔な文法(しか書けなくしてる)が特徴だけど、
IDEサポートの充実期待やjsのライブラリが開発環境でも同期できるなら、TypeScriptでもいいかなと思ってしまうな。
・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) ->
  alert id + ' ' + name
User Name: 'Mochi', Id: '000'
# 引数を省略したときの既定値
User = (
 nbsp;{Id: id, Name: name} = {Id: '001', Name: 'Tarou'}
) ->
  alert id + ' ' + name
User()
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
147デフォルトの名無しさん
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でも対応しないかなこれ。
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.75152デフォルトの名無しさん
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()
ちなみに上のコードだと、出力結果が
名無しちゃん「親クラスのメソッドです」
になってしまいます。これを
タマ「親クラスのメソッドです」
という出力にしたいのですが……。
子クラスのあるメソッドから、親クラスの別の名前のメソッドを呼ぶにはどうすればいいんでしょうか?
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()
ちなみに上のコードだと、出力結果が
名無しちゃん「親クラスのメソッドです」
になってしまいます。これを
タマ「親クラスのメソッドです」
という出力にしたいのですが……。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 中国軍機のレーダー照射1週間 駆け引き続く 中国、米のレッドライン模索 日本、米以外の同志国とも連携探る 米は対立から距離置く★2 [ぐれ★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 橋下徹氏「総理なら岡田さんに何を聴かれても耐えてほしかった」 高市首相の台湾有事めぐる答弁に# [jinjin★]
- 「ヒートテックに寿命があります」ユニクロが明かした“3年劣化”の理由 暖かさが落ちる意外な原因とは [ぐれ★]
- 全国フェミニスト議員連盟「草津の対応は、性被害の告発を否定する人権侵害。姿勢は変わらない。女性議員を増やしこれからも精進する」 [932029429]
- お前らもちろんマモンキングやってるよな?
- 助けて!!地元でテレビ番組の超絶美人のアナウンサーさんが退社した。゚(゚´Д`゚)゚。
- 魅音が詩音で詩音が魅音
- (´・ω・`)VIPにおける現在確認している不具合について
- コイツら殺すか?
