TypeScript part1
■ このスレッドは過去ログ倉庫に格納されています
0001 ◆9Zst2CqO/Y
2012/10/02(火) 23:18:47.60TypeScript is a language for application-scale JavaScript development.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.
0073デフォルトの名無しさん
2012/10/04(木) 23:18:41.73結局のところ、言語の良し悪しは
大した問題ではない。
0074デフォルトの名無しさん
2012/10/04(木) 23:25:12.100075デフォルトの名無しさん
2012/10/05(金) 00:00:20.720076デフォルトの名無しさん
2012/10/05(金) 00:50:23.87>>73が使った言語:�lisp,�c++,�c,�haskel,�c#
0077デフォルトの名無しさん
2012/10/05(金) 01:28:13.010078デフォルトの名無しさん
2012/10/05(金) 01:36:09.640079デフォルトの名無しさん
2012/10/05(金) 03:33:53.11scheme 系とか組み込みで地味に利用されてる
でもエンジンのAPIが組み込めるように公開されてる訳ではないので
IE9以降がメインターゲットなんだろうかな
Qtscipt は ES3.1
http://qt-project.org/forums/viewthread/5381
ECMA-262 (5th|Harmony|next) で宣言された プロトタイプ の拡張はアリ?ナシ?
http://qiita.com/items/3a70b5a62b6c87379c77
JScript でサポートされる機能
http://msdn.microsoft.com/ja-jp/library/49zhkzs5(v=vs.80).aspx
How to call the compiler from .NET?
http://typescript.codeplex.com/discussions/397810
結局 MS Script Control でやれとなる。(当然エンジンはES3.1相当のJSctiptの構文のみが使える
エンジンは非公開だからなぁ…ブラウザ対応次第かと(特にモバイル
0080デフォルトの名無しさん
2012/10/05(金) 04:16:11.04アセンブリャーからObjective-Cまでいろんな言語で幅広く仕事をしたが
言語の良し悪しは大した問題ではない(APIや周辺コミュニティのほうが重要)という通念を覆すほど
JavaScriptはクソ
以前からずっとバッドノウハウを量産して喜んでた界隈の連中を横目で眺めつつ
おかしいと思ってたんだよ。
0081デフォルトの名無しさん
2012/10/05(金) 04:27:02.48HTML5HTML5うるせーから仕方なく1ヶ月程度でキャッチアップしてみたら
お前らこんなどうしようもない言語と環境で仕事してたの、としか言いようがなくて
要はろくに大規模開発したことのない、レベルの低いJavaScripterどもが
駄サイクルを作ってたんだなという認識ですね。
0082デフォルトの名無しさん
2012/10/05(金) 04:32:08.45CoffeeScript、Dart、JSX、Haxe、TypeScript、その他無数の変換言語↓
https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS
これら全部現行のJavaScriptを否定しに来てるというのがまだ理解できないようでは終わっとる
JSが基幹言語?その逆で、ただの土管扱いされてるんだよ。
使いもんにならん言われてるんだよ。わざわざ新言語を量産してまで。
今回、あのHejlsbergにまでノーと言われたんだよ。
0083デフォルトの名無しさん
2012/10/05(金) 06:54:50.23それでよかったんだよ、IDEも豪華に対応できたんだよ
言語開発者はみんな余計な物付けすぎ
0084デフォルトの名無しさん
2012/10/05(金) 08:23:06.55典型的な一ヶ月程度勉強しただけの
やつの感想ですねw
0085デフォルトの名無しさん
2012/10/05(金) 08:59:31.24function f(x, y) {
return x + y;
}
alert(f(1, "23")); # 123
なお、Typescriptで型を付けても通る(暗黙の型変換)
function f(x: number, y: string) {
return x + y;
}
alert(f(1, "23"));
0086デフォルトの名無しさん
2012/10/05(金) 09:23:17.340087デフォルトの名無しさん
2012/10/05(金) 09:35:19.35http://kangax.github.com/es5-compat-table/
javascript 1.8.5とかガンガン攻める姿勢は買ったげる
でも ie8 軒並みアウトなんや
0088デフォルトの名無しさん
2012/10/05(金) 09:42:02.140089デフォルトの名無しさん
2012/10/06(土) 00:03:37.41C#もJavaも糞言語じゃん
0090デフォルトの名無しさん
2012/10/06(土) 00:18:37.03じゃあお前の好きなクソ言語の名前言ってみな。
それがクソかどうか判断してやるからさw
0091デフォルトの名無しさん
2012/10/06(土) 01:06:52.730092デフォルトの名無しさん
2012/10/06(土) 02:22:41.18ドカタ言語をあえて選ばないだけだ。
0093デフォルトの名無しさん
2012/10/06(土) 06:11:05.60それにまだ未完成品だし
0094デフォルトの名無しさん
2012/10/06(土) 10:59:35.49実行環境の多さ、ライブラリの多さ、ノウハウの多さ、
書籍の多さ、提供会社の多さ、使用ユーザーの多さ、などなど。
それがわからない奴は、どうして良い言語が普及しないんだ!と
悩むことになる。
0095デフォルトの名無しさん
2012/10/06(土) 11:07:30.37ただデファクトスタンダードを取ったというだけ
これは市場が選んだわけではない。勝手に決められて嫌々ながらも従わざるを得なくなった
従いたくない人たちが魔改造を繰り返してる
0096デフォルトの名無しさん
2012/10/06(土) 11:25:54.39Perlでクラスを作るにはいろんな方法があります。
これがバッドノウハウです。みたいな話?w
0097デフォルトの名無しさん
2012/10/06(土) 13:28:03.37lambda式内で this 参照はできないんかな…
0098デフォルトの名無しさん
2012/10/06(土) 13:41:26.38言語が普及するか否かは、言語の良し悪しでは決まらない
普及する = 最底辺の馬鹿でも使える、が大前提だからね
0099デフォルトの名無しさん
2012/10/06(土) 14:03:38.71言語を馬鹿にしているのか、
それを使ってる人を馬鹿にしているのか。
はっきりさせていい?
お前が馬鹿にしているのは、使ってる人であって言語じゃないよね。
普及した優れた言語。
それは馬鹿でも使えるが当然天才でも使えるんだよ。
お前が馬鹿にしているのは、天才が使っている優れた言語、ではない、
単に馬鹿でも使えることが、悔しいんだ。
なぜだろうねw
0100デフォルトの名無しさん
2012/10/06(土) 14:28:40.06まさかWeb2.0だAjaxだHTML5とかいうバズワードでノセられた奴が強弁してないよね。
0101デフォルトの名無しさん
2012/10/06(土) 14:29:38.54お前がJavaScriptとライブラリをごっちゃにしてるってことはよくわかったよ。
馬鹿が言った言葉は、やっぱり馬鹿だってわかるなw
0102デフォルトの名無しさん
2012/10/06(土) 15:18:00.940103デフォルトの名無しさん
2012/10/06(土) 17:55:07.32仕事にありつけそうな言語使えば良いよ
0104デフォルトの名無しさん
2012/10/06(土) 18:03:58.51ロードレーサーにママチャリ乗れっていう馬鹿はいない
0105デフォルトの名無しさん
2012/10/06(土) 18:07:43.570106デフォルトの名無しさん
2012/10/06(土) 18:15:57.460107デフォルトの名無しさん
2012/10/06(土) 18:29:01.76改造しても所詮原付は原付
0108デフォルトの名無しさん
2012/10/06(土) 20:41:39.23実装が増える毎にVMの中のヒトたちが対応しきれない悪寒
0109デフォルトの名無しさん
2012/10/06(土) 20:49:42.85対応しきれないのはお前だけ。
0110デフォルトの名無しさん
2012/10/06(土) 20:50:16.95>>103
0111デフォルトの名無しさん
2012/10/06(土) 21:01:43.24型付けても通るとかダメダメじゃん
0112デフォルトの名無しさん
2012/10/06(土) 21:21:09.300113デフォルトの名無しさん
2012/10/06(土) 21:30:01.28コーディング時に明確に予測できるはずだから何の問題もないだろ
その程度の言語仕様も知らずに使える言語が欲しいってことか?
0114デフォルトの名無しさん
2012/10/06(土) 21:40:08.37なんで通らないと思ったの?
0115デフォルトの名無しさん
2012/10/06(土) 21:41:49.61え?
0116デフォルトの名無しさん
2012/10/06(土) 21:45:19.13yの内容によって文字列連結になったり数値加算になったりするなら問題だが
そうでなくて挙動が完全に予測できるんなら全く問題ない
0117デフォルトの名無しさん
2012/10/06(土) 21:46:17.70動的言語とか全く関係ないんだが
0118デフォルトの名無しさん
2012/10/06(土) 21:49:23.06文字列に変換してから連結する仕様になっている言語はかなり多いからごく自然なことだが
暗黙の変換だろうが言語仕様知ってりゃ予測できるだろ
0119デフォルトの名無しさん
2012/10/06(土) 21:55:11.18文字列.add(文字列)
文字列.add(数値)
addメソッドがオーバーロードされてるのと同じ事だろう。
型の問題っていうのは、互換性がない型、オーバーロードも定義さていないもの、
無関係のものを代入したら動かないのに、それが実行されるまで
わからないってのが問題なのに。
0120デフォルトの名無しさん
2012/10/06(土) 21:58:45.780121デフォルトの名無しさん
2012/10/06(土) 22:00:55.75むしろ動いちゃうのが問題
>>85で引数に型指定しない場合だと、x, yの内容によって+の挙動が全く異なってしまう
さすがに+使うときは、文字列連結か数値加算かどちらか一方しか期待してないだろうから、
予期しない動作によるバグの原因になる。
型を指定するなら何の問題もない。
0122デフォルトの名無しさん
2012/10/06(土) 22:26:37.51上で遊んでみたんだけど、まだ型推論は全然だね
こんなコードが通るし
function foo() : number { return 1; }
function bar() : string { return "23"; }
function baz(f, g) { return f() + g(); }
function hoge() : number { return baz(foo, bar); }
でもMSはF#を作れるところだし、今後に期待ってところか
0123デフォルトの名無しさん
2012/10/06(土) 22:37:34.93private var func(){...}
で型推論してくれよって話じゃないか。
0124デフォルトの名無しさん
2012/10/06(土) 22:47:46.52型推論はAIじゃねぇよ。
どちらでも取れる問題の
正解を出せなんて不可能な話。
0125デフォルトの名無しさん
2012/10/06(土) 23:10:28.55hoge()の戻り値はstring以外ありえんだろ
0126デフォルトの名無しさん
2012/10/06(土) 23:12:02.77どこかでオーバーライドするかもしれんだろ。
windows.hoge = function () {return 123}
0127デフォルトの名無しさん
2012/10/06(土) 23:14:24.55>>122でstring返す関数にnumberって型書いてエラーにならないのと
何の関係があるのそれ
0128デフォルトの名無しさん
2012/10/06(土) 23:16:05.29それは無いものと考えないと静的解析の意味無い
ジェネリックには対応する予定らしいからもうちょっと型推論も強力にはなるんじゃないの
0129デフォルトの名無しさん
2012/10/06(土) 23:21:13.60function f() : number { return 1 + "2"; }
function g() : number { return ((x,y) => x + y)(1, "2"); }
0130デフォルトの名無しさん
2012/10/06(土) 23:25:25.050131デフォルトの名無しさん
2012/10/06(土) 23:26:58.75型を全然書かないより邪悪ですから
0132デフォルトの名無しさん
2012/10/06(土) 23:32:40.25数値の加算が文字列連結になったらびっくりするだろ
でも>>129のgの戻り値を使ったら、そういうことが起こる
0133デフォルトの名無しさん
2012/10/07(日) 00:07:25.88お前、数値オブジェクトと演算子オーバーロードって
発想が頭にないんじゃないのか?
A + B というのは演算子 = メソッド と考えると
A.+(B) という形に置き換えられる。
お前が理解しやすい形にするとA.add(B)
つまりはこういうことだよ。
String ret = num.add(str);
0134デフォルトの名無しさん
2012/10/07(日) 00:08:54.88取りうる引数に、数値オブジェクト以外に
文字列オブジェクトに対応している。
0135デフォルトの名無しさん
2012/10/07(日) 00:11:41.680136デフォルトの名無しさん
2012/10/07(日) 00:16:00.15で?それが
function f(x : number, y : number) { return x + y; }
においてfが文字列連結を実行しても良い理由になるの?
0137デフォルトの名無しさん
2012/10/07(日) 00:18:33.48両方が数値の場合は、数値計算ですよ?
片方が文字列の場合は、文字列結合バージョンの加算が呼ばれます。
0138デフォルトの名無しさん
2012/10/07(日) 00:20:10.83>>136のfの引数に>>129のgの戻り値を入れてみ?
0139デフォルトの名無しさん
2012/10/07(日) 00:21:52.90Local "_this" silently conflicts in arrow function
http://typescript.codeplex.com/workitem/11
いちおう Issue Tracker に挙がってるけど
Capturing instance methods breaks 'this'
http://typescript.codeplex.com/workitem/127
this 周りは仕様に注意を要する部分ではあるとは思う
0140デフォルトの名無しさん
2012/10/07(日) 00:21:57.680141デフォルトの名無しさん
2012/10/07(日) 00:22:09.72動いちゃうのは問題だが
0142デフォルトの名無しさん
2012/10/07(日) 00:24:17.11あほか。すぐバレる嘘付くなよ
g()は文字列"12"なんだからfに入れたら文字列加算になるよ
gの型注釈がnumberだから型エラーにはならないけど
0143デフォルトの名無しさん
2012/10/07(日) 00:26:02.74バージョン古いんじゃないですか?w
0144デフォルトの名無しさん
2012/10/07(日) 00:26:12.93型推論をいくら完璧にしようが>>141みたいなのはどうしようもないし
0145デフォルトの名無しさん
2012/10/07(日) 00:26:46.89バージョンwwwお前ばかすぎ
0146デフォルトの名無しさん
2012/10/07(日) 00:31:14.49明示的なキャストは自己責任だと思うけど、実行時の型チェックは欲しいね
0147デフォルトの名無しさん
2012/10/07(日) 00:32:20.49そのうち、strictモードみたいなのでて
レガシーコードと呼ばれるようになるさ。
0148デフォルトの名無しさん
2012/10/07(日) 00:35:32.63ベストではないが、ベターな言語なんだろ?
0149デフォルトの名無しさん
2012/10/07(日) 00:36:39.200150デフォルトの名無しさん
2012/10/07(日) 00:38:15.160151デフォルトの名無しさん
2012/10/07(日) 00:38:50.820152デフォルトの名無しさん
2012/10/07(日) 00:40:12.050153デフォルトの名無しさん
2012/10/07(日) 00:40:48.570154デフォルトの名無しさん
2012/10/07(日) 00:52:18.16微妙な反応が多くて面白いなw
CofeeScriptやDartがいかにクソだったかがわかる
0155デフォルトの名無しさん
2012/10/07(日) 00:58:25.610156デフォルトの名無しさん
2012/10/07(日) 01:08:31.94どうせすぐハシゴ外すんだろ、みたいな。
0157デフォルトの名無しさん
2012/10/07(日) 01:11:13.27MSがIEに独自言語の処理系載せたりしたら永遠に外せなくなるぞ
0158デフォルトの名無しさん
2012/10/07(日) 02:03:33.96オプションで型チェック出来て素晴らしいって感じで
もっともダウンキャストに警告すら出さないと判明してから
そっぽ向かれたけど
0159デフォルトの名無しさん
2012/10/07(日) 02:27:42.80良い言語だけど、乗り換えないといけない。つまり文法的に互換性がないということだろう。
TypeScriptにはそれは当てはまらなくて、将来のECMAScriptを
先取りしているから、JavaScriptの正統な進化版として考えることが出来る。
0160デフォルトの名無しさん
2012/10/07(日) 02:51:35.93ヘルスバーグの名前が出てるからとりあえずみんな様子見てるんじゃないの?
0161デフォルトの名無しさん
2012/10/07(日) 06:40:43.56((a, b?) => { console.log(a, b); })("a"); // Errors
((a?, b) => { console.log(a, b); })("b"); // Errors
((a, b) => { console.log(a, b); })("a", "b"); // OK
悪くないんだけど、微妙に C# 独自の nullable とか this とか
アロー演算子合わせるとエラーに塗れる傾向はあるな
その辺なんか謎だわ
Nullable 型
http://ufcpp.net/study/csharp/sp2_nullable.html
0162デフォルトの名無しさん
2012/10/07(日) 07:32:08.05nullable導入のおおまかな経緯はこんなかんじ。
何でNullがオブジェクトなの?
https://gist.github.com/2325537
Type(null) は Null 型だから Object ではないってことですか。typeof とは違うんですね。
http://togetter.com/li/300821
http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null
https://gist.github.com/887049
しかして typeof が理解に苦しむ
ほんとは null はオブジェクトとして扱いたくないんだけど
実際のとこ至るところでYou、typeofでObjectt判定しちゃいなよ
してるから null はオブジェクトみたいに扱われてるんだなと…
0163デフォルトの名無しさん
2012/10/07(日) 08:31:48.05Dartを良い言語と言ってる時点で
Java, JS, Perl, PHP程度しか使った事が無い
ドカタまるだしなのが分かる。
もうちょっとマトモな言語も使ったら良いよ。
0164デフォルトの名無しさん
2012/10/08(月) 11:12:46.640165デフォルトの名無しさん
2012/10/08(月) 14:20:32.380166デフォルトの名無しさん
2012/10/08(月) 15:45:07.25jsだけで飯が喰えるのに、いくつも言語おぼえる必要があるなんて
2次請け、3次請け以下の大した技術力のない奴隷商に飼われているとしか思えない。
0167デフォルトの名無しさん
2012/10/08(月) 15:54:21.680168デフォルトの名無しさん
2012/10/08(月) 16:13:57.29よっぽど都合がわるいんだろうなw
0169デフォルトの名無しさん
2012/10/08(月) 16:15:40.20何の都合が悪いというの?
0170デフォルトの名無しさん
2012/10/08(月) 16:22:08.31底辺の奴らだけが、奴隷市場の流行に合わせて
Java, VB, PHP, JavaScript 等を覚える必要がある
0171デフォルトの名無しさん
2012/10/08(月) 16:27:02.20いや、単純にじゃあドカタじゃないやつは
なんて呼ぶの?って話だよw
0172デフォルトの名無しさん
2012/10/08(月) 16:31:15.67それ以下はドカタ
■ このスレッドは過去ログ倉庫に格納されています