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

【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2009/06/05(金) 10:48:30
最強のLL=軽量プログラム言語は、どれよ?

エントリーは、
Perl、PHP、Python、Ruby、JavaScript・・・
さあ、死ぬまで語りやがれ!!!

■LLとは?
軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、
コードの作成や修正が容易と見なされるプログラミング言語のことを指す。

ここでいう「軽さ」はプログラマの負担の軽重を指し、
実行速度に優れているという意味ではない。

現在の水準では
・インタプリタ
・動的型
・正規表現
・関数オブジェクト
などを利用できるものがLLと呼ばれることが多い。(Wikipediaより)

■過去スレ
【Perl,PHP】LLバトルロワイヤル5【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1238720336/
【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1234635513/
【Perl,PHP】LLバトルロワイヤル3【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1215319832/
【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1209289408/
【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1188997302/
0002デフォルトの名無しさん2009/06/05(金) 10:53:08
乙>1
とりあえず 見ちゃったんで
0003デフォルトの名無しさん2009/06/05(金) 15:15:39
レンタルサーバーを借りたので、
これから、Webアプリを作ってみようと思っているのですが、
今なら、Perl、PHP、Ruby、Pythonのどの言語が良いでしょうか?

上記4つの言語しか使えないサーバーです。

チャットルームにも掲示板にもなるようなのを
作りたいと思っています。
0004デフォルトの名無しさん2009/06/05(金) 17:54:52
>>3
スレ違い
さらには板違いの可能性もある
0005デフォルトの名無しさん2009/06/05(金) 18:13:55
>>3
Perl
理由は答えられない。
0006デフォルトの名無しさん2009/06/05(金) 18:37:13
LLTV Coming Soon!!
0007デフォルトの名無しさん2009/06/05(金) 20:18:45
共用なら開発は自重した方がいいよ。
そういうのが主目的じゃないんだからレンタルサーバー借りたからWebアプリを
作ろうっていう発想になるのはどうかと思う。
000832009/06/05(金) 22:42:40
>>4
個別具体的な事例についての優劣は、議論しないという事ですか……。
申し訳ありません。

>>5
4つの言語の中で一番経験がある筈なのが Perl なんですが……。
(ただし、Web アプリではありません)

>>6
もうすぐ LL のイベントですか。
そういえば、毎年夏にあるんでしたっけ。
今年のは、テレビ番組を意識した気軽に楽しめるようなイベントを構想してるとか……。
まだ、一度も行った事がないので、行ってみたいですね。

>>7
当初 Web アプリを自作するつもりがなかったため、
何も考えず共用のを借りました。
総合的に考え直そうと思います。

さっき WebProg という板を見つけたので、
プログラムについてはそちらで相談しようと思います。
サーバーいついては、レンタルサーバーの板のほうで、
相談しようと思います。

板違いで申し訳ありません。
0009デフォルトの名無しさん2009/06/05(金) 23:42:38
LLTV! LLTV!
0010デフォルトの名無しさん2009/06/05(金) 23:56:26
今年の公式サイトが作られていますね。

Lightweight Language カンファレンス 2009
http://ll.jus.or.jp/2009/
0011デフォルトの名無しさん2009/06/07(日) 12:40:51
>>7
別にいいじゃん。Webアプリなんて、日曜大工とか夏休みの工作みたいなもんなんだし。
0012デフォルトの名無しさん2009/06/07(日) 13:01:36
誰かまとめてくれ
Perl-------
PHP.------
Python----
Ruby------
JavaScript-
VB--------
0013デフォルトの名無しさん2009/06/07(日) 13:23:20
Perl------- Larry Wall
PHP.------ The PHP Group (, Zend Technologies ?)
Python---- Python Software Foundation
Ruby------ Yukihiro Matsumoto
JavaScript- ???
VB-------- ???

とりあえず。
VBはまあMSだろうけど、JavaScriptは、それぞれの実装について
いろいろあるんだろうか。
0014デフォルトの名無しさん2009/06/07(日) 15:32:09
Rubyが一番。 時点はPHP
0015デフォルトの名無しさん2009/06/07(日) 15:37:44
確かにRubyは一番遅い
0016デフォルトの名無しさん2009/06/07(日) 16:28:18
>>15

Perl------- 5
PHP.------ 2
Python---- 4
Ruby------ 1
JavaScript- 未知数
VB-------- 3

こうでつか?そんな気もする。
0017デフォルトの名無しさん2009/06/07(日) 17:39:08
PHPは確変したからPythonよか軽いと思う
0018デフォルトの名無しさん2009/06/07(日) 22:08:34
ここでは、mod_perl とか mod_php の類はどういう扱いになるんですかね。
0019デフォルトの名無しさん2009/06/07(日) 22:26:46
>>16
キモイ奴が多い数でおけ?
0020デフォルトの名無しさん2009/06/07(日) 22:30:57
LLって和製英語なの?
0021デフォルトの名無しさん2009/06/08(月) 05:56:56
http://ja.wikipedia.org/wiki/%E8%BB%BD%E9%87%8F%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E

日本以外では言わない。海外ではリソース消費が軽量という意味でC言語などを指すのでむしろ逆。
日本でもごく一部でしか言わないし、「スクリプト言語」がポピュラーな呼称。
0022デフォルトの名無しさん2009/06/08(月) 06:02:25
Lightweight Languages(複数形)という語は英語圏にも無くはないが
動作の軽い言語のことみたいで「プログラマの負担が軽い」という意味で使われるのは基本的に日本だけ

…もっとも俺もWikipediaかじった程度の知識だから実態は知らんが
0023デフォルトの名無しさん2009/06/08(月) 07:29:24
「過去ログ嫁」
0024デフォルトの名無しさん2009/06/08(月) 07:31:23
>>20-22
またこのネタかw 何回目だ?

>>20
「サラリーマン」や「ガソリンスタンド」的な意味での和製英語ではない。
なにしろ言い出しっぺはアメリカ人らしいし。(ソースは2chとWikipedia)

ただ、新語ではあるので用語として定着しておらず、また>>1の意味で利用
されている範囲もそれほど広くないんじゃないかな〜という程度のもの。
0025デフォルトの名無しさん2009/06/08(月) 07:32:00
LL和製ネタ、デジャブ・・・
0026デフォルトの名無しさん2009/06/08(月) 08:07:33
まぁ、些末な事柄が繰り返し話題になるとか、
常識のはずのことが繰り返し尋ねられるとかは困るけど、
この場合、スレ的に根幹を成す物事で、その割には常識までは行ってない物事だから、
ある程度繰り返されるのも仕方ないかな、とは思う。
0027デフォルトの名無しさん2009/06/08(月) 09:08:27
この流れは テンプレ化 しとこうぜ

Q. LLって和製英語なの?
A. >>28
0028デフォルトの名無しさん2009/06/08(月) 09:39:26
和製英語ではありません
0029デフォルトの名無しさん2009/06/08(月) 10:54:42
こうして歴史捏造が始まった。
0030デフォルトの名無しさん2009/06/08(月) 13:13:50
じゃ、事実って奴を示せばいいわけだな?
ll-duscuss
ttps://lists.csail.mit.edu/pipermail/ll-discuss/

それとも、このアーカイブが全部捏造なのかなw
0031デフォルトの名無しさん2009/06/08(月) 13:49:19
>>30
それMITの日本人学生が作ってるのモロバレじゃん。
0032デフォルトの名無しさん2009/06/08(月) 21:27:43
>>31
Gregory T. Sullivan
ttp://people.csail.mit.edu/gregs/gregs.html

いかつい日本人学生もいたもんだな
0033デフォルトの名無しさん2009/06/08(月) 22:21:00
>>31
>それMITの日本人学生が作ってるのモロバレじゃん。

ねつ造してんのはおまえじゃんかwwwww
0034デフォルトの名無しさん2009/06/09(火) 12:11:00
めんどくさいよな。スクリプト言語でいいじゃん
0035デフォルトの名無しさん2009/06/09(火) 13:17:51
流行語にしてお金稼ぎたいんです!><
0036デフォルトの名無しさん2009/06/09(火) 14:52:17
>>32
実はひいばあさんの一人が...
0037デフォルトの名無しさん2009/06/10(水) 01:19:16
スクリプト=開発補助のイメージを払拭したい人達ががんばってるけど叶わずみたいな状況
0038デフォルトの名無しさん2009/06/13(土) 04:03:39
LLはスイーツみたいなもんか
0039デフォルトの名無しさん2009/06/13(土) 11:20:38
趣味でもJavaやC++しか使わないような奴等ばっかなの?
STLやコンテナやら面倒なだけじゃん
0040デフォルトの名無しさん2009/06/13(土) 17:43:31
別に面倒じゃないけどな
IDEで作って右クリックで実行するだけだから結局同じだし
インタプリタインストールしないとならないLLの方が面倒じゃない?
0041デフォルトの名無しさん2009/06/13(土) 19:04:59
>>39-40関連じゃないが、
最近、Ruby仕事してるんだが、
昔、DelphiでIDEでサクサク補完しながら作ってたころより生産性があがったように見えん。

どっかのひがやすをblogじゃないが、
> 「コードが多くても、実際の作業としては ctrl+spaceとctrl+1 を押すのが大半だから、生産効率に差はないんですよ。」

とか言われて、Ruby長年使っててRuby脳になってるはずなのに微妙に納得しかかってる。
もっとサクサク補完しながらかけるLLってねーの?

Ruby好きなんだけど、くだらんスペルミスとかで平気でとまる。ガバレッジテスト秋田・・・
0042412009/06/13(土) 19:07:47
LLだけじゃなくて、開発環境とかでもいいっす。
今時、言語の優越に開発環境引いて考える時代でもなかろう。

俺は、前はxyzzyでRuby書いてたけど、最近はNetBeans。でもどっちも補完はダメダメだね…
aptanaは重すぎワロタ
RubyとIDEでの補完の相性の悪さは、しゃーないことはわかっているんだけどさ
0043デフォルトの名無しさん2009/06/13(土) 19:44:13
JavaからRubyへって本が酷かったな
どんだけJavaの生産性が酷いかしか説明してない本w
0044デフォルトの名無しさん2009/06/13(土) 22:39:35
ctrl+space とかで補完って、

LLでも普通にctrl+spaceで補完だが…


今更テキストエディタって、20〜30行までの捨てスクリプトでもないかぎり
そんなことしない。


LLでもIDEがないと結局プロジェクトとしてのソース管理が困難になるのだし。
0045デフォルトの名無しさん2009/06/13(土) 22:42:05
Rubyはダメでしょ。

統合環境使うなら、統合環境での利用に最適なシンタックス
を搭載しているpythonがベストと思うが。
0046デフォルトの名無しさん2009/06/13(土) 23:16:52
開発環境まで言い出せば、VSでC#。これで決まり。
0047デフォルトの名無しさん2009/06/13(土) 23:29:54
まあ、WindowsでRuby初心者ってのが最近多いみたいだが
そういう人は素直にC#勉強すればいいと思わないでもない
0048デフォルトの名無しさん2009/06/13(土) 23:51:58
なんでもやりたいんだったら
LLから入るより普通にJavaでもやった方がいいと思う
0049デフォルトの名無しさん2009/06/13(土) 23:54:03
素直にとか普通にとか
0050デフォルトの名無しさん2009/06/14(日) 00:01:27
C#はクライアントのアプリはまだしも

Linux系サーバーになるとどうにもならなくなる。

また、CG開発系スクリプトでも全く威力を発揮しない。

C#はとても良い言語ではあるものの、
あくまでもC++のハイなレベル版に過ぎない。

Javaも意外なほど応用範囲がせまいな。
VMというもの自体が制約になるためだが。
0051デフォルトの名無しさん2009/06/14(日) 01:39:21
そこで、parrotなのですよ。奥さん

いや、よー知らんけれど
0052デフォルトの名無しさん2009/06/14(日) 02:11:05
>>50
だから何?

向き不向きならどんなものにもある。
0053デフォルトの名無しさん2009/06/14(日) 06:40:07
>>52
だから、「何でもやりたい」ならjavaは別段向いてないのではということ。
(というか非常に向いていない)

個人がやるなら、クライアントアプリか、WEBアプリ、
あるいは、Excelやファイル処理などの簡易なマッチング処理・置換の類、
が最もありがちなのではないかと思われるが、
それら全てにjavaは凄まじく向いていない。

個人が1人でやる場合にjavaが向いているのは、iアプリぐらいかw
0054デフォルトの名無しさん2009/06/14(日) 08:39:49
WebにJavaが向いてないとかすげー理論だな
0055デフォルトの名無しさん2009/06/14(日) 09:08:47
サーブレットとクライアントとあると思うが。

サーブレットの場合はJavaの利点がよく見えないし、クライアントは
Flashに押され気味だし。
0056デフォルトの名無しさん2009/06/14(日) 09:13:30
は…はぁ…
そうですね…

次の方どうぞ
0057デフォルトの名無しさん2009/06/14(日) 10:09:12
>サーブレットの場合はJavaの利点がよく見えないし

だったらPerlやPHPだと利点ありまくりなのか?


なんでもやりたいとか言うならPythonやC++くらいでたいていの事はできると思う。

とは言え職業プログラマならJavaやC++くらいできんと話にならん気がするが。
0058デフォルトの名無しさん2009/06/14(日) 10:34:10
>>53
せっかくなので、あなたがオススメする

・クライアントアプリ
・WEBアプリ
・Excelやファイル処理

それぞれのオススメ言語おしえてくださいな
0059デフォルトの名無しさん2009/06/14(日) 11:02:27
>>58
PHP
クライアント: ×、 Web: ○、Excelやファイル処理: ×

Perl
クライアント: ×、 Web: ○、 Excelやファイル処理: ○

Ruby, Python
クライアント: ○、 Web: ○、 Excelやファイル処理: ○

PerlやPHPでGUIのクライアントアプリ作る人ってあんまりいないね。
Ruby、Python は汎用言語だから全部こなせるけど、GUIのbinding が
より整備されているのは Python だったりする。
他にも OpenOffice.org ではマクロがPythonで書けたりする。
0060デフォルトの名無しさん2009/06/14(日) 12:12:51
何でRubyとPython一緒にするかな
Pythonはガチだけど、RubyはGUIクライアントだと×か△ぐらいじゃねえか?
0061デフォルトの名無しさん2009/06/14(日) 12:17:12
いやだから、GUIクライアントを簡単に作りたかったらC#でもJavaでも使えって。
中身のコードに関しても、JavaはともかくC#ならかなりコーディングの負荷は軽いぞ。
Windows限定では困るGUIクライアントを本当に作りたいの?

GUIってだけでスレチな気がすごくする。
0062デフォルトの名無しさん2009/06/14(日) 12:42:56
GUIが必要になる状況って考えてみると、作ったツールを
プログラムやPCに疎い人間に使わせるときくらいだよなぁ。
自分で使うツールで必要になることって滅多にない。
0063デフォルトの名無しさん2009/06/14(日) 12:45:09
PHPだとWinBinderとかあるけどな
適当なIDEが無いんでデバッグがしずらくて1週間で投げたけど
0064デフォルトの名無しさん2009/06/14(日) 14:02:28
DropBoxのクライアントやBitTorrentのクライアントはPythonでできた
GUIプログラムだよ。

GUIプログラムって、よほどそのツールキットに精通していない限り
APIリファレンス見て、「こう設定したら期待する動作になるのかな?」
って試しながらプログラム書くことが多くて、その時は IPython という
強力なインタラクティブシェルを使って試しながらプログラムが書ける
Pythonは強い。
0065デフォルトの名無しさん2009/06/14(日) 14:07:21
>>64
TortoiseHgもどうやらPythonですな。
UNICODEまわりがまだメタクソだけど、かなりよい感じ
0066デフォルトの名無しさん2009/06/14(日) 14:14:43
>>65
Unicodeまわりがメタクソなのはhgの仕様だからなぁ。
ファイル名はバイト列ってフザケてるのかと。

bzrはコマンドライン引数でファイル名を渡す部分でWindowsでは
ファイル名をUnicodeにできなかったけど、次のbzr1.16では
コマンドライン引数をGetCommandLineW()を使って処理するように
なるからそれに対応するtortoisebzrもそれを使う方向に進んでる。
0067デフォルトの名無しさん2009/06/14(日) 14:23:47
素人が前スレとここまで読んで判定すると、Pythonの圧勝です
0068デフォルトの名無しさん2009/06/14(日) 18:19:11
ちょっと見たけど{}がない分いいかも、と思ったが
行末に:付いたり付かなかったり意味不
0069デフォルトの名無しさん2009/06/14(日) 19:20:30
>>68
行末に : が付くのは、新しいブロックが始まる前(=インデントが増える
直前)で統一されていると思うけど?
0070デフォルトの名無しさん2009/06/14(日) 23:24:24
なんで文法がVBで、出来ることがC++っつう理想言語が出来ないんだろうね?
if i=0 then j=0 else j=1;
これくらい共通にしろっての
インデントも{}も==も:も、なんで無駄なものを付けたがるんだ?
0071デフォルトの名無しさん2009/06/14(日) 23:27:43
Webは技術よりもコンテンツだからな。んだからWebスクリプトプログラマーなんてアニメーター
同様カス扱い。
0072デフォルトの名無しさん2009/06/14(日) 23:28:41
英語とドイツ語でこれはペンですくらい共通にしろって言ってるようなもんだぞ
0073デフォルトの名無しさん2009/06/14(日) 23:56:09
>>70
文法がVBはやだなあ

Sub Hoge
End Sub

For i=0 to 10
Next

If a = 0 Then
b = 1
Else
a = 0
End If

どの辺がどう無駄のない文法なのかkwsk
0074デフォルトの名無しさん2009/06/15(月) 00:47:01
BASICから覚えてきたはずなんだが、今見ると区切りが無くて見づらいな
0075デフォルトの名無しさん2009/06/15(月) 02:36:59
C#でいいんじゃない。
0076デフォルトの名無しさん2009/06/15(月) 03:45:31
一口にBASICっつーても色々方言があるけどな
0077デフォルトの名無しさん2009/06/15(月) 03:57:05
10 CONSOLE,,,1
20 CLS 3
30 X=INT(RND(1)*7+1)
40 Y=INT(RND(1)*7+1)
50 Z=INT(RND(1)*7+1)
60 LOCATE 10,10:COLOR X:PRINT X
70 LOCATE 15,10:COLOR Y:PRINT Y
80 LOCATE 20,10:COLOR Z:PRINT Z
90 IF INKEY$=" " THEN GOTO 100 ELSE 30
100 IF X=Y AND Y=Z THEN PRINT "OOATARI!!":END
110 IF X=Y OR Y=Z OR Z=X THEN PRINT "ATARI!":END

…いや、ネットに転がってたからw 懐かしい。
そのうち、25 とか 105 とか の行番号で処理を差し込んだりするんだよなこれ。
0078デフォルトの名無しさん2009/06/15(月) 04:15:16
N88あたりか、それ?
懐かしさと同時に、読みにくさも思い出すなw

今のBASICの規格だとIF〜END IFやDO〜LOOPはサポートすることになってるし
WHILE〜WENDはその後のほとんどのBASICがサポートするようになったし、VBもEnd Ifを持ってるのもあって
今のBASICならGOTOで書いたりはしないだろうけど
0079デフォルトの名無しさん2009/06/15(月) 06:34:21
>>69
Pascal(Delphi)の then とか do だと思えば納得ですな。
しかし、Rubyとか慣れてると、なんでいらないところにいるのん?と思わんこともある
0080デフォルトの名無しさん2009/06/15(月) 06:36:09
>>73
Rubyっぽくしたら落ち着くのでは?

sub hoge
end

i.times(10)

next

if a == 0
 b = 1
else
 a = 0
end
0081デフォルトの名無しさん2009/06/15(月) 06:38:33
ぼくがJavaのひとに「ガツン」と申し上げられて思ったこと - 梅雨ですな - ずっと君のターン
http://d.hatena.ne.jp/technohippy/20090613#codes


Google App EngineのGreetingモデル定義 の Pythonコード

from google.appengine.ext import db

class Greeting(db.Model):
author = db.UserProperty()
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)

一方Javaは…

package guestbook;

