静的型付け言語の潜在開発生産性は今の100倍 ×3
人間がやっていたことを、コンピュータにやらせる。
これが生産性を上げる最大の方法。
コンピュータは間違わない、同じ事を何度も高速に行える。
その為に、コンピュータがコードの意味を正確に
認識できる方法が必要。実行しないとわからないことは
コンピュータは認識できない。
すなわち静的型付け言語であれば、実行しなくてもわかるので
コンピュータが理解できる。そうすれば様々な
コンピュータの高度な情報支援が得られる。
コンピュータのバックアップを受け、人間の生産性は
限りなく向上する。
前スレ
静的型付け言語の潜在開発生産性は今の100倍 ×2
http://toro.2ch.net/test/read.cgi/tech/1380987002/
タイトル変えることになってただろ
糞スレのまま立てんな
>>1 サンクス。
やったけど、立てられなかったんだ。
>>2 なんでも自分の意見が同意を得られてると
思うんじゃないよ。
生産性が高いんじゃなくて速度が速いだけだよね?
5 :
デフォルトの名無しさん:2013/10/25(金) 10:42:43.74
いいや再利用性によって開発効率を底上げできる
再利用なんてしない
毎回作ったほうがその度に良くなるし、スキルも上達する
マシン語でも使ってろ
生産工数は生産物の耐用期間数の平方根に比例するとか何とか言っとけばみんあ平和
自分は再利用はするがコピペはしないな
見て良いように変えながら移す
一手間をかけるといつどんなコード書いてきたか思い出せるから便利よ
本当に再利用する箇所はコンポーネント化しとく
これはDelphiやってた頃に習慣になった
一度作るとずっと使えるし、修正したいときも継承すりゃいいだけ
型さえ合えばそのまま流用できるとか
どこまでお花畑なんだろ静的厨はw
>>6 それはスキルが伸び続けるのが条件だよね
ここにいるのは、もう成長曲線が平らか下がってるようなおっさんばかりだぞ
関数型ならわかるけど
動的から静的型付けにすると再利用性あがるの?
まず上がらないね。
ソフトウェアの価値は高くなるね
そういう意味では再利用性は上がると言えなくもない
16 :
デフォルトの名無しさん:2013/10/25(金) 19:22:52.09
静的型付け言語でも再利用をする気がないやつには無理
そもそもそういう奴には動的型付けが向いている
再利用性は動的のほうが高い。
静的型で真面目に仕様から型を抽出してマメに設計してあればしてあるほど
別のプロジェクトで再利用できる可能性は低くなっていく。
案件ごとに型名も型の実装も全然別ものになるからな。
気がついたらスクラッチから書き直したほうが早かったなんてことになる。
動的型ならメソッドなど再利用する部分について必要な部分だけ置き換えて
合わせてやればいいから、簡単。
18 :
デフォルトの名無しさん:2013/10/25(金) 19:29:32.46
一般化したものを抽出する知能がなく特殊化したクラスを抽出することしかできない奴に噛みつかれてしまった
リファクタリング最高だぜヒャッハー!
これは動的型付けには真似できんだろ
ではPOS分析システムの「顧客」型を扱う売上集計用の関数を
証券システムの「顧客」型に適用できるのかい?
>>19 リファクタリングって元は動的型言語から生まれた技術だってことは
もう過去スレで何度も出てきているのに読めない文盲のバカですか?
お大事に。
起源と優劣の区別すらつかないの?
リファクタリングもコンプリーションもユニットテストも
動的言語が元だねw
静的型の最大のメリットは
ドカタが仕事した気になれることw
ドカタ言語の代表格 PHP,Perl,Ruby,Javascript
あれ?
27 :
デフォルトの名無しさん:2013/10/25(金) 19:42:31.02
>>19 その2つに共通するものを抽出した上位クラスを作って
次のシステムに再利用する顧客ベースクラスをつくろう
という発想が皆無な時点で
脳に一般化を妨げるある傾向がみられる
28 :
デフォルトの名無しさん:2013/10/25(金) 19:45:21.15
>>27 ぷぷぷ
じゃあPOSでの「顧客」と証券での「顧客」の上位クラスって何を定義するんだい?
いっとくがPOSでの顧客なんて一意性すらないぞw
今の動的言語のほとんどはCで作られてるからCが最強だな
を地で行ってるのが
>>24
>>27 こういう場合普通はAdaptorパタンだと思うが
今時の動的言語でC実装しかない言語なんて少数派だと思うが。
PythonにすらPyPyがあるしRubyにもRubiniusがあるし。
33 :
デフォルトの名無しさん:2013/10/25(金) 20:02:22.76
再利用の一般論を話してるのに
反証にすらならない特殊な事情に引きずり込みたいらしい
POSの顧客がどうなってるかなんか知らんよ
>>33 中身を知りもしないのに型の名前が同じなら再利用できそうな気になっちゃう静的脳w
論理の飛躍を指摘したのに、
今度は存在するだけでそれが主流という飛躍した論理で反論するのか
会話の通じない相手とは話したくないな
動的型言語は賢くなくても使いこなせるのがメリットだと、煽りじゃなくそう思う
POSの顧客だけじゃなく案件ごとに違うものなんていくらでもある
「商品」だって案件ごとに違うし
「取引」だって案件ごとに違う
「名前」だって案件ごとに違うぐらいだw
動的型って言っても型注釈がないだけでメタ的な型はあるから
実はよく訓練された静的型脳じゃないとまともに扱えないという矛盾
39 :
デフォルトの名無しさん:2013/10/25(金) 20:09:36.75
なんだよ動的静的関わりなく
そもそも再利用できない例だったの?(顧客の例)
イヤらしいな
動的型なら売上引っ張るラッパー書けば一発じゃないの?
あ
型付け関係ないな
43 :
デフォルトの名無しさん:2013/10/25(金) 20:19:25.44
C++方式が一番いいんじゃないの?
動的と言っても言語の設計者が決めたルールで動的でしょ?
C++なら変換関数を自分で書けるじゃないの。
RTTIもあるし。
44 :
デフォルトの名無しさん:2013/10/25(金) 20:20:23.95
いまのところおまえしか解らん顧客に関する特殊な事情をもっと具体的にコードレベルで頼む
ダックタイピングって的確な表現だよな
ほんとに型を前提にしない動的言語のコードなんてほぼ存在しない
C++ RTTI=互換性低下させるだけのゴミ
スクリプト言語こそ型判定しまくりで本末転倒なことになってるけどね
50 :
デフォルトの名無しさん:2013/10/25(金) 20:58:39.02
うわぁ捨て台詞を吐いて逃げやがった
顧客や商品なんてどこも似たようなもんだぞ
レシート見てみ?どこも大差ないぞ
動的型付け言語は、
* メリット
** ライブラリを作成時、型に縛られないから使いまわしがしやすい
** バグがありそうなロジックにブレークポイントを仕込んどけば、デバッグ中に動的にコードの修正をしながら、ステップを進めたり戻したり、データをデバッグ用に差し替えたりが用意
** 汎用性のある連想配列
** ビルド時間皆無
* デメリット
** 静的とは相対的に遅い
** リファクタリングの時に困る
** うっかりミス(Typoとか型間違えとか)の時にやばい
静的型付け言語は、
* メリット
** コンパイル成功 ≠ バグが取れた
* デメリット
** UI、ソケット、非同期等、大抵のシステムではメリットのコンパイル成功 ≠ バグが取れた、の恩恵にありつけない
** 動的型付けのメリットにありつけない
ピュアなJavascriptの開発に限界感じてるのはGoogleも表明してるし、げんにDartとかも登場してるし、
C#にもReflectionで動的なプログラミングを可能にしたり、
HaxeでもDynamic使ってJavascriptとの橋渡しを、提供したり、
ケースバイケースで双方良いとこは取り入れて入ってる感がある、
動的onlyや静的onlyはむしろ最近じゃめずらしい。
>>52 やっぱりわかってないな。
静的型付け言語の一番のメリットは
影響範囲が正しく分かるってことだろ。
大規模のアプリで、オブジェクトがあちこちにわたっていたり、
使われていたりする時に、何かを変更した結果が
どの範囲に影響を及ぼすかがわかる。
そんなこまごまとしたメリットなんてどうでもいいよ。
動的型付け言語で困るのが、
これ?変更しても大丈夫だろうか?っていうこと。
どこで使われているかわからないから
不用意に変更できない。
かといって、調査に時間が掛かる。
たまたま同じ名前なのか本当に同じなのか。
この関数を呼び出しているのはどこかのか
同じ名前の違う関数ではないのか、
これの引数に入っているオブジェクトは何なのか
それ以外にありえないのか。
大規模になればなるほど調査に時間がかかり、
それぐらいのコストを掛けるぐらいならと
場当たり的な対応をし、すぐにコードが汚くなり
保守が不可能になる。
55 :
デフォルトの名無しさん:2013/10/25(金) 23:27:52.87
>>29 実際に何かをリファクタするとしてそれらを共通化しようとするバカいねーよw
そんな例しか出てこないところに無能っぷりがかいまみえる。
56 :
デフォルトの名無しさん:2013/10/25(金) 23:43:14.17
>>52 >動的型付け言語は、
>* メリット
>** ライブラリを作成時、型に縛られないから使いまわしがしやすい
暗に静的言語同様のインターフェース決めとかないと使い回しできない。
前もってインターフェース決めていいなら静的型付けでも実現可能。
>** バグがありそうなロジックにブレークポイントを仕込んどけば、デバッグ中に動的にコードの修正をしながら、ステップを進めたり戻したり、データをデバッグ用に差し替えたりが用意
嬉しいか?静的型付け言語でもデバッガでブレークポイント貼れるが。
>** 汎用性のある連想配列
静的型付け言語で連想配列がかけないとでも?
>** ビルド時間皆無
ほんのちょっと嬉しいかもしれないが下記デメリットの前にはどうでも良いレベル。
>* デメリット
>** 静的とは相対的に遅い
>** リファクタリングの時に困る
>** うっかりミス(Typoとか型間違えとか)の時にやばい
>静的型付け言語は、
>* メリット
>** コンパイル成功 ≠ バグが取れた
ニアリーイコールっていう意味か?
静的型付けだろうが動的型付けだろうがエラーなく動いたぐらいでバグがとれたとは言えない。
>* デメリット
>** UI、ソケット、非同期等、大抵のシステムではメリットのコンパイル成功 ≠ バグが取れた、の恩恵にありつけない
同上。
>** 動的型付けのメリットにありつけない
当たり前。動的型付けのメリットにありつけたらそれは静的型付けに比べた動的型付けの
メリットではない。
57 :
デフォルトの名無しさん:2013/10/25(金) 23:57:28.85
誰かが呟いてたけど動的の人は型を制約として捉えるけど静的な人は保証と捉えると。
互いのその認識踏まえた上で話しないと何時迄も平行線だろ。
自分は静的の人ですけどね(´・ω・`)
だから静的も動的も型推論も使える言語が一番いいんだよ
59 :
デフォルトの名無しさん:2013/10/26(土) 00:23:01.36
>>52 >** バグがありそうなロジックにブレークポイントを仕込んどけば、デバッグ中に動的にコードの修正をしながら、ステップを進めたり戻したり、データをデバッグ用に差し替えたりが用意
へー。動的型付け言語ってステップ戻せるんだ。
確かにレジスタとかメモリアドレスとかコンパイル時に決められるわけじゃないから、
ある程度は可能か。それはいいかも。
デバッグ時にステップ戻せる言語って何?
62 :
デフォルトの名無しさん:2013/10/26(土) 01:25:35.15
>>61 それは言語じゃなくて動作環境含むデバッグ環境だろ。
c#だって技術的にはできると思うよ?
思うとか、言語じゃなくてと言われても。
環境でも何でもいいけど、実際にできる言語って何よ。
OCamlのocamldebugとかかな
VB6じゃほぼ動的言語じゃねえか。
だから両対応だって。
型をちゃんと書けば
静的になる。
型指定なんて直接API触る時ぐらいだったよ。
大多数がまともに使ってないだろ。
>>69 型指定なしでどうやってインターフェース継承使うんだよ?
お前が使ってないからって、みんなお前のレベルだと思うな。
そんな時のObject
>>66 > ただし、飛ばした部分のプログラムは一切実行されないなど
> 通常のプログラムとは異なる特別な順番で実行することになりますので
> その点には注意を払ってください。
良く知らんが、すげーいい加減なんだな
ステップを戻したときに、ちゃんと全ての状態を巻き戻して実行してんのか疑問なんですけど
>>70 少なくとも自分の周りでまともにクラス設計してる奴なんていなかったよ。
平均的なVB6プログラマなんてこの程度だと思ってたけど違うんか?
VB6使うプロジェクトって、VBAでExcelとか?
>>72 ステップをもどしても一切巻き戻したりしませんが?
>>73 お前の周りではそうだったとしても、みんながそうだと思うなよ
型指定しない変数を普通に使うやつは平均以下のプログラマだ
すくなくとも俺の周りではな
型推論により省略可能な場合はどうなりますか
>>75 > ステップをもどしても一切巻き戻したりしませんが?
だっせぇ。よくそんなんで話に入ってこようと思ったな
しょせんVBか
>>75 俺はATLでコンポーネント作る担当だったんだけど、
てっきりVB6自体がそういうツールなんだと思ってた。
真面目に書いてる人もいたのか。
日本のソフトウェア技術力が
低いのなんて今に始まったことではない。
少なくとも言えることは、
使ってない人が多いという話(人間の問題)と
言語自体の機能の話は分けて考えるべきだ。
言語の話を使ってい時に、そんなの使ってる人
いねーよというのは反論でも何でもない。
>>77 そのVBができることが
出来ない言語が大半なんですが?
動的言語であってもね。
巻き戻せないのなら意味ない
うっかり飛ばしてしまったように2,3ステップ分記録を持っとけばいいだけ
InteliTrace便利ですし
未だに動的言語ではリファクタリングできないと思い込んでる馬鹿がいるんだね
静的型マンセーしてる人って、本物の動的型を使ったことない人ばかりだよねw
87 :
デフォルトの名無しさん:2013/10/26(土) 08:42:17.38
最低でもLISP, PROLOG, SmallTalkの3つはマスターしてないと
動的型なんて語れないでそ
89 :
デフォルトの名無しさん:2013/10/26(土) 09:07:39.94
>>88 その3つをマスターしてる人なんているのかな。
マイナーなものばかり、生産性が高いんだったらもっと使われててもいいような気もするが。
>>88はマスターしてないと思うが、
自分が知ってる動的型プログラマは3つとも使える人が多い。
どれも言語仕様はすごくシンプルだしね。
91 :
デフォルトの名無しさん:2013/10/26(土) 09:15:10.40
>>90 マスターしてないんだったら語れないじゃんw
生産性低いに決まってるだろ。
ああだから生産性は高い、こうだから優れているって言い訳ばかりで、
何の実績もないまま20年経った。
>>92 どの言語も実績はある。おまえが知らないだけ。
そういやルンバはLISPで動いてるんだっけ?
95 :
デフォルトの名無しさん:2013/10/26(土) 09:19:52.22
>>93 PROLOGはシグマプロジェクトで大活躍したって聞きました(皮肉)
静的厨って、第五世代とΣの違いもわかってないアホ揃いなんですねw
プロトタイプベースが分かってない奴は多いし
JavaScriptなんかでは理解しなくても一見クラスベースっぽくできるからね
93
誰も知らない無名ソフトならそりゃどんな言語でもあるだろ。
99 :
デフォルトの名無しさん:2013/10/26(土) 09:25:31.52
プロトタイプベースでJSなんかを例に出すのはニワカだな
通はSelfを使うものだ
>>88 関数型も論理型もオブジェクト指向も本質は動的型なんだな。
103 :
デフォルトの名無しさん:2013/10/26(土) 09:33:52.69
一人で開発するならまだしも多人数で開発するとなると
自分が作った関数がどっから呼ばれるのかわからないから
引数をチェックして対応できるか判断するのが当然なんだけどね。
開発の規模が大きくなるにつれて型を書かなくていいってことが裏目に出る。
TypeScriptで型が導入されたのはそういう理由だろう。
JSに変換する言語なんてコンパイルまでの間にいかに恩恵があるかってことだから
TSは型を入れてみましたってとこで必要急務だからってわけではないかと
105 :
デフォルトの名無しさん:2013/10/26(土) 09:58:29.84
>>104 恩恵のために型を入れたんだろ?
何を言ってるかいみふ(´・ω・`)
Selfってプロトタイプ付け替えたり簡単に出来ないじゃん
二流だよ
>>105 別にお前に話してないんだが
絡んでくるなよ気持ち悪い
>>105 動的型言語からJSへの変換なんてのもあるが?
>>98 自分の無知を動的言語のせいにするのって
最高にカッコイイですね
今日の君は最高に輝いているよ!
くすくす
110 :
デフォルトの名無しさん:2013/10/26(土) 10:08:36.10
>>107 独り言ならちっちゃい声で言えよ。
大声で
>>104のようなことを言われると何事かと思うだろ(ささやき声)
CSとTSは特殊でベターJSを目指して作られたものだろう?
他言語のトランスレーションとはまた異なるよ
>>102 Haskell、OCaml、F#「……」
HaskellもF#今では動的型を取り入れて完全な静的型じゃなくなってる
116 :
デフォルトの名無しさん:2013/10/26(土) 10:22:05.20
>>112 >>103は独り言じゃないが。お前らに対して言ったことだが。
返信してくれても全然構わない。自分の殻に閉じこもってお前に話してないだ
なんていう冷たい態度は取らないし気持ち悪いとも思わない。安心してかかってこい。
お前がそう思うってだけの戯言に付き合う奴が居ると思ってんの?
一般的に言えるならソースを示せ
そうじゃないんならここはお前の日記帳じゃないんだがら自重しろ
命令型の始祖は機械語
関数型の始祖はLISP
オブジェクト指向の始祖はSmallTalk
論理型の始祖はProlog
計算の本質に静的型は不要
静的型はしょせん検査にすぎない
世の中にVB6以上の開発環境があるだろうか
プログラマのわがままのほとんどを受け入れてくれた
唯一不可能はのは単独exe配布だけだな
>>115 Haskellはライブラリレベルのサポートじゃないの?
ライブラリで良ければ、いくらでも動的型をエミュレートできるよ
121 :
デフォルトの名無しさん:2013/10/26(土) 10:42:28.23
>>117 俺はソース出さなくてもいいという立場だからソースを出さなくてもいいが、
お前は付き合って欲しければ一般的な事柄でありソースが必要だという立場なんだから
ここが俺の日記帳じゃないことのソースを出せw
チューリング完全なんだし当たり前
>>120 違うよ。
型クラスのメソッドの名前解決に実行時型情報が必要な場合があるから。
それって実行時型情報が合わなくて実行時エラーが出たりするの?
それとも、静的型OOPのポリモーフィズムみたいなもん?
実行時エラーにはならない。名前解決可能であることは型検査で保障されている。
型付けをオプションにすればいいじゃんというけど
書く人によって様変わりする言語はそれはそれで問題がある
習得後個人で使う分には良いんだけど
入門書が糞な書き方ばかり紹介してるのはどうにかしたい
>>125 動的型なのに型エラーが出ないなんて完璧ですね
他のウンコ言語も見習うべきだと思います
は?
むしろ動的型では暗黙の型変換でエラーが出ないっていうのが
見つけにくいバグにつながって困るよねって話だろ???
>オブジェクト指向の始祖はSmallTalk
オブジェクト指向の元祖はSimula。
SmallTalkがオブジェクト指向の元祖だと思ってる奴はニワカ。
>>128 そうだね、動的型を使えないウンコ言語は
動的型を取り入れたHaskellのように
動的型言語を見習うべきだと思います
>>130 Simulaはクラスの元祖ではあるけどオブジェクト指向の元祖じゃないよ
この違い、わからないのかなー?
実行時になるまで型エラーが見つからないなんて
劣ってるよね間違いなく
Simulaもチューリング賞をsmalltalkより先にもらってるわけだが。
>>135 で、そのSimulaの2人が「俺達こそがOOの発明者だ」と主張しているの?
それとも単に尻馬に乗った他人が「Simulaが元祖だい!」とわめいているだけなの?
実行時の型エラーというか
実行時に想定外の型が入ってくるのを事前にチェックしづらいってのが問題
でもそのかわり関数の戻り値とかを
型にこだわらないバラエティに富んだものにして
柔軟な思想で設計ができる
それと、確かに型チェックも重要だが、
そもそも値が適切か調べる過程に型チェックを十分内包させられるという考え方もできる
同じマイナー言語でも、Haskellと比べたらSmalltalkは時代遅れ
もはや存在意義なし
>>123 動的バインディングにしたらtemplate使えなくなるよね
もっと具体的にどういう場合か教えてほしい。
あ、意味がわかった。
OCamlと同じ仕組みの事を言ってるのか。
なーんだ。
141 :
デフォルトの名無しさん:2013/10/26(土) 13:45:06.55
>>115 F#っでってなんのこと言っとる?
どう的要素の取り入れなんてあったっけ?
142 :
デフォルトの名無しさん:2013/10/26(土) 13:48:06.76
>>118 型がなくて困ったことが起きたから型が出てきたんだろw
型がないとコード書けないドカタが増えたからな…
ドカタで十分な仕事も増えたぜ…
そう言う割に型チェック演算子とかnilとかhasattrとか普通に使ってるけど
型推論を持ってる静的型使えばいいだけじゃないの?
型推論があっても型付けできないけど
動的型ならちゃんと動くコードってのもあるからなー
>>146 そういうコードって結局テスト必要jになるんじゃないの?
外部で書いてたら意味ないじゃん。
静的型だってテストは必要だが?
世の中には2種類のテストがある
>>148 そういう曖昧な型のためのテストは必要なくなるでしょ。
俺が書いたテストとそうでないテストだ
>>150 ポリモーフィックな型ならどのみち異なる型の組み合わせに対するテストは必要だろ?
>>152 静的型は想定していない型は受け付けないから、動作見るだけでいいけど、
動的型は想定していないオブジェクトを受け入れるかどうかの境界のテストも必要になる。
154 :
デフォルトの名無しさん:2013/10/26(土) 15:22:00.43
静的型はコンパイルさえできれば型の問題はないことが保証される。
動的型は型のチェックをちまちま書いてテストして型の問題が
見つからないことが確認できるだけ。業務では使えないよ。
>>154 つまり、実行時に NullPointerException が発生しうる
JavaやC#は業務では使えない、ということだよね!
すごく説得力があるな
156 :
デフォルトの名無しさん:2013/10/26(土) 15:48:45.10
>>155 そういう曲解して楽しいもんなのかね。理解できんわー。
>>155 Maybeモナドも知らんのか。
皮肉のつもりが無知を晒してるだけだな。
曲解なのかどうか検証してみようw
>>154 >静的型はコンパイルさえできれば型の問題はないことが保証される。
これは正しい
ただし、JavaやC#では、実行時にNullPointerExceptionが発生しうるから、
コンパイルを通過しても型に問題がないことを保証できない
>動的型は型のチェックをちまちま書いてテストして型の問題が
>見つからないことが確認できるだけ。
同様に、JavaやC#でも、テストによってNullPointerExceptionが
起きないことを確認できるだけ
>業務では使えないよ。
動的型と同様に、静的型として欠陥品のC#やJavaも、業務では使えない
>>158 >ただし、JavaやC#では、実行時にNullPointerExceptionが発生しうるから、
>コンパイルを通過しても型に問題がないことを保証できない
なんでそうなるんだよ。
型に問題ないのが保証できなきゃコンパイル通らないよ。
お前が言ってる事は静的型・動的型なんて関係なく、
Null値を許容している限り、実行時エラーは起こりうるという事だろ?
それでもまだ突っ込みどころがあるわけだが。
警告ゼロでコンパイルが通るのに動かないコードなんて山ほどあるし動的と静的で
テストの記述量が極端に違うとも実感としてはあまり思えない。
テストの両云々は両者の差を語る視点としてはやや弱い気がする。
それでも自分は型をつけて記述するけどね。そっちの方が楽だから。
>>159 おまえがバカだということはよくわかった
>>158 nullpointerexceptionが型が原因の例外だと思ってるのか?
値の例外だが。
このスレの静的厨って本当に型理論をまるっきり知らないんだなw
166 :
デフォルトの名無しさん:2013/10/26(土) 17:39:16.81
>>158 だからこそMaybeやoptionとかでより厳しい型を組み込もうとしてるんだが。
nullプギャーwとか言ってるのは自由な値を許容してる動的型に対して天つばしてるのと同じだぞ(´・ω・`)
dynamic example = (dynamic)String.Empty;
>>166 nullを受け入れておいて動的型プギャーwとか言ってる馬鹿に言ってやれw
静的厨ってほんと自分の無知を棚に上げた独善ばっかり
170 :
デフォルトの名無しさん:2013/10/26(土) 18:14:52.22
結局C++方式が一番良かったってことじゃないの?
171 :
デフォルトの名無しさん:2013/10/26(土) 18:23:58.25
性的口付けこそ最強
JVM方式が現実的。
言語間の優越を問うよりも必要に応じて言語を使い分け。
後は言語間で如何にスムーズに連携できるかが大切。
JVMってSmallTalkのアーキテクチャの劣化コピーだってね
時代はPolyglot programmingですよ。
そのための実行基盤としてはJVMと.Netが一番実績がある。
最近はクライアントサイドを中心にJavaScriptエンジンもそんな立ち位置になりつつある。
Smalltalk?
JVMは欠陥品だからダメだな
JavaScript使うよりSchemeのほうがマシだ
反論できなくなると連投するからすぐわかるなこいつw
Smalltalkのtを大文字にしてたらそいつは100%ニワカ
179 :
デフォルトの名無しさん:2013/10/26(土) 19:21:11.35
SmalltalK
↑かっこよくなった。
180 :
デフォルトの名無しさん:2013/10/26(土) 19:23:29.92
型っていうのは競技にもあるんだよね、空手の種目。
つまり、大事なものなんだよね。
181 :
デフォルトの名無しさん:2013/10/26(土) 19:33:22.93
>>168 だから静的関数型には関係ないじゃん(´・ω・`)
静的は型を絞ったけど値の抜けまではチェック出来てなかった。静的関数型は値のチェックまでいれた完成体。何もできない動的は不完全にもほどがある。
別に静的関数型であることは必須事項ではないけれど。
完璧じゃなければ、意味は無いんですよ!?
完璧に近ければ良い、
道中のバグはしょうがないものとして対応出来る範囲に収まってればそれで良い
184 :
デフォルトの名無しさん:2013/10/26(土) 19:58:34.98
完璧に近いって俺のことか?
なんか用あった?
いつのまにか静的型=静的関数型みたいな前提でうわごといってるアホ=181がいるし
>>181 >静的関数型は値のチェックまでいれた完成体。
完成体になった結果、やっと動的型を取り入れたんだねw (
>>115)
そりゃ静的と動的の両方ができるから
完全体だろう?
静的が出来ないのはゴミだが。
静的型が存在しない言語なんてあるのかな?
大抵の言語にはリテラルがあって、リテラルの型はコンパイル時に検査されるよなー
Pythonのメソッドも第一引数は静的型がついてるなあ。
Schemeは型推論できたりするしなあ。
>>188 まったくだ。
> 大抵の言語にはリテラルがあって、リテラルの型はコンパイル時に検査されるよなー
動的至上主義なら、それをやめろといいたいのか?
馬鹿だ。静的に、つまりコンパイル時に検査できる項目は
多ければ多いほどいいに決まっているだろう。
言語仕様はミニマリストでいい
検査もミニマリストでいい
最低限の検査をやったら、あとは邪魔すんな
193 :
デフォルトの名無しさん:2013/10/26(土) 20:25:52.98
まあ結論としては、マギシステムが完成するまではC++方式でいいんじゃないか?って
ことだよね。
>>185 お前みたいな意見もなくただ批判するだけの奴は楽でいいな
議論には邪魔なだけの存在だけど
195 :
デフォルトの名無しさん:2013/10/26(土) 20:47:02.38
議論だったことに驚いた。
議論だったんだ。
へ〜。
驚き!
煽り合いかと思った
皮肉しか言えないんだな
つまらん奴だ
198 :
デフォルトの名無しさん:2013/10/26(土) 21:19:40.48
いや〜半分くらい意味わかんないから読めるとこだけ読んでると、煽りあいに見えてたんだよ〜。
199 :
デフォルトの名無しさん:2013/10/26(土) 21:48:03.70
動的型付けが糞って言うよりJavascriptが糞なんだよな。
200 :
デフォルトの名無しさん:2013/10/26(土) 21:50:46.91
俺もJavascriptの良さがさっぱりわからない。
どこがいいんだろう?
prototype.jsが流行った時も苦肉の策にしか見えなかったんだけど。
なんかJSはすごいってみんな言ってたよね。
年寄りにはわからないんだよ
おまえらベーマガ世代だろ
いやjsは普通に糞やし
あんなの使うならlispやschemeのがいいし
そりゃ言語使って遊ぶだけなら
珍しいものを使うほうが楽しいよ。
JavaScriptは理不尽さがない
まさにWebの様にフリー
優れたハッカーは静的型に無駄と理不尽さを感じる
ということにしたいんです!!!
偉い人がそう言ってるんです。
優れたハッカーがそう言ってるんです。
207 :
デフォルトの名無しさん:2013/10/26(土) 23:35:52.26
いや、俺そんなこと言ってないけど。
痛いところを疲れると人に覆いかぶさって茶化そうとするの見苦しいな
言いたいことがあるならちゃんと自分の言葉で真正面から言えばいいのに
僕もJavaScriptでグリーからフリーになりました(白目)
まったくだよ。何が優れたハッカーなんだかw
俺は理不尽さを感じるって言えばいいじゃねーか。
どうせお前の主観なんだし。
211 :
デフォルトの名無しさん:2013/10/26(土) 23:41:39.09
クラスもどきを作る関数とか便利だよね〜みたいな理不尽さを感じたことはあるな。
え、ちょっと面白おかしく言ったら何この叩かれよう
異様で怖いわぁ……
213 :
デフォルトの名無しさん:2013/10/26(土) 23:43:13.78
だよね。
俺もシャレだと思った。
>>211 JSではクラスを作ろうとする時点で考え方が間違ってるんじゃないかとおもった方がいい
自作クラスとnewは極めて少なくなるはず、というか無くても十分設計できるのがJS
215 :
デフォルトの名無しさん:2013/10/26(土) 23:46:44.55
それがクラスもどきを作る関数を持つライブラリが流行って、JSってすごいよね〜
みたいな話になるから理不尽な世界だなってことだな。
JSを指して動的最高、ヌルポwwとか言ってたの?
よりによってundefinedwwなJSを根拠に?
クラスもどきを作る関数を持つライブラリが流行ってる?
どれのことだ?
218 :
デフォルトの名無しさん:2013/10/26(土) 23:50:21.25
「JS クラスもどき」と単純に検索するだけで何言ってるかわかると思うよ。
こんな手抜きな検索は普通適切じゃないでしょ。
それでも検索できちゃうから相当流行ってるんだよ、クラスもどき。
>>214 ないわ
使い捨てしか作ったことないんだな
220 :
デフォルトの名無しさん:2013/10/26(土) 23:56:35.67
使い捨て主義でカタカタ高速タイピングでコピペ脳内からしてると俺凄げ〜って気になるのはわかるよ。
>>217多分クラスベースの継承の手法が無いから
そういうのを用意してくれるライブラリのことを言ってるんじゃないか?
だからこそ「もどき」のクラスを多用せずプロトタイプベースで書こうと言ってるわけなんだが
JSer以外にはわからないんだろうね
>>219 JSではnew無しでも十分オブジェクト指向ができる
クラスがないと使い捨てになると思ってる時点で驚き
そもそもJavaScriptにはクラスはないから
223 :
デフォルトの名無しさん:2013/10/26(土) 23:58:40.88
JSはプラットフォームの力を借りる言語なんだよ。
そのために特化してる。
だからプラットフォームで儲ける側はJS押せばいい。
そこに縛り付けることができるんだから。
それ以上のことをされたら自分のライバルにすらなれるんだから。
プラットフォーム上で「JS便利だね便利だね」と踊らされてる子ザルは
頭悪すぎでしょ。
プラットフォームを作る側にならなきゃ。
224 :
デフォルトの名無しさん:2013/10/27(日) 00:00:53.89
JSってVBAと大して変わらないんだよね。
>>223 それを言うならむしろ「JSは特化してなくて柔軟」だと思うんだけどな
>>221 {}.callでnewと同等の処理が代替できるからとか言っちゃうのかな
欺瞞が大好きJSer
標準メソッドに習うときは
new 〜〜()が見栄え的にもいいと思うけど
その他は
create〜〜()
にして
function create〜〜() {
var obj = Object.create(proto)
〜〜〜
return obj
}
ってやるのがプロトタイプベースっぽいな
228 :
デフォルトの名無しさん:2013/10/27(日) 00:07:40.95
JSを開発したネットスケープはCSSの解釈をJSにやらせたわけ。
でも大失敗だったよね。
開発元でさえちょっと大きなものを作ろうとするとうまくいかなかったわけ。
これ言語としての限界だよね。
限界低すぎるわ〜。
いまではフラッシュプレイヤーやPDFリーダーがJSで書かれてブラウザに載る時代ですが…
>
>>822 プリミティブは別だと言ったよ。
それについてはこっちの非だから謝るけどさ、
わざわざ蒸し返してまでレスすんなよ。
231 :
デフォルトの名無しさん:2013/10/27(日) 00:11:21.08
正直、VBAと一般のプログラミング言語では土俵が違うでしょ。
まあ土俵って板のことでもあるんだけどね。
JSはHTML板?まあそういうとこ行けばいいんじゃないの?
JSはどっか行けって板ルールにも書いてあるし。
どこからきたんだよ
※JavaScriptが板違いと言いたい人へ
運営サイドから次のような見解が出ています。
|459 飛べない削除屋 ★ sage :04/05/30 15:38 ID:???
|>>458
|ローカルルールにはひどく単純化されて書かれていますが、
|Javascript という言語そのものが板違いなのではありません。
|用途によって板違いかどうかを判断してください。
234 :
デフォルトの名無しさん:2013/10/27(日) 00:12:47.81
Javascriptって子供のおもちゃでしょ?
ここは大人の板だから。
大きくなったらおいで。
235 :
230:2013/10/27(日) 00:12:52.81
すみません、誤爆しました。
236 :
デフォルトの名無しさん:2013/10/27(日) 00:13:51.04
ここは誤爆しても大丈夫なんだよ〜。
JSを駆逐するには新言語のエンジンを搭載したアドオン作れば良いの?
いつも思うんだけどJSerが自分から長々と語り出したわけじゃなくて
JavaScriptという単語に過剰反応する人が話をこじらせてるだけだよね
239 :
デフォルトの名無しさん:2013/10/27(日) 00:16:13.00
それでは無理だろうなあ。
新言語を使ういかしたプラットフォームが必要なんじゃないの?
ブラウザに変わる何かとか。
ネットスケープも変なもん残したもんだよなあ。
既にJSはマルチプラットフォーム化の道を進んでるから
もう歩みを止めるのは無理
241 :
デフォルトの名無しさん:2013/10/27(日) 00:18:48.53
それも無理だろな。
限界が低いから。
ブラウザから大きく踏み出すのは無理だと思う。
むしろJavaScript規格を良くすることを考えたら?
新しい言語を普及させるより早いでしょ
243 :
デフォルトの名無しさん:2013/10/27(日) 00:20:34.77
あ〜、それも無理だわ。
JSなくなんねーかなってみんな思ってるから。
ウンコを食えるようにとか、余程のウンコ好きじゃないと考えないでしょ。
普通ウンコ好きってないから。
JSが嫌いなんじゃなくてJSerが嫌い
>>214 違う
ブラウザ自体、Web自体が色んな所に進出してきてる
この度OSにも進出してAPI的には出来ないことがないほど揃ってきてる
なんか理屈抜きで、感情でJSは嫌いって言ってるだけみたいだな。
何が嫌いかではなく、何が好きかで自分を語れよw
248 :
デフォルトの名無しさん:2013/10/27(日) 00:21:57.72
>>244 俺もそんな感じだわ。
まあでも、JSも糞だな〜って思うわ〜。
249 :
デフォルトの名無しさん:2013/10/27(日) 00:22:47.35
>>243,244
参考までにどういう所が何で気に食わない?
>>250 互換性の名のもとに、変な仕様を残している所。
もてはやされるものが嫌いって
人間の性質としては分かるけど
プログラマとしては失格だな
253 :
デフォルトの名無しさん:2013/10/27(日) 00:24:47.02
なんかへ理屈こねながらム板に来るけど、よく読むと結局ウェブじゃねーかってとこかな。
OCamlと同じ型付ができるようになったら服従のポーズする
今のままだと、あまり速くない高級アセンブラ程度の認識
書いててだるい
ウェブが嫌い。デスクトップとコンソールの時代に戻れ
>>251 それは新しいもの使うことで解決できないこと?
例えばvarの巻き上げはlet使うとか
好きな言語で仕事ができたらいいな。
258 :
デフォルトの名無しさん:2013/10/27(日) 00:26:44.60
もてはやされていないのに、もてはやされているとか主張するとこ。
Cより速いとかわけわからんことぬかすとこ。
それを連日延々と書き連ねるとこ。
板違い、スレ違いなとこ。
俺の新言語には完璧な無限ループ防止アルゴリズムがある。
ブラウザをフリーズさせる悪質なスクリプトとか防止できるぞw
260 :
デフォルトの名無しさん:2013/10/27(日) 00:27:29.04
話を戻すけどJSではクラスもどきを使うのが良くないんじゃなくて
現状のクラスもどきの仕組みが悪いからそれに頼るなってことね
ES6のclass構文はクラスもどきとして凄いすぐれものだからどんどん使っていい
263 :
デフォルトの名無しさん:2013/10/27(日) 00:30:06.16
なんだ、結局クラス欲しかったんじゃねーかってとこ。
すべてが屁理屈。
>>259 > 俺の新言語には完璧な無限ループ防止アルゴリズムがある。
その言語で円周率の計算は
どこまでできるの?
>>258 わけわからんこと書いてるのはどう見てもアンチJSerの荒らしだけど
あんたにはあれが本当にまともな人に見えるのかい?
>>250 Cより速いとか、全般で使えるとか、大げさに言うところ
ブラウザ周りの操作ならお手の物ってぐらいが実情だろう
テキスト処理もバイナリ処理も不得手だよ
>>263 JavaScriptにとって、クラスはシンタックスシュガーにすぎないでしょ?
268 :
デフォルトの名無しさん:2013/10/27(日) 00:32:18.76
>>266 > テキスト処理もバイナリ処理も不得手だよ
なんの機能が不足しているというの?
270 :
デフォルトの名無しさん:2013/10/27(日) 00:33:00.72
>>264 やったことございません。っていうか円周率を求める無限級数の公式によって格段に結果が変わってくるからな。
最新の無限級数は知らんし。
271 :
デフォルトの名無しさん:2013/10/27(日) 00:33:36.28
>>267 いらないんなら構文作るなよ。
いるんだろ?
屁理屈っぽいんだよ。
実際みんな感じてるだろ。
だりーなって。
>>270 いや、そうではなくてね。
無限ループ防止アルゴリズムがあるのに
円周率(無限に続く)は計算できるのか?
矛盾しているのではないのかってことなんだが?
>>263クラスっぽいのを実現するためには
現状のプロトタイプがはみ出す形はどうも見栄えが悪いから
現状の質の悪いもどきを改善するために欲しかった
それと同時にES6にはプロトタイプベースでやりやすいようにもなってる
あとES6のclass構文での継承は特殊オブジェクトの内部プロパティを
適切にインスタンスに付加するという重要な役割を兼ねてる
>>271 要らないって言ってないでしょ?
シンタックスシュガーというのは
既存のある機能を、もっと簡単に書ける機能。
君が、(すでにある)クラスが欲しかったんじゃねーかって
いっているから、その理屈は理屈がおかしいって言ってるの。
あるものはある。欲しいのはクラスではなく
クラスを簡単に書けるシンタックスシュガー
275 :
デフォルトの名無しさん:2013/10/27(日) 00:36:19.46
ほんと頭悪いなあ。
俺は頭がいいのにね。
277 :
デフォルトの名無しさん:2013/10/27(日) 00:38:52.50
>>269 組み込みの特定サイズの数値型やエンコード変換もないし、すぐ型変換しちゃう
ざっくりした処理にはいいけど、細かい処理には使いにくいよ
>>278 それって、ライブラリで持つべき機能では?
言語仕様はミニマムでやれっていうだろう?
>>272 ループ上限は定数で必ず指定しなければいけない仕様になっている。
アイドリングはループではなく同期処理で行う。
永遠に動きつづけるプログラムは仕様で書けないようになっている。
281 :
デフォルトの名無しさん:2013/10/27(日) 00:41:52.59
そのうちJSはアセンブラより速いとか言い出すんだろうなあ。
そりゃアセンブラでJSより遅く書くことは簡単だけどさ。
>>271 今まで、特にES3までは確かに確かに悪かった
それは、プロトタイプベースなのにプロトタイプの仕組みを
クラスベースっぽいので覆い、クラスもどきも劣悪だったから
そういう中途半端のでいろんな混乱と面倒があったのは本当に確か
つまりJSにはクラスのようなことを実現する良くて分かりやすい方法が
クラスベース視点でもプロトタイプベース視点でも不足していた
でもその両者の問題もだんだん減ってきてES6で一応解決かなってとこ
283 :
デフォルトの名無しさん:2013/10/27(日) 00:43:17.92
なんか何でもへ理屈で言い負かせば勝ちみたいな感じ。
そこが嫌われてるんだろうなあ。
自分の板に帰ればいいのに。
そして出てくんなって思うよ。
>>280 1回のループが1分ぐらいかかるのと
1回のループが0.01msで終わるのとでは、
全然違うからループ回数で決めるのは公平性がない。
こういうのは定数よりも、実行時間でやった方がいい。
つまり、何秒とか何分以上処理が続いていれば、
プログラムがビジーです。停止しますかって聞く。
何かに似ている気がするかもしれんが気にするなw
>>279 外部ライブラリ使えって、
もうそれクソって認めてるようなもんじゃん
外部ライブラリを含めるならそれこそ他の言語のが多機能だよ
>>286 なんで、外部ライブラリを使うと糞なの?
お前、言語の役割全然わかってないじゃないか。
実は、プログラム言語の勉強だけしか
してないんじゃないのか?
学生にありがちな実践知らん奴。
どこに外部ライブラリを使わないで作る
アプリがあるのさ。
288 :
デフォルトの名無しさん:2013/10/27(日) 00:47:52.60
型変換はあるね
289 :
デフォルトの名無しさん:2013/10/27(日) 00:47:53.23
実践ってウェブ?
290 :
デフォルトの名無しさん:2013/10/27(日) 00:48:57.66
ウェブでじゃばじゃば〜って中学生でもできるよこれ。
文字コードの変換のこと言ってるんだよね?
これは標準でどの程度まで持つべきだと思う?
特にJISみたいな国際系にはどのくらいまで?
実践知らん奴が、何言い出したw
>>287 結局こうやって真面目に話しても煙にまいたり、レッテル貼るんだよね
だからJSerが嫌いなんだよ
294 :
デフォルトの名無しさん:2013/10/27(日) 00:50:21.54
Excelプログラマです!(誇らしげ)とかないのになあ。
どこで間違っちゃったんだろねこの人たち。
>>285 A,ループ時間を決めることができる
このアイディアはよいな。
>>293 おい、正当な反論に言い返せなくなったからって
逃げるな。
297 :
デフォルトの名無しさん:2013/10/27(日) 00:51:25.61
みてみて、このわざとらしさw
266 名前:デフォルトの名無しさん[sage] 投稿日:2013/10/27(日) 00:31:16.83
>>250 Cより速いとか、全般で使えるとか、大げさに言うところ
ブラウザ周りの操作ならお手の物ってぐらいが実情だろう
テキスト処理もバイナリ処理も不得手だよ
268 名前:デフォルトの名無しさん[] 投稿日:2013/10/27(日) 00:32:18.76
>>266 それわかるわ〜。
293 名前:デフォルトの名無しさん[sage] 投稿日:2013/10/27(日) 00:50:16.10
>>287 結局こうやって真面目に話しても煙にまいたり、レッテル貼るんだよね
だからJSerが嫌いなんだよ
297 名前:デフォルトの名無しさん[] 投稿日:2013/10/27(日) 00:51:25.61
>>293 その感じわかるわ〜。
JSerには極悪人しかいない
よく分かんだね
301 :
デフォルトの名無しさん:2013/10/27(日) 00:53:13.46
全然自演じゃないよ。
俺も同じことを感じてる。
共感。
みんな同じことを感じてるんじゃないの?
煽り合いはいいから真面目に話そうよ
具体的にどういう機能がJSに標準であるべきって言ってるの?
>>296 反論できてないのはお前だよ。
外部ライブラリ使っても、テキストやバイナリ操作が不得手なのは解決はしないよ。
どう不得意?
>>304 JSにプラスになること言うわけ無いじゃんw
単にディスりたいだけなんだからさ。
あー、酒が旨いw
だめだめ言うばかりで、どうできればいいかは言わないんだよね。
具体的なことを言うと、反論されるのがわかってるから。
312 :
デフォルトの名無しさん:2013/10/27(日) 00:58:14.44
JS無くなんねえかなって思ってる。
生産性低い言語を使わせたいとか。
プラットフォームを作れない言語。
これがJSを推す理由でしょ。
頭悪すぎ。
踊らされてるだけ。
314 :
デフォルトの名無しさん:2013/10/27(日) 00:59:39.27
どうできればいいか。
JSがなくなってほかの本物の言語に変わる。
これでみんな幸せ。
MSとググル涙目。
JSを推す???
無慈悲な批判煽りに対抗してるだけで推していないが
>>313 レスツリーを遡ると、
ライブラリで解決できる問題という結論になってたね。
>>314 そんなのはもういいから。
318 :
デフォルトの名無しさん:2013/10/27(日) 01:02:27.59
>>315 君は踊らされてるみじめな子ザル。
まさか君はMSやググルの意思決定を担っているのかい?
そうなのかい?
それなら推すのもわかる。
踊らされてる側なんじゃないのかい?
今度は踊るとか言い始めた。
頭悪すぎ。
>>316 では外部ライブラリにない機能で画像処理をしたい時はどうする?
>>320 C言語でも好きな言語でもいいから置き換えてみろ。
画像処理って具体的に何?
Canvas使っていいんだよね?
323 :
デフォルトの名無しさん:2013/10/27(日) 01:07:42.75
JSで画像処理を書く。
JSって素晴らしい。
ユーザーは使わない。
そういう仕組み。
324 :
デフォルトの名無しさん:2013/10/27(日) 01:08:54.82
Canvasを駆使して、Nシステムを書き上げる。
JSって素晴らしい。
バイナリが入力されてバイナリを返すのなら
標準でArrayBufferやDataViewがあるから出来るよ
バイナリ処理がJavaScriptで出来るできないの話をするならば、
できるが答えになる。
だから遅いという話に持っていかなくてはいけないが、
以外に早かったりするから困る。
度々言うがJSに不足してるのはint64とbignum
ES7までこれには苦しむ
329 :
デフォルトの名無しさん:2013/10/27(日) 01:14:20.57
そういう感じが嫌われてるんじゃないの?
JSでNシステムを書ける。
だからJSは優れてる。
そんな結論にするから嫌われる。
JSはNシステムをかける言語じゃないだろ?
たとえ書けたとしても。
できると言ってるだけにしか見えないが……
331 :
デフォルトの名無しさん:2013/10/27(日) 01:16:39.61
言い負かせば勝ちってルールはウェブ板のルールだろ。
ここに持ち込まれても困る。
嫌われるのは自然の成り行きなんだろうなあ。
とりあえずバイナリの話はもう終わり?
333 :
デフォルトの名無しさん:2013/10/27(日) 01:17:29.89
>>317 ごめんね。見落としてた。
int8は知らなかった。どうやればいいの?
テキストの方は変換APIがあるだけでいい
そのOS標準のエンコーディングに変換できれば実用性としては十分
336 :
デフォルトの名無しさん:2013/10/27(日) 01:20:32.04
>>335 速度はCより速いと言い張られるし無理ぽ。
>>334 前者はES6のValueType
あとMath.froundとかもちょっとある
後者はファイルに保存するAPIが持つものじゃないかな
例えば今のところブラウザから任意のファイル保存させる手段は少ないけど
Blobコンストラクタで一応エンコードの指定ができる
それが守られてるかどうかは不明
あとNode.jsとかの環境ではベタであるね
SJISはiconvとかのライブラリ使わないと無理だけど
339 :
デフォルトの名無しさん:2013/10/27(日) 01:26:39.01
これは速いね。
認識精度もなかなかいい。
ソニーのデジカメに積めると思う。
>>337 int8ってどうやって使うの?
Blobは苦肉の策だし、容易に変換もできないから無しで。
そういう使いにくい物を素直に標準APIとしてほしいと言ってるわけで。
341 :
デフォルトの名無しさん:2013/10/27(日) 01:34:35.67
とか言ってたらほんとにソニーのデジカメがJSで動いてた。
時代は変わったんだなあ。
>>338 これ凄え!確かに速え!
って中身見たらほぼopenglじゃねーか
>>340 int8(127) //127
int8(128) //-127
読み込みはDataView系でオクテット単位でバイト列を自在に読み込める
バイナリを操作するってとこまでは標準であるけど
ファイルの読込保存までは標準であるべきとは思わないな
一応IOから切り離されたスクリプト言語っていう存在だし
これから先DOMAPIが発展しきったら使用されるかもしれないけど
まだまだファイル操作が許される現場は特殊な方だからね
あとは文字コードの変換っていうのは例えばutf8のバイト列を
utf16にするような関数が欲しいってことだった?
そういうのはあっていいかもね
344 :
デフォルトの名無しさん:2013/10/27(日) 01:40:13.13
そうですね。
Javascriptはセキュリティを重んじるのでローカルリソースへのアクセスは
限定的であるべきです。
>>342OpenGLは表示部分だけで行列の演算とかは全部JSだろ
>>344 まあ標準で合ったとしても
ブラウザ用はまた確認や制限があるAPI使ってねってなるだろうから
同じことだな
347 :
デフォルトの名無しさん:2013/10/27(日) 01:46:36.45
すでにファイルという概念が過去のものとなっていますから、これからの
コンピューティングシステムは厳格に管理されるクラウド上のリソースのみ
扱うべきでしょう。
そういった意味で、多くの言語と比べJSは優れていると言えます。
標準で危険な動作から保護されているのですから。
こういう書き方をする人が張り付いているからJSのイメージ悪い。
別に2chの標準的な書き込みだと思うが
単にネタでしょ。笑えない時点でイミフなのは否定できんけど。
>>338 ごめんよ。これだけだと他言語との速度差がわからないから、処理が得意かはわからない。
ただ、このプログラムはすごいね。読みふけってしまった。
教えてくれてありがとう。
>>343 Chromeだと対応してないみたいだよ。
>>351明示的には
>>343だけどそもそも
バイナリの読み書きに関しては暗黙的に同等な事をやってくれるから要らない
ab = new ArrayBuffer(10)
i8 = new Int8Array(ab)
i8[0] = 127
i8[0] //127
i8[0] = 128
i8[0] //-128
dv = new DataView(ab)
dv.setInt8(0,127)
dv.getInt8(0) //127
dv.setInt8(0,128)
dv.getInt8(0) //-128
>>352 できないならできないでいいじゃんよ。
なんで無理にやろうとするのかな。
何が出来ないのか不明
32bit単位までの読み書きは標準で揃ってるよ
355 :
デフォルトの名無しさん:2013/10/27(日) 02:46:52.14
いえできますよ。
できるけれども必要がないと言っているのです。
この違いわかりますか?
出来るよりも必要ないのほうが高度なのです。
それだけJSが優れているということです。
356 :
デフォルトの名無しさん:2013/10/27(日) 02:48:12.70
>>338 ある処理が人間にとって問題ない速さで動くのを"速い"っていうのはなんか違うと思うけど。
現状JSは画像(バイナリ)処理苦手でしょ。並列処理できないし。
だからgoogleもNaClとか開発してる。
357 :
デフォルトの名無しさん:2013/10/27(日) 02:49:13.31
女子小学生
数値の型変換はES6まで気軽にできないけど
バイト列の操作はそれなりにできるってことでしょ
>>354 なんでint8なんてのを出したの。
できないよ。
>>356 並列処理はWorkerで出来る
配列のパラレル処理もWorkerなラッパーで実現するライブラリがあって
ES7で標準にも取り入れられてきている
Firefoxならもう使える
>>359 ES6でChromeはまだ対応していない
362 :
デフォルトの名無しさん:2013/10/27(日) 02:54:53.13
得意とは言えませんが問題なく操作できます。
処理系の高速さと相まって全体として他の多くの言語より優秀な性能を発揮するのです。
簡潔に書け、バグを生みにくく、高速に動作する。
これらの特徴によって多くの人がJSはバイナリ操作の言語であると考えるのです。
JS自体は決してバイナリ操作のために設計されていません。
しかしながら他の言語よりも上手にバイナリを扱えるのです。
もうMozillaScriptって呼べばいいのに。
親切のつもりで方法を書いたら屁理屈か何かと勘違いされてしまったのか
非常に悲しいな
365 :
デフォルトの名無しさん:2013/10/27(日) 02:58:10.84
Mozillaの前身であるNetscape社はJavascriptを人々のために解放しました。
ですからMozillascriptとは呼ばないのです。
感謝してありがたく使わせていただきましょう。
二、三時間でスレの半分もレスすんじゃねえ
読むの追いつかないだろうが
367 :
デフォルトの名無しさん:2013/10/27(日) 03:00:32.52
>>365 いつの世も先人は凡人に理解されにくいものです。
大衆が追い付いてくるのを静かに待ちましょう。
>>364 親切心で答えてくれたのなら、感謝する。
ただ、int8で(扱いやすく)できるって言ってたのに、
迂回する方法示されて、できますって言われても、
使いにくいっていうのが元の主張なんだから、噛み合わないよ。
>>368 いやいやいや
それは勘違いしてるよ
int8は
>>284 「組み込みの特定サイズの数値型」っぽいのがあるよという紹介で出しただけであって
バッファの読み書き自体はもうすでにあるAPIで簡単に出来るんだよ
APIの各メソッドにもう機能が内蔵されちゃってるようなものだから
ファイル操作に関しては別にint8の出番は特にないよ
370 :
デフォルトの名無しさん:2013/10/27(日) 03:09:49.47
>>360 Workerってちゃんと性能スケールするの?それは知らんかった。
以前使ったときは全然性能スケールしなくて、Workerって非同期処理とかに使うものかと思ってた。
まぁ仮に現状スケールしなくても原理的に並列化できないわけじゃないから実装が追いついてないって
ことなんだろうけど。
Vector処理はまだだよね?こっちも原理的にできないわけじゃないんだろうけど。
それでもJSでプログラムしたいとは思わないが。
>>369そもそもこのint8っていうのはES6の間では
StructTypeとかArrayTypeっていう構造体っぽいのを作るために使われるもので
見かけの型変換は副産物ね
実際はdoubleでしかない
これらはES7になってint64やbignum等など、
そして数値型を調整する仕様が入って初めて型変換として活きるもの
全然スケールしないよ
うんこだよ
>>370 Workerそのもの自体にスケール機能はない
ライブラリやES7のDataParallelではやってくれる
Vectorは不明
>>369 教えてくれようとした事には感謝するけど、
ArrayBufferやBlobは知ってた。ごめんよ。
jsは固定配列より、単体の組み込み型の他に、構造体とか、特定のチャンク構造を、
簡単に読み出せる方法があると、処理の汎用性が上がると思うよ。
そろそろ落ちる。答えてくれた人ありがとう。
スケールしないというより必要ないというのが正解
充分な性能があるからスケールする必要性自体ない
んな馬鹿な
シングルスレッド性能ですら静的型より遅いのに
>>374 固定じゃないのはDataViewを使う
特定の構造を簡単にはES6のStructTypemでおあずけ
静的型ってたとえば?
JSより速い言語はないはずだけど
そんだけJSerが語るJSの使用と実際の現場で使えるJSには差があるってこった。
JSの一番の適用領域であるウェブではIE8とか9の存在も考慮して開発せんといかん。
そんな相手にJSerがあと何年かかるかわからんES7やMozillaScriptのローカル実装を
語ったところで現状単なる夢物語と捉えられるのは不思議じゃない。
コレは別に皮肉でも何でも無く、言語仕様のバージョン遅れがより深刻な問題になる
のはJavaScriptがスクリプト言語である以上本質的な問題。
言語仕様のバージョン=ランタイム上のインタプリタやJITコンパイラのバージョン
なんだから。
クライアントサイドで広く使われるJavaScriptのランタイム=言語仕様のバージョンを
如何にコンスタントに最新仕様に更新していくか、その方法の答えは現状まだ出て
いないように思う。実際IEで滞っているわけだし。
でもSIMD演算もJSに入るんでしょ?
300%早くなるのは魅力的
いっそのことJavaScriptエンジンはプラグイン方式で良かったのかも。
「最新のJavaScriptPlayerに更新してください」とポップアップを出せばOKだし。
>>380 ES6から入るみたいだね
これでJSで動画のリアルタイム編集などが可能になる
今のMozilla仕様なんてFirefox3の頃でひと通り出てた気が
出遅れすぎだ
>>379 XPとVistaの8と9はもう気に死にことも多いよ、特にIE12がでるあたりではそうだろう
ES6勧告後に出るだろうIE12がwin7に流石に対応してくれると考えれば
あとは自動アップデート後はES6だけ考えればいい
だからあと2年くらいの辛抱だと思う
>>383 結構色んな所が変わってJS1.xとES6は互換性がない
IE自体がすでに死に体で使ってる人もほとんどいないから切り捨てでいい
基本的にFirefoxとChromeに対応しておけば90%以上カバーできる
自分とこのサーバにくるUAくらいちゃんと見とけよ
うちはハイブロウな人しか相手にしていないのでSafariとChromeだけ相手にしていれば十分です。
JSだけではなくてAPIの問題もあるのでいつまでも古いIEを相手にしていられない
実際のところFirefoxは開発ターゲットの基準と出来るほどドミナントなシェアが無い。
マニアックなイメージこそあれ軽快だったりオシャレなイメージは残念ながら作り損ねたし、
そういうものを求める層はChromeやOSX標準のSafariを使っているでしょ。
そしてモバイルではWebkit系統以外のブラウザはFF含め存在感皆無だし。
仮にIE無視できたところでChromeやSafariは無視できないわけで、いくらFirefoxが規格の
実装で先行したところでベースラインとしてはこの二者に合わせる必要がある。
ベースがそこなら上等じゃん
このスレではベースの話にこだわる必要性なんて無いけどね
392 :
デフォルトの名無しさん:2013/10/27(日) 04:37:05.99
2年後には流石に各ブラウザの最新バージョンはES6に対応してると思うぞ
393 :
デフォルトの名無しさん:2013/10/27(日) 04:44:02.80
>>392 MSだけ仕様をちょっとねじ曲げるのが慣例なんだけどな。
IE11でES6の一部に対応したんだから、
2年後は順当に行けばほとんど対応してくれていると見るのが自然
ES6が大きく変わる恐れが有るのは
11月第4週のミーティングだけ
その後ラストコールで1年後勧告
397 :
デフォルトの名無しさん:2013/10/27(日) 04:53:52.85
ShiftJIS,j++,html,css,Unicode などなど
必ず仕様をねじまげてねじこんでくるのがMSという会社
ES6はMSも策定に加わってるし問題ない
昔めちゃくちゃだったのはIEのJSがJScriptだっただけ
まあそのあたりは実際に出そろってから話そうや。
ES6って他言語に比べて2週くらい周回遅れだったのが
1週遅れ程度になるだけですよ
他言語って具体的にどの言語?
Smalltalk, Lisp, Ruby
>>402 それらの言語に対して、
足りない機能は何?
これがでれば、1周の内容が判明するよね?
>>402で複数の言語でてきたが、
どの言語も全ての点で優れているものは
ないってことだろう。
仮に数値化すればこんな感じ
Smalltalk 5 4 2 3 1
Lisp 3 4 5 3 1
Ruby 4 2 2 1 5
そう。どの言語もオール5なんてのはなく
何かの点で劣っているもの、優れているものがある。
今のJavaScriptはこんな感じか。ウェブに
特化しているからその点では有利。
JavaScript 3 3 5 3 3
それがES6ではこうなる。
JavaScript 4 4 5 4 4
そう、まさに二周遅れ(5 vs 3)だったのが
一周遅れ( 5 vs 4 )になったわけだが、
全ての点が平均的に上がっているというのが重要。
5周遅れだろうが100周遅れだろうが
ES6に入る機能の殆どが本当にしっかり練られてて
失敗はないだろうからclass構文とかものによっては十数年
待ったかいはあったと思うよ
他の言語の機能をまんべんなく取り入れてるってのがいいよね。
最高ではない、だが最良である。
それが実践主義、現実主義であるのJavaScriptというもの
HTML5もそうだった。理想であったはずのXHTMLよりも
より使えるものを目指して進化し続けている。
>>404 何の根拠もない数値でも、数値が書いてあれば説得力が増すと考えるのって
典型的な文系脳だよね
根拠も何も何の項目かも書いてない
ただの数値に文句つける人ってw
いや、アスペだろ
数値に病的にこだわる
>>408 横レスだけど、
>>407は数値に文句をつけているのではなく、
意味の無い数値から根拠を導く
>>404の似非科学的思考を批判している
日・本・語・ワ・カ・リ・マ・ス・カ ?
急にファビョられても困るわぁ……
412 :
デフォルトの名無しさん:2013/10/27(日) 14:15:16.92
夜中だけ盛り上がるスレ。
平日の日中に盛り上がるような与太に価値があるとでも思っている?
414 :
デフォルトの名無しさん:2013/10/27(日) 14:31:13.93
平日の昼間も盛り上がってたんだね。
夜中と昼間だけ盛り上がるスレ。
俺参加できないスレ。
悲しい。
415 :
デフォルトの名無しさん:2013/10/27(日) 15:18:53.39
飽くなきJS信者が寝てる時間帯と思われる
>>410 俺は数字なんて大した意味が無いと思ってるから
消していいよ?
----ここから書き直し
どの言語も全ての点で優れているものは
ないってことだろう。
どの言語も完璧なものなんてのはなく
機能によって劣っているもの、優れているものがある。
今のJavaScriptはウェブに
特化しているからウェブの機能ではほかよりも優れている
それ以外では劣っているが、それがES6では底上げされる
そう、まさに二周遅れだったのが 一周遅れになったわけだが、
全ての機能が平均的に上がっているというのが重要。
劣っている所がかなり減った。
----ここまで書き直し
まさか、説明をわかりやすくするためだけに書いた点数に
ここまで病的に反応するとは思わなかった。
数値にこだわるのはアスペなん?w
金曜日の午前8時にスレが建ちスタートダッシュ。
夕方から夜は静まり返り深夜になるとまた盛り上がる。
生産性を上げる≒開発環境の支援を最大限に受ける
動的言語の優れた開発環境教えて
>>416 結局、数値を取り除くと残ったのは、
>>416の主観的な願望や妄想だけw
技術的な裏付けのある主張はどこにも無い
>>416の「ES6はこうあるべきだ...」という願望から導かれた結論ありきの内容
>>419 そもそも、Smalltalk, Lisp, Ruby が
優れているってのが主観だからね。
事実、何が優れているかが
でてこない。
二周遅れっていうのも、主観や願望だろうが。
数字として示せよ。
同じ議論何回も繰り返さないでいいよ
そういうのを不毛っていうんだぞ
424 :
デフォルトの名無しさん:2013/10/27(日) 20:07:44.96
>>422 Smalltalkには演算子の優先順位がないってマジなの?
そんな言語があるとは思えんな
Smalltalkの何が優れているかって
結局言えないんだよね。
427 :
デフォルトの名無しさん:2013/10/27(日) 20:47:29.19
Smalltalkは優れているよ。
Smalltalkは優れているよ。 (主観 願望)
429 :
デフォルトの名無しさん:2013/10/27(日) 20:52:09.00
Javascriptより優れているね
主観、願望
優れてるってのは分かったから
どこがどうってのを聞きたい
標準ライブラリは優れてるよね
つまりJavaやC#が最強と
そういうことですね?
Javaの標準ライブラリはガチでゴミ
435 :
デフォルトの名無しさん:2013/10/27(日) 21:05:32.35
Javascriptの標準ライブラリってなんもないね
Javaの標準ライブラリは酷いよなあ
オブジェクト指向や直交性などの手段が目的化してる最悪の例
(ここまでいえば、具体的と認めてくれるだろう?)
実際には具体的なことを何も言ってないけどなw
議論では何度やっても勝てないから煽って誤摩化すわけね
ほんと関数厨って頭悪いわw
動的型言語で一番関数やメソッドの補完が優れた
開発環境を持つ言語って何?
やっぱりSmalltalkなの?
Smalltalkかぁ、言語はいいんだけどね。
普通のテキストエディタで書けないし・・・。
442 :
デフォルトの名無しさん:2013/10/27(日) 22:12:08.75
Smalltalkは環境自体がIDEと言ってもいいだろうね
>>440 JavaScript+VisualStudio
>>424 そもそも演算子がない。
メソッドの評価順に優先順位がある。
Smalltalkは特殊すぎて実用的でないというか。
なんだろう。OSすべてSmalltalkの世界が来れば
なにか変わるかもしれないが。
Smalltalkに演算子がないって
欠点なんじゃね?
演算子が無いことのメリットがあるかもしれんが、
わかりやすさとしてはデメリットでしょう?
本当なのか・・・。
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070202 >
> % [Smalltalk] とりあえず Smalltalk で最初にびっくりすべきところ
> % rlwrap gst
> GNU Smalltalk ready
>
> st> 2 * 4 + 1!
> 9
> st> 1 + 4 * 2!
> 10
> な、なんだってー!?
>
> 要は演算子だろうが何だろうが全部メッセージで、優先順位とかは特別扱いしないよ…
> ってことなんだろうけど、知らないとビビるよ、これ。 ある意味 LISP に近いかも。
> 優先順位関係無しに、先に計算されるべきところはカッコで囲まざるを得ないところが。
> まあ、算数へのこだわりが無ければ、こっちの方があいまいさが無くて嬉しいという見方もできるけど。
MSにはPythonの開発環境を本気で作ってほしい
Pythonって解析しやすい方だろうしコミュニティも静的解析ウェルカムな感じだし
設計思想もC#と似通ったところがあったりしてMSとは相性良さそう
Visual StudioのPython開発環境ってそこそこ出来良くなかったっけ?
そりゃ補完はjediに及ばないだろうけど
451 :
デフォルトの名無しさん:2013/10/27(日) 22:22:42.77
pdbがものすごくいいらしいのでPython使ってみたけど、printと変わらなかった。
>>449 だってあれ元々MSが作ってたからなw
コミュニティベースに移行してからはパッとしないけど
>>451 pdbなんて全然良くないと思う
ていうかデバッガなんて真面目に使ってないでしょ誰も
>>450 それは全然意味が違う。
四則演算の優先順位は
小学校で習う常識だ。
Smalltalkは小学校の
常識から外れているだろう
455 :
デフォルトの名無しさん:2013/10/27(日) 22:26:58.20
Javascriptを使えばホームページに動きを取り入れられます
それどころかJavaScriptでなんでもできます。
457 :
デフォルトの名無しさん:2013/10/27(日) 22:28:25.47
>>453 使ってたら優れたデバッガと言わなかっただろね
正味、printと変わらない
458 :
デフォルトの名無しさん:2013/10/27(日) 22:29:29.59
Javascriptを使えば起業もできるって考えてあのスレをたてたのか。
テスト書いてればデバッガのお世話になることなんて殆ど無いと思うけど(例外で落ちればスタックトレースも出るし)、
どうせ使うならIDEのデバッガを使うか、コンソールが好きだとしてもpudbくらい使うべき
デバッガに拘るやつの無能率は異常
461 :
デフォルトの名無しさん:2013/10/27(日) 22:33:23.37
粒度が違うからどっちも必要だけどね
> テスト書いてればデバッガのお世話になることなんて殆ど無いと思うけど
テストはエラーを見つけるもの。
デバッガは見つけたエラーを直すもの
全然役割が違うと思いますが?
463 :
デフォルトの名無しさん:2013/10/27(日) 22:34:41.40
自分自身がデバッガそのものなので必要ありません。
デバッガで実行しながらじゃないとエラー直せないとか
どこまで無能宣言すれば気が済むの?
465 :
デフォルトの名無しさん:2013/10/27(日) 22:35:29.96
デバッガを無くせばバグは世界から消える
デバッガがないとプログラム書けない低能プログラマが死滅すれば
バグのあるコードが世界から減ると思う
>>454 優先順位の紹介のために、2 + 3 * 4 を見せられて初見で面食らう「わかりにくさ」と、実際に使用する上での「わかりにくさ」は分けてくれ。
コード上は通常、2+(3 * 4)と書く。
>>468 違った。この例だと、 (2 + 3) * 4 だな。
>>468,469
お前も間違ってるんじゃねえかwww
>>456 デバッガを使えないほうが無能。
理由は、お前が言ってないので
俺も言わないw
道具を使えない人間は
無能ってことでいいんじゃねーの?w
デバッガは不要。
なんでそんな機能作っちゃったんですかwwwww >>ほぼすべての言語
>>472 JSでなんでもできるとか書く馬鹿が無能なのは
わざわざ言われなくても分かるよ
言語設計者はテストの重要性を理解していないんだろうな
普及した言語の設計者は、言語の普及のために
無能を取り込むことの重要性を理解している
非コンパイル言語ではデバッガで初期エラーも見るしなぁ
まあそれこそSmalltalkみたいなIDE一体型言語なら間に合うのかもしれないけど
>>471 どちらにせよ、算術計算のときは意志が伝わるようにカッコで括るのが常識ということな。
初心者がデバッガ使うのは仕方ない部分もあるね
一発で完全なコードを書けないのはプロとして失格だろ
デバッガである地点の値を知りたいなら、
ブレークポイントなんか設置しないで、
pritf文を書けばいいじゃないか。
どっちが面倒か比べるまでもないね
一発で完全なコード書けるような奴がプログラミングとか勿体無すぎる
人類にとって大損失だ
そういう発想になる時点で無能なんだよね
わりとマジで
>>482 その考え方が間違っているんだよ
ある地点の値を知りたいということは、ある地点の値をある範囲に保証しなければいけないからだろ
ということはそれを保証するテストを書くべき
今はテストのテストまで書く時代だからね
デバッガは過去の遺物
printf文を入れて実行。
ここまではちゃんとした値が入っているよな?
printf文を追加して、再実行。
ここまではちゃんとした値が入っているよな?
printf文を追加して、再実行・・・
うわっ、ループの中だったからたくさんprintf文が・・・
条件付きでprintf文実行されるようにしなくちゃ
以下数回繰り返す。
VS ステップ実行
>>485 ある地点って、関数の中のある地点ですよ。
テストは関数単位でしか調べることは出来ません。
なんでprintf文を使っていると思ってるんですか?
490 :
デフォルトの名無しさん:2013/10/27(日) 22:58:34.38
どうしょうもなく追い詰められたときデバッガ使うけど大抵は凡ミスなのでコード眺めてれば自然に解決してしまうぞw
>>488 開発中に値を確認するのはプロとして失格
今自分が書いたコードが何をするか把握していない証拠
デバッガは初心者の学習補助として存在する
>>490 君には複雑なシステムを、眺めてて欲しい。
>>491 お前何と戦っているの?
値を見たほうが、問題解決するのはやってーの。
目的は問題を解決すること。
プロとかプライドとかどうでもいいよ。
デバッガはテストが失敗したときの話だろ?
そりゃデバッガが必要ないほどテスト可能な処理単位が細かく分けられてて
テストも完全に書けてればそれがもちろんベストだが
現実的じゃないね
>>489 関数程度の大きさで値を調べたいというのがそもそも間違い
その程度一発で書けないのは初心者
もしも把握できない大きさになっているのであれば関数を分割するべき
この中でprintfデバッグをしたことがない人だけが、
デバッガをことを悪く言いなさい。
>>496 一発でかけないお前は無能ってことだよな?
あれあれ? 俺はミスしないって言っちゃうの?
printデバッグすら自由にやらせてもらえない職場だってあるんだぞ
そしてテスト単位は数千ステップのバッチ
煽りじゃなく、本当にデバッガ君は無能だから
初心者じゃないなら別の仕事探すべき
以上、スクリプター同士の真剣な議論でした
>>487 そうだよね。言語的にデバッガが使いにくいから
そうやってprint文を入れたり消したりしながら
デバッグしてるけど、実際は途中で止めたほうがいいんだよね。
テスト書いていても、テスト実行の途中で止めたいことってよくあるし。
(できないから、他のテストを実行されないようにソースコード書き換えてる)
プログラムに慣れてくると直感でバーっと書いて
思い通りに動くかどうか値を出力して確認しないのか??
>>500 でも、その根拠がはっきりしないから、
それはお前の思い込みでしか無いって
話なんだがね。
505 :
デフォルトの名無しさん:2013/10/27(日) 23:07:34.15
電車の中で原因を考えてるとふとあそこが間違ってんじゃんと思いつく。
これが俺のデバッグ法。スマホとかいじってるやつはアホ。
休むことも仕事のうちです。
間違ってるって気付く一番手っ取り早い方法がプリントだろ?
>>496 関数の中で呼んでる別の関数に絶対にテスト漏れがないと言い切れるのならそうだね
ありえないけどね
509 :
デフォルトの名無しさん:2013/10/27(日) 23:09:49.26
少なくとも現在開発中のコードは全て頭の中に入っていて動作を脳内トレースできなければならない。
print文を入れてソースコード汚すのはダサい
いちいち値を確認しなきゃデバッグできないなら無能ですよって主張に対し
printとか何度も書いてるアホは何なのでしょうね?アホの中のアホですか?
print文いれてソースコードを汚くするぐらいなら
デバッガを使えば良い。
print文の目的は、ある地点での値を見ることなんだから
それはブレークポイントを設置すればいい話なのだ。
ブレークポイントで止まって、そこからステップ実行
できるから、print文を調整して再実行をする必要もないぞ。
きちんとテストを書けない雑魚がデバッガに頼るんだよね
>>511 だから何と戦ってるんだよw
バグが起きた時点で、
何が起きてるのかわかってない状態だろ。
その状態になったら、何が起きてるのか
状況を把握するのが重要だろ。
問題が起きましたが、どの地点で起きてるのかわかりません!
いま脳内でトレースしてますが、時間がかかります。
じゃプロとしてだめだろ。
そもそも関数型は値が不変なのでデバッグの必要がない
なるほど、デバッガ君は副作用満載のウンココードを書いてるってことか
想定した値と違うとき、
どういう値になったかがわかれば
問題解決するのも早いってことよくあるよね?
自演発見w
515 名前:デフォルトの名無しさん[sage] 投稿日:2013/10/27(日) 23:15:18.30
そもそも関数型は値が不変なのでデバッグの必要がない
516 名前:デフォルトの名無しさん[sage] 投稿日:2013/10/27(日) 23:15:58.48
なるほど、デバッガ君は副作用満載のウンココードを書いてるってことか
コード書いてブレークポイント設定して実行して確認するより
コードにプリント書いて実行して表示を見るほうが手間ないよ
もちろんブレークポイント書くのがいい時もあるけど
Pythonに良いデバッガが無いのは優れた特徴だということ
>>515 計算を遅延してるだけなのにそれを不変と言えるのか?
よくあるデバッグログなんかも
途中の値を見ることが
問題解決の糸口になるからなんだが。
524 :
デフォルトの名無しさん:2013/10/27(日) 23:21:22.58
開発環境は言語の一部
>>520 Pythonは初心者向け言語なのでデバッガは充実してる
標準デバッガがプリミティブなのは別の話
>>519 > コード書いてブレークポイント設定して実行して確認するより
> コードにプリント書いて実行して表示を見るほうが手間ないよ
ブレークポイントの何倍も楽だけど?
よくいるのがツール使えないからと
原始的な方法を続けてる人。
値を確認する必要があるならデバッガ使うさ
問題は、そんな必要は殆ど無いって話でさ
528 :
デフォルトの名無しさん:2013/10/27(日) 23:24:13.98
printデバッグなんてわざわざ無駄なコード書いて今度は消さないといけない
確かにテストである程度のバグを取る必要があるけどそれで対応できない場合がある
そういうときにデバッガは役に立つ
値を確認するのはプロ失格
初心者や低能はプログラムの把握能力が低いから
値を見ないと何やってんのか分からない、ということだろうね
テストをきちんと書かないからデバッガが必要になる
Visual Studioのデバッガが恐ろしいほど充実してるのを見ればわかる
デバッガは悪の根源ということ
でも、デバッガはあんまり使わないヤツでも
REPLは使うよね
じゃあ値確認しないテスト至上派は
def f(m, n):
x = a(m)
y = b(n)
return x + y
assert 5 == f(1, 2)
が失敗したとき、aとbのどっちを疑うべきかどうやって判断するの?
テスト漏れなわけだからaとbのテストケースを追加してaとbのテストをやり直すの?
使わないね
そんな実験みたいなことしてたらお客様に失礼だろう
536 :
デフォルトの名無しさん:2013/10/27(日) 23:34:16.42
JavaScriptの為の各ブラウザのインスペクターほど優秀なデバッガはない
テストを書く段階では意味が無い
テストの前の書きかけの状態でこそ活きる
値を確認する暇があるならテスト書けよっていつも思う
>>536 aがさらに別の関数を呼び出してたらその先もそのまた先も読むの?
a以下を掘って掘って全部読んで結局間違いが見つからなかったとして
間違いはbにあると自信を持って言える?
そしてそれからまたbを読むんでしょ?
そんな無駄な時間をかけてお客様に失礼だとは思わないの?
>>534 aとbがテストをパスしてるなら、まず疑うべきは「return x + y」
>>538 コードを書きかけのときは、コードスニペットを実行する機能とかREPLの方が便利だよ
でもこれも広義ではデバッガみたいなもんかな
REPLもデバッガの一部として話してるし
プリントっていうのはテストの一形態だと思う
初心者にはそうだろうね
そのレベルでお金もらうのは無謀だけど
仮説:REPLがしょぼい言語ほどデバッガが充実している
546 :
デフォルトの名無しさん:2013/10/28(月) 00:02:44.46
>>540 それってaもbもテストしてないってことだろ。テストの必要が生じた時点でやるべきだろ。
デバッガは初心者がHello World!書くときしか使い道がない
デバッガ脳は早めに卒業しないと
テスト漏れする程度の人間はテストのテストも検討するべき
そうだね
結論:バグのないプログラムを書けばデバッガもprintfもいらない
その考え方が間違っている
バグのあるプログラムを書いてはいけない
これがプロとしての最低限の常識
そのためにはどうしたらよいか
1、Javascriptを正しく学ぶ
2、テストを正しく実行する
たった二つ実践するだけでバグがなくなる
バグがないのならテストなんて要らねえじゃん
553 :
デフォルトの名無しさん:2013/10/28(月) 00:26:25.22
デバッガは害悪です。
テストに頼らないとバグのないプログラムが書けない程度の人間が
完全なテストを作れるわけがない
バグってのは9割そいつの脳の欠陥による。
俺の場合目が悪いことによる凡ミスが多い。
JSerってaltJSに対して二言めにはデバッガがー、デバッガがーって言ってるから
デバッガ無いとコード書けない低能だと思ってたけど、だいたい合ってた
釣られるなよ
デバッガの話をすると
それが出来ない言語使いが
ファビョるから面白いね。
定期的に出そう。
デバッガが害悪ならVisualStudioは普及してねーよ
デバッガが害悪なら
GDBなんてできてねーよ
gdbみたいなインターフェースのデバッガって高機能だけど
>>451みたいな馬鹿には使いこなせないから今時流行らんよな
本物のプログラマはバグを作りこまない
563 :
デフォルトの名無しさん:2013/10/28(月) 06:09:59.09
俺は天才だ一切ミスなどしないというアニメによくあるキャラ
例えばデスノートのライトとか、
ああいう性格って自分の欠点を反省せず自己修正しないから頭悪いんだよリアルでは。
おまえのことな
ミスをしないから修正などいらない
はい、論破
565 :
デフォルトの名無しさん:2013/10/28(月) 06:17:04.27
アニメ的な妄想だな。ミスをしないならそもそも人間じゃない。
566 :
デフォルトの名無しさん:2013/10/28(月) 06:21:05.83
パチンコ中毒と同じで俺は絶対負けない絶対勝てる方法を知っているとぬかす。
パチンコは負けない方法あるね
やったことない人にはわからないだろうけど
俺知ってるよ。だってパチンコやったこと無いもん。
×) プロはミスをしない
○) ミスを修正するのに値をいちいち確認するヤツは無能
どんな言語でもデバッガがなくてもプログラムは組める。
だがデバッガがあると不具合を非常に効率良く修正できる。
つまり経済的な利点がある。能力の問題ではない。
不具合って言っても、C/C++ならcore吐かせてgdbでデバッグするけど、
VM上の言語なら不具合発生した際に出力されたスタックトレースで
状況が把握できるから、デバッガいらんのよマジで
1年に数回起動するかもってレベル
572 :
デフォルトの名無しさん:2013/10/28(月) 07:28:12.18
几帳面でクソマジメで字が綺麗で見た目にも一切隙のない潔癖の女の子が
頭悪い事が多いのはなんとも可哀想になってくるんだよ。
だらしなくてバカにしか見えない部屋ぐちゃぐちゃの女の子が実は高知能だったりする・・・。
デバッガいらない勢はどういう風に学習してきたんだ?
初心者の頃からデバッガ要らずとかすげえと思うわ
デバッガは自転車の補助輪みたいなもん
>571
ゲームでキャラの位置が狂ってたり、
帳票で値が狂ってたりするとき例外出ないだろ。
むしろ例外が出ないようなバグが大半だと思う。
こりゃもし真面目に言っているとすれば
テストファースト思考の弊害だな
縛りプレイして何が楽しいのかねえ?
579 :
デフォルトの名無しさん:2013/10/28(月) 09:34:03.84
代入出来てるかテスト
加算出来てるかテスト
乗算出来てるかテスト
そんなにテスト書いてたらテストを間違うかもしれないから
テストのテストが要るな
ただ単に実用レベルのソフトを書いたことがなくてお花畑の世界で物を言ってるんだろう
>>580 再利用可能なテストのために、
そのテストコードを書くとか普通にありうる
皮肉でも何でも無いわ
開発中些細なところにそんなテスト書いてられんだろという皮肉なんですが…
>>571 それだとC/C++もスタックトレースとダンプで十分なんじゃ
585 :
デフォルトの名無しさん:2013/10/28(月) 11:05:53.98
なんでこんなに勢いあるんだ??
頭の硬い輩が暴れてるから
587 :
デフォルトの名無しさん:2013/10/28(月) 11:14:44.68
そう言えばN+に立ってたスレでも
やたらEXCEL VBA厨が頭の固いレスしてたな
互いのパンチが当たってないのにどちらも勝った気になれるから
>>589 C++でもデバッガ走らせるまでもなく
そのcoreを食わせてスタックトレースと
該当アドレス読めば十分なんじゃないかという意味
>>590 gdbは多少人間に優しい表示してくれるから…
さあ、そろそろ始まるか?
テストファーストはデバイスが絡むと悲しいほど役立たない。
テストファーストがどこでも通用すると思っている奴はデバイスを扱う処理を書かないやつだけ。
例えばゲームでも画面は出力デバイス。
シェーダーで水面の表現を書くとするだろ?
全フレームの計算後の画面データを保管しておいて比較でもするのか?
その比較用データはどう作るの?
まさか一部のピクセル処理だけテストして終わり?
計算上は正しくても見た目が変ならそれはユーザー的にはバグだぞ。
モーター処理でも割り込みのタイミングに由来する脱調の不具合があるかもしれないだろ?
それどうやってテストコード書くの?
モーターのエミュレータでも書くの?
書いたとして、タイミングが変わったら意味ないだろ?
>>593 テストファーストの適用対象は単体テストだろ
デバイスが絡まないシステムであっても、
結合テストでは(
>>593に書かれた内容と同じ理由で)
テストファーストが役立たないのは同じ
>>593 それはテストのタイミングは関係ないだろw
ファーストじゃなかったら解決するのか?
静的型って自転車の補助輪みたいなものだろ
自転車の補助輪はまだ乗れない子供が練習するためにつける
乗れるようになったら邪魔だから外す
静的型はプログラム初心者はよく間違えるから型でチェックして間違いを教えてあげる
ちゃんとプログラムを書けるようになったら型なんて邪魔なだけ
いつまでも静的型なんて書いているのはみっともないよ
ましてやプロが型とか。。。笑っちゃうよ
>>597 補助輪がほしいんだね?
いいんじゃないかな、補助輪つけたままでも
笑わないから
動的型=型を宣言しない、という思い込みしてるのが未だに居るな。
SmallTalkの場合はtypoを排除してくれるけど
それがどうかしたのかい?
>>599 大体の場合、動的型では型は宣言しないな。変数は宣言するけど。
動的型って相棒のtypoは排除してくれる?
動的型はメソッドの説明とかどういう項目をドキュメンテーションするの?
動的型ユーザーはドキュメントなんて補助輪わざわざ自分から書いたりしません。
基本書きっぱなしで疑問があればソース読めで放置。
605 :
デフォルトの名無しさん:2013/10/28(月) 21:24:16.86
Javascriptの大御所、丸山先生もデバッガを使うべきでないと言ってるよ。
テスト駆動の原則は何より大事なんだよ。
typoの判断に型は関係ないんじゃない?
だって要は未使用変数の話でしょ?
構文エラーは当たり前だし、メンバは事前には決定できないんだから
テストを書けという話はあってもデバッガを使うなと言う奴なんていないだろう…
printfデバッグしてるなら
デバッガ使っているのと同じ。
609 :
デフォルトの名無しさん:2013/10/28(月) 21:36:08.28
printfデバッグってなんすか?
初めて聞いたんだけど。
元はといえばブレークポイントかプリンとかという話だったろ
使わないって言ってるのはかなり異端だよ
>>580 テストを管理するためのライブラリのテストも必要だわ
テストっていうのは把握しきれない位の箇所の値をチェックするためにあるもので
最近のテストでは結局失敗時に値も出力するだろ?
もっとコードが原始的な段階では気になる所の値を出力させておくのが
分かりやすいし安心できるんだよ
要はテストの一形態でしかない
そりゃ値をテストしてるんだから
テストじゃないなら何なんだよw
そうだよな。
テスト実行したら値が表示されるよな。
本当に値に意味が無いのであれば表示させる必要もないはず。
つまりだ。値を見るのはデバッグに有効だということ。
615 :
デフォルトの名無しさん:2013/10/28(月) 22:01:17.98
本物のハッカーはJavascriptしか使わない。
616 :
デフォルトの名無しさん:2013/10/29(火) 02:20:34.55
型システム入門買った人居る?
欲しいけど積読になると泣ける値段だし悩む
617 :
デフォルトの名無しさん:2013/10/29(火) 02:42:07.22
>>616 買って積んでる俺で良ければなんでも答えるが⊂((・⊥・))⊃
なんだこのスレの勢いは
620 :
デフォルトの名無しさん:2013/10/29(火) 11:35:19.71
>>618 7000円の価値ある?
とりあえずプログラミング言語の基礎概念を
2回回せたら買おうかなぁと思ってるが
ない。
せいぜい1400円くらい。
>>620 7000円くらいで悩むなよ
はやくポチれ、今すぐ
同じ7000円出すのならHDDもう一本買ってRAIDにした方が価値高いと思う
静的言語って初めはなかなか型が一致しなくて
コンパイル通らなくて
イライラしたけど
例外処理覚えると
イライラ部分を例外に投げて
コンパイル通しちゃって
あとで何か都合が悪ければ
printfデバッグの時の時に
例外部分の型合わせすれば楽だとわかった
エラーを出して対処するより
エラーを飲み込んで出さない方が好みだ
だからそれがしやすいLLが好き
昔はCから始めて、必要に応じて動的な型付けのスクリプト言語も覚えるってパターンだったから良かった
今は最初に覚えるのがスクリプト言語だから、スコープも型も意識しないでぐちゃぐちゃに書くプログラマーが増えてる
ITの普及でプログラマーの数が増えて平均レベルが下がったのもあると思う
経営者的にもイニシャルの教育コストが少なくて、開発環境もフリーで揃え易いスクリプト言語を選ぶ傾向にある
とりあえず手を動かせる人間の数増やすにはそっちの方がいい
VBでポトペタやっていた人間がJSに流入しただけでしょ。
ライブラリに使われる人間が増えただけで自分で組める人が一握りなのは相変わらず。
フロントエンドエンジニア()
>>626 LL言語の普及や、関数型言語の学習などでプログラマの水準は上がったと
思っていたが違うのか。
ネットの世界だけ見てるとそう錯覚するよねえ
実際はプログラマなんて大半は情報技術に微塵も興味ない連中だよ
631 :
デフォルトの名無しさん:2013/10/29(火) 19:47:15.18
632 :
デフォルトの名無しさん:2013/10/29(火) 20:23:17.56
ボトムトップエンジニア
>>626 はK&R 1st edの頃のCを知らないな…
634 :
デフォルトの名無しさん:2013/10/29(火) 20:35:04.56
知る人はもう定年。
635 :
デフォルトの名無しさん:2013/10/29(火) 20:52:41.55
テストのテスト
つまりメタテストの事だな
636 :
デフォルトの名無しさん:2013/10/29(火) 21:17:00.75
RAD Studioには単体テストのテストっていう項目があるよね。
使ったことないけど。
>>633 K&R C における型付け(typing)の弱点は、関数引数に関する事柄だけ
逆に、ポインタ(参照型)の型付けに関しては、当時のPL/I系言語や
Pascal系言語と比較すれば、簡潔さや明解さで明らかに優れていた
という訳で、
>>633が K&R C を知ったかぶりしている事が断定できるw
638 :
デフォルトの名無しさん:2013/10/29(火) 22:11:02.30
>>629 LLや関数型言語に興味を持つようなプログラマの水準は向上したけど、
そんなのは全体からすればごく一部ということなんだろな
素人は素直にCとかから入れってことだろ
またまたご冗談を
まずはCからって新規参入を阻害したいがための
セリフだとわかった
CamlのCです
>>639 関数型はともかくLLプログラマはレベル低いよ
Cはやっておいて損はないが、一般教養程度の深さで十分
>>644 はいはいLow Level Low Level
いいえ、CASLのCです
コボ・・・
おい今ここにコボラーが来なかったか?
・・・気のせいか
651 :
デフォルトの名無しさん:2013/10/29(火) 23:05:26.64
>>651 ユーザー全体としての水準の話だったはずだろ?
全体の平均をとれば 関数型 > その他 なのはまあ間違いなくそうだよ
>>637 たしかに今でも可変長引数では注意しないとねえ
あと pascal 系の参照は C でもほしかったねえ
654 :
デフォルトの名無しさん:2013/10/29(火) 23:31:12.23
型システムの勉強と
オブジェクト指向の勉強
どっちを先にやるべきだと思う?
構造化か関数プログラミングが先
型システムって何か勉強することあるのか?
プログラム言語を作るのなら別だけど
利用者としての勉強でしょ?
改めて勉強することもないような気もするけど
でも、最近の人はしらない人もいるのかな。
C言語とかだれでも知ってて当然の言語だと思うし、
そのC言語では型システムがあるから、知ってて当然なんだよね。
でも今の人は知らんのかもね。
答えとしては、型システムも含めて
C言語をさらっとやっておけって感じかな。
LListの平均レベルが低いとしても
それは本職プログラマ以外の人も良く使える良い言語ってことでしか無いがな
>>637 おまえ何アサッテ言ってんだw
スコープの話だろw
>>637 >当時のPL/I系言語や
>Pascal系言語と比較すれば、
勝手に比較対象を変えてんじゃねーよw
煽ったら負け
少なくとも続きは他所でやってちょうだい
>>658 本職ってそんなにレベル高くないよ
もちろん上の方はキリがないが
ステレオタイプ厨には関わるな
碌な事が無い
664 :
デフォルトの名無しさん:2013/10/30(水) 01:11:57.54
どこまでやったら(下っ端でもいいので)本職として雇ってもらえるの?
Androidの案件探してこいよ
若ければ未経験でも雇ってくれるだろ
田舎じゃプログラマの新人求人なんて1件あるかないか
本職のプログラミングって仕様書を機械的にコードに変換する作業だよ
日本じゃ誰にでもできる単純作業ということになっている
いつになったら公式HobbyのRubyが最強だと皆気がつくんだろうか?
どこかのお偉いさんもコードは遊びで書くものが最高だって言っていたでしょう?
669 :
デフォルトの名無しさん:2013/10/30(水) 02:05:13.89
Androidだったら自分で作って実績作れ
つーか本職プログラマなんてぶっちゃけ書くコードのレベルは低いけど仕事が速い人間が多い
671 :
デフォルトの名無しさん:2013/10/30(水) 02:42:35.80
分かった
実績作ったら職あるんだな
信じるからな
まずは健康計算機つくるわ
672 :
デフォルトの名無しさん:2013/10/30(水) 02:43:32.32
>>667 お前の垣間見た底辺の世界だけで世の中を語られても…(´・_・`)
673 :
デフォルトの名無しさん:2013/10/30(水) 04:10:18.05
ガチのc++erが最強だろ
そんな人が存在するのかはしらんが
言語のエンジン作ってる人達はすごいと思うよ
言語のエンジンなんか情報系の大学生なら大学の講義でみんな作るぞ
ノウハウが固まりきってるから、あれこそまさに作業
自分で言語エンジンを作ってみると、言語作者ワナビーがなぜみんな動的型言語を作りたがるかがよくわかる
意外と簡単だからなw
そうやって入門書レベルで作るからまともなエラーメッセージひとつ出せないクソ言語になる
関数型使ってる奴って高学歴ばかりじゃね?
>>677 情報系の学生が作ったエンジンがクソでなくて、全部世の中で利用されたら
いったいどうなるんだ?
言語作者ワナビー(1899-2001)の話だろう
長生きなんだ。
動的型対応静的型オブジェクト志向かつ関数志向かつ集合計算エキスパートのC#
マジ最強
683 :
デフォルトの名無しさん:2013/10/30(水) 14:46:28.76
>>682 C#にまともな肩推論とパターンマッチと直和型が入ったら起こしてくれ(´・_・`)
パターンマッチで構文解析使えたらいいのに
さすがにそれはない
文字列使うのと事実上同じだ
モナド使えばできそう
tokenizer書いてトークンのリストにすればtokenはパターンマッチで構文解析できるだろ
>>683 成人してるのに顔文字使っちゃう男の人って。。。。。
知りうる限り顔文字を最も使いまくってたのは40代の既婚オッサンだった。
くっさ m9(^Д^)
くっさとかここはVIPか
ショボン系の顔文字使いまくる男が臭いのはガチ
それは非科学的
nullは型と言うより導出規則じゃね?
×は+より結合が優先するみたいな
695 :
デフォルトの名無しさん:2013/10/31(木) 00:07:22.89
生産性より使って見たいソフトを目指せよ。
それは自分で選んで設計してソフトを完成させられる奴の話だろ
そんな奴はお呼びじゃねえええ
ここは哀れなIT土方の巣窟です
>>695 使ってみたいソフトを目指すのは、
どの言語でも同じことで、
そんな部分に差は出ない。
699 :
デフォルトの名無しさん:2013/10/31(木) 13:10:29.17
ちょっと調べたら非線形のパターンマッチできる言語として
Egisonっての開発してるみたいだな
非線形パターンマッチってなに?非線形っていうと実行効率の悪いイメージしかないが。
ルート曲線かもしれない
STLでlinqが使えたら最強なのに
C++/CLIでそれっぽい事できるんじゃね
C++/CLIは拡張メソッド使えないからムリ
706 :
デフォルトの名無しさん:2013/11/03(日) 17:01:32.31
マルチだから無視しろ
708 :
デフォルトの名無しさん:2013/11/03(日) 17:04:25.77
100倍になりそうな雰囲気はあるけど本当に100倍にするにはパラダイムシフトが2つくらいいりますよ☆
710 :
デフォルトの名無しさん:2013/11/04(月) 00:02:59.32
その一つはEgisonだな
711 :
デフォルトの名無しさん:2013/11/04(月) 00:18:38.93
江ww木wwww損wwww
パラダイムシフトにはつながらないけど
パターンマッチには正規表現教徒には知られてないある秘宝が隠されているので追求する価値はあります☆
すみません。地球人の尊厳を傷つけてしまったとしたら謝ります☆ごめんなさい☆
Egisonで簡単なAIを書いてみたんだけどこれはすごいね。
Wikipediaデータを使って会話ができることを目標としているんだけど、
自身の機能について聞かれているという状況認識下で、自己紹介という
キーワードを次の目標に設定した。
そういうアルゴリズムを組み込んだわけではなく、Wikipediaのデータから
Egisonのパターンマッチが見つけ出した目標。
これはかなり驚いたよ。
使い方によっては人類の未来さえ変えてしまう威力があるように感じる。
Egisonはパターンマッチが強力なんだもんね
Egisonの歴史凄かったし
718 :
デフォルトの名無しさん:2013/11/04(月) 03:20:58.26
江木さんはスカイネットを生んでしまったのかもしれない。
>>716 Egisonのパターンマッチについて調べてからホラを吹いとくれ
Javascriptって業務系が始めて触るスクリプト言語だから
そのせいで過大評価されすぎなんだよね
var a = 1
var a = 0.1
var a = "aaaa"
var a = "a"
プログラマーが型を意識して変数に値を入れるのは生産性が落ちる
そんなのは言語にまかせればいい
> プログラマーが型を意識して変数に値を入れるのは生産性が落ちる
プログラマは常に型を意識しているのに、
そんなんで生産性が落ちるわけがないだろ。
コードを書くときは、自分でやりたいことを書いているのだから
どんな値、どんな型が入っているか把握している。
問題はコードを読むとき。
型が書いてあれば、その分コードの理解が早くなる。
724 :
デフォルトの名無しさん:2013/11/04(月) 15:14:27.77
つまり型を気にせず型で守られる型推論最強ってことですかね(´・ω・`)
スクリプト言語には向かないね
>>722 × プログラマは常に型を意識しているのに、
○ ダメなプログラマは常に型を意識しているのに、
本来の意味の型推論ならそうね。
本来の型推論とは、静的型付け言語において、
型が推論で決定できる場合に記述を省略できる機能。
型を推論して最適なコードを生成するのは
本来の型推論という用語で表す機能ではない。
>>726 どうやって型を意識しないでコーディングするのさ?
var a = 1
この1って何型ですか?
「意識してないのでわかりません」
数値型じゃないんですか?
「意識してないのでわかりません」
var a = new Hoge()
aに入ってるのは何ですか?
「意識してないのでわかりません」
Hoge型じゃないんですか?
「意識してないのでわかりません」
こんな感じでコーディングしてるのかねぇ?
730 :
デフォルトの名無しさん:2013/11/04(月) 15:25:50.47
>>730 足し算とは何かね?
俺は型を意識してないから
オブジェクトであるかもしれないんだぞ。
数値型であることは分かってるけど、intかlongかfloatかdoubleか決まって無いみたいなときに
ちゃんと総称的に書ける言語が良い静的型言語
他人が書いたコードなんて型なんて意識してたら時間の無駄だろ
例えば、Integerクラスは、Numberクラスを継承している。
みたいな話か。
>>733 型を意識しないと、そのオブジェクトに
どんなメソッドがあるかもわからないだろw
736 :
デフォルトの名無しさん:2013/11/04(月) 15:31:25.75
>>731 お前はオブジェクトなのか、よくわからない・・・
この変数に入っているのは数値型に見えるが
俺は型を意識しないようにしているんだ。
この変数に入っているものに1を加えたいんだが
どうしたらいいのだろうか。
数値型なら+1すればいいだけなんだが、
もしかしたら複素数型だったらどうしよう。
メソッドを呼ばないといけないのだろうか。
だが複素数型とも意識してはだめなんだ。
不明な型に対して+1する方法を教えて欲しい。
コードからわかることは、コメントに書かない
という優れた考え方があるけど、
これは、コメントで書く内容を
コードでかけるという前提が有る。
もしコメントで、関数の引数には○○オブジェクトが入る
などと書いているのであれば、
引数の定義に○○オブジェクトと書く方がいい。
つまり静的型付けってことだな。
>>737 parseInt(value) + 1
これでいい。
>>728 バカでなければ型なんて意識する必要ないだろw
自分が型を使ってプログラミングしているからといって
それが正しいことだと思うのはバカの証拠だなw
aが何型ってより何を指してるかが重要なんじゃないの
1の指すものが、落ちてる陰毛なのか前科なのかボーリングのアベレージなのかでだいぶ扱いも方向も違う
740 :デフォルトの名無しさん [↓] :2013/11/04(月) 15:42:43.78
>>728 バカでなければ型なんて意識する必要ないだろw
741 :デフォルトの名無しさん [↓] :2013/11/04(月) 15:44:30.21
自分が型を使ってプログラミングしているからといって
それが正しいことだと思うのはバカの証拠だなw
これがバカか・・・
>>739 parse "Int" って書いてる時点で、
Int型に変換するって意識してるじゃねーかw
>>740 答えになってないぞw
>>741 つまりお前が正しいことだと思ってるのが、馬鹿の証拠になるって話かい?
>>744 無意識にparseIntと書いたから問題ない。
足し算するときのおまじない。
>>744 言い方卑怯じゃない?
不明な型に+1じゃなくて型に合わせてそれぞれ+1ってことでしょ?
ぜんしゃなら+1でいいじゃん
>>745 自分の理解できないコードは書かない。
馬鹿ですと自爆してどうする?
それは演算子オーバーロードの仕事でparseIntとかチャンチャラおかしい
>>746 後者ならどうするのさ?
型を意識しないということは
何型かわからないんだぞ。
どっちが正解かもわからないじゃないか。
>>748 演算子をオーバーロードするときも、
ある”型”の演算子を何かの”型”の時に処理を
変えるという風に、結局型を意識するよね。
結局、変数に型を明記しないってだけで
コーディングしているうえでは
何の型の値が入っているか意識していることが
ほとんどなんだよな。
意識しないでできるのは、Object型に対する操作ぐらいか?
でもこれでも、”Object型”であるとみなしてコードを書く
という風に型を意識しちゃってるし。
>>752 何言ってんだはお前だろ。
普通はparseIntは、それをやる理由があるから書くんだよ。
paserIntだけじゃない。全てのコードはやる理由があるから書くもんだ。
その理由を説明できないわけがない。
>>753 そんなの当たり前だろ。俺は不明な型に+1する方法を教えただけだが、
お前が何言ってんのかわからない。
>>750 いや、それくらいは事前に定義されていたりライブラリで定義されてるから意識する必要はない
「意識する必要」なんてあいまいな言葉ではこの程度の議論で終了
これ以上は不毛なだけだからゴチャゴチャ言わなくていいよ
>>754 最初に言っただろ、
parseIntした時点で、Intという型を意識してるって。
それを、無意識だから意識してないって屁理屈言ったのはお前だろ。
何のためにparseIntした?当たり前だというのなら
その理由を言ってみろ。
PHPとかJSとか型やスコープを意識しないで書くスクリプト言語の経験しかないプログラマーはダメだね
>>755 > いや、それくらいは事前に定義されていたりライブラリで定義されてるから意識する必要はない
意味不明。事前に定義されているものは、すでに型がわかっているものだけ。
型を意識しないというのであれば、全ての型に対応できていないといけない。
だがそんなライブラリはありえない。
結局「対応している”型”に関しては大丈夫というふうに」
型を意識している。
>>755 > これ以上は不毛なだけだからゴチャゴチャ言わなくていいよ
あんたが、ごちゃごちゃ言わなくていいです。
このまま黙っててください。
もちろん俺はお前の指図はうけません。
最初から答えは出ているが、
型を意識しないでコーディングすることはない。
>>756 parseIntにIntという文字が含まれてるから意識してるんだっていう
屁理屈を述べたのはお前だよ。parseIntはおまじない。動的言語っていうのは
そういうふうに関数を便利に使って型を意識せずにプログラミングできるよう
設計してあって型を意識しなければ右も左もわからなくなる静的言語より生産性が高いわけ。
そりゃあ0.00000000000000000000000000000000000000000000000000000001
でも意識する余地があればあることになるんだから都合がいい話だな
0か1かで話すやつは自分の方にしか物事を見ないからな
まあ土方には向いてるんだろうけど、LLの良さが理解できないのも当然
>>761 > parseIntはおまじない
なにがおまじないだよ。
IntにしたいからparseIntしてるんだろうが。
お前Floatにしたい時もparseIntするのか?
あほちゃうか。
parseIntするときは、Int型にしたいからであり
Int型にする前は、Int型でない型である(もしくは可能性がある)
と意識しているから。
型を意識しないことはない。
parseIntする前は、Intに変換可能な型であると
意識もしているよな。
とあるライブラリの複素数型であれば
parseIntすることはないだろうし。
>>764 Intは整数って意味だよ。
型とは関係ない。数字の足し算をしますっていう便利関数だよ。
Floatってなんだバカ。
>>766 人間が意識することはない。実行環境が自動的に判定するから。
>>767 整数って型だぞ?
何いってんるんだお前。
なんだくだらね。
結局、Intが型であることを
知らなかっただけか。
無知だな。
>>769 整数とは0 とそれに 1 ずつ加えていって得られる自然数 (1, 2, 3, …)
および 1 ずつ引いていって得られる数。
小学校で習うと思うんだけど・・・。型と教わった覚えはないなあ。
型を意識しすぎてるから何でも型に思えてくるんじゃない?
それだけ毒されてるってことだよ。知らないうちに生産性を落としてるってことだよ。
動的言語使って毒抜きしたらいいと思います。
そもそも型にどんな型が代入されるかわからないコードを書くのが悪い
型なんていらねえんだよ
773 :
デフォルトの名無しさん:2013/11/04(月) 16:33:04.89
ここまで読んでわかったことは、C++はかなりいい線行ってるってことかな。
あらゆるオブジェクトに同じ演算子を適用したりメソッドを呼び出すことは可能だし、
どの関数が呼び出されるかは処理系が選択するし、動的ってそれ以上のことができるの?
774 :
デフォルトの名無しさん:2013/11/04(月) 16:33:19.03
このスレの趣旨はプログラマ自身の生産性ではなく開発環境によって得られる生産性でっせ
>>760 型を意識するのはバカだからだって
世界中の機械語プログラマに謝れ
>>770 Intだけ抜き出すからおかしな事になる。parseIntという名前の一つの関数だよ。
キクラゲのクラゲだけ抜き出して海洋生物の一種だと言ってるようなもんじゃん。頭おかしんじゃない?
>>769 じゃあ中学の先生に聞いてみろ、
数学上の整数という概念はプログラミング言語のデータ型のことですかってw
結論:
静的型至上主義者ってのは
自分がバカだから他人もバカに違いないという
バカな前提を疑うことすらしていないバカw
C系みたいな、静的型付け言語ではないもので言ってる所の
”型”しか知らないと、型理論の”型”を誤解する。
まあ、教育の問題なんだが。
整数と整数型を混同するのって、本当にバカなメタ型エラーだなw
型を意識するってのが最初は
別の型に同じような対処をしたい時、
意識しないと出来ないんじゃない?って話だったのに
段々めちゃくちゃになってきたな
特定のプログラミング言語の整数型なんて
整数という概念の1つの部分モデルに過ぎないのにw
ダックタイピングってものがあってだな
784 :
デフォルトの名無しさん:2013/11/04(月) 16:40:55.81
>>781 そういう時こそC++がいいような気がするけど違うの?
785 :
デフォルトの名無しさん:2013/11/04(月) 16:42:28.97
>>784 別に言語はそんなに関係ないと思う
問題なのは意識しないことがもう意識してるみたいな
もはやコードを書く現実とは離れた極論が飛び交ってること
一度話をリセットしようぜ
787 :
デフォルトの名無しさん:2013/11/04(月) 16:44:41.05
意識するしないという話なら、プロパティがほしい。
動的でも強い型付けだったら変数のなかの値気にする必要があるだろ
そりゃ必要のある部分もあるしない部分もあるだろww
あるかないかを語るのは下手くそのすること
もっとケースを交えて話せよ
790 :
デフォルトの名無しさん:2013/11/04(月) 16:47:48.67
実行時に呼び出せるメソッドを検索できなかったらエラーって方式は、
問題の先送りで決していい部分ではないと思うけど違う?
事前にチェックできるならしたほうがいいような気がする。
>>777 > 数学上の整数という概念はプログラミング言語のデータ型のことですかってw
馬鹿はお前だろ。
整数っていうのはな、
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
これも数学上の整数だ。
だがparseIntはこの値を扱えない。
よってparseIntのIntはプログラミング上のデータ型であることに疑いの余地はない。」
792 :
デフォルトの名無しさん:2013/11/04(月) 16:51:10.23
ちなみに俺、gotoも結構使ってるんだよね。
ステートマシンとか実装するとき。
これもgotoは良くないというんで、関数ポインタバージョンとかcaseラベルを
工夫するとか色々やってみたんだけど、goto使ったほうがいい場所はあると
思い知っただけだった。
>>792 そこでStateパターンですよ。状態ごとに型をこしらえれば保守しやすく
バグの少ないプログラムの完成ですよ。
795 :
デフォルトの名無しさん:2013/11/04(月) 16:54:21.69
CPUが整数と少数を明確に線引きする以上、まだまだ型は必要とされてると思うんだよね。
今の時点で型が必要ない仕組みって結局推論させるか性能を犠牲にするか
二択なんじゃないの?
そういう意味では推論がよさそうな気がする。
796 :
デフォルトの名無しさん:2013/11/04(月) 16:55:18.27
>>794 本気で言ってたらすごいけど、単純な信号機くらいにしか使えなさそうだね。
静的と動的はどっちも使える言語が最高なんだよ
型推論もあるとなおよし
798 :
デフォルトの名無しさん:2013/11/04(月) 16:59:55.26
799 :
デフォルトの名無しさん:2013/11/04(月) 17:00:06.08
DFAって速いということが宣伝されるじゃない。
でも俺は決定性を持つというある意味制限の部分が重要な機能になるんじゃないかと
思うんだよね。
これからの時代は。
でもテーブルが本当に大きくなりすぎて、あまり実用的にできないんだよなあ。
800 :
デフォルトの名無しさん:2013/11/04(月) 17:02:17.68
>>797 つまりC++?
>>798 状態数だけ型を作るというのが現実離れしてそう。
ラベル数の制限すら気になるのに。
>>793 だからなんなんだ?
整数=データ型なんだから
わざわざ書く必要がないだろ。
そんなこと言ったら数学上の整数とやらも
全宇宙の粒子が処理できる数で上限があるんだが
数学上の整数が上限があるとか言い出しましたよこいつw
int = データ型
整数型 = データ型
整数 = 数学上の整数、上限なし
806 :
デフォルトの名無しさん:2013/11/04(月) 17:11:57.17
>>804 それじゃその方式でre2cを実装してみてください。
すぐに無理と気づくでしょう。
>>801 書いてないってことは整数=データ型じゃないってことだし型を意識しないってことだよ。
>>807 数学の話をしているのではなく、
プログラム言語の話をしているのだから
整数=整数型という意味だ。
事実、整数型で扱える範囲しか扱えない。
>>808 整数型という書いてもない概念を持ちだされても困ります・・・
>>809 整数で扱えるはずの数を扱えない理由を説明できないのは困りますぅwww
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
だいたい、整数と認識している時点で
型を意識してるじゃないか。
JavaScriptではすべての数値を浮動小数点数で表すらしいけど
>>810 言語の仕様としてそうなってるだけだと思うけど・・・
814 :
デフォルトの名無しさん:2013/11/04(月) 17:21:05.11
結論が出ましたね。
Javascriptが最強です。
ていうか文字列をクォーテション等で囲ってる時点で型意識してんだろ
>>812 整数型ってなんだろうねw
>>815 言語でそういう決まりになってるだけだよ。
型なんて概念は必要ない。
言語でそういう型だと決まってるわけか。
やっぱり型じゃないか。
parseIntは整数といったり、
今度は浮動少数点数だといったり
面白いなw
parseIntのIntは浮動小数点数という意味なんですね?
整数ではなかったのですか?
>>815 それもそうだなw
型を意識しないでプログラミングしていることはない。
型を書かないでいるだけで、人間はここに
どんな型が入るか意識している。
反論はもうありませんよね?
>>818 parseIntのIntについて話してたのはキクラゲの人だよ。
Intは整数だー整数は整数型だーと大声で叫びまわってたけど
そもそも整数型がなかったという・・・w
stringは文字列であり、文字列型という意味は無いとかかんとかいいだせよほらw
整数型ではなくて、数値型ってことか。
どちらにしろ、型を意識していることに
違いはないけどな。
>>822 さんざんデタラメほざいていまさら方向修正ですか?
型がなんなのかよくわかってないんじゃないですか?
型というのはクラスのことですよ。
d.hatena.ne.jp/camlspotter/20131028/1382960006
これってJavaScriptの話?
こんどは、型=クラスか・・・
無知にも程がある。
>>823 最初から、コード書いている時に型を意識しているのか
いないのかって話だったと思うが?
んで、型を意識していない証拠として、
parseIntって書いているから、
(型変換してるのに)型を意識してないのだ。
これは無意識で書いたのだとか
意味不明なことをををおおおwww
>>819 先頭に「バカな無能プログラマにとっては」をつければOK
>>826 だから概念としての「整数」と
プログラミング言語での「整数型」の
区別もつかないバカが型を騙るなってのw
>>826 parseIntのIntは整数型のことだって言ってたじゃないですか。
指摘されるまで気づかなかったじゃないですか。型を意識する人の
生産性っていうのはそういう勘違いがもとで低下するんですよ。
最初からparseIntという関数をparseとIntに区別して考えず
おまじないと覚えとけばそういう間違いを犯さずにすみますから生産性があがりますよ。
これが動的言語のメリットです。
おまじないでコード書くのは初心者。
>>828 概念としての整数ってさ、
プログラミング言語では表せないよ。
プログラム言語で表せるのは
プログラム言語で定義された整数のみ。
結論出たじゃねーか。
動的言語で型書かないでいいって言ってる奴は
おまじないでコード書いている初心者。
きれいな結論が出た。
早く「型」なんていう初心者向けの概念を卒業できればいいねw
>>831 バカだなあ
整数型だって1種類じゃないぞ?
型が大事だと言ってるバカに限って型がわかってないw
>>832 おまじないで型書いてるバカといい勝負だなw
数字(Number)型
ja.wikibooks.org/wiki/JavaScript_%E5%9E%8B%E3%81%AE%E8%A7%A3%E8%AA%AC#.E6.95.B0.E5.AD.97.28Number.29.E5.9E.8B
JavaScriptの数字型は、正負の数値や小数も統一して扱えるが、無限の大きさや小ささの数値を扱えるのではなく、範囲には限りがある。
具体的には、JavaScript標準では64ビット浮動小数点型の数値の限りを扱うことになっており、
その大きさは整数なら±2の52乗の範囲を扱える。 (10進数では10の15乗程度)
いわゆるbignumだって色々な実装型があるからな
なんでおまじないで型書くんだ?
そもそも、「おまじないでparseInt書いてる」って言ったのは
parseInt書いた本人で、まさに自業自得なんだが、
誰もおまじないで型書いてるなんて誰も言ってないだろう。
だっせwww
745 名前:デフォルトの名無しさん[sage] 投稿日:2013/11/04(月) 15:48:45.27
>>744 無意識にparseIntと書いたから問題ない。
足し算するときのおまじない。
でた、匿名掲示板で「本人」認定
さすがバカだわw
型書いた方がパフォーマンスいいから
バカだから型に頼らなきゃプログラム書けないんでしょ?
なんで、parseIntなんて書いちゃったんだろうね。
intに変換したかったから?
あ、無意識だったっけwww
バカだから型を書かなきゃ速いコード書けないんでしょ?
話をすり替えようとしている人がいるみたいだけど、
コードを書く時に(型を明記していなくても)
型を意識しているかどうか。
答えはもちろん意識している。
だからこそ、文字列を""でくくったり、
parseIntなどで変換したり、===で比較したり、
型にまつわるコードを書いている。
型を意識しないでコードを書くことはないよ。
>>843 int型かどうかはどうでもいいけど整数が欲しかったんじゃないかなあ?
でも君はバカだからint型と整数の区別もつかないのかなあ?
>>845 そう思うのは君がバカだから。
君がバカなのは構わないが、他人までバカだと思わないことだなw
だってJavaScriptで整数全て表せないじゃん。
それってJavaScriptの整数は
本当の整数じゃないっってことだよね。
やっぱりint型と整数の違いも理解できていないバカだということが証明されましたw
型とはクラスのことであるって
言った奴どこに行った?w
>>850 仕方ないよ。JavaScriptで
整数すべてを表せると思ってるんだから
整数はともかく、文字列型とは違うものだって認識してるんだよね?
それって型を認識していることだと思うけど?
いいですか? parseIntはおまじないです。
+1とか数値計算するときには、
かならず使いましょう。
おまじないですから。
parseIntはおまじないです。
それ以上のものはありません。
決して数値に型変換しているわけじゃありません
おまじないなんです。
私は型は意識しません。
paserIntはおまじないで
無意識に書いたものです。
私は優秀なプロです。
シェルスクリプトでは型を意識しないけど
expr "1" + "2"
3
型は意識していなくても、
整数か文字列かは意識してるだろ?
+ とかは何?文字型?おまじない型?
「あれ?今足し算してた?完全に無意識だったわ 」
「あれ?今parseIntしてた?完全に無意識だったわ 」
>>851 ここにいるよ!反論ある?ないならいいです。
反論ですか?
C言語におけるintはクラスですか?
答え intは型であるがクラスではない。
反論ないならいいです。
>>864 intはクラスですよ。暗黙的に作られてるからプログラマが意識することがないだけで。
クラスというのはプログラムを区分するものなんです。だから型とクラスは同義なんです。
コンパイラを作ったことがない人にはわかりにくいかも知れませんね。
え? intはクラスじゃないけど?
intはクラスである。クラスは型である。
つまりintは型である。
parseIntのintは型である。
はい、狙い通りw
あれ?今論破してた?完全に無意識だったわー
えっ、C言語にクラスってあるの?
そりゃオブジェクト指向言語ならintとかはクラス(もしくは構造体)だろうけどC言語って手続き型だよね
つまり、intは型であるがクラスではない。
>>867 意識してないからわからないだけです。私はコンパイラを作った経験があって
常日頃からクラスというものを意識しているからわかるんです。
たとえば今地球の裏側でブラジル人の男性がサンバを踊っていた魅惑的な女性の
おっぱいにチュウをしたとしてもあなたはそれを知らない(わからない)から
ブラジル人の男性はチュウしてないと言うでしょう。しかし、それは事実とは
違います。事実はあなたの認識外のところにあることをわかって欲しいです。intはクラスです。いいですね。
なんか、頭悪い人が住み着いたな・・・
論破されて気が狂ったか。
生暖かいジト目で観察してるか。
>>870 呼び名が違うだけですよね。柔道は日本人しかやってない、
なぜならフランス人がやってるのはJudoだからだと言ってるようなものです。
どっちも同じだしintはクラスです。
875 :
デフォルトの名無しさん:2013/11/04(月) 18:21:31.54
プリミティブ型はクラスとして再定義するほど余裕はねぇってのがC++
でもやっぱり再定義しようかな?って状態なのがjava
typeとclass
>>875 じゃあその型をクラスを読み替えてみてくださいよ。
プリミティブクラスといっても差し支えないでしょう?
なぜならば型はクラスだからですよ。
そもそもCにはクラスという概念が存在しないっての
了解。
クラス推論
880 :
デフォルトの名無しさん:2013/11/04(月) 18:24:51.06
>>877 強引ingマイウェイは勘弁してくれよ。話が噛み合わなくなるw
いわゆるラッセルのパラドックスだね
クラスは型に含まれるが
クラスでないものも型に含まれる。
ここまではいいよね?
つまり、クラスは型であり、
型はクラスということ。
という結論が成り立つわけだ。
>>878 だからそれはフランス人が柔道をやってないって言ってるようなものって言いましたよね。
僕はさっきそれを言いました。これで2度めです。3度目がないことを祈ります。
フランス人がやってるのがJudoだとしてもそれは柔道ですよ。柔道はいまや世界的スポーツなんです。
そしてクラスもオブジェクト指向が知れ渡った現代においてはC言語にも適用可能な概念です。
885 :
デフォルトの名無しさん:2013/11/04(月) 18:28:20.17
ここはむしろ型クラスという言葉を持ち出してさらに混乱を誘うべきか。
インターフェース型っていう用語も出したら
混乱しそうだよなw
独自の概念で、矛盾ない
言語体系を構築してくれよw
どうやら今回は型=クラスに反論はないし
俺の勝ちのようだな。
クラスと型は=じゃないよw
890 :
デフォルトの名無しさん:2013/11/04(月) 18:35:44.92
インターフェース型という言葉があるなら、その範囲では型とクラスは同一視できないね。
>>887 インターフェースっていうのはクラスの一形態に過ぎないです。
インターフェースは実装を持つことができないんですよ。
定数とメソッドの宣言のみ持つことができます。
あとはクラスと同じです。インターフェース型というのは正確に言えば
二重表現ですがそうした方がわかりやすいことがあるからそう言われてるだけです。
Arakawa Riverみたいなもんです。
892 :
デフォルトの名無しさん:2013/11/04(月) 18:36:14.04
無知や無理を押し通すのが人生の命題になってる奴。
>>865 なぜプリミティブ型というか組み込み型というかいわゆる数値とか文字とか以外の、よりクラスに近い形での便利な型って普及しないんでしょうか。ボーリングのアベレージ型300以上はエラーとか技術的には問題ないですよね…?例なので需要はアレとして
コンパイラ作ったりとか全くした事ないので想像つかないんですが、その辺りのレイヤーまで行くと数値・文字辺りでもうイッパイイッパイなんでしょうか。
これだけ言語とか種類あるのに型の増えなさが不思議です
894 :
デフォルトの名無しさん:2013/11/04(月) 18:39:04.57
無知や無理を押し通すのが人生の命題になってる奴
映画やアニメのヒーローは基本的にそういうやつだしな。
そういう生き方もあるだろう。
>>889 class A {
}
A a;
と書いたときAはクラスですし、同時に型なんです。
つまりクラスは型は同じものなんですよ。ここがわかってない人が多い。
>>895 じゃあプリテミティ型の宣言みして
もちろんCとかC++の
うん。だからクラスは型に含まれるから
クラスを書いた時、それは型だが、
int aと書いた時、intは型ではあるが
クラスではないという話でしょう?
さっきにからあんたがそう言ってるじゃないか。
899 :
デフォルトの名無しさん:2013/11/04(月) 18:43:19.77
Linuxでは型とClassは同じものです
man嫁で終わる話
読んだら違った。どうしようかw
おいおい、C言語なんかのintはクラスじゃないぞ。
型だぞ何言ってるんだ。馬鹿じゃないのか?
903 :
デフォルトの名無しさん:2013/11/04(月) 18:50:02.42
伝統的なCISCにはメモリー上の表現によって同じ処理に別命令が割り当てられている場合が多い。
型があればどの命令を選択するか機械的に決定できる。
という処理系の都合が大きかったんだろうけど、今でも都合がよいのは
相変わらずだね。
>>896 そこは プリテミティ型の宣言してみてぃ だろ センスねーな
905 :
デフォルトの名無しさん:2013/11/04(月) 18:53:31.08
Stateパターンはどうなったんだろう。
純聖天使って
>>902 あります。僕がやることじゃないです。僕は十分知り尽くしてるのでいまさら
調べるまでもありません。あなたは興味があるなら自分でやるべきだと思いますけど。
それでは僕からもあなたに要求します。intがクラスであることの証拠を出してください。
なんか、口調が変わった所に
必死さがにじみ出てるよなw
909 :
デフォルトの名無しさん:2013/11/04(月) 18:57:40.86
まだ型は必要だろうなあ。
当分必要だわ。
さびしいとさみしいとどっちの読みが正しいかで女の子と言い合いになったことあるけど懐かしいな。
いやこれ釣りだろ
今日は盛況だねえ
>>908 はい僕は必死です。これで満足ですか?w
914 :
デフォルトの名無しさん:2013/11/04(月) 19:00:25.42
'1' + '1'はどうなるべきなの?
a
916 :
デフォルトの名無しさん:2013/11/04(月) 19:02:38.21
釣りというより言い返せなくなったから逆の立場に変身して頑張ってる。
そんな感じに見えるなあ。
最初はクラスと型は別って言ってたんじゃないの?
そんな気がするわ。
>>914 型によるだろうな。
数値型なら2だろうし、
文字列型なら11だろう。
>>912 だれかと思えばJavaには参照渡しがないからJavaは欠陥言語だと言って憚らないポップコーン野郎じゃないかwww
>>916 そんなこと一言も言った覚えありませんが・・・
920 :
デフォルトの名無しさん:2013/11/04(月) 19:05:26.63
Javaはプリミティブとクラスでコピーの有無を決める潔い言語だけど、
困ることないのかな?
cloneで全部解決する?
921 :
デフォルトの名無しさん:2013/11/04(月) 19:06:47.45
'1' + '1'問題がはっきりすれば見通し良くなるんじゃないの?
923 :
デフォルトの名無しさん:2013/11/04(月) 19:08:54.50
プリミティブ→コピー
クラス→参照
>>907 いや俺はCのintはクラスではないと言っているんだが
>>920 そもそもcloneでdeep-copyするかどうかが実装依存だろうが
926 :
デフォルトの名無しさん:2013/11/04(月) 19:11:06.77
Cのintもクラスに入りたがってるんだろうなあ。
でも実装の都合上無理だよねえ。
>>923 あなたがなんと言ってようが関係ありません。あなたは僕に対して
なんら僕の思想を尊重することなくずけずけと要求してきました。
今度は僕の番です。僕の要求はintがクラスであることの証拠を出してくださいということです。
クラスの定義がみんな違うから話になってない
930 :
デフォルトの名無しさん:2013/11/04(月) 19:14:27.52
実装依存のほうがいいんじゃないの?
必要と判断されればコピーすればいいし、そうでなければしなければいい。
メソッドの引数として渡される場合、型によって決まっているけど問題はないの?
という話。
>>918 ま、Java にないのはGC絡みかとは考えてはいるんだけどね、なければないでなんとかなるし、でも欲しかったね
932 :
デフォルトの名無しさん:2013/11/04(月) 19:15:56.09
1、なにがなんでも自分は正しいと自我と尊厳をかけて張り合う
2、他人の間違いを正すために全力で張り合う
3、他人の主張をねじ伏せると尊厳を否定しかねないのでうやむやにする
4、他人の間違いを放置し、バカを選別する指標として有効活用する
おまえらはどれ?
865 :デフォルトの名無しさん:2013/11/04(月) 18:14:42.58
>>864 intはクラスですよ。暗黙的に作られてるからプログラマが意識することがないだけで。
クラスというのはプログラムを区分するものなんです。だから型とクラスは同義なんです。
コンパイラを作ったことがない人にはわかりにくいかも知れませんね。
934 :
デフォルトの名無しさん:2013/11/04(月) 19:16:43.74
俺1。
>>930 二分木実装できないって言ってなかったか?wwwできるようになったのか?
コンパイラ作ったことあるけど
クラスと型は別物だぞ。
Qzはわかりやすいな。
938 :
デフォルトの名無しさん:2013/11/04(月) 19:21:32.57
>>935 Java自体使ったことがないのでわからない。
けど、GCあるので楽そうだとは思う。
LALR1ということで、CC実装するときに文法はちょっと研究対象にした。
その程度なので、純粋に質問であって、別にJavaを貶してるわけじゃないんだよね。
>>938 なら変な事は言わない方がいいよ
Javaは型指定で勝手にコピーとかないから
ここいらで、クラスと型の違いを
述べてくれないか?
クラスと型の違いがわからんのは馬鹿だけだろw
記憶クラス、とかいう
943 :
デフォルトの名無しさん:2013/11/04(月) 19:26:44.16
>>941 説明から逃げた時点で馬鹿の仲間入りだwwwww
プリミティブ型、クラス型、インターフェース型、などなど
これらを総称したものが型
だから型推論はクラス以外の型も推論できるし、
型推論であって、クラス推論ではない。
946 :
デフォルトの名無しさん:2013/11/04(月) 19:29:20.36
>>939 メソッドの引数として渡されるときプリミティブはコピーされ、クラスはオブジェクトの
参照が渡されるんじゃないの?
プリミティブってクラスじゃないけど、
型なんですかねぇ?
型以外の何かだと思いますが。
構造体は果たしてプリミティブ型なのか?っていう
昔からの命題があるよな。
プリミティブ型であればコピーされないといけないが、
構造体はコピーされない。
だいたい参照で渡すよね。
949 :
デフォルトの名無しさん:2013/11/04(月) 19:32:20.45
型だろうねえ。
950 :
デフォルトの名無しさん:2013/11/04(月) 19:33:04.36
>>944 馬鹿じゃねえかお前www説明になってねえよwwww
犬とはなんですかと聞かれてドーベルマンとー柴犬とーチワワとかーなどなど
総称したものと答えてるようなもんだろうがwwww
型が何なのかちゃんと説明しろよwwww
951 :
デフォルトの名無しさん:2013/11/04(月) 19:34:56.70
それじゃこれから型の定義を作ろう。
ISOに採択されるくらい立派な定義を。
↓がんばって。
952 :
デフォルトの名無しさん:2013/11/04(月) 19:35:36.74
アホ去ると
途端に閑散
もの悲し
953 :
デフォルトの名無しさん:2013/11/04(月) 19:37:29.73
ここはよく釣れるんだけど、雑魚しかいないから初心者向きなんだよね。
>>953 そりゃ争いをするものは低レベルだからな
>>946 そもそもJavaはObject値そのものを束縛する事ができない
呼び出し時に参照渡しするわけではない
やっているのはどちらも値の(浅い)コピー
>>951 僕の出番のようですね。型とはクラスの別称です。
カッパという水系妖怪の総元締めのような化物がいますが
地方によってガワッパやタビノヒトなどと呼ばれます。
これらはすべて同じものなんです。全部カッパのことなんです。
クラスは場所によって型と呼ばれることもあるってだけなんです。
難しく考える必要はありません。
C言語だけやってればいいじゃんって感じ
わけがわからん
>>948 >構造体はコピーされない。
させないように指定しなければコピーされるだろ
960 :
デフォルトの名無しさん:2013/11/04(月) 19:43:13.15
バカにつける薬を発見するためにおまえら頑張れや
961 :
デフォルトの名無しさん:2013/11/04(月) 19:43:18.70
>>954 似たようなもんだろうが、間違えたわクソが、どうもすみませんでした。
963 :
デフォルトの名無しさん:2013/11/04(月) 19:50:12.51
結論としては、Javascriptでいいじゃんってことだよね。
964 :
デフォルトの名無しさん:2013/11/04(月) 19:51:32.70
もしかしてJavaって本当に二分木が素直に実装できないの?
まあその通りだ
966 :
デフォルトの名無しさん:2013/11/04(月) 19:52:12.52
そうだね。JavaScript最高だよね。
967 :
デフォルトの名無しさん:2013/11/04(月) 19:53:16.66
QZはしったかとかよく書いてあるけど、実は物知りなんだなあ。
968 :
デフォルトの名無しさん:2013/11/04(月) 19:53:43.79
内戦の後に宗教が勃興するようなもんか。次はJS宗教戦争だな。
クライアントJavaScript
サーバー側Java
(中小、個人レベルはPHP)
が今のメインだね
970 :
デフォルトの名無しさん:2013/11/04(月) 19:55:16.03
>>964 簡単に実装できるが
素直にってどういう意味だ?
>>969 いや大企業はJavaじゃなくてASP.NETつかってるだろ
972 :
デフォルトの名無しさん:2013/11/04(月) 19:57:05.86
973 :
デフォルトの名無しさん:2013/11/04(月) 19:59:56.66
974 :
デフォルトの名無しさん:2013/11/04(月) 20:03:01.69
Javaもいろいろ難しいんだなあ。
やっぱりC++で充分だわ。
10秒でかける言語を俺は知ってるからな
なんなら今から書いて証明してやろうか
でも今は外出中なんだ
978 :
デフォルトの名無しさん:2013/11/04(月) 20:06:06.05
979 :
デフォルトの名無しさん:2013/11/04(月) 20:06:40.01
あ〜休みが終わる〜。
980 :
デフォルトの名無しさん:2013/11/04(月) 20:07:31.73
ちょっと待ってろw
俺が家に帰ってから10秒だからな。
現在探索中・・・
10秒で書けても10秒でレスできなきゃ意味ないよね
まあコピペなら10秒でできるけど
まずタイピング速度を10文字/秒とする。すると10秒で100文字だ。
そして二分木と書いたのだ。二分探索などではない。
10秒野郎はどうした。
さーて落ちもバレたし
ここで終わりだなw
10秒野郎はにげました。
はいてっしゅーw
Qzさんまたやっちゃったんですか?
Qzは本気で自分を褒める奴がいると思ってるんだろうか
>>986 // valueを挿入する
rootNode = insert(value, rootNode);
これよくみるけど、一番先っぽ以外は同じ値を代入しながら巻き戻っていくという意味では、なんだか嫌じゃない?
993 :
デフォルトの名無しさん:2013/11/04(月) 22:13:19.78
>>992 再帰ってそういうものだよ。
Haskellのクイックソートも許せないタイプ?
994 :
デフォルトの名無しさん:2013/11/04(月) 22:15:38.38
再帰は言語による特別なサポートがないと使えなくなっていくんじゃないだろか。
995 :
デフォルトの名無しさん:2013/11/04(月) 22:21:08.56
線形でスタックが深くなるような処理だと「使えなくなっていく」じゃなくて今現在特別なサポートがないと使えない
997 :
デフォルトの名無しさん:2013/11/04(月) 22:25:22.68
もうすでに使えないのか。
関数型は言語のサポートがあるんでしょ?
>>995 たぶん
>>996と同じ意味のつもりだった。
998 :
デフォルトの名無しさん:2013/11/04(月) 22:29:42.67
>>997 たぶんじゃなくて自分の言葉で言えやハゲ殺すぞ
999 :
デフォルトの名無しさん:2013/11/04(月) 22:33:21.45
>>998 最悪のケースをロジック上保障できないものは使えなくなっていくという意味。
1000 :
デフォルトの名無しさん:2013/11/04(月) 22:33:29.14
狂犬って髪フサフサを自信の根拠にしてるのが多いと思う。
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。