5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

静的型付け言語の潜在開発生産性は今の100倍

1 :デフォルトの名無しさん:2013/03/03(日) 18:17:29.51
人間がやっていたことを、コンピュータにやらせる。
これが生産性を上げる最大の方法。
コンピュータは間違わない、同じ事を何度も高速に行える。

その為に、コンピュータがコードの意味を正確に
認識できる方法が必要。実行しないとわからないことは
コンピュータは認識できない。

すなわち静的型付け言語であれば、実行しなくてもわかるので
コンピュータが理解できる。そうすれば様々な
コンピュータの高度な情報支援が得られる。

コンピュータのバックアップを受け、人間の生産性は
限りなく向上する。

952 :デフォルトの名無しさん:2013/10/05(土) 20:20:58.41
>>949
被害妄想乙

953 :デフォルトの名無しさん:2013/10/05(土) 20:25:07.74
例のJS大嫌いなキチガイが来てるんでしょ?

954 :デフォルトの名無しさん:2013/10/05(土) 20:31:42.81
批判する意見が全て同一人物によるものだと思い始めたら危険
視野の狭い低能にありがちだけど

955 :デフォルトの名無しさん:2013/10/05(土) 20:34:41.25
全員アイツのなりすましだ!

956 :デフォルトの名無しさん:2013/10/05(土) 20:53:24.37
結局>>901でFAでしょ?
use strict とか関係なくて

957 :デフォルトの名無しさん:2013/10/05(土) 20:57:06.04
そんなことはないな
クロージャとか深いスコープネスト多用するんだから

958 :デフォルトの名無しさん:2013/10/05(土) 21:01:49.41
参照するだけなら関係無いし、
そんな簡単に変数を上書きしねーよ
副作用脳のサルかよ

959 :デフォルトの名無しさん:2013/10/05(土) 21:02:43.27
>>949
thisのどんなところが間違えやすいのよ?

960 :デフォルトの名無しさん:2013/10/05(土) 21:07:51.69
変数がヒットせずにスコープチェーンをどんどん遡っていったときに
最終的にグローバルに新しく出来てしまう事が問題なわけで
べつにvarが逆でも問題は解決しない
新しくできるのを防ぐのが大事でそれがstrictmode

961 :デフォルトの名無しさん:2013/10/05(土) 21:09:47.04
ブロックスコープが無いことも叩いて。
実質的な御利益が何もない。

962 :デフォルトの名無しさん:2013/10/05(土) 21:10:24.32
>>960
そんな程度の問題。
昔からjshintあたりで
検出できてたよな。

963 :デフォルトの名無しさん:2013/10/05(土) 21:11:13.54
>>961
ブロックスコープなくても
クロージャースコープが有るじゃん。
これがブロックスコープの代わりになるし、

えー、そもそもブロックスコープが必要になるような
長い関数書かなければいいんじゃね?

964 :デフォルトの名無しさん:2013/10/05(土) 21:13:58.01
>>961,963
意味不
JSにブロックスコープはできただろうが

965 :デフォルトの名無しさん:2013/10/05(土) 21:17:20.24
ブロックスコープはletがあるし、thisバインドのアロー関数もある。
無知ばかり。

966 :デフォルトの名無しさん:2013/10/05(土) 21:19:44.79
ES6でね

967 :デフォルトの名無しさん:2013/10/05(土) 21:21:11.79
letは全ての最新ブラウザで使える(IEは11)

968 :デフォルトの名無しさん:2013/10/05(土) 21:27:11.46
>>960
わざわざvarを付けないと、そんなウンコな振舞いになるのが問題

969 :デフォルトの名無しさん:2013/10/05(土) 21:29:41.51
>>968
つstrict mode

970 :デフォルトの名無しさん:2013/10/05(土) 21:36:10.55
var付ける付かないの問題じゃねえって何度言ったら分かるんかな
C言語しか書いたことのない人か??

971 :デフォルトの名無しさん:2013/10/05(土) 21:36:37.86
varを付けないのが禁止になるだけじゃん

別にvarくらいどうってことないよ?
でも良く使うもの程より短い記述で書けるべきだろ
つまりJS作った奴はアホ

