トップページ⇒tech
1001コメント341KB

動的言語の問題点、大規模開発でテスト工数が増大

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2012/04/24(火) 05:02:52.54
 しかし、RubyとRailsの限界に気がついてしまったのです。Rubyのランタイムは
非常に遅いため、Rubyで作成したアプリケーションの納品をためらったことがあります。
Rubyはプロトタイプ作成用に使い、納品用にJavaで作りなおさなければなりませんでした。

 RubyとRailsのプロジェクトが数千行の規模を超え、チームに新しいメンバーを追加したときに、
動的言語の問題が明らかになって来ました。私たちは、コーディングの時間の半分をテスト作成の
費やさなければならなかったのです。Railsによって得られた生産性の向上は、テスト作成の作業に
失われてしまいました。作成したテストの多くは、Javaであれば不必要なものでした。テストの大半は、
リファクタリングによってメソッド名やパラメータの数を変更した際に、呼び出し元が
正しく変更されているかを確認するためのものでした。

また、Rubyでもチームメンバーが2名から4名であれば、メンバー間のコミュニケーションは
非常にスムーズでした。しかし新しいメンバーをチームに参加せせようとすると、
これまでチームで培ってきたノウハウを新しいメンバーにうまく伝えることが出来なかったのです。
0951デフォルトの名無しさん2012/06/23(土) 05:42:32.60
> 比較関数を渡すだけでも冗長なコードが必要になる
たかだか100バイト程度だろ?
そんなに何度も比較するのか?
冗長な部分はコピペでいいよな?
0952デフォルトの名無しさん2012/06/23(土) 05:48:36.43
100バイト入力するのに30秒ぐらい差がつく。

もし比較関数を1000個書けば、
8時間以上も差がつくわけだが。
0953デフォルトの名無しさん2012/06/23(土) 05:53:58.48
コピペは後に響くだろうから嫌だしなあ
0954デフォルトの名無しさん2012/06/23(土) 05:55:03.27
そんなに入力するなら、コードジェネレータとか
設定ファイルからの読み込みか作るわw

下手に短く書ける言語って
その場で書いて関数にしようとしないよな。
で同じようなコードがたくさんできると。
0955デフォルトの名無しさん2012/06/23(土) 06:01:46.01
> そんなに入力するなら、コードジェネレータとか
> 設定ファイルからの読み込みか作るわw

そして行き着いたのがXML地獄ですね
0956デフォルトの名無しさん2012/06/23(土) 06:04:27.67
XMLがいやなら、他の形式にすればいいじゃない?
頭が硬いね。
0957uy2012/06/23(土) 06:09:49.52
下手に短くかける言語っていうのは、
「短く書く為の」構文が既に最初から処理系に備わっているわけで
それは静的言語使ってる奴が一生懸命使いやすいように作った関数が、最初からあるみたいな、そういう次元
静的言語はよく動的言語には最初からあるものの車輪の再発明をしている


設定ファイル(笑)
って
プログラミングにおいての最終手段だよな
ああ、こういうのを無能な働きものっていうのか、確かに言語の機能内で上手に出来ない事があるからって
ソースコード外まで安易に散らかすような奴は処刑するしかない
0958uy2012/06/23(土) 06:13:16.57
XMLがいやなら、他の形式にすればいいじゃないwwww

頭悪いね。
0959デフォルトの名無しさん2012/06/23(土) 06:14:59.42
一方、頭の柔らかい人は
そんなものに設定ファイルなんて不要な
短く書ける言語を使った
0960デフォルトの名無しさん2012/06/23(土) 06:21:52.73
設定ファイルの形式をXML以外にしよう
-> どうせなら設定ファイルにプログラムも書けるようにしよう
-> 凄く短く書けるようになったので、設定ファイルに全部書くようにしよう
-> 動的言語の誕生
0961uy2012/06/23(土) 06:27:25.48
>>960
それ俺がC++しか使ってない頃に設定ファイル使って、そこから動的言語に辿り着いた時の思考だわ、懐かしい