import java.util.Date;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import com.google.appengine.api.users.User;

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Greeting {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
0082デフォルトの名無しさん2009/06/15(月) 06:39:22
    @Persistent
    private User author;

    @Persistent
    private String content;

    @Persistent
    private Date date;

    public Greeting(User author, String content, Date date) {
        this.author = author;
        this.content = content;
        this.date = date;
    }
    public Long getId() {
        return id;
    }

    public User getAuthor() {
        return author;
    }
0083デフォルトの名無しさん2009/06/15(月) 06:40:06


    public String getContent() {
        return content;
    }

    public Date getDate() {
        return date;
    }

    public void setAuthor(User author) {
        this.author = author;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}

Python圧倒的すぎワロタ

※インデント崩れたスマソ・・・
0084デフォルトの名無しさん2009/06/15(月) 06:53:15
言語思想が違うから一概にどーこーと言うのはないが、
Pythonは実用主義な言語だからそういうモノだと思うしかないな。

Javaのコードも実際は補完がバリバリ効くから、コードを打つのは苦痛では
ないだろうけど、コードの可読性でPythonに勝てる言語はそうそうないワケで。
0085デフォルトの名無しさん2009/06/15(月) 07:25:28
>79
あのコロンのお陰で、エディタの補助にありつけたりするから要らないとは言えないなぁ
0086デフォルトの名無しさん2009/06/15(月) 21:35:49
LLの場合、メソッドの引数の型がわからないから
未知のライブラリはコメント頼りになる。

静的型付けだと、引数の型からなんとなく仕様が想像できる場合がある。
0087デフォルトの名無しさん2009/06/16(火) 00:17:40
補完が強力なエディタはどれ?やっぱEclipse?
0088デフォルトの名無しさん2009/06/16(火) 00:18:20
あぁごめ、>>87はPythonでの話
0089デフォルトの名無しさん2009/06/16(火) 01:04:11
>86
たまに変数名で分かるライブラリもあるけどな
0090デフォルトの名無しさん2009/06/17(水) 02:02:49
>>84
Javaのコード補完の効き方と、
Pythonのコードの補完の効き方はかなり近いっしょ。

自分で定義したクラスやメソッドなどのコメントまで
補完時に見れるという点まで含めて。
0091デフォルトの名無しさん2009/06/20(土) 09:58:10
Python は、ブロックが分かりにくいな。
インデントでやっているが、
ブロックの尻を明示する句や記号が無いから、
尻切れトンボみたいで気持ち悪い。
0092デフォルトの名無しさん2009/06/20(土) 11:20:28
さんざん既出だが、スクリプトの始めの方に
end=1
と書いておいて、あとはブロックの終わりとか
目印代わりに「end」と書けばいい。
0093デフォルトの名無しさん2009/06/20(土) 15:37:40
俺も気持ち悪いと思ってたが
しばらくLispやってたら帰って来たら慣れてた
0094デフォルトの名無しさん2009/06/20(土) 15:50:42
# ここからブロック1

# ここまでブロック1

これで解決
0095デフォルトの名無しさん2009/06/20(土) 16:08:44
>>92, 94
文法じゃないから、抜けててもチェックできないし、
書く人毎に違ってたら嫌じゃん。
0096デフォルトの名無しさん2009/06/20(土) 16:43:04
>書く人毎に違ってたら嫌じゃん。

コード規約完全否定か
0097デフォルトの名無しさん2009/06/20(土) 19:27:46
>>96
組織とかグループごとに独自のコード規約があって、
ブロックの書き方がそれぞれ毎に違ってたら意味無いじゃん。
0098デフォルトの名無しさん2009/06/20(土) 20:15:10
Pythonの規約って標準化されたものないのか?
Javaは殆ど規約一本化されてるし
PHPもフレームワーク毎に規約あるぞ
仮になくてもせめて社内で統一くらいしろよ
0099デフォルトの名無しさん2009/06/20(土) 20:16:38
PEP 8
0100デフォルトの名無しさん2009/06/20(土) 21:02:32
Pythonはインデントを強制するのが規約
0101デフォルトの名無しさん2009/06/20(土) 21:12:53
インデント強制は規約と言うより言語仕様。
公式規約はPEP8がある。
乱立はしていない。

Javaとかになれてる人には色々最初は気持ち悪いかもしれないけど、
使っているうちにそれがすごく合理的だと理解して慣れていくよ。
0102デフォルトの名無しさん2009/06/20(土) 21:50:49
他人のコードを読むのが一番ラクな言語はPythonだと思うが。
0103デフォルトの名無しさん2009/06/20(土) 21:58:52
Pythonはエスペラント語のようなもんで
いくら読みやすくてもみんな知らないから読めない
0104デフォルトの名無しさん2009/06/20(土) 22:12:42
これほど共感できない例えも珍しい
0105デフォルトの名無しさん2009/06/20(土) 22:17:10
Pythonは実行できる擬似コードと言われるくらいで、
Pythonを知らない人にも読みやすいコードが多いよ。
0106デフォルトの名無しさん2009/06/20(土) 23:03:38
Pythonが読みやすいってのは
RubyがJavaより生産効率いいってくらい基準があいまいな話だと思う
0107デフォルトの名無しさん2009/06/20(土) 23:42:35
とりあえず漏れの場合はRubyやJavaと比較するならば、Pythonの方が読みやすい。

つか個人的にRubyはJavaを意識する前にPythonよりも生産性を上げてから言うべきだろうに。
0108デフォルトの名無しさん2009/06/20(土) 23:55:40
Pythonはまだ仕様が固まってないから、6.0くらいまでは様子見すべき。
0109デフォルトの名無しさん2009/06/21(日) 00:16:03
PerlやRubyは、同じ処理をするのにいろんな書き方があるけど、
Pythonはそれを極力避けているから、多少冗長になっても
誰が見てもわかりやすいコードになるのがウリじゃなかったっけ?
0110デフォルトの名無しさん2009/06/21(日) 05:38:48
紛らわしければpassを使えばよいのに(python-mode派)。
0111デフォルトの名無しさん2009/06/21(日) 06:52:21
pythonって、どうやってコピペすんの?インデント崩れるんだけど
0112デフォルトの名無しさん2009/06/21(日) 06:53:36
>>111
replace(" ", " ")
01131122009/06/21(日) 06:54:19
あわわ
replace(" ", "&nbsp")
0114デフォルトの名無しさん2009/06/21(日) 07:05:01
>Pythonはまだ仕様が固まってないから、6.0くらいまでは様子見すべき

それを言い出したらRubyなんて100.0くらいまで使えない希ガス。

0115デフォルトの名無しさん2009/06/21(日) 13:49:43
>>99 >>101

PEP 8 ってこれで全部?
http://oldriver.org/python/pep-0008j.html

ざっと見たところ、ブロックの終わりを示す語句(記号)についての記述がないようだけど……
0116デフォルトの名無しさん2009/06/21(日) 13:55:07
>>115
つまり、 end = 1 とかは使わないで普通にインデント解除するのが
標準コーディング規約
0117デフォルトの名無しさん2009/06/21(日) 14:02:18
>>41
コード書くときの自動補完は、言語が静的型付かどうかに大きく使い勝手が
左右される。RubyやPythonみたいな動的言語だと、変数名が任意の
オブジェクトへのラベルに過ぎないので、適切なメンバを
候補として提示することが本質的に不可能。

WindowsでもLinuxでも、クライアントもサーバもってことなら、
Mono 2.4 + MonoDevelop 2の出来がびっくりするくらいいいので、
(多言語・多プラットフォーム・REPL等。 ただし、GTK#で日本語は地雷)
1回さわってみるのをおすすめ。
商用サーバでもLinux + Mono + ASP.NETって増えてきてるしね。
0118デフォルトの名無しさん2009/06/21(日) 14:10:15
インデントを戻すタイミングについて、エディタに知らせる方法が問題なのかな?
pass でいいんじゃなかった?
0119デフォルトの名無しさん2009/06/21(日) 14:19:13
>>106
読みやすさに明確な基準は持たせにくいからね。
でも、複数の言語を知っている人はやっぱりPythonは読みやすいと感じるよ。
dankogai も、
--
私ははっきり言って Python の哲学は好きになれない。でも Python のコードは好き。
「動く pseudocode 」としてのチャンピオンは、今や Python だ。Python はもっと知られ、
もっと使われて良い。 Pythonistas のみならず、 Perl Mongers のためにも、 Rubyists
のためにも。
--
とか言ってる。
0120デフォルトの名無しさん2009/06/21(日) 14:59:04
pythonのコードが読みやすいことは認めるが
dankogaiを引き合いに出すのはやめてくれ
まるで「東スポにそう書いてあった」といわんばかりだ
0121デフォルトの名無しさん2009/06/21(日) 17:13:48
この件は、誰を引き合いに出しても信頼性は変わらない
0122デフォルトの名無しさん2009/06/21(日) 17:48:17
まぁそういうことだね。
「それ」にある程度重きを置く場合、Rubyは使えない。到底。
0123デフォルトの名無しさん2009/06/21(日) 18:20:14
フランス人がフランス語は美しいって言ってるレベルの話だろこれ
フランス語がわかる奴じゃないと意味解らんから無駄って話
0124デフォルトの名無しさん2009/06/21(日) 18:52:05
そういう話だということにすると救われるんですね。
0125デフォルトの名無しさん2009/06/21(日) 19:16:31
この手の話は20年前からまったく進歩がない
0126デフォルトの名無しさん2009/06/21(日) 19:23:10
インデントの規則が決まってるからPythonは見やすいってのなら
コード規約に従って書いた他の言語だって同じように見やすいんじゃないかと思うが
0127デフォルトの名無しさん2009/06/21(日) 20:05:06
>>126
インデントだけじゃないよ。
予約語が少ない、特殊変数が無い、ビルトイン関数・変数が少ない、
式を複雑に組み合わせないで文に分けている、etcetc...
0128デフォルトの名無しさん2009/06/21(日) 20:09:56
で、結局、 Python は、ブロックの終りを示す語句・記号が無くて、
気持ち悪いことに変わりないと。

文法にないどころか、標準のコーディング規約にすら無いから、
end = 1 とか、コメントとか、結局、独自の工夫をするしかなから、
統一的にはできないと。

標準に従うなら、むしろ、ブロックを閉じちゃいけないから、
ブロックを閉じないと気持ち悪く感じる人は、
選択肢に入れられないと。
0129デフォルトの名無しさん2009/06/21(日) 20:13:59
↑
ヴァカ?
0130デフォルトの名無しさん2009/06/21(日) 20:20:24
ブロックはちゃんとアンインデントで閉じるだろ、閉じる記号が文字としては無いってだけで
0131デフォルトの名無しさん2009/06/21(日) 20:23:12
Python は,ブロックを閉じる記号がないから
気持ち悪いことには変わりない。
0132デフォルトの名無しさん2009/06/21(日) 20:23:40
所詮慣れの問題なのにこんだけ熱く語れるってのはなんだかなあ
おれがPythonで気持ち悪いのは、インデントよりもむしろ文字列リテラルの方だったりする。

u'ユニコード文字列'

とか

"""コメント
コメント
コメント"""

ってなんだよ
0133デフォルトの名無しさん2009/06/21(日) 20:24:31
だって、気持ち悪いんだもん。
しょうがないじゃん。
0134デフォルトの名無しさん2009/06/21(日) 20:26:53
"""
文字列
"""
はRubyにもあったような…
まぁ、確かに範囲コメントはちょっと欲しいかも
0135デフォルトの名無しさん2009/06/21(日) 20:27:21
ユニコード辺りはああいうモンと諦めている。

"""のl機能は便利だと思うけど。
ドキュメンテーション文字列もほどよいいい加減さがあって好きだが。
0136デフォルトの名無しさん2009/06/21(日) 20:30:56
Pythonのu'文字列'は歴史がそうさせるので仕方ないだろう。
r'文字列'は随分とコードが読みやすくなるのでいいと思う。
0137デフォルトの名無しさん2009/06/21(日) 20:31:09
気持ち悪い気持ち悪い言ってる人はこちらのスレで存分にどうぞ。

Pythonに見られるインデントによる制御構造の是非
http://pc12.2ch.net/test/read.cgi/tech/1169473442/l50

てか、数学の記法とか、普通の箇条書きとか、インデントを戻すことで
リストの終了を示してるけど、そういうものが全て気持ち悪いんだろうか?
0138デフォルトの名無しさん2009/06/21(日) 20:47:34
箇条書きの場合は、ネストを深くする毎に頭の記号を変えるとか、
番号の後ろに番号を加えるとかするから、違うん感じがする?
数学のは、どういう事か分からないけど、
関数型言語(ML系、Haskell)とか、Prolog のは、気持ち悪いな。

LISP は、括弧だから(・∀・)イイ!
0139デフォルトの名無しさん2009/06/21(日) 20:51:05
>>138 書き間違ったので修正します。

箇条書きの場合は、ネストを深くする毎に頭の記号を変えるとか、
番号の後ろに番号を加えるとかするから、違う感じがする。
数学のは、どういう事か分からないけど、
関数型言語(ML系、Haskell)とか、Prolog のは、気持ち悪いな。

LISP は、括弧だから(・∀・)イイ!
ブロックの閉じる記号がないから気持ち悪いという文脈で
LISP が出てくるのが、理解できなかった。
LISP は、全部きっちり括弧で括るから、 Python とは全然違うのに。
0140デフォルトの名無しさん2009/06/21(日) 21:16:26
end があっても、 Pascal は気持ち悪くて、 Ruby はいいんで、
ブロックだけの問題じゃない気がしてきた。
0141デフォルトの名無しさん2009/06/21(日) 21:35:42
歴史だから仕方ないっていいわけになってないけど
0142デフォルトの名無しさん2009/06/21(日) 22:19:43
>139
しかし閉じ記号をブロックの中身に書いちゃうのは、それはそれで…
0143デフォルトの名無しさん2009/06/21(日) 23:28:04
Cかschemeが最強だと信じている。LLは複雑怪奇すぎ
0144デフォルトの名無しさん2009/06/21(日) 23:37:10
一時期Scheme勉強して、Pythonに戻ったら
map の前と後ろのどっちに ( つけるか毎回迷って困ったw
0145デフォルトの名無しさん2009/06/22(月) 03:06:16
そういえばSchemeのmapとかCommon Lispのmapcarって、
何で関数引数が前なんだろう?
Rubyのブロック構文に慣れた身としては、
でかいlambdaを渡す時には非常に読みづらくなる気がするんだが・・・・・
0146デフォルトの名無しさん2009/06/22(月) 03:42:58
>>145
map は引数として任意の数のリストを取れるので、
必須の引数である関数は必然的に一番最初になります。
あとまあ、その結果として apply と相性がいいとか部分適用しやすいとか。

でかい lamabda を直接書くと読みづらいのは確かだけど、
逆に読みづらくなるほどでかいなら適当にくくりだすかなあ。
さもなければ dolist 使うか。
0147デフォルトの名無しさん2009/06/22(月) 04:50:16
あーなるほど感謝。やっぱりそれなりの理由と作法があるのか
0148デフォルトの名無しさん2009/06/22(月) 07:51:45
Rubyのあの構文は、引数として渡す関数はたかだか1個、という前提に
最適化したものだからね。
0149デフォルトの名無しさん2009/06/22(月) 20:44:07
まあ、Pythonしか使わない人(もしくはRubyしか使わない人)にはそれが見やすいのかも知れないけど、仕事上いろんな言語を使う必要がある場合、PythonやRubyは特殊で非常に見づらい。
0150デフォルトの名無しさん2009/06/22(月) 20:54:32
色んなって…色んな、がどんな言語かによるだろうに
0151デフォルトの名無しさん2009/06/22(月) 21:02:07
map(lambda x,y:x+y,[1,2,3],[4,5,6])
PyhtonのmapはRubyとは違ってLispのと同じような感じだが
0152デフォルトの名無しさん2009/06/22(月) 21:09:07
C/C++ Java C# Perl PHP JavaScriptなどメジャーな言語。
0153デフォルトの名無しさん2009/06/22(月) 21:36:37
要はC系言語のことを指してるワケね。
個人的にはC系の記法は数ある言語の中でも読みにくい部類に入ると思ってるんだが…
0154デフォルトの名無しさん2009/06/22(月) 21:45:27
日本語は漢字があって読みにくい
英語は簡便でよみやすい
って言うようなもんだ
日本人に取っては難しい日本語の方が読みやすい
C系PGはC系言語が読みやすい
0155デフォルトの名無しさん2009/06/22(月) 21:46:05
Basicだけは何をどうやっても読みにくい
0156デフォルトの名無しさん2009/06/22(月) 21:46:09
Perl挙げてるあたり、自分の慣れてない言語が読めないってゴネてるだけだろ
0157デフォルトの名無しさん2009/06/22(月) 22:04:23
読めないって話しじゃなくて
Pythonは特に読みやすい言語ではないって話な
0158デフォルトの名無しさん2009/06/22(月) 22:10:34
メジャーな言語が読みやすくて、PythonとRubyはそれらと比較して非常に読みづらいとか
んなこと唐突に根拠もなく言われても
0159デフォルトの名無しさん2009/06/22(月) 22:48:33
だから、Pythonだけ使ってる人にはいいんだろうけど、世の中やC+Java+Per+PHPを使ってる割合の方が遙かに多いわけ。
ハングルは世界一読みやすいって言われても、世界中の人はハングルなんて読めないの。
0160デフォルトの名無しさん2009/06/22(月) 23:05:19
PythonやRubyしか使わないって人のほうが珍しいだろうし、
読みやすいってのはいろんな言語を使ってきた人たちが
比較して言ってるんでしょ?
0161デフォルトの名無しさん2009/06/22(月) 23:12:57
メジャーな言語は読みやすい
メジャーでない言語は非常に読みづらい
なぜならユーザが少ないから

みたいな論理展開する人がプログラム書いてるのか・・・
0162デフォルトの名無しさん2009/06/22(月) 23:16:50
読み辛いというか仕様やその言語特有の作法がよく分からない。探すのも面倒。
重箱の隅をつつくルールを覚える暇で、主要言語でやりたいことを模索する方が良さそう
0163デフォルトの名無しさん2009/06/22(月) 23:17:46
ちょっと粘着気味でしんどいな
もうちょっと楽しい切り口でよろしく
0164デフォルトの名無しさん2009/06/23(火) 00:49:24
既出すぎる話題ばかりだしな
0165デフォルトの名無しさん2009/06/23(火) 01:09:11
Pythonは他のメジャーな言語に比べて、より少ないルールで高い生産性を
実現できている言語だけどな。
0166デフォルトの名無しさん2009/06/23(火) 01:15:19
しかし根底にある概念が理解しにくい
手続き型って、かなりな部分の人間の思考過程に、
素直に馴染みやすい形態なのかもよ。その方向で
発展出来ないのかな
そう言う意味でもRubyはいいとこどりなんじゃね?
0167デフォルトの名無しさん2009/06/23(火) 01:24:05
「可読性」なるものの定量的な比較基準が欲しい所だが、
果たして存在するのかすら分からん
記号含有率・・・・はある面で悪くないが、じゃあCOBOLは読みやすいのかって話になる
0168デフォルトの名無しさん2009/06/23(火) 01:24:05
どのみち高級言語なんだしな
末尾再帰とかできて喜んでる人間ってなんなんだろう
それって、正直読みやすいのかな
0169デフォルトの名無しさん2009/06/23(火) 01:29:24
>>166
Python は高級な手続き指向言語じゃん。
Ruby に比べたら圧倒的に記号や特殊ルールが少ない分、
Pythonを知らない人でも推測しながら読むことが可能。
0170デフォルトの名無しさん2009/06/23(火) 01:38:42
Rubyがいいとこどりなんて言う人はもっといろんな言語を勉強するべき
全然いいとこどりでないぞ、むしろいろんな面で中途半端
0171デフォルトの名無しさん2009/06/23(火) 01:49:04
そんな抽象的なレスじゃ何も言えんよ・・・・・・
なるほど中途半端だ
0172デフォルトの名無しさん2009/06/23(火) 01:58:08
何も言えないなら「何も言えない」で終わっておかないとね。
後ろに捨て台詞付け足したら、それはもうしっかり言っちゃってることになる。
0173デフォルトの名無しさん2009/06/23(火) 02:46:03
Pythonはエスペラント語
志は高いがシェアは低い
0174デフォルトの名無しさん2009/06/23(火) 03:05:15
シェアが低いってww
日本で流行ってないだけだろ。
世界中では至る所で使われてるぞ。
0175デフォルトの名無しさん2009/06/23(火) 04:07:40
と日記には書いておこう。
0176デフォルトの名無しさん2009/06/23(火) 06:30:21
>>173
Ruby使っている人が自殺しそうな発言だな。

あれこそユーザー数は少ないしシェアはPythonと比べるのが可哀想なノリだが。

つかPython粘着ウゼェ。
アンチ専用スレあるんだからそっちで餌まいとけよ。
0177デフォルトの名無しさん2009/06/23(火) 07:11:49
日本っつーか、日本のWindowsでは、ってところじゃないかな。
MacやLinuxの大手ディストリなんかではPythonが最初から入ってたりして
「あんまり知らなくても、いつの間にか身近なところで使われてる」言語になってるんだよね。
0178デフォルトの名無しさん2009/06/23(火) 07:27:27
とりあえず日本のWindows環境でもRubyとPython比較するならば、
Pythonの方が恵まれた環境にあると感じるが。

Rubyのあのやる気の無さはなぁ。

とりあえずPythonがシェア低いなんて、モノを知らないにも限度がある発言だろうに。
0179デフォルトの名無しさん2009/06/23(火) 09:50:30
>>177
使われてないなんて誰も言ってない
シェアが低いだけ
0180デフォルトの名無しさん2009/06/23(火) 09:52:20
>>179
自分のまわりが世界なんですね、わかります。
0181デフォルトの名無しさん2009/06/23(火) 11:29:45
シェアという単語の定義から始めないといけないのか
0182デフォルトの名無しさん2009/06/23(火) 16:11:51
とりあえずpythonは3が普及したらがんばる。
0183デフォルトの名無しさん2009/06/23(火) 23:02:43
自分のまわりが世界な人はLinux環境でならRubyはいい言語だと思うよ。
どうせ仕事じゃないんだろうし。

しかし、C/C++って読みやすいか?
つか、***pとか(p++)やらint (*p)()とか組み合わさったら、キツいノリがある言語だと感じるが。
パーな#defineされていると殺意を覚えるし。

Pythonの関数ポインタもかなりアレなノリがあるので微妙だが。
0184デフォルトの名無しさん2009/06/23(火) 23:31:40
>>183
そんな程度で殺意わくようでは、
perlとかまともに読めない、書けない人かね?
0185デフォルトの名無しさん2009/06/23(火) 23:50:02
perlは別に最初から読みやすい言語でもないだろ。
個人が使い捨て殴り書きするには最適な言語だから、そこにケチつけるのはおかしいし。

C/C++は運が悪いと延々とメンテされる可能性が高いからアレなんだろ。
0186デフォルトの名無しさん2009/06/24(水) 00:03:25
誰もPerlが読みやすい言語だなんて言ってないだろうに
Pythonは特に読みやすい言語じゃないというのが肝であって
他の言語で特別読みやすい言語があるって話じゃない
0187デフォルトの名無しさん2009/06/24(水) 00:10:34
>Pythonは特に読みやすい言語じゃないというのが肝であって

さすがに、Pythonは特に読みやすい言語だし、コレが読みにくいと言うのは
プログラムをヤめた方がいい。
0188デフォルトの名無しさん2009/06/24(水) 00:11:06
>>183
その辺をある程度改良しようとしたらDになるんだろう
型変換はcast式、プリプロセッサは排除
0189デフォルトの名無しさん2009/06/24(水) 00:54:41
実際仕事でやってると言語なんて「これメンテして」で選択肢ないからなあ。
いっそそんな言語知らないとでもシラをきり通せた方がいいな。
0190デフォルトの名無しさん2009/06/24(水) 02:18:40
C言語は、読みやすさを犠牲にして、書く量を減らした設計だろうから仕方ない気がする。
ただ、C言語が普及したせいで、C言語っぽい文法を採用する言語が多くなったから、
C言語っぽい文法の方が読みやすいと思われる事が多いかも知れない。

BASIC が読みにくいと言うのは、理解が出来ないな。
それで、 Python のソースは読めるのか?

Ruby は、「Perl の次」以上でも以下でもないと思う。

Ruby と Python では、明らかに Python の方がメジャーだな。
OS のインストーラのアナコンダ(だったっけ)が Python で書かれてるとか。
Python は、Google がよく使ってるんだっけ。
Perl は Yahoo がよく使ってるんだっけ。他にも、 はてな とか mixi とかいろんな所が Perl を使っていると聞く。
PHP は、ネット上の至る所で .php を見かける。
しかし、 Ruby を良く使っている所ってあまり聞かないな。
Twitter が使ってて話題になってたけど Scala に変えたんだっけ。

自分は、Python よりは Perl, PHP, Ruby が好きだな。

Python のは、読む気がしない。
Python のを読むくらいなら LISP の括弧を追っている方が、
いや、アセンブリ言語でレジスタの使われ方を追っている方が
よっぽどましだ。
0191デフォルトの名無しさん2009/06/24(水) 02:26:50
>>190
馬鹿じゃねーの?
氏ねよ!!!!
長文ウザイ
0192デフォルトの名無しさん2009/06/24(水) 02:44:08
2chで長文ウザイ言う人って、単に頭が悪い人なんだよね。
100個の1行レスは読むけど、1個の10行レスは嫌いな人種。要は根拠や例示を読めない人。
>>190なんて、>>191を書いて送信ボタン押してスレをリロードするより早く読めるのにね。
0193デフォルトの名無しさん2009/06/24(水) 06:37:08
190,192はいつもの粘着だと思うが。
0194デフォルトの名無しさん2009/06/24(水) 11:27:49
BASICっつーても方言によるが…
とりあえず規格は文法そのものは読みやすいが
命令によって微妙に書き方が違うのと
大きなコード書くと引数が多くなりがちなせいで慣れるほど限界を感じると思う
設計からしてプログラミング初心者向けだから仕方ないけど
0195デフォルトの名無しさん2009/06/24(水) 14:01:28
>>187
いやだからね
いくら読みやすくても、その文法が特殊だとみんな馴染めないわけよ
だからC言語派生やBASIC派生の方が流行るわけでさ
英語は読みづらいから、もっと簡単な言語つくったので
みんな読めるはず、って言われても無理なのと同じ
0196デフォルトの名無しさん2009/06/24(水) 14:50:14
後発のプログラミング言語はいろんなところから構文や機能をぱくってるから
自然言語で例えるのは微妙
日本語分かっててもハングル全く分からんけど
java分かってればpython5割ぐらいはだいたいこんな感じだろってわかるべ

ちがうパラダイムの言語じゃなければ
プログラミング言語でもっと簡単な言語を作った、みんな読めるはず
たぶん本当にみんな読めるんじゃないか?
0197デフォルトの名無しさん2009/06/24(水) 14:59:51
今は読める読めないでなく読みやすい読みにくいの話じゃないのか?
0198デフォルトの名無しさん2009/06/24(水) 15:12:33
みんなって誰だ。
コッチ・ミンナさん(AA略)か?
0199デフォルトの名無しさん2009/06/24(水) 16:06:39
>>195
>いやだからね
>いくら読みやすくても、その文法が特殊だとみんな馴染めないわけよ

HaskellやML系の文法ならまだしも、Python の文法になじめないとしたら、
さすがにそれは文法が特殊だからではなくておまえの頭が悪いだけ。
いくらなんでも、Pythonの文法が理解できないというのはおかしい。
0200デフォルトの名無しさん2009/06/24(水) 16:07:53
これがpy脳か…
0201デフォルトの名無しさん2009/06/24(水) 16:24:33
>>187
書き手しだい。
Pythonに限らずインデントが深くて波打ってるようなコードとかあるだろ?
そういうのは例えPythonでも読み辛いもんだよ。
0202デフォルトの名無しさん2009/06/24(水) 16:31:47
>>201
今はそういう話じゃない。
195が、いくら読みやすくてもPythonの文法は特殊だから読みにくいという主張に対しての反論。
書き手次第とかは今は関係ない。
0203デフォルトの名無しさん2009/06/24(水) 16:44:56
特殊って言い方は変だと思うな。
プログラミング言語全体で「特殊」なんてのはあんまり無いと思う。
単に書き方の派閥があるだけで、その中に特殊なんてのは存在しないんじゃないかな。

つーかLLスレ的にはC風の書き方のほうがむしろ異端じゃなかろうか。
0204デフォルトの名無しさん2009/06/24(水) 17:12:33
主観の問題なので、実際にリサーチしてみないと判断は無理。
自分を中心にして、相対的に語ったところで意味はないだろう。
0205デフォルトの名無しさん2009/06/24(水) 17:14:29
C風の書式のLL:
・Perl
・PHP
・Ruby
・JavaScript
・(Python)

C風でない書式のLL:
・(Python)
0206デフォルトの名無しさん2009/06/24(水) 17:41:32
>>202
読みにくいじゃなくて、他の言語に比べて特別読みやすいわけじゃない、だろ。
読みやすいか読みにくいかは、その言語に精通しているかどうかが大きな肝で、
Pythonが特別読みやすい言語仕様になっているから読みやすいわけじゃない。
インデントが綺麗かどうか程度の差でしかないから、
コーティング規約に従って書かれたJavaやPHPと、
可読性は殆ど変わらん。
0207デフォルトの名無しさん2009/06/24(水) 17:43:36
RubyのどこがC風なんだ

class SuperClass
end
class MyClass < SuperClass
    attr_reader :x
    def initialize(x)
        @x = x
    end
end
def func1
    MyClass.new 'Hello'
end
func1
puts func1
0208デフォルトの名無しさん2009/06/24(水) 17:54:10
>>206
>読みにくいじゃなくて、他の言語に比べて特別読みやすいわけじゃない、だろ。
まず>>195を読もうぜ。
おまえの意見なんか問題にしてない。
0209デフォルトの名無しさん2009/06/24(水) 18:44:25
>>207
キーワードがちょっと違うだけじゃん
0210デフォルトの名無しさん2009/06/24(水) 18:45:45
じゃあpythonも十分C風ってことで
0211デフォルトの名無しさん2009/06/24(水) 19:05:35
>>207
キーワードはAlgol風味だが、
メソッドとかの命名はC系の影響を受けてると思う
to_sとか、アンダーバー記法でギリギリ意味が取れる程度に短くする
0212デフォルトの名無しさん2009/06/24(水) 19:42:56
pythonは制御構造を作るのに end も { } も; も必要ない。
余計なものが少なくてシンプルに見えるんだがなー。
0213デフォルトの名無しさん2009/06/24(水) 19:56:39
だから見分けづらいんでしょ
0214デフォルトの名無しさん2009/06/24(水) 19:59:28
慣れかもしれんがdelphi触ってたときは
begin endの嵐でうへぇって感じだった
俺的にはシンプルのがいいわ
見分けづらいとも感じない
0215デフォルトの名無しさん2009/06/24(水) 20:58:01
俺はCやPerlの記号ごちゃごちゃ出す感じが嫌いなんだよなぁ
Rubyも書き方次第で記号ごちゃごちゃになるけど
0216デフォルトの名無しさん2009/06/24(水) 21:27:27
PerlはOne-linerが流行るような、出来るだけ縮めてしまえっていう文化だよね。
Rubyもその流れを汲んでいる。
0217デフォルトの名無しさん2009/06/24(水) 21:49:25
漏れの周りのPython知らなかった人もPythonの制御構造の仕組みは
解りやすいとコメントしていたな。

見分けづらい、と言う人は極少数だと思われ。
0218デフォルトの名無しさん2009/06/24(水) 21:54:31
会社とかのコーディング規約で「ifやforのブロックはインデントして見やすく」とか
している組織だとPythonのコードは読みやすく感じるだろうな。

それにPythonだとswitchやcase文がないところからしても、「覚えやすく、見やすく、シンプルに」って
哲学みたいなのがあるんだろ。
0219デフォルトの名無しさん2009/06/24(水) 22:11:11
pythonの制御構造に関していえば、別段、特殊でもないし、
括弧が、インデントが、begin-endがなんて、本質的な分かりにくさじゃないだろ
〜です、〜ゴザル、〜ニャとか、そのぐらいどうでもいい違いだよ
メモリ上でオブジェクトがどうなっているかとか、どうやってソートするのかとか、
スコープや数値、配列、文字列の扱いやライブラリの利用なんかの方が遥かに謎
0220デフォルトの名無しさん2009/06/24(水) 22:13:13
>>218
ifやforでインデントしない奴のソースなんか100人中98人までは読みたくねーよ
規約の遙か以前の問題で、またPythonのインデント強制とも次元が違いすぎる

switch〜caseなんかもifの構文糖衣だし、なんか的はずれすぎてワロタ
0221デフォルトの名無しさん2009/06/24(水) 22:35:46
>switch〜caseなんかもifの構文糖衣だし、なんか的はずれすぎてワロタ

ぶっちゃけ違う。

同じと思っているならソレは>>220のレベルが極限まで低い証拠。
そういう低レベルがPythonをどーこー言うのは的外れ。
0222デフォルトの名無しさん2009/06/24(水) 22:44:36
>>221
どう違うのを書かないと、>>221のレベル(笑)もわからんな
例えば、ifで代替できないシンプルなswitch文をあげてみるとか、
コンパイラ方面での話をしてみるとか
0223デフォルトの名無しさん2009/06/24(水) 22:52:18
ifでswitchの振り分け真似ると、orだらけになったりするコトも

後で指導するが、明らかにアレは見づらい
0224デフォルトの名無しさん2009/06/24(水) 22:55:11
ifとswitchは似ている様で違うだろ。

Pythonはswitchなくてもほとんど困らないが、その理由が解らない>>220は
ちょっと頭が可哀想な人なんだと思う。
0225デフォルトの名無しさん2009/06/24(水) 23:11:59
>>220が攻撃される理由が分からん。

pythonのは、OOだ!OOを使え!ルーク!って教えでしょ。
Perlは、ライブラリだ!ライブラリを使え!ルーク!って教えだし。

しかし、switchはifのシンタックスシュガーじゃないのか?
ifで代替できない場面が分からない。
見易さだけなら、ただのシンタックスシュガーだし。
0226デフォルトの名無しさん2009/06/24(水) 23:20:20
Python教こえーな
異教徒排除が徹底しすぎ
敵がJavaだけのRuby信者より質悪いわ
0227デフォルトの名無しさん2009/06/24(水) 23:28:07
ということにしたいのですね?
0228デフォルトの名無しさん2009/06/24(水) 23:34:51
一応考えてみたが、switchには、if〜else単独にはないラベルへのgotoも複合されている
C#みたいなものもある、とかいう点なのかな?
この場合は、switchってif〜else+gotoの糖衣構文じゃん、とか言ってみたらどんな反応が
来るんだろう。やっぱり同じ反応な気もするが。

あとはコンパイラの最適化でなにかあるのかな〜くらいしか思いつかないが、「違う」理由を、
純粋に勉強のためにせっかくだから誰か教えてくれないもんだろうか。気になる。
0229デフォルトの名無しさん2009/06/25(木) 00:38:08
正露丸糖衣A
0230デフォルトの名無しさん2009/06/25(木) 00:38:58
xがOまたはPまたはQのときは処理aと処理b
xがRまたはSのときは処理bのみ
それ以外のときは処理cを行なうってコードとか?
0231デフォルトの名無しさん2009/06/25(木) 00:49:16
C言語だと switch と if が違うというのはわかるが、LL だとどうなんだろ?
C言語は、コンパイラやコードによっては、テーブルを引いてジャンプするコードに変換される場合があるらしいが。
0232デフォルトの名無しさん2009/06/25(木) 00:54:14
>>230
switch( str )
{



0233デフォルトの名無しさん2009/06/25(木) 00:59:53
Enter押してしまった・・・ orz

>>230
switch( str )
{
 case 'O':
 case 'P':
 case 'Q':
  function_a();

 case 'R':
 case 'S':
  function_b();
  break;
}

こういうのはifよりswitchのほうが楽だね
0234デフォルトの名無しさん2009/06/25(木) 01:10:30
if s in 'OPQ': function_a()
elif s in 'RS': function_b()
0235デフォルトの名無しさん2009/06/25(木) 01:12:21
あ、function_aの後は下へ流れるのか
0236デフォルトの名無しさん2009/06/25(木) 01:22:22
Python には暗黙のルール、見た目から意味が推測できない記号が
少ないから、メタクラスとか駆使した一部分のコードをのぞき、Pythonに
それほど精通しなくても大体のコードは読める。

その反対は(非モダンな)Perlで、初心者どころか中級者になっても
他人のコードが読めなかったり、下手すると昔の自分の書いたコードが
読めないなんてことが起こる。
02372332009/06/25(木) 01:27:14
>それ以外のときは処理cを行なうってコードとか?
・・・ (´・ω・`)

switch( str )
{
 case 'O':
 case 'P':
 case 'Q':
  function_a();

 case 'R':
 case 'S':
  function_b();
  break;

 default:
  function_c();
  break;
}

もうねまふ。。。
0238デフォルトの名無しさん2009/06/25(木) 02:11:59
>>233
if str in "OPQ":
    func_a()
if str in "OPQRS":
    func_b()
0239デフォルトの名無しさん2009/06/25(木) 02:18:15
>>237
if str in 'OPQ':
      func_a()
if str in 'OPQRS':
      func_b()
else:
      func_c()
0240デフォルトの名無しさん2009/06/25(木) 02:24:05
str の内容が 'RS' とかだったらどうするんだろ?
0241デフォルトの名無しさん2009/06/25(木) 02:29:00
リスト使えばええがな
0242デフォルトの名無しさん2009/06/25(木) 02:33:08
Pythonのinって何が起きてるんだ?
何となく分かるようで分からん。文字単位でのマッチング?
0243デフォルトの名無しさん2009/06/25(木) 02:34:36
文字列は文字のリスト
0244デフォルトの名無しさん2009/06/25(木) 03:13:57
http://www.python.jp/doc/release/ref/comparisons.html
0245デフォルトの名無しさん2009/06/25(木) 03:19:45
俺的には K&Rが読みやすいから、GNUだなんだの見るよりは
インデントが統一されてるなら、読みやすくはあるんだろうなー
とは思う。 最終的には慣れだろうけど…

今は括弧がないとなんか読みにくい感じ。
do endもなんかなれないんだよなー
0246デフォルトの名無しさん2009/06/25(木) 03:27:35
なんか場末のスナック的なスレだな
0247デフォルトの名無しさん2009/06/25(木) 03:33:54
スナックに行った事が無いからワカンネ。
0248デフォルトの名無しさん2009/06/25(木) 03:45:55
GNUスタイルとかは先頭ブレースの一行分長くなる点が好きでない
行数は可読性に直結すると思う
(だからといって、無理やり圧縮するのが良いとも思わないが)

その点、インデントベースは末尾のブレースやendも削れるのが素晴らしい
でも何となく好きになれないというワガママw どうも宙ぶらりん感がある

あとはS式みたいに、末尾に畳んじゃう記法だが・・・・編集がしずらいような
エディタの支援があればイケるか?
0249デフォルトの名無しさん2009/06/25(木) 03:51:54
○ しづらい
0250デフォルトの名無しさん2009/06/25(木) 03:56:25
S式は対括弧表示できるエディタ無いと苦しいね
まあ、Windows標準のメモ帳で開発しる!
なんてことが無い限り大丈夫だとは思うが
0251デフォルトの名無しさん2009/06/25(木) 04:42:53
S式は文字数でインデントするからプロポーショナルだと崩れて読みづらい。
アメリカだとプロポーショナルでコーディングしてる人も結構いる印章だけど、彼らはどうしてるの?
0252デフォルトの名無しさん2009/06/25(木) 08:03:14
>>240
具体的に >>233 で str の内容がRSの例を出してくれ。
とりあえず、
s = str[0]
if s in "OPQ":
  func_a()
if s in "OPQRS":
  func_b()

Python は他にも、 10 <= a && a < 20 を 10 <= a < 20 と書けたりするし、
if, elif の後に書ける条件式が強力だから switch 文が要らない。
02532302009/06/25(木) 09:11:22
えーと…OPQRSが文字として扱われるとは思なかった(・ω・)
それぞれ何らかの値と結び付けられてる定数のつもりだったんだけど…
0254デフォルトの名無しさん2009/06/25(木) 09:26:55
>>253
if s in (O,P,Q):
  func_a()
if s in (O,P,Q,R,S):
  func_b()
else:
  func_c()

Pythonにswitchが無いのは、散々議論された上で必要ないと判断されたから。
0255デフォルトの名無しさん2009/06/25(木) 11:40:07
RubyやRoRって、生産性が高いって言うけど、それは膨大な規約を丸暗記した上での話だよな。俺的には分かりづらいったらありゃしないよ。
0256デフォルトの名無しさん2009/06/25(木) 12:00:59
人の作った物だと丸暗記になるが、作った本人は丸暗記だと思ってないだろう
0257デフォルトの名無しさん2009/06/25(木) 12:03:59
>>255
それは、他のでも変わらん
0258デフォルトの名無しさん2009/06/25(木) 12:49:55
caseと三項演算子があればむしろif関係いらなくない?
0259デフォルトの名無しさん2009/06/25(木) 16:44:58
ぶっちゃけswitchの方が意味解りやすいな
0260デフォルトの名無しさん2009/06/25(木) 18:49:20
RubyやRoRは、どうだこれだと直感的で分かりやすいだろうっていう教条的な態度が我慢ならない。設定より規約って、大量に規約を覚えれば設定が省けるに過ぎない。
0261デフォルトの名無しさん2009/06/25(木) 19:48:21
Strutsはわかりにくいうえに傲慢な態度だからな。しかも制約が多いくせに手間は省けない。
それよりは100万倍まし。
0262デフォルトの名無しさん2009/06/25(木) 19:51:05
Javaだとmavenの思想が好きだ。
とりあえず何も書かなくても動く。
動きを変えたいところだけ、書く。
0263デフォルトの名無しさん2009/06/25(木) 21:22:07
>>262
それならまさにRailsの思想じゃないかと
0264デフォルトの名無しさん2009/06/26(金) 00:35:17
Ruby on Railsを使った事ない奴は、一度使ってから批評しような、とちょっと思った
中身をいじる必要も機会も、Java APIやJavaのframe workと同様に無いわけだしなw
もちろん、上書きは自由だし可能だしなあ
0265デフォルトの名無しさん2009/06/26(金) 00:40:22
だから、結局、どんなフレームワークだって、最初に使うときは、
覚えなきゃならない事が沢山あるって事に違いはない。
フレームワークどころか、多機能な道具は、皆、
使った事が無ければ覚える事が多いってだけだ。
あとは、その道具の体系化の仕方が、
使おうとする個人に合っているかどうかというだけの事だ。
極めて、普遍的で当たり前の事であって、
わざわざ、キーボードを打つ手間を掛ける価値のない事だ。
0266デフォルトの名無しさん2009/06/26(金) 00:49:47
>>265は、
> 使おうとする個人に合っているかどうかというだけ
が、普遍的で当たり前でキーボードを打つ手間を掛ける(、ましてやサーバ準備して
実行環境を整えるなんて!)価値のない事と言い切るが、それは本当にそうなのか。

足りていれば問題ないが、足りなくなったときにそれでは足るまい(←自己撞着)
まあ何でもいいが、それなりに使って評価してる人間がいるときに使わない人間の
評価なんて糞だと思うな。
0267デフォルトの名無しさん2009/06/26(金) 01:07:49
>>261
そんな君にはWicketが向いている
0268デフォルトの名無しさん2009/06/26(金) 03:10:55
>>265
Railsはあまたあるフレームワークの中でも暗黙の了解が半端なく多い。少ないコードで組めるっていうのは、それに頼ってるだけ。
0269デフォルトの名無しさん2009/06/26(金) 03:20:55
まあ、言語自体が覚えること多過ぎな言語とか
標準ライブラリも拡張ライブラリも全部予約語扱いで予約語一覧だけで何ページにも渡る言語とか
そーゆーのもあるけどな
0270デフォルトの名無しさん2009/06/26(金) 03:25:30
そんなことより、Erlanの話しようぜ
0271デフォルトの名無しさん2009/06/26(金) 04:18:25
もしかして:Erlang
0272デフォルトの名無しさん2009/06/26(金) 11:52:06
Erlang の話をする位なら Scala の話をしようぜ
0273デフォルトの名無しさん2009/06/26(金) 11:55:42
今更ながら Python は良い言語かもしれないと思えて来た。
上の方のレスで、気持ち悪いと書いてしまってすまんかった。
0274デフォルトの名無しさん2009/06/26(金) 12:33:21
>>272
ちょっと触ってみてるけど、
現時点では良いやら悪いやら分からん言語、という感想

狙いは合ってると思う
次に注目される言語が何かは分からんが、たぶんマルチパラダイムだろうし、
静的型付けの利点を残したまま記述量を減らすなら型推論は妥当
C#とかもその方向ではある

ただXMLリテラルは個人的に疑問。XMLは言語レベルで密結合させるほど絶対的なものか?
あと、背反しがちなオブジェクト指向と関数型を調和させようとして
言語が複雑奇怪になりかけてる(?)のも気になる。まあ仕方ない感はあるけど
0275デフォルトの名無しさん2009/06/26(金) 14:42:21
>>274
>あと、背反しがちなオブジェクト指向と関数型を調和させようとして

そうなの?なぜ背反になるのかだれか教えて。
0276デフォルトの名無しさん2009/06/26(金) 14:43:32
>>274
難解な表現はやめてもうちょっと簡単にいって。
じゃないとこのスレでは立ち入り禁止します。
0277デフォルトの名無しさん2009/06/26(金) 15:09:12
おいおい、なんのためのスレだよ
0278デフォルトの名無しさん2009/06/26(金) 15:36:40
Pythonにブロックスコープ無いけど、これは利点なの?欠点なの?
Rubyにも無いみたい。
0279デフォルトの名無しさん2009/06/26(金) 15:44:14
グローバル変数さえ判り易ければいいと思うが、どうなんだろ
スコープ無しはプログラミングしたことないわ
0280デフォルトの名無しさん2009/06/26(金) 16:11:37
ブロックスコープに頼って長々とメソッド書くんじゃない、ってことじゃないかな。
Ruby のブロック(は他の言語のブロックと違うけど)には、ブロックローカルが
あるけどね。
0281デフォルトの名無しさん2009/06/26(金) 16:15:32
>>275
自分は >>274 じゃないが、
関数型だと変数は一度設定したら、書き換えない物であるのに対して、
オブジェクト指向だと、変数はドンドン書き換える物だから、
相容れないという事では?
0282デフォルトの名無しさん2009/06/26(金) 16:32:36
>>280
ブロックスコープもそうだが
ローカル関数 (メソッドではない) に頼ってもメソッドは長くなる。
そういう書き方が嫌なのはOOへの拘りが強いせいでもあるんじゃないか。
0283デフォルトの名無しさん2009/06/26(金) 17:04:21
でも拘るならスコープを狭い範囲に留めてさせてほしいなぁ。
その関数(やらメソッド)でしか使わない処理を、その関数(ry と同じ層に
おくのはなんかイヤらしい感じ。
0284デフォルトの名無しさん2009/06/26(金) 17:06:08
JavaScriptにもブロックスコープがないのは盲点。
0285デフォルトの名無しさん2009/06/26(金) 17:10:14
ブロックスコープの意味が未だに判らない。
for や while の中だけで有効な変数を作りたいってこと?
>>283 の言ってる、関数でしか使わない変数って、Pythonでも関数の中の
ローカル変数になるよね?
0286デフォルトの名無しさん2009/06/26(金) 17:18:37
for や while の中、じゃなくて、
ブロックはブロックなんだけど。

for や while じゃない、ただ単にブロックだけのブロックも
あるわけで。
0287デフォルトの名無しさん2009/06/26(金) 17:38:16
>>286
Pythonには無いよね>ブロックだけのスコープ

まぁ、関数より小さいスコープ作るよりも、関数自体を
小さくする方が良いんじゃないかな。
0288デフォルトの名無しさん2009/06/26(金) 18:19:01
>>281
>関数型だと変数は一度設定したら、書き換えない物であるのに対して、

そんなことはない。関数型言語のうちで、そういうのもあるけど、たいがいのはそこまで厳しくない。
Lisp, Scheme, OCaml, ...
Haskellみたいなほうが少数派じゃね?
0289デフォルトの名無しさん2009/06/26(金) 18:40:51
>>287
サブクラスを作るよりも、クラスの階層構造を小さくする方が良い
って思ったことはないのか?
0290デフォルトの名無しさん2009/06/26(金) 18:43:01
>>278
>Pythonにブロックスコープ無いけど、これは利点なの?欠点なの?
>Rubyにも無いみたい。

一般的に、インタプリタではないと思う。これがあるのはコンパイル型言語の特徴じゃないかな。

もしインタプリタでブロックスコープを実現しようとすると、ブロックに入るたびに
新しい変数テーブルを用意し、ブロックから抜けるとそれを破棄しないといけない。
さすがにこれは、インタプリタでは性能がでない。

コンパイル型であればこれはコンパイル時に行なわれるから、実行時のペナルティはなしですむ。

インタプリタではあきらめろっつーことだな。ブロックスコープは、あったほうがうれしいけど、なくてもそうは困らない機能だから。
0291デフォルトの名無しさん2009/06/26(金) 19:34:01
the requested operation has failed とエラーが出てapacheとphpの連携が取れない
システムファイルを変更すね前はapacheの起動はうまくいったのに、何をやっても
上のエラーが出てくる、誰か助けて〜〜〜〜〜〜〜〜!
0292デフォルトの名無しさん2009/06/26(金) 19:43:07
>>285
変数だけじゃなくて、関数内関数も定義したいってこと。
0293デフォルトの名無しさん2009/06/26(金) 19:50:39
>>291
まずはログファイルを探して読んでみよう
0294デフォルトの名無しさん2009/06/26(金) 21:20:59
やっぱりブロックスコープがどうのこうの言ってるのが意味わからん。
たとえば、Perlではほぼできてる、ってこと?

#!/usr/bin/perl

my $a = 'a';
my $sub = sub(){ print "page\n"; };
{
 my $a = 'b';
 my $sub = sub(){ print "hoge\n"; };
 print $a . "\n";
 $sub->();
}
print $a . "\n";
$sub->();
0295デフォルトの名無しさん2009/06/26(金) 22:31:08
本題からはずれるけど Perl で $a は使わないほうがいいよ
0296デフォルトの名無しさん2009/06/26(金) 22:36:05
そう言えば、C++で昔 forのルール変わったよね。

for (int i = 0; 〜) の i のスコープがfor文内になった。
0297デフォルトの名無しさん2009/06/26(金) 22:41:04
>295
確か一部の組み込み関数とかで $a と $b を使うんだっけ?
0298デフォルトの名無しさん2009/06/26(金) 23:00:52
>>292
少なくとも Python なら関数内関数作れるよ。
decorator なんて関数の中の関数の中で関数を作ったりする。
0299デフォルトの名無しさん2009/06/26(金) 23:04:47
perlのブロックは変数の共有にも使えたりする。
今はさすがにオブジェクト指向で書くけどね。

set(12);
print get();
exit;

{
my $common;

sub set{
my ($value) = @_;
$common = $value;
}
sub get{
return $common;
}
}
0300デフォルトの名無しさん2009/06/26(金) 23:08:33
関数内関数がやりたいだけならブロックにスコープ必要ないんでは
for文とかforeach文のブロックにスコープがあるのはいいような気がしないでもないけど
ブロックにスコープがあることの必要性がよく分からぬ
0301デフォルトの名無しさん2009/06/26(金) 23:35:44
my $fizzbuzz;
{
my @a = qw(FizzBuzz - - Fizz - Buzz Fizz - - Fizz Buzz - Fizz - -);
$fizzbuzz = sub {……};
}
今はさすがにオブジェクト指向で書くけどねw
0302デフォルトの名無しさん2009/06/27(土) 00:02:18
>>288
余り詳しくないけど……。
Lisp, Scheme は、一般的に広い意味で関数型言語と言われているけど、
本当の関数型言語(純粋関数型言語)ではないと聞いたと思う。
OCaml は、 ML の方言にオブジェクト指向機能を追加した言語で、
純粋な関数型言語ではなさそう。
0303デフォルトの名無しさん2009/06/27(土) 00:05:06
流石にFizzBuzz問題にOOPは使わないなw
やろうと思えば、ジェネレータ使ったりするかも知れないがw
0304デフォルトの名無しさん2009/06/27(土) 00:13:22
>302
OOPでも状態を変更するとは限らないから、やはり
OOPと関数型が相いれないとは言えないよ
例えばフィールドへの代入もコンストラクタでしか行わないとかいくらでもやりようはある
0305デフォルトの名無しさん2009/06/27(土) 00:21:01
>>302
そんなことこのスレの住人のほとんどが知ってることだと思うけど
何が言いたいの?
0306デフォルトの名無しさん2009/06/27(土) 00:24:09
>>304
静的な関数型言語だと
OOPは関数型によくある型システムの利点の一部を削り取ってしまう
0307デフォルトの名無しさん2009/06/27(土) 00:31:50
>>305
そんなに突っかからなくてもいいじゃないか。
うゎーん(泣)
0308デフォルトの名無しさん2009/06/27(土) 00:44:21
ブロックスコープは当然有効な機能だわ。その点、Perlは実にいい。
0309デフォルトの名無しさん2009/06/27(土) 01:51:20
>>300
必要か否かでいってたら、たいていの便利なものは無くてもなんとかなるになっちゃうよ。
可読性を損なわないなら便利なものは使いたいな。
0310デフォルトの名無しさん2009/06/28(日) 20:59:42
誰か、HSPの存在価値を教えてくれ。
あれもLL?DSLではあるみたいだが(どっちかというと、ゲーム特化(BASIC風))
0311デフォルトの名無しさん2009/06/28(日) 21:01:08
HSPはエントリーされていないのですれ違いデス。
0312デフォルトの名無しさん2009/06/28(日) 21:10:38
価値はそれこそ個人の価値観の問題だろう
DSLだという見解には同意する
小規模なゲーム・グラフィカルなアプリの作成に特化している

ここで話題に上るような、いわゆるLLではないと思う
0313デフォルトの名無しさん2009/06/28(日) 23:44:47
>>309
>必要か否かでいってたら、たいていの便利なものは無くてもなんとかなるになっちゃうよ。

うん、そうだよ。それでいいじゃん。
ブロックスコープは、あれば便利だけど、なくてすごく困るほどのものでもない。
すくなくともインタプリタにはペナルティが大きそうだから向かないと思う。

>可読性を損なわないなら便利なものは使いたいな。

便利でもペナルティが大きければ導入されない。
便利さのかげでなにも犠牲にならないのならいいけど、犠牲になるものがあるなら
あとはトレードオフでしょ。
0314デフォルトの名無しさん2009/06/29(月) 01:25:09
ちゃんと計算されてる? ペナルティとか
0315デフォルトの名無しさん2009/06/29(月) 05:45:18
>>313
だから>>309が言ってるのは、必要か否かなんていう切り口で語ったら
ブロックスコープだろうがそれ以外のものだろうが、
大概のものは同じ結論しか出てこない、だから「ブロックスコープを」決め打ちで語りたきゃ
もっと踏み込んだ切り口を何か出さないと、ってことでは。
0316デフォルトの名無しさん2009/06/29(月) 12:40:32
すみませんが教えてください。

下記のコードの3行目と5行目が何をしているのかわかりません。

特に3行目。。。

なぜrefで判定する必要があるのかもわからないので
詳しい方教えて下さい。


if(exists $form_data{$name} ) {
if(ref $form_data{$name} ) {
push @{ $form_data{$name} } , $value;
  } else {
$form_data{$name} = [$form_data{$name} } , $value ];
  }
else {
$form_data{$name} = $value;
}


0317デフォルトの名無しさん2009/06/29(月) 13:03:49
>>313
>便利でもペナルティが大きければ導入されない。
ところが、Perlにはあって、それでああいう
パフォーマンスがでているのだが。
ペナルティとかおおげさにいうほどのことは
ないんでは。
0318デフォルトの名無しさん2009/06/29(月) 13:06:05
>>316
つ 配列のリファレンス、デリファレンス
0319デフォルトの名無しさん2009/06/29(月) 13:28:44
>>317
Perlはmyやlocalで変数宣言をしているじゃないか。
Rubyとかだとそれがないから、ブロックスコープを実現しようとすると、
ブロックごとにチェックをいれないといけない。
じゃあ変数宣言のないRubyがウンコなんじゃないかということなら、否定はしない。
0320デフォルトの名無しさん2009/06/29(月) 14:01:58
HSPは米国国防省の省内統制システムへの採用が内定してるらしいし
Rubyと同じパターンで「欧米で評価」→「日本で再評価」みたいな予感はする。
0321デフォルトの名無しさん2009/06/29(月) 19:08:34
>>319
そもそも、変数宣言がなかったら、
ブロックスコープはどのように
表現すればいいの?
0322デフォルトの名無しさん2009/06/29(月) 19:30:37
>>321
ブロックスコープは、無名関数をその場で1回だけ呼ぶのと同じ
0323デフォルトの名無しさん2009/06/29(月) 20:52:50
変数宣言させることで、汚いコードを書けないように制約を受けるわけで、それは凄く楽だわ。PHPとかJavaScriptとか関数ベースのスコープの言語と比べると、そう思う。
0324デフォルトの名無しさん2009/06/29(月) 21:19:11
>>321
必要に応じて変数名の前か後ろにスコープを記述すればいいんじゃない?
0325デフォルトの名無しさん2009/06/29(月) 21:40:22
>>324
よくわからんので擬似コードでも書いてみればいいじゃない
0326デフォルトの名無しさん2009/06/29(月) 21:48:02
>>316
まず、$form_data{$name} に配列のリファレンスを入れたいようだ、っていうのはわかるよね。
んで、その配列に$valueを追加する、っていう処理だとおもう。
そのさい、配列のリファレンスならデリファレンスする必要があるし、ただの配列なら単純にリスト
で追加してからリファレンスとして格納。

んで、5行目のこれ
> $form_data{$name} = [$form_data{$name} } , $value ];
typoってないか?

そして上記前提を覆す8行目
$form_data{$name} = $value;
このカオス。$valueは何者よw

結論から言うと、このコードは読めなくていいよ。 おれは読めないwww
おれが勘違いしてるのかな。そうだといいな。
03273262009/06/29(月) 21:53:40
うん。やっぱり勘違いしてた。
最初に値(単純にスカラー期待)が与えられたときは、普通にスカラー。
もいちど飛んできたときは、配列のリファレンスとして格納。それだけだね。
どうせなら最初から配列のリファレンスにするよね、っていう固定観念があった。
0328デフォルトの名無しさん2009/06/29(月) 22:43:18
>>325
擬似っつーかPowerShellだけど
> $hoge = 100
> & { $hoge = 111; "global: $global:hoge local: $hoge" }
global: 100 local: 111

みたいな感じ
まあブロックの中にまたブロックを〜みたいな話になると別の方法になるけども
0329デフォルトの名無しさん2009/06/30(火) 01:41:54
>>325
どうでもいいけどその言い回しおもしろいな
0330デフォルトの名無しさん2009/06/30(火) 05:17:51
Rubyは、変数への代入で宣言も一緒にされるようなもんだっけ…
グローバルというかブロックの外に変数があるとそれを使い、ないとブロック内でのローカルになる。
たまにハマるんだよなー。

↓こういうの

10.times do |x|
i = x
end
puts i

unko.rb:4: undefined local variable or method `i' for main:Object (NameError)
0331デフォルトの名無しさん2009/06/30(火) 06:37:41
>330
その場合、timesより前に i = nil でも i = 0 でも良いから代入が要るんよね
何回かやると慣れるがw
0332デフォルトの名無しさん2009/07/01(水) 17:08:23
>>331
宣言だけじゃ駄目なんだっけ?
0333デフォルトの名無しさん2009/07/01(水) 18:31:14
Rubyに変数宣言文は無いよ
最初の代入が宣言の代わりになるから、スコープ入る前に何か値を入れればスコープがそこに決まる
0334デフォルトの名無しさん2009/07/01(水) 18:34:03
代入が無ければメソッド呼び出しと区別できない
というか宣言に相当するような構文が無い。代入が宣言を兼ねるというか
0335デフォルトの名無しさん2009/07/01(水) 18:36:47
同じ変数名で局所化することはできるの?ブロックの外でiを使って、ブロックに入って、別のiを使うっていう。
0336デフォルトの名無しさん2009/07/01(水) 18:40:14
不安に思ったら関数のはじめあたりで初期化してやればいいだけ
0337デフォルトの名無しさん2009/07/01(水) 19:57:20
>335
変数名被るほど長いメソッドにせず、素直にprivateメソッド作る
0338デフォルトの名無しさん2009/07/01(水) 20:21:02
>>337
また後付け前提ですか
0339デフォルトの名無しさん2009/07/01(水) 20:54:23
>338
「それぐらいしか無い」とでも解釈すれば良いじゃない
具体的な挙動は相手にお任せするのがOOP流さね
0340デフォルトの名無しさん2009/07/01(水) 21:27:21
>>339
二行目が全く>>337etcとつながらないな
意味不明
0341デフォルトの名無しさん2009/07/01(水) 22:09:06
>340
ん?二行目はすぐ上の行としか繋がってないよ?
同じ文章でも各自で解釈は違いうる、ってポリモーフィズムっぽいよなあ、と
0342デフォルトの名無しさん2009/07/01(水) 22:15:53
ブロックスコープの話とOOPの話がどう結びつくのよ
0343デフォルトの名無しさん2009/07/01(水) 22:16:58
どこともつながってないだろw
0344デフォルトの名無しさん2009/07/01(水) 23:03:27
>>337
privateメソッドにしてそのメソッドから外に出したら、(そのオブジェクトの)他のメソッドからも呼べちゃうんじゃない?
0345ぼくのかんがえたさいきょうの2009/07/02(木) 01:14:18
動くUMLだと思えば
そんなもんだろ
0346デフォルトの名無しさん2009/07/03(金) 12:25:29
>>335
最新過ぎて第三者ライブラリの対応が追いついてないRuby1.9からはデフォルトでできる
一般的に使われてるRuby1.8ではそもそもできない

s = '無くしたら地球がヤバいデータ'
[1, 2, 3].each do |s|
s*10 # 適当
end
puts "#{s} は超重要だ!"

# Ruby1.8.7
3 は超重要だ!

# Ruby1.9.1
無くしたら地球がヤバいデータ は超重要だ!


Ruby1.8 のせいで地球がヤバい
0347デフォルトの名無しさん2009/07/03(金) 12:47:36
うは。便利だけど 1.8 との互換性を考えると恐ろしい。
0348デフォルトの名無しさん2009/07/03(金) 13:09:04
単なる変数じゃなくて、ブロックの引数であることに注意。
0349デフォルトの名無しさん2009/07/03(金) 13:38:28
これでRuby使わない決心がついた。ありがとう。
0350デフォルトの名無しさん2009/07/03(金) 13:40:21
似たようなのはPythonでもあるね。
x = "hoge"
y = [x for x in range(10)]
print(x)

Python 2.x なら xは9で、 3.xなら"hoge"のまま。
内包表記の中だけの名前になってる。
0351デフォルトの名無しさん2009/07/03(金) 13:46:30
for や while を使う人がいないって言ったら Ruby 嫌がった人もいたし、人それぞれだな
0352デフォルトの名無しさん2009/07/03(金) 13:59:02
>>346
Rubyって変数のスコープないの?
大昔に作られたLispですら変数のスコープがあるのに…
だめだめじゃん
0353デフォルトの名無しさん2009/07/03(金) 14:12:01
は?
0354デフォルトの名無しさん2009/07/03(金) 14:25:43
>>352
>>346を煽るのに「スコープがない」と言ってしまうような人はこのスレに来ちゃだめでちゅよ
0355デフォルトの名無しさん2009/07/03(金) 14:29:31
>>354
> ブロックの外でiを使って、ブロックに入って、別のiを使うっていう。
スコープだろうが
0356デフォルトの名無しさん2009/07/03(金) 15:05:25
Rubyは local や my といった予約語を使わずに、文脈上でスコープを定義する
ブロック内に変数が出現したとき、その時点で可視かどうかで

 可視  → その変数を使う(つまり、書き換える)
 不可視→ 新規変数(ブロックローカル)として定義する

という動作になってる

>>346では [1, 2, 3].each のブロック内での s は可視なので、変数を単に再利用する
これを最初から不可能にすることもできなくはなかったんだが、そうすると

out = 外部データ'
someblock do |s|
 puts out #=> undefined
end

というように、ブロック外の変数にアクセスする方法がなくなってしまう
0357デフォルトの名無しさん2009/07/03(金) 15:23:21
メソッドの引数も、ブロックの引数も、ライブラリの名前とかも宣言するのに
変数を宣言しない理由がよくわからない
0358デフォルトの名無しさん2009/07/03(金) 15:25:31
R++ が出来たら Ruby を認めてやるよ。
0359デフォルトの名無しさん2009/07/03(金) 15:27:44
>>357
変数は使う場所多いからいちいち宣言するのめんどいじゃん? というような趣旨のことをどっかで聞いた覚えがある
0360デフォルトの名無しさん2009/07/03(金) 15:30:50
変数宣言なんか導入されたら現状のRubyの利点である
「ローカル変数かインスタンスメソッドかよくわからないがとにかく返り値を返す何かであるhoge」
というのができなくなるじゃないかー
0361デフォルトの名無しさん2009/07/03(金) 15:35:22
それ、やってるのお前だけだから。
0362デフォルトの名無しさん2009/07/03(金) 17:31:50
>357
ライブラリ名の宣言というのがよく分からんが
メソッドやブロックの引数はRubyの場合、代入だろ?

モジュールやクラスの定義は
Module、Classのインスタンスを作成し定数に代入
さらに最後の式の結果を返す文

メソッド定義だけは少し毛色が違う気がするね
あれはProcのインスタンス作成とかしないだろうし
0363デフォルトの名無しさん2009/07/03(金) 18:47:03
>>352
変数のスコープが無い って、言ってることがよくわからんな。
ローカル変数もインスタンス変数もクラス変数もスコープはちゃんとあるし。

ブロックがスコープを作らないってならPythonもJavascriptも一緒だし。
0364デフォルトの名無しさん2009/07/03(金) 18:53:39
JavaScript1.7だったかからはブロックごとのスコープを持つletというのが出てきてvarの影が薄くなってる
0365デフォルトの名無しさん2009/07/03(金) 18:54:27
Rubyの通常のブロックはスコープ作るよ
ブロック開始時の文脈でブロック内の変数の新規性をチェックしてるに過ぎない
0366デフォルトの名無しさん2009/07/03(金) 19:03:09
うん、
class C
def initialize
hoge = 'hoge'
@block = lambda{puts hoge}
end
def run
hoge = 'MODIFIED!'
@block.call
end
end

C.new.run

は、call で実行された環境ではなく block が定義された文脈を考慮して

'hoge'

を表示する
0367デフォルトの名無しさん2009/07/03(金) 19:05:44
本スレにもクロージャのスコープが理解できなくて延々文句垂れてた奴がいたな
そんな特殊なものでもないしちょっと調べれば分かるのに、Rubyばっかり話題になる意味がよく分からん
0368デフォルトの名無しさん2009/07/03(金) 19:12:55
それは別の話じゃね
0369デフォルトの名無しさん2009/07/03(金) 22:11:48
>>365
単純に、initializeとdefとは違うスコープになってて
呼び出し先が違うだけって事じゃないの?
0370デフォルトの名無しさん2009/07/05(日) 04:29:55
>>349
遅すぎだろ。jkw
0371デフォルトの名無しさん2009/07/06(月) 00:08:20
なー、シンプルにそれぞれの最も優れてる実例を出してくれないか?
結局大事なのは使えるかだろ?
0372デフォルトの名無しさん2009/07/06(月) 00:37:19
http://www.google.com/
0373デフォルトの名無しさん2009/07/06(月) 21:34:43
えっ
0374デフォルトの名無しさん2009/07/06(月) 21:35:26
何これこわい
0375デフォルトの名無しさん2009/07/07(火) 01:33:20
>>372 の脳内
(検索しろ!と言う。俺かっこいいべ!昔はmanだったけど今はGoogleだべ。)
0376デフォルトの名無しさん2009/07/07(火) 07:30:19
http://www.youtube.com/
0377デフォルトの名無しさん2009/07/07(火) 08:50:13
http://d.hatena.ne.jp/keyword/Python
googleに使われてるよ
0378デフォルトの名無しさん2009/07/07(火) 09:02:34
>>377
で?
0379デフォルトの名無しさん2009/07/07(火) 09:04:06
>>378
Pythonが一番
0380デフォルトの名無しさん2009/07/07(火) 09:30:20
Pythonはいいけど信者はうざい。この点rubyを凌駕している。
0381デフォルトの名無しさん2009/07/07(火) 09:32:12
信者「ではない」よ
たぶんね
0382デフォルトの名無しさん2009/07/07(火) 09:44:18
信者は「他称」だからなw
0383デフォルトの名無しさん2009/07/07(火) 09:48:50
傍目にウザい時点で他人が装ってる可能性が大
>>380みたいに単純な人はいいオモチャ
0384デフォルトの名無しさん2009/07/07(火) 10:48:48
信者はうざい。はここの書き込みに言ったのではない。
0385デフォルトの名無しさん2009/07/07(火) 12:51:34
>>380
ルビ厨のほうがひどいだろ。jk
0386デフォルトの名無しさん2009/07/07(火) 13:15:51
どの言語信者も最近はわりと皆おとなしいだろ
弾やmatzも
0387デフォルトの名無しさん2009/07/07(火) 13:21:28
>>384
>>379がageてるのに気づいて後出しじゃんけんですね。わかります。
0388デフォルトの名無しさん2009/07/07(火) 14:05:45
お前に何がわかるっていうんだ!!
0389デフォルトの名無しさん2009/07/07(火) 14:16:03
JavaってLLじゃね?
0390デフォルトの名無しさん2009/07/07(火) 15:31:14
>>1にエントリーされていないのでスレ違いとなります
0391デフォルトの名無しさん2009/07/07(火) 17:06:57
>>390
ダメです。
0392デフォルトの名無しさん2009/07/07(火) 18:00:16
久し振りにラクダ本を開いた。
テキトーなページを開いたら「配列の配列」について書かれていて
for $i ループ内には

$AoA[$i] = @array; # 間違い
$AoA[$i] = [ @array ]; # 正しい

と書かれていた。

…俺は読むのをやめた。
0393デフォルトの名無しさん2009/07/07(火) 18:46:27
>>392
それのどこに嫌要素が?
超わかりやすいだろ。
0394デフォルトの名無しさん2009/07/07(火) 18:54:26
>>392
何が問題なん?
0395デフォルトの名無しさん2009/07/07(火) 19:29:05
で、��1は誰なんだよ
0396デフォルトの名無しさん2009/07/07(火) 19:33:28
お前に決まってるだろ
0397デフォルトの名無しさん2009/07/07(火) 19:36:38
じゃあ独断と偏見でPythonって事で
0398デフォルトの名無しさん2009/07/07(火) 20:00:10
もう俺JavaScriptでいいや
0399デフォルトの名無しさん2009/07/07(火) 23:04:16
Python最強ですよねー
0400デフォルトの名無しさん2009/07/07(火) 23:09:03
>>392は、以前にPerlを触ったときにはスカラーの概念やリファレンスまでは
たどり着けなかったんだと。
まあどの言語でも、一つずつ覚えてちょっとずつ進歩していけばいいと思うよ。
0401デフォルトの名無しさん2009/07/08(水) 03:33:31
俺には393や394の感覚がわからん。400もな。
392の例はあからさまに直感的じゃないと思うよ。
0402デフォルトの名無しさん2009/07/08(水) 03:44:53
$AoA[$i] = $@array;
0403デフォルトの名無しさん2009/07/08(水) 04:41:20
配列のリファレンスも分からないようなPerl素人がいきなりラクダ本なんて読もうと思うのが間違い。
もっと初心者向けび本にしとけ。
というか、リファレンスとかポインタとか理解出来ない人間は職業プログラマーの素養がないので、PHPで日曜プログラマーでよい。
0404デフォルトの名無しさん2009/07/08(水) 05:00:29
〜が理解できないとかPerl上級者とかそういう話はしてないよ
0405デフォルトの名無しさん2009/07/08(水) 05:04:00
リファレンスが解るかどうかと、392が直感的かとは別問題でしょ…
俺だってCやJavaやPythonやRubyでリファレンスなら扱えるさ
Perlのは同じ記述がコンテキストで意味変わり過ぎてちと無理だわ
0406デフォルトの名無しさん2009/07/08(水) 05:05:55
$AoA[$i] = [ @array ]; # usually best
$AoA[$i] = \@array; # perilous; just how my() was that array?
@{ $AoA[$i] } = @array; # way too tricky for most programmers
perldscから引用

直感的ではないなどと主観で言われても、
ああ、そうですかとしか言いようが無いけどね。
0407デフォルトの名無しさん2009/07/08(水) 05:15:50
>>402
それ、エラー出ないか?

ちなみに同じページに

$AoA[$i] = \@array;

もほぼ間違い、と書かれていた。

@arrayがループ内でmyされたものなら問題は起きないが
ループより外にスコープがあるものだった場合
\@arrayは毎回同じ配列へのリファレンスを取得してしまうから、だそうだ。
0408デフォルトの名無しさん2009/07/08(水) 06:20:36
言語毎にまとめてみた。
上はコピーされてリファレンスが渡され、下は直接リファレンスが渡される。

Perl
$AoA[$i] = [ @array ];
$AoA[$i] = \@array;

PHP
$AoA[$i] = $array;
$AoA[$i] = &$array;

Ruby
AoA[i] = array.dup
AoA[i] = array

Python
AoA[i] = list(array)
AoA[i] = array
0409デフォルトの名無しさん2009/07/08(水) 06:29:28
Perlの場合リファレンスとかがわかりにくいというより
コンテキストが問題を分かりにくくしてると思う
0410デフォルトの名無しさん2009/07/08(水) 07:52:09
今回の例に限って言えば、配列(およびハッシュ)の要素にはスカラー値のみ格納できる、
っていう言語仕様を知ってるかどうかだけのことなんだろうけどな
0411デフォルトの名無しさん2009/07/08(水) 07:56:55
配列の配列とかが直感的に思った通りに出来る言語が勝ちだな。
0412デフォルトの名無しさん2009/07/08(水) 08:06:57
>>411
直感は個人によって違うわけだから、そんなに直感的にやりたいなら自分で言語作ればいいんじゃないかと

つプログラミング言語を作る 前橋 和弥 (著)
http://www.amazon.co.jp/dp/4774138959/
0413デフォルトの名無しさん2009/07/08(水) 10:08:45
@hoge = (1, 2, (3, 4, 5), (6, 7, (8, 9)), 10);
0414デフォルトの名無しさん2009/07/08(水) 10:48:19
いつ見ても、Perlの文法は糞過ぎる。
なんで未だにこれを擁護出来る人が居るのか不思議でならない。
0415デフォルトの名無しさん2009/07/08(水) 10:54:06
糞であるが故のバッドノウハウ症候群。
そして今更捨てられることができない認知的不協和。
0416デフォルトの名無しさん2009/07/08(水) 11:42:12
無名関数を積極的に使いたい人は
クラス・メソッドの関係にこだわらないperlの方がむしろ癖がなくて良い
0417デフォルトの名無しさん2009/07/08(水) 11:49:27
>416
まともな関数型言語触った事無い奴が、そんな寝ぼけた事言ってるんだろうな。
0418デフォルトの名無しさん2009/07/08(水) 11:51:04
無名関数を積極的に使うならJSが割と最適解かも
0419デフォルトの名無しさん2009/07/08(水) 11:52:21
416 は Perl しか使っていない
0420デフォルトの名無しさん2009/07/08(水) 12:07:54
使いまわしの出来るクラスの一つや二つ作れるようになってから(ry
0421デフォルトの名無しさん2009/07/08(水) 12:30:21
>>418 合意
0422デフォルトの名無しさん2009/07/08(水) 12:31:36
>>408
Javaに慣れてしまった俺としては、Rubyが一番素直に見える。
次はPython、でPHPの順かな。
Perlはやっぱり複雑怪奇だ。
配列をオブジェクトとして扱えた方が、array.lengthみたいな書き方が出来て便利だと思う。

>>418
確かに。
最初のうちは無名関数の使いどころがよくわからなかったけど、
JavaScriptを使っているうちになんとなく身についた。
0423デフォルトの名無しさん2009/07/08(水) 12:38:37
無名関数を関数型言語で覚えた奴は、純粋な関数処理を書く。
JavaScriptで覚えた奴は、副作用大前提のプロシージャっぽいのを書く。
0424デフォルトの名無しさん2009/07/08(水) 12:56:06
>>414
いつ見ても、Rubyの文法は糞過ぎる。
なんで未だにこれを擁護出来る人が居るのか不思議でならない。

と、何にでも適用可能だな。w

0425デフォルトの名無しさん2009/07/08(水) 13:02:03
>>423
副作用大前提のおかげで、ジェネレータが発明されたんだぜ
0426デフォルトの名無しさん2009/07/08(水) 13:08:20
LISPだって副作用バリバリだろ。
0427デフォルトの名無しさん2009/07/08(水) 13:13:00
perlだけはレベルが違う
0428デフォルトの名無しさん2009/07/08(水) 13:26:55
>>422
Java はどのへん?
C# は?
0429デフォルトの名無しさん2009/07/08(水) 14:53:48
ラクダ本って言うのは、Perlに詳しい人が読む本。初心者が無理して読む本じゃない。
0430デフォルトの名無しさん2009/07/08(水) 15:05:58
Javaは数値以外は基本的に参照、だからコピーのときに明示
C#は知らん
0431デフォルトの名無しさん2009/07/08(水) 15:06:15
ダウト。ラクダ本は多言語上級者がPerl入門のために読むもの。
04324302009/07/08(水) 15:15:26
盛大にコンテキスト(文脈)を読み間違えたぜ…
0433デフォルトの名無しさん2009/07/08(水) 15:59:44
結局コードも示さずに複雑怪奇やら、糞やら、呪詛を吐くしかできないのか。
だめだこりゃ。
0434デフォルトの名無しさん2009/07/08(水) 16:01:49
>>433
そりゃほとんどの人間の悪口は脳内の言語イメージに対して言っているものだから仕方ない
そういう馬鹿がよりつかなくてよかったと思うしか
0435デフォルトの名無しさん2009/07/08(水) 19:10:09
package MyObj;
sub new {
  my ($class) = @_;
  my $self = { 'items' => [] };
  bless $self, $class;
}
sub set {
  my ($self, $newitem) = @_;
  push @{ $self->{'items'} }, $newitem;
}
sub take {
  my ($self) = @_;
  pop @{ $self->{'items'} };
}
1;
いまPerl初心者の俺のコードが簡単に言うとこんな感じになってるんだが
Perl使い的にはどう書くんだ?
0436デフォルトの名無しさん2009/07/08(水) 19:55:55
Perlスレで聞けばいいのに。
モダンに書くとしたら。
package MyObj;
use Moose;

has 'items' => (
    is => 'rw',
    isa => 'ArrayRef',
    default => sub { [] }
);

sub set {
    my ($self, $newitem) = @_;
    push @{ $self->items }, $newitem;
}

sub take {
    my ($self) = @_;
    return pop @{ $self->items };
}

1;

これだけ単純なら、use Mooseじゃなくてuse Mouseでも。
0437デフォルトの名無しさん2009/07/08(水) 21:22:20
モダン(笑)
ハイソ(笑)
ハイカラ(笑)
0438デフォルトの名無しさん2009/07/08(水) 21:47:52
ニーソ馬鹿にすんな
0439デフォルトの名無しさん2009/07/08(水) 23:30:45
perlerの連中も、意識的にモダンに書かないと、非モダンな出来上がりになる事は
認めてるらしい。
0440デフォルトの名無しさん2009/07/08(水) 23:56:12
perlの文を見ると吐き気がする。C++の仕様の方がカワイイぐらいだ
いい加減に間違った進化だったって、さっさと淘汰されないかな
0441デフォルトの名無しさん2009/07/09(木) 00:04:30
Perl系の言語って、Perlそのもの以外になんかあるんだっけ?
04424362009/07/09(木) 00:34:14
>>439
まあ、モダンでなければ非モダンだわな。>>435そのままだし。
>>436でもAny::Mooseぐらい使えとか、no Mooseしとけとか突っ込まれそうな気がする。

>>441
直系はPHPとRuby。既に別物。
0443デフォルトの名無しさん2009/07/09(木) 00:40:49
>441
JPerlとIronPerlがあるよ
0444デフォルトの名無しさん2009/07/09(木) 00:47:37
PHPってPerl系なのか
0445デフォルトの名無しさん2009/07/09(木) 00:55:53
PHPは元を辿ればPerlの派生だけど、
ポリシーの無い付け足しをしまくりでワケワカメ状態。
0446デフォルトの名無しさん2009/07/09(木) 04:27:04
モノポリー
0447デフォルトの名無しさん2009/07/09(木) 04:39:45
のんぽり
0448デフォルトの名無しさん2009/07/09(木) 08:50:51
>>440
Rubyの文を見ると吐き気がする。Pythonの仕様の方がカワイイぐらいだ
いい加減に間違った進化だったって、さっさと淘汰されないかな
0449デフォルトの名無しさん2009/07/09(木) 09:44:49
というレスを書いて「何にでも当てはめられるなw」とかご満悦の奴が時々いるけど、
オリジナルのようには的を射ていないのが大半で、ミジメな抵抗に終わる。
0450デフォルトの名無しさん2009/07/09(木) 10:20:23
的を射
0451デフォルトの名無しさん2009/07/09(木) 11:31:33
>>451
ATOKまじお勧め
0452デフォルトの名無しさん2009/07/09(木) 11:33:03
ATOK は自分を指すミスまでは直してくれないんだね
0453デフォルトの名無しさん2009/07/09(木) 12:10:45
ATOK なんかをつかうやつはばかです
0454デフォルトの名無しさん2009/07/09(木) 12:41:12
SKKこそ正義
0455デフォルトの名無しさん2009/07/09(木) 12:41:30
ATOK使ってみたら草生やすのが大変すぎてワロタ
0456デフォルトの名無しさん2009/07/09(木) 13:20:05
っっっっっっっっっっっっw
0457デフォルトの名無しさん2009/07/09(木) 19:48:51
っっwの状態でファンクションキー1回押すだけだよ
0458デフォルトの名無しさん2009/07/09(木) 19:51:07
ファンクションキーを押さないといけないなんて
ATOK のインターネット経由の辞書もたいしたことないですね
0459デフォルトの名無しさん2009/07/09(木) 19:54:25
つまんない
0460デフォルトの名無しさん2009/07/09(木) 20:21:23
ッッッッッッッw
0461デフォルトの名無しさん2009/07/09(木) 21:00:19
的を射る、であってるんだよな。不安になってきた
0462デフォルトの名無しさん2009/07/09(木) 21:01:45
お姉ちゃんにお任せだぞっっっっっっっっっっ!!
http://d.hatena.ne.jp/keyword/%C5%AA%A4%F2%C6%C0
0463デフォルトの名無しさん2009/07/09(木) 21:12:05
語源の『大学』・『中庸』にあるように、「正鵠(せいこく)を失う」という表現からきています。
この場合の正鵠は「正も鵠も、弓の的のまん中の黒星(『角川漢和中辞典』)」のことで、
射てど真ん中の黒星に当てることができたかどうか、
当たったら「得た」といい、はずれたら「失う」と表現していたのです。
矢で的を射るのは当り前としても、
必ずしも的に、まして正鵠に当たるかどうかは示していない表現が「的を射る」です。
0464デフォルトの名無しさん2009/07/09(木) 22:51:10
なるほど。確かに的を(狙って)射るのには、当たるかどうかは関係ないわな。

しかし、話題のATOKさんでは、「まとをえる」と打って変換しようとすると
《「当を得る/的を射る」の誤用》とか、赤い字でお節介に教えてくれたりもするw

まあ結局、言葉なんて意味が通じればなんでもいいってこった。
0465デフォルトの名無しさん2009/07/09(木) 22:52:54
>>464の「まとをえる」は、「まとをいる」って打ったとき、ね。間違えた。
0466デフォルトの名無しさん2009/07/09(木) 22:54:17
あれ?「まとをえる」の時でいいんだ。もういいや><
0467デフォルトの名無しさん2009/07/10(金) 17:25:42
今年のLLイベントは面白そうなのか?
0468デフォルトの名無しさん2009/07/10(金) 17:27:34
つまり、的外れだと言えばいいんだな
0469デフォルトの名無しさん2009/07/10(金) 21:44:38
ゲーム作るのに最適のプログラミングは?
0470デフォルトの名無しさん2009/07/10(金) 21:46:42
C++
このスレ的には、RPGツクールに内蔵されてるRubyってことになるか。
0471デフォルトの名無しさん2009/07/10(金) 21:47:38
じゃあRuby覚えようっと
0472デフォルトの名無しさん2009/07/10(金) 21:52:16
http://itpro.nikkeibp.co.jp/article/NEWS/20090701/333034/?ST=oss
ググったらサポート1件3万とかふざけた金額が出たんだけどそんなムズいの?
0473デフォルトの名無しさん2009/07/10(金) 21:53:37
2chで聞けばいいのにw
0474デフォルトの名無しさん2009/07/10(金) 21:55:10
2chはゴミみたいな情報しかねーだろ
ってかサポートってこんなかかるのに何でプログラマは死にそうなの?
0475デフォルトの名無しさん2009/07/10(金) 21:58:55
サポートをやれるような大企業はプログラマ以外にもたくさん人が必要で、
その人たちの給料やらなにやらを考えたらたいして金が残らんから。
0476デフォルトの名無しさん2009/07/10(金) 22:00:51
その人たちっていらない人たちなんじゃねえの?
過労死させるような最低の企業が多い癖に不景気だし
0477デフォルトの名無しさん2009/07/10(金) 22:07:45
>>472
基本料金などが不要な「トライアルプラン」では,1インシデント3万円で問い合わせに回答。
月額基本料金10万円の「ベーシックプラン」は2インシデントまで無料で,以降1インシデントごとに1万円。
「プレミアムプラン」は月額基本料金15万円で4インシデントまで無料。以降1インシデントごとに5000 円となる


割引になってないしww
0478デフォルトの名無しさん2009/07/10(金) 22:09:13
素晴らしい詐欺だったのか
0479デフォルトの名無しさん2009/07/10(金) 22:10:14
おそらく技術者は小人数
電話取り次ぎとマニュアルで解決できない問題の技術者への引継までは
派遣スタッフがやってるんだろうね
かなりいろんな段階でピンはねがあるかと
0480デフォルトの名無しさん2009/07/10(金) 22:11:01
この会社に就職するのも悪くは無い
0481デフォルトの名無しさん2009/07/10(金) 22:17:41
http://www.ec-one.com/recruit/index.html
採用情報持ってきてやったぞ
0482デフォルトの名無しさん2009/07/10(金) 23:00:17
>>481
資格で要求されている経験と、
「学歴、前職規模、業界不問、24〜35歳位まで」ってのが乖離しすぎて無理ありすぎ。
0483デフォルトの名無しさん2009/07/10(金) 23:03:33
Ruby厨はキチガイしかいないようで
0484デフォルトの名無しさん2009/07/11(土) 11:11:41
スクリプトで生計立ててる人って・・
0485デフォルトの名無しさん2009/07/12(日) 15:05:37
>>484
それで生計が立つならいいんじゃないか?
0486デフォルトの名無しさん2009/07/12(日) 15:54:19
いやいいんだが、そういう奴の一人称って「ぽっくん」が多くね?
いままで5,6人のスクリプターと接してきたけど3人がそういう奴しってる。
しかも全員SOHO。やっぱ人と会話してないとアレになっていくのかなあ…
0487デフォルトの名無しさん2009/07/12(日) 15:54:43
立たない人間が大半じゃないですかー
0488デフォルトの名無しさん2009/07/12(日) 15:55:24
>>486
ただキチガイと当たっただけじゃね?
0489デフォルトの名無しさん2009/07/12(日) 15:57:16
ぽっくんって何?
0490デフォルトの名無しさん2009/07/12(日) 15:59:32
僕君?
0491デフォルトの名無しさん2009/07/12(日) 16:18:45
おぼっちゃまくん以外でそんなの聞いたことねーよw
パチンコの影響か?
0492デフォルトの名無しさん2009/07/12(日) 16:22:05
馬鹿にされてるんじゃねーの?
0493デフォルトの名無しさん2009/07/12(日) 17:28:30
>>486
お前それ、奇跡みたいな確率だぞw
一般的な現象として語るとキョトンとされるだけだろうが、
初めから「嘘みたいなホントの話」として語ればウケるかも。
0494デフォルトの名無しさん2009/07/12(日) 21:04:55
で、結局最強はどれなの?
全然バトルをロワイヤルしてないじゃん
0495デフォルトの名無しさん2009/07/12(日) 21:08:06
隔離スレなんだから終わらせちゃ意味がないだろ
0496デフォルトの名無しさん2009/07/12(日) 21:12:05
しかし言語ってそんな大事かね
0497デフォルトの名無しさん2009/07/12(日) 21:18:34
大事でなければ、こんなに乱立するわけがない
0498デフォルトの名無しさん2009/07/12(日) 21:19:38
まあ>>496は、(CPUごとに違うらしい)マシン語だけ使ってろってこった
0499デフォルトの名無しさん2009/07/12(日) 21:34:28
えっ?
0500デフォルトの名無しさん2009/07/12(日) 21:40:16
同系統のCPUならある程度の互換性はあるけどな
流石にPowerとかになると全然違うが
0501デフォルトの名無しさん2009/07/12(日) 21:44:23
x86とPowerとSHは違うんじゃね?
0502デフォルトの名無しさん2009/07/12(日) 22:02:09
このスレで(高級)言語の存在意義が問われるとは意外と言えば意外。

しかし>>496はどうとでもとれるので、本人的には、
「俺は言語なんかこだわらないぜ、なんでも書けるよフフン」
って意味で書いただけかも知れんが。
0503デフォルトの名無しさん2009/07/12(日) 22:07:17
ruby / pythonを使う利点ってなんでしょうか?
0504デフォルトの名無しさん2009/07/12(日) 22:07:50
ruby信者になれる
0505デフォルトの名無しさん2009/07/12(日) 22:17:33
>>503
rubyやpythonのソースコードが読めるようになります
また、rubyやpythonを好きで使っている、頭のいい人達の
言ってることが理解しやすくなるかも知れません
0506デフォルトの名無しさん2009/07/12(日) 22:18:55
>>503
オブジェクト指向
0507デフォルトの名無しさん2009/07/12(日) 22:40:32
しかし、RunyとPythonはいっしょくたに語られる言語でもないと思うが。
Perl,PHP,Ruby,Pythonってくくりならわからんでもないが。
0508デフォルトの名無しさん2009/07/12(日) 22:41:40
信者のキモさで一括りだろ
0509デフォルトの名無しさん2009/07/12(日) 22:45:41
Rubyはキモいと感じるが、PHPとPythonはそれほど差はないと感じるが。
0510デフォルトの名無しさん2009/07/12(日) 22:53:41
俺はRubyとPythonは大丈夫だがPerlとPHPはキモく感じる
0511デフォルトの名無しさん2009/07/12(日) 22:56:23
そして世間の皆からキモく感じられてる>>510
0512デフォルトの名無しさん2009/07/12(日) 22:58:54
Rubyは作者が喧嘩売ってるってかそんな感じw
0513デフォルトの名無しさん2009/07/12(日) 23:00:22
おいデブ涙拭けよ
0514デフォルトの名無しさん2009/07/12(日) 23:01:11
>511
残念ながら、俺はお前が想像してる以上にキモいぞ。
0515デフォルトの名無しさん2009/07/12(日) 23:10:26
そろそろスレ違いも度を越してるだろ
0516デフォルトの名無しさん2009/07/12(日) 23:46:34
この辺のカス言語仕事で覚えさせられるのって、ねじ穴の型番たくさん覚えさせられる
バイトみたいなもんだよな。
履歴に書いても、あぁちょっと開発をかじってんのねくらいの経験にしか扱われねーし
0517デフォルトの名無しさん2009/07/13(月) 00:55:23
PHP信者は単にプログラミング経験が浅いだけだと思うよ。
0518デフォルトの名無しさん2009/07/13(月) 03:57:29
LLなんてどれも目糞鼻糞じゃね?
0519デフォルトの名無しさん2009/07/13(月) 04:01:29
特定言語の信者になっちゃう時点であれだな。
LL言語って、優劣じゃなく好みの問題じゃね?
0520デフォルトの名無しさん2009/07/13(月) 04:21:51
Perl 素人〜一般人〜変人 くまなくカバー
PHP 素人から圧倒的な支持
Python 一般人〜変人
Ruby 変人
0521デフォルトの名無しさん2009/07/13(月) 04:29:11
Perl アル・ヤンコビック
PHP 田中要次
Python ばんばひろふみ
Ruby もっとがんばりましょう
0522デフォルトの名無しさん2009/07/13(月) 12:33:22
20代専用Webページプリントごっこツールってことに気づいたのは30代になってから
0523デフォルトの名無しさん2009/07/13(月) 13:46:47
>>520
Perl:素人、変人
PHP:素人〜一般人
Python:一般人〜変人
Ruby:一般人、信者

こうじゃね?
0524デフォルトの名無しさん2009/07/13(月) 14:38:10
お前らのとりあえずPHP馬鹿にしとけばオレカコイイって言うスタンスワロタw
マジで違い分かってんのかよw
0525デフォルトの名無しさん2009/07/13(月) 14:56:34
>>524
その反応は痛いなぁ。
お前だって今、ひらがなしか使えない奴に「かんじをつかえばかっこいいとおもってるおまえにわろた」
って言われたら呆気に取られるだろ? そういうレベルのこと言ってると自覚したほうがいいw
0526デフォルトの名無しさん2009/07/13(月) 15:01:34
レベルング
0527デフォルトの名無しさん2009/07/13(月) 15:02:54
おっと(r
0528デフォルトの名無しさん2009/07/13(月) 15:50:17
つーか、PHPはどう考えても言語使用がぐだぐだだろ。
まぁ、言語として比べること時点でおかしいんだが。
0529デフォルトの名無しさん2009/07/13(月) 16:48:08
PHPは書きやすい言語なんだろうね
ただ、例外処理についてはもっとやりやすくして欲しかった
0530デフォルトの名無しさん2009/07/13(月) 17:08:16
PHPの言語仕様は破綻している。Perlと同じくらい。
まだJavaScriptのほうがまし。
0531デフォルトの名無しさん2009/07/13(月) 17:11:09
PHP: Personal Home Page Tools(笑)
0532デフォルトの名無しさん2009/07/13(月) 17:19:34
どうやら壊れてしまったようだ
0533デフォルトの名無しさん2009/07/13(月) 18:04:03
PHPの言語仕様ならとっくに壊れてますよ。
0534デフォルトの名無しさん2009/07/13(月) 18:17:30
JavaScriptで要改善な仕様って、このくらい?

・コンストラクタ内で関数定義したときのthisの扱い
・連想配列とオブジェクトの関係
0535デフォルトの名無しさん2009/07/13(月) 18:17:58
言語仕様という点ではPHPとRubyはある意味対極にあるからな。
そりゃ信者同士の小競り合いが絶えないわけだ。
0536デフォルトの名無しさん2009/07/13(月) 18:19:21
>>534
ブラウザ・バージョンでの挙動統一
0537デフォルトの名無しさん2009/07/13(月) 18:19:51
挙動統一は仕様じゃなくね?たしかに問題点ではあるが
0538デフォルトの名無しさん2009/07/13(月) 18:36:15
>>534
配列関連
変数スコープ
文の区切り
0539デフォルトの名無しさん2009/07/13(月) 18:39:24
>>530
Perlの言語仕様は破綻していない。
破綻していると思うのは、訓練が足りないせい。
0540デフォルトの名無しさん2009/07/13(月) 18:58:44
訓練を洗脳に変えるなら同意。
0541デフォルトの名無しさん2009/07/13(月) 20:23:22
んなこと言ったら、どんな言語でも洗脳だべ
Rubyのdef〜end にしても、Pythonのselfやインデントにしても

Javaなんかの洗脳も強烈だし。
Car car = new Car();
なんだこれ
0542デフォルトの名無しさん2009/07/13(月) 22:05:33
def、end、インデントはどんなに厳しく見ても洗脳と言うには無理があるだろww
0543デフォルトの名無しさん2009/07/13(月) 22:11:56
Perl信者が話をドローに持ち込もうと必死なんだろう。
失敗してるけど。
0544デフォルトの名無しさん2009/07/13(月) 22:18:21
def end self インデントは、既存のプログラムを読むときに簡単に
推測可能なもの。
Perlの特殊変数をはじめとする記号の数々は推測不可能。
phpは関数名や動作が推測不可能。
0545デフォルトの名無しさん2009/07/13(月) 22:35:50
> Perlの特殊変数をはじめとする記号の数々は推測不可能。
だとすると、Rubyの組み込み変数も推測不可能ってこったな。

> phpは関数名や動作が推測不可能。
意味ワカンネ。
0546デフォルトの名無しさん2009/07/13(月) 22:43:51
記号が書いてあれば推測の手がかりになるけど、
文字間の略されてる部分を脳内補間して理解するのは
かなり信仰を深めないと無理。
0547デフォルトの名無しさん2009/07/13(月) 22:51:54
記号の意味なんてのは覚えりゃいい話だよ。
推測の可・不可なんて、覚えるまでの短期間だけのオハナシ。(馬鹿以外には)本質的ではない。
もちろんその記号群が数千とかあるなら、同じことはとても言えないけど、そうじゃないし。
そう滅多に増えもしないし。
0548デフォルトの名無しさん2009/07/13(月) 22:53:18
記号の意味っつーか、変数の中身を考えながら記号書かなきゃならんのがなあ
スクリプト言語なのにC言語でポインタ触ってる気分になる
0549デフォルトの名無しさん2009/07/13(月) 23:41:41
PHPの関数の名前から動作を推測するのは簡単だと思うけど、
関数が多すぎだし、関数名が長すぎる。

array_push($array, ..)みたいな書き方よりも、
$array->push(..)の方がすっきりするでしょ。
0550デフォルトの名無しさん2009/07/14(火) 00:00:38
$打つのがドルい
0551デフォルトの名無しさん2009/07/14(火) 00:14:52
>>549
この場合は順序が本質ではないか
オブジェクト指向脳であれば、というかデータ構造を操作するという視点に立てば
「arrayにpushしたい」と考えるのが自然だと思う
0552デフォルトの名無しさん2009/07/14(火) 00:25:10
PUSH ... TO ARRAY. でいいよ。
0553デフォルトの名無しさん2009/07/14(火) 00:25:41
>>551
それは単に思考が日本語だからではないか
0554デフォルトの名無しさん2009/07/14(火) 00:51:22
>>553
だからいいんじゃねーの?
0555デフォルトの名無しさん2009/07/14(火) 00:55:37
そんなあなたには、なでしこです。
0556デフォルトの名無しさん2009/07/14(火) 01:04:30
>>534
スクリプトにバグがあったときのIEのメッセージをなんとかして欲しい
もしかして今の新しいIEでは改善されてるのかな
0557デフォルトの名無しさん2009/07/14(火) 01:54:35
>>555
わざわざ日本語変換なんぞしてられるか
0558デフォルトの名無しさん2009/07/14(火) 01:58:17
ひらがなで打てばいいよ
0559デフォルトの名無しさん2009/07/14(火) 02:01:38
>>557
俺様専用言語でも作っとけ。
0560デフォルトの名無しさん2009/07/14(火) 08:23:54
>>547
>記号の意味なんてのは覚えりゃいい話だよ。
いやいや、Perlは$_をつかって記号すら省略してしまうじゃん
あんなのワンライナーを優先しすぎたクソ仕様
しかも@var=(1,2,3)の要素を参照するのが$var[i]とかウンコすぎる
@var[i]でいいだろ、ややこしいんだよ

>推測の可・不可なんて、覚えるまでの短期間だけのオハナシ。(馬鹿以外には)本質的ではない。
まさに洗脳された信者
0561デフォルトの名無しさん2009/07/14(火) 08:46:01
能力が著しく低くないとわからない物ってのも、世の中にはあるものね。
俺の婆ちゃんが一人暮らししてた頃、市販品の蓋一つ、取っ手一つとっても
手が不自由な婆ちゃんにとっては性質次第で色んな不便があることをよく言ってて、
ああそうなのかぁ、と気付かされることが多かった。
0562デフォルトの名無しさん2009/07/14(火) 11:20:05
たしかに記号だとググりにくい。
0563デフォルトの名無しさん2009/07/14(火) 11:37:08
grepっていえよ
0564デフォルトの名無しさん2009/07/14(火) 12:34:11
>>560
まだまだ訓練が足りない。

>$_をつかって記号すら省略してしまう
省略するかしないかはプログラマの自由。
言語仕様だけが原因ではない。

>$var[i]
@var[i]で参照してもよい。
そうするとスライスになるが、違いが
問題になることはあんまりないだろう。
0565デフォルトの名無しさん2009/07/14(火) 13:25:09
>>564
dankogai 乙
0566デフォルトの名無しさん2009/07/14(火) 13:29:22
おもちゃはおもちゃらしく簡単に使えないとねぇ。C#でいいやってなっちゃうし
0567デフォルトの名無しさん2009/07/14(火) 13:33:35
>>564
まだまだ実践経験が足りない。
0568デフォルトの名無しさん2009/07/14(火) 13:46:59
結局自分のスキルに自信アリマス!って奴なんか
本当の意味で一人もいないと思うんだけどどう思う?

だから>>567みたいな煽り食らうと

「そうか・・・(´・ω・`)」ってなる。
0569デフォルトの名無しさん2009/07/14(火) 13:54:33
あの…VBScriptは…
すみません。土台にすら上がってませんよね。ごめんなさいごめんなさい。
0570デフォルトの名無しさん2009/07/14(火) 13:56:13
perlは正規表現だけの言語だな。
他はなんか気に食わない。最近はいないけど、perl信者もかなりうざかったしw
0571デフォルトの名無しさん2009/07/14(火) 14:04:57
>>560
記号が嫌ならEnglish.pm使えば?

> いやいや、Perlは$_をつかって記号すら省略してしまうじゃん
変数省略できるが、記号の省略の意味ワカンネ。

> しかも@var=(1,2,3)の要素を参照するのが$var[i]とかウンコすぎる
> @var[i]でいいだろ、ややこしいんだよ
@var[..]は配列の範囲を返す。
リストコンテキストとスカラコンテキストは理解しようぜ。
0572デフォルトの名無しさん2009/07/14(火) 14:34:30
頭で理解しててもパッと見て判らんのよ、コンテキストって。
本質じゃないところに考える時間を割くことになる。
同じ表記が同じように通用しない。

Rubyは今は言わなくなったが、昔は「驚き最小限」なんて言葉があった。
元々PerlのパクりであるRubyにおいて
その驚きってのはコンテキストのことだったんじゃないかなと思う。
0573デフォルトの名無しさん2009/07/14(火) 14:42:50
昔は最小限での入力とか結構持てはやされてたな

今はなんだろ?
自分は入力保管とかバリバリ使うから見易さ・判り易さ重視で組むが。
0574デフォルトの名無しさん2009/07/14(火) 14:50:47
たとえ入力補完が発達しても数学みたいなもんで
最小限での入力というか、最小限での表記のほうがロジックが分かりやすいな。
0575デフォルトの名無しさん2009/07/14(火) 14:51:18
今は、一貫性だと思う。
0576デフォルトの名無しさん2009/07/14(火) 16:42:55
RubyってHSPに毛が生えたようなもの、みたいな印象しかないな。
0577デフォルトの名無しさん2009/07/14(火) 16:49:03
>>575
今・・・は・・・?ゴクリ
0578デフォルトの名無しさん2009/07/14(火) 17:24:57
>>575
一貫性重視なら最初からPython使えばいい。
Rubyは、Matzが書きたいように書けるのが第一で、一貫性なんて
対して重視されていない。
0579デフォルトの名無しさん2009/07/14(火) 17:28:44
便利さのための一貫性の犠牲は歓迎。
単なる不統一は修正すればいいだけ。
その修正をまったく受け入れないのであれば問題だけど、
まぁまぁ直している。

TOMOYO Linux で受け入れてくれるための交渉術、
とあったけど、Ruby には交渉下手な上から目線が多くて残念。
0580デフォルトの名無しさん2009/07/14(火) 17:33:29
>>578
御意
0581デフォルトの名無しさん2009/07/14(火) 18:49:49
$hoge = hage;
print @hoge, hoge, $hoge;
0582デフォルトの名無しさん2009/07/14(火) 23:37:12
>>571
>記号が嫌ならEnglish.pm使えば?
自分一人がEnglish使ったところで、ほかの人が使ってなかったら、結局記号の意味を勉強しないといけないんだから、意味薄いだろ。
そのくらいわかろうぜ。

>変数省略できるが、記号の省略の意味ワカンネ。
記号変数すら省略するってこと

>@var[..]は配列の範囲を返す。
だからそれがいけてないってことだよ。
@var[0]は最初の要素、@var[0,3]は0番目を含めて3つの要素、とかできたはずなんだから。
もちっと他の言語勉強しな。Pythonのスライスとか勉強してみ。

>リストコンテキストとスカラコンテキストは理解しようぜ。
そんなのが存在する時点でもうね。
そしてそれを「理解しようぜ」なんて言ってる時点で洗脳されすぎ。
0583デフォルトの名無しさん2009/07/14(火) 23:43:05
だから、嫌いな奴は洗脳とかキツい言葉を使ってればいいさ
普通の感性では習熟とかいうんだけどな

Perlのコンテキストにしても、関数の戻り値を柔軟に持てるとか
それなりの利点もあるし、便利に使える場面もある。
あんまりしつこいと下衆っぽいよ。
0584デフォルトの名無しさん2009/07/14(火) 23:49:35
関数の戻り値を柔軟に持てるってどういうこと?
0585デフォルトの名無しさん2009/07/14(火) 23:54:15
まともなPerl批判も世の中には存在するんだけど、
この子が言ってるのは単に「俺は嫌い、俺は苦手」ってレベル。

あらゆる言語をあっという間に修得してしまう、優秀な俺とは関係ない次元で吠えてる。
0586デフォルトの名無しさん2009/07/14(火) 23:59:08
気持ち悪いのキタ
0587デフォルトの名無しさん2009/07/15(水) 00:02:41
スクリプトぱっと憶えたら優秀ってなんかピエロだな
0588デフォルトの名無しさん2009/07/15(水) 00:09:04
Perl批判は俺が知る限り少なくとも2人居るんだが、この子ってどっちのことを指してるのだろう
0589デフォルトの名無しさん2009/07/15(水) 00:33:46
面接でPerlが得意とか恥ずかしくて言えない
0590デフォルトの名無しさん2009/07/15(水) 00:37:28
>>584
言葉通りの意味なら、コンテキストによって返値を変えることができるってことだろ。

my $ret = hoge(); #=> '2つあったよ!'
my @ret = hoge(); #=> ('hoge', 'page')

ただ、あんまり便利に使う状況ってのに出くわしたことはないような気もするw
0591デフォルトの名無しさん2009/07/15(水) 00:37:31
my $self=shift;
0592デフォルトの名無しさん2009/07/15(水) 00:43:30
>>587
ぱっと覚えられない奴がどうしようもない馬鹿なだけだものな。
0593デフォルトの名無しさん2009/07/15(水) 00:44:13
@baka=(9,8,7)
@aho=(1,2,@baka,4,5)
print @aho
0594デフォルトの名無しさん2009/07/15(水) 00:56:37
>590
そういや配列はスカラーコンテキストだと要素数だな
しかし、混乱の元になった記憶しかないw
普通にlen(ary)なりsize(ary)なり用意すれば良かったのにとしか思わないんだよなあ
0595デフォルトの名無しさん2009/07/15(水) 01:01:56
perlはいまやLL界のCOBOLだな
0596デフォルトの名無しさん2009/07/15(水) 01:03:03
Perlはすぐ使える鉛筆みたいな道具
Pythonはきちんと書くときにつかう筆
rubyはうんこふく時の紙
0597デフォルトの名無しさん2009/07/15(水) 01:38:47
rubyが一番重要ってことだな
05985712009/07/15(水) 01:45:46
>>582
> @var[0]は最初の要素、@var[0,3]は0番目を含めて3つの要素、とかできたはずなんだから。
> もちっと他の言語勉強しな。Pythonのスライスとか勉強してみ。
start..(start+number-1)で指定すればいいじゃん。
まあ、勉強してみますか。

Perl
範囲でしか指定できません。

Ruby
list = %w( a b c d e f )
p list.slice(2, 3)
で、
["c", "d", "e"]
が返りますね。

PHP
$list = array('a', 'b', 'c', 'd', 'e', 'f');
var_dump(array_slice($list, 2, 3));
で、
array(3) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
[2]=>
string(1) "e"
}
が返りますね。

では、Pythonではどう書くのでしょうか。
>>582さん、教えていただけますか?
0599デフォルトの名無しさん2009/07/15(水) 02:25:16
ここは質問スレじゃないから自分で調べろ
http://0xcc.net/blog/archives/000043.html
http://www.diveintopython.org/native_data_types/lists.html
http://www.python.org/doc/2.3.5/whatsnew/section-slices.html
0600デフォルトの名無しさん2009/07/15(水) 02:41:10
>>598
list = [ 'a', 'b', 'c', 'd', 'e', 'f' ]
list[2:5]
06015712009/07/15(水) 03:15:57
>>600
残念ながら、それは範囲指定だから意味が違いますね。
0602デフォルトの名無しさん2009/07/15(水) 03:29:43
L[2:5]をL[2:2+3]に読み替えればいいじゃないか
06035712009/07/15(水) 03:31:08
>>600の書き方ならば
Perl
my @list = qw( a b c d e f );
print "@list[2..4]";

PHP
書式なし

Ruby
list = %w( a b c d e f )
p list.slice(2..4)

Python
d = ["a", "b", "c", "d", "e", "f"]
print(d[2:5])

で行けますが。
0604デフォルトの名無しさん2009/07/15(水) 03:46:42
スカラ/リストの表記がきもい(他言語ではもっとシンプルな仕様で成立してる)って話のはずなのに、一体何をどう曲解してるんだ
06055712009/07/15(水) 03:50:30
>>604
単にキモイっていう単なる主観の感情の問題だというのか?
アホか。
0606デフォルトの名無しさん2009/07/15(水) 03:52:24
 っつーかlistに代入するなんて(r
0607デフォルトの名無しさん2009/07/15(水) 04:01:14
$や@を使うのは、ハンガリアン記法要らずで、分かりやすく便利。Rubyはソースコードが見づらすぎる。JavaとかC#みたいにVSとかEclipseとかのIDEを使うのが当たり前の言語なら、そう言う言語機能は不要かなと思うけど。
0608デフォルトの名無しさん2009/07/15(水) 04:11:35
コンテキストがあいまいなことによる
読みにくさとバグの温床になるプログラムの例を
各PPPRでおながいします↓
0609デフォルトの名無しさん2009/07/15(水) 05:52:49
>607
ハンガリアンとは根本的に違うというか、むしろ相反するような気がするが
0610デフォルトの名無しさん2009/07/15(水) 06:35:40
@tmpと%tmp、前者が配列で後者がハッシュであることは一目瞭然。@tmp_listや$tmp_map等とする必要はない。
0611デフォルトの名無しさん2009/07/15(水) 07:25:14
配列とハッシュが同じ名前になる場合よりも
@tmp_A, @tmp_B みたいな名前の使い方が多いから、
それがメリットだとしても機会は少ないな。
0612デフォルトの名無しさん2009/07/15(水) 07:43:40
@tmp は文脈により要素数だったりするので配列とは限らない
0613デフォルトの名無しさん2009/07/15(水) 08:01:49
ん?
@tmpは配列だろ?scalar(@tmp) はスカラだが。
ちなみにscalar(%tmp)は楽しいことになる。Perl大好き。
0614デフォルトの名無しさん2009/07/15(水) 08:14:22
>>608
PPPRってなんぞ
0615デフォルトの名無しさん2009/07/15(水) 08:16:53
$a # スカラ

@a # 配列
$a[index] # 配列の要素 = スカラ
@a[indices] # 配列のスライス = リスト

%a # ハッシュ
$a{key} # ハッシュの要素 = スカラ
@a{keys} # ハッシュのスライス = リスト


この美しさわかんねえかなあ…

リストをスカラ評価すると長さになってしまうのは、
たしかに気持ち悪いがそれとこれは別の話だと思う。
0616デフォルトの名無しさん2009/07/15(水) 08:22:39
>>596
もうなんとか用の言語って時代じゃないだろ。もう役目を終えたよ、Perlは。
0617デフォルトの名無しさん2009/07/15(水) 08:23:32
>>615
それは別の話ってのに異存ないが、まあ今はコンテキストの話なので、
その気持ち悪さが問題になってるんじゃね?
0618デフォルトの名無しさん2009/07/15(水) 08:31:40
@$$#tmp
0619デフォルトの名無しさん2009/07/15(水) 08:44:38
使い捨て言語で君も使い捨てに!
0620デフォルトの名無しさん2009/07/15(水) 08:50:10
>>615
>@a{keys} # ハッシュのスライス = リスト
これが有効に使えるときなんかあるの?
0621デフォルトの名無しさん2009/07/15(水) 08:53:09
>>616
DSLがどうこうという時代なんだが?
0622デフォルトの名無しさん2009/07/15(水) 08:53:15
>>607
>$や@を使うのは、ハンガリアン記法要らずで、分かりやすく便利。
使うデータが文字列と配列とハッシュだけだった時代ならそれでもいいけど
オブジェクト指向が一般的になった現在において、この仕様はクソだよ。
それがわからないPerlerが不憫でしょうがない。
0623デフォルトの名無しさん2009/07/15(水) 08:59:08
>>622
しょうがないだろ。アヒルのように最初に覚えた言語をry
0624デフォルトの名無しさん2009/07/15(水) 09:49:36
>>598
話がぜんぜん違う方向に進んだね。
もとの話は$var[]が配列の要素を返し、@var[..]は配列の範囲を返すのが、いけてないしわかりにくという話だったんだけど。
別にこんなことで@varと$varを使い分ける必要なんかなく、どっちも@var[]でできるようにすれば
誰にもわかりやすいのに、Perlはそうなってないから変だよねという話が、
いつのまになんで範囲指定の方法の話になっちゃったんだろう。

0625デフォルトの名無しさん2009/07/15(水) 10:49:19
とりあえず、
配列の要素をスカラーとして取り出す方法と、
そのスカラー1個だけを要素とする配列を作る(スライスする)方法は
別々に用意した方が言語仕様的にはいいんじゃないのか?
0626デフォルトの名無しさん2009/07/15(水) 10:51:58
Python なら、
a = range(5) # [0,1,2,3,4]
b = a[3] # 3
c = a[3:4] # [3]
0627デフォルトの名無しさん2009/07/15(水) 11:00:22
d = a[slice(3, 4)] # [3]
0628デフォルトの名無しさん2009/07/15(水) 11:29:15
>>620
ハッシュに代入するとき役に立つ。
0629デフォルトの名無しさん2009/07/15(水) 11:39:31
>>620
ハッシュから複数の値を取り出すときに使う
0630デフォルトの名無しさん2009/07/15(水) 11:41:12
# Ruby

a = (0..4).to_a # [0,1,2,3,4]
a = (0...5).to_a # [0,1,2,3,4]
p a[3] # 3
p a[3..3] # [3]
p a[3...4] # [3]
p a[3,1] # [3]
p a[-2] # 3
p a[-2..-2] # [3]
p a[-2...-1] # [3]
p a[-2,1] # [3]
0631デフォルトの名無しさん2009/07/15(水) 13:06:17
>>628
kwsk
0632デフォルトの名無しさん2009/07/15(水) 13:20:37
急に書き込みが増えたねw
0633デフォルトの名無しさん2009/07/15(水) 13:41:07
>>630
なにそれこわい
0634デフォルトの名無しさん2009/07/15(水) 14:47:45
どの言語であれ、配列をスライスする処理なんか、一年に一度も書かないが。
0635デフォルトの名無しさん2009/07/15(水) 15:17:31
>>631
@names = ("Alica", "Bob", "Chris")
@ages{@names} = (28, 31, 72);

$ages{"Alice"} == 28
0636デフォルトの名無しさん2009/07/15(水) 15:31:54
何故にアリカ?
0637デフォルトの名無しさん2009/07/15(水) 15:51:53
@names = ("Alica", "Bob", "Chris");
@ages{@names} = (28, 31, 72);
print %ages;
@ages{'Chris','Bob'} = (34, 37);
print %ages;
Bob31Chris72Alica28Bob37Chris34Alica28
0638デフォルトの名無しさん2009/07/15(水) 18:30:03
>>637
なるほど。勉強になった。

機会はなかなかなさそうだけど、
使い道はちゃんとあるんだな。
0639デフォルトの名無しさん2009/07/15(水) 20:46:22
>>622
どんなにオブジェクト指向を強くしたところで、プリミティブ型や配列型のないプログラミングなどあり得ない。
スカラ変数とリファレンスを分けるシジルがあればより便利だということに過ぎない。何もないよりずっといい。
>>610の$tmp_mapは%tmp_mapの間違いだが、これはPerlであればコンパイルエラーを起こすので、未然にバグを防げる。
0640デフォルトの名無しさん2009/07/15(水) 21:02:44
記号の付け間違いなんてバグは、その仕様がなかったらそもそも起こらないだろ
0641デフォルトの名無しさん2009/07/15(水) 21:04:26
配列にアクセスしているつもりが、その変数はハッシュだったということ。誰にでもよくあるミス。
0642デフォルトの名無しさん2009/07/15(水) 22:26:05
>637を見て、
「さすがPerl、記述性が高い」と感じるのがperler。
「滅多に書かない記述の為に文法が歪められてる」と感じるのが一般人。
0643デフォルトの名無しさん2009/07/15(水) 22:32:01
>>642
Pythonistaは、Pythonではどうするか考える。
names = "Alica Bob Chris".split()
ages = dict(zip(names, (28, 31, 72)))
print ages
ages.update(Chris=34, Bob=37)
print ages
0644デフォルトの名無しさん2009/07/15(水) 22:59:35
ハッシュのスライスって初めて聞いたがそんなのあったんだな。
ただ、スライスのイメージとちょっと違うな。ハッシュの範囲指定だと、キーがある正規表現にマッチする集合とかならわかるけど。
0645デフォルトの名無しさん2009/07/15(水) 23:40:06
>>644

%h = ('hoge'=>1, 'page'=>2, 'moga'=>3, 'guge'=>4);
@a = @h{grep {/ge/} keys(%h)};

まさにそういう事をしやすくするためにPerlは柔軟なリストなわけで。
まあ、高尚な原理や理論より便利(っぽ)さ上等
0646デフォルトの名無しさん2009/07/16(木) 00:09:14
>>645
結果もハッシュで欲しいならこうかな

my %h2;
my @keys;
@h2{@keys} = @h{@keys=grep{/ge/}keys(%h)};

まあなんだ。面白いんだが、こういったことをやりすぎると
読みにくくなるのは否めないという
0647デフォルトの名無しさん2009/07/16(木) 00:13:35
ttp://anond.hatelabo.jp/20090617130518
0648デフォルトの名無しさん2009/07/16(木) 00:27:08
10 == "0x0A"
がtrueで
"0x0A" == 10
がfalseになるスクリプト言語はありだと思う
0649デフォルトの名無しさん2009/07/16(木) 00:29:07
>>647
これが「コンテキスト」の上を行く「場当たり」って奴か
勉強になるな〜
0650デフォルトの名無しさん2009/07/16(木) 00:34:05
この8進数はねぇよ・・・

でも、PHPのこのいい加減な解釈ってずいぶんお世話になってるなぁ自分
0651デフォルトの名無しさん2009/07/16(木) 00:44:46
var_dumpで出るのは格納してる型であって、==で比較される時に自動で解釈されるんだよな
0652デフォルトの名無しさん2009/07/16(木) 00:48:25
>>648

問題は常にそう解釈されるのでは無く
PHP自身がどのようにコンパイルされたか
という環境によって動作が異なることに在る
0653デフォルトの名無しさん2009/07/16(木) 00:48:40
不安なときは===を使えというのがPHPとJSのお約束
0654デフォルトの名無しさん2009/07/16(木) 01:14:51
多言語だと軽くスルーできるMap/Vectorの話でこんなに混乱してるってのは結局便利じゃねーん
だろうなって思うw
0655デフォルトの名無しさん2009/07/16(木) 01:34:37
http://codezine.jp/article/detail/4065
0656デフォルトの名無しさん2009/07/16(木) 01:39:24
配列のスライスがあるんだから、ハッシュのスライスもあるだろうと思うのは自然なことだろ。
0657デフォルトの名無しさん2009/07/16(木) 02:15:49
>>656
似たようなことができるようになってるだけで、
根本的には概念が違う気がする。

リストの2〜3番目に、10要素を代入するとかできるからスライスってのが便利なわけで。
0658デフォルトの名無しさん2009/07/16(木) 03:34:55
>>639
>どんなにオブジェクト指向を強くしたところで、プリミティブ型や配列型のないプログラミングなどあり得ない。
>スカラ変数とリファレンスを分けるシジルがあればより便利だということに過ぎない。何もないよりずっといい。

何をいいたいのかまるでわからない。プリミティブ型や配列型を排除しろとは誰も言ってないし、うーん。
@tmpがリスト、%tmpがハッシュ、で、それ以外のデータ構造を使ったら$tmp
。
べつに、ぜんぶ$tmpで統一してくれていいんだけど。

>>>610の$tmp_mapは%tmp_mapの間違いだが、これはPerlであればコンパイルエラーを起こすので、未然にバグを防げる。
これもなにがどうエラーになるのか不明なので、解説よろしく。

つーか、もちっとわかりやすい文章書こうぜ。Perlerだから仕方ないけど。
0659デフォルトの名無しさん2009/07/16(木) 03:38:10
JSON
0660デフォルトの名無しさん2009/07/16(木) 04:49:21
>>657
部分集合の操作が近いかもね。
perlのハッシュスライスの書式は座標が直感的に使えるからか、
概念増やすのが面倒で配列スライスに似せたのかのどちらかのように思う。

perl
my %color = (R => 0, G => 0, B => 0);
@color{'R', 'G', 'B'} = (63, 127, 255);
print @color{'R', 'G', 'B'};

ruby
color = {'R' => 0, 'G' => 0, 'B' => 0}
color.replace({'R'=>63, 'G'=>127, 'B'=>255})
p color.values_at('R', 'G', 'B')
0661デフォルトの名無しさん2009/07/16(木) 11:25:27
Perlerはバカにされやすいからな。がんばって難しく言おうとしちゃうんだよ
0662デフォルトの名無しさん2009/07/16(木) 11:51:27
$ perl
my %color = (R => 0, G => 0, B => 0);
@color{'R', 'G', 'B'} = (63, 127, 255);
print @color{'R', 'G', 'B'};
63127255

$ ruby
bash: ruby: command not found

$ python
>>> color = dict(R=0, G=0, B=0)
>>> [color.__setitem__(k, v) for k, v in [('R', 63), ('G', 127), ('B', 255)]]
[None, None, None]
>>> print [color[k] for k in color]
[255, 63, 127]
0663デフォルトの名無しさん2009/07/16(木) 11:58:29
>>662
color.update( (k,v in [('R', 63), ('G', 127), ('B', 255)]) )
の方がPythonicなんじゃない?
0664デフォルトの名無しさん2009/07/16(木) 13:13:22
NameError: name 'k' is not defined
0665デフォルトの名無しさん2009/07/16(木) 13:18:12
ここが言語を比較できる僕かっけースレですか
0666デフォルトの名無しさん2009/07/16(木) 13:18:40
color.update([('R', 789), ('G', 456), ('B', 123)])
print map(lambda k: color[k], ('R', 'G', 'B'))
0667デフォルトの名無しさん2009/07/16(木) 13:19:42
yes you does
0668デフォルトの名無しさん2009/07/16(木) 13:20:58
doesだってwww
0669デフォルトの名無しさん2009/07/16(木) 13:22:30
http://thestar.com.my/english/story.asp?file=/2009/3/13/lifefocus/3446185&sec=lifefocus
0670デフォルトの名無しさん2009/07/16(木) 16:13:18
334 :可愛い奥様:2007/06/26(火) 09:46:19 ID:raxdPvfD0
OLだった頃、会社で働いていた日本に超詳しいベルギー人が言ったことに納得してた。
日本文化は身内受けの凝り性文化だそう。
外国文化に負けまいとしているのではなく、
世に意図的にインパクトを与えようとしているのでもなく、
今ここにいる同じ価値観を共有する仲間からの喝采を浴びたいと考える。
その結果、同じものを志す者同士の「これすごいだろ、おもしろいだろ」合戦が始まり、
そこで生み出される物が自然と研ぎ澄まされていく。
でもその競争は、敵対的なものではなく、お互いを尊敬しあいながら、静かに深く進行していく。

そしてある日、偶然目撃した異文化出身の人間(外国人)から、
それがすごいものであることを知らされる。
ほとんどの日本人はその日が来るまで、自分たちが作り上げた物がすごいものとは知らない。
もろもろの伝統文化、芸能、電化製品、アニメ、他、みんな同じパターンで世界に広まっていった。
だから、日本がここまで発展してきたのも必然的なものだし、
この精神が衰えない限り、これからも日本は誰に頼まれることもなく、
知らないうちに勝手に世界にインパクトを与え続けていくだろうと。
0671デフォルトの名無しさん2009/07/16(木) 16:17:34
英語について 「Do」と「Does」は何を区別して、使い分けるのでしょうか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1320176013

「Does you play golf?」
これは間違いだとおもいます。

「Does your father play golf?」

ならあってます。

でも口語や歌詞などで
She don't know.
なんてのも有りなんで、流行ってるのかも知れませんね。
0672デフォルトの名無しさん2009/07/16(木) 16:20:19
Does youが有りだからyou doesも有りだと思ってる小学生www
0673デフォルトの名無しさん2009/07/16(木) 16:20:50
how foolish you are
0674デフォルトの名無しさん2009/07/16(木) 16:24:34
hows じゃね
0675デフォルトの名無しさん2009/07/16(木) 16:33:54
wish you were dead
0676デフォルトの名無しさん2009/07/16(木) 19:58:26
use English;
0677デフォルトの名無しさん2009/07/16(木) 20:54:33
By the way, please listen to me. This doesn’t have any relevance about that.
Few days before, I went to the Yoshinoya in my town. Yoshinoya.
But I can't step in; because there are too many people. Then looking around,
I found advertisement Curtain. It said "150 yen off"
Don’t come to the Yoshinoya which you don't generally come to, just because of only 150yen off.
You must be foolish or stupid! Oh! There is parent-and-child, and the Father of which is saying "I'm going to order Tokumori
Are you all eat in Yoshinoya? Congratulations! I can’t stand it ever more! I'll give you 150yen and please go away!
Yoshinoya should be more bloody & violent.
You cannot predict when the tow man face each other in the character table of U begins to fight. Stab or be stabbed.
This is the Yoshinoya. Women and Child, Go away! Don't exist in Yoshinoya.
Then, I could sit on the seat, the man in next seat ordered "Ohmori Tuyudaku"
That was sufficient reason to enrage me absurdly violently. Hey! You said Tuyudaku?
It’s perfectly out of date. It’s old fashioned Do you really want to eat Tuyudaku?
How foolish you are. I want to question you whether you really want to eat it or not.
I want to question you for one hour! You just want to say Tuyudaku.
In the side of expert of Yoshinoya, The newest fashion is "Negidaku" Year this is.
It has more negi but less meat. And put egg on this. This has no enemy.
Yes this is. But if your order this, your face must be memorized. It may be the sword of many edges.
I don't recommend to bigger. Gyuhsaketeisyoku may be fit on you.
0678デフォルトの名無しさん2009/07/16(木) 20:56:39
Why don't you talk about here?

>$ ruby
>bash: ruby: command not found
0679デフォルトの名無しさん2009/07/16(木) 23:40:57
        |リ u' }  ,ノ _,!V,ハ |
       /´fト、_{ル{,ィ'eラ , タ人        Ты думаешь, из меня,
     /'   ヾ|宀| {´,)⌒`/ |<ヽトiゝ      я не могу сказать.
    ,゙  / )ヽ iLレ  u' | | ヾlトハ〉
     |/_/  ハ !ニ⊇ '/:}  V:::::ヽ      Я не знаю,
    // 二二二7'T'' /u' __ /:::::::/`ヽ    что случилось.
0680デフォルトの名無しさん2009/07/16(木) 23:42:17
な、何を言ってるのかわからねー(以下略
0681デフォルトの名無しさん2009/07/16(木) 23:57:57
>676
それはツッコミかw
0682デフォルトの名無しさん2009/07/17(金) 18:56:02
for my $x (@{$self->{'ls_ref'}}) {
0683デフォルトの名無しさん2009/07/17(金) 19:32:59
for x in self.__ls_ref:

@ls_ref.each{|x|
0684デフォルトの名無しさん2009/07/17(金) 19:45:18
334 :可愛い奥様:2007/06/26(火) 09:46:19 ID:raxdPvfD0
OLだった頃、会社で働いていた日本に超詳しいベルギー人が言ったことに納得してた。
日本文化は身内受けの凝り性文化だそう。
外国文化に負けまいとしているのではなく、
世に意図的にインパクトを与えようとしているのでもなく、
今ここにいる同じ価値観を共有する仲間からの喝采を浴びたいと考える。
その結果、同じものを志す者同士の「これすごいだろ、おもしろいだろ」合戦が始まり、
そこで生み出される物が自然と研ぎ澄まされていく。
でもその競争は、敵対的なものではなく、お互いを尊敬しあいながら、静かに深く進行していく。

そしてある日、偶然目撃した異文化出身の人間(外国人)から、
それがすごいものであることを知らされる。
ほとんどの日本人はその日が来るまで、自分たちが作り上げた物がすごいものとは知らない。
もろもろの伝統文化、芸能、電化製品、アニメ、他、みんな同じパターンで世界に広まっていった。
だから、日本がここまで発展してきたのも必然的なものだし、
この精神が衰えない限り、これからも日本は誰に頼まれることもなく、
知らないうちに勝手に世界にインパクトを与え続けていくだろうと。
0685デフォルトの名無しさん2009/07/17(金) 23:26:08
>>684
どう考えても褒めすぎ
今の日本は屑しかいない
0686デフォルトの名無しさん2009/07/18(土) 02:50:20
>>658
> >>639
> >どんなにオブジェクト指向を強くしたところで、プリミティブ型や配列型のないプログラミングなどあり得ない。
> >スカラ変数とリファレンスを分けるシジルがあればより便利だということに過ぎない。何もないよりずっといい。
>
> 何をいいたいのかまるでわからない。プリミティブ型や配列型を排除しろとは誰も言ってないし、うーん。
> @tmpがリスト、%tmpがハッシュ、で、それ以外のデータ構造を使ったら$tmp
> 。
> べつに、ぜんぶ$tmpで統一してくれていいんだけど。

何を言ってるわけ?
$tmpに統一って、$tmpしかないことは機能性の後退だろ。
Perlがシジルを使ってデータ型を表すこと、それはハンガリアン記法という広く普及してる変数命名法を言語レベルで保証しているということ。

> >>>610の$tmp_mapは%tmp_mapの間違いだが、これはPerlであればコンパイルエラーを起こすので、未然にバグを防げる。
> これもなにがどうエラーになるのか不明なので、解説よろしく。

お前、Perl知らないだろ?

> つーか、もちっとわかりやすい文章書こうぜ。Perlerだから仕方ないけど。
>

お前がアホだからというか、Perlを知らないからだろ?
0687デフォルトの名無しさん2009/07/18(土) 02:55:47
だいたい$tmpに統一なんて言い出すところからして、PHPだろ?PHPは、論外だから。
0688デフォルトの名無しさん2009/07/18(土) 03:10:11
Ruby脳的には、せっかく動的言語なんだから
型の決定は実行時に遅延させたいなあ
・・・・というわけなのかは知らんが、$やら@はスコープの表記に使っちゃった
0689デフォルトの名無しさん2009/07/18(土) 03:47:28
Ruby GJ!! www
0690デフォルトの名無しさん2009/07/18(土) 09:11:43
Rubyは何でカッコの省略を認めたのか。あれは最高に見づらい。変数だかメソッドだか分からない。
0691デフォルトの名無しさん2009/07/18(土) 09:29:21
分からなくていいじゃん

問題なのは関数渡しがまんどくさい
0692デフォルトの名無しさん2009/07/18(土) 09:45:48
いいわけないだろ。そのせいで、いちいちソースを追う羽目になるんだから。
0693デフォルトの名無しさん2009/07/18(土) 10:25:16
変数もメソッドも同じオブジェクトっていう発想は画期的なものなんだが。
0694デフォルトの名無しさん2009/07/18(土) 10:39:05
$xxx = "Subject: =?SHIFT_JIS?B?W5FLXYNUg0ODZ5NvmF6CzY2hgqqStIFggqiTvoH0?=";
$xxx = mb_decode_mimeheader($subj);
$xxx = mb_convert_encoding($subj,"SJIS");
echo $xxx;

  ↓

Subject: [?]?????????????

になっちゃうんです。
どうしたらうまく変換できますか?
0695デフォルトの名無しさん2009/07/18(土) 10:39:10
rubyにおいてメソッドはオブジェクトじゃないお
0696デフォルトの名無しさん2009/07/18(土) 11:34:06
関数でもメソッドでもいいが、少なくとも引数がある場合はカッコあった方が良くね?
引数ないときに()を省略できるかどうかはまた別だけど、俺はあった方がいい。
0697デフォルトの名無しさん2009/07/18(土) 12:23:18
引数がある場合でも括弧付けない言語なんざいくらでもあるけどな

つかRubyの場合、フィールド参照もメソッド呼び出しだから
必ず括弧付けるとなると、なんだか読みにくくなりそう
0698デフォルトの名無しさん2009/07/18(土) 12:27:01
その場合、複数行になる場合はどう書くの?
0699デフォルトの名無しさん2009/07/18(土) 12:37:46
>>695
滅多にお目にかからないが、Methodクラスってのはある
ファーストクラスかと言われると怪しい
0700デフォルトの名無しさん2009/07/18(土) 12:44:15
Methodクラスのインスタンスはオブジェクトだから、ファーストクラスだお
でもそれ自体はメソッドじゃないお
0701デフォルトの名無しさん2009/07/18(土) 12:50:26
Rubyでメソッド呼び出しの括弧省くと、なんだかんだでパースエラーに
なる事が多くて、結局格好付ける事になりがち。

で、括弧が多くなってくると、「不統一なのもかっこわるいから、
全部付けとくか」ってなる。
0702デフォルトの名無しさん2009/07/18(土) 12:54:42
Lispも有る意味、引数に括弧はないな
0703デフォルトの名無しさん2009/07/18(土) 12:56:39
>698
改行が文末として扱われる言語ならば、行を継続する場合に明示する。
例えばVBは行末に _ を書くし、Rubyでも行末にバックスラッシュを書くと文末として扱われない。

Pascalなんかは引数が無い場合には括弧を書かないが
Cなどと同じくセミコロンを置くことで文末を示す言語なので、複数行でも何ら表記は変わらない。
0704デフォルトの名無しさん2009/07/18(土) 13:02:54
>>703
そういうことか。

しかし、数学では普通関数をf(x)ってカタチに書くから、
カッコがないってのがなんか気持ち悪い。
0705デフォルトの名無しさん2009/07/18(土) 13:08:25
>> 690
レシーバselfかつ引数なしのときは俺は()つけて書く。
func()みたいに。

もし()省略できなかったら、
require('library')
include('module')
みたいになって逆にキモくなるんじゃない?

まあ括弧省略可でうれしいのは,print,putsだろうけどね。
0706デフォルトの名無しさん2009/07/18(土) 13:17:33
まぁ、Rubyでも戻り値を式として使う場合には括弧付けたほうが無難だけどね。

Perlみたく @ary = sort keys %h みたいな書き方は認められてないよ。
Rubyにはsort関数もkeys関数も無いが、もしあったなら
ary = sort(keys(h)) と書かないとエラーになるはず。

ただブロックなどで「最後の式の結果を返す」となってる場面でも省略できちゃうから
そこは個人的にはちょっと何かないかなぁと思うけど。
0707デフォルトの名無しさん2009/07/18(土) 13:37:05
>>706
foo = p p 1 とか普通にできるけど?

ちょっと前までは、括弧が将来必要になるかも、ってwarningが出てたけど、

> 「文法を簡単にしようと思ってたんだけど、RubyConfで『括弧の省略を駆使していかに
> 英語っぽいコードを書くか』という内容でまるまる1セッション使った発表があって、諦めた」

という奴だね。
0708デフォルトの名無しさん2009/07/18(土) 13:38:52
まとめると、
文系:省略派
理系:非省略派
ってことだな。
0709デフォルトの名無しさん2009/07/18(土) 13:39:58
>707
ま ぢ か
じゃあ俺の使ってるバージョン古いんだな…
0710デフォルトの名無しさん2009/07/18(土) 13:41:56
>>708
ガチガチの文系で理系にコンプレックスのある漏れが非省略派なのでうそ臭いです
0711デフォルトの名無しさん2009/07/18(土) 13:43:50
括弧の省略は

・省略した方が明らかに読みやすいと思われるケースがある
puts("hello ruby")
puts "hello ruby"

・言語内DSLにとっては、省略が効いたほうが有利なことがある
例えばrake(Ruby版make)だと
task :default => [;test]
task :test do
 ruby "test/unittest.rb"
end

などなどの事情もあるわけだから、
たぶんコーディングスタイルのレベルで対応するべき問題ではないか
0712デフォルトの名無しさん2009/07/18(土) 13:44:50
rubyの場合省略不可にするとプロパティ構文とか導入しないとめんどくさそうではある
0713デフォルトの名無しさん2009/07/18(土) 14:12:53
requireだろうがattr_accessorだろうがカッコ付きでいいじゃん、と
割り切ればいいのでは?
0714デフォルトの名無しさん2009/07/18(土) 14:16:26
括弧の省略が嫌いならPythonに改宗すると幸せになれるよ
0715デフォルトの名無しさん2009/07/18(土) 14:17:07
今度は、ブロックにカッコつけるとかなんとかで(r
0716デフォルトの名無しさん2009/07/18(土) 14:24:06
>>711
puts( "hello ruby" )
0717デフォルトの名無しさん2009/07/18(土) 14:26:53
括弧論争は、シェルスクリプトの延長でRuby書いてる人と、
CやJavaの延長でRuby書いてる人との対立な気がする。
0718デフォルトの名無しさん2009/07/18(土) 14:31:32
文字列の出力くらい
"hello ruby"
だけでいいじゃない
0719デフォルトの名無しさん2009/07/18(土) 14:38:39
Pythonの場合「関数呼び出しの括弧を省略できない」というのは
結果的にはそう見えるんだが、その中身を考えるとその表現は違う気がする

まず関数にバインドされた変数/フィールドがあって
括弧を付けるのは、その関数に対して「呼び出し」を試みる操作だからね

括弧をつけると、変数/フィールドにバインドされてるのが
・関数なら、関数の処理を行い結果を返す
・クラスなら、インスタンスを生成しそれを返す
・他にも、呼び出しが可能なオブジェクトにバインドされていればそれぞれの挙動を示す
・呼び出しに対応していないオブジェクトの場合、例外を発生させる
0720デフォルトの名無しさん2009/07/18(土) 14:51:19
()ありの場合は
関数的に使い、かつ引数なし
メソッドチェーン
引数が複数

それ以外のときは()省略。俺はこれがシンプルなルールだし、
可読性も高いと思ってる。
ちなみに俺はC→C++→Python→Rubyの順で習得したけど、結構省略派。
性格的にも学歴的にも理系。

Pythonはint()とかlen()が関数なのにダックタイピングしようとしてる所が好きじゃない。
self、インデントは全然許せるが、インスタンス変数をprivateにすると、self.__var
ってなったりするのが、激しく嫌いかな。あと動的言語なのにglobal宣言とかね。

でも、()を省略したくないような人なら()以外の面でも、
RubyよりPythonの方が好みだろうね。
0721デフォルトの名無しさん2009/07/18(土) 14:53:29
PythonとJSで呼び出し時に括弧が省略できないのは
メソッドが関数の代入されたプロパティとして実装されているから,って認識でOK?
0722デフォルトの名無しさん2009/07/18(土) 14:54:20
括弧省略ルールは、Scalaのが明解だな。
後発だけに。
0723デフォルトの名無しさん2009/07/18(土) 15:04:00
()を省略すると、
f = hogehoge.func
って書いたときに、fが何を表すのか不明になる。
0724デフォルトの名無しさん2009/07/18(土) 15:17:14
そもそも、Pythonは関数・メソッドが完全にファーストクラスだから、
名前が変数名なのか関数名なのかで呼び出す・呼び出さないを
分けられない。
def foo(): pass
bar = foo
del foo
bar()
0725デフォルトの名無しさん2009/07/18(土) 15:17:53
()なしは変数なのか関数なのか、一見でわからなくなるからやめて欲しいわ
0726デフォルトの名無しさん2009/07/18(土) 16:33:49
def __call__():
でなんかなるんだっけ
0727デフォルトの名無しさん2009/07/18(土) 17:32:22
様は読めればいいわけですね。
省略する人は、Lisp嫌いですか?
0728デフォルトの名無しさん2009/07/18(土) 17:41:02
育ちによって、
hoge = func1
を「変数hogeにメソッドfunc1を呼び出した返値を代入する」と読んだり、
「変数hogeに関数func1を代入する」と読んだりするわけだ。
0729デフォルトの名無しさん2009/07/18(土) 20:03:43
「hogeはfunc1と同等」とか「hogeはfunc1と同一」もあるかも知れないぞ
0730デフォルトの名無しさん2009/07/18(土) 20:23:53
Pascalは代入が := で = が同一判定だね
C言語とかと一緒にやろうとすると見事にハマるw
0731デフォルトの名無しさん2009/07/18(土) 20:32:11
>>730
どちらかといえばそっちの方が好みだな。
一般的に = は等号という意味が定着してるんだから
プログラミングにおける代入という新しい概念には新しい記法を与えるのが自然。

正直、代入を'='にしたのはCの負の遺産だと思う。
0732デフォルトの名無しさん2009/07/18(土) 20:35:20
つーてもBASICとかでも = を代入に使うけどな
BASICだと同一判定も = だけどさ
0733デフォルトの名無しさん2009/07/18(土) 21:11:28
FORTRAN 以来の負の遺産だな。
0734デフォルトの名無しさん2009/07/18(土) 23:04:17
>>731
その考えはある意味正しいと思う一方で、
代入操作は比較的頻繁に行われることを考えると
短いトークンを与えようとするのは実用上正しいとも思う
0735デフォルトの名無しさん2009/07/18(土) 23:52:28
確か、C言語で代入に短いトークンを割り当てたのは、
比較より代入のほうが多い、という判断があったからなんだけど、
サンプリングが偏ってた、って何かで読んだような。
0736デフォルトの名無しさん2009/07/18(土) 23:56:54
Perlが出るまでは、~ とかその他記号も空いてた様な気もする
イメージ的に=の要請が強かったのかなあと思う
その頃から別に、代入に=で違和感なかったんじゃね?
0737デフォルトの名無しさん2009/07/19(日) 00:34:02
!=ってのもあるんだから、比較を==にして文字数を合わせた方が収まりが良い
0738デフォルトの名無しさん2009/07/19(日) 00:36:33
>>736
~はbitwise not
0739デフォルトの名無しさん2009/07/19(日) 00:49:53
代入はSmalltalkみたいに、専用の文字(「←」とか)を用意するのがよい。
今なら、Unicodeに入れてもらえばなんとかなるだろ。
0740デフォルトの名無しさん2009/07/19(日) 00:59:00
いらんですよ、そんなもん
0741デフォルトの名無しさん2009/07/19(日) 01:05:03
APLでもやってろよww
0742デフォルトの名無しさん2009/07/19(日) 01:34:37
いや、内部コードUTF-8全盛のこの時代、決して非現実的ではないので、思考停止はいくない

単純に、欧米圏の人間にフォントを入れてもらえばいいだけさね
頑張れMicrosoftおよびその他ディストリビュータ
0743デフォルトの名無しさん2009/07/19(日) 01:36:38
入力が面倒
0744デフォルトの名無しさん2009/07/19(日) 01:40:43
そろそろ欧米圏の人間にも、IMEのなんたるかを知ってもらういい機会になるかもよ
悪平等の見本みたいな意見だがなw
だが、いい加減英語アルファベット+αがグローバルスタンダードと思っていられても困る
0745デフォルトの名無しさん2009/07/19(日) 01:43:25
-> pointer
<- assign
0746デフォルトの名無しさん2009/07/19(日) 01:56:01
すまんが、釣りは昼間にやってくれんかねw
0747デフォルトの名無しさん2009/07/19(日) 02:02:33
夜釣りには夜釣りの良さがあるんだぞ
0748デフォルトの名無しさん2009/07/19(日) 02:09:22
そこでfortressですよ。
0749デフォルトの名無しさん2009/07/19(日) 02:12:39
とりあえず代入は = でいいと思う。
= のどの言語でも、そこには不満ないw
0750デフォルトの名無しさん2009/07/19(日) 02:31:45
ここで比較の=と代入の=と代入の:=がある恐ろしい言語が
0751デフォルトの名無しさん2009/07/19(日) 02:35:23
正格評価と遅延評価で代入演算子が異なる言語もあるでよ
0752デフォルトの名無しさん2009/07/19(日) 03:26:56
= の一般での意味をかえてもらえば解決
0753デフォルトの名無しさん2009/07/19(日) 04:18:37
define変数定義 :=
assign =!
equals =
not equals !=
0754デフォルトの名無しさん2009/07/20(月) 02:45:04
空文字列やゼロが偽って話は聞いてたけど
"0"(ゼロ)って文字列が偽だなんて聞いてねえよ…
0755デフォルトの名無しさん2009/07/20(月) 06:46:43
>>754
PerlとPHPかな。他にもあるんだろうか。
その二つしか使わないおれはなんかそれに慣れちゃったな。
0756デフォルトの名無しさん2009/07/20(月) 11:03:51
===
0757デフォルトの名無しさん2009/07/20(月) 14:33:14
>>756
null === false #=> false
なのでそいつもちょっと。

帯に短しタスキに長しと。(ちょっとちがうか)
0758デフォルトの名無しさん2009/07/20(月) 17:29:17
isset(), empty(), is_numeric()
0759デフォルトの名無しさん2009/07/20(月) 18:16:32
if(!isset($var) || empty($var) || !is_numeric($var)){}

こうでつか?
0760デフォルトの名無しさん2009/07/20(月) 19:45:02
PHP、DSLとしては別に悪い言語じゃないと思うが
ネームスペースとかタイプヒンティングとか大規模開発向きの機能が中途半端なのがなんとも。
タイプヒンティングなんかarrayとオブジェクトだけとかいう謎の仕様だし。
ある程度の規模を越えたところで辛くなってくるんだよなあ。
比較演算が曖昧すぎてつまらんバグ起きやすいし。
0761デフォルトの名無しさん2009/07/20(月) 19:57:14
>>690
関数でもどっちみちソース追うよ。
この手のは最初に入った言語の影響や慣れってのが大きいよ。
0762デフォルトの名無しさん2009/07/20(月) 20:06:37
>>754
真面目にそれ何ていう言語?
もし俺も使ってたら気をつけないと…
0763デフォルトの名無しさん2009/07/20(月) 20:54:16
perlだろ
0764デフォルトの名無しさん2009/07/20(月) 20:55:44
PerlかPHPっていってるそばから…
なんか無性にイラついてきた。
>>762めー!俺は絶対にお前を許さんからな!
07657622009/07/20(月) 22:19:13
>>764
      iヽ       /ヽ
       | ゙ヽ、    /  ゙i
        |   ゙''─‐'''"    l
     ,/               ゙ヽ
     ,i゙    /         \ ゙
     i!     ●      ● ,l そんなこと言われても
     ゙i,,   *   (__人__)  ,/     わて猫やし…
      ヾ、,,          ,/
      /゙ "         ヽ
    /             i!
  (⌒i    丶  i   !   i!.,
    γ"⌒゙ヽ  l   l  γ'.ヽ
     i     i,__,,ノ   i,__,,ノ_,,丿
     ヽ,_,,ノ"~´ ̄  ̄      
0766デフォルトの名無しさん2009/07/20(月) 22:19:34
鰻まだ売ってるところを教えてくだされ
0767デフォルトの名無しさん2009/07/20(月) 22:20:41
土用はまだじゃなかったっけ
0768デフォルトの名無しさん2009/07/20(月) 22:24:29
猫はどんなプログラム言語使ってんだよ
0769デフォルトの名無しさん2009/07/20(月) 22:24:49
今年は二回有る
0770デフォルトの名無しさん2009/07/20(月) 22:27:11
>>769
おお。知らんかった。thx
ttp://ja.wikipedia.org/wiki/%E5%9C%9F%E7%94%A8%E3%81%AE%E4%B8%91%E3%81%AE%E6%97%A5#2004.E5.B9.B4.EF.BD.9E2011.E5.B9.B4.E3.81.AE.E5.A4.8F.E3.81.AE.E5.9C.9F.E7.94.A8.E3.81.AE.E4.B8.91.E3.81.AE.E6.97.A5
0771デフォルトの名無しさん2009/07/21(火) 01:10:07
自分はPerlとCのさわりがわかるくらいだけど、Perlの事が書いてる本をよんだりしてると
今まではPerlが最良の選択肢出会ったけど、今後はRubyにシフトするであろう
みたいなことが書いてあるのを何度かみた。
Rubyってそんなにいいの? なにがいいの?
自分はWeb屋だから、Rubyがまだ選択肢に入らないんだけど、選択肢に入るようになるのであれば勉強しておきたい。

Web屋に対してのRubyの利点を教えてくれ
0772デフォルトの名無しさん2009/07/21(火) 02:29:33
Python>Ruby>PHP>Perl
0773デフォルトの名無しさん2009/07/21(火) 06:09:53
WebとしてのRubyも廃れつつあるんじゃないか?と思う。
ちょっと前になにがなんでもRoRってノリな時代があったのは確かだが。

日本だとやっとPythonが地味に伸びてきているし、世界的にあいかわらずPHPは多いし。
0774デフォルトの名無しさん2009/07/21(火) 06:23:15
>>772
その順位は結構妥当だなと思ってしまった。
PHPを叩くPerlerが多いけど、PerlよりPHPのほうがまだましというのが正直な感想。
0775デフォルトの名無しさん2009/07/21(火) 12:30:46
>>774
なんでやねん。

{Perl,Python}>Ruby>>PHP
だろ。jk
0776デフォルトの名無しさん2009/07/21(火) 12:34:43
Perler以外の全方位から叩かれるPerl、という感じだな。
0777デフォルトの名無しさん2009/07/21(火) 12:36:59
しかしPythonが不自然なまでに叩かれないのを、Python自体の功績のみと思うべからず
知らなきゃ叩けない
0778デフォルトの名無しさん2009/07/21(火) 12:42:41
Pythonは微妙だなあ。
ウェブは PHP/Java, ちょっとしたツールは Java, 性能要求が厳しれば C/C++ という鉄板の中で立ち位置がよくわからない。
0779デフォルトの名無しさん2009/07/21(火) 12:44:08
Googleが使ってる→普及させる気満々
0780デフォルトの名無しさん2009/07/21(火) 13:14:07
>>771
Web屋限定じゃないけど、単に時代遅れになってるってことじゃないの?
テキストの読み書き検索なんかに特化していたため、
単純な一個の掲示板を作るのには便利だったけど、
スカラー、配列以上のデータ構造になるとリファレンスを勉強しないと使えない。
オブジェクト指向になると「blessって何?」みたいな無理矢理な増築でわけわかめになってる。
0781デフォルトの名無しさん2009/07/21(火) 13:19:12
Pythonは良くも悪くも中庸だと思うよ
プログラミング言語、と呼ばれるほどガチガチでもなく
スクリプト言語、という言葉から連想するほどテキトーでもない

>775
PHPは言語として問題があってもWeb特化っていうアドバンテージがあるし
PythonはPerlとは全く別方向のスクリプトとして需要はあるだろう
Rubyが名前通りPerlの進化系として使えるから、Perlの需要って過去資源だけだと思うんだが
0782デフォルトの名無しさん2009/07/21(火) 15:46:31
Rubyの場合、松本からしてPHPを叩きまくってるだろ。
0783デフォルトの名無しさん2009/07/21(火) 15:48:32
Rubyは明らかにRailsのブームが終了したな。そもそもウェブの開発に時間がかかる部分は、言語機能でどうにかなるようなもんじゃない。
0784デフォルトの名無しさん2009/07/21(火) 15:50:43
まあ、自由に言語を選択出来る場合なら、PHPを選ぶはずはない罠。PHPは話にならない。
0785デフォルトの名無しさん2009/07/21(火) 15:53:26
Ruby鎮静化の責任の一旦は日本のユーザーにもあると思うけどな。
自国製の言語をまともに評価できず、海外に評価されて逆輸入の形でしか受けいれなかった。
結局、そうこうしてるうちにユーザー文化が十分に育まれず
十分勝機のあったPythonの侵食を許してしまった。
0786デフォルトの名無しさん2009/07/21(火) 16:10:56
早く……しないと間に合わない系の話に釣られない民度の高さを評価すべき
0787デフォルトの名無しさん2009/07/21(火) 17:39:37
ウェブは Python, ちょっとしたツールは Python, 性能要求が厳しれば Python という立ち位置
0788デフォルトの名無しさん2009/07/21(火) 18:05:10
Web - PHP
適当 - Perl
速度 - C
綺麗ならよし - Python
好き勝手やれ - Ruby
お前の世界だ - Lisp
分散処理なら - Earlang
とりあえず新しい - D
Wolfram - Mathematica
俺は嫌い - Java
Javaとくっつきすぎな - Scala
なんか面白そうな - OpenCL
なんじゃそりゃ - white space
0789デフォルトの名無しさん2009/07/21(火) 18:39:35
>>781
>Rubyが名前通りPerlの進化系として使える
使えない。

がんばってなんとかそのように使う人も
いるだろうが、そんな人ばかりではない。
0790デフォルトの名無しさん2009/07/21(火) 18:41:52
>>787
s/Python/Perl/g

RubyとPHPはちょっとキツいな。w
0791デフォルトの名無しさん2009/07/21(火) 18:45:26
Perlが普及してしまったのは歴史の誤ちだよなあ。
unixのシェルスクリプト強化版みたいなポジならよかったのに。
ウェブの普及がもう少し遅くてCGIの言語選択肢が広ければ、
いや他の言語がもう少し早く登場してくれていれば…と悔やまれてならない。
0792デフォルトの名無しさん2009/07/21(火) 19:25:06
>ウェブの普及がもう少し遅くてCGIの言語選択肢が広ければ
>いや他の言語がもう少し早く登場してくれていれば

どっちも起こらなかったと思う
Perlが糞だったからこその展開
0793デフォルトの名無しさん2009/07/21(火) 19:27:29
Webの発達にperlの発達がついていけなかった。
perlの発達を待つよりも、pythonやrubyに乗り換える方が早くて楽だった。
0794デフォルトの名無しさん2009/07/21(火) 19:32:14
Pythonってそんなにいいかなあ?俺はRubyのが好み。
Google言語ということもあってそこそこ勉強したが、
オブジェクト指向やり始めると途端にに気持ち悪くなるから好きになれん。
ってか、一度Rubyistになった人なら、そうそうPythonに寝返ることはないと思った。

PHPなら普通に使うけどね。
0795デフォルトの名無しさん2009/07/21(火) 19:33:17
>>786
日本人は釣られる時は世界屈指に釣られまくるよ。
世界よりも国益よりも善悪よりも、周囲の顔色が一番大事な民族性だから、
一旦周囲が特定の空気に包まれたら、その集団ヒステリーたるや物凄い。
一方、今はまだ周囲に無い世界の潮流とかの話になると、お互いに対する様子見で牽制しあって
なかなか動かない。
これを「釣られない」「民度の高さ」と表現すれば聞こえはいいけど、現代ではこの民族性は
国際競争における宿命的な負けフラグにもなってるな。
0796デフォルトの名無しさん2009/07/21(火) 19:45:23
Pythonに寝返ったRubyistですが何か質問ありますか?
0797デフォルトの名無しさん2009/07/21(火) 19:47:30
>>796
何千行、どんなコード書いた?
07987942009/07/21(火) 19:56:15
まじかーいw
まあ実は俺はPy=>Rubyなんだが。

Pythonのどういうところが好きで、Rubyのどういうところが嫌いか聞きたい。
0799デフォルトの名無しさん2009/07/21(火) 20:32:12
ちょwRubyの本買ってきた俺ボコボコの予感www
0800デフォルトの名無しさん2009/07/21(火) 21:10:11
書き始めはRubyが楽なんだけど
ある程度の長さになるとPythonで書こうかなって思うなぁ

Perlは使い道が思いつかない
0801デフォルトの名無しさん2009/07/21(火) 21:37:24
Pythonはモジュールが書きやすいと思う。
でも、len()とかって未だ慣れないなぁ。
0802デフォルトの名無しさん2009/07/21(火) 21:46:54
俺も変数名を打った後に「ああlen()か…」って思いながら←キーを数回叩く
Python的発想からすると戻り値が数値であることをlen()が保証してくれるってのは
素直に好きなんだけど、書く時には相変わらず慣れない
0803デフォルトの名無しさん2009/07/21(火) 21:50:26
つttp://d.hatena.ne.jp/methane/20090702/1246556675
0804デフォルトの名無しさん2009/07/21(火) 22:19:03
>>> s = 'python'
>>> len(s)
6
>>> s.__len__()
6
>>> 'python'.__len__()
6
0805デフォルトの名無しさん2009/07/21(火) 22:21:58
つーか、Blenderとか3DソフトはやけにPython。
0806デフォルトの名無しさん2009/07/21(火) 23:22:48
速度が求められてるからじゃないの
0807デフォルトの名無しさん2009/07/21(火) 23:30:51
速度を重視するならLLは有り得ないと思う
単に拡張を取り入れる時点でpython以外に
十分に成熟している
扱いやすい
埋め込みが楽な言語
が無かっただけではないかなとか適当な事を言ってみる
0808デフォルトの名無しさん2009/07/22(水) 00:27:28
Pythonは昔のTclのように拡張言語としても使われ出してるね。

それから、Webとの親和性が高いアプリの拡張には、JavaScriptなどのECMAScript系が多い印象がある。
EmacsがLispでどんどん拡張できたように、MozillaもJavaScriptで拡張できたりしてるし。

あと、RubyもJRubyとかIronRubyとかあるから、
実は同じようなことが簡単にできるんじゃないかと思う。
0809デフォルトの名無しさん2009/07/22(水) 01:29:20
安定しているからだよ。
言語仕様も、埋め込みや拡張に使うCのAPIも、Pythonは
Rubyよりもバージョン間の互換性に気を遣っているし、
バージョン間で動作が異なる場合もできるだけ以降を支援する。

書くときの気持ちよさはRubyが上でも、書きやすさは大して差が無く、
読みやすさ・メンテのしやすさ・バージョンアップへの対応しやすさは
圧倒的にPythonが上だもん。
書くときの気持ちよさも、PythonがあえてRubyのような書き方を採用しない
合理主義を理解するとRubyがアホらしくなるし。
0810デフォルトの名無しさん2009/07/22(水) 01:55:30
>>809
なんか、今までの中で一番納得
0811デフォルトの名無しさん2009/07/22(水) 02:19:53
ウェブの発達って、何も変わってないジャン。HTTPもHTMLも10年前も今も変わってないんだから。
Ruby(=Rails)が一時期流行ったのは、Web2.0とかのしょうもないドットコムバブルの再来願望に乗っかっただけだろ。
0812デフォルトの名無しさん2009/07/22(水) 02:23:30
なんもわかってないな
0813デフォルトの名無しさん2009/07/22(水) 02:23:35
HTML ver5も出るし、何も変わってないわけじゃーないけどね
Ajaxもあるし、
0814デフォルトの名無しさん2009/07/22(水) 02:42:14
HTML5だろうがXHTMLだろうが、サーバ側の言語から見れば何の違いもないから。Ajaxは最後のアウトプットがHTMLからJSONだとかXMLだとかに変わっただけ。
0815デフォルトの名無しさん2009/07/22(水) 02:49:02
つまり、開発側も変わってるし
ユーザー側が見るものも変わってるって言ってるんだろそれ?
0816デフォルトの名無しさん2009/07/22(水) 04:21:34
>>804
$ cat test01.py
class MyClass:
        def __len__(self):
                return 'Hello'
obj = MyClass()
print obj.__len__()
print len(obj)
$ python test01.py
Hello
Traceback (most recent call last):
  File "test02.py", line 6, in <module>
    print len(obj)
TypeError: __len__() should return an int
0817デフォルトの名無しさん2009/07/22(水) 06:56:43
>>809
>書くときの気持ちよさはRubyが上でも、書きやすさは大して差が無く、
>読みやすさ・メンテのしやすさ・バージョンアップへの対応しやすさは
>圧倒的にPythonが上だもん。

そんなことないけどなあ。両方使った素直な感想として。
おまえ、Pythonしかろくに使ったことないだろ。

Pythonのほうが読みやすくてメンテのしやすいという具体的な例を出してみな。
0818デフォルトの名無しさん2009/07/22(水) 07:21:32
Pythonを使ってる人にとって、Perlの亜流は不要という。
0819デフォルトの名無しさん2009/07/22(水) 07:38:44
>>817
Pythonの方が、メソッドチェーンみたいな一行にゴチャゴチャ詰め込む文を
誰も使わない。a = b は必ず a に b を代入しているのでbが関数かどうか
調べなくて良い。名前空間が大事にされているので、何かの require したら
勝手に既存の型にメソッドが追加されてしかもそのメソッドがどのrequireから
持ち込まれたのか判らないって事がない。

Rubyでも判りやすく書けるとかじゃなくて、Pythonは判りやすく書く方法が
文化として定着しているため、ワザと読みにくくされていない限り誰のコード
でも読みやすい。
0820デフォルトの名無しさん2009/07/22(水) 07:43:30
=> が嫌い
0821デフォルトの名無しさん2009/07/22(水) 08:17:18
Rubyからすると self.__ のせいでどうしても長くなりがち
メソッドチェーンを使わないんじゃなくて長くなるので使えないと見えてしまう

最後の2行は、Rubyもそうだと思うが
「○○でも判りやすく書ける」なんて言葉、Perlでぐらいしか聞かない
0822デフォルトの名無しさん2009/07/22(水) 08:23:34
おまいら、Lispを忘れてませんか?
0823デフォルトの名無しさん2009/07/22(水) 12:09:37
LispはLispで需要があるからいいの。
新たなパラダイムが生まれても、自分で実装できるし
0824デフォルトの名無しさん2009/07/22(水) 13:04:43
Lispはなんか別格だよね
0825デフォルトの名無しさん2009/07/22(水) 13:16:00
別格はforth
0826デフォルトの名無しさん2009/07/22(水) 13:23:54
Lispネタは前も出たけど、あまり盛り上がらなかった。
0827デフォルトの名無しさん2009/07/22(水) 13:35:24
Lisp系言語が活用されてるのって、Emacs Lispくらいしか思いつかない。
Lisp製の有名アプリなんてとんと聞かないし。
あとは研究用の教材くらいかなあ。
0828デフォルトの名無しさん2009/07/22(水) 13:36:44
AutoCAD を知らんのか
0829デフォルトの名無しさん2009/07/22(水) 13:45:56
マイクロソフトのエイジオブエンパイアは
NPCの作成言語にlispを使っていたと思ったが
0830デフォルトの名無しさん2009/07/22(水) 14:00:38
一方Civilization4はPythonを使った

・・・いやあれはまあUI絡みの部分が多いがな
0831デフォルトの名無しさん2009/07/22(水) 14:46:48
LLがLispのLか
0832デフォルトの名無しさん2009/07/22(水) 14:57:39
>>827
GIMPのAddinはLispでは?
0833デフォルトの名無しさん2009/07/22(水) 16:01:15
単に 827 の無知でした (^-^)
0834デフォルトの名無しさん2009/07/22(水) 16:25:30
まあ、応用例がしょぼいのは否めないが。
PHP -> ウェブデファクトスタンダード
Python -> Google 社内デフォルト
Ruby -> Ruby on Rails
Perl -> CGI の権威
Lisp -> AoE の NPC 作成言語
0835デフォルトの名無しさん2009/07/22(水) 16:30:01
>>834
恥ずかしくないか?
0836デフォルトの名無しさん2009/07/22(水) 16:35:41
むしろ俺の中でPerl/CGIは
Perlの印象もCGIの印象も悪くしたイメージしかない
0837デフォルトの名無しさん2009/07/22(水) 16:37:19
I think so.
0838デフォルトの名無しさん2009/07/22(水) 16:40:05
WebでのJavaScriptと同じ現象?
0839デフォルトの名無しさん2009/07/22(水) 17:25:21
いや、どちらかというとラーメン屋に置いてある漫画本と同じ現象。
0840デフォルトの名無しさん2009/07/22(水) 17:37:45
>>819
>Pythonの方が、メソッドチェーンみたいな一行にゴチャゴチャ詰め込む文を
>誰も使わない。
べつに1行でもいいんじゃない?読みやすければ。
Rubyは1行で書いても十分読みやすいよ。
それにPythonだって内包表記だっけ?あれ使って1行にごちゃごちゃ書いちゃうじゃん。

> a = b は必ず a に b を代入しているのでbが関数かどうか
>調べなくて良い。
これは意味分かんない。だれか解説して。

> 名前空間が大事にされているので、何かの require したら
>勝手に既存の型にメソッドが追加されてしかもそのメソッドがどのrequireから
>持ち込まれたのか判らないって事がない。
これは善し悪し。スタイルの違いだけ。
オープンクラスを思いっきり利用したほうが便利なことも多いことはRubyを使えばわかるんだけど、
それがわかってないみたいだからこいつはRubyをちょろっとかじっただけみたいだな。

>Rubyでも判りやすく書けるとかじゃなくて、Pythonは判りやすく書く方法が
>文化として定着しているため、ワザと読みにくくされていない限り誰のコード
>でも読みやすい。
べつにRubyでもほかの言語でも同じだと思うけど。なんでPythonだけが特別だと思うんだろう。
0841デフォルトの名無しさん2009/07/22(水) 17:44:03
俺を怒らせたね?
0842デフォルトの名無しさん2009/07/22(水) 18:06:32
>>840
おそらく自前で関数を書いたり他人の書いたスクリプトのメンテやったことないのかと
全部判ってるって状態での開発?そんな楽な職場あるんだったら就職したいわぁ
0843デフォルトの名無しさん2009/07/22(水) 18:11:30
趣味でも仕事でも使える素敵な言語
それは
↓
0844デフォルトの名無しさん2009/07/22(水) 18:11:57
C++
0845デフォルトの名無しさん2009/07/22(水) 18:34:22
ウェブの場合、コンテンツが大事なんであって、どんな言語使おうとコンテンツに影響はないんだよな。
結局HTMLを吐くだけだから。
だから、PHPみたいな明らかなウンコ言語が一番普及してる。
0846デフォルトの名無しさん2009/07/22(水) 18:35:19
RubyはPythonに比べて汚くて見づらいねって話だろ?そりゃそうだろ。
0847デフォルトの名無しさん2009/07/22(水) 18:37:39
スタイルだけならアセンブラが一番キレイ
0848デフォルトの名無しさん2009/07/22(水) 18:45:50
しかし、HTMLにコードを埋め込めるのが売りだったはずのPHPで、
それを全否定するかのようなフレームワークが主流になっているのが、どうしても理解できない。
テンプレートすらPHP的な書き方じゃないのが主流になってるし。
それなら結局Webでも言語関係無くない?と思うんだけど、PHP信者の意見を聞きたいわ。
0849デフォルトの名無しさん2009/07/22(水) 18:46:23
>>845

「○○の場合、××が大事なんであって、どんな△△使おうと××に影響はないんだよな。」

これコピペパターンに登録しとくか。
0850デフォルトの名無しさん2009/07/22(水) 18:52:09
>>848
言語的な扱いよりも環境作りやすい、移植しやすいとかそういう用途を優先してるんじゃね?
0851デフォルトの名無しさん2009/07/22(水) 18:53:17
>>848
HTMLにPHPコード直書きだと
触れないって怒る自称Webクリエイターがいるから

だからプログラマーもそれじゃ触らせないよってことになって今の状態
0852デフォルトの名無しさん2009/07/22(水) 18:54:41
>>848
MVC
0853デフォルトの名無しさん2009/07/22(水) 18:57:30
>>849
詭弁のガイドラインですね

>>845 はいいこといってるんだけどなぁ
0854デフォルトの名無しさん2009/07/22(水) 19:00:43
RubyとPythonで読みやすさ論争やっても宗教論争にしかならないけど、
言語仕様の安定性は普及度の違いにかなり影響してそうだな。
後は英語の一次情報充実度合いとか。
0855デフォルトの名無しさん2009/07/22(水) 19:00:52
>>848
俺もフレワ開発してるが、ある程度の規模になると PHP のコード埋め込みなんか大して使えん
というかまず使わない。ほぼ <?php の中で echo だわ。無理に埋め込み式にすると
色んな言語触ってる奴はスタイル的に違和感覚えるしそれほどメリットがあるわけでもない。
テンプレートはある程度内容を制御できるのとキャッシュとか細かい機能があるから
結局はSmartyみたいなエンジン使う。だから言語機能としてPHPである必要はない。

それでもPHPを使うのは普及度が高くてデプロイに手間がかかることが少ない、
ウェブに特化した関数やらライブラリやらが充実しててそこそこ保守されてる、
そこそこ性能も悪くない、情報もそこそこある、
など積極的にというより無難さによるところが大きい。
欠陥は多いが、かといってわざわざ乗り換えるほどのスクリプト言語もない。
0856デフォルトの名無しさん2009/07/22(水) 19:01:32
>>853
そうか?

> コンテンツが大事なんであって、どんな言語使おうとコンテンツに影響はない
と
> だから、PHPみたいな明らかなウンコ言語が一番普及

の間に何の論理的な繋がりもないぞ。
何が「だから、」なんだか。
0857デフォルトの名無しさん2009/07/22(水) 19:02:33
>>849
登録してもいいと思うけど、それって単に物事の切り込み方としての定番であって、
成り立っていれば有効、成り立っていなければ無効、っていうごく普通の話だよ。
0858デフォルトの名無しさん2009/07/22(水) 19:04:01
>>855
極端な話、Smartyを使うためにPHPを使うという逆転が起こってても不思議はないかもね。
他の言語のテンプレートエンジンって、露骨に不便なの多くね?
0859デフォルトの名無しさん2009/07/22(水) 19:17:43
> コンテンツが大事なんであって、どんな言語使おうとコンテンツに影響はない
と
> だから、PHPみたいな明らかなウンコ言語が一番普及
は矛盾しないってことが言えるだけ
0860デフォルトの名無しさん2009/07/22(水) 19:45:31
Web開発で何を選んでも同じだから、単価の安いPHPを使うってだけだな。
0861デフォルトの名無しさん2009/07/22(水) 19:59:34
>>842
Rails使ってるけど、Railsなんて既存のクラスに大量のメソッドを追加している。
でもそれが便利だから、世界中のみんなが喜んで使ってるし、別に困ってない。

なんかPythonのやり方しか知らないやつが他の言語を批判してるだけじゃん。
0862デフォルトの名無しさん2009/07/22(水) 20:57:38
コンテンツ云々の方々は>>1を100回読むべき

>ここでいう「軽さ」はプログラマの負担の軽重を指し、
0863デフォルトの名無しさん2009/07/22(水) 21:12:06
>>861
大量に作って、大量に捨ててるんじゃないの? >rails
0864デフォルトの名無しさん2009/07/22(水) 21:19:41
Railsの互換性のなさは数年後、地獄を迎える
0865デフォルトの名無しさん2009/07/22(水) 21:19:44
最初に書くのは楽でも、山ほどテストコード書かなきゃならないのなら、
プログラマの負担が軽いとは言えないのでは?
0866デフォルトの名無しさん2009/07/22(水) 21:22:34
>>864
そのうち収束するんじゃないの?
0867デフォルトの名無しさん2009/07/22(水) 21:24:33
>>865
Javaで書いたからってテストコードの量が減る訳でもないんじゃないか
0868デフォルトの名無しさん2009/07/22(水) 21:25:22
PHPの関数名の節操の無さも限界越えてるけどな
0869デフォルトの名無しさん2009/07/22(水) 22:35:46
実際に使ってる奴がいるからとかいう世俗的な話には興味ないな。
純粋に言語の仕様で戦って欲しい。

それが新しい言語の礎となる。
0870デフォルトの名無しさん2009/07/22(水) 22:41:25
世俗的を排除すると、究極的には
0
とかでいいじゃん。0がすべて。0以外は必要ない。
この言語が出来ること、言語の目的は、0の存在を示すこと。
0871デフォルトの名無しさん2009/07/22(水) 23:00:56
最近のアイちゃんは本当に賢いな
0872デフォルトの名無しさん2009/07/22(水) 23:05:42
言語の進化って書き手が楽になるようにとか、保守性あげようとかでしょ?
何が必要なんでしょうね
0873デフォルトの名無しさん2009/07/22(水) 23:10:45
>>827
>あとは研究用の教材くらいかなあ。
Maximaとか?
0874デフォルトの名無しさん2009/07/23(木) 08:24:53
>>863,864
話をそらすな。
Pythonは名前空間を大事にしているけどRubyはそうじゃないからRubyよりPythonのほうが
優れている、という主張に対する反論なんだから、Railsの互換性の話とかは今は関係ないだろ。

もとの話はこれ↓
>>840
>> 名前空間が大事にされているので、何かの require したら
>>勝手に既存の型にメソッドが追加されてしかもそのメソッドがどのrequireから
>>持ち込まれたのか判らないって事がない。
>これは善し悪し。スタイルの違いだけ。
>オープンクラスを思いっきり利用したほうが便利なことも多いことはRubyを使えばわかるんだけど、
>それがわかってないみたいだからこいつはRubyをちょろっとかじっただけみたいだな。
0875デフォルトの名無しさん2009/07/23(木) 08:28:41
で、これって結局どうなった?

>>840
>>Pythonの方が、メソッドチェーンみたいな一行にゴチャゴチャ詰め込む文を
>>誰も使わない。
>べつに1行でもいいんじゃない?読みやすければ。
>Rubyは1行で書いても十分読みやすいよ。
>それにPythonだって内包表記だっけ?あれ使って1行にごちゃごちゃ書いちゃうじゃん。

Pythonでも内包表記つかえばRubyみたいにごちゃごちゃして読みにくい?
それともPythonなら1行にごちゃごちゃかいてもRubyより読みやすい?
0876デフォルトの名無しさん2009/07/23(木) 08:32:30
>オープンクラスを思いっきり利用したほうが便利なことも多いことはRubyを使えばわかるんだけど、
Railsの互換性の話とかは関係あるだろ
0877デフォルトの名無しさん2009/07/23(木) 09:51:56
>>875
Pythonでは普通内包表記を使うことですっきり書き下せるときだけ
内包表記を使うから、複数の文に分けた方が判りやすい文を
ゴチャゴチャ詰め込んでるの見たこと無いよ。

Rubyは書くときの楽しさ、Pythonはすっきりさ重視。
0878デフォルトの名無しさん2009/07/23(木) 09:56:02
┐(´д`)┌
0879デフォルトの名無しさん2009/07/23(木) 09:56:28
>>876
Python系のバージョン間の互換性を大切にする文化は、
名前空間を大事にしているから可能って部分あるよね。

urllib がダメになったら urllib2 作ったりw
で、Deprecation Warningを消せた人のみPy3kにアップグレード可能
0880デフォルトの名無しさん2009/07/23(木) 10:28:30
Python++がほしいなあ。
0881デフォルトの名無しさん2009/07/23(木) 11:51:34
Rubyってなんで楽しいの?
0882デフォルトの名無しさん2009/07/23(木) 11:59:43
楽しくはないんだけど、
言語仕様の貧弱さを「楽しさ」という曖昧な要素で補うPR戦略を取ったところ、
いつのまにか既成事実化してしまい、それに乗せられたユーザーが残って共同幻想を形成している。
というのが最新の分析。
0883デフォルトの名無しさん2009/07/23(木) 12:01:04
足りないものは自分で作れっていう死ね
0884デフォルトの名無しさん2009/07/23(木) 12:39:59
Rubyは楽しくないと言うと
周囲に「分かっていないなぁ」と馬鹿にされるので
「楽しいです」と言ってます
0885デフォルトの名無しさん2009/07/23(木) 12:45:04
>>884
Rubyの「楽しい楽しい詐欺」は非常に巧妙に日本人的なユーザー心理を突くんだよね。
周りがそういってるからなんとなく、みたいな。
10人Rubyが楽しいという人がいたら、そのうち8,9人は884みたいな人だと言ってもいい。
ある意味PR戦略としては高く評価できる。
0886デフォルトの名無しさん2009/07/23(木) 13:02:47
>>840
Rubyのメソッドチェーンで読みにくいと思ったことはないんだけど、具体的に
どんなコードで読みにくいと思ったの?
0887デフォルトの名無しさん2009/07/23(木) 13:04:12
おまいら
パイチョンの日本語処理はどんな具合ですか?
0888デフォルトの名無しさん2009/07/23(木) 13:24:54
衆議院議員をめざしている人が、
本当のところどう思っているのか、
きいてみよう。
ttp://moderator.appspot.com/?hl=ja#16/e=9df89
"名前を連呼するだけの選挙宣伝カーを、「スパム認定」して禁止しませんか?"
Lambda  
0889デフォルトの名無しさん2009/07/23(木) 14:59:58
Rubyは文字コードのマジックコメントが嫌だな。
Pythonは3.0からUTF-8になったのがいい。

0890デフォルトの名無しさん2009/07/23(木) 15:06:27
>>889 大漁おめでとう
0891デフォルトの名無しさん2009/07/23(木) 18:56:41
Perlをけなして、Rubyをほめるような
ヤツをオレは決して信用しない。

そいつは間違いなく排他的で狭量な
バカだからだ。
0892デフォルトの名無しさん2009/07/23(木) 19:01:07
>>880
Objective-Pythonにするべき。

略して、「おっぱい」!!
0893デフォルトの名無しさん2009/07/23(木) 19:17:56
oops!
0894デフォルトの名無しさん2009/07/23(木) 20:19:31
>>884
>Rubyは楽しくないと言うと
>周囲に「分かっていないなぁ」と馬鹿にされるので
>「楽しいです」と言ってます

どんなものでも、できるようになれば楽しい。
おまいらの嫌いそうなスポーツも、運動できる人間にとっては楽しい。
大半の人間は勉強ができないから嫌いだけど、できるやつにとっては勉強すら楽しい。
Rubyも同じ。マスターしたら楽しいけど、>>884みたいなやつにとっては苦痛でしかないだろうな。
0895デフォルトの名無しさん2009/07/23(木) 20:35:14
出来云々と好みは違うからなぁ
エリートの悩みとか知らんのか
0896デフォルトの名無しさん2009/07/23(木) 20:41:40
スラスラ出来るけど楽しくないっていうのを
長年続けてると鬱になるらしいよ
0897デフォルトの名無しさん2009/07/23(木) 20:49:35
プログラミングや言語の扱いよりも、
その結果が思い通りに動くが楽しい。
マラソンが楽しい人がいるのはわかるけど、
大抵の場合は、クルマや電車でさっさと楽しい目的地に行くことが重要だ。
0898デフォルトの名無しさん2009/07/23(木) 21:25:31
RubyがPythonより楽しいとよく言われる理由が知りたいの。
短く書けるから?いっぱいimportしなくていいから?
0899デフォルトの名無しさん2009/07/23(木) 21:36:38
楽しいか楽しくないかなんてのは理屈じゃねえんだよ
0900デフォルトの名無しさん2009/07/23(木) 22:03:03
>>894
> どんなものでも、できるようになれば楽しい。
そんなことあるか。
0901デフォルトの名無しさん2009/07/23(木) 22:07:22
思い浮かんだことをすぐ形に出来る
ストレスフリーのプログラミングってのは楽しいもんだ。

それを実現できるのは
コンパイル不要=スクリプト
用途無制限=汎用
洗練された文法=現代的
ライブラリなどショートカット充実=RubyかPython
などここで二つに絞り込まれるわけだが
Rubyの場合は更に規約主義による簡潔な記述が加わる。

結果としてRubyが最も楽しいプログラミング言語といわれる。
0902デフォルトの名無しさん2009/07/23(木) 22:09:19
>>828
亀レスだけどAutoCADはlispで書いてあるのか?
0903デフォルトの名無しさん2009/07/23(木) 22:11:45
>>901
> 結果としてRubyが最も楽しいプログラミング言語といわれる。
ナイスジョークだ。
0904デフォルトの名無しさん2009/07/23(木) 22:11:58
要するにRubyとPythonの決定的な違いは
書いてて楽か(短かい記述)、読んでて楽か(スタイル統一)、ってことだな。
趣味プログラマとして楽しいのは前者だろう、ってことで。
0905デフォルトの名無しさん2009/07/23(木) 22:19:13
わしゃ覚える時が楽しいが
頭のできの良い人の中はようわかりません
達人の域に達した人は何を楽しいと思うのかな
0906デフォルトの名無しさん2009/07/23(木) 22:30:17
Rubyでもまあいいけど、何か人間関係で疲れるw
なのでPythonの方がいいw
0907デフォルトの名無しさん2009/07/23(木) 22:34:10
>>89
> どんなものでも、できるようになれば楽しい。
えらい適当な話だし、もしこれをそのまま受け入れるとすると
Ruby信者がウリにしていることは1�_たりともRubyの特徴説明になってないなw
0908デフォルトの名無しさん2009/07/23(木) 22:40:39
Rubyが汚くて読みづらいのはPerlから受け継がれてる。
0909デフォルトの名無しさん2009/07/23(木) 22:41:27
たぶん、Rubyが冗長で多彩な記述を許しているのがあるのかなあと
意図的に構文を正規化しない
簡単な例「0から9までの値を出力する」でも、ざっと

(0 .. 9).each {|x| puts x }
(0 ... 10).each {|x| puts x }
10.times {|x| puts x }
0.upto(9) {|x| puts x }

・・・・まだある。よく知らんのだけど、
この辺はPythonの哲学と対立するんではないなかあ
上のレスを読んでいると、Pythonはコードの正規化(誰が書いても同じコード)に
重きを置いているように思われる
0910デフォルトの名無しさん2009/07/23(木) 22:44:26
>>909
つーか、色々な書き方が出来るのはいいとしても、どれも美しく見えないな。
0911デフォルトの名無しさん2009/07/23(木) 23:06:25
puts (0..9).to_a
puts *(0..9)
0912デフォルトの名無しさん2009/07/23(木) 23:08:56
無理矢理1行に纏めたコードだからそもそも美しくはないだろうな
本当はその下にforで回すパターンもあるが
それはあんまりRubyっぽくないのと、1行にするにはちと長いというだけだろう
あとブロックの関係で意味も微妙に変わるから同じ文とは言えないし

for x in 0...10 do
  puts x
end
0913デフォルトの名無しさん2009/07/23(木) 23:09:35
むしろ 0..9 だけでいい
0914デフォルトの名無しさん2009/07/23(木) 23:14:12
>>910
そりゃあ好みの問題だろう
RubyはRubyで、このメソッド呼び出しとブロック構文で豊かな世界を作ってる
だから、これはこれで統一された美しさがある
0915デフォルトの名無しさん2009/07/23(木) 23:34:29
Lispも括弧ばっかりで美しくない
けど強力
rubyの売りはどこだ
0916デフォルトの名無しさん2009/07/23(木) 23:39:02
頭の中に浮かんだ順番でだいたい書けるところ
PerlやPythonだと、書いて「戻る」とか、頭の中に「置く」とかしながら書くことが多くなる
0917デフォルトの名無しさん2009/07/24(金) 00:31:47
Rubyは言語制作者の想定した範囲内で使う分には快適な言語だと思う

例えばブロック構文なんてのは
「高階関数は多くの場合高々1つの関数が渡せれば十分」
なんて決めつけが背後にある
0918デフォルトの名無しさん2009/07/24(金) 00:54:48
それもあるだろうが、Rubyの場合はそもそも「関数」が少ないから
引数として渡すって形式だと辛いってのがある
0919デフォルトの名無しさん2009/07/24(金) 01:02:57
>>906
I think so.
0920デフォルトの名無しさん2009/07/24(金) 01:05:30
俺的に勝手にRPGゲームに例えると

Perl = Wizardry
PHP = Ultima
Python = World Of Warcraft
Ruby = ドラゴンクエスト
Tcl/Tk = Might and Magic

って感じです。
Lispは何だろうな・・・。
0921デフォルトの名無しさん2009/07/24(金) 01:06:09
>>909
>Pythonはコードの正規化(誰が書いても同じコード)

残念だがそれは幻想だ
0922デフォルトの名無しさん2009/07/24(金) 01:09:54
>>920
Lispは俺的にはElder Scrollだな。
0923デフォルトの名無しさん2009/07/24(金) 01:15:43
どういう例えなのか解らんし
例え話ってどうとでも解釈できるから
すっげぇ不毛な水掛け論になりやすいと思うんだ
0924デフォルトの名無しさん2009/07/24(金) 02:12:45
>>920
それがまじなら、俺はPythonを取る
Perlってそんなまぞいのか?…
0925デフォルトの名無しさん2009/07/24(金) 02:26:09
「RPGゲーム」に突っ込まない優しさ
0926デフォルトの名無しさん2009/07/24(金) 02:36:07
a = [1,2,3,4] で、 a.size でも a.length でも自由に使えるのがRuby
自分で作るクラスでも、 size だろうが length だろうが len だろうが自由に使える。

Pythonの場合、 len(a) としか書けないし、自分で作るクラスでも
.length じゃなくて .__len__ って書かないとバカにされる。
0927デフォルトの名無しさん2009/07/24(金) 02:56:52
>>921
Pythonで書けば誰が書いても同じコードになるってのは幻想だけど、
同じプログラムの同レベルの書き方を増やすためだけに構文や組み込み関数を
増やしたりはしないよね。
内包表記みたいに、良く出る3行を1行にすっきりまとめられるなら新しい
構文を作る価値があるけど、 range(3,5) と 3...5 じゃぁ大して短くならないから
通常の関数の構文のみで対応できるrangeを選んで構文を拡張しないとか。
0928デフォルトの名無しさん2009/07/24(金) 03:41:19
Rubyはこれが楽しいプログラミングなんだっていう作者の教条的な態度が肌に合わない。まさに宗教的。
0929デフォルトの名無しさん2009/07/24(金) 03:42:56
print range(3, 5)
print ','.join(x for x in range(3, 5))
0930デフォルトの名無しさん2009/07/24(金) 03:43:32
宗教的でない言語など聞いたことないが
宗教的でないことを宗教的信条とする言語はあるかもしれん
0931デフォルトの名無しさん2009/07/24(金) 03:44:55
それはごもっともだけど、俺(Python)の考えは違った
0932デフォルトの名無しさん2009/07/24(金) 03:54:10
LLスレでこんなこと言うのもなんだけど、動的型が為に実行時に型違いで
プログラムが停止するのが、プログラミング作業の中で一番ムカつく瞬間だと
思う。
0933デフォルトの名無しさん2009/07/24(金) 03:55:25
実行時に停止するか
コンパイル時に停止するか
の違いだけだろw
0934デフォルトの名無しさん2009/07/24(金) 04:32:29
コンパイルさえ通れば
型エラーで停止しないことを保証してくれる言語って
そんなに多くないような?
0935デフォルトの名無しさん2009/07/24(金) 04:57:22
OCaml!
0936デフォルトの名無しさん2009/07/24(金) 06:38:17
Rubyの3...5に相当するのはxrangeだと思うがな
3...5自体は配列を生成するワケでなく、Rangeのインスタンスを生成するだけだから
Perlの同様の構文に相当するのはrangeかな?
0937デフォルトの名無しさん2009/07/24(金) 08:35:41
>>915
>>827の2行目以降に反論してくれないか?
0938デフォルトの名無しさん2009/07/24(金) 08:54:07
以外に知らない人が多いってことか
とりあえず、common lispのwikiでも読んでみればいいんでない
0939デフォルトの名無しさん2009/07/24(金) 09:16:06
>>938
さすがLISPだ。有名アプリがひとつもない。こういうニッチなところで使われてこそLISPの真骨頂だ。
>>822の”研究用の教材くらいかなあ”は見事に言い当てている。
0940デフォルトの名無しさん2009/07/24(金) 10:56:59
>>939
MITにOSをschemeで書いたコンピュータがあると昔ストールマンに聞いた事があるよ。

LispはCPUのリソース食いまくりの言語だけど,BSDに仮想記憶が導入されたのもLispのおかげだし
結構使いやすい言語ですよ。
0941デフォルトの名無しさん2009/07/24(金) 12:28:06
>>939
頭が固くてLISPを使いこなせないので使われてないと思いたいんですね
わかります
0942デフォルトの名無しさん2009/07/24(金) 12:45:20
情報学方面だとLisp大好きな人結構いるよねえ。

うちの教授なんてマインドストーム上でLisp実装したとかいって大喜びしてたし。
未踏ソフトウェアの補助金受けてまでやることかとは思うけど。

それをマッカーシーに見せたら氏の方が更に喜んだとかなんとか.
0943デフォルトの名無しさん2009/07/24(金) 13:57:34
>>940
> MITにOSをschemeで書いたコンピュータがあると昔ストールマンに聞いた事があるよ。
ものすごく遅そそうなOSだ。
>
> LispはCPUのリソース食いまくりの言語だけど,BSDに仮想記憶が導入されたのもLispのおかげだし
それLISPの欠点だけど。

> 結構使いやすい言語ですよ。
ruby信者がrubyは使いやすいと言う程度には信用します。

>>941
証拠に基づいてレスをお願いします。

>>942
> うちの教授なんてマインドストーム上でLisp実装したとかいって大喜びしてたし。
Lispの良さは実はそこなんだと思う。実装するのが楽しいのだ。だからemacs-Lispや
autoLispがある。どちらもCで書かれていると思うのだが間違っている?
0944デフォルトの名無しさん2009/07/24(金) 14:12:59
勘違い上から目線ワロタ
君が理解できなくても君の損であって誰も困らんよw
0945デフォルトの名無しさん2009/07/24(金) 14:18:11
本当にRubyユーザはキモいですね
0946デフォルトの名無しさん2009/07/24(金) 16:09:20
Cで書かれていると思うのだが間違っている?
0947デフォルトの名無しさん2009/07/24(金) 17:36:19
Common Lispの場合、仕様にコンパイラが入ってるので
処理系の実装言語が何であるかは重要ではないような
しかも下手な言語より速い
0948デフォルトの名無しさん2009/07/24(金) 18:49:59
perlのideは何がありますか
0949デフォルトの名無しさん2009/07/24(金) 19:42:53
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
0950デフォルトの名無しさん2009/07/24(金) 20:03:27
>>947
Lispがそんなにいいものなら処理系もLispで書いてしかるべき。
common lispはコンパイラがあるのならcommon lisp処理系はcommon lispで
書かれていると思うのだがどうだろう。そのとおりなら間違いを認める。
0951デフォルトの名無しさん2009/07/24(金) 21:07:45
シェアの話をしたければPHPの話でもしてればいいのに。

ゲップが出るけど。
0952デフォルトの名無しさん2009/07/24(金) 21:27:47
>>950
書かれているよ。処理系にもよるけど。
LispじゃないけどGaucheはCみたいだね。
0953デフォルトの名無しさん2009/07/24(金) 21:52:12
ある処理系を記述するのに最適な言語はその言語自身とは限らないんだがなあ
0954デフォルトの名無しさん2009/07/24(金) 22:12:26
つったってCommon Lispの処理系はいっぱいあるしなー
0955デフォルトの名無しさん2009/07/24(金) 22:26:24
>>953
だれもそんな話してない
0956デフォルトの名無しさん2009/07/24(金) 22:45:09
> Lispがそんなにいいものなら処理系もLispで書いてしかるべき。
0957デフォルトの名無しさん2009/07/24(金) 22:54:49
俺は仕事では手続き型しか使ってないし、Lisp系はSchemeしか知らないけど、
技術者としての楽しみが詰まってる言語だと思う。

実際の仕事で使うかどうかは別として、Lisp系を楽しいと思えない奴は技術者に向いていないと思う。
0958デフォルトの名無しさん2009/07/24(金) 23:03:22
人工知能=Lisp
0959デフォルトの名無しさん2009/07/24(金) 23:10:07
ゲームとシミュレーション以外の分野で使える言語が大方のニーズです。
まあ>>957の言うとおり、遊びで使える言語があるってのは楽しいだろうけど。
0960デフォルトの名無しさん2009/07/24(金) 23:29:12
WikipediaのLispマシンの項目が充実していて吹いた。
0961デフォルトの名無しさん2009/07/24(金) 23:43:11
梅の季節
0962デフォルトの名無しさん2009/07/25(土) 01:14:25
>>943
AutoCadはCommon-Lispで書かれてるよ。
それにLispの処理系はOSがらみ以外の部分は結構Lispで書かれてるよ。
SchemeはMITでは公式言語と言って良い程使われてるし
Lispが使われてないという根拠は何なの?
証拠に基づいてレスしてもらえる?
0963デフォルトの名無しさん2009/07/25(土) 01:29:36
処理系をその言語だけで書けるなんてアッセンブラー以外にあるのかねぇ?
0964デフォルトの名無しさん2009/07/25(土) 01:31:12
つーか、鶏が先か卵が先かみたいに、
新しい言語をその言語自体で実装するってできるん?
0965デフォルトの名無しさん2009/07/25(土) 01:35:24
>>964
そりゃ、理屈から言えば可能。
ただし言語による、としかいえんわな。
実装言語の制約によるだけじゃないかと。
0966デフォルトの名無しさん2009/07/25(土) 01:39:43
>>962
MITはPythonにスイッチしたとかなんとか
0967デフォルトの名無しさん2009/07/25(土) 02:14:36
ブートストラッピングできないコンパイル言語は、
評価にも値しないと言われた事もあったな。
0968デフォルトの名無しさん2009/07/25(土) 02:18:25
>>964
よくあるブートストラップだよ。
1. その言語のインタプリタを別言語で作る。
2. インタプリタ上でその言語のコンパイラを作る。
3. インタプリタ上のコンパイラで、コンパイラ自身をネイティブ・コンパイル。
4. 以降はネイティブ・コンパイラで開発。
0969デフォルトの名無しさん2009/07/25(土) 02:25:30
>>968
実例は、c-front(C++の前身)だね
0970デフォルトの名無しさん2009/07/25(土) 05:43:13
で、お前らPHP使ってどんな糞な仕事してんの?
0971デフォルトの名無しさん2009/07/25(土) 06:25:07
1. その言語の仮コンパイラを別言語で作る。
2. 仮コンパイラで、コンパイラ自身をネイティブ・コンパイル。
3. 以降はネイティブ・コンパイラで開発。
0972デフォルトの名無しさん2009/07/25(土) 08:12:46
ブートストラッピングってどこまで処理系を書ければおkなん?
CでもI/Oまわりはライブラリーを使わなければ不可能だし
gccは算術演算回りはアッセンブラーで組んであったと思うよ
0973デフォルトの名無しさん2009/07/25(土) 08:40:46
>>966
それは授業のテーマがロボティクスに変わったから。
0974デフォルトの名無しさん2009/07/25(土) 08:44:25
>>972
結局どんな言語でも、少しはアセンブラが必要だし、
コンパイラでなければ、完全なブートストラップは不可能。

理論的には、インタプリタからコンパイラを合成することはできるし、
PyPyではできているけど、PyPyを実用で使ってる例ってある?
0975デフォルトの名無しさん2009/07/25(土) 09:08:35
>>962
> AutoCadはCommon-Lispで書かれてるよ。
俺が無智だった。ひとつだけでもメジャーなので使われてて良かったな。

> それにLispの処理系はOSがらみ以外の部分は結構Lispで書かれてるよ。
Liso支持者はあらゆるところでLispが使われている(または最強)と言うもんだ。
そんなに奥ゆかしくていいのか?

> Lispが使われてないという根拠は何なの?
いくらLispでもFORTRAN程度には使われているだろう。使われてないとまでは言っていない。

> 証拠に基づいてレスしてもらえる?
俺がそうレスした相手は断定していたが俺は断定していないからそのかえしは当たらない。


Lispの話題はLispの衰退に反比例して盛り上がる。Liso支持者はこれからも頑張ってほしい。
0976デフォルトの名無しさん2009/07/25(土) 10:08:34
>>962
今のAutoCadはc/c++実装だと聞いた気がするが。
Lispが残っているのはマクロだけらしい。
0977デフォルトの名無しさん2009/07/25(土) 10:56:11
>>975
>俺が無智だった。ひとつだけでもメジャーなので使われてて良かったな。

Emacsについても思い出してあげてください。
0978デフォルトの名無しさん2009/07/25(土) 11:04:16
次スレ

【Perl,PHP】LLバトルロワイヤル7【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1248487404/
0979デフォルトの名無しさん2009/07/25(土) 11:14:26
時々、Yahoo Storeは今でもLispを使っているのかと聞かれる。
答えはイエスだ。Lispコードはそっくりそのまま、まだある。
Yahooはサーバー側のソフトウェアを、エリック・レイモンドが
薦めた5つの言語全てを使って書いている。
0980デフォルトの名無しさん2009/07/25(土) 11:26:58
>>977
EmacsはCで書いてある。マクロはlispで書いてあるので両者の境界は知らない。
0981デフォルトの名無しさん2009/07/25(土) 11:35:09
>>975
お前 態度の割に無知だな
0982デフォルトの名無しさん2009/07/25(土) 11:41:29
>>976が事実なら無知は>>962のほうだが。>>981も無知だけど。
0983デフォルトの名無しさん2009/07/25(土) 11:55:48
いや 断然975だろ 無知なのはな
書き込みが馬鹿丸出しで内容が全然無い
プログラムをした事無いというより能力がないから言語を使いこなせない
というのが見え見えだろ
違うというなら自分で書いたプログラムをUPしてみ
見栄はってコピペしたらいかんよ
0984デフォルトの名無しさん2009/07/25(土) 12:02:12
>>980
EmacsのCで書かれてるのは基本的なUIとLispの評価器だけ。
ほとんどの機能はEmacs Lispで実装されてる
0985デフォルトの名無しさん2009/07/25(土) 12:07:24
>>983
おまえがやれよ。おれはたまに2chでないところでは発表してるから。
2chでさらせなんてバカじゃないか?
0986デフォルトの名無しさん2009/07/25(土) 12:13:28
なんか975=982=985って人材派遣会社の営業っぽくね?
客先と話ができるように必死で勉強したけど全然的外れって感じだな
またグダグダ言って自分の無能さをさらけだしてるし
ちなみに馬鹿はお前な
0987デフォルトの名無しさん2009/07/25(土) 12:22:55
>>985
見栄張るな ボケ!
0988デフォルトの名無しさん2009/07/25(土) 12:46:34
CADはわりかしLispで書かれてると聞いたがなぁ
とくにアートワーク用のCADについてるルーターなんて限りなくLispでコーディング
するのにに適してるように思う
最近のパソコンはCPUパワーやメモリー容量がやたら増えたから
スクリプト言語やLispやJavaみたいにリソース食いまくり言語が実用面でも使えるように
なったんだろうな
0989デフォルトの名無しさん2009/07/25(土) 13:08:10
Mozillaが主要コンポーネントだけCで書いて、
UIなんかはXMLとJavaScriptで書いてるのと通じるところがあるな。
Mozillaは現代版Emacsなのかもしれん。
0990デフォルトの名無しさん2009/07/25(土) 13:12:15
>>986
素晴らしい想像力に感服した。

人材派遣会社の営業が客先とLispの話をするなんて。

人材派遣会社の営業 "うちはLispのエキスパートを揃えています"。
客先        "Lisp? なにそれ うまいもの?"

おれにはこんな場面しか思い浮かばない。
0991デフォルトの名無しさん2009/07/25(土) 13:35:25
Lisp最強なんていってないが、強力だとはいったな。
0992デフォルトの名無しさん2009/07/25(土) 14:02:46
このスレと次ぎスレ読むと、
Lisp=かまってちゃん
ってことが良くわかった。
0993デフォルトの名無しさん2009/07/25(土) 14:30:58
>>990
想像力がないとアルゴリズムを考える時に苦労しない?

>>992
俺にはお前がかまってちゃんに見えるよ。
0994デフォルトの名無しさん2009/07/25(土) 14:38:17
この中だったら、Pythonが一番Lispに近いか?
0995デフォルトの名無しさん2009/07/25(土) 14:49:06
DSLを作るって意味じゃRubyかな
関数型って意味じゃPythonだけどそれってLispっぽさとはちょっと外れてるかも
0996デフォルトの名無しさん2009/07/25(土) 14:52:13
PythonってLispのマクロみたいにプログラムを作るコードを書けたりする?
0997デフォルトの名無しさん2009/07/25(土) 15:28:09
>>994
あえて言えばPythonはScheme、RubyはCommon Lispかなあ
0998デフォルトの名無しさん2009/07/25(土) 15:33:30
>>993
> 想像力がないとアルゴリズムを考える時に苦労しない?
人材派遣会社の営業が客先とLispの話をするところを想像できないと苦労するって
どんなアルゴリズムだよ。
0999デフォルトの名無しさん2009/07/25(土) 15:39:50
1000ならLisp大勝利
1000デフォルトの名無しさん2009/07/25(土) 15:43:53
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。