972 :デフォルトの名無しさん:2013/10/05(土) 21:38:53.95
>>970
わかってないお前に一言で説明してやるよ。

varの問題はとっくに解決済み。
お前の言う問題は、全て解決している。

973 :デフォルトの名無しさん:2013/10/05(土) 21:40:27.56
>>971
よく使うもの?

そうだな。

functionとreturnの文字が
1ファイルにつき、1000個ぐらいあるとか
そういう話?

それは書いた奴が悪いよw

974 :デフォルトの名無しさん:2013/10/05(土) 21:42:57.36
ん?
もしかしてローカル変数への代入にはvarがいるとか勘違いしてる?
宣言無しで変数を使った場合は上のスコープにない場合最終的にグローバル変数になるってだけで

問題っていうのは「「宣言を忘れて代入しちゃったとき」」なんだが
忘れてるものを付けるだけだから別に手間が増えるとか無いぞ?

それとも宣言なしに勝手にローカル変数にしろってか?
それはほかのスコープチェーンを辿る挙動と合わなくておかしいだろう

975 :デフォルトの名無しさん:2013/10/05(土) 21:49:14.63
何がおかしいの?

976 :デフォルトの名無しさん:2013/10/05(土) 21:51:29.58
宣言なしに勝手にローカル変数になるってことは
上スコープの変数の参照、代入に全てvarか何かを付けないといけなくなって
かなり大変なことになるじゃん
それくらい考えてよ

977 :デフォルトの名無しさん:2013/10/05(土) 21:54:37.06
代入にはいるけど参照には不要だろ

978 :デフォルトの名無しさん:2013/10/05(土) 21:55:59.44
たかだかブロックスコープを使うためにクロージャ書いたりとかIE10以前が絶滅するのを待つとか、
無駄じゃん。

varの書き忘れを書き損じとして扱うのに毎度use strictとか書くの、無駄じゃん。

普通にこの辺りは初期の言語仕様の失敗だと思うけど。

979 :デフォルトの名無しさん:2013/10/05(土) 21:59:32.21
use strictはテスト時のみつければいいので
対応ブラウザとか関係ない
lintみたいなもの
使ったことない奴がほざくな

980 :デフォルトの名無しさん:2013/10/05(土) 22:00:49.09
"use strict"
の12文字を書くのがそんなに嫌なのか
それなのに冗長な静的型を好む
矛盾

981 :デフォルトの名無しさん:2013/10/05(土) 22:08:08.44
>>976
関数スコープを飛び越えて再代入する時は
何らかの宣言があった方が好ましいよ
再代入は参照に比べると危険な操作だし

982 :デフォルトの名無しさん:2013/10/05(土) 22:10:01.15
静的言語ならそうかもしれないが、スクリプト言語だからね

983 :デフォルトの名無しさん:2013/10/05(土) 22:10:39.77
>>979
テストしたソースを書き直すのはテストの意味ないんだけど?

984 :デフォルトの名無しさん:2013/10/05(土) 22:15:33.61
別に書きなおす必要はないぞ??
非対応ブラウザでは文字列になるだけだから

985 :デフォルトの名無しさん:2013/10/05(土) 22:16:26.77
静的型付けの型推論はどうなのよ

986 :デフォルトの名無しさん:2013/10/05(土) 22:18:38.20
>>983
>>979はテストのときのみと書いてるけれど、対応していない処理系は
"use strict";
を無視するから大丈夫。

987 :デフォルトの名無しさん:2013/10/05(土) 22:22:58.12
"use strict"は開発のサポートのため
もっと言えばグローバル変数以外にも
オブジェクトキーの重複とか、色んな"Early Error"を出すためのものだから
開発が終ればstrict modeだろうがそうで無かろうが大して問題じゃない
最後は「動かないより動いた方がいい」しね

988 :デフォルトの名無しさん:2013/10/05(土) 22:24:07.89
型注釈によるオプショナルな型付け+型推論がベストかと。
いずれも持たないJavaScriptはプリミティブ過ぎる。