静的言語厨はリアルでその頃の俺のレベルで停滞してる奴がいそうだからかかわりたくない
0962uy2012/06/23(土) 07:01:51.83
まあ俺は停滞どころか急降下してるが
0963デフォルトの名無しさん2012/06/23(土) 07:13:17.05
C++しか使ってない頃ww
Cの課題ができなくて泣いた前かw
0964uy2012/06/23(土) 07:20:05.36
ゴミ
0965デフォルトの名無しさん2012/06/23(土) 07:22:31.83
静的言語に都合の悪い流れになると
uyを攻撃してウヤムヤにする
というデザインパターン
0966uy2012/06/23(土) 07:43:39.59
俺はゴミカスだがエリートゴミカスだ
お前らのような下級ゴミカスとは格が違う
0967デフォルトの名無しさん2012/06/23(土) 08:54:41.92
静的言語が都合が悪くなるわけないじゃん。
辞書クラス使えば静的言語でも動的言語相当なプログラミングできるんだから。
静的言語⊃動的言語
0968uy2012/06/23(土) 09:06:18.34
静的言語はゴミ
0969デフォルトの名無しさん2012/06/23(土) 09:10:02.43
動的言語は静的言語の機能削減版でしかないのに。
0970uy2012/06/23(土) 09:12:50.97
ゴミ
0971デフォルトの名無しさん2012/06/23(土) 09:16:24.81
動的言語は設定ファイル代わり使われるのがお似合い
0972デフォルトの名無しさん2012/06/23(土) 09:18:03.45
反論できなくなったからってww
動的言語の機能を持った、ハイブリッドな静的言語ってあまり見ない。
あってもよさそうなのに。なぜ無いか。
それは、辞書クラス使えば簡単に同等のことが出来るからwww
逆に動的言語ではどう逆立ちしたって静的言語と同等のことが出来ない。
なぜならコンパイラにそういう機能が備わってないから。
手抜きコンパイラww
0973デフォルトの名無しさん2012/06/23(土) 09:19:14.93
設定ファイルや小物に向いているものを大規模開発に使った結果が>>1の有様
0974デフォルトの名無しさん2012/06/23(土) 09:23:57.02
静的言語の素晴らしさを実証するために
Javaでコンビネータを書こうとしたが
あまりの冗長さに断念した……

「原理的に出来る」と「簡単に出来る」の差をまざまざと見せつけられた……
0975デフォルトの名無しさん2012/06/23(土) 09:24:34.18
静的言語⊃動的言語
動的な制御は静的言語でも出来る。
静的な制御は動的言語では無理。
分かりやすく言い換えれば、
実行時の制御は静的言語でも出来る。
コンパイル時の制御は動的言語では出来ない。

コンパイル時の制御をしようと思ったら、
コンパイラに元々静的に制御する機能がないと無理。
その機能を端折った手抜き版が動的言語。
0976デフォルトの名無しさん2012/06/23(土) 09:28:18.69
>>974
書こうとする前に気付けよw
Cプリプロセッサで関数型プログラミングモドキを試みるくらいアホだな
0977デフォルトの名無しさん2012/06/23(土) 09:29:07.92
手段が目的になってる典型
0978デフォルトの名無しさん2012/06/23(土) 09:30:34.14
ホントだよなwww
Javaが抽象化能力に劣ってるのは有名だろww
型注釈がうざいだけじゃ、あんなに冗長にはならないっつーの
0979デフォルトの名無しさん2012/06/23(土) 09:31:46.55
え?辞書クラスで楽勝なんでしょ?
0980デフォルトの名無しさん2012/06/23(土) 09:33:37.07
楽勝でしょう
obj["name"]
0981デフォルトの名無しさん2012/06/23(土) 09:40:48.60
CプリプロセッサやC++テンプレート、JavaやC#のIDEによる自動生成
これらコードジェネレータは言語が抽象化能力に劣るという欠点を補うもの

一方、動的言語は抽象化が高いことによるパフォーマンスの低下や
コンパイラによるチェックの不在を補えないのであった

結果、世界で広く使われるのはCを初めとする静的言語
0982デフォルトの名無しさん2012/06/23(土) 09:41:10.84
まあRubyで1分くらいで書けるコードだから、
Javaが1/10の生産性だとしても、10分で書けるな

