【Perl,PHP】LLバト ..
[2ch|▼Menu]
697:デフォルトの名無しさん
08/04/03 22:42:24
…敗北しました
いい先生になれるようにがんばろうと思います
でも、一言だけ言わせて下さい。直で言えないんで…
んなことで涙目になんなよ!!!

途中から思ったけど、チラ裏ですみません

698:デフォルトの名無しさん
08/04/03 23:57:51
なんか、オタクがブログによく書いてそうな、
自分だけがはしゃいでる芝居がかった感じが
鼻につく文体だな。

699:デフォルトの名無しさん
08/04/04 02:39:54
教えるより自分で作ってやったほうがまだましだと思う。
散々あーでもないこーでもないという指図を覚悟の上で。

700:デフォルトの名無しさん
08/04/04 22:56:20
俺も美人教師に三本目の足を握ってもらいたい

701:デフォルトの名無しさん
08/04/05 16:15:51
たまに居るみたいだね
URLリンク(anima.x51.org)

702:デフォルトの名無しさん
08/04/06 05:52:07
>>696
業者に頼めばいいのではないかと思うんだけどなぁ
「他のトコ」=業者の作ったサイト、じゃないの?

業者に頼めばお金はかかるけど
自分達で勉強して実現するよりは、はるかに安いと思う
勉強するのが楽しいとか、それを飯の種・商売にしたいなら話は別だけど

Web予約システムを作ることに時間を割くより
そのシステムを使ってどんな商品を売るか・宣伝するかに頭を使ったほうがいいよな…
前者は、業者にお願いすればできるけど
後者は、自分達にしかできないことなんだから
他者にもできることを自分達でやって
他者ではできないことをおろそかにしてしまうなんて本末転倒

703:デフォルトの名無しさん
08/04/09 08:50:35
そういえば4月1日ネタ、
LL界で今年はあった?

704:デフォルトの名無しさん
08/04/11 12:45:46
>>703
あったよ

Japan.internet.com コラム/developer.com
URLリンク(japan.internet.com)

705:デフォルトの名無しさん
08/04/11 12:46:38
Java vs Rubyの言語比較記事へのつっこみ - ’(rubikitch wanna be (a . lisper))
URLリンク(d.hatena.ne.jp)

Japan.internet.com コラム/developer.com
URLリンク(japan.internet.com)

706:デフォルトの名無しさん
08/04/11 13:09:51
原文これか
URLリンク(www.developer.com)
なんか今アクセスできないみたいだけど

707:デフォルトの名無しさん
08/04/11 13:20:59
それ、4月馬鹿じゃなくて、単なる事実誤認w

708:デフォルトの名無しさん
08/04/11 13:26:00
RFCは5241と5242か

709:デフォルトの名無しさん
08/04/11 14:05:41
>>705
Rubyが糞だと言うことがよくわかる文章ですねwww

710:デフォルトの名無しさん
08/04/11 22:24:20
無駄な宣言とかって、Java のコードに対応させてわざと書いてあるだけだよね

711:デフォルトの名無しさん
08/04/12 18:10:43
引く手あまたのプログラミング言語は?
URLリンク(slashdot.jp)
---
Java(16479件)、C++(8080件)、C#(7780件)、JavaScript(6749件)、
Perl(5710件)、PHP(2641件)、Python(1408件)、COBOL(1207件)、
Ruby(769件)、Lisp(33件)といった感じらしい。

とりあえずJavaとC/C++/C#、あとJavaScriptを覚えれば、
当分仕事には困らないようである。COBOLのしぶとさも目立つ。

ちなみにHaskellやOCamlの求人は10以下だったそうだ。
---

712:デフォルトの名無しさん
08/04/12 18:50:11
Lispが上位すぎる

713:デフォルトの名無しさん
08/04/12 19:07:47
「CやC++、Lispの経験がある場合優遇いたします」というような書き方のマネージャやエンジニアの募集が多いな

714:デフォルトの名無しさん
08/04/12 19:53:04
Java の募集って携帯が多いんでしょ
あれ、給料も安いし、ノルマ厳しいから大変じゃない?

715:デフォルトの名無しさん
08/04/12 20:34:13
サーバサイドじゃないの

716:デフォルトの名無しさん
08/04/12 20:40:49
>JavaとC/C++/C#、あとJavaScript
活躍する場が全然違う言語を持ち出して
さもこれらの言語を覚えれば仕事があるように言うのはどうかと・・・・・
例えばJavaScriptの知識があってもWebサーバやDBの知識もないと仕事にならないわけで

717:デフォルトの名無しさん
08/04/12 21:04:33
>>716
Web系での話をしたかったんじゃないか?
まぁC++なんかはWeb系でもミドルウェア回りになるだろうけど。
(JavaScriptは例外か?)

言語はとりあえず一つ覚えてしまえば後は何とかなるしな。
どんな偉そうなバズワードを並べたところでプログラムの根本は順次・選択・繰り返しの3つしかないし。

ただし一つの言語を極めるには数年はかかるんじゃないかと思う。

718:デフォルトの名無しさん
08/04/12 23:41:47
>>714
携帯はCorC++じゃない?
ダウンロードアプリはJavaだけど

719:デフォルトの名無しさん
08/04/13 16:03:11
俺は名前だけでruby選んだ。

720:デフォルトの名無しさん
08/04/15 18:42:15
俺は名前と作者の名前だけで選ぶ気が失せた
Perlの後に知ったからパクリっぽくて嫌だった
まぁPerlと真珠のPearlは違うんだけどね

721:デフォルトの名無しさん
08/04/15 20:54:52
実際Perl→Pearlから思い付いた名前らしいしな。
誕生石が6月:パール、7月:ルビーだからRuby。

722:デフォルトの名無しさん
08/04/15 22:55:14
で、今Rubyの作者はPythonにゾッコンと。