989 :デフォルトの名無しさん:2013/10/05(土) 22:30:08.31
JavaScriptでは型は「揃える」もの。
seisu = hoge|0 とか。
DOMを扱うJavaScriptでは型変換がしょっちゅう要るからそこは暗黙的な方が便利。
まあそうは言ってもES7でguardが入るんだけどね。

990 :デフォルトの名無しさん:2013/10/05(土) 22:30:51.47
>>982
スクリプト言語だから、何なの?

991 :デフォルトの名無しさん:2013/10/05(土) 22:33:14.82
型推論は後付けするのは難しい
TypeScriptのゴミ推論を見れば分かる

992 :デフォルトの名無しさん:2013/10/05(土) 22:33:17.18
気軽な方がいいってことじゃない?

993 :デフォルトの名無しさん:2013/10/05(土) 22:35:03.23
コールバック地獄=クロージャ地獄のJSに>>901の仕様は合わない。

994 :デフォルトの名無しさん:2013/10/05(土) 22:49:52.08
http://wiki.ecmascript.org/doku.php?id=strawman:trademarks
http://wiki.ecmascript.org/doku.php?id=strawman:guards

995 :デフォルトの名無しさん:2013/10/05(土) 23:29:10.45
クロージャーっって知ってる?

この機能の重要な点の一つとして
関数上のスコープの変数を読み書きできないといけない
というものがあるんだが、知ってるかな?

varのつけ忘れで上のスコープの変数参照できるからって何?
クロージャーってのはそれが出来ないといけないんだよ。

上に登っていった結果、グローバル変数になったら問題だけど
それは"use strict"で防げるから、今は起こりえない問題。
古いブラウザ用であってもjshintなどで検出もできるし。

996 :デフォルトの名無しさん:2013/10/05(土) 23:51:00.85
同じ話を何回するんだよww

997 :デフォルトの名無しさん:2013/10/06(日) 00:16:40.24
別にクロージャ実現するのにJavaScriptのウンコな関数スコープである必然性も必要性も
無いし、外のスコープの変数を参照できるのはJavaScriptに限らず多くの言語が持つ機能
だし、他方で参照解決できなかったらいきなり大域変数作るなんてメリット何も無いし。

この辺り失敗だった事は後付use strictとletで明らか。
JavaScriptだって欠陥混じりの言語としてスタートして改良を必要としながら変化して
きたことは他の言語と全く変わらん。

仕事でもJavaScriptはそれなりに書くけどうわぁここは型をつけてIDEに仕事させたい
とか成果物ごとにモジュール化の書き方が異なって気持ちが悪いとかクロージャ書く度に
functionfuncitonfunctionfunctionfunction文字数多いよとかクロージャ以前に文字列の
式展開とかヒアドキュメントとか無いの面倒でしょHTML弄るときは特にとか不満は他言語
と同程度に普通に感じるかな。
だから改善にも期待するし、他方で合意形成やブラウザ対応の遅さにもげんなりする。

998 :デフォルトの名無しさん:2013/10/06(日) 00:25:52.84
>>997
名に話をごっちゃにしてるんだよw

クロージャーと関数スコープの話は別だろ。
クロージャーと関係があるのはvarで
変数宣言しなかった場合どうなるかの話だ。

999 :デフォルトの名無しさん:2013/10/06(日) 00:26:16.39
失敗だったものなんてないよ
最悪と言われるwith文だってブラウザでのコンソールシステムとかで活かされてるし
何をどう使うかの話
functionが長いとかもうねw笑わせんな
一応後方互換性は保ちながら進化してるんだから失敗じゃない
そりゃあ新しいバージョンの規格のほうが良いけど
だからといって古いものが何もかも失敗になるわけじゃない
JSに大規模開発サポートが増えてきたのも、使われ方、要求されるものがかわって来たってだけ

1000 :デフォルトの名無しさん:2013/10/06(日) 00:26:58.91
>>997
どの言語にも「失敗が一つもなかった」といえる言語はないよ。
Rubyとか互換性切り離してまで、
失敗した原因をなくそうと頑張ったじゃん。

JavaScriptも同じ。

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

276 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)