さあ、ideone.comにコードを貼るんだ
0983uy2012/06/23(土) 09:43:31.62
ゴミ
0984デフォルトの名無しさん2012/06/23(土) 10:57:44.38
>>972
Objective-Cくらいじゃね?
型付きのLisp変種とか
0985デフォルトの名無しさん2012/06/23(土) 11:05:00.87
辞書クラスぐらい殆どの言語にあるだろ。
0986デフォルトの名無しさん2012/06/23(土) 11:24:35.59
>>975
じゃあコンパイル時と実行時だけでなく起動時に大規模な処理をする言語は偉いのか?
0987デフォルトの名無しさん2012/06/23(土) 11:32:51.95
何言ってんだ
0988デフォルトの名無しさん2012/06/23(土) 11:38:45.74
起動時「やられたようだな」
終了時「最弱」
コンパイル時「」
0989uy2012/06/23(土) 12:21:10.53
>>963
そのネタ飽きないよな・・・
俺はまず学校にはいった時点では既にC,C++,少量のPerlの知識まではあったわけで
宿題や課題とか一瞬で終わるから1つも家に持って帰った記憶が無いし
何のことを言ってるんだコイツ
ガキの書いたネタレスに釣られちゃったのか?w
batとPerlでCの宿題用のソースメタしてた記憶しかない
0990uy2012/06/23(土) 12:23:00.35
その後さらにちょっといくと設定ファイルと動的言語の共通点に気づいて
uy言語とかOS作ってた時期だったな ruby入る直前にやってた
ある意味その頃が一番の全盛期
そこでお前らとの差が一気に広がってしまった

お前らみたいに何年間も同じようなプログラミング続けてる奴と違うから俺は
今でこそrubyだけどほんの数年前はガチでC++/WinAPI、アセンブラ、Perl
そこを通過した俺が動的言語を是としているんだから察しろよ
いつまでも同じ場所で立ち止まってないで

成長が遅いゴミカスはまずは黙って先人に従え
0991デフォルトの名無しさん2012/06/23(土) 12:26:32.06
設定ファイルにはDSL使うわ。
そして、静的言語の機能縮小版のRubyの出番はないわ。
0992uy ◆xVOGOO9ev6 2012/06/23(土) 12:26:57.94
カスは苦しみ続ければよいのではないか

最近、静的言語厨の書き込みが悲鳴にしか見えない・・・w


違うだろwww
仕事で使うプログラミング言語がwww
効率がでるとかwwでないとかwww関係ねーからwww
コードジェネレータwwwwww
関数にまとめるwwwwwwwwww
現実を見ろとしかいえない


関数にまとめるwwwwwwwwwwwwwwwwwwwwwwワロタwwwwwwwwwwww

関数にまとめてろwwwwwwwwwwwww
0993デフォルトの名無しさん2012/06/23(土) 12:28:15.50
都合が悪くなると発狂してみせる。
0994uy ◆xVOGOO9ev6 2012/06/23(土) 12:29:56.27
>>991
設定ファイルwwwwwwwwwwww

そもそも設定ファイルはアルゴリズムには直結しないデータを入れろよ
普通は定数関係のみだろwwwwww

設定ファイル内にアルゴリズムが必要になったらそれはもう「プラグイン」だから

バカが>>954
セッテイファイルカラノヨミコミカツクルワw
とかいってるけど

ソースコード外まで散らかす奴は追放したほうが良い
そんな案を出す奴も追放したほうが良い
初心者だと自覚のないこういう奴は追放したほうが良い
0995uy2012/06/23(土) 12:30:48.96
俺はエリートゴミカスだ

お前らは黙って俺について来い
0996uy ◆xVOGOO9ev6 2012/06/23(土) 12:31:59.37
設定ファイルwwwwwwwwwマジワロタwwwwwwwwww

設定ファイルwwwwwwとして関数にまとめるwwwwwwwwwwwww


時代が止まってんだな
発想の問題なのかもなぁ

俺はC++で一度設定ファイルフルに使わざるをえないプログラム作成した時に
真っ先にスクリプト化がよぎって、すぐに動的言語に着ちゃったけど

ここのプロセスに10年かけるやつもいるって事だ・・・
0997デフォルトの名無しさん2012/06/23(土) 12:33:05.77
だから、動的言語は静的言語の機能縮小版だから、
動的言語で出来ることは静的言語でも出来るわけだから、
いつまでたっても静的言語の優位性は揺るがないんだよ。
0998uy ◆xVOGOO9ev6 2012/06/23(土) 12:34:36.16
>>997
プププwwwww

そう思うなら動的言語使わなくていいからwwww黙って静的言語使ってろよwwww
プッギャアアアアアアwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

マジ素で言ってそうだから面白いwwwwwwwwwwwwwwww
0999デフォルトの名無しさん2012/06/23(土) 12:34:57.20
都合が悪くなると発狂してみせる。
1000uy ◆xVOGOO9ev6 2012/06/23(土) 12:35:29.68
俺は動的言語の問題点をいくつあげてもwwwww
静的言語よりはマシだと確信してるわwwwwwwwwwwwwwwwww


静的言語の問題点をなぜ挙げないかって??

見放してるから、問題点を指摘さえしないってことだよwwwwwwwwwww
気づけバカwwwwwwwwwwwwwww
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。