723:デフォルトの名無しさん
08/04/15 23:24:28
Pythonは、作者の俺ルールがどうしても気に入らない。

724:デフォルトの名無しさん
08/04/15 23:40:11
Rubyも似たようなもんじゃないか?
俺は関数名の{}だか引数の()だかを
改行して書こうとしたらエラーになったんでRubyは触らなくなった
Perlの自由さに慣れすぎたw

725:デフォルトの名無しさん
08/04/15 23:42:01
大勢が認めるルールはオレルールとは言わない。

726:デフォルトの名無しさん
08/04/15 23:43:13
複数の空白を一個にまとめられただけで意味が変わる言語なんか大嫌いだ!


と昔パンチカードをばらかした俺は思うのである。


727:デフォルトの名無しさん
08/04/15 23:47:29
そんなあなたにWhitespace

728:デフォルトの名無しさん
08/04/16 01:24:47
>724
そりゃRubyやPythonだと改行は文を切るものだからな。
改行前に開始カッコを書けばOKなんだが
それが耐えられないなら文末を明示する言語になるわな、必然的に。

729:デフォルトの名無しさん
08/04/16 09:14:41
URLリンク(type.jp) 調べ
Java    131件
C++     94件
PHP     53件
Perl     32件
C#      29件
COBOL   26件
Ruby     13件
Javascript  7件
Python    3件
Lisp      0件
偽装請負が多くてあまり参考にならないかも

730:デフォルトの名無しさん
08/04/16 18:48:52
Lisp0件ってなんだよw

731:デフォルトの名無しさん
08/04/16 20:05:31
> Lisp 0件
載せる意味ねーだろw

732:デフォルトの名無しさん
08/04/16 21:02:45
Pythonは、作者の俺ルールがどうしても気に入らない。


733:デフォルトの名無しさん
08/04/16 21:39:13
>>732
Rubyも似たようなもんじゃない?
あと大勢が認めるルールは俺ルールとは言わない。

734:デフォルトの名無しさん
08/04/16 23:14:45
BDFLの権利のこと?<俺ルール

735:デフォルトの名無しさん
08/04/16 23:34:15
Lispたんの事検索するの忘れてたわけじゃないよと
明示的に示したかったので0件と書いた。
まあ必要なかったよなw

Java >> PHP >>> Perlだと思ってたけど海外ではPerlの方が多いんですね

736:デフォルトの名無しさん
08/04/16 23:57:28
smartyの、httpd.confで特定のページ以外からのアクセスを制限したいんだが
探し回っても載ってないんだ・・・
誰か知らないか?

737:デフォルトの名無しさん
08/04/17 00:04:13
age

738:デフォルトの名無しさん
08/04/17 19:21:31
Pythonの俺ルールって具体的に何?
なんか変な文法あったっけ?
あんまpython詳しくないので教えて

739:デフォルトの名無しさん
08/04/17 21:53:31
インデントが制御構造なオレルールは言うまでもないが、
代入が戻り値なしとか許せない。リストのsort()の戻り値ナシも許せない。

while ((line = file.readline()) != ""):

もアウトだし、

for line in file.readlines().sort():
もアウト

気分悪すぎる

740:デフォルトの名無しさん
08/04/17 21:56:49
あとクラスに、アクセス制御がないオレルールも許せない

考えたら、なんで俺我慢してPython使ってるのだろう。Rubyいこ、Ruby

741:デフォルトの名無しさん
08/04/17 22:04:16
if X = 0:
 hogehoge

みたいなミスが無くていいじゃないか。
あと、メソッド LIST.sort() じゃなくて、関数 sorted(LIST) を使うと
思ったことができるんだぜ。

742:デフォルトの名無しさん
08/04/17 22:14:06
>>741
プログラム10年以上やってるが、そんなミスでバグ出したことないぞ。
書き間違えたことはあるが、悩んだことはない。

そんなドウデモイイミスのために、代入が戻り値返さないなんていう
オレルール作っちゃったり、インデントは制御構造とか言い出すなんて、
Pythonの作者はどれだけプログラマを信用していないのだろうか。

743:デフォルトの名無しさん
08/04/17 22:56:00
インデントが制御とか代入が戻り値なしとかは俺ルールっていうよりも思想だろ。
あとPythonダメならScalaやろうぜ

744:デフォルトの名無しさん
08/04/17 23:26:30
>>740
>あとクラスに、アクセス制御がないオレルールも許せない
smalltalkerとlisperに喧嘩売ると後がうるさいぞ。



745:デフォルトの名無しさん
08/04/17 23:39:21
lambda 内に制御文書けたら、俺は Python 使おうかと思ってる。

