やっぱり動的言語では安全なソフトは作れない 2
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/05/28(土) 17:34:26.09前スレ
http://hibari.2ch.net/test/read.cgi/tech/1306002146/
0002デフォルトの名無しさん
2011/05/28(土) 18:12:37.72動的言語派:テスト書けば型エラーも見つかる。早く書けるからテストを書く時間も充実
Java厨:IDEのリファクタリング機能でメソッド名を変更できる
0003デフォルトの名無しさん
2011/05/28(土) 18:46:48.510004デフォルトの名無しさん
2011/05/28(土) 18:49:48.40IDEの機能が充実してるってふつーに重要なファクターだと思うけど、
ちゃかしにかかってるってことは動的派ろくに反論できないとみた。
0005デフォルトの名無しさん
2011/05/28(土) 18:52:09.66界面とかインターフェイスの話も出てきてないし。
誰も知らんのかね?
0006デフォルトの名無しさん
2011/05/28(土) 18:55:37.220007デフォルトの名無しさん
2011/05/28(土) 18:56:03.210008デフォルトの名無しさん
2011/05/28(土) 18:56:21.83IDEの補完機能とか便利だし、静的言語&IDEが強力なのは事実
でも、前スレのJava厨のメソッド名変更できるって説明は失笑もんだろ
だから静的言語派とJava厨は別枠なの
0009デフォルトの名無しさん
2011/05/28(土) 18:57:11.39おれもしらんなぁ。
Eiffelみたいなやつ?
0010デフォルトの名無しさん
2011/05/28(土) 19:03:35.00ポイントは呼出元と呼出先がそれぞれ想定する条件を明示することかね。
プログラミングなんてモジュールの組合せでしかないから、その組合せの部分で
問題なければ良いわけで。
0011デフォルトの名無しさん
2011/05/28(土) 19:19:41.19Programming by Contractの話は↓のほうがいいんでない。
「おまいら、DbC(契約による設計)ってやってる?」
http://hibari.2ch.net/test/read.cgi/tech/1265691115/
程度によるけど、最初から仕様をかっちり決めることができないってものも多い。
なんでも良いから動くものをさっさと作れとなると、変数に型無し言語のフットプリントの軽さが良く思えてしまう。
まず大まかな外的動作仕様から動くものをつくり、そこから更に厳密に仕様を練り上げていくっていうのは
けっこうありだとは思うんだけど…
でも、日本の会社の多くのプロジェクト(特に大手ベンダー)ではウォーターフォール的な工程を納期ありきで
組むから、後工程における仕様の昇華作業なんて無いんだよね。
0012デフォルトの名無しさん
2011/05/28(土) 19:20:06.29契約プログラミングの話が出てくると動的、静的言語の安全性の話に影響があるっていう意味でいってるんだよね?
Eiffelみたいな言語レベルでサポートしてるやつだとコンパイル時に呼び出し側の正確性も判定できるとかそーいう話かな?Eiffel書いた事無いのでわからんけど。
0013デフォルトの名無しさん
2011/05/28(土) 19:24:11.360014デフォルトの名無しさん
2011/05/28(土) 19:28:52.15静的/動的型付けの観点から議論するスレ
実際は、ときどき書き込むJava厨のレスに
爆釣りされるスレ
0015デフォルトの名無しさん
2011/05/28(土) 19:37:06.860016デフォルトの名無しさん
2011/05/28(土) 19:54:35.14JNI使った事ないんだろうなと思ってしまう
開発環境にリファクタリングついてるの大きいけどね
0017デフォルトの名無しさん
2011/05/28(土) 20:19:46.41俺もそう思うよ
メソッド名の変更がどうこうって話をやたらと引っ張ってる彼な
0018デフォルトの名無しさん
2011/05/28(土) 21:45:12.850019デフォルトの名無しさん
2011/05/28(土) 21:51:30.11別にJavaのコードいらないだろ。
静的型付け言語のメリット挙げていって、それは動的型付けではメリットではない
あるいはこの言語ではこのように解決しているってな流れだから。
0020デフォルトの名無しさん
2011/05/28(土) 22:13:27.42動的言語で2,3行で済むことが、10行とかかかるからな。
まぁ、これも安全性とやらとの代償か
0021デフォルトの名無しさん
2011/05/28(土) 22:16:43.450022デフォルトの名無しさん
2011/05/28(土) 22:21:25.830023デフォルトの名無しさん
2011/05/28(土) 23:51:39.180024デフォルトの名無しさん
2011/05/29(日) 02:20:52.12> でも、前スレのJava厨のメソッド名変更できるって説明は失笑もんだろ
それ言い出したのは動的厨。
普通にリファクタリングが簡単にできるという話を
動的厨がメソッドの名前変更だけに限定しただけ。
0025デフォルトの名無しさん
2011/05/29(日) 04:21:26.97その最初のレスも、確かにリファクタリングのことなんだろうが微妙に紛らわしいし。
0026デフォルトの名無しさん
2011/05/29(日) 04:28:28.27引数の追加、順番の入れ替え、複数の引数のクラス化
クラスの分割、親クラスへのメソッドの移動
小クラスへのメソッドの移動
クラスからのインターフェースの作成、
インターフェースからクラスのひな形作成
メソッド内のコードの塊を新たなメソッドに抽出
逆にメソッドをインライン展開
ありとあらゆるリファクタリングの手法を
静的言語ならIDEのサポートで効率的に
しかも確実に行える。
動的言語ならこれらを手作業でやらないといけなくなる。
0027デフォルトの名無しさん
2011/05/29(日) 04:30:56.43もちろん動的言語とIDEの相性はお世辞にも良くはないが
静的言語なら必ずIDEが充実してる、ってワケでもないし。
0028デフォルトの名無しさん
2011/05/29(日) 04:42:28.60どんなに優れたIDEでも
情報が欠けているところから
情報を作り出すことは不可能。
動的言語では実行しないとわからない情報が多すぎる。
コードを書いているときは実行前なのだ。
実行前に情報がわからないと、IDEはなにもできなくなる。
実行前にいろんな情報が確定する静的言語だからこそ
このようなサポート機能をつくることが可能になる。
0029デフォルトの名無しさん
2011/05/29(日) 07:47:48.48情報とひきかえに何かしてやるっていうのは取引であってサポートではないよね
それと、手作業と比べて具体的にどの程度効率化するのか、分からないことが多すぎる
0030デフォルトの名無しさん
2011/05/29(日) 08:42:37.67> クラスの分割、親クラスへのメソッドの移動
> 小クラスへのメソッドの移動
> メソッド内のコードの塊を新たなメソッドに抽出
この辺、変数の型付けと関係ないじゃん
0031デフォルトの名無しさん
2011/05/29(日) 08:44:41.23> クラスからのインターフェースの作成、
> インターフェースからクラスのひな形作成
インターフェースの無い言語なんて静的言語にもあるし、
そもそもduck typingのある動的言語には必要無いものだよ
0032デフォルトの名無しさん
2011/05/29(日) 08:49:07.27GUI部分は全部自動化してくれるから、事実上中身に集中すれば良いのよ?
クラスも親クラスとクラス名を指定すれば勝手に作ってくれるわ
(こっちはマクロと組み合わせないと、手で書くのと変わらないわね)
1-100迄の範囲しか受け付けない変数も、型と変数名と範囲を指定すれば、範囲を判定するコード書かなくて済むわ
(範囲外の入力があった時の処理だけで済むの)
全体のコードは動的言語よりはるかに長いけど、実際私たちが書く部分は、動的言語とそれ程大差無いと思うの
(自動補完を活用すれば、逆転してるかも?)
大部分は型が決まってるからこその、決めうちが出来る恩恵なの
0033デフォルトの名無しさん
2011/05/29(日) 09:31:56.61オブジェクト指向では名前空間と型の違いがあいまいだな
0034デフォルトの名無しさん
2011/05/29(日) 09:35:09.16・親クラスとクラス名を指定すればクラスを生成する機能
→ 動的言語でも普通に可能で、静的言語の利点ではない
・1-100までの範囲しか受け付けない変数(仮引数だよね?)
→ 静的言語か動的言語か、ましてや型システムにもあまり関係がない
(文法・開発環境のサポートがあるか否かの問題)
・コードの長さ
→ 動的言語のが短い傾向はあるが、静的言語でもマクロなクラス構成、総称型、型推論などで短くなるし
動的言語だからと言って短くできるとは限らず、動的/静的には「傾向」以上の関係がない
そんなんじゃなくて、静的型言語の利点ってのは
例えば処理Aと処理Bがあって、両方からC(x)を呼ぶときに
処理AではちゃんとC()の想定通りの型のxを渡してるのに
処理Bでは実はxに不正な型の値が入っちゃってました、とかその辺がデバッグ時でなくコンパイル時に判ることでしょ?
(呼んだ後のことに関しては動的型でもテストで大概引っかかっちゃうから、旨味はすくない)
0035デフォルトの名無しさん
2011/05/29(日) 09:38:18.22カッコで括った上に「自動補完活用すれば」って書いてる通り、型の利点に入れてないわよ?
分かりにくかったら、ごめんなさいね
0036デフォルトの名無しさん
2011/05/29(日) 09:40:36.69グローバルスコープを根とするスコープ識別子の木を構築して
現在の編集位置がそのどこに対応するかという情報を得るライブラリというのはIDEに必須だ
それがあってようやく選択した識別子に対して構文、意味論的な操作を行うことで
インスペクション、リファクタリングというIDEの支援が柔軟かつメンテしやすい形で提供できるのだから
0037デフォルトの名無しさん
2011/05/29(日) 09:52:16.88GUIとか特に
0038デフォルトの名無しさん
2011/05/29(日) 11:46:59.90というと、ほとんどってねーだろ。
最近やっとリファクタリングって言葉を覚えたばかりなのに。やってるとしても、メソッド名の
変更程度が関の山なんだよ。
0039デフォルトの名無しさん
2011/05/29(日) 11:51:01.49てめーが両方でやってみりゃ良いだろ
ウザイ
0040デフォルトの名無しさん
2011/05/29(日) 12:02:14.23おいそれとできないはずなんだよ。
影響範囲が広いリファクタリングは、それだけ影響をうけるソースが多いということで、
そんなもんを、IDEがサポートしているからと、気軽に変更されて、レポジトリにコミット
されたんじゃ、場合によっては多大なコンフリクトを招くおそれがある。
(続く)
0041デフォルトの名無しさん
2011/05/29(日) 12:04:50.35> おいそれとできないはずなんだよ。
そんなのは、リファクタリング以前の話であって、
リファクタリングのやりやすさの話とは関係ないじゃないか。
話をそらすな
(続かない)
0042デフォルトの名無しさん
2011/05/29(日) 12:07:45.26のネゴが必要になる。静的言語だから楽にできる。で済まされる話じゃないはず。
(続く)
0043デフォルトの名無しさん
2011/05/29(日) 12:11:33.09メリットなんて、それほど声高に主張するほどのものではないし、動的言語の方が、同じ処理
でもコードがコンパクトな分、リファクタリングそのものや、検証に対する負荷も軽い。
0044デフォルトの名無しさん
2011/05/29(日) 12:13:59.590045デフォルトの名無しさん
2011/05/29(日) 12:14:06.78内部構造を整理することなんだけど、
記述が冗長な言語はどんだけリファクタリングしても
一定以上簡潔な記述にはならないんだよね
0046デフォルトの名無しさん
2011/05/29(日) 12:20:41.29それはテストコードがないという理由と
コードの影響範囲がわからないという理由のせい。
0047デフォルトの名無しさん
2011/05/29(日) 12:22:13.53記述量を減らすのがリファクタリングじゃないぞ。
構造をきれいにするのが目的。
0048デフォルトの名無しさん
2011/05/29(日) 12:23:53.74極上で濃厚なナポリタンに仕上げるからな。
簡潔にしろといわれても無理。
もうそのまま納品して神様にお祈りするしかない。
メンテナンスなんてごめん被りたい。
0049デフォルトの名無しさん
2011/05/29(日) 12:25:00.29関係者が多くなってしまうのは、
コードの担当部分が正しく切り分けできていないから。
プログラム全体が一つの大きな塊になっている。
これはコード上の大きな問題でリファクタリングするべき兆候
0050デフォルトの名無しさん
2011/05/29(日) 12:25:21.78※個人の感想です
0051デフォルトの名無しさん
2011/05/29(日) 12:25:47.58走らせて見るまで分からないって、ちょっとつらい。
エディタはEmacs。
みんなどうやってるんだろ。
あと、ドット押したらメソッド一覧出てこないのも開発効率が少し悪い。
何回くぐってんだって感じ。
0052デフォルトの名無しさん
2011/05/29(日) 12:27:12.80静的動的関係無く、納品してもメンテ続くだろ
0053デフォルトの名無しさん
2011/05/29(日) 12:28:01.62引数の順番入れ替えと、複数の引数のクラス化と、メソッドのインライン展開くらいだね
あとはメソッド名の変更か
それすらprivateメソッドなら名称変更と引数入れ替えくらいできる
0054デフォルトの名無しさん
2011/05/29(日) 12:28:39.45Lisp はむしろコンパイラの方が一般的
言語仕様の中にコンパイラへの指示方法も含まれてるくらいだから
0055デフォルトの名無しさん
2011/05/29(日) 12:30:17.61ファイル全体の再評価ができなく
あんまりラピッドプログラミングって感じがしない。
俺が知らないだけか設定が悪いんだろうけど。
0056デフォルトの名無しさん
2011/05/29(日) 12:30:22.73ipython使ってるけど、変数に入ってるオブジェクトが
確定してるときはドット押したあと補完効くよ
0057デフォルトの名無しさん
2011/05/29(日) 12:30:56.30コードが加速度的に壊れていいく。
メンテ=リファクタリングを含む ・・・ 正しいメンテ
ただし、これができるのは適切なテストコードが存在し、
プログラムの構造がきれいにわかれており、
影響範囲がすぐに分かるように静的言語を使っている必要がある。
それができていないと、かたくなにリファクタリングを否定する
逆に言えば、リファクタリングを否定している人は
正しいシステム開発を行えていない。
0058デフォルトの名無しさん
2011/05/29(日) 12:31:16.58で、これだけを求めてJavaしてる場合、リファクタリングとは相性がたいへん悪い
メス入れただけで血がぷっしゃあだ
リファクタリングのまな板の上に乗せるのは前提条件がいくつもあるんだから、まずは整えないと
0059デフォルトの名無しさん
2011/05/29(日) 12:32:33.09> 影響範囲がすぐに分かるように静的言語を使っている必要がある
論理が飛躍しすぎだろ
0060デフォルトの名無しさん
2011/05/29(日) 12:34:02.18だから、リファクタリング以前の話は、別の話だから
それ持ち出してるやつ馬鹿でしょ?って話じゃね。
rubyはだめだ。rubyを使える人がいない。みたいな。
0061デフォルトの名無しさん
2011/05/29(日) 12:34:02.91ソースがざらにあるからな。
何このクソ言語って思う。
0062デフォルトの名無しさん
2011/05/29(日) 12:34:51.52× 何このクソ言語
○ 何このクソソース
いいかげんにしろよ。
0063デフォルトの名無しさん
2011/05/29(日) 12:36:10.07これただのハッシュマップでよくね?って時がある。
0064デフォルトの名無しさん
2011/05/29(日) 12:36:18.95残念ながら動的言語は影響範囲が分かりづらいんだよ。
0065デフォルトの名無しさん
2011/05/29(日) 12:37:20.70ハッシュマップは、ただの値だ。
オブジェクトはメソッドがあるもの
ハッシュマップはオブジェクト指向ではない。
0066デフォルトの名無しさん
2011/05/29(日) 12:39:15.400067デフォルトの名無しさん
2011/05/29(日) 12:39:29.91それでもハッシュではなくクラスにしていると
メソッド(キー)の値の意味などを変更したいなと思ったときに
それを使用しているコード、つまり影響があるコードが
すぐにわかるんだよ。
0068デフォルトの名無しさん
2011/05/29(日) 12:40:40.43Java+Eclipseでそれは可能。
private変数作っておけば
あとはそれに対するゲッタセッタを生成してくれる。
0069デフォルトの名無しさん
2011/05/29(日) 12:41:31.970070デフォルトの名無しさん
2011/05/29(日) 12:44:25.82それはわかるんだけど、機械がやってくれるってだけで、ソースは膨らむじゃん。
行数でコストを見積もってるならありがたいのかもしれないけど。
0071デフォルトの名無しさん
2011/05/29(日) 12:45:44.26むしろsmalltalkだろ
cの部分要らんがな
0072デフォルトの名無しさん
2011/05/29(日) 12:47:19.020073デフォルトの名無しさん
2011/05/29(日) 12:52:14.97子クラスにもメンバ変数はあるだろ、普通。
0074デフォルトの名無しさん
2011/05/29(日) 12:57:18.02今話してるのは、ゲッタセッタの嵐でうざいものだ。
0075デフォルトの名無しさん
2011/05/29(日) 13:54:50.90リファクタリングって何だったの?
>>64
なんで?
0076デフォルトの名無しさん
2011/05/29(日) 14:03:50.940077デフォルトの名無しさん
2011/05/29(日) 14:05:21.89規模がでかいのと、テストも書かないのと、意識の問題で、実際は
Java厨でリファクタリングする奴はほとんどいない。
0078デフォルトの名無しさん
2011/05/29(日) 14:08:01.23滅多に使わない機能や、実行コスト(>>42)を殆ど減らしてくれない機能は
大したメリットにならないってだけ
0079デフォルトの名無しさん
2011/05/29(日) 14:14:43.08大学や大学院でコンピュータサイエンスを学んだ人ってほとんど居ないんじゃない?
0080デフォルトの名無しさん
2011/05/29(日) 14:19:03.000081デフォルトの名無しさん
2011/05/29(日) 14:26:00.84彼は大学院を出ているが、言語開発者だ。
ただのユーザーではない。
それに、ちゃんとした経歴を持つユーザーだって中にはいることぐらい俺だって知ってる。
そんな傾向があるなぁという話をしてるんだよ。
0082デフォルトの名無しさん
2011/05/29(日) 14:28:19.77ケースバイケースで臨機応変に使ってるよ。
0083デフォルトの名無しさん
2011/05/29(日) 14:33:25.87拘りというものが無いのか
0084デフォルトの名無しさん
2011/05/29(日) 14:39:39.090085デフォルトの名無しさん
2011/05/29(日) 14:40:41.57プログラマはプログラミングするのが仕事であって、言語を宣伝するのが仕事じゃ無いからな
一つの言語に拘る必要性は無いな
0086デフォルトの名無しさん
2011/05/29(日) 14:41:43.25Java土方は、拘りとかそんなものじゃなくて、
Javaしか知らないんだろ。 これが現実。
0087デフォルトの名無しさん
2011/05/29(日) 14:41:45.350088デフォルトの名無しさん
2011/05/29(日) 14:45:01.120089デフォルトの名無しさん
2011/05/29(日) 14:49:59.21どんな釣堀なんだと
0090デフォルトの名無しさん
2011/05/29(日) 15:01:37.98でも優秀な経歴の人間が動的言語の主戦場であるWEB開発の、それもUIに近い部分なんかにわざわざ携わると思うか?
0091デフォルトの名無しさん
2011/05/29(日) 15:02:32.70そっぽを向かれたってだけだろw
0092デフォルトの名無しさん
2011/05/29(日) 15:10:03.95思わない。
動的言語の主戦場はWEB開発に限られたものではないからね。
むしろ簡単なテキスト処理や、Webのスクレイピング、データ分析、
思いついたアイデアのプロト作成、集合知プログラミングなんかは、
扱いが手軽で、ロジックに集中できる動的言語の方が便利なことが
多いよ。
0093デフォルトの名無しさん
2011/05/29(日) 15:51:48.04静的言語マンセーしてるJava厨が大好きなEclipseも元は動的言語の開発環境だったという罠
ttp://ja.wikipedia.org/wiki/VisualAge
0094デフォルトの名無しさん
2011/05/29(日) 15:52:49.85研究所や大学ではMathematicaやRはよく使われてるぞ
0095デフォルトの名無しさん
2011/05/29(日) 16:01:46.73Javaドカタ以下の人間が偉そうな顔してたりもすれば
ありえないほど優秀な人間もいる
0096デフォルトの名無しさん
2011/05/29(日) 16:04:54.490097デフォルトの名無しさん
2011/05/29(日) 16:08:21.24自分の努力で報酬や拘束時間が変わるのはすばらしい
土方だと頑張ろうが頑張るまいが薄給長時間労働
0098デフォルトの名無しさん
2011/05/29(日) 16:11:28.31プログラムの技術()って意味だとあまり参考にするべきじゃぁないよ
ど底辺な所が多いから
0099デフォルトの名無しさん
2011/05/29(日) 16:15:02.380100デフォルトの名無しさん
2011/05/29(日) 17:33:30.810101デフォルトの名無しさん
2011/05/29(日) 17:38:58.380102デフォルトの名無しさん
2011/05/29(日) 17:56:03.820103デフォルトの名無しさん
2011/05/29(日) 18:05:24.46世代的にだろうけど
某先生とかいまだにMLで売名活動がんばってるよね
0104デフォルトの名無しさん
2011/05/29(日) 19:01:20.40その言語で何するかですよね?
0105デフォルトの名無しさん
2011/05/29(日) 19:03:45.37Java土方が
0106デフォルトの名無しさん
2011/05/29(日) 19:04:10.830107デフォルトの名無しさん
2011/05/29(日) 19:05:07.220108デフォルトの名無しさん
2011/05/29(日) 19:08:38.00小説家にとって必要なのはいい鉛筆じゃない。
弘法筆を選ばずというように本物の小説家は
何を使っても良い小説を書ける。
プログラマも同じで、どんな道具を使うかにはこだわらない。
プログラマがやるのはコード設計であって、
コーダーの仕事であるコーディングじゃない。
0109デフォルトの名無しさん
2011/05/29(日) 19:11:05.080110デフォルトの名無しさん
2011/05/29(日) 19:11:44.62> 静的言語マンセーしてるJava厨が大好きなEclipseも元は動的言語の開発環境だったという罠
罠でもなんでもないわw
最終的にJavaがメインの言語として選ばれたってのは、
やっぱり静的言語じゃなきゃなって方向転換したってことだろ。
0111デフォルトの名無しさん
2011/05/29(日) 19:13:01.69より生産性上がるものを選ぶべき
道具コレクターになる必要はないが
0112デフォルトの名無しさん
2011/05/29(日) 19:16:21.920113デフォルトの名無しさん
2011/05/29(日) 19:18:01.91Javaドカタガーwww
0114デフォルトの名無しさん
2011/05/29(日) 19:18:37.08たかが鉛筆ごときで生産性が変わるとお考えか?
0115デフォルトの名無しさん
2011/05/29(日) 19:22:51.83いまだと鉛筆とシャープペンぐらいの違いだね
0116デフォルトの名無しさん
2011/05/29(日) 19:23:57.34日本の誇る三菱ハイユニを馬鹿にするのか?
あとはステッドラーとファーバーカステルとか。
0117デフォルトの名無しさん
2011/05/29(日) 19:29:14.50今ジャバラー
0118デフォルトの名無しさん
2011/05/29(日) 19:35:33.760119デフォルトの名無しさん
2011/05/29(日) 19:38:07.55ドカタガーって言うんじゃなかったっけ?
0120デフォルトの名無しさん
2011/05/29(日) 19:45:23.71いいえ
木霊です
0121デフォルトの名無しさん
2011/05/29(日) 20:20:07.51今は生産性考えて椅子にこだわる時代
椅子にこだわってない会社はうんこ
0122デフォルトの名無しさん
2011/05/29(日) 20:31:01.60いや、動的言語で新しく切り開かれた開発環境を
時代遅れのコマンドラインを使っていた愚鈍な静的言語ドカタに「施し」てやったら、
静的言語ドカタが喰い付いて
「メソッド名が簡単に変更デキルーッ!静的言語無敵ーーーーッ!!」
と大騒ぎになったというのが真相だw
0123デフォルトの名無しさん
2011/05/29(日) 20:37:25.070124デフォルトの名無しさん
2011/05/29(日) 20:53:11.51全然言語デザインの欠点じゃないから建設的な論議に繋がらないんだけど。
0125デフォルトの名無しさん
2011/05/29(日) 20:54:38.90ドカタガーさんこんばんは。
今日も木霊ですか?
0126デフォルトの名無しさん
2011/05/29(日) 20:56:16.14IDEのサポートは静的のほうが格段に上ってのを覆せないから
そこらへんしか攻めるポイントがないんだろうな。
0127デフォルトの名無しさん
2011/05/29(日) 20:57:33.00名前変更に限れば、メソッド名よりも
private変数のほうが嬉しいかな。
時々private変数と同じ名前で
ローカル変数を作ってしまうやつがいる。
こういうとき静的言語なら適切に警告してくれるし、
そういう場合に名前変更しても、問題なくうまくいく。
0128デフォルトの名無しさん
2011/05/29(日) 20:58:03.300129デフォルトの名無しさん
2011/05/29(日) 21:20:10.99Padre
sub dummy {
my $self = shift;
my $start = 1; my $end = 10; my $ret = 0;
for(my $i = $start; $i <= $end; $i++) {
$ret += $self->{step} * $i;
}
print $ret;
}
↓ forの部分を「Refactor」の「Extract Subroutine」を実行する
sub dummy {
my $self = shift;
my $start = 1; my $end = 10; my $ret = 0;
my ($i) = foo ($start, $self, $end, $ret);
print $ret;
}
sub foo {
my $start = shift;
my $self = shift;
my $end = shift;
my $ret = shift;
for(my $i = $start; $i <= $end; $i++) {
$ret += $self->{step} * $i;
}
return ($i);
}
0130デフォルトの名無しさん
2011/05/29(日) 21:22:01.890131デフォルトの名無しさん
2011/05/29(日) 21:22:51.99sub dummy {
my $self = shift;
my $start = 1; my $end = 10; my $ret = 0;
$ret = $self->foo($start, $end);
print $ret;
}
sub foo {
my $self = shift;
my $start = shift;
my $end = shift;
my $ret = shift;
for(my $i = $start; $i <= $end; $i++) {
$ret += $self->{step} * $i;
}
return $ret;
}
0132デフォルトの名無しさん
2011/05/29(日) 21:24:54.540133デフォルトの名無しさん
2011/05/29(日) 21:28:26.630134デフォルトの名無しさん
2011/05/29(日) 21:46:05.660135デフォルトの名無しさん
2011/05/29(日) 21:50:09.54> サンプル提示する前に、まず、dummyとかfooとか、何をしたいのかわからんメソッド名をリファクタリングしろや。
それは無理だ。
メソッド名のリファクタリングの機能がついてない。
それは当然だろう。
なぜならsub fooのfooをbarに名前変更したとき、
$obj->foo()という呼び出しをbarに変更していいのかわからないからだ。
$objの型が静的に決まらないから、
このfooがどのfooなのか分からない。
0136デフォルトの名無しさん
2011/05/29(日) 21:52:25.650137デフォルトの名無しさん
2011/05/29(日) 22:01:30.27http://www.kmc.gr.jp/proj/rrb/tutorial/index.html
というわけで、Ruby Refactoring Browserには以下のような制限があります。
rename-methodは、同じ名前のメソッドをすべて変更してしまう「rename-method-all」と
指定したクラスのみのメソッドの名前のみを変更してくれるが、
レシーバ付きの メソッドの面倒は見てくれない「rename-method」のどちらかしかできない。
Rubyは動的型付けな言語なので、Javaなどのような静的型付けな言語とちがって
どこからどこまでを変えれば良いかは静的には判断できないため、
このような 2つの機能を用意して、ユーザに選ばせるようにしています。
以上のことは、Ruby Refactoring Browserの基本的な設計やRubyの特徴上、
避けがたい機能制限です。開発が進んでもこのあたりの制限がなくなることはないでしょう。
orz
0138デフォルトの名無しさん
2011/05/29(日) 22:18:36.380139デフォルトの名無しさん
2011/05/29(日) 22:42:01.25それに限って言えばPerlやPythonやRubyのが上だなあ。
Perlのオブジェクトが持つ属性はハッシュの中にしかないし
Pythonのオブジェクトが持つ属性は自分の属性であってもレシーバ必須だし
Rubyのオブジェクトが持つ属性は基本的に頭に@が付く。
…まあ、Perlは原始的過ぎて代替クラスシステムに頼ったりするし
Pythonはself毎回書くの面倒だってよく叩かれるし
Rubyはprivateメソッドとローカル変数の区別が付かないっていう、別の弱点はあるんだがな。
0140デフォルトの名無しさん
2011/05/29(日) 22:44:04.61my $self = shift;
my ($start, $end) = (1, 10);
return $self->sum($start, $end);
}
sub sum {
my ($self, $start, $end) = @_;
my $sum;
map { $sum += $_ * $self->{step}; } ($start..$end);
return $sum;
}
0141デフォルトの名無しさん
2011/05/29(日) 22:46:09.560142デフォルトの名無しさん
2011/05/29(日) 23:08:52.990143デフォルトの名無しさん
2011/05/29(日) 23:17:51.40さぁ、寝るか。
0144デフォルトの名無しさん
2011/05/30(月) 00:09:57.12静になるな。
0145デフォルトの名無しさん
2011/05/30(月) 00:37:25.070146デフォルトの名無しさん
2011/05/30(月) 01:04:48.54よきかな、よきかな
0147デフォルトの名無しさん
2011/05/30(月) 01:06:36.95ドウテキガーなんだがw
0148デフォルトの名無しさん
2011/05/30(月) 01:08:27.670149デフォルトの名無しさん
2011/05/30(月) 01:13:04.10静的言語を使うんだがなあ
0150デフォルトの名無しさん
2011/05/30(月) 01:13:36.950151デフォルトの名無しさん
2011/05/30(月) 01:19:11.450152デフォルトの名無しさん
2011/05/30(月) 01:20:16.850153デフォルトの名無しさん
2011/05/30(月) 01:21:30.460154デフォルトの名無しさん
2011/05/30(月) 01:21:51.040155デフォルトの名無しさん
2011/05/30(月) 01:23:41.590156デフォルトの名無しさん
2011/05/30(月) 01:25:15.59そこにいるのは誰?w
0157デフォルトの名無しさん
2011/05/30(月) 01:26:02.770158デフォルトの名無しさん
2011/05/30(月) 01:27:39.140159デフォルトの名無しさん
2011/05/30(月) 01:37:28.310160デフォルトの名無しさん
2011/05/30(月) 02:25:42.43えっ
0161デフォルトの名無しさん
2011/05/30(月) 02:27:34.62面白くないから使うのやめた
0162デフォルトの名無しさん
2011/05/30(月) 02:29:58.87他人がどうとか仕事でやる奴はバカ。
0163デフォルトの名無しさん
2011/05/30(月) 02:39:38.970164デフォルトの名無しさん
2011/05/30(月) 03:34:19.120165デフォルトの名無しさん
2011/05/30(月) 05:02:18.79private変数への参照が動的言語だとわからないという
頭がおかしい思い込みはどこから来たんだい?
0166デフォルトの名無しさん
2011/05/30(月) 05:36:00.79それ動的型付け関係ないから。
本当にどうしようもないほどアホだな。
0167デフォルトの名無しさん
2011/05/30(月) 05:53:34.99どうせ糞みていな日本企業だろw
そんなところの風習興味ねぇから。
誰も使わねえソフトのリファクタリングとか笑かすなよ。
0168デフォルトの名無しさん
2011/05/30(月) 05:57:51.13お前はどこの洞穴に住んでるんだよw
0169デフォルトの名無しさん
2011/05/30(月) 05:58:55.80これが動的言語のリファクタリングの限界だ(キリッ
いったい何が動的言語の限界だったの?www
0170デフォルトの名無しさん
2011/05/30(月) 07:07:03.83Java厨にとっては、マウスでクリックして出来る範囲の
「リファクタリング」だけがリファクタリングだから、
そうやって人間の知性が反映されちゃダメだよ。
彼らには知性なんて無いんだから、同じことは出来ないだろ?
0171デフォルトの名無しさん
2011/05/30(月) 08:33:05.190172デフォルトの名無しさん
2011/05/30(月) 08:47:13.63ぶっ壊れ方するんだろ?
捨てちまえ、安全なんて。
0173デフォルトの名無しさん
2011/05/30(月) 09:07:23.450174デフォルトの名無しさん
2011/05/30(月) 09:12:26.010175デフォルトの名無しさん
2011/05/30(月) 09:25:18.48低性能で二酸化炭素を多く排出し、原発事故に繋がり放射能をまき散らすはめになる
0176デフォルトの名無しさん
2011/05/30(月) 09:30:13.88リファクタリング機能をIDEに付けるのは難しい
class Foo:
def foo(self):
print 'foo'
f = Foo()
f.foo()
def bar(self):
print 'bar'
Foo.foo = bar
f.foo()
こんなコードの場合、クラスFooのメソッドfooをrenameしたときに
どこまで変更するのが人にとって望ましい結果か分からない
0177デフォルトの名無しさん
2011/05/30(月) 09:34:34.40クラスがバカなPGにバカなことをさせないための檻として機能するからであり、
>>176のように簡単にJailbreakできる言語では
土方を率いて開発など無理なわけですよ
0178デフォルトの名無しさん
2011/05/30(月) 09:43:25.280179デフォルトの名無しさん
2011/05/30(月) 10:23:45.29あ、それが仕事なんだっけ
0180デフォルトの名無しさん
2011/05/30(月) 10:24:44.520181デフォルトの名無しさん
2011/05/30(月) 10:28:02.23見合ったコストでスタッフの質上げられない限り
0182デフォルトの名無しさん
2011/05/30(月) 10:30:09.010183デフォルトの名無しさん
2011/05/30(月) 10:30:42.82だから、変数名やメソッド名の変更機能は必須なんだよ。
それを奴らはリファクタリングと呼ぶ。
0184デフォルトの名無しさん
2011/05/30(月) 10:44:22.86イチョウ葉エキス
ギャバ
DHA
EPA
亜鉛
ギムネマシルベスタエキス
桑の葉エキス
烏龍茶エキス
キトサン
唐辛子
ビタミンB1
ビタミンB2
ビタミンB6
ビタミンB12
クロム酵母
桑の葉エキス
ビール酵母
カルシウム
セレン
↑俺毎日朝これだけのサプリ飲んでる。
だから静的も動的もどっちも使いこなせるんだ。
0185デフォルトの名無しさん
2011/05/30(月) 10:45:00.79わざわざ危険なPGばかり集めて「どうだ安全だろう」って
言ってることとやってることが逆じゃないか
0186デフォルトの名無しさん
2011/05/30(月) 10:46:28.16L-チロシンも飲んでる
0187デフォルトの名無しさん
2011/05/30(月) 10:52:51.980188デフォルトの名無しさん
2011/05/30(月) 10:54:22.10安全で早く安いシステムが望ましい。
Javaだから安全だ、と宣伝しておいて、
一方では素人同然だが安い人材を登用すれば、
少なくとも安くて安全(と相手に思わせる)システムはできあがる。
0189デフォルトの名無しさん
2011/05/30(月) 10:56:43.37宇宙を限定した場合の外延性だね
0190デフォルトの名無しさん
2011/05/30(月) 11:03:51.66好き好んでダメなPG集めてるわけじゃないだろwww
それしか集まらなかったんだよ
0191デフォルトの名無しさん
2011/05/30(月) 11:36:37.34静的型付けで安全性が向上するのは間違い無いだろう。馬鹿馬鹿しいけど
0192デフォルトの名無しさん
2011/05/30(月) 12:05:09.66ん?それはどう考えても逆では?
そういうことは静的ならコンパイルしたらすぐに分かるわけで、
動作する前にバグが検出できるでしょ?
でも動的は動作させてみるまでわからない。
どっちが危険かは明らか。
0193デフォルトの名無しさん
2011/05/30(月) 12:07:36.26>>192はスルーで。
0194デフォルトの名無しさん
2011/05/30(月) 12:27:08.94ただスレタイのように他のPGにまで一般化するなと
0195デフォルトの名無しさん
2011/05/30(月) 12:32:15.45名前変更による不整合をコンパイラでも検知できないわけで、コンパイルエラーが
出なかったからと、すっかり安心しきってしまうのはどうかと思うが。
0196デフォルトの名無しさん
2011/05/30(月) 12:34:31.48そういうところを扱うのは大規模開発では一部のPG
他の土方はずっとrenameしてる
0197デフォルトの名無しさん
2011/05/30(月) 12:37:07.72メソッド名の変更(綴り間違いの修正)が
土方の仕事だから
0198デフォルトの名無しさん
2011/05/30(月) 12:39:29.680199デフォルトの名無しさん
2011/05/30(月) 15:15:09.870200デフォルトの名無しさん
2011/05/30(月) 15:21:46.09そこのところちゃんと分かっとかないと。
0201デフォルトの名無しさん
2011/05/30(月) 15:47:43.030202デフォルトの名無しさん
2011/05/30(月) 15:51:01.47Javaは保守的に過ぎる感はある
まあmixinと似たようなことをやるならScalaのtraitとかになる
0203デフォルトの名無しさん
2011/05/30(月) 15:52:01.970204デフォルトの名無しさん
2011/05/30(月) 15:57:19.50/'''''' '''''':::::::\
. |(●), 、(●)、.:|
| ,,ノ(、_, )ヽ、,, .::::|
. | `-=ニ=- ' .:::::::|
\ `ニニ´ .:::::/
/`ー‐--‐‐―´\
0205デフォルトの名無しさん
2011/05/30(月) 17:22:26.72Haskellみたいな現代的な静的型を相手にしたほうがいい
俺的には、手続きベース言語なら動的型、関数型なら静的型だな
0206デフォルトの名無しさん
2011/05/30(月) 17:39:24.010207デフォルトの名無しさん
2011/05/30(月) 17:46:10.66お前はプログラマーなんだろ?
自分でやれよ。
0208デフォルトの名無しさん
2011/05/30(月) 17:51:58.430209デフォルトの名無しさん
2011/05/30(月) 17:56:54.990210デフォルトの名無しさん
2011/05/30(月) 18:11:16.07いや、やれよって言われても、俺はHaskellは使ったことないから、聞いた方がはやいかなと思って。
0211デフォルトの名無しさん
2011/05/30(月) 18:15:08.850212デフォルトの名無しさん
2011/05/30(月) 18:27:57.87ちがうだろ
リフレクションが危険なのだから、リフレクションなしの静的OOは間違っていない
0213デフォルトの名無しさん
2011/05/30(月) 18:49:26.78静的言語のオブジェクトは、予め敷かれたレールの上を走るだけの人生だ。
まぁストラテジパターンを使って振る舞いを変える程度のことはできるが、所詮、
猫の鳴き声をミャーから、ワンに変えられるという程度の話だ。
動的言語なら、オブジェクトの性質を実行時にいかようにでも変えられる。
オブジェクトが突然変異をおこしミュータントが生まれるモデリングだって可能
なわけだ。それこそ、猫をライオンに変えたり、首の長い兎にかえたり、空を飛ぶ
像に変えることだってできる。 しかし、その想像力を掻き立てる自由度の高さ故、
一歩間違えば、オブジェクトが暴走を始め、手の施しようのない状態に陥る危険性
をはらんでいる。一介の土方ごときに扱える代物ではないのだよ。
0214デフォルトの名無しさん
2011/05/30(月) 19:00:41.87動的言語がみんなオブジェクト指向だというのは間違っている
0215デフォルトの名無しさん
2011/05/30(月) 19:07:22.400216デフォルトの名無しさん
2011/05/30(月) 20:03:24.740217uy
2011/05/30(月) 22:00:21.79個人開発なら良いけど、ゴミみたいな奴がProjectにいる場合、動的言語なんて使いたくねえよ
優秀だろうとハッカーだろうと、そのProjectチームで一番レベルの低い奴に、足並みをそろえるために
JAVA等を使うんだ
チーム全員のスキルが高いなら、正直、言語はなんだっていいんだよwww チームの全員が「 いざとなれば 」 たとえ一人でも
プログラムを完成まで持っていけるレベルであるのが好ましい、
それすらかなわないゴミみたいな奴が多いから、コーディングを束縛して、変なほうへ突っ走らないように規約を沢山作らなくちゃならなくなって
その結果www バカみたいな言語で仕事しなくちゃいけなくなってんだよ・・・・・
>>176
alias使っていらなくなったら古いメソッド消せばいいだろks
0218デフォルトの名無しさん
2011/05/30(月) 22:10:31.190219uy
2011/05/30(月) 22:19:25.74ほんとだな
どんどんハードル上げちまえ
もう 知ったか野郎に落胆させられる日常は秋田
0220デフォルトの名無しさん
2011/05/30(月) 22:33:44.38> alias使っていらなくなったら古いメソッド消せばいいだろks
176の主張理解できてなくね?アホ過ぎ
0221uy
2011/05/30(月) 23:20:42.33話のフィールドが低いんだよ
もうとっくのとっくのとっくに答えでてることを
二度と話かけんな
0222デフォルトの名無しさん
2011/05/30(月) 23:29:06.03書いたコードの動作が透けて見えないと嫌
0223デフォルトの名無しさん
2011/05/30(月) 23:36:03.47動的言語 静的言語
ユニットテスト ○ ○
リファクタリングのしやすさ △ ○
IDEのコード補完対応 △ ○
エラーの早期発見 △ ○
ここまではコンセンサスを得られていると思う。
0224デフォルトの名無しさん
2011/05/31(火) 00:03:38.56> 二度と話かけんな
それは不可能。
0225デフォルトの名無しさん
2011/05/31(火) 00:08:07.21> alias使っていらなくなったら古いメソッド消せばいいだろks
ドウテキガー曰く、
そんな自分勝手にメソッド名を消せばいいとかありえない。
メソッドを変えていいかコンセンサスを得てから
Obsoleteつけて世界中の人に古いメソッドは使うなと
周知する必要があるとかうんたらかんたらと
的はずれなことを言っていたから、
そんな方法じゃだめだよ。
0226デフォルトの名無しさん
2011/05/31(火) 00:11:25.170227デフォルトの名無しさん
2011/05/31(火) 01:27:34.410228デフォルトの名無しさん
2011/05/31(火) 02:03:03.860229デフォルトの名無しさん
2011/05/31(火) 03:07:41.67断然 Haskell を使うんだがなあ
まあ JavaScript でも不満は無いけど
0230デフォルトの名無しさん
2011/05/31(火) 03:17:49.780231uy
2011/05/31(火) 03:20:57.20つうか、RubyかPerlがクライアント側で動くようにしろよーーー
さっさと言語統一
0232デフォルトの名無しさん
2011/05/31(火) 03:29:35.41Rubyなんてゴミはいらん
0233uy
2011/05/31(火) 03:41:20.48デリミタのついてる動的言語( 笑 )
0234デフォルトの名無しさん
2011/05/31(火) 05:13:09.94関数型言語覚えた後だとちょっとゴテゴテしてるなぁって感じ。
Perlは知らない。覚える気もない。
0235デフォルトの名無しさん
2011/05/31(火) 06:59:51.50うわ、自分が居るw
0236デフォルトの名無しさん
2011/05/31(火) 07:30:33.34Java土方は「インターフェースからクラスのひな形作って……」とかやって、
それで生産性が高いとか思ってるんでしょwww
ま、適材適所で言語を選べない低能は哀れだね
0237デフォルトの名無しさん
2011/05/31(火) 08:09:28.270238デフォルトの名無しさん
2011/05/31(火) 08:29:45.21インターフェースが必要なければ
普通にクラス作ればいいじゃん。
お前がアホにしか見えないんだけど。
0239デフォルトの名無しさん
2011/05/31(火) 08:35:36.80だから、オープンクラスで簡単に出来るところを
新たにクラス作って継承するんでしょ?www
それで生産性が高いとか、アホ過ぎwww
0240デフォルトの名無しさん
2011/05/31(火) 08:45:31.080241デフォルトの名無しさん
2011/05/31(火) 08:47:21.85動的言語はありえないって
でも、少人数で開発するなら動的言語も選択肢に入るし、
テスト書けば安全なプログラムは組める
お前等土方はJava使ってなよ
0242デフォルトの名無しさん
2011/05/31(火) 08:49:07.17Java土方には覚えられないかもしれないけどね
0243デフォルトの名無しさん
2011/05/31(火) 08:49:10.04存在価値なし
0244デフォルトの名無しさん
2011/05/31(火) 08:50:24.020245デフォルトの名無しさん
2011/05/31(火) 08:53:12.130246デフォルトの名無しさん
2011/05/31(火) 08:54:28.96今日も一日メソッド名変更のお仕事頑張ってね
0247デフォルトの名無しさん
2011/05/31(火) 09:01:14.630248デフォルトの名無しさん
2011/05/31(火) 09:48:31.24たしかにMonkey patchingによる変更は場当たり的だし、危険ですらある
でも、そうやって使われた機能のうち有用だと認められたものを
本家の機能として取り込んでいく
そういうのもリファクタリングっていうんだよ
リファクタリングと聞くとメソッド名変更を思い浮かぶ人には
難しい話かもしれないけどね
0249デフォルトの名無しさん
2011/05/31(火) 09:59:50.97取り込むもなにもなかろうもん
0250デフォルトの名無しさん
2011/05/31(火) 10:03:00.63有名どころではRubyのSymbol#to_proc
0251デフォルトの名無しさん
2011/05/31(火) 13:02:34.850252デフォルトの名無しさん
2011/05/31(火) 17:46:52.71よほど巨大なクラスを作ってるんだろうな
いくらクラス数が多くたって
個々のクラスを適度ななサイズにして
十分な量のテストコード書けば
動的型でも十分コントロールできるし
巨大クラスな静的型よりよほど安全だ
0253デフォルトの名無しさん
2011/05/31(火) 17:50:29.360254デフォルトの名無しさん
2011/05/31(火) 17:52:02.030255uy
2011/05/31(火) 17:52:32.53Perlすら知らないでRuby語っちゃうの?
それRubyがおぼえられなかったの間違いじゃね
Perl6はRubyとは別ベクトルに進んでるけど、
特殊変数まみれにする事でPerlは開発効率を高める言語だから
その一点においてはRubyどころか、関数型(笑)とか余裕で超えてるし
一気に突き放す可能性もある
その特殊変数を覚えて使いこなせればの話なんだけどな
Perlはやっぱり正規表現の考えの延長上にある言語だと思う
暗黙の了解を、どんどん増やしていって、プログラマ自身をPerlのフィールドに引き込む言語
たいしてRubyを含め、Perl以外の言語は、自分のフィールドに言語を引き込む
だからいってしまえば、Perl以外の言語っていうのは再発明を積極的に行っちゃう言語とも言えるんだよ ほんの小さな事だけど
無駄な変数宣言が多くなってしまうからね それは = 再発明
$記号がSHIFT押さなきゃ打てないとか、みにくいとか、そんなのレジストリ変更するとかフォント変更すれば
どうにでもなる問題だからな・・・・未来はあると思ってる
0256デフォルトの名無しさん
2011/05/31(火) 17:58:33.260257デフォルトの名無しさん
2011/05/31(火) 18:23:47.13処理系がバギーだからトータルじゃPythonのほうがまだ安全じゃね?
スレッドとか低レベルIOとかグッチャグチャだぜ?
0258uy
2011/05/31(火) 18:33:13.73RubyとかJAVAすら扱えなくて、そっち方面に逃げたバカだろ
相手にしなくていい どうせ1年持たずにプログラミングの世界を去る人間
0259デフォルトの名無しさん
2011/05/31(火) 18:37:17.880260デフォルトの名無しさん
2011/05/31(火) 18:41:01.20kwsk
0261デフォルトの名無しさん
2011/05/31(火) 18:44:05.52可読性落ち過ぎだろ
関数型言語は数学の視点に立てば、決して可読性が落ちる物じゃ無い
(むしろ読みやすい)
0262デフォルトの名無しさん
2011/05/31(火) 18:51:27.420263デフォルトの名無しさん
2011/05/31(火) 18:54:47.95ひょっとしてHaskellのこと知らないのにゴミ言語とか言ったの?
実はJavaしか知らないとか?
0264デフォルトの名無しさん
2011/05/31(火) 19:01:10.45ええええええええ!?
基礎くらいは分かってからディスれよ。。。
GUI以外は、本当に分かり易いんだぜ?
リストとリストの構文糖衣
基本的な演算子
これだけ覚えれば、大抵の関数は自作出来るんだぞ
これほど内部処理の書き方が楽な言語有るかよ
0265デフォルトの名無しさん
2011/05/31(火) 19:04:46.010266uy
2011/05/31(火) 19:07:05.13(むしろ読みやすい)
(キリッ)
http://perlgeek.de/en/article/5-to-6
つうかPerlも多重継承できるようになってるのか、Ruby涙目
0267デフォルトの名無しさん
2011/05/31(火) 19:07:56.69所詮、おもちゃ言語
0268デフォルトの名無しさん
2011/05/31(火) 19:10:54.370269デフォルトの名無しさん
2011/05/31(火) 19:15:18.61ネイティブスレッドの管理と非同期IO
0270uy
2011/05/31(火) 19:24:58.71いる 欲しい
普通に言語内で行えるパターンが多いに越した事は無い
多重継承ないせいでmoduleを介して多重継承しなくちゃいけなくなってる
結局module includeだって名前衝突するんだから多重継承とかわらない
Perlの特殊変数も欲しいし、あれがないせいで未だにPerlに劣る部分が出てるかと
0271デフォルトの名無しさん
2011/05/31(火) 19:42:49.600272uy
2011/05/31(火) 19:45:32.89俺が間違っていタセロ
0273デフォルトの名無しさん
2011/05/31(火) 19:49:15.86計算量を見積もるのは不可能に近い
沢山計算するようなプログラムをHaskellで組むと
すげー遅いんだけどどこが遅いか分からん、
みたいになる(少なくとも俺は)
0274デフォルトの名無しさん
2011/05/31(火) 19:52:41.71Rubyにあった方がいいPerlの特殊変数って何がある?
0275デフォルトの名無しさん
2011/05/31(火) 19:58:47.54具体的に
0276uy
2011/05/31(火) 20:00:37.73それあれば
[1,2,3,].each do
print $_
end
とかかけるし
けど$はあんまり好きじゃないから
[1,2,3,].each do
print each_self.n
end
こんなんになるのがrubyらしく見える
0277デフォルトの名無しさん
2011/05/31(火) 20:04:15.220278デフォルトの名無しさん
2011/05/31(火) 20:07:44.60haskell的には分からなくて良い
遅いのは、そもそもアルゴリズムが遅いんだ。みたいな風潮?
0279uy
2011/05/31(火) 20:08:56.000280デフォルトの名無しさん
2011/05/31(火) 20:10:47.87変数「$_」は、省略された場合のデフォルト変数として使われることがあります。
Ruby の場合は、メソッド/関数形式の場合、次の処理で利用されています。
また、文字列の比較などのデフォルトの対象になります。
なんでもかんでも「$_」をデフォルト変数/引数として使用するというわけではありません。
gets
readline
split
scan
chop
chop!
chomp
chomp!
gsub
gsub!
sub
sub!
0281uy
2011/05/31(火) 20:12:47.66はい
0282デフォルトの名無しさん
2011/05/31(火) 20:13:53.71ん?関数型言語は副作用考えなくて良いから
計算量を見積もるのはむしろやり安いぞ。
ステップを見積もるのは難しいが。
0283デフォルトの名無しさん
2011/05/31(火) 20:18:00.860284uy
2011/05/31(火) 20:19:25.31プログラム言語としての統一性のためにあんな事になってる感じだからな
人がそれ読めるようになるといいんだけど、その進化をするまでに少し時間がかかる
0285デフォルトの名無しさん
2011/05/31(火) 20:21:27.60haskellにおいでませ^^
0286デフォルトの名無しさん
2011/05/31(火) 20:22:10.700287デフォルトの名無しさん
2011/05/31(火) 20:26:05.640288デフォルトの名無しさん
2011/05/31(火) 20:32:39.89その正体は体だぞ実数だぞ
0289デフォルトの名無しさん
2011/05/31(火) 20:32:55.73書けるさw
むしろlisp系が特殊なだけだろ
0290デフォルトの名無しさん
2011/05/31(火) 20:36:56.58優先順位はみんな一緒♪
ちゃんとカッコを付けないと、大変
(全部平等なオブジェクトとして見てるのかね?)
0291デフォルトの名無しさん
2011/05/31(火) 20:43:38.14演算子は全て関数だぞ。
(+) :: (Num a) => a -> a -> a
という具合。
他言語ユーザーから余り理解されていないが、
Haskellのコアはかなりシンプル。
0292デフォルトの名無しさん
2011/05/31(火) 20:45:14.51結局は俺がアホであることに帰着されるが、
Debug.Trace でどこでどのくらい計算が廻ってるのか
printf デバッグしたのは悲しい思い出
0293デフォルトの名無しさん
2011/05/31(火) 20:52:04.91それとも動的言語か静的言語かのスレですか
0294デフォルトの名無しさん
2011/05/31(火) 20:53:01.50仕事では使う場面ないよなぁ、普通は。
0295デフォルトの名無しさん
2011/05/31(火) 20:54:02.24Javaかそれ以外の言語かのスレです。
0296デフォルトの名無しさん
2011/05/31(火) 20:55:08.55使おうと思ったら使えるだろ。
下っ端サラリーマンには難しいかもしれんがな。
0297デフォルトの名無しさん
2011/05/31(火) 21:00:37.460298デフォルトの名無しさん
2011/05/31(火) 21:04:48.99サーバーなんかはI/Oの高速さが重要だから
Cはちょっと低機能だしJavaはI/Oが遅いし、っていう時に
HaskellやOCamlを使うのは理にかなっているよ。
0299デフォルトの名無しさん
2011/05/31(火) 21:11:02.22おれなら、C++かPythonを選択する。
0300デフォルトの名無しさん
2011/05/31(火) 21:13:59.410301デフォルトの名無しさん
2011/05/31(火) 21:16:53.130302デフォルトの名無しさん
2011/05/31(火) 21:17:55.110303デフォルトの名無しさん
2011/05/31(火) 21:18:13.620304デフォルトの名無しさん
2011/05/31(火) 21:20:28.77C++もCと同じぐらい低機能。
クラスとかSTLとかBOOSTとかがあるだけのC。
Javaよりさらに遅いPythonを使うのはバカげてる。
0305デフォルトの名無しさん
2011/05/31(火) 21:23:01.250306デフォルトの名無しさん
2011/05/31(火) 21:29:29.140307デフォルトの名無しさん
2011/05/31(火) 21:31:49.12現状のPythonコンパイラは静的言語だよ。
動的言語のコンパイラを作るのは難しいからね。
0308デフォルトの名無しさん
2011/05/31(火) 21:36:22.090309デフォルトの名無しさん
2011/05/31(火) 22:12:05.12おあとがよろしいようで _
∧_∧ .| |
(´‘J‘`) |三|
cく_>ycく__) |凡|
(___,,_,,___,,_) ∬ |_|
彡※※※※ミ 旦. ┴
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ どっ!! / \ ワハハ! /
\ / \ /
∧∧ ∧∧ ∧ ∧ ∧ ∧ ∧ ∧
( ) ( ) ,,)( )( )
0310デフォルトの名無しさん
2011/05/31(火) 22:21:49.790312デフォルトの名無しさん
2011/05/31(火) 22:41:53.56ハイハイ、乙
C++で商用ネトゲのゲームサーバ実装したことあるからね。
0313uy
2011/05/31(火) 22:46:09.66なるほど・・・・ PerlどころかRubyどころかC++すら使えないから
Haskell程度のゴミ言語SUGEEしてるわけかwwww
>>312
??
ああ・・・なんだ、ただのガキだった・・・・ もういいやこういうの秋田市
0314デフォルトの名無しさん
2011/05/31(火) 23:30:17.36何が出来るとかできないとか、学歴がどうとかこうとか、どんな経歴があるかとか、
そんな情報は何の役にも立たないのだから、
いちいち相手にしてる奴はただのバカ
0315uy
2011/05/31(火) 23:44:40.202chっていう遊びそのものが無駄だ
はりぼて知識でもいいので、俺の前でボロ出さないでくれたらそれでいいよ
0316デフォルトの名無しさん
2011/05/31(火) 23:55:40.37真実だという証拠も、そうでない証拠もない。
2chはそういうところだ。
だから、2chで出していいのはソースが存在する情報だけなんだよ。
0317uy
2011/06/01(水) 00:32:31.060318デフォルトの名無しさん
2011/06/01(水) 00:55:13.390319デフォルトの名無しさん
2011/06/01(水) 00:58:50.220320uy
2011/06/01(水) 01:15:29.70なんでも
いい
0321デフォルトの名無しさん
2011/06/01(水) 04:06:17.61俺はニートじゃないからもう寝るよ。
0322デフォルトの名無しさん
2011/06/01(水) 08:47:31.55でも「標準構成でやれること」はその割に少なくて、外部ライブラリに頼る部分が多い
なので「低機能」という言葉の定義によって話が変わってくると思う
0323デフォルトの名無しさん
2011/06/01(水) 10:22:22.79とか思ってそうな奴がいるのはウザいなぁ。
最近オブジェクト指向を覚えたばかりのお猿さんなのかな?
関数型プログラミングも覚えれば別の見地も開けるだろうに。
0324デフォルトの名無しさん
2011/06/01(水) 10:28:33.580325デフォルトの名無しさん
2011/06/01(水) 10:37:27.99関数型言語はまだ発展段階。
体系的にプログラミングする手法もまだ確立されていないだろ?
だから研究やホビー以外で使うのをためらう人が多いんだよ。
0326デフォルトの名無しさん
2011/06/01(水) 10:54:24.16ホビー、ホビーってしたり顔するけど
単に周りが使ってるかどうかで判断してるだけの
周回遅れの技術音痴プログラマばっかり。
おまえのコードがプロダクションレベルじゃねぇぞ。
0327デフォルトの名無しさん
2011/06/01(水) 10:57:29.74ためらうもなにも、実際に20年以上前から関数型言語が大規模業務で使われているわけだが。
0328デフォルトの名無しさん
2011/06/01(水) 11:03:54.56関数型+動的型付けだったか
0329デフォルトの名無しさん
2011/06/01(水) 11:08:26.32Exciteの株式システムはOCamlで実装されてる。
他の証券会社でLISPで実装してるところがあったような。
0330デフォルトの名無しさん
2011/06/01(水) 11:19:05.38クラスをクロージャに置きかえるだけの手法なら完全に確立している。
メソッド名が一向に確立しないクラスとは違って無名関数は名前で悩まない。
0331デフォルトの名無しさん
2011/06/01(水) 11:22:54.65んー、やっぱそんなもんなのか
0332デフォルトの名無しさん
2011/06/01(水) 11:23:32.530333デフォルトの名無しさん
2011/06/01(水) 11:25:56.06ダメなPGには延々メソッド名変換させておくとか
そういう方法論のことなんだろ?
そりゃ関数型言語じゃ確立してないだろうな
0334デフォルトの名無しさん
2011/06/01(水) 11:27:28.81Prologすげえええ
0335デフォルトの名無しさん
2011/06/01(水) 12:28:07.54関数型じゃなくて論理型言語だけど
0336デフォルトの名無しさん
2011/06/01(水) 12:41:08.36そしてZ言語からほとんどそのままPrologに落とした。
今でも形式手法の成果として挙げられる。
0337デフォルトの名無しさん
2011/06/01(水) 12:43:12.930338デフォルトの名無しさん
2011/06/01(水) 12:46:12.50そうじゃなくて目的に対しどうだったら安全かが大事
0339デフォルトの名無しさん
2011/06/01(水) 12:48:44.770340デフォルトの名無しさん
2011/06/01(水) 12:49:34.00危険であると仮定したらFalseが証明できるとかそういう「天と地がひっくり返らなければ」レベルの安全?
0341デフォルトの名無しさん
2011/06/01(水) 14:48:50.27自分の身は自己責任で守ってください。我々の住むこの世界は
常に危険と隣り合わせだということを肝に銘じでおくべきでしょう。
しかしあまり神経質になっても精神的な負担になってしまいます。
どうしても心配だという方は、ヘルメットと防弾チョッキを常時身に
つけるなどされれば気休めになるのではないでしょうか。
また、最近では、さらに放射線防護服も着用されれば、よりいっそう
安心感が増すことでしょう。
これらは昔は入手困難なものもありましたが、今では通販等でも
手軽に手に入れることが可能です。
繰り返しますが、自分の身は自分で守るしかありません。言語が
静的だろうが、動的だろうが、そんなことは関係ないのです。
0342デフォルトの名無しさん
2011/06/01(水) 16:06:29.810343デフォルトの名無しさん
2011/06/01(水) 17:00:38.720344デフォルトの名無しさん
2011/06/01(水) 17:05:23.66それは標準ライブラリとしてでもいいのかね?
0345デフォルトの名無しさん
2011/06/01(水) 19:02:37.340346デフォルトの名無しさん
2011/06/01(水) 19:56:24.260347デフォルトの名無しさん
2011/06/01(水) 21:15:16.98普通はZ記法と呼ばんか?
0348デフォルトの名無しさん
2011/06/01(水) 22:18:15.74> JRの鉄道情報システムはProlog
ソースきぼん
0349デフォルトの名無しさん
2011/06/02(木) 00:23:12.08おれはどっちもどっちだと思う
しかしここにJavaを混ぜればJavaだと思う。
ちなみに普段はC++で仕事してる。
0350デフォルトの名無しさん
2011/06/02(木) 00:31:59.26その計画に携わった先生が言ってた
0351デフォルトの名無しさん
2011/06/02(木) 00:39:00.880352デフォルトの名無しさん
2011/06/02(木) 03:17:14.40やっぱり静的言語がいいと思った。
0353デフォルトの名無しさん
2011/06/02(木) 04:59:38.96EmacsでC-c C-k でコンパイル?すれば
すぐスペルミス分かっていいよ。
0354デフォルトの名無しさん
2011/06/02(木) 12:36:00.39それはスペルチェックでは
0355デフォルトの名無しさん
2011/06/02(木) 17:40:29.37ちゃんと作ればSmalltalkのほうが遥かに安全だ
0356デフォルトの名無しさん
2011/06/02(木) 17:43:55.16なんで閉じた環境でしか動かない終わった言語を今更持ち出すのか、そっちの方を問いたい。
0357デフォルトの名無しさん
2011/06/02(木) 17:44:38.76ム板できたての頃にこんな罵り合いを見たことがある。
0358デフォルトの名無しさん
2011/06/02(木) 17:48:59.870359デフォルトの名無しさん
2011/06/02(木) 19:29:18.910360デフォルトの名無しさん
2011/06/02(木) 19:33:16.04おまえ、今時のSmalltalk知らないだろ
よくいるよな、20年前のSmalltalkしか知らない老害と
自分で使ってみることすらせず老害の言葉を受け売りするガキw
0361デフォルトの名無しさん
2011/06/02(木) 19:59:38.32多言語と比べたベンチマークはある?
0362デフォルトの名無しさん
2011/06/02(木) 20:43:46.890363デフォルトの名無しさん
2011/06/02(木) 20:44:59.16どっちも閉鎖環境だけど。
0364デフォルトの名無しさん
2011/06/02(木) 20:48:48.73リッチな仮想マシンというか
仮想環境というか
継続的環境というか
0365デフォルトの名無しさん
2011/06/02(木) 20:51:13.84スタンドアロンで動くソフトを配布したりするのは難しくなるよね。
0366デフォルトの名無しさん
2011/06/02(木) 20:53:27.160367デフォルトの名無しさん
2011/06/02(木) 20:57:02.68まず、見た目が格好悪い。
ユーザーが使い方がわからない。
そして遅い。
0368デフォルトの名無しさん
2011/06/02(木) 20:59:02.45作り方次第
0369デフォルトの名無しさん
2011/06/02(木) 21:03:39.19smalltalkはpythonやrubyなどの他のスクリプト言語より特殊だからね。
使い手も多くないし、見た目が良くてユーザビリティに優れて初心者でも分かりやすくて早いアプリを作るのは難しいんじゃないかなぁ。
0370デフォルトの名無しさん
2011/06/02(木) 21:05:04.66python遅いし
0371デフォルトの名無しさん
2011/06/02(木) 21:05:12.84トイ言語としては優秀なんじゃない?
0372デフォルトの名無しさん
2011/06/02(木) 21:15:57.91識別子を定義するときに間違えても警告してくれんの?
ま、英語の綴り間違いとかアホっぽいからどうでもいいけど
0373デフォルトの名無しさん
2011/06/02(木) 21:23:24.67早いことが良いかどうかはものによる。
0374デフォルトの名無しさん
2011/06/02(木) 21:28:50.11と言われるぞ。
作りやすさってもんがある。
0375デフォルトの名無しさん
2011/06/02(木) 21:33:23.81Zはプログラミング言語じゃないだろ。
0376デフォルトの名無しさん
2011/06/02(木) 21:34:42.69プログラミング言語ではないが仕様記述言語だな。
0377デフォルトの名無しさん
2011/06/02(木) 22:29:11.13つhttp://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=vw&lang2=java
0378デフォルトの名無しさん
2011/06/03(金) 00:11:11.51マンデブロに到っては37倍!?
遅ぇー…。
0379デフォルトの名無しさん
2011/06/03(金) 00:14:42.060380デフォルトの名無しさん
2011/06/03(金) 00:18:13.10いかがわしい集合だなあ
0381デフォルトの名無しさん
2011/06/03(金) 00:18:57.57重要なのは処理速度よりもI/Oの速度になってくる。
それにpythonはcgiとかGAEとかいろいろ組み込んで使えるし、
そういう使い方ができるからこそスケールアウトとかもやりやすい。
VisualWorksはちょっとそういう使い方はできないっぽいよね。
自分でスケールアウトするように作らなきゃいけなくなるから手間だよね。
0382デフォルトの名無しさん
2011/06/03(金) 00:20:02.31そう思うならsmalltalkで軽いマンデルブロのコード書いて証明してみな。
0383デフォルトの名無しさん
2011/06/03(金) 00:21:33.12ダメだったじゃん...。GAEはGoのサポートを始めたね。
一方FacebookはPHPをC++にトランスレートして高速化した。
0384デフォルトの名無しさん
2011/06/03(金) 00:30:21.812chもCで書かれてるね。
まぁ、当然PythonやPHPのようなスクリプト言語とC/C++では
I/Oのスピードが雲泥の差だから仕方ない。
ある程度サービスの形が定まったなら、C/C++に切り替えても良いと思う。
0385デフォルトの名無しさん
2011/06/03(金) 00:36:04.582chは初めてか?力抜けよ
0386デフォルトの名無しさん
2011/06/03(金) 00:38:35.560387デフォルトの名無しさん
2011/06/03(金) 00:44:40.41bzrもCで書き換えて欲しいな
pythonは遅くてかなわん...
0388デフォルトの名無しさん
2011/06/03(金) 01:41:54.330389デフォルトの名無しさん
2011/06/03(金) 01:45:59.50python is slow.
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=python3&lang2=sbcl
0390デフォルトの名無しさん
2011/06/03(金) 02:09:17.730391デフォルトの名無しさん
2011/06/03(金) 02:13:01.53C gcc 3.4.4 2.3 秒
Java Java 1.6.0 (HotSpot VM) 4.2 秒
Smalltalk VisualWorks7.7nc 10.6 秒
Smalltalk Squeak4.1 (Cog VM) 26.5 秒
Common Lisp SBCL 1.0.37 29.4 秒
Ruby Ruby1.9.2 128.5 秒
Python Python 3.1.2 475.9 秒
Scheme Gauche 0.9 550.2 秒
0392デフォルトの名無しさん
2011/06/03(金) 02:17:18.490393デフォルトの名無しさん
2011/06/03(金) 05:11:27.79> そういう環境だと、Apacheと併用したり、
ぽか〜ん
こいつバカじゃん
0394デフォルトの名無しさん
2011/06/03(金) 05:12:39.25VisualWorksが閉鎖環境だと言うなら、UNIXプロセス自体が閉鎖環境だよw
0395デフォルトの名無しさん
2011/06/03(金) 07:32:23.23簡単に速くできるからなぁ
0396デフォルトの名無しさん
2011/06/03(金) 07:45:24.470397デフォルトの名無しさん
2011/06/03(金) 08:23:54.760398デフォルトの名無しさん
2011/06/03(金) 08:26:08.42それが閉鎖的に見える
統合環境はほとんど必然的に閉鎖環境になる
0399デフォルトの名無しさん
2011/06/03(金) 08:38:05.200400デフォルトの名無しさん
2011/06/03(金) 08:40:38.380401デフォルトの名無しさん
2011/06/03(金) 09:01:47.94Java も JNI を使えば簡単に速く出来るし、
C もインラインアセンブラ使えばもっと速くなるな
ObjC なんて特別な事をしなくても常に C のコードとハイブリッド出来るし、
Lisp を始め、今どきの言語は FFI くらい普通に装備している
それでも既にチューニング済みの標準ライブラリとかは速くなり様が無いし、
言語仕様的に遅い部分はどうしようもないというのが常識だが
0402デフォルトの名無しさん
2011/06/03(金) 09:06:26.95JITくらい標準で使える様にしておいて下さいよ...。
0403デフォルトの名無しさん
2011/06/03(金) 09:07:18.78>>391の差は現実に使うときには影響は
ずっと小さいってことになるよね
>>401
標準ライブラリにmonkey patchあてたら?
0404デフォルトの名無しさん
2011/06/03(金) 09:10:59.61例えばJavaでArrayListが配列に比べて遅いのとか、
Boxingが遅いのとか、
言語仕様的にうんこな部分はどうしようもないよなぁ
0405デフォルトの名無しさん
2011/06/03(金) 09:50:03.760406デフォルトの名無しさん
2011/06/03(金) 09:53:49.40その分だけ相手も速くなるから、結局一緒
現実的な話をすれば、速くなればなっただけ機能が増えたり
適用領域が広がったりする物なので、結局一緒
0407デフォルトの名無しさん
2011/06/03(金) 09:57:36.31それで簡単に bzr が git 並みにサクサク動く様になるなら
この世に苦労はないわな
0408デフォルトの名無しさん
2011/06/03(金) 10:32:00.79hgと比べろよ
0409デフォルトの名無しさん
2011/06/03(金) 10:34:55.00際限なく高速化できて差が一定のままならその通りだが、
実際には速度差は縮むから、全然一緒じゃないよ
そんなことも分からないほどアホだから
Javaくらいしか使えないんだよ、可哀想に
0410デフォルトの名無しさん
2011/06/03(金) 10:48:56.84あぁbzrは早く死んでください
0411デフォルトの名無しさん
2011/06/03(金) 11:04:52.230412デフォルトの名無しさん
2011/06/03(金) 11:15:01.740413デフォルトの名無しさん
2011/06/03(金) 11:26:47.710414デフォルトの名無しさん
2011/06/03(金) 11:32:16.470415デフォルトの名無しさん
2011/06/03(金) 11:34:52.77PGにやる気がないんじゃいくら言語にこだわっても意味が無い。
0416デフォルトの名無しさん
2011/06/03(金) 11:43:23.850417デフォルトの名無しさん
2011/06/03(金) 11:44:31.21プログラマを免許制にすればいいんだよ。
あらゆるプログラミングを免許なしに行えないようにすれば良い。
フリーソフト公開するのも免許必須。
情報処理技術者認定試験を免許試験にし、
さらに研修医制度みたいな研修プログラマ制度みたいなのもすればいい。
0418デフォルトの名無しさん
2011/06/03(金) 11:45:20.82免許制にして院卒が増えれば流行るんじゃね。
0419デフォルトの名無しさん
2011/06/03(金) 11:47:34.61給料が増えることでモチベーションもアップし、日本のIT業界の進歩が加速する。
0420デフォルトの名無しさん
2011/06/03(金) 11:55:14.77資格の難度をまともな大学院の入試レベルにするだけでも1/10未満になるだろうよ
0421デフォルトの名無しさん
2011/06/03(金) 11:59:06.93まず、そんなことをする経営者はいない。
免許制度はプログラマを守る制度であって、
安全性を向上させるための制度ではないからだ。
もちろん免許制度はプログラマにとっては得になるが、経営者にとって得にはならない。
0422デフォルトの名無しさん
2011/06/03(金) 12:15:53.300423デフォルトの名無しさん
2011/06/03(金) 12:17:24.160424デフォルトの名無しさん
2011/06/03(金) 12:51:15.220425デフォルトの名無しさん
2011/06/03(金) 12:53:04.590426デフォルトの名無しさん
2011/06/03(金) 12:53:54.750427デフォルトの名無しさん
2011/06/03(金) 12:59:45.430428デフォルトの名無しさん
2011/06/03(金) 13:28:04.360429デフォルトの名無しさん
2011/06/03(金) 14:05:47.30医者でも医療ミスのリピーターってのがいるからなぁ。
プログラムの安全にはあまり効果ないような気がする。
0430デフォルトの名無しさん
2011/06/03(金) 14:23:37.29100人中10人が医療ミスするのか、100人中1人が医療ミスするのか、どっちがいいの?
0431デフォルトの名無しさん
2011/06/03(金) 15:22:37.89コンパイラだけ規制してミスが10分の1になったら静的型は終わりだな
0432デフォルトの名無しさん
2011/06/03(金) 15:27:31.500433デフォルトの名無しさん
2011/06/03(金) 15:29:20.05ってことにすればいいんじゃね。
その判断基準は社会通念ってことで。
0434デフォルトの名無しさん
2011/06/03(金) 15:40:43.77オフショア開発に移行で日本終了。
0435デフォルトの名無しさん
2011/06/03(金) 15:57:14.78海外は安かろう悪かろう、という風に意識が変わる。
今のままでは日本は高いから海外へ、という風になっている。
途上国と同じ土俵で戦ってもしょうがないだろ。
高級な日本製品を作るプログラマはエリートでなければならないのだから、
当然免許制は必要だし、今までのように高卒や中卒が成り上がりでやってきたような奴らが
幅を効かせるようじゃ駄目だ。
0436デフォルトの名無しさん
2011/06/03(金) 18:37:14.870437デフォルトの名無しさん
2011/06/03(金) 19:01:47.29経産省の主導で免許制を新設したら、
認可SIerでの実務経験が事実上の要件になるのは
火を見るより明らかなわけだが。
0438デフォルトの名無しさん
2011/06/04(土) 00:27:23.05どんなコードを書いても
まったく構文エラーが出ない言語だろう。
何もかもが動的に決まる。
そう、構文までも。
構文エラーはでないが実行したら
当然正しくは動かない。
どや? つこてみたいか?
0439デフォルトの名無しさん
2011/06/04(土) 00:57:55.730440デフォルトの名無しさん
2011/06/04(土) 01:58:09.880441デフォルトの名無しさん
2011/06/04(土) 04:16:43.79それ、Smalltalkだな。
コンパイラを実行時に変更可能だし、
コンパイルエラーもnilあたりを返すようにすればいい。
0442デフォルトの名無しさん
2011/06/05(日) 03:20:18.330443デフォルトの名無しさん
2011/06/05(日) 08:30:37.01どっかのデスマ案件に拉致られたのかなw
0444デフォルトの名無しさん
2011/06/05(日) 08:45:10.080445デフォルトの名無しさん
2011/06/05(日) 10:02:50.63Java土方くんに参加出来そうな話題がないだけかも
0446デフォルトの名無しさん
2011/06/05(日) 11:24:55.620447デフォルトの名無しさん
2011/06/05(日) 12:14:04.640448デフォルトの名無しさん
2011/06/05(日) 12:14:35.630449デフォルトの名無しさん
2011/06/05(日) 15:29:19.35ただ、面白いから別スレとして建てようとしてる。
なんかLvが足りないとか出るからもうちょっとまって。
0450デフォルトの名無しさん
2011/06/07(火) 00:00:27.990451デフォルトの名無しさん
2011/06/07(火) 00:30:38.62あるオブジェクトXが、オブジェクトAの中でオブジェク0トBに引き渡され、
さらにBの中でオブジェクトCに引き渡されたとき、オブジェクトCはMethodYをオブジェクトXに
求めたとする。Aに引数渡すとき、オブジェクトCの仕様をどうやってしってる?
ただメソッドからメソッドへ引き渡されるなら簡単なんだけど、
オブジェクトのフィールドを経由して遥か別地点でこの問題に気づくと非常に面倒くさいんだけど。
0452デフォルトの名無しさん
2011/06/07(火) 00:49:57.63なんかよく分からんが、ここ読んどけ
ttp://ja.wikipedia.org/wiki/デメテルの法則
0453デフォルトの名無しさん
2011/06/07(火) 01:37:17.420454デフォルトの名無しさん
2011/06/07(火) 01:52:03.98ああ、俺が避けてるパターンだやっぱりあれは嫌われてるんだな、ありがとう勉強になったよ。
極論すれば、構造体のアクセスで
a.b.c.d.e.f.g = 10;
なんて書く人いるけどせめて
functionB(&a.b,xxxx);
てな感じにしろって事でしょ。
>>451はそれとは違う話だけどね。
こういう感じの話。
MethodA(value)
this.value = value
MethodB()
this.obj.search(this.value)
#searchの中でvalueに対しMethodXが呼ばれる。
MethodAにvalueを渡した方は、obj.searchの中で
エラーが起きるので直接原因がMethodAのvalueだと
気づきにくい。
0455デフォルトの名無しさん
2011/06/07(火) 02:32:10.980456デフォルトの名無しさん
2011/06/07(火) 07:28:20.68MethodBする前に必ずMethodAするならMethodAとMethodBを分けない
valueが省略可能ならメソッドを分けるのではなくデフォルト引数を使う
0457デフォルトの名無しさん
2011/06/07(火) 08:25:46.39エラーメッセージって普通、積んでるスタックも書かれてないか?
そのスタックを見て行けばどこで渡されたものに対してメソッドを呼んだか判ると思う。
じゃあその渡されたものの由来はどこか、というのもクラス単位で見れば明らかじゃね。
0458デフォルトの名無しさん
2011/06/07(火) 09:01:49.90valueの中身がXであるのを見て、それがAに渡したヤツだと判らないというのは、
静的動的以前の問題だと思うが…
つうか、そういう問題をつぶすためのxUnitじゃないのかと。
0459デフォルトの名無しさん
2011/06/07(火) 19:52:41.19呼び出すタイミングが違うんでそれは無理
>>457
結局classの中身追うしかないのか。
じゃvalueが3つくらいオブジェクトの中を移動してたりって
コードは、面倒くさくて書けんねぇ。
>>458
同じ型のオブジェクトがあるときは、必ずMethodAから渡されたものなのかってのは
難しいねぇ。そりゃオブジェクトの値を見ればそれなりに検討はつくけど。
0460デフォルトの名無しさん
2011/06/07(火) 20:05:55.35その程度で面倒…か?
スレ的には動的言語と静的言語の差の話になってくると思うけど
それで見ても、静的動的でのあんまり差は感じられないし…
強いて言えば、エラーメッセージが不親切だと判りにくいって程度だが、そんなん静的動的の話じゃないしな。
0461デフォルトの名無しさん
2011/06/07(火) 21:26:58.62それで安全が脅かされるのは自業自得じゃないか。
0462デフォルトの名無しさん
2011/06/07(火) 23:00:51.31静的動的も関係あるかというとあるいみ別なんだ。
interfaceやprotocolのような、引数チェックができる型が有るか無いかってだけの話。
引数でのチェックがあればこれからどんな要求がオブジェクトに課せられるか
すぐに解るけど、そういう仕組みが無いと動かしてみて初めて異常に気づく。
まぁ、大抵動的はそういうもん無いんでここだと、我こそは動的言語使いって人が
なんかいい方法しってるかと思ったんだけど。
ちなみに別にレアケースでもないよ、数値型オブジェクトや、文字列型オブジェクト、
他にもライブラリで用意されている原始的な型は、需要が多い分オブジェクトグラフの中を
右や左へ移動するからね。いざメソッド評価が必要なった段階でオブジェクトの種類が
異なるってとこに何度か遭遇した。
0463デフォルトの名無しさん
2011/06/07(火) 23:11:27.31MethodAの中で、valueに対してis-a関係を調べるか、メソッドを持っているかを調べる。
それだけの話では無いの?
0464デフォルトの名無しさん
2011/06/08(水) 00:42:58.85void func {
# ○○の処理
code
code
code
# △△の処理
code
code
code
# □□の処理
code
code
code
# ☆☆の処理
code
code
code
}
コメントでなんとかの処理と名前をつけられるってことは、
それを関数名すべき場所だと思う。
たとえそれがfuncの中から1回しか呼ばれなかったとしても。
関数にしておけばAOPで前後にコードを割りこませられるし
0465デフォルトの名無しさん
2011/06/08(水) 01:50:46.88万が一言語仕様的に許されていたとしても、これを実装するには相当の胆力が必要な筈だ
http://thedailywtf.com/Articles/Divine-by-Zero.aspx
0466デフォルトの名無しさん
2011/06/08(水) 07:19:10.75C++を静的型付け言語の代表とするくらい愚行
>>463
たぶんテストは書かない主義なのさ
0467デフォルトの名無しさん
2011/06/08(水) 07:24:45.240468デフォルトの名無しさん
2011/06/08(水) 07:29:54.860469デフォルトの名無しさん
2011/06/08(水) 07:37:10.850470デフォルトの名無しさん
2011/06/08(水) 08:32:27.980471デフォルトの名無しさん
2011/06/08(水) 08:59:55.640472デフォルトの名無しさん
2011/06/08(水) 09:05:45.220473デフォルトの名無しさん
2011/06/08(水) 09:17:34.11他のPG「えっ?」
0474デフォルトの名無しさん
2011/06/08(水) 09:20:35.170475デフォルトの名無しさん
2011/06/08(水) 22:15:29.02テスト以前のコーディング時に問題が発生してるというのに
テストを書かない主義だからとは、これ如何に?
元のコードが無いのにテストなんてできないだろ。
0476デフォルトの名無しさん
2011/06/08(水) 22:23:07.70煽りじゃなくて、本当に意味が分からん
もう少し詳しく
0477デフォルトの名無しさん
2011/06/08(水) 22:24:34.180478デフォルトの名無しさん
2011/06/08(水) 22:48:10.920479デフォルトの名無しさん
2011/06/08(水) 23:06:03.44誤った印象を与える危険がある。
0480デフォルトの名無しさん
2011/06/08(水) 23:33:15.55エラー発生時のスタックトレースで一発で分かる
もし>>454のように一度オブジェクトのメンバに代入されるなら
代入する際にvalueがメソッドを持ってるか調べる
それだけのことじゃないの?
0481デフォルトの名無しさん
2011/06/09(木) 00:28:47.32それだけのことだ
0482デフォルトの名無しさん
2011/06/09(木) 00:33:54.490483デフォルトの名無しさん
2011/06/09(木) 00:47:22.53それだけのことだ
0484デフォルトの名無しさん
2011/06/09(木) 01:25:18.83それだけの事だ。
0485デフォルトの名無しさん
2011/06/09(木) 08:09:32.98チェックする処理を用意しとけってことか。
0486デフォルトの名無しさん
2011/06/09(木) 08:43:46.630487デフォルトの名無しさん
2011/06/09(木) 13:21:22.640488デフォルトの名無しさん
2011/06/09(木) 13:37:13.030489デフォルトの名無しさん
2011/06/09(木) 16:43:35.242. 渡されたオブジェクトにはできるだけ基本的なシグネチャのみ使う。
3. メンバ変数に代入したり他のオブジェクトに永続的に渡すときには、経路がわかり易いような設計をする。
0490デフォルトの名無しさん
2011/06/09(木) 21:22:32.56人、それを型という
0491デフォルトの名無しさん
2011/06/09(木) 21:36:29.700492デフォルトの名無しさん
2011/06/10(金) 00:57:56.29数値なら範囲とか、文字ならエンコードとか、いろいろチェックするよね
0493デフォルトの名無しさん
2011/06/10(金) 01:30:10.23死荷重だよな。assert見たいに、リリース後は実行経路から
完全に無視されるんならいいけど。
javascriptなんかだとメソッドの有無確認はif(object.method)・・・;
てな感じで実行経路上にあって死荷重になるのは明らかなんで
なかなか実際にはメソッドチェックできない。
0494デフォルトの名無しさん
2011/06/10(金) 01:36:50.81そんなのは組み方次第じゃん...
テスト用の assert() とリリース用の実質何もしない assert() を作れば良いだけ
0495デフォルトの名無しさん
2011/06/10(金) 01:42:30.33JavaScriptならClosure Compilerを使えばリリース時には無負荷のassertを利用出来る。
http://closure-library.googlecode.com/svn/docs/closure_goog_asserts_asserts.js.html
これだけ広範囲に使われている言語なら、普通の人間が思い付く様な事は大抵用意されてるもんだな。
0496デフォルトの名無しさん
2011/06/10(金) 02:07:38.25動的言語のプリプロセスねぇ。やっぱコンパイル式動的言語が最強か。
0497デフォルトの名無しさん
2011/06/10(金) 02:57:30.91コードに分かりやすくコメント書こうと思ったら
サイズが膨れ上がるから
0498デフォルトの名無しさん
2011/06/10(金) 03:11:14.210499デフォルトの名無しさん
2011/06/11(土) 12:24:39.06今何してるのと聞かれたからニートやってますと答えた。
怒られた。
0500デフォルトの名無しさん
2011/06/11(土) 12:44:27.74Education しているからニートではない!
……勉強会って教育にははいならいよなあ。
0501デフォルトの名無しさん
2011/06/11(土) 14:31:07.65「「オブジェクト指向」がよく分からないんだけど、何がスゴイの?」
おいおい、俺の中じゃとっくの昔に終わってるオブジェクト指向なる話をイマドキ質問するのかよ。
そんな話は10年前に済ましとけよ。
ごめんね、おれ仕事しないで最先端の勉強ばっかやってる廃人なの。
0502デフォルトの名無しさん
2011/06/11(土) 15:17:33.600503デフォルトの名無しさん
2011/06/11(土) 15:39:34.14オブジェクト指向だというだけでやっていける時代は終わったが、
オブジェクト指向は終わってねえよw
0504デフォルトの名無しさん
2011/06/11(土) 16:05:12.65技術者なら必ずどこかで目にするはずで、知っていて当たり前の知識だろ。
(勉強は)終わっているっていう意味だよ。
0505デフォルトの名無しさん
2011/06/11(土) 16:09:52.170506デフォルトの名無しさん
2011/06/11(土) 17:15:43.450507デフォルトの名無しさん
2011/06/11(土) 17:56:10.29おまえはお勉強ばかりでコード書かないんだな。
だから終わったとか言っていられる。
終わってるのは、おまえのお勉強の仕方だ。
0508デフォルトの名無しさん
2011/06/11(土) 18:00:05.750509デフォルトの名無しさん
2011/06/11(土) 18:03:17.73っていう綴り間違いがそのまま広まったものという・・・
0510デフォルトの名無しさん
2011/06/11(土) 18:05:00.780511デフォルトの名無しさん
2011/06/11(土) 18:45:06.480512デフォルトの名無しさん
2011/06/12(日) 01:46:56.25海外でよく使われる言葉を持ってきたんならともかく、
和製英語→US英語→和製英語とかアホの極みだろ。
0513デフォルトの名無しさん
2011/06/12(日) 09:30:35.13全然違う。
ただの調整屋。
設計は他のプログラマが行う。
0514デフォルトの名無しさん
2011/06/12(日) 09:37:45.640515デフォルトの名無しさん
2011/06/12(日) 09:40:02.36ただ基本設計纏めるだけのSEなら、
ソースの中身なんざ見りゃしないんだから関係ないだろ。
0516デフォルトの名無しさん
2011/06/12(日) 09:43:06.23オブジェクト指向知らない=UMLも読めない、だぞ。
0517デフォルトの名無しさん
2011/06/12(日) 09:49:45.44>オブジェクト指向知らない=UMLも読めない、だぞ。
また、新説を唱える奴が出てきたよ…
自称SEによくいるタイプだな、自分の知ってる単語適当につなげて語る奴。
0518デフォルトの名無しさん
2011/06/12(日) 09:51:19.910519デフォルトの名無しさん
2011/06/12(日) 10:02:58.54元々は、Languageと付くことからも解るとおり、
プログラムそのものを編集出来る道具。
UML作者のJames Rumbaughも自分のサイトだったかで
「か、かんちがいしないでよね、UMLは、
図を書くためのツールじゃなくプログラミング言語の
ひとつなんだからねっ!!」
って顔を赤らめながらいってた。
ちなみにこの子は栗毛で、ミニスカニーソは似合わない。
0520デフォルトの名無しさん
2011/06/12(日) 10:12:44.450521デフォルトの名無しさん
2011/06/12(日) 10:15:17.05おまえ、アーキテクトを設計屋だと思ってるの?馬鹿だろ。
0522デフォルトの名無しさん
2011/06/12(日) 10:23:23.32>UMLってオブジェクト指向設計のための図表記法だよね?
オブジェクト指向設計のための図表記法は UML だけじゃない。
そもそも UML 1.0 が策定されたのが 1996年で、例えば C++ は 1983年。
お前の理論だと、その間 C++ バリバリ使ってた奴は、生まれてもない
UML を読めるエスパーだったことになるぞ。(w
0523デフォルトの名無しさん
2011/06/12(日) 10:28:49.91誰が生まれて間もないの?
ちょっと、意味分かんない
0524デフォルトの名無しさん
2011/06/12(日) 10:31:50.10UMLは10年以上前からあった。
1.0が策定されたのがいつなのかはっきり覚えていないが、少なくとも10年前にUMLはあったよ。
0525デフォルトの名無しさん
2011/06/12(日) 10:33:17.04> 生まれて間もない
書いてないこと読み取るエスパー来た〜〜 (w
0526デフォルトの名無しさん
2011/06/12(日) 10:33:26.370527デフォルトの名無しさん
2011/06/12(日) 10:34:37.35オブジェクト指向はそのずっと前からあったって書いてあるつもりなんだが...。
0528デフォルトの名無しさん
2011/06/12(日) 10:38:54.29GoFの四人をアニメのキャラクターにたとえるとなんですか?
0529デフォルトの名無しさん
2011/06/12(日) 10:39:42.45誰かKay流のOOをベースにした設計記法をつくらんかな?
0530デフォルトの名無しさん
2011/06/12(日) 10:39:42.59オブジェクト指向は確か1950年代の終わりごろには囁かれていたと思うが、
どこかに記録ないかな。
0531デフォルトの名無しさん
2011/06/12(日) 10:41:32.35てか明らかにそうだろ。
0532デフォルトの名無しさん
2011/06/12(日) 10:42:46.470533デフォルトの名無しさん
2011/06/12(日) 10:44:22.32ざっくり探したが見つからなかったので、とりあえず C++ で代用した。
>>531
俺にはそうは思えないが、どの辺が Java っぽく思えるの?
0534デフォルトの名無しさん
2011/06/12(日) 12:39:19.18> UMLは静的型の臭いがキツくて駄目だな。
当たり前だよ。
設計はコードが動くよりも前に出来上がる物。
その本質からして静的にならざるを得ない。
動的、つまり動かしてみるまで決まらない物は
設計にしづらいもの。
0535デフォルトの名無しさん
2011/06/12(日) 12:44:41.720536デフォルトの名無しさん
2011/06/12(日) 12:49:30.21なぜ、プログラミングできないSEなんてのがいるのかさっばりわからない。
0537デフォルトの名無しさん
2011/06/12(日) 12:51:41.880538デフォルトの名無しさん
2011/06/12(日) 13:05:18.820539デフォルトの名無しさん
2011/06/12(日) 13:09:56.72ごめんさっぱり理解できない
0540デフォルトの名無しさん
2011/06/12(日) 13:10:36.34先輩: ああ、だったらそこは設計しなくて適用に組んどきゃいいよ。
0541デフォルトの名無しさん
2011/06/12(日) 13:12:57.150542デフォルトの名無しさん
2011/06/12(日) 13:23:42.46先輩っ! 「適用に」ってどういう意味ですか?
0543デフォルトの名無しさん
2011/06/12(日) 13:35:53.95これで手戻りを防げます
0544デフォルトの名無しさん
2011/06/12(日) 13:37:34.150545デフォルトの名無しさん
2011/06/12(日) 13:53:35.320546デフォルトの名無しさん
2011/06/12(日) 13:55:56.820547デフォルトの名無しさん
2011/06/12(日) 14:08:56.58実装継承とリフレクションにこだわるから自滅するのだ
0548デフォルトの名無しさん
2011/06/12(日) 15:38:07.65んなわきゃーない
属性に型をつけなければいいだけ
特定のクラスを前提にしているのはhas-aやis-aで表現できる
0549デフォルトの名無しさん
2011/06/12(日) 15:39:06.29そう見えるんなら、君は静的型すら理解していない。
0550デフォルトの名無しさん
2011/06/12(日) 15:59:29.54どう理解できてないかぐらい書けよ。
まあ、書けないから >>549 みたいなこと書くしかないんだろうけど。
0551デフォルトの名無しさん
2011/06/12(日) 15:59:37.950552デフォルトの名無しさん
2011/06/12(日) 16:05:22.50>>534
> 当たり前だよ。
> 設計はコードが動くよりも前に出来上がる物。
> その本質からして静的にならざるを得ない。
残念ながら静的型言語でも動かさなければわからないことが多い。
その1つが動的型。静的型言語にも動的型があるということすら知らない>>534は
静的型すら理解できていない。
0553デフォルトの名無しさん
2011/06/12(日) 16:18:17.18そんな当たり前のことをドヤ顔で書いてて恥ずくない?
0554デフォルトの名無しさん
2011/06/12(日) 16:24:33.550555デフォルトの名無しさん
2011/06/12(日) 16:31:39.43そんな当たり前のこともわきまえずにドヤ顔で書き込む>>534をどう思う?
0556デフォルトの名無しさん
2011/06/12(日) 16:57:05.24図の解釈に差異が出たり、「そもそもUMLとは」とか語りだすやつとか、本見りゃわかることを聞いてくるやつとか、
あと、どうしてもUMLで書くことが適さない事もあるじゃない?そういったことをどうやって書きましょう?的なこと言い出すやつとか。
もうね、おれは早く仕事終わらせて、帰るなり、遊ぶなり、自分の勉強なりをしたいわけよ。思い出したらゲンナリしてきた。
0557デフォルトの名無しさん
2011/06/12(日) 17:03:18.06>>534 がアホだというのは共通認識だろ。
当たり前すぎて、批判の対象にもならんと思っていたが。
>>556
それ君の職場の問題で、UML のデメリットじゃないだろ。
0558デフォルトの名無しさん
2011/06/12(日) 17:21:23.90>それ君の職場の問題で
それを言い出したらほとんどの問題は、○○自体の問題じゃなく、使いどころを間違っているだけ。とか、
お前の環境が悪いだけ。になるじゃない。
気を付けないと、導入のメリットより、デメリットの方が多くなるって話。
0559デフォルトの名無しさん
2011/06/12(日) 17:29:12.80猫に小判、豚に真珠、馬の耳に念仏、土方にUML
0560デフォルトの名無しさん
2011/06/12(日) 17:37:05.990561デフォルトの名無しさん
2011/06/12(日) 17:42:59.96CO2を削減し、原発を廃止しよう
0562デフォルトの名無しさん
2011/06/12(日) 17:43:09.25何も全て全てを図にする必要はないし、いざとなったら拡張もできる。
欠点らしい欠点といえば、UML2.0になって仕様が肥大化してしまったことぐらいか。
0563デフォルトの名無しさん
2011/06/12(日) 17:59:46.21> それを言い出したらほとんどの問題は、○○自体の問題じゃなく、
> 使いどころを間違っているだけ。とか、
> お前の環境が悪いだけ。になるじゃない。
いや...
図の解釈に差異が出たり ⇒ UML は各図の解釈ちゃんと定義している。
差異がでるのはちゃんと理解できてないだけのこと。
「そもそもUMLとは」とか語りだすやつ ⇒ そいつ個人の性格/資質
本見りゃわかることを聞いてくるやつ ⇒ そいつ個人の性格/資質/教育体制
どうしてもUMLで書くことが適さない事もあるじゃない?
そういったことをどうやって書きましょう?的なこと言い出すやつとか。
⇒ それこそ、その職場でどうするか決めとけよ。
どうみても UML 自体の問題じゃないだろ。
0564デフォルトの名無しさん
2011/06/12(日) 18:03:30.95>何も全て全てを図にする必要はないし
この時点で万能では無いよね
0565デフォルトの名無しさん
2011/06/12(日) 18:05:41.00>いや、ほぼ万能といってもいいだろう。
個人的にはこれが一番欠点だな。
万能すぎて理解しきれない (w
そもそも pdf で 400ページ以上ある仕様書なんて読めるか!!
0566デフォルトの名無しさん
2011/06/12(日) 18:08:20.36許可しているから、万能だといえるだろ。つまり縛りがほとんどない。
0567デフォルトの名無しさん
2011/06/12(日) 18:10:43.300568デフォルトの名無しさん
2011/06/12(日) 18:10:55.01大きいプロジェクトだと普通に段ボール数箱の仕様書なんて希によくあるよ?
0569デフォルトの名無しさん
2011/06/12(日) 18:13:06.45そりゃ各業務の機能はそうなるかもしれないけれど、それは全員がアタマにいれておくべき仕様じゃないでしょう。
565が言ってるのは、全員が共通認識として理解する必要がある仕様が400ページもあったら大変ってことだと思う。
0570デフォルトの名無しさん
2011/06/12(日) 18:14:10.560571デフォルトの名無しさん
2011/06/12(日) 18:44:48.74ん?万能?
オブジェクト指向専用なのに?
0572デフォルトの名無しさん
2011/06/12(日) 18:46:03.46まず、紙に印刷している時点でクソ官僚組織じみてウンコ
0573デフォルトの名無しさん
2011/06/12(日) 18:53:10.06あと、料理するためには、もちろん下ごしらえも必要だし、そのためには、包丁とかまな板
とか、いろいろ必要だよ。味付けもしないといけないしね。
UMLは、モデル記述言語としては、万能だよ。
0574デフォルトの名無しさん
2011/06/12(日) 19:12:19.74実装言語が関数型言語の場合使えるの?
どうしても図中のメモで対応するしかなくない?
0575デフォルトの名無しさん
2011/06/12(日) 19:24:28.00関数型でもオブジェクト機能あるじゃん。
それに、
(lambda (x) (+ 10 x y) )
だったら。
---------------
-y:int
---------------
+operator()(x):int
---------------
見たいにオブジェクトとして描ける。
>>572
>>568では無いが、紙に出すってのは結構重要だったりすんのよ。
画面上じゃすぐピクセルが潰れるから、全体を見回せない。
紙なら、全て並べて、似てるクラスを探しだし、物理的に机の上に集め、
集約やら移譲やら考える事が出来る。
俺は面倒だからしないけどね。
0576uy ◆yyC0rYWEq2
2011/06/12(日) 19:31:48.85チェックする技法がまだ完成をしていないだけ
せめてスクリプト言語からevalさえなくせば型チェック走らせることは今の技術でも可能だろ
安全な物を作りたければevalを禁止
もうひとつの方法は、この○○ってルールにしたがってソースコードをかいて
それを、○○って技法でテストした場合
型エラーは100%発見できますっていう技法を完成させる
たぶんそのエラー発見を100%抽出する式は存在するよ evalさえなければな
0577デフォルトの名無しさん
2011/06/12(日) 19:35:03.63皆、空気を感じるようにやさしくね。
0578デフォルトの名無しさん
2011/06/12(日) 19:45:00.73(独自の)プロトコル仕様書なめんなよw
0579デフォルトの名無しさん
2011/06/12(日) 19:46:42.10evalは関係ないやん!
0580デフォルトの名無しさん
2011/06/12(日) 19:53:59.860581デフォルトの名無しさん
2011/06/12(日) 19:58:45.400582デフォルトの名無しさん
2011/06/12(日) 20:12:04.25動的言語にも型は存在するよ。
実行時に決まるだけで。
0583デフォルトの名無しさん
2011/06/12(日) 20:17:27.74ラムダ限定?関数型には向かないから万能じゃないでしょ?って言いたかっただけ。
0584デフォルトの名無しさん
2011/06/12(日) 20:23:00.32---------------
sin
---------------
---------------
+operator()(x):int
---------------
ただの関数ならこれでいいだろ。
0585デフォルトの名無しさん
2011/06/12(日) 20:44:15.16ん〜、UMLで書ききれない部分を、こういうときはこのように書くっていうルールをプロジェクト内で作るって話にみえてしまう。。
つか、「関数型言語を採用しているシステムでも、おれはUMLでクラス図書くよ。」ってことか。おれとは意見が違うなぁ。
0586デフォルトの名無しさん
2011/06/12(日) 20:54:34.24てか、関数型は関数自体がオブジェクトだからな。
Smalltalkのブロックと同じ扱いにすればいいだけの話なんで。
ブロック知ってる?
[x|^x+10].value 5. ってやつ。
0587デフォルトの名無しさん
2011/06/12(日) 20:58:34.10他の言語が、関数型オブジェクトを標準でサポートし始めてる中、
VMに縛られて1人だけ取り残されてる間抜けだよなぁ。
0588デフォルトの名無しさん
2011/06/12(日) 21:08:57.88それSmalltalkのブロックじゃないし
0589デフォルトの名無しさん
2011/06/12(日) 21:09:22.01>Smalltalkのブロック
勉強不足でSmalltalkは全然しらないんだけど、「[x|^x+10].value 5」って書き方と名前から察するに、
groovyとかと一緒で、コードブロックをオブジェクトとして扱えるってことかな。
いずれにしてもUMLは万能で関数型でも全然問題ないんだぜ。ってことかな。ちょっとどうやって書くのか勉強するわ。
>>587
JVMを使う言語でも、クロージャ実装してたりするから、VMに縛られているって訳でもないと思う。
単に、「Javaはそういう方向じゃないよね。」的なところだと思う。
0590デフォルトの名無しさん
2011/06/12(日) 21:11:28.81ごめんvalueの前のドットは間違いだし、
valueでの呼び出しはgstの方言だっけか。
0591デフォルトの名無しさん
2011/06/12(日) 21:15:51.86UMLが万能というより関数がオブジェクトのサブセットになだけ。
関数でもなくオブジェクトでも無いものが現れた場合はどうしようもないだろな。
んなもん存在すんのかしらんけど。
0592デフォルトの名無しさん
2011/06/12(日) 21:15:55.870593デフォルトの名無しさん
2011/06/12(日) 21:16:19.67gstどころか根本的なところでそれSmalltalkじゃないから
0594デフォルトの名無しさん
2011/06/12(日) 21:18:59.56>関数でもなくオブジェクトでも無いもの
ただの変数とか
0595デフォルトの名無しさん
2011/06/12(日) 21:21:39.45たとえば「継承関係」をファーストクラスとして実装している言語を挙げてみ?
Smalltalkですら「継承関係」はファーストクラスじゃねえぞ。
0596デフォルトの名無しさん
2011/06/12(日) 21:23:31.74別にinterfaceがあってもfor each見たいに、特別扱いして
value(・・・・)メソッドそなえてりゃメソッドとして扱えるように設計しとけばええんちゃうん。
0597デフォルトの名無しさん
2011/06/12(日) 21:28:55.85あ゛?確かに↓と書こうとして間違えたが、
[:x|^x+10] value: 5.
ブロック自体はsmalltalkの基本機能だぞ。
http://www.h3.dion.ne.jp/~y.ich/Squeak/squeak-qref.html#SyntaxBlocks
0598デフォルトの名無しさん
2011/06/12(日) 21:32:19.89ともあれGNU SmalltalkはSmalltalkとしてはかなり特殊な実装なので、
これを使ってのSmalltalkの勉強や議論は避けた方が良いです。
VisualWorksか、せめてSqueak/Pharoを使いましょう。
0599デフォルトの名無しさん
2011/06/12(日) 21:35:04.18http://smalltalk.cincom.jp/tutorials/vw7.7/webtoolkit/webtoolkit_j2ee_sessions.ssp
ちなみに>>597はsqueak。smalltalkの直系の処理系だぞ。
0600デフォルトの名無しさん
2011/06/12(日) 21:39:21.810601デフォルトの名無しさん
2011/06/12(日) 21:42:33.86まぁ、いいわ。結局意味的には、
「引数を一つ取り、引数+10を返却するロジックがあって、そこに引数として5を入れた。」って意味だよね。
おれは598じゃないんだが。
0602デフォルトの名無しさん
2011/06/12(日) 21:45:47.33左上のsmalltalkのロゴがモロにブロック。
本文でもブロックが使われてる。
http://www.smalltalk.org/articles/article_20051122_a1_TheEssenceOfSmalltalk_v7.html
あと、smalltalk-80の言語実装のドキュメント
http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf
0603デフォルトの名無しさん
2011/06/12(日) 21:47:36.84いや別に>>598を責めてる訳じゃないんだよ。ただそういう誤解を生むものの存在を確認したいだけ。
0604デフォルトの名無しさん
2011/06/12(日) 21:53:38.64という気になるのは確かだなw
> Smalltalkのブロックと同じ扱いにすればいいだけの話なんで。
> ブロック知ってる?
> [x|^x+10].value 5. ってやつ。
0605デフォルトの名無しさん
2011/06/12(日) 22:04:47.325年近くさわってないから覚えてないんだよ。仕事で使わねぇし。
ただお勉強の結果は他で役立ってるけど。
あと、>>586のvalueでの呼び出しだけど別に間違いじゃなかったわ。
言語実装ドキュメントの636ページ 81項にちゃんと書いてある。
どっかでgst固有かもねって聞いた気がしたけど規格通りらしい。
0606デフォルトの名無しさん
2011/06/12(日) 22:10:06.68マジレスすると、
それはSqueakはSqueakでもEtoysっていうビジュアルプログラミング言語&環境を指して言う場合。
http://squeakland.org/
Squeakは元祖ゼロックス製Smalltalk-80直系のれっきとしたSmalltalk処理系。
http://squeak.org/
http://squeak-ja.sourceforge.jp/
で、Etoys自体はこのSqueak環境を使ってSmalltalk言語で組まれている。
0607デフォルトの名無しさん
2011/06/12(日) 22:12:04.57微妙って書いたのは、ブロック内でリターンする意図が不明だから。
0608デフォルトの名無しさん
2011/06/12(日) 22:15:27.36>gstどころか根本的なところでそれSmalltalkじゃないから
まさか ^ 一つでそんなこと書くわけないよな。
0609デフォルトの名無しさん
2011/06/12(日) 22:17:33.95まぁ、別にUMLの仕様に入ってるからいいじゃん。
オブジェクトとしてとれないけどさ。
0610デフォルトの名無しさん
2011/06/12(日) 22:18:24.90> [x|^x+10].value 5. ってやつ。
0611デフォルトの名無しさん
2011/06/12(日) 22:21:13.00なんか見苦しくなってきたどうでもいいわ。もう。
0612デフォルトの名無しさん
2011/06/12(日) 22:27:20.070613デフォルトの名無しさん
2011/06/12(日) 22:30:57.57俺が持ってる ANSI Smalltalk の規格書の最終ドラフト版は 304 ページしか無いんだけど、
636 ページ目に Block の記載があるドキュメントのタイトル教えて。
0614デフォルトの名無しさん
2011/06/12(日) 22:32:25.320615デフォルトの名無しさん
2011/06/12(日) 22:34:49.12http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf
0616デフォルトの名無しさん
2011/06/12(日) 22:40:53.24ああ blue book か。さんきゅ。
0617デフォルトの名無しさん
2011/06/12(日) 22:40:56.51UMLでどう書くのさ?
0618デフォルトの名無しさん
2011/06/12(日) 22:43:28.030619デフォルトの名無しさん
2011/06/12(日) 22:44:40.700620デフォルトの名無しさん
2011/06/12(日) 22:50:33.91Smalltalkのブロックなら
--------------
block0
--------------
--------------
+value(x:*):*
--------------
でいいじゃん。
関数なら
--------------
function
--------------
--------------
+evalute(x:*):*
--------------
みたいな感じ。
0621デフォルトの名無しさん
2011/06/12(日) 22:51:42.960622デフォルトの名無しさん
2011/06/12(日) 22:55:37.83関数はクラスじゃないぞー
0623デフォルトの名無しさん
2011/06/12(日) 22:56:41.52おいおい、関数型言語でそれやったら一つの巨大なクラスが出来るだけで
全くクラス図が意味を為さないだろ
0624デフォルトの名無しさん
2011/06/12(日) 23:03:19.39Javaでよくやる、匿名クラスをつかったクロージャもどきのような、無理してる感が否めない。
それにそれやると
function
+evalute(x:*):*
大活躍過ぎだろw
0625デフォルトの名無しさん
2011/06/12(日) 23:03:32.42こんな感じで1関数1クラスに対応付けるだけな。
別に、Object指向言語より表記量が増えるわけでもないしこんな感じでいいんじゃね。
--------------
function0
--------------
+evalute(x:*):*
--------------
--------------
function1
--------------
+evalute(x:*,y:*):*
--------------
--------------
function2
--------------
+evalute(x:*,z:*):*
--------------
0626デフォルトの名無しさん
2011/06/12(日) 23:10:39.660627デフォルトの名無しさん
2011/06/12(日) 23:16:52.80interface Math
{
final static FunctionDoubleDouble abs = new Abs();
}
Math.abs(10);
0628デフォルトの名無しさん
2011/06/12(日) 23:19:21.02Math.abs.evalute(10);な。
0629デフォルトの名無しさん
2011/06/12(日) 23:21:21.300630デフォルトの名無しさん
2011/06/12(日) 23:25:22.740631デフォルトの名無しさん
2011/06/12(日) 23:26:37.03数値系のオブジェクトに#absがある方がうれしいな。
0632デフォルトの名無しさん
2011/06/13(月) 02:55:33.180633デフォルトの名無しさん
2011/06/13(月) 03:59:14.57動的言語でも、型を意識することはある。
たとえば文字とか数字とか、
あるメソッドを持っているとか。
動的言語でもある変数に、想定しているものと
互換性がない値を入れたら正しく動作しない。まあ当たり前。
そういう人間が本来考えている”型” を
コードとして表せないのが動的言語なんだ。
やっと分かったよ。
動的言語がなぜ劣っているかが寝。
0634デフォルトの名無しさん
2011/06/13(月) 06:00:52.24ためしに、
| plusTen y|
plusTen := [:x|^x+10].
y := plusTen value: 5.
y + 100
これprintItしてみろw
0635デフォルトの名無しさん
2011/06/13(月) 06:06:11.52表せるけど。
しかも、ほとんどの静的型言語と違って、「型宣言」をファーストクラスとして実装可能だ。
0636デフォルトの名無しさん
2011/06/13(月) 06:08:51.290637デフォルトの名無しさん
2011/06/13(月) 06:13:52.42コードを頼む
あんまり型宣言を渡したり返したりした覚えが無い
0638デフォルトの名無しさん
2011/06/13(月) 06:44:22.60ばか?
0639デフォルトの名無しさん
2011/06/13(月) 07:02:34.970640デフォルトの名無しさん
2011/06/13(月) 07:21:33.93型情報を文字列で表せばいやでも渡したり返したりするだろ
ただし「文字列」と「ファーストクラス」の関係は不明
型を意識するやつはその関係に悩まされる
動的言語なら悩まない
0641デフォルトの名無しさん
2011/06/13(月) 07:28:12.34なんか知らんけどそれ煽ってる部分以外のトコも間違ってね。
あんちゃん揚げ足取るんなら、自分も揚げ足とられんようせんといかへんで。
0642デフォルトの名無しさん
2011/06/13(月) 07:40:23.020643デフォルトの名無しさん
2011/06/13(月) 08:38:22.60それじゃ言語処理系が理解出来ない。
人間だけが分かっていて、
型をコンピュータに伝える方法がない。
それが動的言語w
0644デフォルトの名無しさん
2011/06/13(月) 09:14:43.49型を必要とするのなら、訊ねれば良い。
Cの構造体とは違う。
0645デフォルトの名無しさん
2011/06/13(月) 10:38:29.16いや、>>635が型宣言がファーストクラスって言ってるから
つまりは型宣言を関数/メソッドに渡したり
関数が返したりするのかと思って聞いたんだが
オブジェクトは型を知ってるから
オブジェクトを渡したり返したりすれば型宣言を渡したり返したり
したことになるっていうのなら話は平行線になるからこれで終了だ
0646デフォルトの名無しさん
2011/06/13(月) 11:27:30.40こんな感じのことが出来るってことだろ
T = type('T', (), {'x':1, 'f':lambda self,y: self.x + y})
a = T()
print a.f(1)
0647デフォルトの名無しさん
2011/06/13(月) 12:16:22.12ああ、よくわかった。宣言でなく定義だな
それならファーストクラスだ
0648デフォルトの名無しさん
2011/06/13(月) 12:27:50.91prologとか?
0649uy ◆yyC0rYWEq2
2011/06/13(月) 12:58:38.65実行時まで>>633 の、問題が発生するかどうかがわからない点にある
すべての型を想定して想定した型以外がきたら、例外だしてそれでも処理が続行するようなコード
たとえばRubyなら
case kata
when String
when Fixnum
else
p :err
end
といった具合
けど、こんなことは普通やらず
多分動くだろう、っていう曖昧な判断のもの動的言語のソースコードは生成される
めったによばないメソッドに、バグが潜んでいても、気づかない
ようはコンパイラ側が型チェックってのをなくして、型情報をコンパイラに教えずともコンパイル通る( その場所まで実行できる )
のが動的言語
作り手がある程度のポテンシャルないと、規模が大きくなってきた瞬間破綻するわな
それに、バグで動作とまる可能性を少しでも減らしたいような機器に動的言語使うのは流石に怖い
初期リリース時の、バグの総量でいったらおそらく動的言語のほうが多くなるだろう
動的言語じゃコンパイラ時にほぼバグの検出が不可能なんだから・・・
仮にバグが残ってて動作とまろうと、大規模な損害にならないようなアプリケーションにしか未だに使えない現状はあるよ
だからさっさとチェック技法の確立・・・・・・数学者に任せる
0650uy ◆yyC0rYWEq2
2011/06/13(月) 13:00:54.87>すべての型を想定して想定した型以外がきたら、例外だしてそれでも処理が続行するようなコード
すべての型を想定して想定した型以外がきたら、例外だしてそれでも処理が続行するようなコード をかくのなら
>動的言語じゃコンパイラ時にほぼバグの検出が不可能なんだから・・・
コンパイル時
>多分動くだろう、っていう曖昧な判断のもの
判断のもと
0651646
2011/06/13(月) 13:15:58.52いや、こっちが勘違いしてた。そうか型宣言か
Pythonには型宣言が無いけど、ctypesだとこんな感じだから
型宣言のある動的言語ならファーストクラスに出来るだろう
from ctypes import *
from ctypes.util import find_library
libpath = find_library('c')
libc = cdll.LoadLibrary(libpath)
fopen = libc.fopen
fopen.argtypes = [c_char_p, c_char_p]
fopen.restype = c_void_p
0652デフォルトの名無しさん
2011/06/13(月) 13:47:31.57それ単に多態すれば良くね
0653デフォルトの名無しさん
2011/06/13(月) 14:35:06.59何行もコード書いてもらってすまない
型宣言のある動的言語というとGroovyなんかが該当するのかな
なんにせよ実益もなく用語法に拘泥した気がするんで頭冷やしてくる
0654uy ◆yyC0rYWEq2
2011/06/13(月) 16:28:02.02何が多態すればいいのか意味不明
わけがわからないわけがわからない
C言語しか知らないしったかはしんで
横レスはしないでおいてやるけど、動的言語使ったことない奴が好き勝手書きすぎだろ・・・
動的言語で大規模なの作ろうとするポテンシャル要求されるから
やろうって奴少ないというか、実際に成果物が少なくそれが出来るならこんなスレのこんな議論にいまさら参加しにこないか・・・
0655デフォルトの名無しさん
2011/06/13(月) 18:13:37.74おまえみたいな馬鹿がいると議論の邪魔になるから出てけ
0656デフォルトの名無しさん
2011/06/13(月) 18:16:53.90その上、型宣言したところで動的型検査や実行時例外は残る。
そんぐらいなら動的型で書けたほうがマシだね。
0657デフォルトの名無しさん
2011/06/13(月) 18:44:49.22いやむしろ俺C言語はいくら勉強しても身に付かねえ
ほぼJavaとJSとPythonとRubyしか書けないんだがマジでそれどういうコードよ
型分岐とかほとんどそれらの言語でやることねえよ
多態と型変換でだいたい書けるだろ
0658デフォルトの名無しさん
2011/06/13(月) 19:03:18.68おまえんとこの動的言語のコンパイラは構文エラーも吐かないのかよwww
0660デフォルトの名無しさん
2011/06/13(月) 19:22:23.79一般的な話。
完璧じゃないなら諦めた方がマシという考え方は
多くの場合間違いだよ。
完璧に安全じゃないなら、安全装置はないほうがいい。と
言い換えれば分かるだろ。
残ってもいいじゃないか。
減らせるんだからさぁ
0662デフォルトの名無しさん
2011/06/13(月) 19:24:42.03実際に実行する行になるまで
構文エラーをはかない言語ならある。
0663デフォルトの名無しさん
2011/06/13(月) 19:42:15.05ああ、N-BASICとか、実行された時にSYNTAX ERRORとか吐いてたなw
0664デフォルトの名無しさん
2011/06/13(月) 19:43:22.91でもその安全装置がカバーしてる範囲は
自動化(型推論)で安全確保できるわけだけれども?
0665デフォルトの名無しさん
2011/06/13(月) 19:44:31.84完璧じゃない安全装置は、いつでも手動に切りかえられるようにするべき
手動に切りかえるノウハウが不十分なら装置はないほうがいい
0666デフォルトの名無しさん
2011/06/13(月) 19:50:58.20手動でやればいいんじゃね?
静的言語でも、コンパイラがやってくれる方チェックを
手動でやることは可能だよ。
机上デバッグっていうんだ。
0667uy ◆yyC0rYWEq2
2011/06/13(月) 19:52:37.20>>657
話すべき場所はそこじゃないんだよ
かけるかかけないかじゃなくて、安全性の話、それもかなり高度な話題( に、なるべきだった )
もし動的言語で安全に安全にソースコードを書こうとしたら
class A
attr_accessor :x
end
class B < A ; end
def a c
if c.class != A
return p :err
end
p c.x = 10
end
a A.new
a B.new
こうやっていちいち型チェックしなければ安全とはいえない
どこかのバカが同じメンバ変数を持った別物のクラスBを渡しちゃうかもしれない
その可能性がすべてのライブラリとコードに混ざるのが動的言語、
こんなコードをすべてのメソッドにかくのか? かかない。こんなコードかくくらいなら最初から静的言語使うから。
本来クラスそのものをやたら渡すコードなんて書いちゃいけないのが普通だけど、常識はずれのコード書く奴だっているから
アホがプロジェクトに1人いたら絶対に動的言語での開発無理
静的言語で起こるバグに加え、動的言語ではすべてが「多態」になることによって動的言語特有の問題がプラスされるんだよ
0668デフォルトの名無しさん
2011/06/13(月) 19:53:06.65wikipediaにはこんなふうに書いてあるのですが、
> 型推論を持つ言語としてはHaskell、ML、Vala、C#、Scala、Objective Caml、
> D言語、Concurrent Cleanなどがある。JavaやC++0xでも導入が検討されている。
> 静的型付け関数型言語のほとんどが型推論の機能を持っている。
つまり静的言語はいいよねって話ですか?
0669デフォルトの名無しさん
2011/06/13(月) 19:55:19.26型推論(かたすいろん)とはプログラミング言語の機能の1つで、
静的な型付けを持つ言語において、変数や関数の型を宣言しなくても
^^^^^^^^^^^^^^^^^^^
それを導くのに使われた関数の型シグネチャなどから自動的に型を決定する機構のこと。
主に関数型言語で用いられる。
推論に失敗するとその時点でエラーを報告できるため、
少なくとも誤った型を用いる事によるバグは回避できる。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
また、記述をアルゴリズムに集中できるのでプログラムの抽象度が上がるというメリットもある。
0670デフォルトの名無しさん
2011/06/13(月) 19:58:01.84動的言語に型推論を適用すると、結果として静的言語として扱えるということだが?
0671デフォルトの名無しさん
2011/06/13(月) 19:59:01.150672デフォルトの名無しさん
2011/06/13(月) 19:59:46.84静的言語に向かうってことでしょ?
0673デフォルトの名無しさん
2011/06/13(月) 20:00:52.60純粋な動的言語は型を推論しないことが
特徴なのに変なの
0674デフォルトの名無しさん
2011/06/13(月) 20:01:49.59それ、どっちにしても実行時にしかチェックできないじゃん。 つか、間違った型渡してたら
そんなチェックするまでもなく、大概はエラーになる(文字列の除算はできないし、数値の連結も
できない)し、たまたまエラーにならなかったとしても、それを、型が違うからとエラーにするのか、
想定内とするのかは、呼び出し側の文脈によるでしょ。
静的言語でいう安全性の売りって、動かしてみるまでもなく、コンパイル時にチェックできるってことでしょ。
0675デフォルトの名無しさん
2011/06/13(月) 20:02:28.45書くのを省略できるってだけの機能だから。
0676デフォルトの名無しさん
2011/06/13(月) 20:11:46.98ちがうよ。
動的言語のほうが静的言語よりも自由度が高く、かつ、
静的言語が主張する安全性も保証することができるんだよ。
0677デフォルトの名無しさん
2011/06/13(月) 20:12:35.42動的型か静的型かは本質じゃないよな
0678デフォルトの名無しさん
2011/06/13(月) 20:14:21.32物は言いようってやつだなw
> 静的言語よりも自由度が高く
論理的に間違っていることでも実行出来るだけ
> 静的言語が主張する安全性も保証することができる
できるできないの話ではない。
簡単にできるかどうかだ。
0679デフォルトの名無しさん
2011/06/13(月) 20:15:30.63やってるかどうかではなく、
どれだけできるかどうかの問題でしょ。
人間が型を教えることで、
コンパイラはより高度にコードを解釈できる。
0680デフォルトの名無しさん
2011/06/13(月) 20:17:51.92動的言語ならエラーにならない!といって実行しても
結局実行したときに、エラーと判断されるだけだからなぁw
動的言語「動かしてみたら動きませんでした!」
静的言語「うん、知ってる」
0681デフォルトの名無しさん
2011/06/13(月) 20:20:34.840682デフォルトの名無しさん
2011/06/13(月) 20:22:53.81俺も思った
0683デフォルトの名無しさん
2011/06/13(月) 20:29:51.95コード速くかけるようになったし。
もう動的言語のメリットはない。
0684デフォルトの名無しさん
2011/06/13(月) 20:31:07.90試食しなくても味は保証できるとか言う奴は危険だよな
0685デフォルトの名無しさん
2011/06/13(月) 20:54:57.310686携帯
2011/06/13(月) 21:12:33.97話がマジで伝わってない
…とりあえず静的言語よりも動的言語のほうが自由度は高いけど
大規模なプログラム開発には向いていないとだけ覚えておけよ
勿論、使い手の采配次第で余裕で突破可能な問題だけどね?
それを説明するとなると20レスくらいにわたって長文をかくことになる
今多くの優秀なプログラマがバカ君たちに動的言語でプログラミングさせても安全性を保つ方法を世界が考えてる段階
補助輪をなくしたほうがスピードはでる自転車
けれどバカ君は補助輪なくすと転ぶから
補助輪つき
つまり静的言語を使わせるしかないっていう話
君はどっちだ?
0687デフォルトの名無しさん
2011/06/13(月) 21:21:06.700688デフォルトの名無しさん
2011/06/13(月) 21:24:59.45もう完全に感覚の話でしかないが、レゴブロックで組み上げた方がカッチリしたいいものが作れると思ってしまう。
ただ、設計ミスった時の悲惨さも静的型言語の方が上。
0689デフォルトの名無しさん
2011/06/13(月) 21:25:26.8320レスもいるかよ、
テスト駆動開発にする。
ほら、一行で克服できたw
0690デフォルトの名無しさん
2011/06/13(月) 21:31:23.17パターンマッチを指して言ってるとすると辻褄が合うな。
動的型付けでパターンマッチ出来るのと言えばErlang位かな。使ったことないけど。
0691デフォルトの名無しさん
2011/06/13(月) 21:43:38.78静的型言語と変わらないってこと?
0692デフォルトの名無しさん
2011/06/13(月) 21:44:22.500693デフォルトの名無しさん
2011/06/13(月) 22:01:32.36無責任極まりないな
0694デフォルトの名無しさん
2011/06/13(月) 22:07:46.69例えば新人君ばかりを集めて、大規模開発をやるとなったら、
いくら優れた方法論を採用したとしても、品質を保つことは、
困難だと言わざるを得ない。
0695デフォルトの名無しさん
2011/06/13(月) 22:10:29.32そもそも動的型付ってなんじゃらほい。
単に型が会わず例外を出すのが危険とか下らない事をいうのなら、
型のミスマッチをしないように動的言語を作ってしまえばいいだけの話。
例えば、どんな型だろうが演算子やメッセージに対する動作が、今の型の動作をするか
もしくは、空の振る舞いをするようにするかそれだけでいい話。
それじゃあ、バグの検知率が下がるというなら別にそれは、静的型で
間違った値を引数に渡したのと同じ話。危険度なんて大差ないだろう。
ただ、こういう実装を作った場合、パフォーマンスの悪さがバカにならんのが問題だけど。
0696デフォルトの名無しさん
2011/06/13(月) 22:24:02.550697デフォルトの名無しさん
2011/06/13(月) 22:27:53.690698デフォルトの名無しさん
2011/06/13(月) 22:30:01.10これを一つ統合してやれば違うあり方が見えてくるんじゃないか。
0699デフォルトの名無しさん
2011/06/13(月) 22:34:10.090700デフォルトの名無しさん
2011/06/13(月) 22:35:00.12RubyとかPythonは値が型を持ってるから別に分離してないよ
それとももっと高尚な話?
% ruby -e 'p "hoge".class'
String
0701デフォルトの名無しさん
2011/06/13(月) 22:38:22.36どちらかの所有関係にあるんじゃなく1つだって事。
型がごく普通の演算対象 演算と言ってもinstanceofとかじゃなくてさ。
0702デフォルトの名無しさん
2011/06/13(月) 22:43:49.68あれと似たようなもんで型とデータを同一な感じでそうさ出来ればいい。
値が変化すると型も変化する。
0703デフォルトの名無しさん
2011/06/13(月) 22:53:17.28OOが根本から否定されるな…
0704デフォルトの名無しさん
2011/06/13(月) 22:53:52.77その値がどういう型という事を考えなくていい。
最終的な演算結果は結果の型(と値が一体化したもの)になるから、間違ってるかどうかは
その型(と値が一体化したもの)全体てき構造をみれば解る。
0705デフォルトの名無しさん
2011/06/13(月) 23:09:38.50var value_type := example<10,20>;
0706デフォルトの名無しさん
2011/06/13(月) 23:13:54.79コンストラクターのように値を引数にとって処理するわけじゃないからね。
0707デフォルトの名無しさん
2011/06/14(火) 00:32:27.08Javaでもぬるぽ出まくるわけだが、それについての見解は?
0708uy ◆yyC0rYWEq2
2011/06/14(火) 01:25:47.14ゴミ言語Hakell以下の更なるゴミ以下の冗談みたいな言語とかってなると
流石に、その言語の存在自体を漏れは認めたくない
ゴミ箱の中にすら入れたくない
漏れのPCには、さまざまな言語環境が入っているけれど
JAVAだけは、Eclipceをインストールして起動した瞬間に全身に鳥肌がたってあと極度の吐き気と嫌悪感に見舞われ
一度起動して、ハローワールドを実行さえする前に意識朦朧とする中どうにかアンインストールして、それっきり触れる事や
JAVAについて考えることさえしないし、したくない
関係のないことをいうと、ぬるぽのように特定のエラーメッセージというか特定の文章を繰り返し繰り返し、人が
見続けたり、読み続けるのは精神によくない、プログラマ全般にその類の精神の汚染はいえるけど、
JAVAプログラマは特にぬるぽ汚染がひどいんだろうな
0709デフォルトの名無しさん
2011/06/14(火) 01:54:33.570710デフォルトの名無しさん
2011/06/14(火) 02:55:13.78Javaなんだが
0711デフォルトの名無しさん
2011/06/14(火) 07:22:33.29実装の多重継承や、参照じゃないオブジェクトをフィールドに持てないだろ。
0712デフォルトの名無しさん
2011/06/14(火) 07:42:59.770713デフォルトの名無しさん
2011/06/14(火) 09:34:38.37しょぼいからとか本気で思ってそう
0714デフォルトの名無しさん
2011/06/14(火) 10:41:32.110715デフォルトの名無しさん
2011/06/14(火) 11:09:51.91そもそも、その例ならJavaでも型分岐でしか区別できなくね?
BはAのサブクラスだから引数型のチェックには引っかからない
「同じ構成の別物」どころか「同類」なんだから同様の挙動をしなきゃならない場面
0716デフォルトの名無しさん
2011/06/14(火) 17:30:34.84つ ダブルディスパッチング
0717デフォルトの名無しさん
2011/06/14(火) 17:37:29.42ダブルディスパッチなら型分岐は使わずに済むが
それはそれで、やっぱり動的静的問わず同じ実装方法になると思うが…
0718デフォルトの名無しさん
2011/06/14(火) 17:39:03.60しょぼいからというより、当時のしょぼい環境で処理系の移植性が求められたから。
実際、K&RなCはシンプルないい言語だ。
モダンなCは腐臭がするけどな。
0719デフォルトの名無しさん
2011/06/14(火) 17:41:29.97そりゃそうだろ、
オブジェクトの型つまり動的型で分岐したいのだから、
動的型言語みたいなコードになって当然。
0720デフォルトの名無しさん
2011/06/14(火) 20:54:37.490721デフォルトの名無しさん
2011/06/14(火) 21:27:43.020722デフォルトの名無しさん
2011/06/14(火) 21:33:11.040723デフォルトの名無しさん
2011/06/14(火) 22:42:44.190724デフォルトの名無しさん
2011/06/14(火) 22:43:42.92え?しょぼいからだよ?
0725デフォルトの名無しさん
2011/06/14(火) 23:48:34.19速度やいろんな理由でcharの配列があるのは分かるだが、
それに加えて文字列型を加えない理由はないからな。
0726デフォルトの名無しさん
2011/06/14(火) 23:52:00.99> Javaでもぬるぽ出まくるわけだが、それについての見解は?
(笑)
いや、世の中に完璧なものはない。
より良くなっていればそれで良い。
0727デフォルトの名無しさん
2011/06/15(水) 00:05:26.68>大規模なプログラム開発には向いていないとだけ覚えておけよ
「大規模なプログラム」ってuy君が大好きなRubyで例えるとどれくらいのサイズ?
0728デフォルトの名無しさん
2011/06/15(水) 00:13:31.68何だこれはw
100Rubyとか答えれば良いのか?www
0729デフォルトの名無しさん
2011/06/15(水) 00:17:59.320730デフォルトの名無しさん
2011/06/15(水) 00:19:33.050731デフォルトの名無しさん
2011/06/15(水) 00:21:34.030732デフォルトの名無しさん
2011/06/15(水) 00:24:09.53自演じゃ無いけど、こんなネタならいつか自演してみたいなw
0733デフォルトの名無しさん
2011/06/15(水) 00:37:50.92地球のことを考えたら動的言語を使うのはやめよう
0734デフォルトの名無しさん
2011/06/15(水) 00:49:02.46ほら見て!こんなこと書いてるのは静的厨なんです。
いやになったでしょう?
0735デフォルトの名無しさん
2011/06/15(水) 00:53:03.04原発のないクリーンな世界を実現しよう
0736デフォルトの名無しさん
2011/06/15(水) 01:02:20.40両方嫌になりますた
動的でも静的でもない無的言語を所望しまつ
0737デフォルトの名無しさん
2011/06/15(水) 01:22:17.79動的厨が食べろよな
0738デフォルトの名無しさん
2011/06/15(水) 01:24:55.420739デフォルトの名無しさん
2011/06/15(水) 03:32:49.33いや、動的型でも代数データ型は実装可能だが?
ただコンストラクタにグローバルなIDを振る必要があるから、不便なだけ。
0740デフォルトの名無しさん
2011/06/15(水) 04:17:06.74むしろ破壊代入の有無のほうが関連度が高い。
0741デフォルトの名無しさん
2011/06/15(水) 06:19:40.19値が異なると分岐しないといけないし安全に分岐する自信がない
分岐したくないでござる
0742デフォルトの名無しさん
2011/06/15(水) 08:37:31.06この変数にはこの型しか入らないというテスト
0743デフォルトの名無しさん
2011/06/15(水) 10:23:53.12オブジェクト実体には型はないのか
表現式には型はないのか
関数には型はないのか
0744デフォルトの名無しさん
2011/06/15(水) 10:25:44.64「違う」という基準が動的型と静的型で違うだけだって事に気付け
0745デフォルトの名無しさん
2011/06/15(水) 10:32:45.47いろいろ学んだけどやっぱC++っぽく書いた
0746デフォルトの名無しさん
2011/06/15(水) 13:22:22.60Haskellだって文字列はCharのリストだがしょぼくない
Cの文字列が不便なのはメモリ管理が不便だから
だからCでもGC付けるとchar*に対してマシなAPIが用意できる
0747デフォルトの名無しさん
2011/06/15(水) 13:33:59.66Cの文字列の問題はオーバーランだろ。
だからGCつけて境界チェックすればマシになる。
0748デフォルトの名無しさん
2011/06/15(水) 13:38:28.810749デフォルトの名無しさん
2011/06/15(水) 13:48:10.490750デフォルトの名無しさん
2011/06/15(水) 13:54:55.29GCあれば関数に固定長バッファなんて渡す必要が無く、
結果としてオーバーランなんて起こらない
だから不便なのはメモリ管理であって境界チェックは関係無い
境界チェックだけが問題なら strcpy_s とか gets_s でいい
0751デフォルトの名無しさん
2011/06/15(水) 16:29:48.71性能落ちたりしないの?
0752デフォルトの名無しさん
2011/06/15(水) 17:34:32.960753デフォルトの名無しさん
2011/06/15(水) 17:52:57.73なくならないように思うけどそうでもないの?
0754デフォルトの名無しさん
2011/06/15(水) 18:01:24.86ただC言語は根本的にそういう考慮が無さ過ぎるのよね
0755デフォルトの名無しさん
2011/06/15(水) 18:19:01.10バッファの境界チェックにしろGCにしろ
そういうのが欲しければ他に任せてしまった方がいいんじゃ
0756デフォルトの名無しさん
2011/06/15(水) 18:29:35.700757デフォルトの名無しさん
2011/06/15(水) 18:33:04.69C++で書き直せや
0758デフォルトの名無しさん
2011/06/15(水) 18:38:28.30例外を投げればifを書かなくていいし
分岐したくないでござる
0759デフォルトの名無しさん
2011/06/15(水) 18:41:06.770760デフォルトの名無しさん
2011/06/15(水) 18:49:59.09LinuxはGCCしか使われてないんだから
その気になればどうにでもなるでしょ
0761デフォルトの名無しさん
2011/06/15(水) 19:05:05.12by 俺
0762デフォルトの名無しさん
2011/06/15(水) 20:32:44.26ばーか、GCあろうが、ヌル文字潰されたら普通にオーバーランするよ。
0763デフォルトの名無しさん
2011/06/15(水) 20:42:06.86潰すなよw
0764デフォルトの名無しさん
2011/06/15(水) 20:46:32.22お前等C/C++好きすぎだろwww
0765デフォルトの名無しさん
2011/06/15(水) 20:51:14.22本筋は別
0766デフォルトの名無しさん
2011/06/15(水) 20:53:11.900767デフォルトの名無しさん
2011/06/15(水) 20:59:48.13次行こうぜ
0768デフォルトの名無しさん
2011/06/15(水) 21:07:57.95まぁ組み込み出身だからだけど
0769デフォルトの名無しさん
2011/06/15(水) 21:09:36.90C+
C++
C+++
C++++
C+++++
C++++++
C+++++++
C++++++++
C+++++++++
C++++++++++
C+++++++++++
C++++++++++++
C+++++++++++++
C++++++++++++++
C+++++++++++++++
C++++++++++++++
C+++++++++++++
C++++++++++++
C+++++++++++
C++++++++++
C+++++++++
C++++++++
C+++++++
C++++++
C+++++
C++++
C+++
C++
C+
C
0770デフォルトの名無しさん
2011/06/15(水) 21:22:34.44次、次
0771デフォルトの名無しさん
2011/06/15(水) 21:24:58.72動的言語は動的だからではなく単にいい加減だから
セキュアだったり大規模だったりな開発には向かないってきがしてきた。
0772デフォルトの名無しさん
2011/06/15(水) 21:29:09.87型検査が無いと不安、有ると「安心」ってなら分かるけど。
0773デフォルトの名無しさん
2011/06/15(水) 21:31:58.500774デフォルトの名無しさん
2011/06/15(水) 21:37:05.810775デフォルトの名無しさん
2011/06/15(水) 21:38:22.750776デフォルトの名無しさん
2011/06/15(水) 21:38:55.550777デフォルトの名無しさん
2011/06/15(水) 21:58:13.13> type safety and dynamic typing are mutually compatible.
Erlang とか
http://erlanginside.com/interview-with-kostis-sagonas-leader-of-the-hipe-team-and-erlang-tool-developer-244
0778デフォルトの名無しさん
2011/06/15(水) 22:03:15.27へぼすぎてワロタわ
0779デフォルトの名無しさん
2011/06/15(水) 22:03:26.02C#でduck typingできるしな。
0780デフォルトの名無しさん
2011/06/15(水) 22:14:46.26erlangで
test() -> 1 + "a".
みたいな関数を書くと、コンパイルは通るが、実行時に型エラーで落ちるよ。
0781デフォルトの名無しさん
2011/06/15(水) 22:14:53.05なぜ動的静的ってくくりが時代遅れになるのか
言っている意味がよくわからんのだが
0782デフォルトの名無しさん
2011/06/15(水) 22:22:31.39つまり、ちゃんと型エラーを補足できているという訳
0783デフォルトの名無しさん
2011/06/15(水) 22:23:53.39Erlangは知らんが、お前はtype-safetyを勘違いしてないか?
ちゃんと>>777のリンク先読んだ?
0784デフォルトの名無しさん
2011/06/15(水) 22:25:38.620785デフォルトの名無しさん
2011/06/15(水) 22:29:41.20C#のdynamic変数は動的型付けだから、
ひとつの言語の中で静的/動的両方混ぜられるからだろう
関数型とオブジェクト指向が混ぜられる言語があっても
それらの分類に意味があるように、
静的/動的って分類が時代遅れってことはないと思うけどね
0786デフォルトの名無しさん
2011/06/15(水) 22:31:08.23それは型安全とは関係無い
無知乙
0787デフォルトの名無しさん
2011/06/15(水) 22:35:08.86head []
reverse [0 ..]
みたいなエラーがある
0788デフォルトの名無しさん
2011/06/15(水) 22:36:14.07悪いが、せめてこれくらいは読んでからきてくれ。
http://www.cis.upenn.edu/~bcpierce/tapl/
0789デフォルトの名無しさん
2011/06/15(水) 22:38:23.16それは型エラーじゃない
0790デフォルトの名無しさん
2011/06/15(水) 22:39:03.570791デフォルトの名無しさん
2011/06/15(水) 22:41:56.400792デフォルトの名無しさん
2011/06/15(水) 22:42:19.39coqの例だとhead_tail : {xs:list a | ~ null xs} -> { y:a & { ys:list a | cons y ys = xs }}
みたいな型によって関数が満たすべき性質を強制することができる
ついでにコメントにもなるし、利点だけみれば静的言語の進化の方向性としては結構理想的だね
もっとも、現状ではこのスタイルで本格的な規模のコード書くとなると博士論文クラスになってしまうけど・・・
0793デフォルトの名無しさん
2011/06/15(水) 22:42:26.33http://www.cis.upenn.edu/~bcpierce/papers/harmful-mfps.pdf
0794デフォルトの名無しさん
2011/06/15(水) 22:48:29.11[1,9,[3,4,7],[5,6],2,8,0]
0795デフォルトの名無しさん
2011/06/15(水) 22:50:19.85List<Object>
0796デフォルトの名無しさん
2011/06/15(水) 22:51:16.59ああ、言われてみればそうか
0797デフォルトの名無しさん
2011/06/15(水) 22:53:43.18それはN木だね
関数型言語とかデータ構造の教科書的には
Tree : * -> *
Tree a = Leaf : Tree a
| Fork : (a,[Tree a]) -> Tree a
ってな感じで再帰的な定義になる
0798デフォルトの名無しさん
2011/06/15(水) 22:58:00.32実装するとしたらどんな定義になるの?
0799デフォルトの名無しさん
2011/06/15(水) 22:59:07.39> ところでスレタイとか>>2で言ってる「安全」って当初はどういう意味だったの?「セキュア」じゃないよね…?
> 型検査が無いと不安、有ると「安心」ってなら分かるけど。
一言で言えば、実行前にどれだけ
静的検査が行えるかということ。
その大きな境目が、動的言語と静的言語。
0800デフォルトの名無しさん
2011/06/15(水) 22:59:43.66>>792
~ null xs (xs is not nullか)で実際にはどの程度の安全性が保証されるの?
よかったら教えておくれ
0801デフォルトの名無しさん
2011/06/15(水) 23:09:02.77type-safetyはコンパイル時にエラーで補足できることと
定義されてるなら、ぜひ引用してみてくれ
0802デフォルトの名無しさん
2011/06/15(水) 23:09:43.73絶対にnullにならない証明付きのxsしか受け取らないっていう保障
head_tailを使う為にxsがnullになら無い証明を使用者に強制できる
逆にこの戻り値はこの関数を使用したときに別の関数で利用できる証明を含んでるから
この証明を使って別の関数が要求する証明を組み立てることに使ったりする
0803デフォルトの名無しさん
2011/06/15(水) 23:25:03.85サンクス。実効的にはコーディングしてる時点で
関数呼び出しの事前条件を満たすことが保証されることになるのかな
横にそれるけどPerlやRubyのtaintを思い出した
0804デフォルトの名無しさん
2011/06/15(水) 23:40:27.87> んじゃあ次に、C++やJavaでmap(型じゃなくて、関数型やスクリプトで使われるアレ)って
> 実装するとしたらどんな定義になるの?
しばらくJavaやってないから忘れたけど、これでいいんじじゃね?
class オレオレアルゴリズム集クラス {
public static<R,P> List<R> map(Function<R,P>, List<P>)) {
}
}
mapの引数と戻り値の型が同じなら
public static<T> List<T> map(Function<T>, List<T>))
これでいいと思うけど。
0806デフォルトの名無しさん
2011/06/17(金) 20:03:49.260807デフォルトの名無しさん
2011/06/17(金) 20:09:42.56静的か動的以前の問題があるんだから。
0808デフォルトの名無しさん
2011/06/17(金) 20:10:38.66"Python Could Become the Language of Finance"
http://www.infoq.com/news/2010/04/Python-ABS
って記事を見つけた
0809デフォルトの名無しさん
2011/06/17(金) 20:15:47.540810デフォルトの名無しさん
2011/06/17(金) 21:31:40.79自分は使う側だけど、endifが一個足りないだけっていう単純な文法エラーで半日くらいデータベース使えんかった
vbScript触った事無かったけど、趣味でプログラミングしてたから、開発担当者に「このモジュール(関数)でエラーが出てるみたいなんだけど。。。」と言ったら、プリントアウトして持ってった
結果が上の文法エラー
。。。開発部署のプログラマ、テストしてねーだろ
どっちもどっちなのかも知れんが、静的型の方が、こう言うのはマシだったんじゃないか?と思う
0811デフォルトの名無しさん
2011/06/17(金) 21:58:49.010812デフォルトの名無しさん
2011/06/17(金) 22:02:13.390813デフォルトの名無しさん
2011/06/17(金) 22:02:44.220814デフォルトの名無しさん
2011/06/17(金) 22:03:01.600815デフォルトの名無しさん
2011/06/17(金) 22:07:00.46テスト以前の問題。
0816デフォルトの名無しさん
2011/06/17(金) 22:11:59.470817デフォルトの名無しさん
2011/06/17(金) 22:16:12.06実行しなければどうということはない
0818デフォルトの名無しさん
2011/06/17(金) 22:38:41.490819デフォルトの名無しさん
2011/06/17(金) 22:39:21.16アホか
0820デフォルトの名無しさん
2011/06/17(金) 22:45:34.38VB 系の言語で Eval() 使ってるとか
0821デフォルトの名無しさん
2011/06/17(金) 22:53:40.890822デフォルトの名無しさん
2011/06/17(金) 23:04:19.86有り難がるくせに、なんで型に関しては
実行前のチェックが気にくわないんだろうな。
それともパースも実行時エラーにして欲しいのかい?
実行すればエラーかどうか分かるから不要だろ?w
0823デフォルトの名無しさん
2011/06/17(金) 23:06:40.52なぜ実行後にチェックするんだよ
0824デフォルトの名無しさん
2011/06/17(金) 23:08:13.14テスト走らすどころか一度も実行してないコードを
コミットするなんざ論外だと言ってる
0825デフォルトの名無しさん
2011/06/17(金) 23:14:51.390826デフォルトの名無しさん
2011/06/17(金) 23:17:15.540827デフォルトの名無しさん
2011/06/17(金) 23:18:14.84言語はそのままでサポートが手厚くなるのは有り難い。
サポートしてやるから言語を改変しろみたいなトレードオフは損得を評価しにくい。
0828デフォルトの名無しさん
2011/06/17(金) 23:24:17.78インタプリター静的型 cint (C/C++が走る)
コンパイル動的型 Objective-C,Lisp
0829デフォルトの名無しさん
2011/06/17(金) 23:33:32.62メリット:duck typing, monkey patching 可能
デメリット:静的型検査なし
0830デフォルトの名無しさん
2011/06/17(金) 23:46:01.45コミット量見て言えっての
一々確認する時間なんてあるわけねーんだが?
0831デフォルトの名無しさん
2011/06/17(金) 23:54:58.99自分が書いたコードくらいコミット前に自分で確認・テストすべきだし、
手が早いならテスト書く時間くらい簡単に取れるだろ
0832デフォルトの名無しさん
2011/06/18(土) 00:10:31.25静的言語でもコンパイルすら通さずコミットすると思う
0833デフォルトの名無しさん
2011/06/18(土) 00:12:28.70型チェックのテストコード書いて
それを実行して、その結果ついに
どんな状況でも型が違うという問題を解決した。
一方静的言語を使った。
0834デフォルトの名無しさん
2011/06/18(土) 00:13:34.64動的言語で型チェックのテストコードを書かないと思う。
0835デフォルトの名無しさん
2011/06/18(土) 00:15:42.52型が変わっただけなら、コンパイラが矛盾しているところを
教えてくれって思う。
0836デフォルトの名無しさん
2011/06/18(土) 00:17:29.52型を書くのを省略できるってのはおまけ
0837デフォルトの名無しさん
2011/06/18(土) 00:21:19.61インデントが汚くて気付かなかったらしい
本職プログラマでそんな奴が混じってんのかよ。。。と呆れたよ
0838デフォルトの名無しさん
2011/06/18(土) 00:21:52.81土方使った開発に不向きという話に戻る
0839デフォルトの名無しさん
2011/06/18(土) 00:38:40.38仕事で利用する側は、マジ笑えない
データベースとかはほぼ全社員の業務に支障きたすから、動かない時の影響大き過ぎ
0840デフォルトの名無しさん
2011/06/18(土) 00:40:16.93手元のテストが当てにならんからな
マージとエラー治してる時間が多くなるから
まとめてしばいちまったほうがはやい
0841デフォルトの名無しさん
2011/06/18(土) 00:44:58.720842デフォルトの名無しさん
2011/06/18(土) 00:46:16.18Python3ではこんな感じに型チェック(範囲指定付き)を書ける
だからテストコードを書くのは楽だろう
@validate
def myfunc(n:Int(min=1, max=10)) -> Str(maxlen=10):
return '#'*n
ま、動かしてみるまで分からんのは一緒だけどね
0843デフォルトの名無しさん
2011/06/18(土) 00:57:01.98> 動的言語のメリットは>>829みたいな柔軟さであって
柔軟というかバグの元になるし、
やろうと思えば同じことはできる。
しかもより安全に。
0844デフォルトの名無しさん
2011/06/18(土) 01:00:23.410845デフォルトの名無しさん
2011/06/18(土) 01:03:48.04Javaでもリフレクション使ったら安全さは大差無い
しかも>>844
0846デフォルトの名無しさん
2011/06/18(土) 01:15:47.57安全なことは簡単に行え
危険なことはやるのが大変。
それが正しい道だ。
0847デフォルトの名無しさん
2011/06/18(土) 01:17:39.52インターフェースじゃ駄目で、duck typingじゃないといけない
現実にありそうな例ってまずない。
duck typingはやりたくてやるもんじゃなくて、
危険じゃないよ。duck typingという手法なんだよ!って
言い訳するために作られた言葉。
0848デフォルトの名無しさん
2011/06/18(土) 01:18:38.320849デフォルトの名無しさん
2011/06/18(土) 01:22:52.41アヒルのように歩き、アヒルのように鳴いても
水に浮かべたら沈むおもちゃかもしれないしな。
言い訳にしか聞こえない。
0850デフォルトの名無しさん
2011/06/18(土) 01:23:06.41haskellですね!!
0851デフォルトの名無しさん
2011/06/18(土) 01:27:14.27それはinterfaceにもまったく同じことが言えるだろ、アホか
0852デフォルトの名無しさん
2011/06/18(土) 01:33:06.00補助輪付きのJava使ってれば良いって言ってるのに
なんで他人が使う言語にまで口出ししてるの?
0853デフォルトの名無しさん
2011/06/18(土) 01:36:17.90一人なら勝手に使ってればいい
0854デフォルトの名無しさん
2011/06/18(土) 01:37:49.120855デフォルトの名無しさん
2011/06/18(土) 01:38:00.440856デフォルトの名無しさん
2011/06/18(土) 01:39:13.40C#
理由は>>779>>785
0857デフォルトの名無しさん
2011/06/18(土) 01:40:00.90C♯以外にありませんか?
0858デフォルトの名無しさん
2011/06/18(土) 01:41:02.38なんで自分と自分の周りが低能ぞろいだからって
他人まで同じだと思うの?
0859デフォルトの名無しさん
2011/06/18(土) 01:41:50.70は?
インターフェースのことを、アヒルのように〜なんて
言ったこと無いし。
0860デフォルトの名無しさん
2011/06/18(土) 01:42:57.17ふーん
そんなにすばらしい人ばかりでコストも安く作れるわけ?
ボランティアだね
0861デフォルトの名無しさん
2011/06/18(土) 01:57:26.87Common Lisp なら動的・静的どっちでも書けるよ
0862デフォルトの名無しさん
2011/06/18(土) 01:58:55.50haskellも
0863デフォルトの名無しさん
2011/06/18(土) 02:03:00.87気になって仕方がないんだろ
なかなかがんばっても使いこなせてる気がしないから
0864デフォルトの名無しさん
2011/06/18(土) 02:29:33.15口先だけなら何とでも言える。
0865デフォルトの名無しさん
2011/06/18(土) 03:44:26.82実例をあげることならできる。
ちょっとまて今から動的言語で
ミッションクリティカルなこと
やっちまった実例探してくるから
0866デフォルトの名無しさん
2011/06/18(土) 03:55:13.22君んとこの静的言語ではeval関数の引数の文法チェックまで実行前にチェックしてくれるのか?
0867デフォルトの名無しさん
2011/06/18(土) 03:55:41.50東京ガスの防災システム
ほぼ全面的にRubyで記述されているらしい
ちゃんと3/11には作動したのだとか
0868デフォルトの名無しさん
2011/06/18(土) 04:00:40.95haskell以外では?
0869デフォルトの名無しさん
2011/06/18(土) 04:11:03.45Strongtalk, Gemstone Smalltalk
0870デフォルトの名無しさん
2011/06/18(土) 04:12:38.02あとアメリカの銀行系でもSmalltalkの事例があったような
0871デフォルトの名無しさん
2011/06/18(土) 04:18:03.410872デフォルトの名無しさん
2011/06/18(土) 04:28:05.60初めて現れた、マトモに扱えるオブジェクト指向言語だったからでしょ
(Smalltalkみたいに敷居が高くもなく、C++みたいに言語仕様がぐちゃぐちゃでもなかった)
ホントはSmalltalkが普及してれば、ずっと良かったんだろうけどな
0873デフォルトの名無しさん
2011/06/18(土) 04:42:53.580874デフォルトの名無しさん
2011/06/18(土) 04:57:08.020875デフォルトの名無しさん
2011/06/18(土) 05:00:59.170876デフォルトの名無しさん
2011/06/18(土) 06:00:23.030877デフォルトの名無しさん
2011/06/18(土) 06:17:08.53動的言語のせいで原発が出来て
日本は放射能に汚染されてしまった
0878デフォルトの名無しさん
2011/06/18(土) 06:23:19.62同意
0879デフォルトの名無しさん
2011/06/18(土) 06:32:30.680880デフォルトの名無しさん
2011/06/18(土) 06:41:55.18実用するにはどっちが楽かはまた別だろうけど。
Smalltalk より Java のほうが、
(製作者や Sun or Oracle に不義理をしたので、)敷居が高い。
0881デフォルトの名無しさん
2011/06/18(土) 06:58:41.18だからSmalltalk由来のVisualAge JavaからEclipseをforkして
デファクトスタンダードなIDEにした。
つまりJavaの開発環境はSmalltalk環境の劣化コピー
0882デフォルトの名無しさん
2011/06/18(土) 11:13:07.740883デフォルトの名無しさん
2011/06/18(土) 11:41:44.460884デフォルトの名無しさん
2011/06/18(土) 11:42:03.590885デフォルトの名無しさん
2011/06/18(土) 12:07:14.84で、オリジナルのSmalltalk版Visual Ageはどうなったんだ?
この言語はもうだめだと見捨てられたんだろ?
0886デフォルトの名無しさん
2011/06/18(土) 12:41:57.39大きいところが提供しているから何でもJava、もっと前ではVBとかいう方がおかしいのさ
内部統制とかいってるからこれからもっと酷くなるだろうな
0887デフォルトの名無しさん
2011/06/18(土) 12:43:31.54何にしても、こうやってけなすことにのみ必死なバカに付ける薬はない。
0888デフォルトの名無しさん
2011/06/18(土) 13:06:45.27けなすとかそういう話じゃなく、
じゃあどうなったのさ?
生き残っていたとして
機能的な点はどうなった?
0889デフォルトの名無しさん
2011/06/18(土) 13:16:44.890890デフォルトの名無しさん
2011/06/18(土) 14:08:18.93基礎知識レベルだと思ってたよ…
それすら知らない君を傷つける結果になってしまい、すまない。
0891デフォルトの名無しさん
2011/06/18(土) 14:42:06.39ちょっとひどすぎだったんで俺には言えないw
0892デフォルトの名無しさん
2011/06/18(土) 14:55:37.23どこがどこにどう繋がってるか、詳しく書いてみ。
基礎知識レベルなんだろ?
0893デフォルトの名無しさん
2011/06/18(土) 17:01:58.59何がわからないのか、具体的に言ってごらん?
おばかですか?
0894デフォルトの名無しさん
2011/06/18(土) 17:04:11.60喧嘩しないで仲良くしようぜ
0895デフォルトの名無しさん
2011/06/18(土) 18:00:02.131,開発環境がWindowsでサーバーがUNIX系だったから
2.膨大なライブラリが最初から付いてるから
3.インタプリタよりは速度がましだったから
0896デフォルトの名無しさん
2011/06/18(土) 18:08:35.71C/C++すら覚えられない低能向けにアピール成功
0897デフォルトの名無しさん
2011/06/18(土) 18:19:35.13>何がわからないのか、具体的に言ってごらん?
「どこがどこにどう繋がってるか」って具体的に書いてあるんだけど、
日本語読めないのか?
0898デフォルトの名無しさん
2011/06/18(土) 18:24:54.160899デフォルトの名無しさん
2011/06/18(土) 18:38:38.23サーバサイドでは
文法がC系列で、プログラマを信用しない言語だったから
(サーバサイドではマルチプラットフォームってあまり意味無いし)
組み込みでは
移植性の高さから
(の、はず。結局プラットフォーム毎にライブラリ違うらしいけど。少なくともCよりは移植性があるんだろう)
デスクトップでは
趣味以外では見る影もない
結局、どのOSもネイティブアプリが主流
マルチプラットフォーム展開もライブラリ単位の展開が主流
(msとの闘争でWinにプリインストールされなくなったのが大きい)
0900デフォルトの名無しさん
2011/06/18(土) 18:45:55.0510年前のjavaは今のHaskellみたいな新技術ってイメージ戦略に成功してたよ
vbやphpはjavaを覚えられない人の使う言語()みたいに見下されてたり
オブジェクト指向が設計をルーチンワーク化して猿仕事にできたり
SunやIBMが絡んでたんで企業にマッチしやすかったんだろうけどな
0901デフォルトの名無しさん
2011/06/18(土) 18:50:01.33周りの言語が糞すぎた
当時のJavaは実用的なOOPLとしては突出していたね
0902デフォルトの名無しさん
2011/06/18(土) 18:50:51.2015年くらいまえには、
カネをかけまくったJavaの宣伝と、
カネが全然かかってないPerlの宣伝の凄さは良く言われてたなw
どっちも言語仕様的にちょっと問題があるのに普及しまくった訳で
やっぱり宣伝は重要だ
0903デフォルトの名無しさん
2011/06/18(土) 18:57:34.750904デフォルトの名無しさん
2011/06/18(土) 19:00:04.83土方専用言語は伊達じゃない
0905デフォルトの名無しさん
2011/06/18(土) 19:00:32.38底辺の象徴になる時代が来るなんて想像しなかっただろう
宣伝は重要wwwwwwwwwwwwwwwww
0906デフォルトの名無しさん
2011/06/18(土) 19:03:43.23haskellはイメージ戦略で成功してたっけ?
いや、haskell好きだけどさ
企業がイメージ戦略してた話も聞かないし
javaはGUIライブラリごとマルチプラットフォーム展開したのが流行った理由だろう。とはC++の中の人が言ってた記事を読んだ事あるな
0907デフォルトの名無しさん
2011/06/18(土) 19:05:16.54C系以外で唯一実用的な言語だと思うんだが
C#は基本パクリだし
0908デフォルトの名無しさん
2011/06/18(土) 19:09:12.54じゃあ、唯一じゃないじゃん
てか、実用性では両方触った限り、C#の方が優秀だよ
0909デフォルトの名無しさん
2011/06/18(土) 19:10:06.21冷静になろうよw
0910デフォルトの名無しさん
2011/06/18(土) 19:12:22.02mono?ああそんなのもあったけ
0911デフォルトの名無しさん
2011/06/18(土) 19:15:13.51うん、冷静になったら、javaもc#もc系だよね
0912デフォルトの名無しさん
2011/06/18(土) 19:17:17.82Java土方www
0913デフォルトの名無しさん
2011/06/18(土) 19:18:48.400914デフォルトの名無しさん
2011/06/18(土) 19:19:30.240915デフォルトの名無しさん
2011/06/18(土) 19:20:43.75さちこ、それはC系とは言わん
0916デフォルトの名無しさん
2011/06/18(土) 19:28:25.79mfc>>Qt>VB6ランタイム(w)>java>.net
の順で開発されたアプリ多い気がする
他のOS気にしてる開発者ってWinには以外と少ないのでは?
逆に、macやlinuxで開発してる人がマルチプラットフォーム意識してるイメージ
0917デフォルトの名無しさん
2011/06/18(土) 19:29:01.99憎悪を発露するスレです
実は静的/動的言語という区分は関係ありません
Haskell等が憎悪の対象とならないのは
現状で自分の仕事を脅かすシェアが無いからです
0918デフォルトの名無しさん
2011/06/18(土) 20:11:06.840919デフォルトの名無しさん
2011/06/18(土) 20:38:53.30正統な後継者はC#なのに
0920uy ◆yyC0rYWEq2
2011/06/18(土) 22:15:23.11マジレスすると、
電力が安いからって電力消費気にしないプログラム設計、ハード、
そういうものを沢山作って原発が作られた背景はあると思うけど
原発の問題は、もうそこじゃなくて、核を使うなって人類全部に今更ストップかけられないところまで
世界が科学者が興味持っちゃってるんだよ
あと少し、あと少しってな・・・
さっさと核を人の制御下におけるところまで技術を発展させないとマジで、どこかの国が大きな事故を起こして世界滅びる
レベル7なんてまだまだ・・・
核爆発は起こりえないっていってるけど、
それは計算された核爆発が起こらないだけであって
100年以上冷やし続けても触るとまだ暖かい物質がそこにあるんだよ、太陽をまず見てみれば良い
核エネルギーってあれだぜ
1年間、冷水で冷やし続けてようやく100度以下になるらしいんだよ
マジで1歩間違えば何が起こるか予測不可能、
これはまだ20数年しか生きていないにしろおれの責任でもある
エネルギー方面を完全に何も考えずに、他の奴に委任していたんだからな・・・
世界が貧しければ戦争は起こるし、原発がなければないで戦争は起こってたかもしれず、
技術力のないアホがアホなりに頑張って今日を守る為に考えた結果が核エネルギーだったのかも知れない
世界はずいぶん無理をして豊かさを手に入れているものだよ
・・・世界を覆す力があるにもかかわらず、堕落している自分が少し許せない
0921デフォルトの名無しさん
2011/06/18(土) 23:37:54.37Java使いが煽りに来てやり返されてる、が正しい
スレタイ読め
0922デフォルトの名無しさん
2011/06/19(日) 01:51:35.49GUIとスレッドが標準ライブラリについてきて
環境非依存で実行でき、Cから見て天国のように見えたから。
0923デフォルトの名無しさん
2011/06/19(日) 03:23:44.77COBOLやVBからのreplace組が多い
0924デフォルトの名無しさん
2011/06/19(日) 04:54:54.970925デフォルトの名無しさん
2011/06/19(日) 05:28:41.47俺が何を作ろうと、煽り続けるんだろう
相手してるとつかれるんよ
0926デフォルトの名無しさん
2011/06/19(日) 09:19:38.740927デフォルトの名無しさん
2011/06/19(日) 10:31:58.39>>892
0928デフォルトの名無しさん
2011/06/19(日) 11:48:43.76>と言いつつJavaはC/C++からのreplaceは殆ど無くて
今はサーバサイドは殆ど Java と LL だけど、昔は C/C++ で作ってた。
最近は DB まで Java だったりするんだぜ。
0929デフォルトの名無しさん
2011/06/19(日) 11:51:00.580930デフォルトの名無しさん
2011/06/19(日) 13:33:36.07> 「動的言語なら安全じゃない」がtrueなら、SQL使ってるアプリは全滅ですね
全滅かどうかは別として、やっぱり使いにくいよな。
SQL文を埋め込んでると、条件が複雑になったとき
実行時にシンタックスエラーでてむかつくし
O/Rマッパーとか使ってSQL文書かない方法もあるけど、
データベースと言語の型の違いで、型変換でエラーでたり
オーバーフローしたりNULLが入る可能性を見逃していたり。
もしデータベースの型と言語の型をコンパイラ側で正しく一致
させてくれたらそんな些細なバグなんてなくなるのにね。
0931デフォルトの名無しさん
2011/06/19(日) 13:44:21.68Integer が 32bit 幅だなんてプログラムの外ではナンセンスな話だし
0932デフォルトの名無しさん
2011/06/19(日) 14:45:59.67VMの実装がつながってんだよ
知らねえの?
0933デフォルトの名無しさん
2011/06/19(日) 16:15:42.75「どこがどこにどう繋がってるか」って書いてあるんだから、
とっとと書いたら?
0934デフォルトの名無しさん
2011/06/19(日) 16:32:59.94VMって何か知らないの?おばか?
0935デフォルトの名無しさん
2011/06/19(日) 16:40:39.44で、VMのどこがどこにどう繋がってるんだ?
基礎知識なんだろ、早く書けよ。
0936デフォルトの名無しさん
2011/06/19(日) 17:26:18.110937デフォルトの名無しさん
2011/06/19(日) 17:35:34.87それ以上何を比較しろと…
まあそれはそうと、
JavaVMベンダーの多くが元Smalltalk関係企業なのは
偶然じゃないだろうなw
0938デフォルトの名無しさん
2011/06/19(日) 17:59:24.660939デフォルトの名無しさん
2011/06/19(日) 18:43:05.75(SelfはSmalltalkに影響を受けた動的言語)という話だね
すでにSmalltalk処理系でJITは使われてたしね
0940デフォルトの名無しさん
2011/06/19(日) 18:57:43.85Self(Self) -> Strongtalk(Smalltalk+) -> HotSpot(Java) -> V8(JavaScript) は兄弟みたいなもんだね
0941デフォルトの名無しさん
2011/06/19(日) 20:04:24.20Javaは別に移植性高くねぇよ。
組み込み関係はメモリー関係で動かなくなるから特に。
むしろ組み込みなら圧倒的にCの方が移植性が高い。
IOを持たないコードはJavaと違って全く変更する必要が無いからな。
アロケータあたりが面倒だけど、それはどの言語だろうと同じ話。
0942デフォルトの名無しさん
2011/06/19(日) 20:07:52.12Cだってインタプリタで動くし、
最近はVMの使用が台頭してきてるがな。
0943デフォルトの名無しさん
2011/06/19(日) 20:12:26.520944デフォルトの名無しさん
2011/06/19(日) 20:14:32.13>それ以上何を比較しろと…
はあ? 比較ってなんだよ。
お前は、「あれでIBMのVM屋が育ってj9につながってるのは基礎知識
レベルだと思ってたよ…」って書いたんだよ。
自分の書いたことぐらい覚えとけ。
まあ、結局具体的には何も説明できないという落ちだったわけだな。
0945デフォルトの名無しさん
2011/06/19(日) 20:16:26.010946デフォルトの名無しさん
2011/06/19(日) 20:28:33.97わけわかんね
昔SmalltalkVM作ってた連中がJavaVMつくったという事実だけで十分だろ
結局おまえは「わからん」と言うだけで、何がわからんのか何1つ説明できなかった
客観的に言って、何も説明できずにいるのは、おまえだ
0947デフォルトの名無しさん
2011/06/19(日) 20:44:42.43> 昔SmalltalkVM作ってた連中がJavaVMつくったという事実だけで十分だろ
だったら、SmallTalk VM 作ってた誰べえが、Java VM 作ったと書けばいいだけだろ。
もちろんソースつきでな。
基礎知識なんだから、ソースぐらいすぐに出せるよな。
>>944
敗北宣言乙。
0948デフォルトの名無しさん
2011/06/19(日) 20:45:49.96その部分だけを延々追求していけば議論には負けないでござるな
ただし、延々議論した所で得られる知見は殆ど見込めないし、
時間と体力を消耗するだけだけど
0949デフォルトの名無しさん
2011/06/19(日) 20:47:54.270950デフォルトの名無しさん
2011/06/19(日) 20:55:58.46ググりたくなくて煽ってるだけ?
0951デフォルトの名無しさん
2011/06/19(日) 21:03:05.310952デフォルトの名無しさん
2011/06/19(日) 21:09:47.860953デフォルトの名無しさん
2011/06/19(日) 21:16:03.550954デフォルトの名無しさん
2011/06/19(日) 22:00:50.36プログラム言語と緊密には連動しない方向でまとまってるよな。
プログラム言語だけ静的にチェックできたところで「安全」にはならない。
0955デフォルトの名無しさん
2011/06/19(日) 22:09:54.29>あらゆる事実の中には証明困難な内容が必ず含まれていて、
基礎知識と書いといて、内容聞かれたら証明困難って...。
流石に恥ずかしくないのか?
>>950-951
そのリンク先のどこに、「SmalltalkVM作ってた連中がJavaVM
つくったという事実」が書いてあるんだ?
それともまた違う話なのか?
0956うゆ
2011/06/19(日) 22:12:38.12それでも動的言語から比べれば色褪せるし
ああやっぱり静的言語なんだなっていう柔軟性とはかけ離れた箇所もある
ゆっくりだけど動的言語で作られた概念が徐々に静的言語にも実装されていくんだけれど
言語処理系の作りやすさの観点から見て静的言語が動的言語の先をいくことはまずない
時代を切り開くのは動的言語側
静的言語使ってるやつって
土方なんでしょ?
0957デフォルトの名無しさん
2011/06/19(日) 22:12:52.52キーワード書いてもググる気無いとか
リンク張っても読む気無いとか
流石だなw
0958デフォルトの名無しさん
2011/06/19(日) 22:31:34.23そりゃ当たり前というか、プログラムに求めるものが違うだろうよ
大規模プログラミングでは、ガチガチに仕様も決めて、バグが無いように無いように作るんだから、そもそも柔軟性を必要にして無いんだし
そうおいそれと修正出来ない分野で使われるんだから
火星探査ロボットとか組込みシステムも修正出来ないから静的型なんだし
逆にWebは次々変更する必要があるから、動的型が主流になった
それだけの事
0959デフォルトの名無しさん
2011/06/19(日) 22:41:09.88ちがうよ
0960デフォルトの名無しさん
2011/06/19(日) 22:46:14.48違う理由をどぞ
0961相変わらず、具体性 "0" なんだな。
2011/06/19(日) 22:49:31.48>常識の話をしても理解する気無いとか
理解したいから、内容書いてくれって書いてるんだけど、
相変わらず、証明困難なの? (w
>キーワード書いてもググる気無いとか
キーワードってなに?
具体的に書いてよ。
>リンク張っても読む気無いとか
読んだ上で、「そのリンク先のどこに、「SmalltalkVM
作ってた連中がJavaVM つくったという事実」が書いて
あるんだ?」って、聞いてるんだけど。
で、書いてあるの? あるなら、どこにあるの?
0962デフォルトの名無しさん
2011/06/19(日) 22:51:10.41もっと丁寧に質問したら教えてあげる
0963デフォルトの名無しさん
2011/06/19(日) 22:56:49.700964デフォルトの名無しさん
2011/06/19(日) 23:02:17.27結局SmalltalkVMをつくった人間は、JavaVMをつくったの?
それともおそらく作ったという予想?
0965デフォルトの名無しさん
2011/06/19(日) 23:04:30.140966デフォルトの名無しさん
2011/06/19(日) 23:13:21.12・ググったり、自分から調べるのはスレ住人を甘やかす事になるので禁止
・質問されたら、スレ住人は、噛んで含んで丁寧な解答を作成する事
・質問者が理解できなかったら、それはスレ住人の責任である
みたいな話?
0967デフォルトの名無しさん
2011/06/19(日) 23:14:35.07> プログラム言語だけ静的にチェックできたところで「安全」にはならない。
発想が極端すぎw
すべてが安全である必要はない。
できるだけ安全ならそれで必要十分なはずだが。
完璧な安全装置がないかぎり、安全じゃないという気かな?
0968デフォルトの名無しさん
2011/06/19(日) 23:17:25.83http://www.flownet.com/gat/jpl-lisp.html
Common Lispで書かれた宇宙機のプログラムのバグを
リモートデバッグで直したとかいう話
0969デフォルトの名無しさん
2011/06/19(日) 23:23:33.91>>890 で、
| あれでIBMのVM屋が育ってj9につながってるのは
| 基礎知識レベルだと思ってたよ…
なんて書いてるから、どう繋がってるのか書いてみと書いたら、
具体的な内容は書か (け?) ずに「作ったんだが」と書くのみで、
その作ったという人の名前すら証明困難らしい。(w
まあ、「・質問は偉そうに行う事 」にはちょっと抵触するかもし
れんが、そもそも >>890 が上から目線だったからね。
0970デフォルトの名無しさん
2011/06/19(日) 23:24:05.060 と ”0” と NULL と 空文字の扱いが
混沌としているよな。
どれが一致して、どれが真かが
言語によってバラバラ。
言語によっては変な演算子が追加されてることがあるし。
0971デフォルトの名無しさん
2011/06/19(日) 23:27:04.49> Common Lispで書かれた宇宙機のプログラムのバグを
> リモートデバッグで直したとかいう話
すごいね!
Common Lispで書かれたプログラムのバグを
リモートデバッグで直したとかいう話
でも、こっちはすごくないね!
なんだ、自分がすごいと思ったのは、宇宙機って所だけか・・・
0972デフォルトの名無しさん
2011/06/19(日) 23:28:08.82phpの===が糞な点は同意
0973デフォルトの名無しさん
2011/06/19(日) 23:28:41.31C と Haskell は 0 と "0" と NULL と空文字の扱いは一緒なの?
0974デフォルトの名無しさん
2011/06/19(日) 23:30:16.78> 逆にWebは次々変更する必要があるから、動的型が主流になった
ウェブサーバーも、メールサーバーも、データベースサーバーも
主要なサーバーは静的型が主流だと思うが?
0975デフォルトの名無しさん
2011/06/19(日) 23:30:58.220と'0'が一緒で
0と"0"は一緒じゃない
0976デフォルトの名無しさん
2011/06/19(日) 23:31:51.79>0と'0'が一緒で
違うよ
ばーか
0977デフォルトの名無しさん
2011/06/19(日) 23:32:54.53> phpの===が糞な点は同意
rubyの ===も似たようなもんだw
0978デフォルトの名無しさん
2011/06/19(日) 23:34:45.240979デフォルトの名無しさん
2011/06/19(日) 23:37:14.20基本的に型がないことが売りだから
違う型でも似ていれば同じとみなしちゃう。
でも型が違う時は、違うように判断して欲しいんだよ!って
なるから演算子が増えるのだろう。
== と eq とか
0980デフォルトの名無しさん
2011/06/19(日) 23:42:25.480981デフォルトの名無しさん
2011/06/19(日) 23:44:21.75そんなにカリカリすんなよ
ISOの規格ではソース文字集合は規定してるけどエンコーディングは規定してない
'0'==0になる俺俺エンコーディングもあるかもしれん
0982デフォルトの名無しさん
2011/06/20(月) 00:05:02.87対象が、低水準か、高水準の扱いかゆうことだけで、
動的静的は別に関係ねぇんじゃろうかと思うんじゃけぇど、
どうじゃろうか。
0983デフォルトの名無しさん
2011/06/20(月) 00:14:14.530984デフォルトの名無しさん
2011/06/20(月) 00:15:28.59俺俺エンコーディングの話なら、
最初に「俺俺エンコーディングでは'0'と0が一緒になるから」って
前置きしてから、'0'と0は一緒!って話せよw
0985uy ◆yyC0rYWEq2
2011/06/20(月) 00:27:00.59大規模プログラミングのほうが柔軟性は必要だろうが
むしろ、小規模だったら、仕様変更起きても、そのまま何箇所か手打ちで変えればいい状況
大規模なもので柔軟性皆無なソースかいてたら、数百箇所書き換えなきゃならない事態になるんだろ
結局、過度の仕様変更を受け付ける事ができないって事
0986デフォルトの名無しさん
2011/06/20(月) 00:34:19.45で、動的言語による大規模ミッションクリティカルシステムの国内事例は?
0987デフォルトの名無しさん
2011/06/20(月) 00:35:38.40その部分だけを延々追求していけば議論には負けないでござるな
0988デフォルトの名無しさん
2011/06/20(月) 00:37:27.870989デフォルトの名無しさん
2011/06/20(月) 00:38:23.11PHPはあんまり知らんが、Rubyの===ってcase文のためのメソッドだからなあ、あんまり常用するものじゃない
>>979
あんまり関係ないような…
Perlは確かに言語設計上演算子が多くなるし絶賛増殖中だけど
Lisp系なんて演算子と呼べるものはごく少数しか無くて、関数名に記号が使えるからそれっぽく見えるだけだし
0991デフォルトの名無しさん
2011/06/20(月) 00:42:01.39静的とか動的とか
安全とか危険とか
関係無い世界に来てしまったな
このスレはもう後少しで落ちるけれど、
また別のスレで同じ様な話が繰り返されるじゃろうて
0992デフォルトの名無しさん
2011/06/20(月) 00:42:22.40>>329
0993デフォルトの名無しさん
2011/06/20(月) 00:42:52.60\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
0994デフォルトの名無しさん
2011/06/20(月) 00:43:14.89ダックタイピングって怖くね?とか
そっち方面に次スレでは向かってほしい
だってLLスレがないんですもの
0995デフォルトの名無しさん
2011/06/20(月) 00:43:38.290996デフォルトの名無しさん
2011/06/20(月) 00:43:43.410997デフォルトの名無しさん
2011/06/20(月) 00:44:16.29いや Strongtalk が最強かな
0998デフォルトの名無しさん
2011/06/20(月) 00:45:26.96ほんまじゃなぁ。結局だれも動的と静的じゃゆうて
ただの型システムの事しか語るもんおらんもんなぁ。
誰も動的言語は実行時メタ機能じゃゆうことを掘り下げようとせんし。
またぐだぐだがつづくんじゃろうな。
0999uy ◆yyC0rYWEq2
2011/06/20(月) 00:45:40.501000デフォルトの名無しさん
2011/06/20(月) 00:45:43.9010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。