静的型付け言語の潜在開発生産性は今の100倍 ×2
人間がやっていたことを、コンピュータにやらせる。
これが生産性を上げる最大の方法。
コンピュータは間違わない、同じ事を何度も高速に行える。
その為に、コンピュータがコードの意味を正確に
認識できる方法が必要。実行しないとわからないことは
コンピュータは認識できない。
すなわち静的型付け言語であれば、実行しなくてもわかるので
コンピュータが理解できる。そうすれば様々な
コンピュータの高度な情報支援が得られる。
コンピュータのバックアップを受け、人間の生産性は
限りなく向上する。
静的型付け言語の潜在開発生産性は今の100倍
http://toro.2ch.net/test/read.cgi/tech/1362302249/
おっつっつ ポジティブな話題話そうぜ
で、何なんだったんだあのJS馬鹿は
JSが嫌いで憎くてたまらないんだろうさ。
クロージャは関数外の変数を参照できる必要はあるけど、書き換えられる必要は無い JSerはJSが関数型を取り込んでるとか云うわりに、関数型について無知すぎる
> クロージャは関数外の変数を参照できる必要はあるけど、書き換えられる必要は無い 無知発見w 書き換えられないと駄目だし、その他の言語も全て書き換えられる。
それ以前にだな、 JS馬鹿の 外のスコープを参照可能であることとvarのセマンティクスが腐っている事を 混同したアホな議論にいつまで付き合ってやるんだ?
>varのセマンティクスが腐っている 具体的に
>>6 >書き換えられないと駄目だし、その他の言語も全て書き換えられる。
Haskell
>>9 Haskellは純粋関数型言語なので
変数の書き換えそのものがないだけ。
「その他の言語も全て書き換えられる」と 言ったからダメなんだろ。 変数を書き換えられる言語であれば、 すべての言語がクロージャーから クロージャー外の変数を書き換えれられる。
>>5 > JSerはJSが関数型を取り込んでるとか云うわりに、関数型について無知すぎる
関数型を取り込む ≠ 関数型言語
ですよ?
いつ関数型言語になったといいました?
完全論破された後のJSerの言い訳ワロス 無知すぎる
OCamlも再代入はめったに使わない
関数型言語の低レベルのメリットっていうのは純粋関数型言語でしか得られない JSの場合関数型「スタイル」っぽくも書けるってだけのこと
JSerの場合、関数型スタイルの事これっぽっちも分かってないと思うよ まさかコールバック地獄を関数型スタイルだと思ってんの?
JSを叩けなくなったら今度は架空のJSer叩きっすか…… 凄い執念だぁ
関数スコープ外の変数を上書き出来ないと困るー めっちゃ頻繁に上書きしたいわー 上書きにvarとか必要になったら面倒でプログラミングにならんわー ってのがJSerの主張でしょ?
関数スコープ外の変数をあまり上書きしないなら varを付けた場合と付けない場合の振舞いは 逆の方が良いね
>>20 意味がわからん。
varって変数宣言だぞ?
varを付けた時と付けない時が反対って、
お前、 varを付けなかったら、
変数宣言してないのに
変数が勝手に宣言されるってことか?
変数名間違ってもエラーにならないってことなんだが。
IDE使わんの? 未使用変数をリアルタイムで色付けしてくれるタイプの
varを付けなくても勝手に宣言されるとしたら、 名前間違ったら、未使用変数ではなくなってしまうよな。
んなことないよ よく考えろよ
最初に一回宣言しただけで 他から一度も参照されてない変数に色付けする機能があるんだよ varとか関係なく、便利
例えばこういうこと。 var i, j; k=123; スペルミスでkという名前を使ってしまった場合、 varを付けたとき変数宣言されるならば、 宣言されてないkを使っている・・・スペルミスだろうと警告できる。 だけどvarを付けなくても変数宣言される場合は、 kを使ってるから、kは未使用ではない。 なんの問題もないと判断してしまう。
グローバルに変数ができちゃうことが問題なわけでそれ以外は問題ない よってvarとかそういうもので何か変わるもんでもない
JavaScriptにはevalやグローバル変数のハッシュアクセスがあるんだからそれは無理
そうなんだ、残念だね
>>27 グローバルに変数ができることなんて無いよ。
>>29 だよね。ソースコード上は変数が一回しか使われてないように見えても
使っていることだってあるし。
たぶん動的言語を知らないから
思いつかないんだろうな。
>>30 最初の一回目でリアルタイムで色が付くのに、
それに気付かずに二回目も間違えるの?
は? x = 1 ってやったらもろxはグローバル変数だろうが
>>34 ちゃんと読んでよね。
$ cat a.js
"use strict"
x = 1;
$ node a.js
x = 1;
^
ReferenceError: x is not defined
at Object.<anonymous> (/tmp/a.js:3:3)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
>>32 型が動的でもスコープはレキシカルって言語も多いよ
あんまりダイナミックスコープを採用してるメジャー言語って無いんじゃない?
Perl(両方使える)とかEmacs Lispくらい?
変数がどこのスコープに属してるのか解析するのはかなり大変だと思うぞ そんじょそこらのエディタのプラグインじゃないだろうし これからもできないだろう なんだかんだ言ってやっぱりJSはコンパイルが要らないことを活かして トライアンドエラーで、ブラウザのコンソールを使ってデバッグしていくしかない エディタの超高度な支援に期待するのは話がうますぎる
ブラウザのコンソールってお前・・・。 ブラウザにはデバッガが内蔵されていることも知らんのか? ブレークポイントもステップ実行もできるぞ。
>>36 お前こそちゃんと読めよ
strict modeじゃない場合の挙動で
varの効果を逆にすればいいみたいなこと言う輩に言ったんだよ
>>40 今はstrict modeがデフォです。
今ではとっくに解決してしまった、
昔の話をいつまでしてるんですか?
さすがにuse strictじゃない挙動は論外だろ……
>>39 バカはお前だ
当然それも含んでデベロッパーツールのことをIDEとかと対比して分かりやすくコンソールと読んでるいるに決まってるだろうが
言葉の揚げ足取りやめろよ
馬鹿「varの効果を逆にすればいい(どやっ)」 天才「strict modeをONにすればいいじゃないですか( ゚∀゚)アハハハハ八八ノヽノヽノヽノ\/\ 」
>>43 コンソールの意味もしらんの?
GUIのデバッガを
お前はコンソールって言うわけ?
>>41 日本語分かんないのか?
話が噛み合ってないぞ
良く使う&より危険でない操作の方を短く書けるべきだよね?って話でしょ 全然別の問題が並行して議論されてるんですよ
>>43 お前の場合、GDB(デバッガ)をIDEじゃないからという理由で
コンソールっていいそうだなw
>>45 言葉尻を捉えるのはもういいから
勘違いしてた、ごめんねでいいだろ
コンソールはデバッガじゃないですよ。 勘違いしてたごめんねって誤るのはまだ?
過疎スレでJavaScriptが一番話題に事欠かないってだけでしょ ここでもそうだけど
>>38 evalとかバイトコード書き換えを使う場合を除けば
解析できると思うけどねぇ
eval使って解析できないのは自己責任と割り切る
一応メモ帳でも書ける言語なんだからエディタに期待するのは 言語仕様検討外だからなあ 一応実行時のデバッグサポートについては沢山仕様で入ってるけど そりゃあ不可能ではないが JSLintやHintでさえ異常な認識したりするし、現状絵に描いた餅だなあ
LListの場合はサーバサイド−クライアントサイドとして見た時 もしくはそうじゃなくても日常的にWebは皆触れてるし、 大企業が絡んでるのも合って公平に見てもJSが最も話題にしやすい言語かと HTML5とES6の勧告が来年に控えてる今だからってのもあるけど
単純にJavaScriptを使っている人が多いのと、サーバーサイドでは別の言語を使っていて クライアントでJavaScriptを使う、みたいな人が多いだろうから他の言語との比較で色々 話題や不平不満も出てくるんじゃ無いのかな。 言語Aでの作業から言語Bへの作業にスイッチした時に「言語Aではxx出来るのにむき〜」 と感じる場面が自分は時々あるけれども、JavaScriptも例外じゃない。
Webは日進月歩だしJSの仕様実装もLivingStandardだしね WebAPIを含めれば毎日何らかの新しいことがあるだろう 個人的にはやっぱりES6で歴代のバージョンUPと比較できないほど 大きく変わるっていうのにワクワクしてる
俺も土管として使いやすくなりそうでワクワクしてる
ProxyやReflectionが入ったから色んな代替言語が作りやすくなるだろうね
Reflectってどういう時に使ったらいいんかね?
Javascriptの生産性が低すぎる件ですが どうやったら解消できますか?
具体的には? というか言語の生産性にそこまでの差なんて無いと思うけど それDOMがつまらないってだけじゃない? もちろんスクリプト言語なんだから環境によってぜんぜん違う UnityのJavaScriptなんてまるっきり別物だし
>>1 >静的型付け言語の潜在開発生産性は今の100倍
なるほど、今の静的型付け言語は、動的言語の/100の能力って事だな。
スレタイは一見、静的言語を褒めてるように見せてるけど、実は動的言語(´∀`∩)↑age↑なんだよね。
当面は動的が有望と。
単純に考えて実行環境は コア数が増えサンプリング推論技術が高まるほどより動的な言語に有利
>>67 > >静的型付け言語の潜在開発生産性は今の100倍
>
> なるほど、今の静的型付け言語は、動的言語の/100の能力って事だな。
なんでこんなに馬鹿なんだろう?
論理学の勉強したこと無いのかな。
馬鹿にも分かりやすくたとえてあげよう。
フリーザ「私の戦闘力は今の100倍だ」
ヤムチャ「ということは俺の1/100の戦闘力って事だな」
世代じゃないから分からん とある辺りで例えてくれ
世代じゃないって、60代以上か? でも俺の親でも知ってるし、 だとしたら、70代以上か?
20だ
頭が悪いからJSしか使わない 動的言語なんて他にもいろいろあるのに
こりゃまた頭が悪そうな台詞だ
ほらな 本当に一つしか知らないからこんなレスにも反応してしまうし、 そう思考停止してるから与えられた環境で満足してしまう それがJS使いの平均だと思われるのが本当に残念だ
>>75 お前誰にレスしてるんだ?
いきなり出てきてわけのわからんこと言うなよ。
お前の人間性が問われるところだぞ。
とりあうな
>>69 100倍もあるなら何故すぐ発現させないんだ?ってところだろ。
いつまでたっても発現しない「潜在性」に縋るのは単なる厨か信者だしな。
民主の潜在可能性は自民の100倍! 株価は3倍、国民所得は2倍に!
>>78 > 100倍もあるなら何故すぐ発現させないんだ?ってところだろ。
ツールとか技術がまだ確立されてないから。
すぐに出来ると思うなよw
どの辺りに伸び代があるの? と建設的な質問をしてみる
データベースとモデルクラスが一体化すれば楽になる DDLを定義変更したら自動でモデルクラスが再生成されるとか もう既にあるんだろうけど
その辺りはもはや言語と言うよりフレームワークの問題では? そもそも言語にそんな差があるとは思えない 純粋関数型は特殊さがいろいろあるけど、静的か動的かくらいでねぇ
>>80 じゃあ動的言語も、ツールとか技術が確立されたら、静的言語を軽く超えるな。
>>64 ポリフィルに凄い大活躍すること間違いなし
もう型推論でも使ってろ これで静的も動的も仲良くなれる
JavaScriptの著名なエンジンは型推論してるじゃん
TypeScriptのあまりに御粗末な型推論を見る限り JavaScriptの型推論には期待出来ない
TypeScriptの型付けはコンパイル時エラーを出すためのもので 実行時には何の効果も及ぼさないよ JSのエンジンの型推論は普通に協力 だからこそあの速度を維持できるんだからね
真面目な話、実行時プロファイルに比べたら効果は微々たるもの
仮に実行時に効果を及ぼせたとしても、 簡単に数値化と文字列を間違えるようなウンコな型推論じゃ 全く効率的では無いだろうね > TypeScript
文字列と数値の間違いなんて無い
馬鹿なんだから、確かめもせずに無いとか書くなよ
>>6 で知ったかして恥かいたばかりだろJSerは
今のCPUじゃ32bitや64bitが扱いやすいんだから オーバーフローが気になる固い数値型は要らなくて JSとかDartとかみたいに自動スケーリングのほうがいいと思う
>>93 エディタの表記が間違うのはエディタのせいであって言語の間違いではない
全てはTSの仕様通りですがなにか?
これを貼れば良いんだよねw > function g() : number { return ((x,y) => x + y)(1, "Hello World"); } > の戻り値は "1Hello World"
それ型推論関係ないし TypeScriptの型指定は実行時は関係ない IDEのサポートのためのものでしかない
>>84 > じゃあ動的言語も、ツールとか技術が確立されたら、静的言語を軽く超えるな。
それはないよ。
動的言語の定義により、
「実行するまで状態が確定しない」
故に実行前に知ることが出来ない情報が多い。
コンパイルが要らないから 実行時も開発環境に気楽に入れれるから 状況が違う
>>99 おいおい、実行って一度実行すれば
いいってもんじゃないぞ。
実行しないと状態が確定しないというのは、
一度実行しても違う実行パターンがあるならば
状態が確定しないということだ。
すべての実行パターンなんて、想定不可能なわけで
事実上いくら時間があっても、状態は確定しないってことだぞ。
コンパイル時間なんて実行時間に比べりゃ 微々たるもんよ。
変なことを言うねえ ライブコーディングは大きな開発生産性じゃない?
いいえ、何も考えずに行き当たりばったりで 書いてるだけにしか見えませんね。 頭のなかでちゃんと考えていれば 実行しなくてもコードはかけるはずです。 例えば将棋でコマを動かしてから考えるプロがいますか? そんなことをするのは初心者だけです。 動かしたらやり直しはきかないですからね。 頭の中で瞬時に幾つもの手を考え、その中から 最善の方法を選び、それを書くだけなので動かす必要はありません。 いちいち動かすなんて面倒くさいことしてられませんよ。
将棋のソフト作る時は予想外のバグがあるもので 何十回も何百回も動かしてみないといけないものだぞ それは電王戦出るような開発者も言ってるし 自分もつくづく感じてる
そもそも、ライブコーディングは、ライブでコーディングすることであって ライブで実行することじゃないからw
ん?いきなりどうした?
C言語やJavaのライブコーディング動画も あるのに何を言ってるんだ?って話。
そりゃそのとおりだね。
ここまで1100レス消費して 動的型が優れてる証拠は山ほどあるのに静的型については0 静的厨はいつもの様に揚げ足取りにご執心 人の意見は否定してばかりだが自分の意見は言わない それも当然、ぶつけて負けるのが分かりきっているから 恐怖と不安で脳が混乱し煽り文章しか打つことが出来ない 当に病気
自演のコメは間隔が約3分あいててわかりやすいね。
もう煽りはいいからね…… 前向きな話をしようよ。 このスレで話すべきことはこんな技術があるよってことでしょ?
煽ってきたのはそっちだってーのw ライブコーディングの意味間違ってるでしょ? それに対して反論がないなら、 何も言うことはないはずだよ? 誰にレスしてんのさ。
>>113 言うだけ無駄無駄
こいつら最初から分かり合うつもりなんて一切無いし
折角わざわざ過疎スレに動的言語のネタ投下してやってるのに、こいつら言語と同じで頭まで固い
普通だったら勉強になるなぁってなるとこ
今じゃ色んな言語が色んな言語の特徴を取り入れてるってのに
おまえ自身の思考が潜在能力を潰してることに気づいたときには手遅れw
>>114 ,117
お得意の記憶操作&被害妄想いつもご苦労でーすww
自演のコメは間隔が約10分あいててわかりやすいね(笑)
おお、こりゃ自演バレが余程応えたようだw 効いてるw効いてるww
こいつなんで煽るんだろう? ライブコーディングの間違いを指摘しただけでしょ?
素直に間違いも認められないし、謝ることも出来ない。 言動がガキそのもので人間性が最悪、最底辺だなーって思うね。 多分本人も気づいてないんだろうけどさ。 社会の落ちこぼれなんだろうな。 だからここでうっぷんを晴らしている。
頭から読み直してて気になったんだけど、
>>96 って本当にコンパイル通るの?
>>97 君の考える型推論って何?
型注釈はあっていいなぁ。あって困る理由がない。
numberって型注釈を書いてstringが返ってくるくらいなら 何も無いほうがマシ まじで騙されるわ
コメントにnumberを返すって書いてあるのにstringが返ってくるくらいなら コメントなんて無いほうがマシ まじで騙されるわ アホでしたか。
アホはお前だ
TSはJSに変換されるんだからオーバーヘッドがかからないように 実行時の判断は省略されるのは当たり前 エディタの問題であって言語の問題ではないし 凄く特殊なケースを挙げてまで何がしたいのだろうか?
型チェックをすり抜けるんだからコンパイラの問題じゃん
せやな 言語のせいじゃない
>>106 いや、ライブで実行することだけど?
少なくとも学術論文ではそうなっているよ?
130 :
デフォルトの名無しさん :2013/10/08(火) 18:19:55.04
コンパイラがバグってるんじゃなかったら、 そんなユルユルな型チェックで良しとする言語の問題
TypeScriptの場合、
>>96 は仕様通りだよ
まさかのソースはウィキかw
ほれ、学術系での定義
http://liveprogramming.github.io/2013/papers/liveness.pdf A system supporting fully live programming is one that permits
a programmer to edit a program while it is running, and furthermore
the system continues the execution immediately and without noticeable
interruption according to the updated version of the program
LLと同じで必ずしも同じ意味で使われてるとは限らないでしょ 言葉尻捉えるより相手の気持ち汲み取ってあげようよ
Java, PHP, 旧VB, 古い時代のPerl, Javascript この辺りの言語しか経験の無い奴って ウンコ言語の基準でしか物事考えられないから 議論が噛み合ない
まあJavaScriptはいくらバージョンを重ねたところで今ブラウザで広くまともに使えるバージョンが 未だウンコなので仕方がない。
広く使える必要なんて皆無だけどな 広く広まってる分新しいバージョンの人数も多いということでもあるし そもそもWeb上のものだけのものでもないからね
139 :
デフォルトの名無しさん :2013/10/09(水) 05:10:43.68
ロジックはc++で書いてasmjsにして終わり 早くこんな時代になってほしい UIはjsでいいかな
asm.jsで直接扱えるのは数値と真偽値だけです
>>133 ライブコーディングでなくて、ライブプログラミングだし、
しかもライブコーディングの部分読む限りwikiと変わらんけど。
自分で相手の根拠示すとか、根本的なアホなの?
今現在一般向けのウェブサイトのUI開発にCoffeeScriptの類を使うのは珍しく 無いけど、ECMAScript6相当を同じ分野に投入できるのはまだまだ先だろうな。 当面はサーバーサイド等の特定実装かマニアの趣味。 ブラウザのバージョンの入れ替わりの速いモバイル向けのHTML5アプリから使わ れ始めて、PC向けのサイトにも使えるようになるのはGoogleがIE10のサポートを 切る辺りだろうから、まだ数年かかる。
CoffeeScriptやTypeScriptはES6みたいなものだ CSはESの礎(プロトタイプになったし) TSのはES.nextを意識して実装してる classとかアロー関数とか有名なものは皆は同じ
つまりCoffeeScriptやTypeScript、Haxeを使っておけば良いということか。
ブラウザではコンパイルしてJSになる言語を使ってればOK
>>146 今使うのならCSよりはTSにした方がいい
CS使うのならES6simuの方がいい
でーでもTSの型推論ゴミでしょ? マトモな型推論ある言語を使った事あったら 草不可避
まあES6はES5に置き換え不可な機能がいくつか合って
classもそうなんだけどな
とにかくclass構文に関しては導入され次第さっさと使った方がいい
>>142 IE12はおそらくwin7対応だろうし
自動アップデートされるから10とか気にしなくて良くなるよ
Vistaの9が暫く気になるかなー、まあ数少ないし仕方ないかくらい
TSに型推論なんてないぞ? 型注釈ならあるがあくまで開発サポートのためで 実行時には綺麗サッパリ外れてほぼCSと同じコードになる
いくらTSの型推論がゴミだからって、全く型推論が無い扱いは可哀想だろうよ 一応、この程度のコードなら型チャックしてくれるんだから function f(): number { var x = 1 var y = x + "a" return y // Cannot convert 'string' to 'number' }
うわ、型チャックってなんだ。型チェックだ
マトモな型推論ある言語を使った事あったら TypeScriptに型推論があるなんて思うわけがない 上に出てた型推論とは全く関係ない指摘を型推論と思い込んじゃたってのがすぐ分かる
>>152 型推論っていうのは宣言を明示的にしなくても
勝手に宣言してくれるような機能であってそういう明示的なのとは全く違う
でもこれは型チェックできない、ワロス function f(): number {return ((x) => x)("a")}
xやyの型でエラーが出てるんじゃなくて 関数の戻り値の型と合わないエラーでしょ 型推論っていうのはこういうの var x = []; x = 1; //error
>>158 お前本当に何も分かってないな
宣言してないyの型を推論して、その推論した型と戻り値の型が合わないから
エラーを出してるんだろうが
で、
>>158 のそのxは何で型エラーが出てるの?www
型推論っていうのは 型を推論することじゃなくて どの型で宣言されればいいのか推論することです いい加減恥ずかしいからやめてね
function add_1(x){ return x + 1; } function add_2(x){ return add_1(add_1(x)); } add_2("22"); // compile error こうだろ普通 戻り値型の注釈付けておいて型推論できましたって言われても
それは何でコンパイルエラーなの?
>>164 型推論が働くならコンパイルエラーという意味
JSは文字列と数の加算が定義されてるんだから、 勝手にエラーにしたらダメだろ
IE11、ES6対応といっても主要な機能だとletとconstへの新規対応だけなんだな。 ES6は凄い -> letとconstが使えます、って事か。実質。 そりゃ凄い。 言語の仕様拡張で夢は広がりんぐは結構だけど肝心の実装とランタイム環境の更新が 伴ってない。 ブラウザ向けは当面別の言語の模索も続くだろうね。Haxeってどうなん?
>>166 それもまともに型推論働かない理由の一つだな
根本的におかしい機能に固執する
varはスコープの先頭にまとめるというスタイルも変数巻き上げのトラブルを避けるための ノウハウはいえ、客観的にみると単にウンコな変数宣言の仕様に巻き込まれて強制されて いるだけで、見栄え的にも何時の時代のCよという感じではあるな。
>>163 ローカル変数の型推論は型推論と呼ばない俺ルール発動ですか?
俺ルールじゃないなら信頼できるソースを頂けますか?
>>170 俺ルール発動か?
そもそも型推論じゃないとは言ってないが
そんな貧弱なチェックであるとドヤ顔されても困ると言ってる
型推論っていうのは変数の宣言される型を推測することであって その変数がどんな型かを推論することじゃないだろ TypeScriptの場合varで宣言したときはJSと同じ任意型であって 型推論で型が決定されているわけじゃない
>>169 それはJSに慣れてない人のためのもので
知っていれば別になんでもないこと
>>172 広義では型を決め打ちすること全般でいいんじゃ?
ほかの言語の欠陥はあげつらうのにJavaScriptの欠陥は「知っていればなんともない」 なんですね。巻き上げられて良いことなんて何もない、単なるバグの発生源なのに。
つーかTSとかの型推論挙げずに素直に関数型言語や.NET系の型推論挙げとけよ
anyとvarで吐かれるコードは同じ そんないい加減なもの型推論とはいえない
179 :
デフォルトの名無しさん :2013/10/09(水) 20:42:44.15
>>175 それでバグが起こったことや実際見たことなんて入門したての頃から10年強一度もないな。
>>178 型チェックの結果コンパイルエラーになるか否かが違う
なって無いじゃん そんなんコンパイラの気休めサービスで言語の機能じゃないだろ
>>179 宣言を最初にまとめる方が異端な現状を見ると全く説得力がない
ただ気になる人もいるってだけでそりゃ人間の好みって言うもの
lintとかでも途中の宣言を認めないなんてものはないし
実際困ることもない
重複宣言にならないっていう便利なことはある
letなどならこれはエラーになってしまう
要は使い分けの問題
これはコンパイルエラー var x = 0 var n : string = x // Cannot convert 'number' to 'string' こっちはコンパイルエラーじゃない var x : any = 0 var n : string = x
185 :
デフォルトの名無しさん :2013/10/09(水) 20:57:05.49
ES7のguardが導入されるのを待とう。 既に一部ES7候補の仕様を実装してきているFirefoxならそう遠くないはず。
その通り動かない仕様書なんて便所の落書きと同じw 必死だなTS厨www
>>186 >その通り動かない仕様書なんて便所の落書きと同じw
仕様書のどの辺りを読んで、仕様通りに動かないと思ったの?
仕様書のその箇所を引用してみて
TypeScriptは言語じゃなくて「JavaScriptをよりよく書くためもの」だからこんなものだよ。 それで十分役目を果たしてるんだから問題ない。
>>187 その必要はないw
こちらにはちゃんとした型推論ではなく気休めサービスでしか無い証拠があるんだからw
そちらがちゃんと示してコンパイラの実装不備で今は便所の落書きになってるけれど
将来は期待してくださいお願いしますって弁解してみろよww出来るもんならwwwww
>>189 いや、型推論がゴミなのは仕様通りなので、
コンパイラの実装不備っていう結論はおかしい
そう言える証拠があるなら別だけど
>>189 仕様書も読まずに仕様について語るなよ……
それでもプログラマかよ
ゴミの型推論が仕様通りならちゃんと擬似型推論って言えよww 見え張ってんじゃねえよww
>>191 馬鹿かw
こっちは型推論が仕様にあるって言葉を信用したんだよw
で、実際はゴミだったわけだw詐欺だわwww
遂にTS厨白旗かww もう人格批判がやっとやっとww
ていうか、一貫してTSの型推論はゴミだと書いてきたつもりだが… どのレスを読んでTS厨だと思ったのだろうか
型推論なんていらない せっかくの動的型の優位性が失われる 自動変換も知らないやつが悪い
自動変換?暗黙の型変換のこと?
JavaScriptの暗黙の型変換や条件評価はものすごく複雑だぞ まあ普段使う分にはその1/5くらいの知識で十分だろうが
型推論で失われる動的型の優位性って何?
型推論をパフォーマンス向上のために使うのなら結構だし、実際されてることだけど、 それを厳格さのために用意されて型エラーが出るようなことになると相性悪いってことじゃない? やっぱりguardとか「型揃え」の方が考え方として相性いいんじゃないかな。
連想配列に色んな型を含める
オブジェクトに入れればいいんとちゃうん?
連想配列はMapを使えばいい
まあ本当にそこは言語の「柄」、そうじゃなくなったらその言語じゃないって部分だから JavaScriptを使う限り前向きに受け入れて使うしか無いでしょう どんな言語でもそう
new xcomponent({width:200, height:100, visible: false}) // 使用 動的 xcomponent::constructor(xcis){...} 静的 xcomponentInitStruct { int width, int height, bool visible } xcomponent::constructor(xcomponentInitStruct xcis){...}
既に「エラーの出ない型推論」をエンジンが暗黙的にやってくれてるんだから JSはそれでいいじゃん
scalaとかも静的型なんだが
実行速度だけで言えばそうかもね もっとも実行速度で比べたらJSも静的型言語に比べたら遅いけど
まあ、TSの型推論をみれば、JSのエンジンがやってる型推論の程度も想像がつくな 本当に自明なところだけ推論してるんでしょう
JSは変数使いまわしたら推論効かなくなるっちゅうの
俺ならこうする y &= ~(y >> 31);
型推論というのは二種類あって、 一つは、静的型付け言語用の機能で型を書くのが 面倒だからそれを省略してかけるという機能 これはあくまで省略記法であり型情報は失われておらず 型を書いているのと全く変わりがない。 そのため静的型付け言語用であり、こっちの意味の型推論は 動的型付け言語には存在しない。 一般に言われる型推論というのはこっちの方。 もう一つは動的型付け用の機能で、明らかに特定の型しか なりえないと判断した時に、動的な言語の遅さをカバーするために 特定の型用に最適化するための機能。 JSなんかの型推論というのはこっちの方。 コンパイラが頑張って型を推論できればいいのだが 現実にはそれが難しいために、型を明確にするために 特殊な書き方をすることがある。
うーん。それだと実行時に統計情報を収集して 特定の型用の最適化コードを生成するのも含んでしまう感じだな
216 :
デフォルトの名無しさん :2013/10/09(水) 22:33:56.84
HaskellとCoffeeScriptの組み合わせがトレンドなんだろ?
asm.js使うとネイティブ超える場合もあるしなあ
後者ってVMで有効になるやつのことでしょ JSみたいに根幹にハッシュ使ってる言語で型推論で最適化とかいっても焼け石に水だと思うけどなあ
最適化に邪魔な仕様は意図的に無視して 何らかの不具合が生じた場合にフォールバックするというのが JS最適化の手法
既にhotspotが通ってきた道だな
だってV8の主流メンバって同じ人でしょ?
いくらJSでも型が途中で変わる方が稀だしな JSerが型宣言を嫌うのは厳密性よりもむしろ面倒だから だから型推論は嫌いじゃない
asm.jsみたいなのがJSのあるべき姿じゃね?
そういう人は型推論付きの関数型言語やるとJSが嫌いになる ソースは俺
>>226 asm.js式の最適化方法は汎用化されてエンジンに採用されてきてるよ
まあでも要はこれguardだよね、ES7が入ればやっぱりこのへんは良くなるだろうね
>>226 あんなの使うならVM作ればいいじゃんって思う
emscriptenのために犠牲になってるとしか思えない
VM作っても型が動的でであるならば 結局遅いんだけどね。
何回か書いたことあるけど 一番ダメなのはデバッガの表記が解決に繋がりにくいこと 今手で書くとして一番ダメなのはそこ あとやっぱり形態がモジュール風というか、 ちょっとasm.js関数1つ作りたい時とかには厳かすぎるね
asm.jsなんて手書きするもんじゃないと思う
ES7のguardsって何?パターンマッチの出来損ないみたいなもの?
>>232 ,233
それは好奇心を制限するものではないさ
自分はまだ手で各可能性を信じてるよ
ようはlintとデバッガさえまともになれば手で書けるんだからね
>>234 マルチ型付け
つまり変数の型を決定するのではなく、入ってくる型を宣言する仕組み
ようするにガード
>>236 宣言した以外の型が入ってきたときはどうなるの?
238 :
デフォルトの名無しさん :2013/10/09(水) 23:14:16.94
おれはすでにロジックはC++で書いてemscripten
>>237 当然エラー
多分こんな感じになるんじゃない?
let x :: Number | Boolean = value;
ES7では特に数値型に関してはリテラルもたくさん入る。 それら同士の演算結果の型がどうなるか次第でだいぶイメージ変わる。 そもそもプリミティブ型になるのかvalue-object型になるのかが不明。
演算子オーバーロードとValueProxyが入るから ES7からはどんなものでも自由自在に暗黙の型変換できるし いくつも新たに定義されるだろう
Mozillaだけが突っ走ってその他のブラウザが実装し始めるのはずっと先だと思うけどね。 そんな未来は来ない可能性だってある。
ValueObjectはES6に前身が入ったしES7途中経過報告でもう発表されてるし ES7の3本柱になることが確実なものよ ES6で実装する時に手間をかけるからES7への移行はスムーズに行くはず そこんとこプリミティブ型になったらやっぱり厄介だろうね だから実装負荷も考えてValueObjectで行くことになると思う Parallelsも他の仕様と絡みにくいWorkerの糖衣APIみたいなものだから実装は容易 ガードもただ実装するだけなら型チェックの変形版だから容易
ValueObjectってどのブラウザで使えるの?
FirefoxでValueObjectのコンストラクタ(?)の前身が使える int8(123)とかfloat32(123) 今これはただint8やfloat32に揃えられたdouble Numberプリミティブ型が帰ってくるだけで、 ES6ではStructType({ x: uint32, y: uint32 }) とかして構造体っぽいのを作るために専ら使われるものだけど ES7ではこれが増えて int64(123) bignum(123) decimal(123) とかしたときはValueObjectというものが帰ってくる予定 そしてそれらを演算子オーバーロードやValueProxyの技術と合わせることによって オブジェクト間の演算が可能になって、JSに型を増やせるねってこと
Haskellの先進性に比べると JSに追加される機能は 時代遅れのウンコと言わざるをえない
247 :
デフォルトの名無しさん :2013/10/10(木) 01:59:49.12
先進過ぎて誰も付いてこれないんじゃないか? 例えるなら鳩山由紀夫みたいなもんだろう
そりゃあだって今までは単なるブラウザの上で ちょこちょこっとHTMLを動かすだけのスクリプトだったんだからね でもこれからは低レベル、高レベル、スクリプト言語として、大規模開発用言語として 幅広く、深く進化していくよ ES5移行は本当に多くの言語を参考にして作られてる 確かHaskellもどこかの仕様で見たし、議論でも見たよ 遅いかもしれないけど失敗や出戻りが少なくて済む、 馴染み深いものが入ると思えばいい 特にパフォーマンスに関しては貪欲だよ 初めて言語仕様で最適化を明言しようとしてるし、 マルチスレッド化やSIMD系の型も入る 他にもイベントループとそれを扱う仕組みが言語に組み込まれたり とにかく見てて毎日飽きない そこがJavaScriptの一番の良さだと思ってる 完成されきっちゃったら話すこと無くてつまんないじゃん
平和だなあ
>>182 >宣言を最初にまとめる方が異端な現状を見ると全く説得力がない
これはそうかなぁ。
function(){
var a = ... ,
i = 0, ...
......
for(; i < x; i++)
的なのはよく見るでしょ。書き方のスタイルとして。
おいおいw それは2000%ないわw ループ複数書く時詰むだろそれw これの間違いだろ…… (書き慣れてないのがすぐ分かるなオイ(笑)) function(){ var i ...... for(i = 0; i < x; i++)
2000%無いって、jQueryそのものや関連プラグインはこの書き方多いやん・・・ カウンタの類の初期化まで先頭でまとめてやるのは極端にしても関数の初めの方に 変数宣言をまとめる傾向はJavaScriptでは結構目立つと思う。
jQueryはその上で変数を使い回す
傾向と徹底するのはぜんぜん違うだろ……
NPMスタイルのセミコロンフリーと同じ 合理性を考えてのものだが異端は異端 でもそれを愛するのは素晴らしいこと 俺もセミコロンフリーで貫いてきてる
JSでセミコロン無しで書く奴はキチガイ 素直にCoffee使えと
258 :
デフォルトの名無しさん :2013/10/10(木) 12:29:08.52
言語仕様で省略が定義されてるんだから不必要なところで省くのは当然。 Coffeeでもいるときはいる 何も変わらない
そう言えばコンストラクタをnew無しで呼び出すと グローバルに変数ができたり誤作動起こすから JSではインスタンス化にnew使うなっていう派閥があったな それと同じくらい過度に慎重すぎね? もちろん付けるスタイルもありだと思うが 付けないからといって基地外はないさ
jsマンセーしてる奴らは静的関数型なんが触ったこともない低濃どもでしょ? あんなクソ言語で生産性高いとか片腹痛いわw
実際のところMozilla以外のES6の実装の現況ってどうなの。 letとconstだけ実装されてその他の機能のサポートはベンダーごとにてんでばらばら というオチにならない保証ってあるの?
標準があるのにどうしてバラバラになると思うのか? 11月くらいがラストコールだから 表立った実装は来年来年からってとこでしょう V8は近々大きな動きありそうだけど
265 :
デフォルトの名無しさん :2013/10/11(金) 03:58:39.03
jsは標準ライブラリの類が貧弱すぎ c++にすら負けてるって言語として存在価値なし
標準ライブラリが多くあるべきかどうかは良し悪しあると思う 特にJSは「スクリプト」なんだから環境に応じた ホストオブジェクトを提供してもらったほうがとても合理的 基本的なものは揃ってると思うし
ある程度クロスプラットフォームじゃないと スクリプト使ってる意味ない気がするが
共通して必要そうなものはひと通り揃ってると思うが……
具体的に書いてくれんと困るな 具体的に何が不足してると思うのか
ライブラリの多い少ない以前にJavaScriptはライブラリをimportする機能が言語仕様に 無いじゃん。ライブラリ毎に手作りしたローダー使うとか<script>タグ使うとかバラバラ。 来年か再来年には解決するらしいが。
ES6にあるからそれを今言われてもどうとも言い様がないな。 1年待ってね、ってくらいか。
結局ライブラリとは何だったのか……
つかえねーなw
JSに代数的データ型とパターンマッチが入るのは何時ですか?
>>270 そんなもん、requirejsでとっくに解決してるじゃん。
requirejsでscriptタグで読み込むのを想定したライブラリも使える。
実際にライブラリが使えるのであれば、
ライブラリをインポートする機能の有る無しは問題じゃない。
requireは今は処理系拡張であって言語仕様にないだろ 標準化してから言えよ
本当に欲しいのはブラウザの上で動くVMであって、いまjsをそのような使い方してるけどこれじゃない感はあるよね。どうしても無理やりにしたりjsの言語仕様に引っ張られる。 その上でjsが実装されたり他の言語やそれをラップしたJVMやCLRが動いてネイティブの移植が格段に楽になるとかなればいいのに。 その上で皆が実装言語としてjsを使うかは見ものではあるけれど。 各社足並み揃えて作ってくんないかなー
Scalaでappletを書けないものかね?
>>279 パターンマッチつーたらHaskellやMLにあるやつでしょ
ていうか、ES7に代数的データ型入るの?どんな感じのコードになるの?
あの文脈でパターンマッチが分からないとかいうし、
イマイチ
>>279 は分かってない気配がするんだけど…
それでも意味はかなり広いと思うが ES6の分割代入やらレストパラメータやら、それこそES7のguardとかじゃないか?
>>281 すまん寝起きで適当に言ったが、まあJS関数型じゃないから
JSっぽく同じようなことは実現できると思うよ
何れにしても今は無いし使えるようになるのも再来年かそれ以降だな。
標準ライブラリが少ないみたいな話は、必要なら多くする必要があるかなって思うけど
もう言語の書き方については、
例えばJSにはクラスがないけど、もっと面白い方法が使えるわけで
そこはJS流で書いてねとしか言えんな
もちろんどう足掻いてもやりにくい、不足してることがあるんなら別だけど
>>284 分割代入云々は既にFFで使えるよ
そんな特定環境の特定実装の特定用途にしか使えないもの「使える」とは言えん。 「試せる」とでも言っておけ。
じゃあ試せるよ
素直で結構。
Firefox、及びそのOS、及びGMのシェアは特定とは言いがたいほど多いだろ
JSの場合はいっせーので実装が変わるわけじゃなくて日進月歩 機能もV8に1つメソッドが追加されたね そういうものだからもっと緩く見て欲しい
>>289 ブラウザ上での用途に関してはFirefoxの機能拡張およびFirefoxでしか動かないサイトの作成というのは
充分に特定用途だと思うが。
サーバサイドに関してはこればかりは実績が伴わないと意味がない。
「使える」とは例えばストック状態のnode.js等で使えるようになってから言ってほしい。
あー言えばこー言う ダメだこりゃ話にならん
FirefoxでES6の仕様通りに使えるものは「使える」と言っていいと思うけどな 仕様通りじゃないものは「使えない」だけど マクロとしてのJSって未だにES3相当が多いし そういうのまでとは一緒にできないというか、 そもそも「JavaScript」っていう名称が EcmaScript準拠+環境APIっていうくらいの意味しか持ってないと思う もちろんES3のポンコツ実装からES7にいきかけてるものまで入り乱れてるのがWebだから そこを考えると必然的に「使えない」「使えない」となってしまいがちだけど そんな厳しい環境で話をしなくてもいいと思うんだよね 例えOpenGLES3が使えるAndroid端末が当分は数少ないとしても そういう技術を話してる時にそれを出して使えないと言うのは違うと思うんだ それと同じだと思う
そういうのはJS専用のスレでやれ 違うとか言われても実際使えないなら使わんし
使える環境があり、使おうと思えば使えるのは「使えない」とは言えません
あほくさ Mozilla仕様なんてアドオンぐらいでしか使えないだろ 本当ウェブ界隈は似非プログラマ多いな
まるで働けるとこがあって働こうと思えば働けるのに 言い訳ばかりで働かないニートのようですね^^
仕様追いかけてるだけで書ける気になってるニート君は XULでも書いてりゃいいんじゃない
仕様追いかけてるだけ??? 実装もされてて使えるじゃん 何言ってんだこいつ
そりゃあ実際問題Webでは使いにくいだろうけど 意地になって使えないと言うほどのことでもないのに なんか相手に自分の意見認めさせたら賞金とかでも出るのか? ここは潜在能力や可能性を語るスレなんだから こういうのもあるんだでいいんじゃないかな 何かと文句つけて否定してもメリットがないよ
可能性だけで言うならHaskellが最強ですね
requireがjsの言語仕様(ecma)で標準化されてるとか なんでつまらない嘘つくん
純粋関数型言語はコア増加の流れと相性がいいと思う この先コアが数十個、百個ってなっていった時、 超並列時代で活きやすいってのは大きな魅力 でも関数型臭さは良くない点でもあるんだよなあ
>>302 ecmaじゃなくてJavaScript
ecmascriptはあらゆる拡張を許してるから
商標はともかくオレオレ言語仕様を入れてJavaScript仕様とするのは自由
UnityのJavaScriptなんてC#バインドの酷いもんだろ?
JavaScriptが何なのか それは使ってる人によって全然違うと思う 例え同じV8でもNodeとChromeじゃ書き用が違う やっぱり標準入出力を持たないESはスクリプト言語であって 環境と合わせて初めて言語といえるんだと思うんだよね そんな中このスレであえて話題にできる一番しっかりしたものって言うと 勧告間近のES6draftについてじゃなかろうか もしこのスレで鋭いアドバイスが出たらESコミュに挙げてもいいし 使える使えないの話をするより、どんな仕様や技術がいいのか話すのは 思った以上に有意義なことだと思うよ
UnityのJSはJSerなら絶対JSと認めないJS
>>304 どのオレオレJavaScriptで仕様化されているのrequireは
ジョークにマジレス?!
都合の悪い発言はジョークとか釣りってことにして有耶無耶にします
そんな事よりrequireが標準化されてるソースまだー?
アスペ乙
相手の言いたいことを察する能力に欠けてる アスペ可愛く言うとKYです
アスペってことにして終わりにしたいんですか? なんでrequireが標準化されてるなんてぶっこいちゃったの? これだけでまともに触ってないのバレバレじゃん
誰がそんなこと言ったんだ? またお得意の被害妄想か!
でっち上げは玄人()プログラマの得意技だからな
なんだかんだ言って、あちらこちらで話題になるJavaScriptは凄いと思う 他の言語は一瞬話題に上がってもすぐ途切れちゃうもんね 特に静的型言語はそういう傾向があるように見える 活発なLL人に比べてなんかもう皆冷めてるというか悟ってるイメージ
>>276 >標準化されてるよ
本当に話し逸らして何とかなると思ってるの
標準化のソースまだー?マチクタビレタヨ
もしかして
>>279 か?
ちゃんとアンカ付けてくれないと誰に愚痴ってるのか分からなくて困惑するんだけど…
319 :
デフォルトの名無しさん :2013/10/11(金) 20:19:58.16
JSが興味深いから話題になってるんじゃなくて、 JSerが直ぐバレるテキトーな嘘かますから炎上してるだけじゃね?
>>321 まともに会話する気がある人の時点で許すよ
心から許すよ
たまには文句言う前に作ったら?
JSerの奴らはIEの介護で憔悴しきってるんだからちょっとは夢を見させてやれ
325 :
デフォルトの名無しさん :2013/10/11(金) 22:03:27.98
JS使いの屁理屈っぽさはウェブ系って感じがするよね。 メガネかけてるんだろなあ。 自分で自分のことオサレって思ってる感じがオシャレじゃないねって感じ。 わかる?
オシャレだからJSやってますとかJSやってるからオシャレだなんて思ってる人はそうそういないと思うよ。 そんなに新しい言語でもないし古臭さも残ってることは残ってるし、 今や定番になってきたけどちょっと前の頃のC#とかobjective-Cがまさにそんな感じじゃない? JSは「楽しい」んだと思う、もちろん周りの環境、HTML5ムードも合わせて、凄く素敵でやりがいがある。
327 :
デフォルトの名無しさん :2013/10/11(金) 22:13:44.71
うん屁理屈っぽい。 メガネ。
実際に楽しんでることをメガネって言われても困るな 別に生きとし生けるもの全てがJSが好きになれるとは言わないよ
329 :
デフォルトの名無しさん :2013/10/11(金) 22:19:45.94
でもさ、メガネじゃない眼鏡だって言われてもJS使いなら納得じゃない? そんな感じしない?
330 :
デフォルトの名無しさん :2013/10/11(金) 22:21:13.22
別にJSerは他の言語を否定したり俺が一番だなんて言ってないんだよなぁ
JSerは純粋だよ ここでもJSをフォローして熱を伝えようとしてるだけ
JSerの発言は20年C言語やってる俺からしたら全て子供の戯言レベル
333 :
デフォルトの名無しさん :2013/10/11(金) 22:25:47.00
関数型の便利さがわからない。 どこがどう便利なのかさっぱり。 もしかして不便になってない?
制約を儲けることは都合が良くもあり悪くもある 何を取るかという話 何も考えずに見たら当然使いにくいものでしか無い しっかり考えて関数型がいいな、今回はこれを使おうってなった時に 初めて進化を発揮する
そうだな このスレが話が進まないのは言語を限定してないからだ 静的型付け言語っていうのが既存のものなのか 将来生まれる言語を指してるのかもわからない
336 :
デフォルトの名無しさん :2013/10/11(金) 22:48:27.74
>>300 みんなで小銭出し合って賞金用意しない?
それよくない?
BitCoinならいいよ
型宣言でも型注釈でもガードでも何でも良いけれども、オプショナルな型付けが追加された ばあい型付きと形無しどちらのスタイルで書くのがメインになるんだろうね。 JavaScriptに似た言語の事例だとActionScriptが2から3でオプショナルな片付けに以降した 例があるけれども、この場合最終的には型付きできっちり書く人が多かった気がする。 どっちかというとFlex使ったRIA向け関連を見てきたというのもあるけど。
それはエンジンによる エンジンの最適化に役立つならそういう場面で書くよ 型の安全性の為にはどうしようかなあ 今まで数値型と文字列型でハマるのは大きなプロジェクトで1回はあって最大限に厄介な部類だけど 普段から付ける手間よりはバグ対処のほうがいいかも
型注釈入ろうが変わらないだろうな 元からプリミティブよりObjectのチェックコードのが多いだろうし
asm.jsの威力見るとどうだろうか。
これから先、当分はtypescriptが主流になると思う jsの代替っていくつかあるけど、一番筋がいいと思う
AS2->AS3の事例で言えば単純にFlexその他のAS3向けのライブラリがかっちり型付きで提供されて いたのと、メソッドのシグネチャを中心に型が決まっている場所では型注釈付けた方がその後も FlexBuilder上で補完がビシバシ効いて自分が楽が出来るので型注釈付けた方が結果的に楽だった という事情がある。型書くこと自体は補完も効いて全然手間じゃない。 型無しでやりたい場面は型無しでやれば良いし。
action scriptは、デザイナーが書くか、プログラマーが書くかで違ってたろう プログラマーなら当然型を指定した方が書きやすい
AS3はコンパイル言語だけどJavaScriptは違う そこはやっぱり大きいよ
何が大きいのかは答えられんけどね。 とにかく大っきんだ
コンパイル言語は一々実行させて上手く動いてるか確認するような非効率なことはしない なるべく多く実行時以前に問題になりそうな箇所を潰そうとするけど JSは取り敢えず動かしてみて必要なら実行させながら値を確認するデバッグでやってきたし 自分もその一人だけどそれで十分だと思ってる人も多いんじゃないかな 手間暇の問題での話ね
つまりJSerの性質が大きいってことだな うーむ、、、 でもなあ、初心者本やサイトに載るかなあ オプションである限り大抵は応用、発展として先送りされると思うんだよね やっぱり難しく見えるのもあるし そうすると積極的に使うようにはならないんじゃないかな
>>344 補完が効きやすいのはわかるけど、他に書きやすさってあるの?
補完よりも、影響範囲の把握の方が重要だけどな。
影響範囲か……イメージ不可能
影響範囲って何? 実装者は使用者が実装の内部は全く気にせずにいいような実装をして それを使用者が使って実装をするの繰り返しで物ができるものじゃ?
>>352 コードを修正した時、
その修正の影響が及ぼす範囲を
知ることが出来るかどうか。
クラスを変更するとき そのインスタンスがどこで使われてるか分かるってこと?
それもわかるし、 メソッドを変えてもわかる。 たまたま同じ名前なのか? などと調べる必要もない。 これらはコードが大きくなればなるほど 開発時間に直結してくる。
そういうことを徹底していくとダックタイピングとかいう芸当とは合わないよね?
多くの場合、ダックタイピングは ダックタイピングする必要があるからしているのではなく、 ダックタイピングになってしまうというだけ 実際にはダックタイピングの必要性はかなり低い。
でもJSの標準メソッドとかの多くはクラスを確認しないから ダックタイピングによく利用されてそれが問題解決を優しくしてることもあるよ 例えばDOMなんかの配列もどきに配列のメソッドを適用したい時とか
JSにそもそもクラスの概念は無い オブジェクトが何を継承するか決めるのはプロトタイプオブジェクト
確かに…… 根本的にモデルが違う、というかクラスなんて無いし要らないのか
動いている途中でtypoとか想定いない値が入ってエラーになって止まる場合、 ファイルやデータが削除したり、書き換わったりで元の状態に戻せないから 仕方なくダックタイピングってのも珍しくないからな。 コンパイラだとそういう 凡ミスを早い段階で潰してくれるからねぇ。凡ミスなんてしょっちゅうするでしょ?
話のつながりが分からんw しっかり書いてくれw
そういうこと言ってると、例の勘違いJSマンセーくんが JSでもクラスプログラミングできるもん とかいいだすぞ…
>>361 はダックタイピングがまるでわかってないな
そもそも動的言語は実行時のコンテキストとコーディングの手軽さ重視だから 真面目に制御しようとしたら煩わしくなるのは当たり前だわな
コンパイラ言語ではダックタイピングできないとか思い込んでるアホがいる?
☓ ダックタイピングできるから便利 ○ いいかげんArray.prototype.slice.callの代わりぐらい用意しろボケ
>>366 文句なく出来るのはOCamlくらい?
Scalaは実行速度にデメリットあるらしいし、C++は記述がメンドイ
OCamlのは構造部分型。ダックタイピングとは全く別物。
構造的部分型と別物と言えるほど、厳密な定義がダックタイピングにあるの?
構造部分型は静的型付けなのだから ダックタイピングとは完全に別物
JavaScriptのダックタイピングなどと一緒にされてはOCamlが不憫だ。
>>366 はぱっと見smalltalkの話だと思うが、
なんでOCamlだと思ったんだろうな
あの強力な型を持つOCamlで特定オブジェクトのメソッド入れ替えとかできるのか?
>>373 >あの強力な型を持つOCamlで特定オブジェクトのメソッド入れ替えとかできるのか?
特定オブジェクトのメソッド入れ替えがダックタイピングに必要なの?
>>371 ダックタイピングは動的型付けじゃなきゃダメなの?何で?
構造的部分型はダックタイピングで出来る事は 全て出来るが、その上で静的型チェックも やってくれる優れものなので、 定義上区別される
>>374 ダックタイピングはクラス(型)じゃなくてインスタンスにかかるからダメだろう
逆に言えばインスタンス別への動的変更ができない処理系じゃ
型の構造見てるのとかわらないから構造的部分型と同じだろうね
静的型付けでもダックタイピングは可能。 だけど、ダックタイピングを使った場所は 静的型付けのメリットが少なくなる。 で、そもそもの話をすると ダックタイピングが本当に必要な場所ってのは少ない。 だから、本当に必要な場所のみに使うというのが正しい使い方。 ほんの少しの場所のために、全体をダックタイピングにするなんて愚かでしかない。
いやいや静的型付だけで純粋なダックタイピングは無理だろうよ 言語が静的型だろうと型の決まらないオブジェクトの扱いは動的型だから
純粋なダックタイピングってなんだ?
>>378 俺もそう思うわ
ダックタイピングなんてしないに越したことはない
仕方なくそうする
低能がわめいておるわ
ダッタイなんてDBとかXMLの構造をフレキシブルにしたままで扱えるっていう ただいってんだけだろ
クラスベースと合わないっていうのもあるんじゃない?
>>367 あるよ
あるけど配列っぽいのを配列に治すって時点でどうもね
ほぼ全ての仕組みがオブジェクトで成り立ってるし クラスもないし暗黙の型変換が多用されるJavaScriptで あえてダックタイピングを禁止して無理やりクラスベースっぽく こだわるのがいつも得策とはとても思えん
386 :
デフォルトの名無しさん :2013/10/12(土) 16:34:45.40
>>385 なるほどケースバイケースであると、しかし、B型のお前としては
ケースバイケースというどっちつかずの玉虫色の答えを出すのも
気に入らぬ、そういうことだな?
いや違う はっきり言いたいことを言わせてもらえば JavaScriptは自由な言語だと思ってる これまでもいろんな時代があったけど 色んな人が自由に使ってきた そして今、まあ当たり前の存在へと昇華するには デザインパターンやらそういうお決まりを決めなきゃいけないものなんだろうが それでもバッドパーツとか言ってJavaっぽく書かせたり もしくはJavaっぽさを捨てようとか、いやいや関数型をtwっていすべきとか 自分はとにかく好きに書いていいよっていう言語であって欲しい だから、原則これはこうみたいなのはやめて欲しい 言語機能を好きなだけフルに使って書かせて欲しい 大規模開発現場でルールを決めるのはいいけど きほんは個人用のスクリプト言語としてフリーであり続けて欲しい あとはやっぱりせっかくのプロトタイプベースとか忘れずに活かして欲しい
>>387 ああ、うん。
他の言語でも同じだから。
違う!っていうのなら、それはお前の思い込み。
>>388 の目にはJavaScriptの
「自由さ」
「本来のオブジェクトモデルのシンプルさ」
がJavaの
「ブルーカラー統制向き」
「根本的な面倒臭さ」
と区別つかないのだろう。
>>384 slice以外の方法あるの?
ES6とかMozillaのArray.fromとか言ったらぶっ飛ばすぞ
当然Array.fromだろ なんでES7のguardの話は織り込み済みでES6のArray.fromはダメなんだよw
393 :
デフォルトの名無しさん :2013/10/12(土) 17:03:15.84
>>392 今JSって言えばHTML5かnodeだろ
なんで普及もしてない限定環境の話してんだよ
>>390 JavaScriptの自由さwww
笑うところですか?
ほんとうの自由とは
マイナーな言語を使って
飯を食ってる人のことですよ?
>>394 今
>>338 からの流れの話なのがわからない?
JSにそういうのが追加されたときの話をしてるんだから
当然Array.fromは使えるに決まってるじゃん
アホなの?
とりあえずポエムは抜きで頼む。 キラキラした目で「JavaScriptは自由な言語っ・・・!」とか語られても他の人はひくだけだから。
言語の雰囲気は重要だと思うが
>>398 お前さんも
>>338 からの流れを読みなさい。
「ダックタイピングなんてしないに越したことはない」なんて話をしているところに
具体的な話もないそんなポエムを持ち出してもハァ? だ。
>>399 このコーディングスタイルが適切かじゃなくて
実際にそうするようになるだろうかの話なんだから
JSerの性質
>>348 は大事なポイントじゃないか?
馬鹿な屁理屈はもう聞き飽きた…
文化の分裂が起こるかもね。 型付きできっちり書く貴族とあくまで型無しにこだわるボヘミアン。 そしてそんな空中戦はよそに「ECMAScript7なんて絶対ムリwww Part22」なんてスレも 更新を重ね、大多数のユーザーにとっては単に言語機能やライブラリで用意された 便利なイディオムを反復するだけなので今とたいして変わらん。
どういう人が型付で書くようになると思う? 静的から来た人はそうしたがるかもしれないけど 自分自身は全てには付けないと思う 型宣言じゃなくてguardだってとこも多少あるけど 1つ検討がつきにくいのは入門者だなあ 言語仕様が肥大化した時どのように教えられて育つようになるんだろう
今まで見てきたものでいうと 「初めての○○」なのに浅く広く言語仕様を網羅したようなものばかりが出るようになる そして新規入門者が遠のいて言語が少子高齢化状態になる そしたらさらに入門者の気持ちがわかるピュアな人が減ってやがては廃れる
でかいもの。企業が提供するライブラリ。フレームワークの類。 この辺りからずんずん型付きが増える。 メタプログラミング的なことをするものを除いて再利用を目的に開発される物は 型付きが優位になる。 型情報なんて仕様書の一部なので結局どこかに書かないといけないし。
その廃れていった具体例が○○言語だ ↓あとよろしく
guardを型付きって呼んでいいのか… なんか違和感がある
C言語ですね、分かります
じゃあガード付きで良いよ。
彼女が私のボディーガードだ。
そもそもguardで
>>355 静的に解析できるもんなのかね?
myGuard = Type.make(guard1, guard2, ...)
var a :: myGuard
みたいなこともできる型宣言と比べ物にならないほど動的なものだし
クラスの件もそうだけどJSに無理やり当てはめようとしても 上手くいかないことなんて分かりきってるから 諦めてJSはJSとして気持ちを切り替えて使っていくしか無いだろうな
413 :
デフォルトの名無しさん :2013/10/12(土) 19:04:37.63
南米系は全員マリオだよね?
YES WE ARE.
実際のところガードってどの程度実現可能性があるの。 MSとかAppleとかGoogleはどの程度コミットメントしていてコンセンサスがとれてるの。
416 :
デフォルトの名無しさん :2013/10/12(土) 19:18:13.08
このスレはhoge禁止ですか?
現状積極的に議論されてないので何とも言えないが、 他の仕様と矛盾しないし後方互換性も取れるし やっぱり何らかの型の仕組みを入れたいだろうから わざわざ否定する人は少ないと思われる もっといいのが出るか問題がなければ順当に入るんじゃないかな まあValueObjectよりは下、Parallelsとどっこいくらいのイメージ
全く新しい試みだから多分長い時間がかかると思うよ class構文って10年も話し合われてきてprivateの辺りとかようやく最近まとまってきたでしょ
419 :
デフォルトの名無しさん :2013/10/12(土) 19:44:29.39
ガードって何?
パターンマッチをショボくしたやつ
421 :
デフォルトの名無しさん :2013/10/12(土) 19:57:47.75
それが何で騒がれてるの? switch文とどう違うの?
騒がれてない
423 :
デフォルトの名無しさん :2013/10/12(土) 20:03:30.92
ガードで飛躍する人類の未来とか語ってなかったっけ?
チョットおかしい人の声が大きいのは よくある事
普及は少なくとも2010年代後半ひょっとすると2020年代初頭と言ったところか > ガード。 未来技術だなぁ。
2週くらい周回遅れしてるJSに相応しい機能
なんでそんな酷いこと言われないといけないのか分からん
とりあえずF# to javascriptのツールが使い物になりそうなのでな どうでも良い
意欲的な言語機能云々よりまずテンプレート文字列をちゃんと各社横並びで使えるようにして欲しい。 ちょい書きスクリプト言語として使うのにこれが使えないのは普通に不便。
javascriptって人間にも解読可能な中間言語でしょ。 C++やJavaなどから変換出力してライブラリはブラウザ互換の物を使う。
>>428 FunScriptのことならたぶん使ってるうちにガッカリする
簡単にFFI書けるFay-langのがまだマシ
jsのゆるゆる仕様に静的関数型が合わせるのは無理だと悟った
再来年以降の間違いでしょ。 ES6なんて待っていない。必要な機能を実装したブラウザが広く行き渡るのを待っている。
いつまでも夢見てろよ そのまま起きるなw
pcはともかく、Androidやiosは古いバージョンが相当先まで生き残るだろうな
Android4以降なら大抵Chromeも一緒に載ってる
スマホはバージョンアップもあるし端末の寿命長くないと思う 当面の問題はVistaのIE9だと思う IE12だか13だかES6をサポートしてくれるIEがwin7をサポートしてくれるとすれば Vistaが息絶えた時がES6の始まり
ES5が気兼ねなく使えるのはXPが死ぬそろそろだろう? だったらES6が使えるのは時期的にES7の勧告があるくらいだろうな
>>438 サーバー側ならもっと速く使えるよ。
ブラウザが問題であって
ブラウザを使わない環境であれば、
他の言語と同じだからね。
んなことは分かってるが認めないとイチャモンつける奴がいるから仕方ないだろ
老人の面倒を見ないといけないのも若者の務め
442 :
デフォルトの名無しさん :2013/10/13(日) 00:11:07.53
なぜJavascriptが嫌われているのかやっとわかった。 もし俺がLinuxについて今まで触れていたならLinuxが嫌われていただろう。 触れなくてよかった。 今初めてスレタイを見て分かった。
Linuxwwwとか意味わからんがwww このスレで特定言語、特にLL推せば荒れるに決まってんぞw
>>431 いやWebSharperの方。FunScriptも試したが既存のソース読み込ませたらイミフなコンパイルエラー出てダメだった。
WebSharperはエラー出ても理由とかがわかりやすいし既存のソースもほぼ改変なくいけた。
445 :
デフォルトの名無しさん :2013/10/13(日) 00:38:48.76
北京オリンピックやったばかりなのに次は東京オリンピックやるんだってね。 最近勢いあるね中国。
446 :
デフォルトの名無しさん :2013/10/13(日) 00:39:59.20
447 :
デフォルトの名無しさん :2013/10/13(日) 03:33:36.21
>>439 >サーバー側ならもっと速く使えるよ。
もうES6使えてるの?
いくらかね ほんとに日進月歩で今日はメソッドが1つ増えたー とかの積み重ねだからねES6は 一気に変わるのはIEくらいのものでしょう
449 :
デフォルトの名無しさん :2013/10/13(日) 04:21:41.37
>>449 を見なくてもいいように説明
ジュースの自動販売機で当たりを出す方法【裏技?】
結局外れで、ブラックのコーヒーがでてきて
そんなに甘くないと言いたかっただけ。
キチガイ増えたな・・
Ubuntuの新しいバージョンが発表になった
pcの場合、ブラウザを変えるのも比較的容易だがスマートフォンの場合はそうは行かない iphone4以前は当分使われ続けるだろう
逆だと思う スマホは5年も10年も使われないが IEは使われる
455 :
デフォルトの名無しさん :2013/10/13(日) 16:26:03.35
それはないな。 WindowsはLinuxに駆逐されるから。
そうかもしれないがそれはVista終了には間に合わないな 一応最低ラインではあと5年くらいIE9を見なければならないのは確かだろう まあ実際はHTML5との兼ね合いでそこまで長くはないだろうが 3年後とするとAndroidではChromeが載ってると思って良くなる iPhoneもOS更新率が高いからAndroidと比べてそこまで状況は酷くはないだろう
457 :
デフォルトの名無しさん :2013/10/13(日) 17:17:47.55
ところで既定の検索プロバイダをとうとうBingに変更した。 さようならGoogle。 あなたの作ろうとする未来には乗れません。
MSが作ろうとしている未来には乗るわけかw
459 :
デフォルトの名無しさん :2013/10/13(日) 17:49:04.83
460 :
デフォルトの名無しさん :2013/10/13(日) 18:13:34.77
メリンダさんとゲイツ氏が人々のためにYoutubeを買い取ってくれればなあ。
462 :
デフォルトの名無しさん :2013/10/13(日) 20:26:50.64
マイクロソフトは人々のために良いものを無償提供すると言えないでしょ。 Googleは対価を求めず人々によいものを提供する。 本来高価なサービスを無償で提供する。 この取り組みにあなたも貢献できる。 貢献すれば人々からあなた自身の価値を認められる。 何かいいことあるかもよ? 使うだけでも貢献しています。 こういう幻想を抱かせることができないと、CGMはうまくいかない。 つまり、基本的に嘘がつけない人には無理。
463 :
デフォルトの名無しさん :2013/10/13(日) 20:31:46.83
あなたの貢献は確かに小さなものかもしれない。 サービスを消費しているにすぎないのだから。 しかし、その小さな貢献がいくつも集まることで、世界をより豊かにするのです。 こういった、あなたがサービスを利用することで社会正義のために役立つ的な 正しいことをしていると納得できる説明も必要なんじゃないかな。 宣伝マンってある種の宗教性があるでしょ。 それで信者と呼ばれたりする。
464 :
デフォルトの名無しさん :2013/10/13(日) 20:37:02.99
マイクロソフトは営利企業にすぎないので、Googleのような社会正義実現を 目指す団体にCGMで勝つことはできない。 これは漠然とした理論のようだけど、たいていのことは計算通りにしか ならないので、必ずそうなると思う。 良いことをしてると納得させることができないといけない。 サービスが成功して、化けの皮がはがれてきたとしても、悪いことに加担していない と思わせないと。 その時には、利用者も被害者の一員だと思わせることで、CGMを継続できる。
Googleってニコニコにすら勝ててないじゃん
国家を真面目に作ろうとしてるくらいだから単なる営利企業ではないな 自愛団体かもしれんw
JSに変換できる言語処理系で、一番出来の良いヤツを教えてください なお、TypeScriptは試してみたのですがJS臭が強過ぎてダメでした
CoffeeScriptやHaxe
>>469 仕様変更に耐えられるならLiveScriptお勧め
TSが嫌なら素直にes6ifyでも使っとけ
えー?なんでそんなウンコ使わなきゃならんの?
PCはXP世代のマシンでもChromeやFirefoxを使えるけど、スマートフォンは取り残されるからな GoogleがWebkitから分裂してスマートフォンのブラウザの断片化が進む
皆がChrome使ってくれるんなら苦労はしないんだけど
Perl, Ruby, PythonあたりがJSにコンパイル出来れば JSにまつわる不毛な論争の7割が減る気がする
es6ify以外はまあ良いな。 この文脈で何故なおもJS推すのかよく解らん。
標準であるということはそれだけで価値高いからな
標準にこだわって生産性の低い環境を使い続ける連中がいるおかげで 生産性の高い環境を選ぶだけで競争優位に立てる
お、おう
汎用性にこだわらない奴はプログラマ向いてないな
”こだわる”の言葉の意味を知らないとそうなる。
まあ殆どの奴が「食わず嫌い」なのは間違いなさそうだな
いろいろ触った上でJavaScriptは糞。 標準が高機能である事は重要。
言語自体に大した違いなんて無い。
WebAPIが徹底的に機能を提供する作りになってるから、 言語にいくら大層な機能があっても役に立たない
意味不明 WebAPI主体ならなおさら標準でURIコンポーネントぐらい用意しとけよ
>>487 >言語自体に大した違いなんて無い。
こういう事書く奴に限って、クソ言語しか使った事無いんだよな
お前は判断出来るだけの経験が無いだろっつの
違いがない? なら全部Cで書けよ。
ここって動的言語スレ?
LLerが過疎スレと頭の硬い言語使いたちに話題を与えてやっているところです
>>489 あるだろ節穴
>>490 ,491
Webで使う上でどうそんなに違うのか説明よろ
こちとら悪魔の証明は出来ないんでね
反証待ってまーすww
パッケージングがない言語は総じてクソ
Lispの後継JavaScriptが素晴らしくないわけない 当初はそう思っていました
>>495 ほおー。ならjs言語の標準のURLクラスの仕様をぜひ示してくださいな。
JSにクラスはないしURLコンポーネントが備わってる必要もない 必要がるのなら外部APIとして提供してもらえばいい それがスクリプト言語って言うもの
またいつもの糞JSerか
ES6でclass構文できるんだけど? そんな詭弁で大丈夫か?
糞JSerですがなにか? 俺が糞だとしてもJSは神聖なものです
>>501 前スレだか前々スレだかで嫌というほど説明合っただろう
あれはただの糖衣構文でクラスなんかないのは変わらないと
488 :デフォルトの名無しさん:2013/10/15(火) 18:43:09.62
WebAPIが徹底的に機能を提供する作りになってるから、
言語にいくら大層な機能があっても役に立たない
489 :デフォルトの名無しさん:2013/10/15(火) 19:36:09.80
意味不明
WebAPI主体ならなおさら標準でURIコンポーネントぐらい用意しとけよ
495 :デフォルトの名無しさん:2013/10/15(火) 20:38:11.16
>>489 あるだろ節穴
早くソース出せよ
まあ例によってまだFirefoxしかそれなりに対応してないんだけどね URLコンストラクタ自体は他のAPIの為に既に広く使えるけど、ちょっとアレ
1. WebAPIじゃない 2. 言語標準じゃなくてWeb標準、しかもDOM 3. firefox、chrome、operaで試したけど使える環境一つもない なめてんの?
JSerは自分で使った経験から語ってるんじゃなくて、 てきとーにググって返答してる感じだね
>>508 言語標準???
Web標準にあるって話でしょう?
JavaScriptはWebだけのためのものじゃないんだからさ
あとこういうのをWebAPIっていうのよ、URLAPIね
それからFirefoxではそれなりに使えるよ
>>510 試したことがあるから覚えててURL貼ったんだよ
まあ、今はまだ使えそうにないから将来に期待だなーって感じで
でもこういうAPIを沢山追うのが楽しいんだと思うよ
>>511 DOM APIだろ虚言癖
Web APIはHTTPのサービスのAPIの事だろうが
>>512 firefoxのnightlyだとあるのか?
少なくとも安定版はFile APIのURLしか見つからないんだが
>>514 nightlyしか入れてないから分からないけど
スタティックメソッドはないよ
URLのインスタンスメソッド(?)がいくつかある
>>515 WebAPIってサーバーサイドだけの単語じゃなくなったんだな
虚言癖なんて言って申し訳ない、単純にこちらが浅学なだけだった
ありゃ というかChromeでもURLコンストラクタ機能してるわ ついこの前試したときは見せかけだと思ってたんだけどどうなんだろう
>>521 見つけた
https://code.google.com/p/chromium/issues/detail?id=303152 5日前から少しずつ実装されてきてるっぽい
Chrome Canary 32.0.1671.3でこうなる
Object.keys(url); // =>
["hash", "search", "pathname", "port", "hostname", "host", "password", "username", "protocol", "origin", "href"]
chromium-dev v32試してみたら
new URL("
http://www.google.com ");
// => URL {hash: "", search: "", pathname: "/", port: "", ...
ちょうど境目にあたる時期だったんだな
chromeにもfirefoxにも入ってるならさすがに標準と認めざるを得ないな
>>522 リンク先読んだ、ありがとう
specからnodeのURLの簡易版だと思ってたけど
なんだか想定してる使い方からして違うみたいだね
今更URIクラスを実装しているなんて何周遅れなんだJS。
今までは必要となる機会がなかったから
呆れるな……
今までJavaScriptなぞでずっと満足してた連中が作ってるわけで いろんな意味でトロくさかったり身の程知らずだったり井の中の蛙だったり要するにバカだったり 誤った判断を繰り返すのは仕方がないと思ってる。 なぜネイティブのようなアプリが作れないのだろう?糞言語と言われるのだろう?と疑問に思い 一つ一つゆっくり気づいていくのを待つしかあるまい。生暖かい目で見守ろう。 ハードルが軽く数十はあってそれぞれに1年くらいかかりそうだけどな。
何?喧嘩売ってんのお前
このスレに常駐しているJSerにとってJavaScriptは完全無欠の言語なの? 使っている言語の愚痴の一つも言わないユーザーってなんかキモい。
不満点は全て将来バージョンの仕様で解決される目処が付いたから 実装が早く進んでくれることを祈るくらいしかない と、言うか不満を抱く前に色んなAPI覚えることが多いってのもある 今を頑張りながら将来にも期待できる JSerは充実しています
今仕様にケチがあるのならここで言わずにメーリングリストに載せるだろJK
>>533 >不満点は全て将来バージョンの仕様で解決される目処が付いたから
具体的にどんな不満があったの。
普通に未来のES6ES7で予告されている機能のリストは裏返せば現在のJSerの不満の リストと解釈して問題ない。
あった方が便利ねっていうのと無いのが不満だわって言うのは分けて考えてる 全て前者には含まれるけど、後者に含まれるのは個人的にかなり少ない まあ、「新しい規格を作る上」でどうかっていう枠組みで見ると 多くがこれくらい無いと不満だわってなるだろうし、一般論では言えんね
あった方が便利と言うのは裏返せば無いと多かれ少なかれ不便なわけで、特に他の言語では あったりごく普通な言語機能が存在しなかったり異常だったりすると他の言語との掛け持ち 組にとっては不満となるでしょ。 特にサーバー側で別の言語を使っていてWebクライアント開発にJavaScriptを使っていると いう掛け持ち組は多いだろうから他の言語との比較で不満が出てくるのはごく自然。
サーバ側で使ってる言語にJSへのトランスレータがあれば解決だね
GWTなんかはそんなフレームワークだけどね。
Javaはアンチも多いから...
ウンコ言語からウンコ言語にコンパイルできても 意味ないでしょ
そうかRubyはウンコ言語だったのか
おまえらはウンコマニアの変態だってこった
>>543 ウンコが二つから一つになるのは馬鹿にできないぞ。
ここは天国板か
>>539 郷に入っては郷に従え
さっぱりその言語を使えこなせないのに文句をいうのは笑えるw
違う言語を使ってて違うのがおかしいとか言い初めた時にはもうね、苦笑
なるほど。使いこなすとはすなわち無批判になると言うことか。
>>533 でFAだろう
それ以上でも以下でもない
JSerにとって仕様は安泰だが実装が不安
今も昔もこれからも
あとはとにかくAPIを叩いていくことになるから
そのAPIに不満は細々持つが
ここに書いてもJSer以外分かっちゃくれないだろう
そういうスレで解決策話すに決まっている
いずれにしろ言語自体に不満はほぼない
>>550 >
>>533 でFAだろう
そうか。
>不満点は全て将来バージョンの仕様で解決される目処が付いたから
つまり現在バージョンには不満点があると言うことだよな。なら現在バージョンを
使っている人が不満を愚痴るのも別にかまわんだろう。
> ここに書いてもJSer以外分かっちゃくれないだろう
恥ずかしからずにその高尚な不満とやらを披露してみればよいのに。
数値計算関係は完全に腐ってる 新しい標準ライブラリや仕様もできる気配ないし
>>551 今抱えてる大きな不満は0
しいて挙げるとしたらこれか
>>536 今は気にしてないけど、しばしばこれはカバーが大変だからね
あとは正直ぱっと思いつかない
これに関してどう?って聞かれれば沢山細々あるだろうけどね
ES6を見るまでES6の機能が欲しいとは思わなかったのと
既にES6が使える気でいるのが大きい
例えばもしIE8でES3で書かなきゃいけなくなったら
ES3に不満抱かないでしょ?そこは間違いなくIE8に苛立ちが全部行くわけだ
だから今は毎日実装のアップデートをチェックして早くES6実装されないかなと悶々としてる
同じくAPIに付いてだってさ、
>>505 もそうだけど
「Living Standard」ってのが多いのよ
実装で普及してなんか明らかにこれは失敗だったねってわかった時には
当然その解決策が出てるのよ
だから仕様に文句言うって発想にはなりにくいのよね
>>552 何に困ってるのかよく分からんけど、
NumberやMathの関数はもの凄く増えたよ
配列のmapやらはちょっと気になるとこはあるな まずDOM系の配列もどきに使えないのが直感的じゃない あとは第二引数以降がオプショナルな標準関数にかけると誤爆するってことだな この2点、どうするのが一番スマートに解決できるかね
living standardとか格好つけて言ったところで実際に現場でコードを書いている人間は de factoを相手にしているわけで何も救いにもならんわな。 そのliving standardとやらはどれだけ広くプロダクションで使われているのさ。 机上の空論か単に趣味。 > ES6を見るまでES6の機能が欲しいとは思わなかったのと ほんと無批判なんだね。
>>553 増えたよってクッソ少なかった数学関数部分だけやろ
有理数や複素数その他なんて
仕様だけでもrubyやpythonの標準ライブラリ以下
scipyはもちろん、numpyレベルに到達するのすら 永劫の時間がかかるだろう
>>555 仕様を批判するかっていう話だろう?
実装を批判することならしょっちゅうだよ
仕様は常に前に進んでる限り批判できるところはない
>>556 ES7まで待ってね
559 :
デフォルトの名無しさん :2013/10/17(木) 08:31:40.51
仕様は自分たちで作っていくものだろうよ
>>558 > 仕様を批判するかっていう話だろう?
いや全然? いま現場でどれだけ使えますか、関心があるのはそれだけだけど。
> 実装を批判することならしょっちゅうだよ
それなら今現在使える実装で広く無難に使えるJavaScriptの機能には不満だとか
ウンコだと愚痴るのも大目に見て欲しいな。
> ES7まで待ってね
つまり遠い未来に期待しろと。
>>560 実装批判なら好きなだけどうぞ
実のない話しならJSアンチスレで、実のある解決したいことなら各JSスレでしてね
このスレでJSについて話してるのは 何もJSがいいぞという話ではなくて 動的言語の可能性を示すための一例だから ここでJSを愚痴ってもしかたない
>>562 既に他の言語ではとっくの昔に実現されてる機能がJSにも(仕様では)存在するって話から
どんな可能性を読み取れば良いの?
もうjsがクソ言語かどうかは別スレでやれよ(´・ω・`)
意味不 誰がいつJavaScriptのそういう仕様が良いと言ったのか 動的言語がいい理由はエンジンの可能性として前スレから散々出ただろう JavaScriptもV8凄いねって話で出ただけで 仕様の話は足りないという意見とその反論のみで この趣旨に則って議論されては無いだろう だから批判は別スレでやれって言ってる
jsは静的言語より柔軟で凄い → 実装足りてないよ → jsは実装じゃなくて仕様、仕様は安泰 → 仕様も足りてないよ → 仕様の批判は別スレでやれ なぜなのか
開発生産性という面であれば例えばGUI開発のようなある程度の規模のAPIを相手に する開発する場合、IDE上でいわゆるコンテントアシストやインテリセンスの類が 高打率で効いた方が非常に助かる。 そういう点では静的型や動的にしても仕様として型アノテーションを持っていて きっちり注釈をつける習慣のある言語でないとアシストするにも打率が低すぎる。 IDEやエディタとかでも時々jQuery対応とか謳うものがあるけれども、そもそも論 としてどうしてフレームワーク決め打ちで対応をアピールする必要があるのか。 言語仕様的にフレームワーク決め打ちで実装しないと十分なアシストを提供する のが難しい部分があるって事じゃないのかな。 今時のJavaScriptフレームワークにテンプレートエンジンを組み合わせた開発に しても、何年も前のAS3+MXMLに全然追いついていないと思う点も多い。
型アノテーション無しでもバシバシ補完が決まる Pythonのjediは凄い
それは単純だけど依存するモジュールをPythonのコード内で普通にimportで明示 しているのも大きいと思う。 典型的なJavaScriptを使ったWeb向けの開発の場合、どういうコンテキストの中で 今相手にしているコードがロードされるのか解らんと依存範囲が特定できないし アシストするにも限度がある。 require.jsを使ったところでrequire.js決め打ちでエディタが対応しないとダメ だろうなぁ。
JSがウンコだから悪いってことか…
このスレJSのアンチvs信者スレなのに埋まるの早すぎ
アンチ対信者というよりもリアルユーザー対未来の仕様を語る趣味の人でしょ。 今現在不便なことを愚痴ると未来の仕様が語られ今現在普及している実装では使えないと 話すと実装の話はスレチとかわされる。
ES99くらいになれば、型を書かなくても Pythonくらい補完が効くようになるの?
>>571 依存性を宣言的に列挙する文法も無ければ依存性の解決方法も仕様化されていない、そういう意味では
今のJavaScriptがウンコなのが悪いということだろう。
今どき生のJavaScript使ってるからだろ。 Haxeその他有るじゃん。
C++,C#,Java,Python,Ruby,PHP,Perl,その他マイナー言語を初級くらいで扱えるけど 自分はJavaScriptが一番好きだよ
>>576 そんなマイナー言語、仕事で使えないじゃん
>>578 そうそう、その通り!
だから貴方は、今迄の言語を使っていて下さい。
JavaScriptにコンパイルする言語が山ほど出てくるあたりが今現在のJavaScriptに不満を抱く人が 多いって傍証。 NoSQLじゃなくてNoJavaScriptと言ったところだな。
だからもうjavascriptの言語がくそかどうとかはどうでもいいよ。 動的の代表格として出すのはいいけど、それ以外の糞仕様について語るのはスレチだ。
クソなJavascriptが動的言語の代表格ヅラしてるのが 滑稽だと言っているんだよ
>>580 > JavaScriptにコンパイルする言語が山ほど出てくるあたりが今現在のJavaScriptに不満を抱く人が
> 多いって傍証。
まったく論理的じゃない。
言語というのは山ほど出きるもの。C、C++、Perl、Ruby、PHP、Java
それらは、アセンブラに不満をいだいたから出来たわけじゃない。
>>583 それでは他にどんな理由があると? 説得力のある別の理由付けをよろしく。
CSやTSは次期ESと協調して策定されてるよ 別の派閥ってわけじゃ全くない どれもより良い機能を追求するJS.nextファミリー
>>584 プログラミング言語を作る理由?
既存の言語よりも優れているものを作りたいからじゃねーの?
特定の何かがダメだからではなく、他の言語全てよりも優れたもの、
需要にあったものを作りたいだけだよ。
JavaScriptがだめでCoffeeScriptを作ったというところまではいいが、
CoffeeScriptがあるのに、TypeScriptを作ったということは、
CoffeeScriptもだめということになる。○○もだめで□□を作り、
□□もだめだから△△を作り、それもだめだから☆☆を作った。と思う?
違うね。言語が作られるのは、他の言語よりも優れたものを目指して作ってるだけ。
JavaScriptにコンパイルするのはブラウザで動くのがJavaScriptだけだからってだけ。
JavaScriptだけ不満があるから他の言語を作ったのではなく、
その他の言語全てに不満があるから作ってる。
言語に不満があると言っても、それは主観の話、 個人の考え方の違いであり、その証拠に JavaScriptは多くの人に使われている。
考え方の違いの数だけ言語が出来るだけの話。
JavaScriptも求められる状況が変わってきてそれに合わせて
JavaScript自体も進化しようとしてるし、altJSも出てきている
全て現状をより良くしようとする試みで敵同士ではなく味方
未来を負っているものに対してやれ現実がどうたら後ろ向きな批判されるとそりゃ嫌だわな
しかもとっくに解決の目処が立ってたり、そもそも見当違いなことばかり
>>554 みたいな皆で解決策話し合える具体的で前向きな問題定義をしろよ
必死だねぇ。JSerとしてはひたすらJavaScriptは完全無欠の愛される言語と信じたいわけだ。 んなこと無いよ。 大多数の人は他の言語と同様に良い点悪い点併せ持った持った言語として使っているだけ。 今現在不便なところには普通に文句を言う。
どんな言語も夢見る未来のバージョンは大抵は完全無欠に見えるもの。 そりゃ今見えている不満を潰すところから取りかかるのだから当然。 そして出た頃には実際使ってみると新たな不満が出てくるのもお約束。
>>590 このスレは文句を言うスレではありません
不満があるのなら建設的な意見を出してください
そしてその不満の多くには既に解決策が示されていますから
このスレで出しても無駄です
各言語スレ、もしくはHTML5スレのような所で愚痴を必死にやってください
>>592 だからそもそもjsのことを話すスレじゃねえよ。お前が出てけwww
こやつ草生やさないとろくに弁解も出来ないほど追い込まれてるな あと一歩だな
何でも首突っ込んでJavaScript(ES)中心で話すのをやめればいいだけ なんで他言語の後追い仕様を元に優秀とか言っちゃうかね
>>596 Disる対象の言語仕様が劣っていないと余程都合がわるいようだな^^
型推論付きの静的型付け言語かオプショナルな静的型付きの動的型付け言語だな。
機能が多ければ良いってもんでもない シンプル・イズ・ザ・ベスト
(※ただしES6や7で導入される機能は除く)
型注釈なんて単に機械可読なように仕様化されたドキュメントの断片です。 意固地なJSerはそれがわからんか、単にドキュメントを書く習慣がないのです。
その話は散々TypeScriptの時にしてむしろ分かってなかったのは 非スクリプターのようだったがな
TypeScriptの話ってなんだっけ? 型推論がウンコってことしか覚えてない
計算モデルと言語仕様との区別すら出来てない手合ばっかりだな。
どの書き込み見てそう思っちゃったの?
606だろ。
で、結局動的型+型注釈はどうなの? 御利益はあるし、Enhanced JSの多くが取り入れているあたりからも需要もあると 思うのだけど。
むしろドキュメントとソースの整合性が取れなくなるから無駄でFAだっただろ
? 型に関してドキュメントとソースの整合性を静的に機械的にチェック出来る余地 があるのが型注釈の良いところだと思うけど。 型の付記の有無が実行時のセマンティクスに影響を与えるかは言語次第だし、 実行時に型チェックをせずに垂れ流すか型エラーを投げるかは一長一短がある。 それにそういう整合性をとるのは例えばライブラリやフレームワークの開発者が 頑張れば良いことで、彼らが一度頑張ればそのご利益はその成果物のユーザーに 広く行き渡るわけで。 型注釈やオプショナルな静的型を持つ言語では内部の実装は動的型も併用しつつ 柔軟に書いて、公開メソッドのようなAPIの顔の部分はきっちり型付きで書いたり するのがベストプラクティスだったりするよね。 成果物にきっちり解りやすいドキュメントを書くのと同じだよ。 機械にも読みやすい点が違うだけで。
型注釈ならjsdocでいいじゃん
会社では動的型(+オプショナルな型付き)言語のGroovyを使ってGrails上で開発しているけれど、 ・モデル: がっちり型付き(DBにマッピングするので結局型は明記する必要があるし) ・サービス: 公開メソッドは型付き ・その上のコントローラーやビュー: 動的型も併用 みたいな感じで回っている。大事なところは型付きで、柔軟性が必要なところやコンパクトに 書きたいところ(ビューのテンプレートの中のインラインコードとか)は動的型で。 実際使っていて静的動的両方使えるのは何かと都合が良い。 あとGroovyとJavaは混ぜることが出来るのでJavaでゴリゴリ書く部分もある。
Groovy使うとかTypeScript使う並に今はまだ時期尚早だろ
jsもasm.jsっぽい型指定使うようにすればいいじゃん 注釈ならdocでいいけど前者ならパファーマンス上がる効果も見込めるし
静的+型推論が一番 実行時速度も動的より早い
>>613 Groovyはそれなりに古いよ。
どんぐらい古いかというと産みの親が「開発当時Scalaについて知っていたらGroovyなんか
作らなかったのに」とつぶやいてそのままScalaに走った程度には古いw
時期的には同時期。
歴史的にはGrailsはZendやDjangoと同時期にスタートしていて、今もSpringベースの
フルスタックフレームワークとしては一番活発に更新され文書化されているものの一つなので、
特に時期尚早と言うこともない。
※根拠なし
asm.jsってネイティブより高速なケースも出てきたし このまま行くとemscripten+生JSが最強そうだな
GroovyにせよScalaにせよJavaにせよJVMファミリーでみな簡単に連携できる。 .netファミリーも同様で、要するに同じ実行環境で場面に応じた言語をシームレスに使い分け られるのは便利。
理屈ではそうだが現実は.netが糞なのでどうしようもない
Groovy時期尚早ってなんだろ。ちゃんと使われているよ。 Androidの次期ビルド環境はGradleだしね。
まともに使えるのは2、3年後ってとこじゃないかな?
>>624 .NETは元からJScriptがあったからな
まあまともに使えるまであと3・4年かかるES6とか待つよりも現実的な解ではあるよね・・・ > TypeScript
ES6は既に半分くらい使えるし9割対応までモダンエンジンならせいぜいあと1年何だが
IE11のES6対応なんてletとconstだけだし(すごいね!)IE12のスケジュールや更新内容なんて分からんし。
letに対応してるだけでかなり十分 あとはアロー関数だけあればいい
だから土管としてはもう十分だって
来年以降のES12とそれからまた先のES11の絶滅をお待ちください > アロー関数
なんだESって。IEだ。
letが使えるってことで、1つあると思うのは 何でもかんでも (function(){ }) で囲うのやめて ブロックとletにしないかなーってこと 極力varを使わないで全部letにする これができるのはそこそこ大きいと自分は思う
何でもかんでもfunctionで囲んでいる辺りでこの言語何かがおかしいと気づいて欲しい。
その言い方だと語弊があるな 導入と結論が結びついてないし バカな煽りにしかなってないよ
>>635 お前の指摘する内容が
お前の書き込み自身にモロに当てはまっててワロタw
KY黙っとけ
JSをクソだと指摘するだけで 発狂する輩がいるのが不思議。事実じゃん
>>621 それはJVMに比べてクソだ言うてんの?
633のは弁護出来ないよなぁ。 再来年以降はlet使えるようになって改善するらしいけど。
しかしながらletはコストが高いんだよなあ 特にfor文では一目瞭然
来年にはIE11の強制アップデートがあるんじゃないかな
groovyって日本だとあまり馴染みないけど、海外だと結構名前聞くよな
Javascriptについて質問です。 どうして以下のような結果になるのですか? 全然意味が分かりません。。。 ['1','2','3'].map(parseInt) //[1, NaN, NaN]
JSウンコ伝説に新たな1ページなの?
駄々こねてるな。
ぐうの音も出ない
JSerの解説マダ〜?
>>644 function vi(value, index) {return index + ':' + value }
['a','b','c'].map(vi)
=> [ '0:a', '1:b', '2:c' ]
これと同等だから
function p(value, index) {return parseInt(value, index) }
['1','2','3'].map(p)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/parseInt var intValue = parseInt(string[, radix]);
引数
string
パースしたい値を表す文字列
radix
string (第一引数)の基数を表す整数
Haskellで言うところのmapAccumLなのか 普通のmapは無いの?
自分で作ればいいんじゃね? っていうかコアになんでも詰め込もうとするなよ。 コアは最小限で後はライブラリで補う方がいい。 コアだけなら ['1','2','3'].map(v=>parseInt(v)) ってかけるようになるだろ? 今すぐには全てのブラウザで使えない? うん、だから、自分で作れってことさ。
JSって引数の数が合わなくても 例外すら出ないんだ
この場合引数の数あってるだろ。 なんでこう馬鹿は馬鹿なこと言い出すんだろうか。
え?valueとindexを引数にとる関数がmapの引数になるんじゃないの?
頭悪すぎw valueとindexって変数名だぞ? それを言うなら、引数を二つ取る関数がmapの 引数になるという言い方をするべき。
つまり引数を一つしか取らない関数を mapに渡したらエラーになって欲しいって 言ってるのか?
ううん。引数の数が合わなくてもエラーにならないよね?って言ってるだけだよ
関係ない話はいいから、 mapとpasrseIntの話の続きをしようぜ。 で、結局、なんの問題もないってことか。
いや、問題無いどころか、ナカナカ良いよ 引数の数が合わなくてもエラーにならない仕様を活かして mapとmapAccumを一つの関数で実現してる まあ、静的型ならオーバーロードで簡単に実現できるだろうけど
JavaScriptは知ってるけどHaskellは知らないから
当然mapAccumLも知らないけど、
>>650 の説明はmapAccumLとは違うだろ?
662 :
デフォルトの名無しさん :2013/10/19(土) 15:11:04.80
>>654 mapのcallbackって引数3つじゃね?
>>656 いちいち言い換えないと理解できないやつの方が頭悪いと思うけどw
バクりやすそうな仕様だな
665 :
デフォルトの名無しさん :2013/10/19(土) 16:55:13.49
>>664 そだな。バグりにくく生産性が高いJavaが
いまのところ最強という結論にどうしても行き着いてしまうな。
問題はあるよ
>>554 でも書いたけど、やっぱり気になる
でもmapが悪いわけでもparseIntが悪いわけでもない
「考えてみれば当然」の動作だし、知っていればいくらでも防げるんだよね
でも気づきにくい初心者落としの穴が増えたってのはやっぱり嬉しくない
何とかしてそこを改善したいんだけど、
map系での自動引数制限みたいなのは互換性が崩れるからもう無理かな
でもこれはいい経験になって、任意数の引数とる関数とかは
mapのためにも第一引数に配列って形にしようって声が出るようになった
まあ難しいね
素直にインデックス付きが欲しい場合はmapWithIndexとかeachWithIndexじゃダメなの。 あるいはa.zipWithIndex().map(f)とか。
C言語ですら、ANSI Cになるときに引数の数の整合性をチェックするようになったのに 今の時代にチェックしないJSはマジでクソだな しかも、今後もチェックするようになる可能性も無い
typescript使えってことだろ javascriptはプログラマーだけじゃなくデザイナーウェブマスターも使うんで厳密なプログラミングは好まれないんだろう
第一引数に配列とか、その場その場で次元というかインデント性というかズラすのはやめてほしい…。構造崩してなんの為のプログラム言語なんだか。ダメ絶対。
>>667 それなら引数1つのmapを定義すれば済みそうじゃない?
Array.prototype.map2 = function (func, thisArg) {
return this.map(function (val) {return func.call(thisArg, val)})
}
a = ["10px","20px","30px"]
a.map2(parseInt) //[10, 20, 30]
まあ本来parseIntはこういうのに使うべきで無闇矢鱈に使われすぎっていうのもあるんだけどね
>>668 そんな冗長になるもの要らないでしょ
必要なら関数側でチェックすればいいじゃん?
デフォルト引数とかもあるし、柔軟に柔軟にがいいと思うよ
>>670 既存の関数のオーバーライドとしてだから別に自然だよ
型の弱い言語は総じてゴミだな
>>669 TypeScriptってこんなコードですらエラーにならないけど
function f(g) { return g(1,2) }
f(function(x){ return x })
1引数のparseDecimalを新設すれば良いんじゃ無い? 既に1引数のparseFloatをparseNumに改名するのでも良い。 初心者向けにはparseIntの解説に2進数8進数16進数など色々な基数でパースする 無駄に豊富なサンプルをここだけ妙に専門用語満載な解説と一緒にてんこ盛りに すれば概ね無問題。不思議と自然に使わなくなるはず。
function asUnaryFunction(x){ return function(n){ return x(n); } } ["0","1","2"].map( asUnaryFunction(parseInt) );
引数が二つ以上あるって事は、本来役割の違う処理が混ざってるって事なんだよね どこまでも分けていったら人間がついていけなくなるからしないけど
引数バインドがあればもっと上手く解決できるんじゃないかな こんな感じで第二引数だけを固定してやれれば Function.prototype.bindArg = function (binds) { var func = this return function () { var args = [].map.call(arguments, function (arg, i) { return i in binds ? binds[i] : arg }) return func.apply(this, args) } } ["10px", "20px", "30px"].map(parseInt.bindArg([,10]))
じゃあカリー化で
>>674 こういう感じか
parseDecimal = parseInt.bindArg([,10])
["10px", "20px", "30px"].map(parseDecimal) //[10, 20, 30]
長年ゴミ言語に付き合ってるだけあって 耐性ついてるな
>>679 うん。でもそこはあくまでとっかかり。
一番大切なのはJavaScriptエディタ上でparseIntにマウスカーソルを乗せると
技術解説やらトリッキーな使用例や過去の仕様書へのリンクも含めた10ページ
ぐらいの長大なツールチップヘルプがポップアップして画面を埋め尽くすこと。
この手の面倒なのに遭遇するとscalaで書きたくなる
ES6流の解決方法だと forMapArityLimitシンボルをparseIntにつけてmapで判断だろうが mapがES5のもので、この問題が数年置いて置かれたってのが仕様からの解決を難しくしてる
LiveScriptで十分やった [ "10px" "20px" "30px" ].map( parseInt _, 10)
>>681 うーん、まあそこまでするかはさておき
MDNのmapの項目見たら一応乗ってたね
まずは初心者はMDNを参考にするよう徹底したいとこ
JavaScriptって柔軟だね。 いろんなことが出来る。
仮にもLispの後継を名乗るのならトリッキーであるべき
とりあえず各言語のこれからの課題はマルチコアをいかに活かせるかじゃね
このスレみてたら、やっぱJavascriptはゴミだって確信できた やっぱりRubyを使い続けてて良かった
公式HobbyのRubyに言われてもな……
JavaとかJavascriptってHobby以下だよな... まあJavaはドカタ向けに、Javascriptは非プログラマ向けに あえてダメに作られたんだけど
流石Hobbyプログラマの言うことは一味違うな
その公式HobbyとHobby以下の合わせ技のような立ち位置が切なくなるのでその辺りで勘弁して下さい --- Groovyからのお願い ---
javascriptはチューリング完全であればなんでもいいよ 他言語から変換すればいいから
そんなアホなことをしなくてもJavaScriptを使いこなせればいいだけのこと
使いこなせても使いたくない
損な性格してんのね かわいそ〜
まぁマゾの方が楽しめる場面もあるかもな。 羨ましくはないが。
JavaScriptとか楽しすぎるんだが
ブラウザでいろいろできるっていうのがいい
ブラウザでいろいろできるっていうのが、JSの唯一の利点だからね ただ、他言語からJSに変換できるようになって 唯一のアドバンテージも無くなっちゃった
他言語からJSに変換ってはやってないね。
そんなもん昔からできるし JSが廃れそうな兆候とか皆無だけどな まあ、理想を語るのは自由か
ブラウザで動かすって結局はDOM操作だからね。 他の言語が変換できるといっても DOMのAPIは変わんないし。
むしろJSがブラウザ以外で動かないという デメリットがなくなった気がする。
node.jsが出来損ないじゃなければ...
DOM扱うだけならそれこそJSで十分だけどな
それは言えてる
>>705 あぁ、使われてないという意味だよw
存在するかどうかじゃない。
使われてないか、どうやって調べたの?
やっぱりJSってのは大企業数社が 協力して開発しているっていうのが大きいよ。
Node.jsはソケット周りの問題をこの度のsocket3で片付けたし あとはまあ、Webサーバー専用機としてみた時は改善点あるけど バランス的には出来損ないじゃないと思うけどな JSとしての課題はそういうのじゃなくてむしろ、 色んな環境でのAPIを揃えていくことにあると思う ここがちゃんとしないとこの先JSerが困ることになるし もちろんaltJSの言語にも影響する
>>711 幾つものランキングを見たら判断できる。
使われてるって判断したのは どうやって調べているかというと 調べてないw
そういう煽りはもういいよ 前に進める皆のためになる話題をしよう 今も昔も各言語はいろんな言語を参考に進化してきたろ プログラマも勿論協力しあうべき
Dartは生成されるJSコードがマジうんこだから 一目見て使われてるか分かるな 他はコードみてもわからないかも
よっぽど簡単なコードでない限り、 どの言語も汚いJSコード吐き出すってーのw
>>718 吐き出したコードが、読めないという意味です。
まあ最適化とことんしていくつもりみたいだからね TSやCSに比べたらそうだろうが、 そもそも自分で書いてない変換されたコードは読みにくいし あんまり読むもんじゃないと思うね
まあ人間が書いたコードには敵わないと思いたいな パフォーマンスと精密さ以外では
どう書こうがJSのコードは可読性悪いからな
最近のJSターゲットのトランスレータ系は、結構読めるソース吐くぞ。 つーか、ヘッポコPGが書いたコードより素直で読みやすかったり。
そりゃあそうだろうな
altJSってJavaScriptで書くと 冗長になるコードを簡単にかけるのが売りなんで、 変換すると冗長になるのは当たり前なんだが? やっぱり使ったことないんだろうな。
それはCoffeeScriptの売りだがaltJS全体の売りではない
JavaScriptってES6まで配列とかの継承出来なかったけど ES3だかに変換するaltJSではその問題ずっと引きずらないのかな
>>727 冗長だけど読めるコードに変換するんじゃん?
>>730 変換する時に無駄な機能をゴテゴテ付けてくれるから読みにくい。
最初からJSで必要最小限のコードを書いたほうが読みやすい。
>731 例えば?
それ以前に自分で読むなら自分で書いたままのコードが一番読みやすいに決まってる
>>729 ES6が殆どのブラウザで動くようになったら
ES6に変換するようになると思うよ
それこそ何年かかるんだか つうかES6で書けるならそっちで書くのでよくね
今ES5で一番不満なのはProxyだなあ これが使えなくて本当に参ってる V8でさっさと使えるようになって欲しいんだけど V8のProxyは旧Proxyで使いものにならない 1日もはやくDirectProxy実装して欲しい でないとやりたいことがいつまでたってもできないわ
>>735 ちゃんとした静的型で書きたい、とか?
TypeScriptはなんちゃってだし
いや、もちろん多言語を使いたいってのは分かるけど JSの使いやすさ自体がES6で結構上がるので同仕様もなくaltを使う必要はなくなると思う
JSは型をチェックするのではなく揃えるようにしたらいいと思う あとなるべくエラーを出さないってのも良いと思う 例えば数値以外は弾く if (typeof x !== 'number' || isNaN(x)) throw 'err'; のではなくて本当にできる限り初期化するのでいいように務める x = +x || 0 弾く必要があるときもできるかぎり抽象度の高い段階、 それこそ入力を受け取ってすぐでチェックする つまりできるだけ早い段階で型を保証、確定させといてその後は気にしないのがコツかと これさえ守れはそうそう躓くことは無いはずだし、大変じゃないはず それで大人数で作るときは出来るだけモジュール化して細部を他者から呼ばせることのないようにする
あと場合によっては出力値をチェックするだけってのも有効だと思う
普通だな
静的厨は型が動的なことを恐れすぎ
静的でも動的変数使えるのってある? 型推論じゃなくてね
やろうと思えばレベルならいくらでも もし動的レベルにできるなら それは動的言語の枠に入れた方がいい
>>743 C#のdynamicとかVB.NETのOption Strict Offとか。
静的動的には拘らないけど、型チェックはキッチリやっていただけると テストコードが減ります
型チェック??? 値をチェックするのに含まれるから別にあえて型チェック意識する必要なんて皆無だろ
最終的な値が合ってる間違ってるだけの情報じゃ、 関数の深い所で型エラーになってたら 間違った場所を追うのが大変ですよ
型エラーって何 動的言語での話をしてるんだよね? で、暗黙の型変換や変数が任意型のせいでエラーが出ないのを問題視してるんじゃないの?
静的でも関数型のように副作用を極力できないようにしてバグが発生するのを抑えようとする中、値の変更どころか種類まで自由になる動的はないわー 動的の柔軟なところがいい場面もあるけれど、お前らの書いてるコードではほとんど必要ないぞ。
何でもかんでも厳格である必要はないがな 基本軽量でやろうと思う箇所でチェック入れるので十分だと思う もちろん動的静的両方あるんだから適時適所だが 少なくとも自分は動的のほうが好きというか便利で使いやすいと感じる
柔らかいのを活かすんじゃなくて固くある必要がないんだよ
753 :
デフォルトの名無しさん :2013/10/21(月) 00:07:09.45
まぁその辺は好みだろうがF#使ってると変なバグの入り込む余地がほぼ潰されるけど楽に書けるので動的で軽く書けるという利点が全く分からん。 F#やその他の静的関数がたは軽くかけるのに硬さの利点も併せ持つぞ?
754 :
デフォルトの名無しさん :2013/10/21(月) 00:08:26.12
固くある必要が無いってのが皆目わからん(´・ω・`) 固さでどんだけ助けられたことか。
動的も静的も使うけど暗黙的なのもあんまり好きじゃないし型とかも明示的に書いたほうがいいわ
必要があるんなら世の中全て静的型付け言語が蔓延ってないとおかしいがな
757 :
デフォルトの名無しさん :2013/10/21(月) 00:13:28.35
>>756 それは逆も言えるだろ。必要ないならなんで全部動的になってないのよw
助けられることもあるけど俺の感覚では余計なお世話感が強い
>>757 適材適所って言葉を知らんのか
メリットとデメリットは表裏一体なのは
プログラマならよく分かってることだろ
760 :
デフォルトの名無しさん :2013/10/21(月) 00:19:58.34
適所があまりないような〜。
適所はJavaScriptがこれから次々見せてくれるよ
え?土管がなんだって?
JSの話はするな そしていちいち突っかかるな
土管じゃなくてJavaScript
JavaScriptは昨今一番可能性を見せてくれている言語だから 話題に挙がるのもしかたがない 具体的な話をしちゃいけないんならこの不毛なスレがもっと不毛になってしまう
766 :
デフォルトの名無しさん :2013/10/21(月) 00:29:01.52
JSはCの二倍速い。
一番可能性があるのはD言語だろ
768 :
デフォルトの名無しさん :2013/10/21(月) 00:33:21.03
>>759 だから適所だと思って動的使ってるところは多分適所じゃないよって話なんだが。
動的のメリットである柔軟性がバグの温床になりやすいというデメリットになるよというのもそう。
>>768 あなたの価値観は尊重するが
大衆とズレてることだけは認識しておいた方がいい
>>マクロベンチだとだいたい5〜10倍くらい遅い これは非asm.jsの話ね
自分が大衆だと思わないことだ。
773 :
デフォルトの名無しさん :2013/10/21(月) 00:40:05.30
JSは動的なコード最適化があるので可能性は無限大。 使えば使うほど速くなる。
せやな 人の意見に不毛なケチつけるのは無し へーそういう考え方もあるのねくらいに止めとけ 大人なら
775 :
デフォルトの名無しさん :2013/10/21(月) 00:40:58.64
何でここの連中はJSが好きなのかね Webプログラマー板にでもいればいいのに
いいから、煽るなって 前向きな話をしようぜ 大衆より体臭を気にしろ
>>776 使用者や環境とともに成長してきた言語だから
当然
779 :
デフォルトの名無しさん :2013/10/21(月) 00:43:42.75
JS実行一回目でCの二倍高速。 二回目で2.5倍、10回目では3倍程度高速になります。
スパコンで数値計算してるヤツにこのスレ教えたら 爆笑してた
781 :
デフォルトの名無しさん :2013/10/21(月) 00:47:29.70
スパコンで ← 単なるユーザー、秘孔突かれて爆笑してたんだろ。 ヒデブとか言いそうだね。
1780レスもあって 静的型付け言語の潜在開発生産性は今の100倍 とやらが一度も話し合われてない 話し合われそうになってもすぐおじゃんになる民度に笑うわ
JSのVM作ってるヤツなんて、iccで最適化周り作ってる連中から見ればウンコだってさ
ほとんどJavaScriptじゃねえか ここにきてやっと本題話してる感じ
>>779 そうなる可能性はあるよね
まあCのコンパイラも進化するだろうからアレだろうけど
自動スケーリングという策に対して
関数型言語のような厳密性アプローチか
LLのプロファイリングアプローチ、
正直それぞれ期待できると思う
>>784 え、そうだったの?
動的がいいか静的がいいかって話?
こういう技術で開発が楽になるとか
コンパイラの性能が上がるとか
そういうのと思ってたんだが……
>>773 > JSは動的なコード最適化があるので可能性は無限大。
動的な最適化っていうのは、
「動的で最適化出来ない」より速いのであって
静的な最適化のほうが速いよ。
なぜかというと、動的な最適化は所詮
実行時に最適化処理をするしかないから。
静的に最適化したコードを複数持っていて
実行時に使用する最適化コードを切り替える方が速い。
例えば、CPUが持っているマルチメディア命令セットごとに
DLLを作っておいて、実行時にCPUを判定して切り替えて使う
なんてものが、静的に最適化+実行時に動的に切り替える方法の一つ。
極論話だなそれ それで済むんなら話が始まる必要すらない そういうことを自動的にやってくれるのがJITの強みでしょうに
789 :
デフォルトの名無しさん :2013/10/21(月) 00:58:50.07
>>787 イイエ違います。
あなたは最適化の意味を知らない。
790 :
デフォルトの名無しさん :2013/10/21(月) 01:02:23.53
最適化はもっとスピリチュアルで神聖なものです。
俺も詳しく知らないし、上手く説明できないけど、実行時でこそできる最適化ってのがあるよ 人間の書くコードもコンパイラも完璧なら理屈的に要らないんだろうけどさ 実行環境に対応するってだけじゃなくて、人の書いたコードの意味とでもいうのかな そういうのに対応するために有効なんだって あと、マルチコアっていうのは、そういう最適化に1,2スレッドさけやすいってのはあるかと
JSにマルチスレッドなんてできんの?
793 :
デフォルトの名無しさん :2013/10/21(月) 01:04:31.59
jsの言ってる最適化って中間言語があればいい話で動的である必要なくね?
794 :
デフォルトの名無しさん :2013/10/21(月) 01:11:43.87
JSの言語構造が最適化に最適なのです。 その証拠にJavaはJITがあってもCより20倍しか速くなりません。 JSはそれ以上速くなる可能性があります。 20倍というのは、昔日本の研究者が発表した値で、当時結構話題になりました。 今でも、日本の研究者を馬鹿にするとき、特定国の研究者が持ち出すトピック として使われます。 ですから、割とあてにならない話で、JSの圧倒的勝ちと言えます。
Brainfuckでもやってろ
llvmは普通にCを中間言語に変換してるね
いやCPUごとにバイナリを生成すれば 静的のほうが速いからw
同じ話を繰り返さないでいいよ 単なる荒らし目的だろうけど
動的も静的もみんなちがってみんないい みつを
801 :
デフォルトの名無しさん :2013/10/21(月) 01:25:35.50
>>795 いや、最適化に必要な情報があるならそれは残せばいいだけで。
V8がやってる最適化はjsでないとできないこととかあるの?
802 :
デフォルトの名無しさん :2013/10/21(月) 01:29:48.30
>>801 結果がすべてを物語っているんじゃないの?
JSはCの2倍以上速い。
これがすべて。
>>802 同じアルゴリズムで書いたコードで比較してるんですよね?
すごい興味があるので、ソースください
>>801 それってゆくゆくは中間言語じゃなくてそのままをJITコンパイルすればいいってことになるでしょ?
自分はただJITの可能性と中間言語の問題点を挙げただけでJSがどうとか極論はどうでもいいよ
>>802 訂正しておくね。
JSはCの2倍以上速い。
ことが一件だけ確認された。
残りの数億件はCの方が速い。
言語の可能性の話と宗教を絡めるのはやめろ
Cの方が速いという事例があれば Cが速いと認めてあげますよ。
>>805 釣りに構うな
本当のJSerならあんな事言わない
荒らし目的でJSJS言ってる奴、極端な0か1かばかり主張する 話が通じない奴に餌をやらないでください
810 :
デフォルトの名無しさん :2013/10/21(月) 01:40:53.59
私はJSの良さを皆さんにも教えてあげたいという善意で書きこしてるんですよ
舐めてんの? そんなんでJSを布教させられるわけねえだろ 出直して来い
JSはミスを誘発しやすいクソ構文だけど 実行速度はそこそこ速いので土管に最適ってことでしょ?知ってた
土管には実行速度が速いことが 一番重要だからな。
最速コードを書くのはいつも土管だし。
とりあえず気に食わない相手は みんな土管と言っておけば、 すっきりするよ。 はいお前土管決定ってな。
土管がでてきたから俺はさっさと寝るかな。
いくら土管と言われようが俺はJSが一番好きだし誇りに思う なのでどーでもいい
お前のかーちゃんどーかんw
819 :
デフォルトの名無しさん :2013/10/21(月) 01:50:45.65
私も誇りを持ってJSを使っています 誇りを持てる言語ってなかなかないと思います
JavaScriptは全てを受け止めてくれる抱擁力がある
土方が土管に誇りを持ってるのか 字面がくどいな
822 :
デフォルトの名無しさん :2013/10/21(月) 01:53:04.22
JSを使える優越感。
どうでもいいけど、追い詰められたら ドカタって言って逃げるのやめたら? 毎度思うけど、小学生にしか見えん。 何を言うのも勝手だけど、 こっちは小学生かよって思って見てるからね。 そのことを忘れないで欲しい。
土管を馬鹿にしてるの?
825 :
デフォルトの名無しさん :2013/10/21(月) 01:57:15.55
>>804 んじゃなおさらここで触れるべきことじゃないじゃん。
少なくとも動的ゆえに静的では出来ないような最適化ができるよってことじゃなければ。
>>823 土管としてしかJSを扱えない人達なんだから仕方ない
827 :
小学生 :2013/10/21(月) 01:57:30.22
はい、おまえのとーちゃんどかたけってい!!! うまれるまえから、おまえもどかたけってーい これでいいですか?
なんか動的、静的関係なく、 コンパイル言語はコンパイルした時点でのCPUにしか対応できないが、 インタプリタ言語は未知のCPUでも対応できるって話にしか見えないんだが。 実行時にソースをコンパイルする言語なら、 静的言語でも未知のCPUに対応できるよ?
>>825 JITは必要かどうかっていう話題に対して提示したんだから
このスレで話すべきことだよ
別に動的VS静的スレじゃないし、動的静的の立場で話してないでしょ
インタプリタは違うな。 実行時にソースをコンパイルする静的言語は なんて言ったらいいんだ?
せっかくのスレを正常化するための話題が
静的厨には静的言語への挑戦と受け止められたらしいな
やっぱり
>>782 の通りになった残念無念
832 :
デフォルトの名無しさん :2013/10/21(月) 02:02:58.72
それらはすべてJSの仲間です
>>830 実行時と言っても言葉の使われ方としては
実行「中」中心ならJIT
実行「直前」中心ならAOT
コンパイルっていうけど言語としては難しいね
C言語でもやろうと思えばJIT出来るんですって言われればそうかってなるし
834 :
デフォルトの名無しさん :2013/10/21(月) 02:07:33.69
実際にやってるのはJSだけだけどね 絶大な効果があるという意味ではね
>>831 スレを正常化というけど、スレタイとは全然合ってない話題って気がするよ
そりゃ、実行速度が開発生産性に直結するような分野もあるだろうけど、大抵は違うだろ
>>834 もとがクッソ遅かったから伸びしろは大きかったね
それでもまだ遅いけど
>>834 Dartもやってんじゃない?
というかV8とDartエンジンってよく似た最適化導入されてるよね
SMIとか凄く特徴的だよねえ
静的言語の可能性としてはDartに注目すべきなんじゃないかな
V8とのいろんな比較もしやすいだろうし
まあまずはDartがブラウザに乗ってからが本番だけど、
この冬とか前聞いたんだけどどうなのかな
>>718 みるとV8はこの1年で50%以上もスコア伸ばしてるから
マクロベンチではまだまだ伸びしろあるだろうね
実行時に最適化というのは 要するにJIT積んでいればいいわけだから JITで有名なJavaやC#からもわかるように 静的言語でも実行時に最適化できるということ。
静的型付け言語の型って最大何種類あるの?最小は?
クラスも入れると無限大
あれ、JITは必要なくCPU毎にコンパイルすればいいんじゃなかったの???
えぇJITよりもCPUごとにコンパイル したほうが速いですよ? 何も矛盾しませんが。
JSの実行速度が速いと言っても、JSを何に使うんだろう スマートフォンの世界じゃHTML5アプリよりネイティブアプリにするだろう ウェブのサーバーサイドでPHPなんかをNodeが代替するかといえば、一分にそういうケースもあるだろうけど、主流になるとは
> スマートフォンの世界じゃHTML5アプリよりネイティブアプリにするだろう お前は、ウェブサイトを全部ネイティブアプリにしたいのか?
>>843 まだ同じこと言ってんのか
皆が教えてくれてるのに成長しないやつだな
FirefoxOSというものがあってだな…… JavaScript==ネイティブなんだが……
>>846 JITが必要な理由と、
速度は別の話だって
わかりませんか?
実行速度を気にするような複雑なアプリをJSで書く必要性はない 頑張ってHTML5でゲーム作るより、ネイティブで作る方が遥かに簡単で速く動く
AndroidすらiPhoneよりオーバーヘッドがあって遅いって批判されてるのに、JS使ってたら話にならないと思われる
ウェブサイトってのはCPUに依存しないように しなくてはいけないからJavaScriptが必要で できるだけ速く動かしたいからJITが必要なだけ。 そしてJITは静的言語でも使える。 速度が必要な物が、ネイティブアプリで 作られていることからもわかるように、 速度重視だとコンパイルしてしまったほうが速い。
それは固定概念って奴だな
誰か固定じゃない概念を示してやれ。 そうすれば、俺は勝てる。 皆の力が必要だ。
だからネイティブって何よ? ひょっとして静的言語のこと? 速度は静的は昔の話になりつつあるってまだ分かんないのかな そうじゃなかったらFirefoxOSなんて実現するわけ無いでしょ スクリプトからAPIを叩いて気楽に作る時代なんですよ今は
隙があるレスすると すぐにおちょくられるんだから 気をつけたほうがいいよ。
>>854 > だからネイティブって何よ?
CPUが直接実行できる機械語が
生成済みになっているもの。
だからFirefoxOSのJavScriptはネイティブではない。
>>855 この風潮ホント嫌だよな
盛り上がるにしてももっと和気あいあいといい方向で盛り上がろうぜ
ははあ じゃあAndroidのJavaはネイティブでは無いのね
862 :
デフォルトの名無しさん :2013/10/21(月) 02:49:49.05
>>860 当たり前だろ?
JSもJavaもJITを使っている以上
ネイティブではない。
Javaは静的言語だが。
さっきから静的言語とネイティブが
ごっちゃになってる人がいるんだよね。
一番速いのはネイティブ+静的言語
JavaはネイティブJSは非ネイティブ それ以上でも以下でもない まずは用語を勉強してからスレに来なさい
>>862 Javaはネイティブじゃないって言い張ってるの君だけだね…
ネイティブっていうのは直接マシン語に変換される言語 JSとかは生まれはインタプリタ言語だったが 今やLLはJITでアセンブラまでコンパイルされるが基本なのでこの分け方は当てはまらない スマートフォンでネイティブっていうのは所謂インストールしてウィジェットとかある つまりOSで直接強くサポートされた言語ってこと 例えばwinやMacでのC言語なんかは当にそうと言える JavaやLLみたいなどこででも動くことを目指した言語は言語としてはそうは言えないが その環境ではネイティブだと言っていいと思う そういうことだよね?
要するにJSやJavaはネイティブじゃないが AndroidのJavaやFirefoxのJSはネイティブと呼ばれるってことでFAで?
普通、C#やJavaはネイティブ、PythonやJSはスクリプトって言うんじゃない
まあネイティブ上で動くっていうイメージの問題でしょうね 本質的には変わりない
型無しでも型付きでも書けてメソッド毎に静的型付けの強制をオンオフ出来て静的言語Javaで書かれた 資産を直接利用できる動的言語Groovyはなかなか節操がないぞ。
Java自体が趣味で書くには好きじゃないな 良くも悪くも土方向け言語って感触
VM上で動くのをネイティブとは言わんだろ
それは人間から見た視点であって結局は機械語になって動くわけだし 機械語から機械語を動的生成するみたいなのは多かれ少なかれ どのコンパイル後コードでも内でやってることだよ
自分の都合で勝手に用語の意味変えるのやめろや
OSがそのままロードできもしない物をネイティブとは言わん
875 :
デフォルトの名無しさん :2013/10/21(月) 05:18:42.92
>>864 Java Native Interfaceというものがあってだな……
結局どっち?VM上で動くのもネイティブって言うの?Javaって機種ごとコンパイルとかしないよね。まあ関係ない話題みたいだけど
静的型付けは、構造というかルール性の事でOK?チューリング完全な言語であれば、その上にVM的に静的型付言語を走らせる事が出来るんだよね、理屈としては 読んでて分からんくなりそ
>>876 Javaは実行時にclassを解釈するJITコンパイラが間に入ってるから、
ネイティブじゃない
>>878 ありがとー!
じゃあ動的言語上で動く静的言語がjava?
プログラムソースはテキスト型(でかいchar)って事で瞬間瞬間は静的な動的コンパイル言語?
難しいわ
>>880 分かってないのに口挟んだゴメン。読んでたら気になってさぁ…
882 :
デフォルトの名無しさん :2013/10/21(月) 05:57:13.69
.NETもマネージコードとネイティブコードを区別してるね。 ネイティブがNative Machine Codeの略称だとするなら コンパイル時に機械語に変換されるものがネイティブっちゅうことになるんかね。
結局01の組み合わせで動くんだから両者に明確な違いなど無いよ
884 :
デフォルトの名無しさん :2013/10/21(月) 06:00:11.67
>>883 食べ物を食べてうんこして死んでいくんだから猿も人間も違いなんてないみたいなw
コンパイル時に機械語に変換されるものがネイティブ いやいや言葉的にそれはおかしいだろ OSが強くサポートしている言語がそのOS上でのネイティブだよ
少なくともコンパイル云々とネイティブかどうかは直接的に関係ない
>>885 それじゃ足りない
実行コード部分はハードウェアが直接解釈できないと
>>885 そんな屁理屈がまかり通るなら
AndroidはJavaがネイティブってことになるし
Windowsは.NET、Unixはshがネイティブになるだろ
いつ機械語に翻訳されるかとネイティブという言葉が結びつかないんだが それに結局はメモリ確保とかでOSコールするんだからVM上で動いてるのと同じだがな
普段はそんな意味で使わないくせに、なんでこういう時だけ頑ななのかな。
893 :
デフォルトの名無しさん :2013/10/21(月) 06:32:46.48
>>891 簡単に言うと、機械語、VM上で実行されるコード、インタプリタで
実行されるソースコードをネイティブコードと呼ぶんだなあ。
知らなかった。
機械語だけを呼ぶと思ってたわ〜。
プログラマってこんな頑固でいいものなの? ネイティブとは何かって程度の話題に何百レスも使うスレの住民が 可能性なんて語れるわけないよな 今の環境に固執してるもん
荒らしてる奴がいるだけだろ
何かおかしいと思ったら、 HTML5との対比語のネイティブを言ってるのね。 そら文脈依存の言葉を、単独で使っちゃいかんやろ。
>>894 2chにプログラマの代表が集結してる訳ないだろ。
正しさなんてどうでもいいのさ 強弁して押し通すゲームだから
HTML5だってFFOSならネイティブだ スマホではアプリの審査とかいろんな特徴上の理由で ハイブリットアプリとかJavaとHTML5というのを独特に区別してるからな AndroidではほぼほぼWebアプリと対比したJavaアプリ iPhoneではほぼほぼWebアプリと対比したo'Cアプリ のことで単なる代名詞でしか無い
PerlやPythonがプリインストールされてるLinuxディス鳥では これらもネイティブだよー
FFOSではC++もJavaもネイティブじゃないんですね わかります
>>902 暗黙的にアプリとしての視点で言ってるから基本的にそれらは対象外だな
>>903 対象外
OSでサポートされててアプリが作れる言語ってことでいいでしょう
既存のスマホではできることの差、アプリの種類の名称として
>>901 で定着しちゃってるけど
>>904 そこでは一般的な実行モデルの話であって
言語がどう呼ばれるべきかとは直接関係ない
当然文脈で異なる
>>906 そこに書いてある文脈で呼ぶべきだ。
勝手にオレオレ文脈作って
誰も呼んでない適当な呼び方をするんじゃない。
実行モデルの話をしていたよなぁ?
>>906 は何言ってるんだ。
ここ数ヶ月JSのステマをし続けてる奴がいる 何の目的かは知らないが
>>905 そういうのをネイティブというのはウェブ界隈での呼び方だぞ
相当狭い世界で生きてるんだな
狭いも何も最初からスマホの話
>>844-847 で
FirefoxOSのJavaScriptをネイティブと呼ぶべきかという話題なんだが
だからJavaScriptはネイティブってことで正しいでしょ
JSをネイティブというのはさすがに違和感あり過ぎる それより上がないから比較対象もないし
だからその常識に挑戦するのがFFOSなんだって FFOSでだってブラウザ上で動くアプリとパッケージアプリは区別されるべきだし スマホ一般で言うにはネイティブと言っておけばいいでしょ ユーザーから見たら変わらないわけだし
914 :
デフォルトの名無しさん :2013/10/21(月) 14:40:48.72
お前らばか? そんなコンテキストによって意味が変わる言葉の意味についてコンテキスト決めずに論争してもしょうがないだろ。 せめてこのスレではこの意味で使おうというならまだしも。
ユーザーから見たら詐欺だろ
ユーザーだけではなく開発者の視点から見ても同じ
スマホでネイティブアプリと言ったらインストール可能なアプリ程度の意味しかない ほぼWebViewだけのものとか大いにあるし
それをネイティブとは言わん
現にそう使われてるから 今使われてるものに当てはめるなら言えるでしょ
どうせポシャるプラットフォーム上でJavaScriptやHTML5がネイティブだとか どうとか実にどうでも良い。 というかJavaScriptやHTML5がネイティブだとか粘着し続けているのJSerという か単なるMozilla厨かよ。 前置きもなくFFOSとか略されたところでそれが世間一般に普通に通じると思って いるのならかなり痛い認識だぞ。
いや言わないって WevViewアプリがネイティブならSenchaやMonacaのアプリもネイティブだろ
インストール型Webアプリだとブラウザアプリのこと指すし ネイティブWebアプリだとハイブリットアプリのことを指すし 素直にネイティブアプリと呼ぶのが一番じゃないかと思う
OS自身の記述言語がネイティブてある。 「OS」の指す範囲は各自定義してね。
>>922 ハイブリッドはハイブリッドだろ
ってか自分でハイブリッドって言ってるのに変だと思わないのかw
>>921 それらは出力形態としてはハイブリットアプリ
>>925 いいや、ネイティブアプリでいいのよ
屁理屈こねない
>>927 そこまで意味を拡張してしまったら
ネイティブという用語そのものに必要性ないだろw
馬鹿すぎて話にならないw
ハイブリットアプリだけは120%ないだろ… 形式が一番近いのはブラウザアプリ、というかほぼまんまで ブラウザがOSと融合してVM的な機能も提供してるんだから 普通に考えたらネイティブアプリと呼ぶでしょ どれだけ妥協してもネイティブアプリの風格を持ったブラウザアプリってとこだわ
プラットフォームがある機能のネイティブサポートをうたうのは単体の出荷状態で その機能に対応している場合。 なのでFirefoxOSはJavaScriptをネイティブサポートしているといって良い。 だけどそれを走らせるARMだか何だかのCPUにとってJavaやJavaScriptはネイティブ サポートの対象じゃないね。別途JVMなりJSエンジンが必要。 成果物に関して「ネイティブ」と呼ぶのはプラットフォーム横断的な実行環境との 比較で特定プラットフォーム向けに書かれたものをさすと思うけれども。 なのでJavaScriptで書かれたFirefoxOS向けのアプリはネイティブアプリかな。 ただそれを走らせるCPUにとってはネイティブでも何でもないね。
ネイティブ(アプリの風格を持ったブラウザ)アプリ ってことでこの話はもういいよ
LinuxではshとPerlとPythonはネイティブって結論でいいよね?
NO アプリとして一般的か否かは重要 所謂シェルスクリプトはシェルスクリプト
934 :
デフォルトの名無しさん :2013/10/21(月) 18:10:06.97
プラットフォームに特化した言語をネイティブっていうんだろ 他のプラットフォームでも使えたらネイティブとは言わない
>>933 一般的かどうか、どうやって決めたの?
主観?
ネイティブコード=機械語は昔からある用語 ネイティブアプリ=非ウェブアプリは ブラウザアプリが増えて区別するために作られた新しい用語
ネイティブコードにコンプレックス持っちゃったドカタが ネイティブじゃ無いものをネイティブって呼び出したのが起源
>>936 そうそう
で、この話題は最初からそっちの方向で話し合われてる
言語ではなく環境も含んでの話だからね
そんなことはどうでもいいから技術について語ろうぜ 例えばJSONってどうよ
940 :
デフォルトの名無しさん :2013/10/21(月) 20:01:07.91
JSはソースコードがネイティブコードなので超速い。 Cはコンパイルして機械語でやっとネイティブコードなので遅い。
同じこというやつに突っ込むのだけはやめろよ
942 :
デフォルトの名無しさん :2013/10/21(月) 20:26:00.40
どう見ても荒らしたいだけだから突っ込むのやめた方がいいな
突っ込む気力すらない
944 :
デフォルトの名無しさん :2013/10/21(月) 20:51:23.76
JIT以前はC言語が速かった JITの登場でスクリプトのほうが速くなった
JSの実行速度は十分、それよりも64bit型とかが必要だし なんといってもボトルネックなのはDOM操作だから
もっとIDEを強化すべきだと思う ドカタ = IDE の図式
>>939 もっとJSONスキーマを使えるインフラが流行って良い。
JSONはハッシュのキーに文字列しか使えないところが 最高にうざくて頭悪い
この前循環参照含むオブジェクトを文字列化できないのかできないかって質問がJS質問スレであって 循環参照を解いたオブジェクトに崩してからJSON化するってので乗り切ってた 確かにJSONは表現能力もそこまで高くないし、それよりもスキーマがかっちりしてないって言うのを見るけど ちょっと追加パーサー書けばそれなりの拡張は容易だと思う それよりも取り敢えずシンプルで組み込みやすいって方をとったんじゃないかな
拡張が容易って・・・JSONの拡張?
そもそもJSONは規格なんで 勝手に拡張してはいけませんねぇ。 循環参照あるならYAMLを使うべきでしょ。
循環参照なんてルートに一段かませて そこに接続してるパス書けばいいだけじゃないの
JSONの拡張じゃなくて例えば複雑な型が使いたいのなら
{
"type-string":"aaaa"
"value-string":"bbbb"
}
みたいにするとか、アプリケーション側でカバーできるってこと
あんまり高機能だとあらゆる環境での共通フォーマットにはしづらいでしょ
>>953 どういうこと?気になる
>>954 複雑さの先送りがあとあと効いてきそうな感じ…
>>954 {
"object": { 本来のデータ },
"cyclicRef": [ { "from": ["path"],"to":["path"]}, ... ]
}
>>955 複雑にして失敗したのがXMLだよ
>>956 そもそも循環参照を持つのはJSON化出来ないのよ
だから本物のデータとやらをJSON.stringifyで文字列化出来ない
だから例の質問では(ライブラリフリーで)一番効率の良い方法として
循環参照のない形にほぐしてJSON化するという手を取った
>>958 >そもそも循環参照を持つのはJSON化出来ないのよ
>だから本物のデータとやらをJSON.stringifyで文字列化出来ない
いやそれぐらいわかって書いてるよ
元のレスじゃ循環参照を元に戻すとは言ってなかったから
>>953 のレス書いた奴がそんなこと言うんだ
笑えるね
963 :
デフォルトの名無しさん :2013/10/22(火) 07:30:31.76
寝起きで頭がまわらないのは理解するがもう少し良く読みよく考えてから書き込んでくれな
話ぶった切るけどJSONの妥当性検証ってどうしてる? * JSONスキーマ * JSONマッパー提供のバリデーション機能 * アプリケーションロジック内でなんとなく * その他
966 :
デフォルトの名無しさん :2013/10/22(火) 08:04:27.48
JSONスキーマ一択
>>965 パース関数にかけて通れば妥当
TwitterのStreamingAPIみたいに断片で続けて送られて来るときはもはやそうするしか無い
うん、だからパース関数にかけてみればいいよね
>>970 うん、だから正当なJSONであるだけじゃなく、
データ構造の妥当性の検証もできるよ。
>>970 well-formedとvalidはちがうやろ
JSONの妥当性と言ったらフォーマットの妥当性の様に聞こえる
例としてJSONスキーマやアプリケーションロジックでのバリデーションをあげているので well-formedではなくvalidのチェックだと解ると思うけど。
976 :
デフォルトの名無しさん :2013/10/22(火) 18:36:24.96
それJSONあんま関係なくね
次スレは?
979 :
デフォルトの名無しさん :2013/10/22(火) 19:40:36.94
コンビニのレジと同じくらいの給料なんじゃないの?
980 :
デフォルトの名無しさん :2013/10/22(火) 22:13:50.77
これ今月のスレかよ むっちゃ伸びてんな
981 :
デフォルトの名無しさん :2013/10/22(火) 23:56:53.88
>>839 そう。このスレでは動的型付けと動的最適化がごっちゃになってる。
次スレそろそろ要らないな
>>839 JavaもC#もJITは言語レベルよりずっと下の
静的型付けとか関係ないレイヤで行われるんだけど?
だから何?
結局静的言語ならではの何かなんて語るほど無いってことなんだからスレタイが悪いんでしょ 次スレ建てるんなら「プログラミング言語の潜在開発生産性は今の100倍」とかにしてね
986 :
デフォルトの名無しさん :2013/10/23(水) 19:39:48.61
>>985 だから動的は糞て静的関数型の方が遥かに生産性がいいってFAでてんじゃん(´・ω・`)
987 :
デフォルトの名無しさん :2013/10/23(水) 20:09:43.82
JavaScriptは糞って一応の結論は出た形かな
JSがクソだから動的型付けはクソっていうなら、 Cがクソだから静的型付けはクソってのと同類だな
>>1 の
>コンピュータがコードの意味を正確に認識できる方法が必要。
>実行しないとわからないことはコンピュータは認識できない。
>静的型付け言語であれば、実行しなくてもわかるのでコンピュータが理解できる。
>そうすれば様々なコンピュータの高度な情報支援が得られる。
は要するにIDEの、コードを書く時の場合だけど
IDEが100倍も良くなることなんてあるの?
今で十分だと思うんだけど、この辺りが語られてない
あとは最適化についてはそこそこ語られたけど
開発ってのは書いてコンパイルして終わりじゃなくて
もっと運用とかの面も入れたほうがいいと思うから
次スレではそういうとこ話そう
開発効率を上げる方法について語るスレでええな
実質はJSを褒め称えるスレなんだけどね。
JSのエンジンが凄いという話は出たがJSが凄いという話は出てないし そもそも特定の言語について語るスレではない どの言語がいいかではなく言語を使うときの開発力向上について話すスレだ
993 :
デフォルトの名無しさん :2013/10/23(水) 21:52:38.30
という建前で、JSを褒め称えるスレなんだけどね。
というのは幻想で、現実は貶されとそのフォローしか無かったけどね
995 :
デフォルトの名無しさん :2013/10/23(水) 23:50:43.97
>>993 信者のキモいマゾっぷりがさらけ出されただけだがな(´・ω・`)
動的も静的も生産性は同じでFA?
997 :
デフォルトの名無しさん :2013/10/24(木) 00:17:36.33
>>996 少なくとも静的関数型も動的もみっちりやった人が言うのでなければ話にならんわ。
ここで動的サイコーとか言ってる奴はロクに静的関数型触ってないし( ´Д`)y━・~~
どちらもそれなりにやってきたが 結局はどれだけ分かりやすいエラー吐いてくれるかに尽きる
今使える話と将来使えるよと言う話の間で全く話がかみ合っていない。
あぁ、次スレ建てなきゃな。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。