746:デフォルトの名無しさん
08/04/17 23:47:05
そういやrubyのlamdaってどうなってんの?
Proc.new {
↑これは関数オブジェクトじゃないんだよね?

747:デフォルトの名無しさん
08/04/17 23:57:52
>>729
Delphi 4件(!)
Rails 5件(筆頭が楽天ww)
django 0件
ajax 9件
HTML 48件

>>741
今時、CだってRubyだってコンパイラ(インタプリタ)が文句言うよw

748:デフォルトの名無しさん
08/04/18 00:11:00
pythonはその思想から、プログラマは馬鹿ばかり、
という前提で言語を構築してる気がしてならない。
実際にpythonに群がったプログラマが馬鹿ばかりだった
のかもしれないけど。

749:デフォルトの名無しさん
08/04/18 00:30:08
>pythonはその思想から
どういう思想かkwsk

俺はクラスのアクセス制御とかのOOP関連が
やたらおおらか(というか、あけすけというか)なのは
ガチガチにしなくても、普通のプログラマなら大丈夫という
性善説に基づいているという話位しか知らん。

750:デフォルトの名無しさん
08/04/18 00:38:09
馬鹿ばかりというか、性悪説的思想ということ。

関係ないけど、関数型言語は頭いい人向けみたいなイメージもあるが、
実際はそうじゃなくて、性悪説的思想からも受け入れられるものだと思う。
へジルスバーグのC#が実際にそういう流れだし。

751:デフォルトの名無しさん
08/04/18 00:39:06
馬鹿でも使えるようにという思想で、本当に馬鹿ばっかりが集まってしまったのは、
むしろPHPだと思う。

752:デフォルトの名無しさん
08/04/18 00:40:02
Python使う奴って頭悪いってデータどこかで見た気がするわ

753:デフォルトの名無しさん
08/04/18 00:53:50
>>751
>馬鹿でも使えるようにという思想で、本当に馬鹿ばっかりが集まってしまったのは、
>むしろPHPだと思う。

PHPは言語もバカだろ。なぜなら使っている奴らばかりでなく,作ってる奴らもバカだからだ。

754:デフォルトの名無しさん
08/04/18 01:27:22
PHPなんていろんな言語の良いトコ取りしようとして
単にでかいゴミ溜めになったって感じだな
無駄に関数多すぎ

755:デフォルトの名無しさん
08/04/18 01:44:29
>>752
昨日お前がノートに書いたデータじゃないのか?

756:デフォルトの名無しさん
08/04/18 01:49:35
どこかで見ただけのデータで何か言おうとしてるほうが、よっぽどB

757:デフォルトの名無しさん
08/04/18 01:55:03
>>740
アクセス制御は3.0から出来るようになる。


代入文に戻り値が無いというか、まず、式と文を完全に分離するべきだという
思想があって、そこからの帰結として、代入文は文なので戻り値がないという必然的な結論。
別に、if(x=y): ...
を許可したら、間違いやすいから禁止するとかそういう個別な判断からきたものではない。


>>739
while ((line = file.readline()) != ""):
に関して言えば、
for line in file.readlines():
があるから別に、上の書き方が無くても十分すっきり書ける。し、常識的に見て可読性が上がってる。
さらに言えば
for line in file:
もできる。

758:デフォルトの名無しさん
08/04/18 01:55:34
スレタイらしくなってきたな。

perl は特殊記号や省略が多過ぎて他人のコードが読める気がしない。
俺みたいなバカには向かない言語だな。

759:デフォルトの名無しさん
08/04/18 02:09:25
perlは自分で書く手間を最小限にできる事に価値があると思ってる。

760:デフォルトの名無しさん
08/04/18 03:12:35
後で自分のコード読んで ??? ってなるけどな


761:デフォルトの名無しさん
08/04/18 08:43:21
もう一回最初から書けばいいじゃん^^

762:デフォルトの名無しさん
08/04/18 09:21:54
まあ端的に言うと
馬鹿度
Python>>>>>>>>>>>>PHP>>>>|超えられぬ壁|>>>>>>>>>Perl>=Ruby
って感じで、PythonとPHP使ってる奴が馬鹿ってことはスレッドから読み取れた。

763:デフォルトの名無しさん
08/04/18 09:28:21
>>759
最小限の手間で書いたコードは、書いた瞬間に最大限劣化して
メンテナンスができなくなるよね
それがPerlの素敵なところ
Perl大好き(*-*)

764:デフォルトの名無しさん
08/04/18 09:53:05
>>759
perl脳?

765:デフォルトの名無しさん
08/04/18 10:28:42
だからお前らRuby使えって。
宗教観変わるぞ。

766:デフォルトの名無しさん
08/04/18 11:44:19
>746
Rubyの場合は「関数」というと「トップレベルでレシーバ無しに呼べるメソッド」のことだからなぁ。
「関数」は無いと言っても良い。あるのはメソッドとブロックだけ。
一応UnboundMethodという所属のないメソッドはあるけど、所属を決めないと起動できない。
メソッドを起動するためにどこかのオブジェクトに所属する必要があって
ブロックは所属が無い。
lambdaもprocもProc.newも、ブロックを生成するためのものとして存在する。

>765
作者のブログは確かに宗教らしいなw
俺は読んでない。

767:デフォルトの名無しさん
08/04/18 11:57:00
Rubyの作者はカルト教信者だって聞いたんですが、本当ですか?

768:デフォルトの名無しさん
08/04/18 13:45:28
while(<>) { print }

を他の言語だとどんだけ書かなきゃならないかって考えるとPerlサイコー!
しかし、他の言語に慣れてる奴が見たらPerlサイテーなんだろうなw

769:デフォルトの名無しさん
08/04/18 13:52:17
いや、配列から順次プリントが簡単にできるとか、魅力じゃないんだよ。
他のLL言語では、抽象的なクラスやメソッドをどう作るかとかが主力なわけで、
その点ではPerlはクソだろ。

770:デフォルトの名無しさん
08/04/18 14:05:49
>>768の論理は帳簿とCOBOLの癒着っぷりの原因を示唆する貴重なものだと思う
そうでもないか

イヤモンド演算子は発明だとは思うけどね

771:デフォルトの名無しさん
08/04/18 14:08:32
ダが抜けた…

>>769
Perl4 は当時は神だったんだが、あの手法は今では時代遅れで、
その上に構築された Perl5.6 もかなりいびつで…

すっきり再構築したのが Perl6 になる予定だけど、それなら Perl でなくてもいいじゃん、みたいな

まあ、初心者に薦めるような言語ではないな

772:デフォルトの名無しさん
08/04/18 15:00:27
いや、実際何が出来るかを言っているのではなく
省略の美wについての定番のコードな訳だ、アレは

773:デフォルトの名無しさん
08/04/18 15:06:09
# Perl
while (<>) {
    print;
}

# Python
import sys, fileinput
for line in fileinput.input():
    sys.stdout.write(line)

# Ruby
ARGF.each do |line|
    print line
end

774:デフォルトの名無しさん
08/04/18 15:26:25
>>768
AWK
{print $0}

775:デフォルトの名無しさん
08/04/18 17:37:04
>>774それがありなら、
# Ruby
print ARGF.read

776:デフォルトの名無しさん
08/04/18 17:38:36
どういう意図のコードかにもよるなあ

>>773
Rubyで
「引数に与えられたファイルまたは標準入力の文字列を1行ずつすべて表示する」
は、おおむね
puts readlines

まあこれだと改行変わっちゃうけどな

777:デフォルトの名無しさん
08/04/18 17:52:32
純粋なPHP言語批判がなぜかPHP利用者叩きにシフトする流れはもううんざり

778:デフォルトの名無しさん
08/04/18 18:34:06
だからRuby選べって。

779:デフォルトの名無しさん
08/04/18 18:36:35
わかってるんだよ、すべてRuby信者の工作ってことをね

780:デフォルトの名無しさん
08/04/18 18:38:12
Rubyはすばらしい言語だぞ

781:デフォルトの名無しさん
08/04/18 18:49:30
>>748のような意見が素だとするとかなり根は深い

782:デフォルトの名無しさん
08/04/18 18:57:16
Rubyを使ってから、
他の言語を選択しなさい。
出口が見えるはずです。

783:デフォルトの名無しさん
08/04/18 19:52:29
てか、Rubyさー、ワンライナーとか、ゴルフやっているうちが楽しいんだが、
開発規模がでかくなるにつけ、キツクなってくる・・・
動的型やダックタイピングのせいで、コンパイルというかラン時に最低限のエラーすら
発見できないので、テスト書きまくるハメになる。
テストが多すぎて、従来の静的型と同じくらいコードかかなくちゃいけない orz

なんのために、Rubyにしたんだーってなる。

他の動的型の言語もそうなのかもしれないけど・・・
みんなどうしてるんだろう

784:デフォルトの名無しさん
08/04/18 19:53:13
訂正

> 動的型やダックタイピングのせいで、コンパイルというかラン時に最低限のエラーすら
動的型やダックタイピングのせいで、コンパイルというか起動したときの最初に、最低限のエラーすら

785:デフォルトの名無しさん
08/04/18 19:54:51
InfoQ: David Pollak氏 lift と Scala を語る
URLリンク(www.infoq.com)

今、このキレた外人の気持ちが本当にわかるw
型ありScalaに走りたくなる気持ちも

786:デフォルトの名無しさん
08/04/18 21:32:31
動的型の場合はむしろテストテストテストテストテストが基本じゃね

787:デフォルトの名無しさん
08/04/18 21:36:13
その基本のテストテストテストテストテストのせいで結局手間が静的言語より余分にかかってたんじゃ意味がないのではって話じゃないの?

788:デフォルトの名無しさん
08/04/18 21:43:50
事前コンパイル時間が不要(つまりLL)かつ動的言語であることは、テスト前提の開発手法を加速する
静的言語と比較するなら、テスト込みとの時間で比較しなければならない

789:デフォルトの名無しさん
08/04/18 21:52:00
>>783
それはRubyだけの問題じゃないのか?

790:デフォルトの名無しさん
08/04/18 22:05:20
Rubyを使えば世界は救われるんだ!!!!!!!

791:デフォルトの名無しさん
08/04/18 22:14:51
動的言語であることによる余分なテスト量ってそんなに増えるかな?
静的言語にはないテスト区分が必要というのは理解するけど、相対的にそう増えてるようにも見えないぞ。

あと、JavaやC++以外の言語は原理的に大規模開発には向かないんで、対応範囲の見極めに注意。

792:デフォルトの名無しさん
08/04/19 00:39:50
>>791
まじめにテストを行うとなると結局型チェックと同じようなことを
自分でやらないといけなくなるからな。
スコープの広い変数の名前を変えたときなんて、ほんとにちゃんと動くかガクブルだよ。

> あと、JavaやC++以外の言語は原理的に大規模開発には向かないんで、対応範囲の見極めに注意。
>
これはそのとおり。
ただ最初小規模でも時間の経過と共に中規模〜大規模になることはよくあるんで、
そういうときに動的言語だと対応が難しくなる。
あと、最近はエンタープライズとかなんとかで、大規模開発に駆り出される機会が増えているような気がする。
matzが「Rubyは大規模に向かない」という事実に気づいてくれるといいのだけど。

793:デフォルトの名無しさん
08/04/19 00:51:16
>matzが「Rubyは大規模に向かない」という事実に気づいてくれるといいのだけど

うまく言ってるのかどうかわからんけど楽天がすでにRubyによる大規模開発に着手していて
URLリンク(opentechpress.jp)
まつもとがそれに参加しちゃってるので
URLリンク(itpro.nikkeibp.co.jp)
事実がどうだろうと絶対にまつもとはそんなこと言わないだろうなw

794:デフォルトの名無しさん
08/04/19 01:17:41
まつもとが参加して失敗すれば言い訳できない例証になるな。

795:デフォルトの名無しさん
08/04/19 01:39:15
お前ら言語の用途がおかしい。

LLは、自分が楽をするための言語だぞ。ツール作ったり、テストの
自動化したりするためのツールだ。大規模開発にむいてるわけないだろう。

適用分野が違いすぎるのだよ、何言ってんだオマエラ。

796:デフォルトの名無しさん
08/04/19 01:40:17
楽天に言えよw

797:デフォルトの名無しさん
08/04/19 01:47:13
>>792
URLリンク(www.rubyist.net)

798:デフォルトの名無しさん
08/04/19 02:02:29
ソケット通信するのに最適なLLは何?


799:デフォルトの名無しさん
08/04/19 07:22:20
あたかも静的型言語ではテストしなくてもいいかのような物言いをする香具師がいるようだが、
それはあまりにも認識が甘いのでは。

800:デフォルトの名無しさん
08/04/19 07:35:17
>>798
perlかpython

801:デフォルトの名無しさん
08/04/19 09:15:10
>>798
俺ならPython使うな。
生ソケットでも各種プロトコルでも標準ライブラリで結構カバーされてるし。

802:デフォルトの名無しさん
08/04/19 09:20:42
>>795
ググルに言ってやれ。お前らpythonの使い方まちがってるってwww

803:デフォルトの名無しさん
08/04/19 10:58:52
Pythonのサクシャがググル社員になっちゃってるからな

804:デフォルトの名無しさん
08/04/19 11:09:24
>>799
誰もそんなこと言ってない
印象操作乙

805:デフォルトの名無しさん
08/04/19 11:10:57
優秀なプログラマならモジュール化ぐらいあれば大抵の言語で大規模開発できるでしょ。

806:デフォルトの名無しさん
08/04/19 11:16:42
>>804
実際には言ってないから「あたかも〜かのような」って表現になるんだよ。

実際に誰かが言っているのに、こんな表現したらアホだろw

807:デフォルトの名無しさん
08/04/19 11:19:15
その言語の優秀なプログラマなんて日本に100人いるかいないなのが問題だな
ほとんどのプロジェクトは「下の中から中の上までの普通のプログラマたち」によって回される
よって、ほとんどのプロジェクトは大規模になると破綻、それはLL系列で顕著

まあ当たり前の話っちゃそうなんだが

808:デフォルトの名無しさん
08/04/19 11:21:10
ぐぐるみたいに優秀な人材あつめてるところならちゃんとできるんだろうな。

809:デフォルトの名無しさん
08/04/19 11:23:18
>>807
てかむしろ逆で、その言語自体の中枢開発者がいるから大規模案件を回せるんだよな
まつもとゆきひろの力を借りれなかったのなら楽天がRubyを選択したかどうか怪しいし
Python開発者がGoogleにいなかったらGoogleでPythonが使用されたかどうか激しく疑問だ

810:デフォルトの名無しさん
08/04/19 11:24:10
>>805
優秀な開発者を何人集められるのだ?

811:デフォルトの名無しさん
08/04/19 11:25:07
会社に富と名声があれば何人でも集められるだろ。

812:デフォルトの名無しさん
08/04/19 11:28:32
富士通のことですね
わかります

813:デフォルトの名無しさん
08/04/19 11:33:34
>>806
だから、そう思ってるのはお前だけって意味だよ
印象操作乙

814:デフォルトの名無しさん
08/04/19 11:36:50
>>812
日立のことですよ。心外な。

815:デフォルトの名無しさん
08/04/19 11:43:58
>>809
>まつもとゆきひろの力を借りれなかったのなら楽天がRubyを選択したかどうか怪しい

時系列的には楽天がRuby案件を発表した数ヵ月後にまつもとを招聘したって形だけどなw

816:デフォルトの名無しさん
08/04/19 11:46:06
>>815
前日の電話一発でコトが済むと思ってるニート君乙

817:デフォルトの名無しさん
08/04/19 11:56:29
GoogleだってPythonを負荷の高いサービス構築には使っていないのに
Rubyはどうなのか? と。
RoRで実装されたTwitterの遅っぷり,メンテで止まりまくりな体たらくを見て思うのです。

818:デフォルトの名無しさん
08/04/19 11:58:57
>>816
スラッシュドットのまつもとの書き込みを見る限りでは報道時点では
まつもとが楽天の招聘を受け入れること以外は何も決まってなかったみたいだな
これも本当かどうかわからんけどソースのないことで水掛け論しても意味ないだろ

819:デフォルトの名無しさん
08/04/19 12:52:40
>>817
Twitter が Ruby で実装されてるのは Ruby の責任だよね!

820:デフォルトの名無しさん
08/04/19 13:03:46
>>813
そんな意味にはならない。それはさっきと別の意見を書いてるだけ。
そんでもって、お前にわかるのはお前のことだけ。他の全員の思考を勝手に決めないように。
ほんと痛いね。

821:デフォルトの名無しさん
08/04/19 14:03:19
>>820
横レスだが静的言語だとテスト要らない的なことはまだ誰も言ってないだろと

822:デフォルトの名無しさん
08/04/19 14:26:28
>>820
>他の全員の思考を勝手に決めないように

オマエモナー

823:デフォルトの名無しさん
08/04/19 17:14:22
>>799はどの発言をさしてそのように思ったんだ?
耳元で誰かがささやいたのか?

824:デフォルトの名無しさん
08/04/19 17:43:07
>>820
× TwitterがRubyで実装されてるのはRubyの責任
○ Twitterがよく落ちるのはRubyとRoRにも責任がある

825:デフォルトの名無しさん
08/04/19 18:12:26
>>787とかかなあ。よくわからんけど。

826:デフォルトの名無しさん
08/04/19 20:57:42
>>795
Railsの作者にも言ってくれ

>>799
誰もそんなこといってない。動的型だと飛躍的に多くなるということだ

>>817
TwitteのバックエンドはRubyじゃないっしょ

827:デフォルトの名無しさん
08/04/19 21:07:43
>>826
twitterのバックエンドにerlang使ってるというのはガセだったはず。

828:デフォルトの名無しさん
08/04/19 21:40:32
大規模で負荷がでかい奴はJavaなのかねえ

829:デフォルトの名無しさん
08/04/19 22:01:00
どれくらいが大規模なんだよ

830:デフォルトの名無しさん
08/04/19 22:47:10
>>824
2chが落っこちたらLarry Wallに抗議しないといかんな

831:デフォルトの名無しさん
08/04/19 23:02:25
2chは半分がc(Apache module)で実装されてる

832:デフォルトの名無しさん
08/04/19 23:03:24
もう半分は

833:デフォルトの名無しさん
08/04/19 23:04:41
perl

834:デフォルトの名無しさん
08/04/19 23:08:03
2chはPerlとmod_cgidso(C言語のCGIをモジュールとして動かすモジュール)で作ってるよ

835:デフォルトの名無しさん
08/04/19 23:31:53
>>829
並以下のPGを使わなければいけない規模。

836:デフォルトの名無しさん
08/04/19 23:57:14
派遣入れないとどうしようもないってのは大規模の証かもしれん

837:デフォルトの名無しさん
08/04/20 01:30:20
>>830
落ちたらLarryに文句いってもいいと思うぞ。
まあ、明らかな攻撃を受けたときくらいしか落ちないけどね。

838:デフォルトの名無しさん
08/04/20 01:36:10
2chってどの程度perlつかってんの?

839:デフォルトの名無しさん
08/04/20 06:56:43
>>838
(低レベルな)ファイル操作以外の部分。

840:デフォルトの名無しさん
08/04/20 08:11:39
>>826
いや、C0でもC1でも、同じテスト基準を満たすために必要なテストケースの量は
動的型だろうが静的型だろうが同じだと思うが。
もし静的型のほうが少ないのなら、それは静的型でのテストをサボってるだけ。

841:デフォルトの名無しさん
08/04/20 12:23:44
>動的型だろうが静的型だろうが同じだと思うが。
実績はそうじゃない事を示している話。
>>785参照。

842:デフォルトの名無しさん
08/04/20 12:35:07
動的だとtypoをいぶり出す努力も必要だから仕方なしや

843:デフォルトの名無しさん
08/04/20 13:00:46
>>842
typoやメソッドの有無によるバグはC0で完全にカバーされるだろ。
静的型でもC0を満たそうとしたら同じ量のテストケースが必要になるぞ。


844:デフォルトの名無しさん
08/04/20 13:46:02
静的で必要でないことも動的では必要になる。つまり同じ量ではない

845:デフォルトの名無しさん
08/04/20 14:08:50
>>844
具体的には、どんなこと?
C0ではカバーされないようなことがコンパイル時に検査できるとは思えないのだが。

846:デフォルトの名無しさん
08/04/20 14:23:46
言語仕様でエラーにならない部分のテスト

847:デフォルトの名無しさん
08/04/20 15:08:34
>>846
全然具体的なじゃいじゃん。
変数の型に関するバグもC0で十分発見できるし、
メソッドの有無もC0でほぼカバーできる。
変数名やメソッド名のtypoなんかは言うまでもなくC0テストで十分。

C0で発見できないが静的型のコンパイル時チェックで発見できるバグの実例を見せてくれ。

848:デフォルトの名無しさん
08/04/20 16:03:42
type=1;
typo=type*2;//<-本当はtypeを2倍したい
print(type);

849:デフォルトの名無しさん
08/04/20 16:12:22
Perl のリスト操作を Ruby 風に - naoyaのはてなダイアリー
URLリンク(d.hatena.ne.jp)

               . -―- .      やったッ!! さすがnaoya!
             /       ヽ
          //         ',      おれたちにできないことを
            | { _____  |        平然とやってのけるッ!
        (⌒ヽ7´        ``ヒニ¨ヽ
        ヽ、..二二二二二二二. -r‐''′     そこにシビれる!
        /´ 〉'">、、,,.ィ二¨' {.  ヽ     _ _      あこがれるゥ!
         `r、| ゙._(9,)Y´_(9_l′ )  (  , -'′ `¨¨´ ̄`ヽ、
         {(,| `'''7、,. 、 ⌒  |/ニY {               \
           ヾ|   ^'^ ′-、 ,ノr')リ  ,ゝ、ー`―-'- ∠,_  ノ
           |   「匸匸匚| '"|ィ'( (,ノ,r'゙へ. ̄ ̄,二ニ、゙}了
    , ヘー‐- 、 l  | /^''⌒|  | | ,ゝ )、,>(_9,`!i!}i!ィ_9,) |人
  -‐ノ .ヘー‐-ィ ヽ  !‐}__,..ノ  || /-‐ヽ|   -イ,__,.>‐  ハ }
 ''"//ヽー、  ノヽ∧ `ー一'´ / |′ 丿!  , -===- 、  }くー- ..._
  //^\  ヾ-、 :| ハ   ̄ / ノ |.  { {ハ.  V'二'二ソ  ノ| |    `ヽ
,ノ   ヽ,_ ヽノヽ_)ノ:l 'ーー<.  /  |.  ヽヽヽ._ `二¨´ /ノ ノ
/    <^_,.イ `r‐'゙ :::ヽ  \ `丶、  |、   \\'ー--‐''"//
\___,/|  !  ::::::l、  \  \| \   \ヽ   / ノ

850:デフォルトの名無しさん
08/04/20 17:28:36
>>848
普通にC0のテストケースで検出できるはずだが。

851:デフォルトの名無しさん
08/04/20 17:32:20
>>847
結合テストや実際の運用時には
単体テストでは意図しない型でメソッドが呼び出される可能性がある。
そのような前提の場合、カバレッジ率を100%にしても型エラーが発生する可能性がある。

852:デフォルトの名無しさん
08/04/20 17:40:58
>>851
呼び出す側では単体テストしないのか?

853:848
08/04/20 17:43:56
>>850
本質だけぬきだしてみた。

条件分岐が入ったら、境界値を含むテストでなければ検出できない物になる場合がある。
そういう場合を想像できないか?


854:デフォルトの名無しさん
08/04/20 17:47:47
>>853
境界条件上でのバグは確かに存在するな。
で、それは静的型言語でも同じだと思うのだが。
動的型言語だからテストの量が増えるという根拠を示してくれよ。

855:デフォルトの名無しさん
08/04/20 17:48:38
>>852
そこは動的型付けの言語だから増える部分だろ。
それ以前に、呼び出される側が、渡って来る可能性のある全ての型を知る必要があるのは、動的型付けの言語での開発としては、ナンセンスだな。

856:デフォルトの名無しさん
08/04/20 17:49:44
静的言語なら宣言してない識別子が出たところで検出できるだろうに。

857:デフォルトの名無しさん
08/04/20 17:54:36
静的言語を知らないやつが質問してるから、
自分で何を聞いてるのか解らなくなってるって事か。

858:デフォルトの名無しさん
08/04/20 17:55:06
>>855
だからさ、呼び出す側だってどうせC0テストぐらいするだろ。
それとも静的型なら呼び出す側はC0すら通さなくていいって話か?

>>856
宣言していない識別子が出ているだけならC0で発見できるだろ。

859:デフォルトの名無しさん
08/04/20 17:56:22
>>857
というより、C0テストすら知らない奴が話を混乱させていると思われ。

860:デフォルトの名無しさん
08/04/20 17:57:26
>宣言していない識別子が出ているだけならC0で発見できるだろ。
無理言うなwww

861:デフォルトの名無しさん
08/04/20 17:59:57
全てのコード上の式およびステートメントが1通り以上実行されているのだから、
宣言していない識別子が出ていれば当然発見できるでしょ。

862:デフォルトの名無しさん
08/04/20 18:00:39
ああ、やっぱり知らないのか。
C0君は動的言語について、すこし勉強してから来るように。

863:デフォルトの名無しさん
08/04/20 18:05:40
>>861
宣言されてない識別子を使った時点で、宣言されたことになる言語はごまんとあるわけだが

864:デフォルトの名無しさん
08/04/20 18:06:43
>>848が意図的にtypoという別の変数に入れたものなのか変数名を間違えただけなのかを明確に区別できる方法があるなら教えてほしい

865:デフォルトの名無しさん
08/04/20 18:10:31
条件1: 静的型言語L1で記述されたプログラムP1に対して、
    テスト基準C0を満たすテストケースT1を実行し、エラー0の結果を得る。

条件2:動的型言語L2で記述されたプログラムP2に対して、
    において、テスト基準C0を満たすテストケースT2を実行し、エラー0の結果を得る。

また、P1およびP2は同じ仕様に基く、内容も1対1に対応するものとする。

一般に動的型言語のほうが有意にテスト量が大きくなることを示すためには、
以下の1いずれかを満たす必要がある。

結論1: | T2 | が | T1 | よりも有意に大きくなる。
結論2: P1もP2も未発見のバグを含んでいる可能性は残っているが、
     条件2で未発見のバグが同様の実装をされた条件1で発見されるものが
     条件1で未発見のバグが同様の実装をされた条件2で発見されるものよりも
     有意に大きくなる。

さあ、結論1でも結論2でも、実例なり根拠なりを示してくれ。

866:デフォルトの名無しさん
08/04/20 18:12:01
3行にまとめて欲しい

867:デフォルトの名無しさん
08/04/20 18:13:00
>>863
で、その宣言されていない変数を使っても、仕様通りの結果が得られるわけか?
C0を満たすというのはそういう意味なのだが。

>>864
仕様で求められている結果が得られるかどうか。つまり、>>848の例でいえば、
仕様は「2を印字する」であるはずだから、>>848のコードは仕様を満たさず、
テストでエラーとして検出される。

868:デフォルトの名無しさん
08/04/20 18:13:45
結論: 動的言語でテストが増えると言ってる奴は、C0テストの意味すら知らない香具師だった。

869:デフォルトの名無しさん
08/04/20 18:14:47
>>848が端的に表現してるのに・・・

870:デフォルトの名無しさん
08/04/20 18:16:22
>>869
>>848を通してしまうようなテストはテストとは言わない。
C0テストで一発で発見できる。

871:デフォルトの名無しさん
08/04/20 18:16:52
宣言されていない変数を使っても、仕様通りの結果が得られるパターンなんか無限にあるだろうに

872:デフォルトの名無しさん
08/04/20 18:19:30
>>871
そう。宣言されている変数を使っていても、仕様通りの結果が得られるパターンなんか無限にあるだろうに。

873:デフォルトの名無しさん
08/04/20 18:19:55
しかもC0は条件の組み合わせや通すコードの順番には無頓着だから、
入力と結果の組み合わせは網羅できないんだがな。
C0通ると全ての場合について網羅されると勘違いしてるのかな。

874:デフォルトの名無しさん
08/04/20 18:19:58

宣言されている別の変数を使っていても、仕様通りの結果が得られるパターンなんか無限にあるだろうに。


875:デフォルトの名無しさん
08/04/20 18:22:35
>>873
単純なtypoや実装されていないメソッド叩いたりするのは検出できるだろ。
>>848がまさにいい例だ。

876:デフォルトの名無しさん
08/04/20 18:23:22
>>853


877:デフォルトの名無しさん
08/04/20 18:24:20
>>876 >>854読め

878:デフォルトの名無しさん
08/04/20 18:25:59
//ほらよ
type=arg1;//arg1,arg2:入力値
typo=type*arg2;
if(type>200)print('big');

879:デフォルトの名無しさん
08/04/20 18:26:54
今どき境界値すら試さないテストしてるマヌケがいるのか?

880:デフォルトの名無しさん
08/04/20 18:27:40
>>878
で、C0を満たすテストケースは?

881:デフォルトの名無しさん
08/04/20 18:29:23
// これは?
int type, typo;
type = arg1;
typo = arg2;
typo = type * arg3;
if (type > 200) print ('big');

これと>>878との本質的な違いは何だ?

882:デフォルトの名無しさん
08/04/20 18:30:11
>>878
それは境界値テストで発見されるだろ。テストの初歩だよ、初歩。

883:デフォルトの名無しさん
08/04/20 18:32:57
存在する境界値を網羅するのは、C0の範疇じゃ無いんだが・・・

884:デフォルトの名無しさん
08/04/20 18:35:26
(arg1='2',arg3=5)なんてのが飛んで来るかもしれないのが動的言語。

885:デフォルトの名無しさん
08/04/20 18:35:48
>>883
そうだね、C0の範疇じゃないね。でも実際には境界値はまっさきにテストする項目だよね。

886:デフォルトの名無しさん
08/04/20 18:38:36
お、C0で全部検出できるって言ってたのにいつの間にか話を変えてるな

887:デフォルトの名無しさん
08/04/20 18:38:47
>>884
可変長パラメータは静的型言語はデフォルト値が与えられるけど、どのみちC0じゃ検出できない。
ところでいつから動的言語が比較対象になったんだ?
てっきり動的型言語が比較対象だと思っていたのだが。

888:デフォルトの名無しさん
08/04/20 18:39:22
>>886
全部検出できるなんて言ってないよ。必要なテストの量に有意な差は出ないとは言ってるが。

889:デフォルトの名無しさん
08/04/20 18:40:29
>>843
>typoやメソッドの有無によるバグはC0で完全にカバーされるだろ。

890:デフォルトの名無しさん
08/04/20 18:40:46
>>865
「100%のカバレッジを達成しないと、タイポや実はメソッドが存在しない等の可能性が残る」
もはやこれだけで、結論1を満たしていると思うのだけど。
カバレッジ100%を保証すべきというのは分かるけど、普通は(特に個人だと)そこまでやらんのではないか。

あと、一部の動的言語では
・実行中に関数が定義
できたり
・実行時にメソッドが定義
できたり
・実行中にほとんどのクラスが使っているような基本的なオブジェクトの振る舞い(RubyならNilClassとか)を変える
ことができたりする。
この前提だと、結論1か結論2(もしくは両方)を満たさざるを得ないのではないか?
特にこういう機構をふんだんに使っている(メタプログラミング)場合、テスト自体が困難を極めると思う。

891:デフォルトの名無しさん
08/04/20 18:49:19
>>887
静的型付けの動的言語については考えていなかった。
すこし反省している。

892:デフォルトの名無しさん
08/04/20 18:59:02
> 特にこういう機構をふんだんに使っている(メタプログラミング)場合、テスト自体が困難を極めると思う。

ヤバい箇所が機械的に限られるJavaのほうが
どこが地雷源かわからないRubyよりましだと思うんだ

893:デフォルトの名無しさん
08/04/20 19:03:13
>>884
そして、'2'*5を評価した値が10の実装もあれば、"22222"の実装もあったりする。

894:デフォルトの名無しさん
08/04/20 20:45:52
849がスルーされてワロタ

895:デフォルトの名無しさん
08/04/20 23:56:48
結局のところ小規模か大規模かの問題じゃないよな

896:デフォルトの名無しさん
08/04/21 03:32:41
強いて言えば、型指定のある言語の方が
IDEの補助を受けやすいってのはあるかな。

897:デフォルトの名無しさん
08/04/21 05:31:34
>>890
そうなんだよな。テスト屋殺すにゃevalの1つもあれば十分なんだよ。

898:デフォルトの名無しさん
08/04/21 06:38:01
>>893
俺もC0で型チェックのかわりは無茶だと思うが、
'2'*5が10か'22222'かは言語仕様で一意に決まるだろwww

つーか、どっちになるか知らずにコード書く馬鹿は
どんな言語使ってもどのみちバグまみれだって。

899:デフォルトの名無しさん
08/04/21 07:17:24
>>898
前者は一見して期待した結果になるからやっかいだ。
まぁ、一意に決まらない言語もあるが、それはおいといて。

900:デフォルトの名無しさん
08/04/21 07:54:33
>>898
演算子オーバーロードを忘れてる

901:デフォルトの名無しさん
08/04/21 09:56:43
もう動的型言語とか関係ないな

902:デフォルトの名無しさん
08/04/21 10:32:07
つまり、なでしこ最強

903:デフォルトの名無しさん
08/04/21 16:35:10
scalaに乗り換えますた。


904:デフォルトの名無しさん
08/04/21 16:58:02
まあLLにこだわるこたないからな
erlangとかも面白いしね

905:デフォルトの名無しさん
08/04/21 19:30:09
>>843 C0で全部カバーできると言い
>>847 C0で発見できないバグの実例を見せてくれとまで言ってたのに
微妙にそういう話が出てくると
>>883 境界線は真っ先にテストする項目だろと全部カバーできる発言を覆すあたり
負けず嫌いがこのスレに常駐してるようですね

906:デフォルトの名無しさん
08/04/21 20:27:38
結論は>>890だな。
C0基準でもカバレッジ100%のテストをする香具師なんて滅多にいない。
静的言語はコンパイラさえ通っちゃえばコマンドライン2-3度叩いてヌルポ出なきゃOK。

907:デフォルトの名無しさん
08/04/21 21:44:27
つまりぬるぽが出ない言語ならなんもしなくてOK。


908:デフォルトの名無しさん
08/04/24 00:09:43
さすがに引いた

909:デフォルトの名無しさん
08/04/24 19:29:41
じゃあ俺は押そう。

910:デフォルトの名無しさん
08/04/24 20:27:04
だったら俺は、はさまってみよう。

911:デフォルトの名無しさん
08/04/25 02:07:05
そして私は潰される。

912:デフォルトの名無しさん
08/04/25 02:53:10
俺は素数を数えて落ちつく


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5391日前に更新/183 KB
担当:undef