【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/06/05(金) 10:48:30エントリーは、
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とりあえず 見ちゃったんで
0003デフォルトの名無しさん
2009/06/05(金) 15:15:39これから、Webアプリを作ってみようと思っているのですが、
今なら、Perl、PHP、Ruby、Pythonのどの言語が良いでしょうか?
上記4つの言語しか使えないサーバーです。
チャットルームにも掲示板にもなるようなのを
作りたいと思っています。
0004デフォルトの名無しさん
2009/06/05(金) 17:54:52スレ違い
さらには板違いの可能性もある
0005デフォルトの名無しさん
2009/06/05(金) 18:13:55Perl
理由は答えられない。
0006デフォルトの名無しさん
2009/06/05(金) 18:37:130007デフォルトの名無しさん
2009/06/05(金) 20:18:45そういうのが主目的じゃないんだからレンタルサーバー借りたからWebアプリを
作ろうっていう発想になるのはどうかと思う。
00083
2009/06/05(金) 22:42:40個別具体的な事例についての優劣は、議論しないという事ですか……。
申し訳ありません。
>>5
4つの言語の中で一番経験がある筈なのが Perl なんですが……。
(ただし、Web アプリではありません)
>>6
もうすぐ LL のイベントですか。
そういえば、毎年夏にあるんでしたっけ。
今年のは、テレビ番組を意識した気軽に楽しめるようなイベントを構想してるとか……。
まだ、一度も行った事がないので、行ってみたいですね。
>>7
当初 Web アプリを自作するつもりがなかったため、
何も考えず共用のを借りました。
総合的に考え直そうと思います。
さっき WebProg という板を見つけたので、
プログラムについてはそちらで相談しようと思います。
サーバーいついては、レンタルサーバーの板のほうで、
相談しようと思います。
板違いで申し訳ありません。
0009デフォルトの名無しさん
2009/06/05(金) 23:42:380010デフォルトの名無しさん
2009/06/05(金) 23:56:26Lightweight Language カンファレンス 2009
http://ll.jus.or.jp/2009/
0011デフォルトの名無しさん
2009/06/07(日) 12:40:51別にいいじゃん。Webアプリなんて、日曜大工とか夏休みの工作みたいなもんなんだし。
0012デフォルトの名無しさん
2009/06/07(日) 13:01:36Perl-------
PHP.------
Python----
Ruby------
JavaScript-
VB--------
0013デフォルトの名無しさん
2009/06/07(日) 13:23:20PHP.------ The PHP Group (, Zend Technologies ?)
Python---- Python Software Foundation
Ruby------ Yukihiro Matsumoto
JavaScript- ???
VB-------- ???
とりあえず。
VBはまあMSだろうけど、JavaScriptは、それぞれの実装について
いろいろあるんだろうか。
0014デフォルトの名無しさん
2009/06/07(日) 15:32:090015デフォルトの名無しさん
2009/06/07(日) 15:37:440016デフォルトの名無しさん
2009/06/07(日) 16:28:18Perl------- 5
PHP.------ 2
Python---- 4
Ruby------ 1
JavaScript- 未知数
VB-------- 3
こうでつか?そんな気もする。
0017デフォルトの名無しさん
2009/06/07(日) 17:39:080018デフォルトの名無しさん
2009/06/07(日) 22:08:340019デフォルトの名無しさん
2009/06/07(日) 22:26:46キモイ奴が多い数でおけ?
0020デフォルトの名無しさん
2009/06/07(日) 22:30:570021デフォルトの名無しさん
2009/06/08(月) 05:56:56日本以外では言わない。海外ではリソース消費が軽量という意味でC言語などを指すのでむしろ逆。
日本でもごく一部でしか言わないし、「スクリプト言語」がポピュラーな呼称。
0022デフォルトの名無しさん
2009/06/08(月) 06:02:25動作の軽い言語のことみたいで「プログラマの負担が軽い」という意味で使われるのは基本的に日本だけ
…もっとも俺もWikipediaかじった程度の知識だから実態は知らんが
0023デフォルトの名無しさん
2009/06/08(月) 07:29:240024デフォルトの名無しさん
2009/06/08(月) 07:31:23またこのネタかw 何回目だ?
>>20
「サラリーマン」や「ガソリンスタンド」的な意味での和製英語ではない。
なにしろ言い出しっぺはアメリカ人らしいし。(ソースは2chとWikipedia)
ただ、新語ではあるので用語として定着しておらず、また>>1の意味で利用
されている範囲もそれほど広くないんじゃないかな〜という程度のもの。
0025デフォルトの名無しさん
2009/06/08(月) 07:32:000026デフォルトの名無しさん
2009/06/08(月) 08:07:33常識のはずのことが繰り返し尋ねられるとかは困るけど、
この場合、スレ的に根幹を成す物事で、その割には常識までは行ってない物事だから、
ある程度繰り返されるのも仕方ないかな、とは思う。
0027デフォルトの名無しさん
2009/06/08(月) 09:08:27Q. LLって和製英語なの?
A. >>28
0028デフォルトの名無しさん
2009/06/08(月) 09:39:260029デフォルトの名無しさん
2009/06/08(月) 10:54:420030デフォルトの名無しさん
2009/06/08(月) 13:13:50ll-duscuss
ttps://lists.csail.mit.edu/pipermail/ll-discuss/
それとも、このアーカイブが全部捏造なのかなw
0031デフォルトの名無しさん
2009/06/08(月) 13:49:19それMITの日本人学生が作ってるのモロバレじゃん。
0032デフォルトの名無しさん
2009/06/08(月) 21:27:43Gregory T. Sullivan
ttp://people.csail.mit.edu/gregs/gregs.html
いかつい日本人学生もいたもんだな
0033デフォルトの名無しさん
2009/06/08(月) 22:21:00>それMITの日本人学生が作ってるのモロバレじゃん。
ねつ造してんのはおまえじゃんかwwwww
0034デフォルトの名無しさん
2009/06/09(火) 12:11:000035デフォルトの名無しさん
2009/06/09(火) 13:17:510036デフォルトの名無しさん
2009/06/09(火) 14:52:17実はひいばあさんの一人が...
0037デフォルトの名無しさん
2009/06/10(水) 01:19:160038デフォルトの名無しさん
2009/06/13(土) 04:03:390039デフォルトの名無しさん
2009/06/13(土) 11:20:38STLやコンテナやら面倒なだけじゃん
0040デフォルトの名無しさん
2009/06/13(土) 17:43:31IDEで作って右クリックで実行するだけだから結局同じだし
インタプリタインストールしないとならないLLの方が面倒じゃない?
0041デフォルトの名無しさん
2009/06/13(土) 19:04:59最近、Ruby仕事してるんだが、
昔、DelphiでIDEでサクサク補完しながら作ってたころより生産性があがったように見えん。
どっかのひがやすをblogじゃないが、
> 「コードが多くても、実際の作業としては ctrl+spaceとctrl+1 を押すのが大半だから、生産効率に差はないんですよ。」
とか言われて、Ruby長年使っててRuby脳になってるはずなのに微妙に納得しかかってる。
もっとサクサク補完しながらかけるLLってねーの?
Ruby好きなんだけど、くだらんスペルミスとかで平気でとまる。ガバレッジテスト秋田・・・
004241
2009/06/13(土) 19:07:47今時、言語の優越に開発環境引いて考える時代でもなかろう。
俺は、前はxyzzyでRuby書いてたけど、最近はNetBeans。でもどっちも補完はダメダメだね…
aptanaは重すぎワロタ
RubyとIDEでの補完の相性の悪さは、しゃーないことはわかっているんだけどさ
0043デフォルトの名無しさん
2009/06/13(土) 19:44:13どんだけJavaの生産性が酷いかしか説明してない本w
0044デフォルトの名無しさん
2009/06/13(土) 22:39:35LLでも普通にctrl+spaceで補完だが…
今更テキストエディタって、20〜30行までの捨てスクリプトでもないかぎり
そんなことしない。
LLでもIDEがないと結局プロジェクトとしてのソース管理が困難になるのだし。
0045デフォルトの名無しさん
2009/06/13(土) 22:42:05統合環境使うなら、統合環境での利用に最適なシンタックス
を搭載しているpythonがベストと思うが。
0046デフォルトの名無しさん
2009/06/13(土) 23:16:520047デフォルトの名無しさん
2009/06/13(土) 23:29:54そういう人は素直にC#勉強すればいいと思わないでもない
0048デフォルトの名無しさん
2009/06/13(土) 23:51:58LLから入るより普通にJavaでもやった方がいいと思う
0049デフォルトの名無しさん
2009/06/13(土) 23:54:030050デフォルトの名無しさん
2009/06/14(日) 00:01:27Linux系サーバーになるとどうにもならなくなる。
また、CG開発系スクリプトでも全く威力を発揮しない。
C#はとても良い言語ではあるものの、
あくまでもC++のハイなレベル版に過ぎない。
Javaも意外なほど応用範囲がせまいな。
VMというもの自体が制約になるためだが。
0051デフォルトの名無しさん
2009/06/14(日) 01:39:21いや、よー知らんけれど
0052デフォルトの名無しさん
2009/06/14(日) 02:11:05だから何?
向き不向きならどんなものにもある。
0053デフォルトの名無しさん
2009/06/14(日) 06:40:07だから、「何でもやりたい」ならjavaは別段向いてないのではということ。
(というか非常に向いていない)
個人がやるなら、クライアントアプリか、WEBアプリ、
あるいは、Excelやファイル処理などの簡易なマッチング処理・置換の類、
が最もありがちなのではないかと思われるが、
それら全てにjavaは凄まじく向いていない。
個人が1人でやる場合にjavaが向いているのは、iアプリぐらいかw
0054デフォルトの名無しさん
2009/06/14(日) 08:39:490055デフォルトの名無しさん
2009/06/14(日) 09:08:47サーブレットの場合はJavaの利点がよく見えないし、クライアントは
Flashに押され気味だし。
0056デフォルトの名無しさん
2009/06/14(日) 09:13:30そうですね…
次の方どうぞ
0057デフォルトの名無しさん
2009/06/14(日) 10:09:12だったらPerlやPHPだと利点ありまくりなのか?
なんでもやりたいとか言うならPythonやC++くらいでたいていの事はできると思う。
とは言え職業プログラマならJavaやC++くらいできんと話にならん気がするが。
0058デフォルトの名無しさん
2009/06/14(日) 10:34:10せっかくなので、あなたがオススメする
・クライアントアプリ
・WEBアプリ
・Excelやファイル処理
それぞれのオススメ言語おしえてくださいな
0059デフォルトの名無しさん
2009/06/14(日) 11:02:27PHP
クライアント: ×、 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:51Pythonはガチだけど、RubyはGUIクライアントだと×か△ぐらいじゃねえか?
0061デフォルトの名無しさん
2009/06/14(日) 12:17:12中身のコードに関しても、JavaはともかくC#ならかなりコーディングの負荷は軽いぞ。
Windows限定では困るGUIクライアントを本当に作りたいの?
GUIってだけでスレチな気がすごくする。
0062デフォルトの名無しさん
2009/06/14(日) 12:42:56プログラムやPCに疎い人間に使わせるときくらいだよなぁ。
自分で使うツールで必要になることって滅多にない。
0063デフォルトの名無しさん
2009/06/14(日) 12:45:09適当なIDEが無いんでデバッグがしずらくて1週間で投げたけど
0064デフォルトの名無しさん
2009/06/14(日) 14:02:28GUIプログラムだよ。
GUIプログラムって、よほどそのツールキットに精通していない限り
APIリファレンス見て、「こう設定したら期待する動作になるのかな?」
って試しながらプログラム書くことが多くて、その時は IPython という
強力なインタラクティブシェルを使って試しながらプログラムが書ける
Pythonは強い。
0065デフォルトの名無しさん
2009/06/14(日) 14:07:21TortoiseHgもどうやらPythonですな。
UNICODEまわりがまだメタクソだけど、かなりよい感じ
0066デフォルトの名無しさん
2009/06/14(日) 14:14:43Unicodeまわりがメタクソなのはhgの仕様だからなぁ。
ファイル名はバイト列ってフザケてるのかと。
bzrはコマンドライン引数でファイル名を渡す部分でWindowsでは
ファイル名をUnicodeにできなかったけど、次のbzr1.16では
コマンドライン引数をGetCommandLineW()を使って処理するように
なるからそれに対応するtortoisebzrもそれを使う方向に進んでる。
0067デフォルトの名無しさん
2009/06/14(日) 14:23:470068デフォルトの名無しさん
2009/06/14(日) 18:19:11行末に:付いたり付かなかったり意味不
0069デフォルトの名無しさん
2009/06/14(日) 19:20:30行末に : が付くのは、新しいブロックが始まる前(=インデントが増える
直前)で統一されていると思うけど?
0070デフォルトの名無しさん
2009/06/14(日) 23:24:24if i=0 then j=0 else j=1;
これくらい共通にしろっての
インデントも{}も==も:も、なんで無駄なものを付けたがるんだ?
0071デフォルトの名無しさん
2009/06/14(日) 23:27:43同様カス扱い。
0072デフォルトの名無しさん
2009/06/14(日) 23:28:410073デフォルトの名無しさん
2009/06/14(日) 23:56:09文法が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:010075デフォルトの名無しさん
2009/06/15(月) 02:36:590076デフォルトの名無しさん
2009/06/15(月) 03:45:310077デフォルトの名無しさん
2009/06/15(月) 03:57:0520 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懐かしさと同時に、読みにくさも思い出すなw
今のBASICの規格だとIF〜END IFやDO〜LOOPはサポートすることになってるし
WHILE〜WENDはその後のほとんどのBASICがサポートするようになったし、VBもEnd Ifを持ってるのもあって
今のBASICならGOTOで書いたりはしないだろうけど
0079デフォルトの名無しさん
2009/06/15(月) 06:34:21Pascal(Delphi)の then とか do だと思えば納得ですな。
しかし、Rubyとか慣れてると、なんでいらないところにいるのん?と思わんこともある
0080デフォルトの名無しさん
2009/06/15(月) 06:36:09Rubyっぽくしたら落ち着くのでは?
sub hoge
end
i.times(10)
next
if a == 0
b = 1
else
a = 0
end
0081デフォルトの名無しさん
2009/06/15(月) 06:38:33http://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:22private 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:06public 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:15Pythonは実用主義な言語だからそういうモノだと思うしかないな。
Javaのコードも実際は補完がバリバリ効くから、コードを打つのは苦痛では
ないだろうけど、コードの可読性でPythonに勝てる言語はそうそうないワケで。
0085デフォルトの名無しさん
2009/06/15(月) 07:25:28あのコロンのお陰で、エディタの補助にありつけたりするから要らないとは言えないなぁ
0086デフォルトの名無しさん
2009/06/15(月) 21:35:49未知のライブラリはコメント頼りになる。
静的型付けだと、引数の型からなんとなく仕様が想像できる場合がある。
0087デフォルトの名無しさん
2009/06/16(火) 00:17:400088デフォルトの名無しさん
2009/06/16(火) 00:18:200089デフォルトの名無しさん
2009/06/16(火) 01:04:11たまに変数名で分かるライブラリもあるけどな
0090デフォルトの名無しさん
2009/06/17(水) 02:02:49Javaのコード補完の効き方と、
Pythonのコードの補完の効き方はかなり近いっしょ。
自分で定義したクラスやメソッドなどのコメントまで
補完時に見れるという点まで含めて。
0091デフォルトの名無しさん
2009/06/20(土) 09:58:10インデントでやっているが、
ブロックの尻を明示する句や記号が無いから、
尻切れトンボみたいで気持ち悪い。
0092デフォルトの名無しさん
2009/06/20(土) 11:20:28end=1
と書いておいて、あとはブロックの終わりとか
目印代わりに「end」と書けばいい。
0093デフォルトの名無しさん
2009/06/20(土) 15:37:40しばらくLispやってたら帰って来たら慣れてた
0094デフォルトの名無しさん
2009/06/20(土) 15:50:42# ここまでブロック1
これで解決
0095デフォルトの名無しさん
2009/06/20(土) 16:08:44文法じゃないから、抜けててもチェックできないし、
書く人毎に違ってたら嫌じゃん。
0096デフォルトの名無しさん
2009/06/20(土) 16:43:04コード規約完全否定か
0097デフォルトの名無しさん
2009/06/20(土) 19:27:46組織とかグループごとに独自のコード規約があって、
ブロックの書き方がそれぞれ毎に違ってたら意味無いじゃん。
0098デフォルトの名無しさん
2009/06/20(土) 20:15:10Javaは殆ど規約一本化されてるし
PHPもフレームワーク毎に規約あるぞ
仮になくてもせめて社内で統一くらいしろよ
0099デフォルトの名無しさん
2009/06/20(土) 20:16:380100デフォルトの名無しさん
2009/06/20(土) 21:02:320101デフォルトの名無しさん
2009/06/20(土) 21:12:53公式規約はPEP8がある。
乱立はしていない。
Javaとかになれてる人には色々最初は気持ち悪いかもしれないけど、
使っているうちにそれがすごく合理的だと理解して慣れていくよ。
0102デフォルトの名無しさん
2009/06/20(土) 21:50:490103デフォルトの名無しさん
2009/06/20(土) 21:58:52いくら読みやすくてもみんな知らないから読めない
0104デフォルトの名無しさん
2009/06/20(土) 22:12:420105デフォルトの名無しさん
2009/06/20(土) 22:17:10Pythonを知らない人にも読みやすいコードが多いよ。
0106デフォルトの名無しさん
2009/06/20(土) 23:03:38RubyがJavaより生産効率いいってくらい基準があいまいな話だと思う
0107デフォルトの名無しさん
2009/06/20(土) 23:42:35つか個人的にRubyはJavaを意識する前にPythonよりも生産性を上げてから言うべきだろうに。
0108デフォルトの名無しさん
2009/06/20(土) 23:55:400109デフォルトの名無しさん
2009/06/21(日) 00:16:03Pythonはそれを極力避けているから、多少冗長になっても
誰が見てもわかりやすいコードになるのがウリじゃなかったっけ?
0110デフォルトの名無しさん
2009/06/21(日) 05:38:480111デフォルトの名無しさん
2009/06/21(日) 06:52:210112デフォルトの名無しさん
2009/06/21(日) 06:53:36replace(" ", " ")
0113112
2009/06/21(日) 06:54:19replace(" ", " ")
0114デフォルトの名無しさん
2009/06/21(日) 07:05:01それを言い出したらRubyなんて100.0くらいまで使えない希ガス。
0115デフォルトの名無しさん
2009/06/21(日) 13:49:43PEP 8 ってこれで全部?
http://oldriver.org/python/pep-0008j.html
ざっと見たところ、ブロックの終わりを示す語句(記号)についての記述がないようだけど……
0116デフォルトの名無しさん
2009/06/21(日) 13:55:07つまり、 end = 1 とかは使わないで普通にインデント解除するのが
標準コーディング規約
0117デフォルトの名無しさん
2009/06/21(日) 14:02:18コード書くときの自動補完は、言語が静的型付かどうかに大きく使い勝手が
左右される。RubyやPythonみたいな動的言語だと、変数名が任意の
オブジェクトへのラベルに過ぎないので、適切なメンバを
候補として提示することが本質的に不可能。
WindowsでもLinuxでも、クライアントもサーバもってことなら、
Mono 2.4 + MonoDevelop 2の出来がびっくりするくらいいいので、
(多言語・多プラットフォーム・REPL等。 ただし、GTK#で日本語は地雷)
1回さわってみるのをおすすめ。
商用サーバでもLinux + Mono + ASP.NETって増えてきてるしね。
0118デフォルトの名無しさん
2009/06/21(日) 14:10:15pass でいいんじゃなかった?
0119デフォルトの名無しさん
2009/06/21(日) 14:19:13読みやすさに明確な基準は持たせにくいからね。
でも、複数の言語を知っている人はやっぱりPythonは読みやすいと感じるよ。
dankogai も、
--
私ははっきり言って Python の哲学は好きになれない。でも Python のコードは好き。
「動く pseudocode 」としてのチャンピオンは、今や Python だ。Python はもっと知られ、
もっと使われて良い。 Pythonistas のみならず、 Perl Mongers のためにも、 Rubyists
のためにも。
--
とか言ってる。
0120デフォルトの名無しさん
2009/06/21(日) 14:59:04dankogaiを引き合いに出すのはやめてくれ
まるで「東スポにそう書いてあった」といわんばかりだ
0121デフォルトの名無しさん
2009/06/21(日) 17:13:480122デフォルトの名無しさん
2009/06/21(日) 17:48:17「それ」にある程度重きを置く場合、Rubyは使えない。到底。
0123デフォルトの名無しさん
2009/06/21(日) 18:20:14フランス語がわかる奴じゃないと意味解らんから無駄って話
0124デフォルトの名無しさん
2009/06/21(日) 18:52:050125デフォルトの名無しさん
2009/06/21(日) 19:16:310126デフォルトの名無しさん
2009/06/21(日) 19:23:10コード規約に従って書いた他の言語だって同じように見やすいんじゃないかと思うが
0127デフォルトの名無しさん
2009/06/21(日) 20:05:06インデントだけじゃないよ。
予約語が少ない、特殊変数が無い、ビルトイン関数・変数が少ない、
式を複雑に組み合わせないで文に分けている、etcetc...
0128デフォルトの名無しさん
2009/06/21(日) 20:09:56気持ち悪いことに変わりないと。
文法にないどころか、標準のコーディング規約にすら無いから、
end = 1 とか、コメントとか、結局、独自の工夫をするしかなから、
統一的にはできないと。
標準に従うなら、むしろ、ブロックを閉じちゃいけないから、
ブロックを閉じないと気持ち悪く感じる人は、
選択肢に入れられないと。
0129デフォルトの名無しさん
2009/06/21(日) 20:13:59ヴァカ?
0130デフォルトの名無しさん
2009/06/21(日) 20:20:240131デフォルトの名無しさん
2009/06/21(日) 20:23:12気持ち悪いことには変わりない。
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:56r'文字列'は随分とコードが読みやすくなるのでいいと思う。
0137デフォルトの名無しさん
2009/06/21(日) 20:31:09Pythonに見られるインデントによる制御構造の是非
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箇条書きの場合は、ネストを深くする毎に頭の記号を変えるとか、
番号の後ろに番号を加えるとかするから、違う感じがする。
数学のは、どういう事か分からないけど、
関数型言語(ML系、Haskell)とか、Prolog のは、気持ち悪いな。
LISP は、括弧だから(・∀・)イイ!
ブロックの閉じる記号がないから気持ち悪いという文脈で
LISP が出てくるのが、理解できなかった。
LISP は、全部きっちり括弧で括るから、 Python とは全然違うのに。
0140デフォルトの名無しさん
2009/06/21(日) 21:16:26ブロックだけの問題じゃない気がしてきた。
0141デフォルトの名無しさん
2009/06/21(日) 21:35:420142デフォルトの名無しさん
2009/06/21(日) 22:19:43しかし閉じ記号をブロックの中身に書いちゃうのは、それはそれで…
0143デフォルトの名無しさん
2009/06/21(日) 23:28:040144デフォルトの名無しさん
2009/06/21(日) 23:37:10map の前と後ろのどっちに ( つけるか毎回迷って困ったw
0145デフォルトの名無しさん
2009/06/22(月) 03:06:16何で関数引数が前なんだろう?
Rubyのブロック構文に慣れた身としては、
でかいlambdaを渡す時には非常に読みづらくなる気がするんだが・・・・・
0146デフォルトの名無しさん
2009/06/22(月) 03:42:58map は引数として任意の数のリストを取れるので、
必須の引数である関数は必然的に一番最初になります。
あとまあ、その結果として apply と相性がいいとか部分適用しやすいとか。
でかい lamabda を直接書くと読みづらいのは確かだけど、
逆に読みづらくなるほどでかいなら適当にくくりだすかなあ。
さもなければ dolist 使うか。
0147デフォルトの名無しさん
2009/06/22(月) 04:50:160148デフォルトの名無しさん
2009/06/22(月) 07:51:45最適化したものだからね。
0149デフォルトの名無しさん
2009/06/22(月) 20:44:070150デフォルトの名無しさん
2009/06/22(月) 20:54:320151デフォルトの名無しさん
2009/06/22(月) 21:02:07PyhtonのmapはRubyとは違ってLispのと同じような感じだが
0152デフォルトの名無しさん
2009/06/22(月) 21:09:070153デフォルトの名無しさん
2009/06/22(月) 21:36:37個人的にはC系の記法は数ある言語の中でも読みにくい部類に入ると思ってるんだが…
0154デフォルトの名無しさん
2009/06/22(月) 21:45:27英語は簡便でよみやすい
って言うようなもんだ
日本人に取っては難しい日本語の方が読みやすい
C系PGはC系言語が読みやすい
0155デフォルトの名無しさん
2009/06/22(月) 21:46:050156デフォルトの名無しさん
2009/06/22(月) 21:46:090157デフォルトの名無しさん
2009/06/22(月) 22:04:23Pythonは特に読みやすい言語ではないって話な
0158デフォルトの名無しさん
2009/06/22(月) 22:10:34んなこと唐突に根拠もなく言われても
0159デフォルトの名無しさん
2009/06/22(月) 22:48:33ハングルは世界一読みやすいって言われても、世界中の人はハングルなんて読めないの。
0160デフォルトの名無しさん
2009/06/22(月) 23:05:19読みやすいってのはいろんな言語を使ってきた人たちが
比較して言ってるんでしょ?
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:240165デフォルトの名無しさん
2009/06/23(火) 01:09:11実現できている言語だけどな。
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:24Python は高級な手続き指向言語じゃん。
Ruby に比べたら圧倒的に記号や特殊ルールが少ない分、
Pythonを知らない人でも推測しながら読むことが可能。
0170デフォルトの名無しさん
2009/06/23(火) 01:38:42全然いいとこどりでないぞ、むしろいろんな面で中途半端
0171デフォルトの名無しさん
2009/06/23(火) 01:49:04なるほど中途半端だ
0172デフォルトの名無しさん
2009/06/23(火) 01:58:08後ろに捨て台詞付け足したら、それはもうしっかり言っちゃってることになる。
0173デフォルトの名無しさん
2009/06/23(火) 02:46:03志は高いがシェアは低い
0174デフォルトの名無しさん
2009/06/23(火) 03:05:15日本で流行ってないだけだろ。
世界中では至る所で使われてるぞ。
0175デフォルトの名無しさん
2009/06/23(火) 04:07:400176デフォルトの名無しさん
2009/06/23(火) 06:30:21Ruby使っている人が自殺しそうな発言だな。
あれこそユーザー数は少ないしシェアはPythonと比べるのが可哀想なノリだが。
つかPython粘着ウゼェ。
アンチ専用スレあるんだからそっちで餌まいとけよ。
0177デフォルトの名無しさん
2009/06/23(火) 07:11:49MacやLinuxの大手ディストリなんかではPythonが最初から入ってたりして
「あんまり知らなくても、いつの間にか身近なところで使われてる」言語になってるんだよね。
0178デフォルトの名無しさん
2009/06/23(火) 07:27:27Pythonの方が恵まれた環境にあると感じるが。
Rubyのあのやる気の無さはなぁ。
とりあえずPythonがシェア低いなんて、モノを知らないにも限度がある発言だろうに。
0179デフォルトの名無しさん
2009/06/23(火) 09:50:30使われてないなんて誰も言ってない
シェアが低いだけ
0180デフォルトの名無しさん
2009/06/23(火) 09:52:20自分のまわりが世界なんですね、わかります。
0181デフォルトの名無しさん
2009/06/23(火) 11:29:450182デフォルトの名無しさん
2009/06/23(火) 16:11:510183デフォルトの名無しさん
2009/06/23(火) 23:02:43どうせ仕事じゃないんだろうし。
しかし、C/C++って読みやすいか?
つか、***pとか(p++)やらint (*p)()とか組み合わさったら、キツいノリがある言語だと感じるが。
パーな#defineされていると殺意を覚えるし。
Pythonの関数ポインタもかなりアレなノリがあるので微妙だが。
0184デフォルトの名無しさん
2009/06/23(火) 23:31:40そんな程度で殺意わくようでは、
perlとかまともに読めない、書けない人かね?
0185デフォルトの名無しさん
2009/06/23(火) 23:50:02個人が使い捨て殴り書きするには最適な言語だから、そこにケチつけるのはおかしいし。
C/C++は運が悪いと延々とメンテされる可能性が高いからアレなんだろ。
0186デフォルトの名無しさん
2009/06/24(水) 00:03:25Pythonは特に読みやすい言語じゃないというのが肝であって
他の言語で特別読みやすい言語があるって話じゃない
0187デフォルトの名無しさん
2009/06/24(水) 00:10:34さすがに、Pythonは特に読みやすい言語だし、コレが読みにくいと言うのは
プログラムをヤめた方がいい。
0188デフォルトの名無しさん
2009/06/24(水) 00:11:06その辺をある程度改良しようとしたらDになるんだろう
型変換はcast式、プリプロセッサは排除
0189デフォルトの名無しさん
2009/06/24(水) 00:54:41いっそそんな言語知らないとでもシラをきり通せた方がいいな。
0190デフォルトの名無しさん
2009/06/24(水) 02:18:40ただ、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馬鹿じゃねーの?
氏ねよ!!!!
長文ウザイ
0192デフォルトの名無しさん
2009/06/24(水) 02:44:08100個の1行レスは読むけど、1個の10行レスは嫌いな人種。要は根拠や例示を読めない人。
>>190なんて、>>191を書いて送信ボタン押してスレをリロードするより早く読めるのにね。
0193デフォルトの名無しさん
2009/06/24(水) 06:37:080194デフォルトの名無しさん
2009/06/24(水) 11:27:49とりあえず規格は文法そのものは読みやすいが
命令によって微妙に書き方が違うのと
大きなコード書くと引数が多くなりがちなせいで慣れるほど限界を感じると思う
設計からしてプログラミング初心者向けだから仕方ないけど
0195デフォルトの名無しさん
2009/06/24(水) 14:01:28いやだからね
いくら読みやすくても、その文法が特殊だとみんな馴染めないわけよ
だからC言語派生やBASIC派生の方が流行るわけでさ
英語は読みづらいから、もっと簡単な言語つくったので
みんな読めるはず、って言われても無理なのと同じ
0196デフォルトの名無しさん
2009/06/24(水) 14:50:14自然言語で例えるのは微妙
日本語分かっててもハングル全く分からんけど
java分かってればpython5割ぐらいはだいたいこんな感じだろってわかるべ
ちがうパラダイムの言語じゃなければ
プログラミング言語でもっと簡単な言語を作った、みんな読めるはず
たぶん本当にみんな読めるんじゃないか?
0197デフォルトの名無しさん
2009/06/24(水) 14:59:510198デフォルトの名無しさん
2009/06/24(水) 15:12:33コッチ・ミンナさん(AA略)か?
0199デフォルトの名無しさん
2009/06/24(水) 16:06:39>いやだからね
>いくら読みやすくても、その文法が特殊だとみんな馴染めないわけよ
HaskellやML系の文法ならまだしも、Python の文法になじめないとしたら、
さすがにそれは文法が特殊だからではなくておまえの頭が悪いだけ。
いくらなんでも、Pythonの文法が理解できないというのはおかしい。
0200デフォルトの名無しさん
2009/06/24(水) 16:07:530201デフォルトの名無しさん
2009/06/24(水) 16:24:33書き手しだい。
Pythonに限らずインデントが深くて波打ってるようなコードとかあるだろ?
そういうのは例えPythonでも読み辛いもんだよ。
0202デフォルトの名無しさん
2009/06/24(水) 16:31:47今はそういう話じゃない。
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・Perl
・PHP
・Ruby
・JavaScript
・(Python)
C風でない書式のLL:
・(Python)
0206デフォルトの名無しさん
2009/06/24(水) 17:41:32読みにくいじゃなくて、他の言語に比べて特別読みやすいわけじゃない、だろ。
読みやすいか読みにくいかは、その言語に精通しているかどうかが大きな肝で、
Pythonが特別読みやすい言語仕様になっているから読みやすいわけじゃない。
インデントが綺麗かどうか程度の差でしかないから、
コーティング規約に従って書かれたJavaやPHPと、
可読性は殆ど変わらん。
0207デフォルトの名無しさん
2009/06/24(水) 17:43:36class 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>読みにくいじゃなくて、他の言語に比べて特別読みやすいわけじゃない、だろ。
まず>>195を読もうぜ。
おまえの意見なんか問題にしてない。
0209デフォルトの名無しさん
2009/06/24(水) 18:44:25キーワードがちょっと違うだけじゃん
0210デフォルトの名無しさん
2009/06/24(水) 18:45:450211デフォルトの名無しさん
2009/06/24(水) 19:05:35キーワードはAlgol風味だが、
メソッドとかの命名はC系の影響を受けてると思う
to_sとか、アンダーバー記法でギリギリ意味が取れる程度に短くする
0212デフォルトの名無しさん
2009/06/24(水) 19:42:56余計なものが少なくてシンプルに見えるんだがなー。
0213デフォルトの名無しさん
2009/06/24(水) 19:56:390214デフォルトの名無しさん
2009/06/24(水) 19:59:28begin endの嵐でうへぇって感じだった
俺的にはシンプルのがいいわ
見分けづらいとも感じない
0215デフォルトの名無しさん
2009/06/24(水) 20:58:01Rubyも書き方次第で記号ごちゃごちゃになるけど
0216デフォルトの名無しさん
2009/06/24(水) 21:27:27Rubyもその流れを汲んでいる。
0217デフォルトの名無しさん
2009/06/24(水) 21:49:25解りやすいとコメントしていたな。
見分けづらい、と言う人は極少数だと思われ。
0218デフォルトの名無しさん
2009/06/24(水) 21:54:31している組織だとPythonのコードは読みやすく感じるだろうな。
それにPythonだとswitchやcase文がないところからしても、「覚えやすく、見やすく、シンプルに」って
哲学みたいなのがあるんだろ。
0219デフォルトの名無しさん
2009/06/24(水) 22:11:11括弧が、インデントが、begin-endがなんて、本質的な分かりにくさじゃないだろ
〜です、〜ゴザル、〜ニャとか、そのぐらいどうでもいい違いだよ
メモリ上でオブジェクトがどうなっているかとか、どうやってソートするのかとか、
スコープや数値、配列、文字列の扱いやライブラリの利用なんかの方が遥かに謎
0220デフォルトの名無しさん
2009/06/24(水) 22:13:13ifやforでインデントしない奴のソースなんか100人中98人までは読みたくねーよ
規約の遙か以前の問題で、またPythonのインデント強制とも次元が違いすぎる
switch〜caseなんかもifの構文糖衣だし、なんか的はずれすぎてワロタ
0221デフォルトの名無しさん
2009/06/24(水) 22:35:46ぶっちゃけ違う。
同じと思っているならソレは>>220のレベルが極限まで低い証拠。
そういう低レベルがPythonをどーこー言うのは的外れ。
0222デフォルトの名無しさん
2009/06/24(水) 22:44:36どう違うのを書かないと、>>221のレベル(笑)もわからんな
例えば、ifで代替できないシンプルなswitch文をあげてみるとか、
コンパイラ方面での話をしてみるとか
0223デフォルトの名無しさん
2009/06/24(水) 22:52:18後で指導するが、明らかにアレは見づらい
0224デフォルトの名無しさん
2009/06/24(水) 22:55:11Pythonはswitchなくてもほとんど困らないが、その理由が解らない>>220は
ちょっと頭が可哀想な人なんだと思う。
0225デフォルトの名無しさん
2009/06/24(水) 23:11:59pythonのは、OOだ!OOを使え!ルーク!って教えでしょ。
Perlは、ライブラリだ!ライブラリを使え!ルーク!って教えだし。
しかし、switchはifのシンタックスシュガーじゃないのか?
ifで代替できない場面が分からない。
見易さだけなら、ただのシンタックスシュガーだし。
0226デフォルトの名無しさん
2009/06/24(水) 23:20:20異教徒排除が徹底しすぎ
敵がJavaだけのRuby信者より質悪いわ
0227デフォルトの名無しさん
2009/06/24(水) 23:28:070228デフォルトの名無しさん
2009/06/24(水) 23:34:51C#みたいなものもある、とかいう点なのかな?
この場合は、switchってif〜else+gotoの糖衣構文じゃん、とか言ってみたらどんな反応が
来るんだろう。やっぱり同じ反応な気もするが。
あとはコンパイラの最適化でなにかあるのかな〜くらいしか思いつかないが、「違う」理由を、
純粋に勉強のためにせっかくだから誰か教えてくれないもんだろうか。気になる。
0229デフォルトの名無しさん
2009/06/25(木) 00:38:080230デフォルトの名無しさん
2009/06/25(木) 00:38:58xがRまたはSのときは処理bのみ
それ以外のときは処理cを行なうってコードとか?
0231デフォルトの名無しさん
2009/06/25(木) 00:49:16C言語は、コンパイラやコードによっては、テーブルを引いてジャンプするコードに変換される場合があるらしいが。
0232デフォルトの名無しさん
2009/06/25(木) 00:54:14switch( str )
{
0233デフォルトの名無しさん
2009/06/25(木) 00:59:53>>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:30elif s in 'RS': function_b()
0235デフォルトの名無しさん
2009/06/25(木) 01:12:210236デフォルトの名無しさん
2009/06/25(木) 01:22:22少ないから、メタクラスとか駆使した一部分のコードをのぞき、Pythonに
それほど精通しなくても大体のコードは読める。
その反対は(非モダンな)Perlで、初心者どころか中級者になっても
他人のコードが読めなかったり、下手すると昔の自分の書いたコードが
読めないなんてことが起こる。
0237233
2009/06/25(木) 01:27:14・・・ (´・ω・`)
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:59if str in "OPQ":
func_a()
if str in "OPQRS":
func_b()
0239デフォルトの名無しさん
2009/06/25(木) 02:18:15if str in 'OPQ':
func_a()
if str in 'OPQRS':
func_b()
else:
func_c()
0240デフォルトの名無しさん
2009/06/25(木) 02:24:050241デフォルトの名無しさん
2009/06/25(木) 02:29:000242デフォルトの名無しさん
2009/06/25(木) 02:33:08何となく分かるようで分からん。文字単位でのマッチング?
0243デフォルトの名無しさん
2009/06/25(木) 02:34:360244デフォルトの名無しさん
2009/06/25(木) 03:13:570245デフォルトの名無しさん
2009/06/25(木) 03:19:45インデントが統一されてるなら、読みやすくはあるんだろうなー
とは思う。 最終的には慣れだろうけど…
今は括弧がないとなんか読みにくい感じ。
do endもなんかなれないんだよなー
0246デフォルトの名無しさん
2009/06/25(木) 03:27:350247デフォルトの名無しさん
2009/06/25(木) 03:33:540248デフォルトの名無しさん
2009/06/25(木) 03:45:55行数は可読性に直結すると思う
(だからといって、無理やり圧縮するのが良いとも思わないが)
その点、インデントベースは末尾のブレースやendも削れるのが素晴らしい
でも何となく好きになれないというワガママw どうも宙ぶらりん感がある
あとはS式みたいに、末尾に畳んじゃう記法だが・・・・編集がしずらいような
エディタの支援があればイケるか?
0249デフォルトの名無しさん
2009/06/25(木) 03:51:540250デフォルトの名無しさん
2009/06/25(木) 03:56:25まあ、Windows標準のメモ帳で開発しる!
なんてことが無い限り大丈夫だとは思うが
0251デフォルトの名無しさん
2009/06/25(木) 04:42:53アメリカだとプロポーショナルでコーディングしてる人も結構いる印章だけど、彼らはどうしてるの?
0252デフォルトの名無しさん
2009/06/25(木) 08:03:14具体的に >>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 文が要らない。
0253230
2009/06/25(木) 09:11:22それぞれ何らかの値と結び付けられてる定数のつもりだったんだけど…
0254デフォルトの名無しさん
2009/06/25(木) 09:26:55if 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:070256デフォルトの名無しさん
2009/06/25(木) 12:00:590257デフォルトの名無しさん
2009/06/25(木) 12:03:59それは、他のでも変わらん
0258デフォルトの名無しさん
2009/06/25(木) 12:49:550259デフォルトの名無しさん
2009/06/25(木) 16:44:580260デフォルトの名無しさん
2009/06/25(木) 18:49:200261デフォルトの名無しさん
2009/06/25(木) 19:48:21それよりは100万倍まし。
0262デフォルトの名無しさん
2009/06/25(木) 19:51:05とりあえず何も書かなくても動く。
動きを変えたいところだけ、書く。
0263デフォルトの名無しさん
2009/06/25(木) 21:22:07それならまさにRailsの思想じゃないかと
0264デフォルトの名無しさん
2009/06/26(金) 00:35:17中身をいじる必要も機会も、Java APIやJavaのframe workと同様に無いわけだしなw
もちろん、上書きは自由だし可能だしなあ
0265デフォルトの名無しさん
2009/06/26(金) 00:40:22覚えなきゃならない事が沢山あるって事に違いはない。
フレームワークどころか、多機能な道具は、皆、
使った事が無ければ覚える事が多いってだけだ。
あとは、その道具の体系化の仕方が、
使おうとする個人に合っているかどうかというだけの事だ。
極めて、普遍的で当たり前の事であって、
わざわざ、キーボードを打つ手間を掛ける価値のない事だ。
0266デフォルトの名無しさん
2009/06/26(金) 00:49:47> 使おうとする個人に合っているかどうかというだけ
が、普遍的で当たり前でキーボードを打つ手間を掛ける(、ましてやサーバ準備して
実行環境を整えるなんて!)価値のない事と言い切るが、それは本当にそうなのか。
足りていれば問題ないが、足りなくなったときにそれでは足るまい(←自己撞着)
まあ何でもいいが、それなりに使って評価してる人間がいるときに使わない人間の
評価なんて糞だと思うな。
0267デフォルトの名無しさん
2009/06/26(金) 01:07:49そんな君にはWicketが向いている
0268デフォルトの名無しさん
2009/06/26(金) 03:10:55Railsはあまたあるフレームワークの中でも暗黙の了解が半端なく多い。少ないコードで組めるっていうのは、それに頼ってるだけ。
0269デフォルトの名無しさん
2009/06/26(金) 03:20:55標準ライブラリも拡張ライブラリも全部予約語扱いで予約語一覧だけで何ページにも渡る言語とか
そーゆーのもあるけどな
0270デフォルトの名無しさん
2009/06/26(金) 03:25:300271デフォルトの名無しさん
2009/06/26(金) 04:18:250272デフォルトの名無しさん
2009/06/26(金) 11:52:060273デフォルトの名無しさん
2009/06/26(金) 11:55:42上の方のレスで、気持ち悪いと書いてしまってすまんかった。
0274デフォルトの名無しさん
2009/06/26(金) 12:33:21ちょっと触ってみてるけど、
現時点では良いやら悪いやら分からん言語、という感想
狙いは合ってると思う
次に注目される言語が何かは分からんが、たぶんマルチパラダイムだろうし、
静的型付けの利点を残したまま記述量を減らすなら型推論は妥当
C#とかもその方向ではある
ただXMLリテラルは個人的に疑問。XMLは言語レベルで密結合させるほど絶対的なものか?
あと、背反しがちなオブジェクト指向と関数型を調和させようとして
言語が複雑奇怪になりかけてる(?)のも気になる。まあ仕方ない感はあるけど
0275デフォルトの名無しさん
2009/06/26(金) 14:42:21>あと、背反しがちなオブジェクト指向と関数型を調和させようとして
そうなの?なぜ背反になるのかだれか教えて。
0276デフォルトの名無しさん
2009/06/26(金) 14:43:32難解な表現はやめてもうちょっと簡単にいって。
じゃないとこのスレでは立ち入り禁止します。
0277デフォルトの名無しさん
2009/06/26(金) 15:09:120278デフォルトの名無しさん
2009/06/26(金) 15:36:40Rubyにも無いみたい。
0279デフォルトの名無しさん
2009/06/26(金) 15:44:14スコープ無しはプログラミングしたことないわ
0280デフォルトの名無しさん
2009/06/26(金) 16:11:37Ruby のブロック(は他の言語のブロックと違うけど)には、ブロックローカルが
あるけどね。
0281デフォルトの名無しさん
2009/06/26(金) 16:15:32自分は >>274 じゃないが、
関数型だと変数は一度設定したら、書き換えない物であるのに対して、
オブジェクト指向だと、変数はドンドン書き換える物だから、
相容れないという事では?
0282デフォルトの名無しさん
2009/06/26(金) 16:32:36ブロックスコープもそうだが
ローカル関数 (メソッドではない) に頼ってもメソッドは長くなる。
そういう書き方が嫌なのはOOへの拘りが強いせいでもあるんじゃないか。
0283デフォルトの名無しさん
2009/06/26(金) 17:04:21その関数(やらメソッド)でしか使わない処理を、その関数(ry と同じ層に
おくのはなんかイヤらしい感じ。
0284デフォルトの名無しさん
2009/06/26(金) 17:06:080285デフォルトの名無しさん
2009/06/26(金) 17:10:14for や while の中だけで有効な変数を作りたいってこと?
>>283 の言ってる、関数でしか使わない変数って、Pythonでも関数の中の
ローカル変数になるよね?
0286デフォルトの名無しさん
2009/06/26(金) 17:18:37ブロックはブロックなんだけど。
for や while じゃない、ただ単にブロックだけのブロックも
あるわけで。
0287デフォルトの名無しさん
2009/06/26(金) 17:38:16Pythonには無いよね>ブロックだけのスコープ
まぁ、関数より小さいスコープ作るよりも、関数自体を
小さくする方が良いんじゃないかな。
0288デフォルトの名無しさん
2009/06/26(金) 18:19:01>関数型だと変数は一度設定したら、書き換えない物であるのに対して、
そんなことはない。関数型言語のうちで、そういうのもあるけど、たいがいのはそこまで厳しくない。
Lisp, Scheme, OCaml, ...
Haskellみたいなほうが少数派じゃね?
0289デフォルトの名無しさん
2009/06/26(金) 18:40:51サブクラスを作るよりも、クラスの階層構造を小さくする方が良い
って思ったことはないのか?
0290デフォルトの名無しさん
2009/06/26(金) 18:43:01>Pythonにブロックスコープ無いけど、これは利点なの?欠点なの?
>Rubyにも無いみたい。
一般的に、インタプリタではないと思う。これがあるのはコンパイル型言語の特徴じゃないかな。
もしインタプリタでブロックスコープを実現しようとすると、ブロックに入るたびに
新しい変数テーブルを用意し、ブロックから抜けるとそれを破棄しないといけない。
さすがにこれは、インタプリタでは性能がでない。
コンパイル型であればこれはコンパイル時に行なわれるから、実行時のペナルティはなしですむ。
インタプリタではあきらめろっつーことだな。ブロックスコープは、あったほうがうれしいけど、なくてもそうは困らない機能だから。
0291デフォルトの名無しさん
2009/06/26(金) 19:34:01システムファイルを変更すね前はapacheの起動はうまくいったのに、何をやっても
上のエラーが出てくる、誰か助けて〜〜〜〜〜〜〜〜!
0292デフォルトの名無しさん
2009/06/26(金) 19:43:07変数だけじゃなくて、関数内関数も定義したいってこと。
0293デフォルトの名無しさん
2009/06/26(金) 19:50:39まずはログファイルを探して読んでみよう
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:080296デフォルトの名無しさん
2009/06/26(金) 22:36:05for (int i = 0; 〜) の i のスコープがfor文内になった。
0297デフォルトの名無しさん
2009/06/26(金) 22:41:04確か一部の組み込み関数とかで $a と $b を使うんだっけ?
0298デフォルトの名無しさん
2009/06/26(金) 23:00:52少なくとも Python なら関数内関数作れるよ。
decorator なんて関数の中の関数の中で関数を作ったりする。
0299デフォルトの名無しさん
2009/06/26(金) 23:04:47今はさすがにオブジェクト指向で書くけどね。
set(12);
print get();
exit;
{
my $common;
sub set{
my ($value) = @_;
$common = $value;
}
sub get{
return $common;
}
}
0300デフォルトの名無しさん
2009/06/26(金) 23:08:33for文とかforeach文のブロックにスコープがあるのはいいような気がしないでもないけど
ブロックにスコープがあることの必要性がよく分からぬ
0301デフォルトの名無しさん
2009/06/26(金) 23:35:44{
my @a = qw(FizzBuzz - - Fizz - Buzz Fizz - - Fizz Buzz - Fizz - -);
$fizzbuzz = sub {……};
}
今はさすがにオブジェクト指向で書くけどねw
0302デフォルトの名無しさん
2009/06/27(土) 00:02:18余り詳しくないけど……。
Lisp, Scheme は、一般的に広い意味で関数型言語と言われているけど、
本当の関数型言語(純粋関数型言語)ではないと聞いたと思う。
OCaml は、 ML の方言にオブジェクト指向機能を追加した言語で、
純粋な関数型言語ではなさそう。
0303デフォルトの名無しさん
2009/06/27(土) 00:05:06やろうと思えば、ジェネレータ使ったりするかも知れないがw
0304デフォルトの名無しさん
2009/06/27(土) 00:13:22OOPでも状態を変更するとは限らないから、やはり
OOPと関数型が相いれないとは言えないよ
例えばフィールドへの代入もコンストラクタでしか行わないとかいくらでもやりようはある
0305デフォルトの名無しさん
2009/06/27(土) 00:21:01そんなことこのスレの住人のほとんどが知ってることだと思うけど
何が言いたいの?
0306デフォルトの名無しさん
2009/06/27(土) 00:24:09静的な関数型言語だと
OOPは関数型によくある型システムの利点の一部を削り取ってしまう
0307デフォルトの名無しさん
2009/06/27(土) 00:31:50そんなに突っかからなくてもいいじゃないか。
うゎーん(泣)
0308デフォルトの名無しさん
2009/06/27(土) 00:44:210309デフォルトの名無しさん
2009/06/27(土) 01:51:20必要か否かでいってたら、たいていの便利なものは無くてもなんとかなるになっちゃうよ。
可読性を損なわないなら便利なものは使いたいな。
0310デフォルトの名無しさん
2009/06/28(日) 20:59:42あれもLL?DSLではあるみたいだが(どっちかというと、ゲーム特化(BASIC風))
0311デフォルトの名無しさん
2009/06/28(日) 21:01:080312デフォルトの名無しさん
2009/06/28(日) 21:10:38DSLだという見解には同意する
小規模なゲーム・グラフィカルなアプリの作成に特化している
ここで話題に上るような、いわゆるLLではないと思う
0313デフォルトの名無しさん
2009/06/28(日) 23:44:47>必要か否かでいってたら、たいていの便利なものは無くてもなんとかなるになっちゃうよ。
うん、そうだよ。それでいいじゃん。
ブロックスコープは、あれば便利だけど、なくてすごく困るほどのものでもない。
すくなくともインタプリタにはペナルティが大きそうだから向かないと思う。
>可読性を損なわないなら便利なものは使いたいな。
便利でもペナルティが大きければ導入されない。
便利さのかげでなにも犠牲にならないのならいいけど、犠牲になるものがあるなら
あとはトレードオフでしょ。
0314デフォルトの名無しさん
2009/06/29(月) 01:25:090315デフォルトの名無しさん
2009/06/29(月) 05:45:18だから>>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>便利でもペナルティが大きければ導入されない。
ところが、Perlにはあって、それでああいう
パフォーマンスがでているのだが。
ペナルティとかおおげさにいうほどのことは
ないんでは。
0318デフォルトの名無しさん
2009/06/29(月) 13:06:05つ 配列のリファレンス、デリファレンス
0319デフォルトの名無しさん
2009/06/29(月) 13:28:44Perlはmyやlocalで変数宣言をしているじゃないか。
Rubyとかだとそれがないから、ブロックスコープを実現しようとすると、
ブロックごとにチェックをいれないといけない。
じゃあ変数宣言のないRubyがウンコなんじゃないかということなら、否定はしない。
0320デフォルトの名無しさん
2009/06/29(月) 14:01:58Rubyと同じパターンで「欧米で評価」→「日本で再評価」みたいな予感はする。
0321デフォルトの名無しさん
2009/06/29(月) 19:08:34そもそも、変数宣言がなかったら、
ブロックスコープはどのように
表現すればいいの?
0322デフォルトの名無しさん
2009/06/29(月) 19:30:37ブロックスコープは、無名関数をその場で1回だけ呼ぶのと同じ
0323デフォルトの名無しさん
2009/06/29(月) 20:52:500324デフォルトの名無しさん
2009/06/29(月) 21:19:11必要に応じて変数名の前か後ろにスコープを記述すればいいんじゃない?
0325デフォルトの名無しさん
2009/06/29(月) 21:40:22よくわからんので擬似コードでも書いてみればいいじゃない
0326デフォルトの名無しさん
2009/06/29(月) 21:48:02まず、$form_data{$name} に配列のリファレンスを入れたいようだ、っていうのはわかるよね。
んで、その配列に$valueを追加する、っていう処理だとおもう。
そのさい、配列のリファレンスならデリファレンスする必要があるし、ただの配列なら単純にリスト
で追加してからリファレンスとして格納。
んで、5行目のこれ
> $form_data{$name} = [$form_data{$name} } , $value ];
typoってないか?
そして上記前提を覆す8行目
$form_data{$name} = $value;
このカオス。$valueは何者よw
結論から言うと、このコードは読めなくていいよ。 おれは読めないwww
おれが勘違いしてるのかな。そうだといいな。
0327326
2009/06/29(月) 21:53:40最初に値(単純にスカラー期待)が与えられたときは、普通にスカラー。
もいちど飛んできたときは、配列のリファレンスとして格納。それだけだね。
どうせなら最初から配列のリファレンスにするよね、っていう固定観念があった。
0328デフォルトの名無しさん
2009/06/29(月) 22:43:18擬似っつーかPowerShellだけど
> $hoge = 100
> & { $hoge = 111; "global: $global:hoge local: $hoge" }
global: 100 local: 111
みたいな感じ
まあブロックの中にまたブロックを〜みたいな話になると別の方法になるけども
0329デフォルトの名無しさん
2009/06/30(火) 01:41:54どうでもいいけどその言い回しおもしろいな
0330デフォルトの名無しさん
2009/06/30(火) 05:17:51グローバルというかブロックの外に変数があるとそれを使い、ないとブロック内でのローカルになる。
たまにハマるんだよなー。
↓こういうの
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その場合、timesより前に i = nil でも i = 0 でも良いから代入が要るんよね
何回かやると慣れるがw
0332デフォルトの名無しさん
2009/07/01(水) 17:08:23宣言だけじゃ駄目なんだっけ?
0333デフォルトの名無しさん
2009/07/01(水) 18:31:14最初の代入が宣言の代わりになるから、スコープ入る前に何か値を入れればスコープがそこに決まる
0334デフォルトの名無しさん
2009/07/01(水) 18:34:03というか宣言に相当するような構文が無い。代入が宣言を兼ねるというか
0335デフォルトの名無しさん
2009/07/01(水) 18:36:470336デフォルトの名無しさん
2009/07/01(水) 18:40:140337デフォルトの名無しさん
2009/07/01(水) 19:57:20変数名被るほど長いメソッドにせず、素直にprivateメソッド作る
0338デフォルトの名無しさん
2009/07/01(水) 20:21:02また後付け前提ですか
0339デフォルトの名無しさん
2009/07/01(水) 20:54:23「それぐらいしか無い」とでも解釈すれば良いじゃない
具体的な挙動は相手にお任せするのがOOP流さね
0340デフォルトの名無しさん
2009/07/01(水) 21:27:21二行目が全く>>337etcとつながらないな
意味不明
0341デフォルトの名無しさん
2009/07/01(水) 22:09:06ん?二行目はすぐ上の行としか繋がってないよ?
同じ文章でも各自で解釈は違いうる、ってポリモーフィズムっぽいよなあ、と
0342デフォルトの名無しさん
2009/07/01(水) 22:15:530343デフォルトの名無しさん
2009/07/01(水) 22:16:580344デフォルトの名無しさん
2009/07/01(水) 23:03:27privateメソッドにしてそのメソッドから外に出したら、(そのオブジェクトの)他のメソッドからも呼べちゃうんじゃない?
0345ぼくのかんがえたさいきょうの
2009/07/02(木) 01:14:18そんなもんだろ
0346デフォルトの名無しさん
2009/07/03(金) 12:25:29最新過ぎて第三者ライブラリの対応が追いついてない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:360348デフォルトの名無しさん
2009/07/03(金) 13:09:040349デフォルトの名無しさん
2009/07/03(金) 13:38:280350デフォルトの名無しさん
2009/07/03(金) 13:40:21x = "hoge"
y = [x for x in range(10)]
print(x)
Python 2.x なら xは9で、 3.xなら"hoge"のまま。
内包表記の中だけの名前になってる。
0351デフォルトの名無しさん
2009/07/03(金) 13:46:300352デフォルトの名無しさん
2009/07/03(金) 13:59:02Rubyって変数のスコープないの?
大昔に作られたLispですら変数のスコープがあるのに…
だめだめじゃん
0353デフォルトの名無しさん
2009/07/03(金) 14:12:010354デフォルトの名無しさん
2009/07/03(金) 14:25:43>>346を煽るのに「スコープがない」と言ってしまうような人はこのスレに来ちゃだめでちゅよ
0355デフォルトの名無しさん
2009/07/03(金) 14:29:31> ブロックの外でiを使って、ブロックに入って、別のiを使うっていう。
スコープだろうが
0356デフォルトの名無しさん
2009/07/03(金) 15:05:25ブロック内に変数が出現したとき、その時点で可視かどうかで
可視 → その変数を使う(つまり、書き換える)
不可視→ 新規変数(ブロックローカル)として定義する
という動作になってる
>>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:310359デフォルトの名無しさん
2009/07/03(金) 15:27:44変数は使う場所多いからいちいち宣言するのめんどいじゃん? というような趣旨のことをどっかで聞いた覚えがある
0360デフォルトの名無しさん
2009/07/03(金) 15:30:50「ローカル変数かインスタンスメソッドかよくわからないがとにかく返り値を返す何かであるhoge」
というのができなくなるじゃないかー
0361デフォルトの名無しさん
2009/07/03(金) 15:35:220362デフォルトの名無しさん
2009/07/03(金) 17:31:50ライブラリ名の宣言というのがよく分からんが
メソッドやブロックの引数はRubyの場合、代入だろ?
モジュールやクラスの定義は
Module、Classのインスタンスを作成し定数に代入
さらに最後の式の結果を返す文
メソッド定義だけは少し毛色が違う気がするね
あれはProcのインスタンス作成とかしないだろうし
0363デフォルトの名無しさん
2009/07/03(金) 18:47:03変数のスコープが無い って、言ってることがよくわからんな。
ローカル変数もインスタンス変数もクラス変数もスコープはちゃんとあるし。
ブロックがスコープを作らないってならPythonもJavascriptも一緒だし。
0364デフォルトの名無しさん
2009/07/03(金) 18:53:390365デフォルトの名無しさん
2009/07/03(金) 18:54:27ブロック開始時の文脈でブロック内の変数の新規性をチェックしてるに過ぎない
0366デフォルトの名無しさん
2009/07/03(金) 19:03:09class 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:550369デフォルトの名無しさん
2009/07/03(金) 22:11:48単純に、initializeとdefとは違うスコープになってて
呼び出し先が違うだけって事じゃないの?
0370デフォルトの名無しさん
2009/07/05(日) 04:29:55遅すぎだろ。jkw
0371デフォルトの名無しさん
2009/07/06(月) 00:08:20結局大事なのは使えるかだろ?
0372デフォルトの名無しさん
2009/07/06(月) 00:37:190373デフォルトの名無しさん
2009/07/06(月) 21:34:430374デフォルトの名無しさん
2009/07/06(月) 21:35:260375デフォルトの名無しさん
2009/07/07(火) 01:33:20(検索しろ!と言う。俺かっこいいべ!昔はmanだったけど今はGoogleだべ。)
0376デフォルトの名無しさん
2009/07/07(火) 07:30:190377デフォルトの名無しさん
2009/07/07(火) 08:50:13googleに使われてるよ
0378デフォルトの名無しさん
2009/07/07(火) 09:02:34で?
0379デフォルトの名無しさん
2009/07/07(火) 09:04:06Pythonが一番
0380デフォルトの名無しさん
2009/07/07(火) 09:30:200381デフォルトの名無しさん
2009/07/07(火) 09:32:12たぶんね
0382デフォルトの名無しさん
2009/07/07(火) 09:44:180383デフォルトの名無しさん
2009/07/07(火) 09:48:50>>380みたいに単純な人はいいオモチャ
0384デフォルトの名無しさん
2009/07/07(火) 10:48:480385デフォルトの名無しさん
2009/07/07(火) 12:51:34ルビ厨のほうがひどいだろ。jk
0386デフォルトの名無しさん
2009/07/07(火) 13:15:51弾やmatzも
0387デフォルトの名無しさん
2009/07/07(火) 13:21:28>>379がageてるのに気づいて後出しじゃんけんですね。わかります。
0388デフォルトの名無しさん
2009/07/07(火) 14:05:450389デフォルトの名無しさん
2009/07/07(火) 14:16:030390デフォルトの名無しさん
2009/07/07(火) 15:31:140391デフォルトの名無しさん
2009/07/07(火) 17:06:57ダメです。
0392デフォルトの名無しさん
2009/07/07(火) 18:00:16テキトーなページを開いたら「配列の配列」について書かれていて
for $i ループ内には
$AoA[$i] = @array; # 間違い
$AoA[$i] = [ @array ]; # 正しい
と書かれていた。
…俺は読むのをやめた。
0393デフォルトの名無しさん
2009/07/07(火) 18:46:27それのどこに嫌要素が?
超わかりやすいだろ。
0394デフォルトの名無しさん
2009/07/07(火) 18:54:26何が問題なん?
0395デフォルトの名無しさん
2009/07/07(火) 19:29:050396デフォルトの名無しさん
2009/07/07(火) 19:33:280397デフォルトの名無しさん
2009/07/07(火) 19:36:380398デフォルトの名無しさん
2009/07/07(火) 20:00:100399デフォルトの名無しさん
2009/07/07(火) 23:04:160400デフォルトの名無しさん
2009/07/07(火) 23:09:03たどり着けなかったんだと。
まあどの言語でも、一つずつ覚えてちょっとずつ進歩していけばいいと思うよ。
0401デフォルトの名無しさん
2009/07/08(水) 03:33:31392の例はあからさまに直感的じゃないと思うよ。
0402デフォルトの名無しさん
2009/07/08(水) 03:44:530403デフォルトの名無しさん
2009/07/08(水) 04:41:20もっと初心者向けび本にしとけ。
というか、リファレンスとかポインタとか理解出来ない人間は職業プログラマーの素養がないので、PHPで日曜プログラマーでよい。
0404デフォルトの名無しさん
2009/07/08(水) 05:00:290405デフォルトの名無しさん
2009/07/08(水) 05:04:00俺だってCやJavaやPythonやRubyでリファレンスなら扱えるさ
Perlのは同じ記述がコンテキストで意味変わり過ぎてちと無理だわ
0406デフォルトの名無しさん
2009/07/08(水) 05:05:55$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それ、エラー出ないか?
ちなみに同じページに
$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コンテキストが問題を分かりにくくしてると思う
0410デフォルトの名無しさん
2009/07/08(水) 07:52:09っていう言語仕様を知ってるかどうかだけのことなんだろうけどな
0411デフォルトの名無しさん
2009/07/08(水) 07:56:550412デフォルトの名無しさん
2009/07/08(水) 08:06:57直感は個人によって違うわけだから、そんなに直感的にやりたいなら自分で言語作ればいいんじゃないかと
つプログラミング言語を作る 前橋 和弥 (著)
http://www.amazon.co.jp/dp/4774138959/
0413デフォルトの名無しさん
2009/07/08(水) 10:08:450414デフォルトの名無しさん
2009/07/08(水) 10:48:19なんで未だにこれを擁護出来る人が居るのか不思議でならない。
0415デフォルトの名無しさん
2009/07/08(水) 10:54:06そして今更捨てられることができない認知的不協和。
0416デフォルトの名無しさん
2009/07/08(水) 11:42:12クラス・メソッドの関係にこだわらないperlの方がむしろ癖がなくて良い
0417デフォルトの名無しさん
2009/07/08(水) 11:49:27まともな関数型言語触った事無い奴が、そんな寝ぼけた事言ってるんだろうな。
0418デフォルトの名無しさん
2009/07/08(水) 11:51:040419デフォルトの名無しさん
2009/07/08(水) 11:52:210420デフォルトの名無しさん
2009/07/08(水) 12:07:540421デフォルトの名無しさん
2009/07/08(水) 12:30:210422デフォルトの名無しさん
2009/07/08(水) 12:31:36Javaに慣れてしまった俺としては、Rubyが一番素直に見える。
次はPython、でPHPの順かな。
Perlはやっぱり複雑怪奇だ。
配列をオブジェクトとして扱えた方が、array.lengthみたいな書き方が出来て便利だと思う。
>>418
確かに。
最初のうちは無名関数の使いどころがよくわからなかったけど、
JavaScriptを使っているうちになんとなく身についた。
0423デフォルトの名無しさん
2009/07/08(水) 12:38:37JavaScriptで覚えた奴は、副作用大前提のプロシージャっぽいのを書く。
0424デフォルトの名無しさん
2009/07/08(水) 12:56:06いつ見ても、Rubyの文法は糞過ぎる。
なんで未だにこれを擁護出来る人が居るのか不思議でならない。
と、何にでも適用可能だな。w
0425デフォルトの名無しさん
2009/07/08(水) 13:02:03副作用大前提のおかげで、ジェネレータが発明されたんだぜ
0426デフォルトの名無しさん
2009/07/08(水) 13:08:200427デフォルトの名無しさん
2009/07/08(水) 13:13:000428デフォルトの名無しさん
2009/07/08(水) 13:26:55Java はどのへん?
C# は?
0429デフォルトの名無しさん
2009/07/08(水) 14:53:480430デフォルトの名無しさん
2009/07/08(水) 15:05:58C#は知らん
0431デフォルトの名無しさん
2009/07/08(水) 15:06:150432430
2009/07/08(水) 15:15:260433デフォルトの名無しさん
2009/07/08(水) 15:59:44だめだこりゃ。
0434デフォルトの名無しさん
2009/07/08(水) 16:01:49そりゃほとんどの人間の悪口は脳内の言語イメージに対して言っているものだから仕方ない
そういう馬鹿がよりつかなくてよかったと思うしか
0435デフォルトの名無しさん
2009/07/08(水) 19:10:09sub 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モダンに書くとしたら。
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:520439デフォルトの名無しさん
2009/07/08(水) 23:30:45認めてるらしい。
0440デフォルトの名無しさん
2009/07/08(水) 23:56:12いい加減に間違った進化だったって、さっさと淘汰されないかな
0441デフォルトの名無しさん
2009/07/09(木) 00:04:300442436
2009/07/09(木) 00:34:14まあ、モダンでなければ非モダンだわな。>>435そのままだし。
>>436でもAny::Mooseぐらい使えとか、no Mooseしとけとか突っ込まれそうな気がする。
>>441
直系はPHPとRuby。既に別物。
0443デフォルトの名無しさん
2009/07/09(木) 00:40:49JPerlとIronPerlがあるよ
0444デフォルトの名無しさん
2009/07/09(木) 00:47:370445デフォルトの名無しさん
2009/07/09(木) 00:55:53ポリシーの無い付け足しをしまくりでワケワカメ状態。
0446デフォルトの名無しさん
2009/07/09(木) 04:27:040447デフォルトの名無しさん
2009/07/09(木) 04:39:450448デフォルトの名無しさん
2009/07/09(木) 08:50:51Rubyの文を見ると吐き気がする。Pythonの仕様の方がカワイイぐらいだ
いい加減に間違った進化だったって、さっさと淘汰されないかな
0449デフォルトの名無しさん
2009/07/09(木) 09:44:49オリジナルのようには的を射ていないのが大半で、ミジメな抵抗に終わる。
0450デフォルトの名無しさん
2009/07/09(木) 10:20:230451デフォルトの名無しさん
2009/07/09(木) 11:31:33ATOKまじお勧め
0452デフォルトの名無しさん
2009/07/09(木) 11:33:030453デフォルトの名無しさん
2009/07/09(木) 12:10:450454デフォルトの名無しさん
2009/07/09(木) 12:41:120455デフォルトの名無しさん
2009/07/09(木) 12:41:300456デフォルトの名無しさん
2009/07/09(木) 13:20:050457デフォルトの名無しさん
2009/07/09(木) 19:48:510458デフォルトの名無しさん
2009/07/09(木) 19:51:07ATOK のインターネット経由の辞書もたいしたことないですね
0459デフォルトの名無しさん
2009/07/09(木) 19:54:250460デフォルトの名無しさん
2009/07/09(木) 20:21:230461デフォルトの名無しさん
2009/07/09(木) 21:00:190462デフォルトの名無しさん
2009/07/09(木) 21:01:45http://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:540466デフォルトの名無しさん
2009/07/09(木) 22:54:170467デフォルトの名無しさん
2009/07/10(金) 17:25:420468デフォルトの名無しさん
2009/07/10(金) 17:27:340469デフォルトの名無しさん
2009/07/10(金) 21:44:380470デフォルトの名無しさん
2009/07/10(金) 21:46:42このスレ的には、RPGツクールに内蔵されてるRubyってことになるか。
0471デフォルトの名無しさん
2009/07/10(金) 21:47:380472デフォルトの名無しさん
2009/07/10(金) 21:52:16ググったらサポート1件3万とかふざけた金額が出たんだけどそんなムズいの?
0473デフォルトの名無しさん
2009/07/10(金) 21:53:370474デフォルトの名無しさん
2009/07/10(金) 21:55:10ってかサポートってこんなかかるのに何でプログラマは死にそうなの?
0475デフォルトの名無しさん
2009/07/10(金) 21:58:55その人たちの給料やらなにやらを考えたらたいして金が残らんから。
0476デフォルトの名無しさん
2009/07/10(金) 22:00:51過労死させるような最低の企業が多い癖に不景気だし
0477デフォルトの名無しさん
2009/07/10(金) 22:07:45基本料金などが不要な「トライアルプラン」では,1インシデント3万円で問い合わせに回答。
月額基本料金10万円の「ベーシックプラン」は2インシデントまで無料で,以降1インシデントごとに1万円。
「プレミアムプラン」は月額基本料金15万円で4インシデントまで無料。以降1インシデントごとに5000 円となる
割引になってないしww
0478デフォルトの名無しさん
2009/07/10(金) 22:09:130479デフォルトの名無しさん
2009/07/10(金) 22:10:14電話取り次ぎとマニュアルで解決できない問題の技術者への引継までは
派遣スタッフがやってるんだろうね
かなりいろんな段階でピンはねがあるかと
0480デフォルトの名無しさん
2009/07/10(金) 22:11:010481デフォルトの名無しさん
2009/07/10(金) 22:17:41採用情報持ってきてやったぞ
0482デフォルトの名無しさん
2009/07/10(金) 23:00:17資格で要求されている経験と、
「学歴、前職規模、業界不問、24〜35歳位まで」ってのが乖離しすぎて無理ありすぎ。
0483デフォルトの名無しさん
2009/07/10(金) 23:03:330484デフォルトの名無しさん
2009/07/11(土) 11:11:410485デフォルトの名無しさん
2009/07/12(日) 15:05:37それで生計が立つならいいんじゃないか?
0486デフォルトの名無しさん
2009/07/12(日) 15:54:19いままで5,6人のスクリプターと接してきたけど3人がそういう奴しってる。
しかも全員SOHO。やっぱ人と会話してないとアレになっていくのかなあ…
0487デフォルトの名無しさん
2009/07/12(日) 15:54:430488デフォルトの名無しさん
2009/07/12(日) 15:55:24ただキチガイと当たっただけじゃね?
0489デフォルトの名無しさん
2009/07/12(日) 15:57:160490デフォルトの名無しさん
2009/07/12(日) 15:59:320491デフォルトの名無しさん
2009/07/12(日) 16:18:45パチンコの影響か?
0492デフォルトの名無しさん
2009/07/12(日) 16:22:050493デフォルトの名無しさん
2009/07/12(日) 17:28:30お前それ、奇跡みたいな確率だぞw
一般的な現象として語るとキョトンとされるだけだろうが、
初めから「嘘みたいなホントの話」として語ればウケるかも。
0494デフォルトの名無しさん
2009/07/12(日) 21:04:55全然バトルをロワイヤルしてないじゃん
0495デフォルトの名無しさん
2009/07/12(日) 21:08:060496デフォルトの名無しさん
2009/07/12(日) 21:12:050497デフォルトの名無しさん
2009/07/12(日) 21:18:340498デフォルトの名無しさん
2009/07/12(日) 21:19:380499デフォルトの名無しさん
2009/07/12(日) 21:34:280500デフォルトの名無しさん
2009/07/12(日) 21:40:16流石にPowerとかになると全然違うが
0501デフォルトの名無しさん
2009/07/12(日) 21:44:230502デフォルトの名無しさん
2009/07/12(日) 22:02:09しかし>>496はどうとでもとれるので、本人的には、
「俺は言語なんかこだわらないぜ、なんでも書けるよフフン」
って意味で書いただけかも知れんが。
0503デフォルトの名無しさん
2009/07/12(日) 22:07:170504デフォルトの名無しさん
2009/07/12(日) 22:07:500505デフォルトの名無しさん
2009/07/12(日) 22:17:33rubyやpythonのソースコードが読めるようになります
また、rubyやpythonを好きで使っている、頭のいい人達の
言ってることが理解しやすくなるかも知れません
0506デフォルトの名無しさん
2009/07/12(日) 22:18:55オブジェクト指向
0507デフォルトの名無しさん
2009/07/12(日) 22:40:32Perl,PHP,Ruby,Pythonってくくりならわからんでもないが。
0508デフォルトの名無しさん
2009/07/12(日) 22:41:400509デフォルトの名無しさん
2009/07/12(日) 22:45:410510デフォルトの名無しさん
2009/07/12(日) 22:53:410511デフォルトの名無しさん
2009/07/12(日) 22:56:230512デフォルトの名無しさん
2009/07/12(日) 22:58:540513デフォルトの名無しさん
2009/07/12(日) 23:00:220514デフォルトの名無しさん
2009/07/12(日) 23:01:11残念ながら、俺はお前が想像してる以上にキモいぞ。
0515デフォルトの名無しさん
2009/07/12(日) 23:10:260516デフォルトの名無しさん
2009/07/12(日) 23:46:34バイトみたいなもんだよな。
履歴に書いても、あぁちょっと開発をかじってんのねくらいの経験にしか扱われねーし
0517デフォルトの名無しさん
2009/07/13(月) 00:55:230518デフォルトの名無しさん
2009/07/13(月) 03:57:290519デフォルトの名無しさん
2009/07/13(月) 04:01:29LL言語って、優劣じゃなく好みの問題じゃね?
0520デフォルトの名無しさん
2009/07/13(月) 04:21:51PHP 素人から圧倒的な支持
Python 一般人〜変人
Ruby 変人
0521デフォルトの名無しさん
2009/07/13(月) 04:29:11PHP 田中要次
Python ばんばひろふみ
Ruby もっとがんばりましょう
0522デフォルトの名無しさん
2009/07/13(月) 12:33:220523デフォルトの名無しさん
2009/07/13(月) 13:46:47Perl:素人、変人
PHP:素人〜一般人
Python:一般人〜変人
Ruby:一般人、信者
こうじゃね?
0524デフォルトの名無しさん
2009/07/13(月) 14:38:10マジで違い分かってんのかよw
0525デフォルトの名無しさん
2009/07/13(月) 14:56:34その反応は痛いなぁ。
お前だって今、ひらがなしか使えない奴に「かんじをつかえばかっこいいとおもってるおまえにわろた」
って言われたら呆気に取られるだろ? そういうレベルのこと言ってると自覚したほうがいいw
0526デフォルトの名無しさん
2009/07/13(月) 15:01:340527デフォルトの名無しさん
2009/07/13(月) 15:02:540528デフォルトの名無しさん
2009/07/13(月) 15:50:17まぁ、言語として比べること時点でおかしいんだが。
0529デフォルトの名無しさん
2009/07/13(月) 16:48:08ただ、例外処理についてはもっとやりやすくして欲しかった
0530デフォルトの名無しさん
2009/07/13(月) 17:08:16まだJavaScriptのほうがまし。
0531デフォルトの名無しさん
2009/07/13(月) 17:11:090532デフォルトの名無しさん
2009/07/13(月) 17:19:340533デフォルトの名無しさん
2009/07/13(月) 18:04:030534デフォルトの名無しさん
2009/07/13(月) 18:17:30・コンストラクタ内で関数定義したときのthisの扱い
・連想配列とオブジェクトの関係
0535デフォルトの名無しさん
2009/07/13(月) 18:17:58そりゃ信者同士の小競り合いが絶えないわけだ。
0536デフォルトの名無しさん
2009/07/13(月) 18:19:21ブラウザ・バージョンでの挙動統一
0537デフォルトの名無しさん
2009/07/13(月) 18:19:510538デフォルトの名無しさん
2009/07/13(月) 18:36:15配列関連
変数スコープ
文の区切り
0539デフォルトの名無しさん
2009/07/13(月) 18:39:24Perlの言語仕様は破綻していない。
破綻していると思うのは、訓練が足りないせい。
0540デフォルトの名無しさん
2009/07/13(月) 18:58:440541デフォルトの名無しさん
2009/07/13(月) 20:23:22Rubyのdef〜end にしても、Pythonのselfやインデントにしても
Javaなんかの洗脳も強烈だし。
Car car = new Car();
なんだこれ
0542デフォルトの名無しさん
2009/07/13(月) 22:05:330543デフォルトの名無しさん
2009/07/13(月) 22:11:56失敗してるけど。
0544デフォルトの名無しさん
2009/07/13(月) 22:18:21推測可能なもの。
Perlの特殊変数をはじめとする記号の数々は推測不可能。
phpは関数名や動作が推測不可能。
0545デフォルトの名無しさん
2009/07/13(月) 22:35:50だとすると、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関数が多すぎだし、関数名が長すぎる。
array_push($array, ..)みたいな書き方よりも、
$array->push(..)の方がすっきりするでしょ。
0550デフォルトの名無しさん
2009/07/14(火) 00:00:380551デフォルトの名無しさん
2009/07/14(火) 00:14:52この場合は順序が本質ではないか
オブジェクト指向脳であれば、というかデータ構造を操作するという視点に立てば
「arrayにpushしたい」と考えるのが自然だと思う
0552デフォルトの名無しさん
2009/07/14(火) 00:25:100553デフォルトの名無しさん
2009/07/14(火) 00:25:41それは単に思考が日本語だからではないか
0554デフォルトの名無しさん
2009/07/14(火) 00:51:22だからいいんじゃねーの?
0555デフォルトの名無しさん
2009/07/14(火) 00:55:370556デフォルトの名無しさん
2009/07/14(火) 01:04:30スクリプトにバグがあったときのIEのメッセージをなんとかして欲しい
もしかして今の新しいIEでは改善されてるのかな
0557デフォルトの名無しさん
2009/07/14(火) 01:54:35わざわざ日本語変換なんぞしてられるか
0558デフォルトの名無しさん
2009/07/14(火) 01:58:170559デフォルトの名無しさん
2009/07/14(火) 02:01:38俺様専用言語でも作っとけ。
0560デフォルトの名無しさん
2009/07/14(火) 08:23:54>記号の意味なんてのは覚えりゃいい話だよ。
いやいや、Perlは$_をつかって記号すら省略してしまうじゃん
あんなのワンライナーを優先しすぎたクソ仕様
しかも@var=(1,2,3)の要素を参照するのが$var[i]とかウンコすぎる
@var[i]でいいだろ、ややこしいんだよ
>推測の可・不可なんて、覚えるまでの短期間だけのオハナシ。(馬鹿以外には)本質的ではない。
まさに洗脳された信者
0561デフォルトの名無しさん
2009/07/14(火) 08:46:01俺の婆ちゃんが一人暮らししてた頃、市販品の蓋一つ、取っ手一つとっても
手が不自由な婆ちゃんにとっては性質次第で色んな不便があることをよく言ってて、
ああそうなのかぁ、と気付かされることが多かった。
0562デフォルトの名無しさん
2009/07/14(火) 11:20:050563デフォルトの名無しさん
2009/07/14(火) 11:37:080564デフォルトの名無しさん
2009/07/14(火) 12:34:11まだまだ訓練が足りない。
>$_をつかって記号すら省略してしまう
省略するかしないかはプログラマの自由。
言語仕様だけが原因ではない。
>$var[i]
@var[i]で参照してもよい。
そうするとスライスになるが、違いが
問題になることはあんまりないだろう。
0565デフォルトの名無しさん
2009/07/14(火) 13:25:09dankogai 乙
0566デフォルトの名無しさん
2009/07/14(火) 13:29:220567デフォルトの名無しさん
2009/07/14(火) 13:33:35まだまだ実践経験が足りない。
0568デフォルトの名無しさん
2009/07/14(火) 13:46:59本当の意味で一人もいないと思うんだけどどう思う?
だから>>567みたいな煽り食らうと
「そうか・・・(´・ω・`)」ってなる。
0569デフォルトの名無しさん
2009/07/14(火) 13:54:33すみません。土台にすら上がってませんよね。ごめんなさいごめんなさい。
0570デフォルトの名無しさん
2009/07/14(火) 13:56:13他はなんか気に食わない。最近はいないけど、perl信者もかなりうざかったしw
0571デフォルトの名無しさん
2009/07/14(火) 14:04:57記号が嫌なら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:180576デフォルトの名無しさん
2009/07/14(火) 16:42:550577デフォルトの名無しさん
2009/07/14(火) 16:49:03今・・・は・・・?ゴクリ
0578デフォルトの名無しさん
2009/07/14(火) 17:24:57一貫性重視なら最初からPython使えばいい。
Rubyは、Matzが書きたいように書けるのが第一で、一貫性なんて
対して重視されていない。
0579デフォルトの名無しさん
2009/07/14(火) 17:28:44単なる不統一は修正すればいいだけ。
その修正をまったく受け入れないのであれば問題だけど、
まぁまぁ直している。
TOMOYO Linux で受け入れてくれるための交渉術、
とあったけど、Ruby には交渉下手な上から目線が多くて残念。
0580デフォルトの名無しさん
2009/07/14(火) 17:33:29御意
0581デフォルトの名無しさん
2009/07/14(火) 18:49:49print @hoge, hoge, $hoge;
0582デフォルトの名無しさん
2009/07/14(火) 23:37:12>記号が嫌なら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:350585デフォルトの名無しさん
2009/07/14(火) 23:54:15この子が言ってるのは単に「俺は嫌い、俺は苦手」ってレベル。
あらゆる言語をあっという間に修得してしまう、優秀な俺とは関係ない次元で吠えてる。
0586デフォルトの名無しさん
2009/07/14(火) 23:59:080587デフォルトの名無しさん
2009/07/15(水) 00:02:410588デフォルトの名無しさん
2009/07/15(水) 00:09:040589デフォルトの名無しさん
2009/07/15(水) 00:33:460590デフォルトの名無しさん
2009/07/15(水) 00:37:28言葉通りの意味なら、コンテキストによって返値を変えることができるってことだろ。
my $ret = hoge(); #=> '2つあったよ!'
my @ret = hoge(); #=> ('hoge', 'page')
ただ、あんまり便利に使う状況ってのに出くわしたことはないような気もするw
0591デフォルトの名無しさん
2009/07/15(水) 00:37:310592デフォルトの名無しさん
2009/07/15(水) 00:43:30ぱっと覚えられない奴がどうしようもない馬鹿なだけだものな。
0593デフォルトの名無しさん
2009/07/15(水) 00:44:13@aho=(1,2,@baka,4,5)
print @aho
0594デフォルトの名無しさん
2009/07/15(水) 00:56:37そういや配列はスカラーコンテキストだと要素数だな
しかし、混乱の元になった記憶しかないw
普通にlen(ary)なりsize(ary)なり用意すれば良かったのにとしか思わないんだよなあ
0595デフォルトの名無しさん
2009/07/15(水) 01:01:560596デフォルトの名無しさん
2009/07/15(水) 01:03:03Pythonはきちんと書くときにつかう筆
rubyはうんこふく時の紙
0597デフォルトの名無しさん
2009/07/15(水) 01:38:470598571
2009/07/15(水) 01:45:46> @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:16http://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:10list = [ 'a', 'b', 'c', 'd', 'e', 'f' ]
list[2:5]
0602デフォルトの名無しさん
2009/07/15(水) 03:29:430603571
2009/07/15(水) 03:31:08Perl
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:420606デフォルトの名無しさん
2009/07/15(水) 03:52:240607デフォルトの名無しさん
2009/07/15(水) 04:01:140608デフォルトの名無しさん
2009/07/15(水) 04:11:35読みにくさとバグの温床になるプログラムの例を
各PPPRでおながいします↓
0609デフォルトの名無しさん
2009/07/15(水) 05:52:49ハンガリアンとは根本的に違うというか、むしろ相反するような気がするが
0610デフォルトの名無しさん
2009/07/15(水) 06:35:400611デフォルトの名無しさん
2009/07/15(水) 07:25:14@tmp_A, @tmp_B みたいな名前の使い方が多いから、
それがメリットだとしても機会は少ないな。
0612デフォルトの名無しさん
2009/07/15(水) 07:43:400613デフォルトの名無しさん
2009/07/15(水) 08:01:49@tmpは配列だろ?scalar(@tmp) はスカラだが。
ちなみにscalar(%tmp)は楽しいことになる。Perl大好き。
0614デフォルトの名無しさん
2009/07/15(水) 08:14:22PPPRってなんぞ
0615デフォルトの名無しさん
2009/07/15(水) 08:16:53@a # 配列
$a[index] # 配列の要素 = スカラ
@a[indices] # 配列のスライス = リスト
%a # ハッシュ
$a{key} # ハッシュの要素 = スカラ
@a{keys} # ハッシュのスライス = リスト
この美しさわかんねえかなあ…
リストをスカラ評価すると長さになってしまうのは、
たしかに気持ち悪いがそれとこれは別の話だと思う。
0616デフォルトの名無しさん
2009/07/15(水) 08:22:39もうなんとか用の言語って時代じゃないだろ。もう役目を終えたよ、Perlは。
0617デフォルトの名無しさん
2009/07/15(水) 08:23:32それは別の話ってのに異存ないが、まあ今はコンテキストの話なので、
その気持ち悪さが問題になってるんじゃね?
0618デフォルトの名無しさん
2009/07/15(水) 08:31:400619デフォルトの名無しさん
2009/07/15(水) 08:44:380620デフォルトの名無しさん
2009/07/15(水) 08:50:10>@a{keys} # ハッシュのスライス = リスト
これが有効に使えるときなんかあるの?
0621デフォルトの名無しさん
2009/07/15(水) 08:53:09DSLがどうこうという時代なんだが?
0622デフォルトの名無しさん
2009/07/15(水) 08:53:15>$や@を使うのは、ハンガリアン記法要らずで、分かりやすく便利。
使うデータが文字列と配列とハッシュだけだった時代ならそれでもいいけど
オブジェクト指向が一般的になった現在において、この仕様はクソだよ。
それがわからないPerlerが不憫でしょうがない。
0623デフォルトの名無しさん
2009/07/15(水) 08:59:08しょうがないだろ。アヒルのように最初に覚えた言語をry
0624デフォルトの名無しさん
2009/07/15(水) 09:49:36話がぜんぜん違う方向に進んだね。
もとの話は$var[]が配列の要素を返し、@var[..]は配列の範囲を返すのが、いけてないしわかりにくという話だったんだけど。
別にこんなことで@varと$varを使い分ける必要なんかなく、どっちも@var[]でできるようにすれば
誰にもわかりやすいのに、Perlはそうなってないから変だよねという話が、
いつのまになんで範囲指定の方法の話になっちゃったんだろう。
0625デフォルトの名無しさん
2009/07/15(水) 10:49:19配列の要素をスカラーとして取り出す方法と、
そのスカラー1個だけを要素とする配列を作る(スライスする)方法は
別々に用意した方が言語仕様的にはいいんじゃないのか?
0626デフォルトの名無しさん
2009/07/15(水) 10:51:58a = range(5) # [0,1,2,3,4]
b = a[3] # 3
c = a[3:4] # [3]
0627デフォルトの名無しさん
2009/07/15(水) 11:00:220628デフォルトの名無しさん
2009/07/15(水) 11:29:15ハッシュに代入するとき役に立つ。
0629デフォルトの名無しさん
2009/07/15(水) 11:39:31ハッシュから複数の値を取り出すときに使う
0630デフォルトの名無しさん
2009/07/15(水) 11:41:12a = (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:17kwsk
0632デフォルトの名無しさん
2009/07/15(水) 13:20:370633デフォルトの名無しさん
2009/07/15(水) 13:41:07なにそれこわい
0634デフォルトの名無しさん
2009/07/15(水) 14:47:450635デフォルトの名無しさん
2009/07/15(水) 15:17:31@names = ("Alica", "Bob", "Chris")
@ages{@names} = (28, 31, 72);
$ages{"Alice"} == 28
0636デフォルトの名無しさん
2009/07/15(水) 15:31:540637デフォルトの名無しさん
2009/07/15(水) 15:51:53@ages{@names} = (28, 31, 72);
print %ages;
@ages{'Chris','Bob'} = (34, 37);
print %ages;
Bob31Chris72Alica28Bob37Chris34Alica28
0638デフォルトの名無しさん
2009/07/15(水) 18:30:03なるほど。勉強になった。
機会はなかなかなさそうだけど、
使い道はちゃんとあるんだな。
0639デフォルトの名無しさん
2009/07/15(水) 20:46:22どんなにオブジェクト指向を強くしたところで、プリミティブ型や配列型のないプログラミングなどあり得ない。
スカラ変数とリファレンスを分けるシジルがあればより便利だということに過ぎない。何もないよりずっといい。
>>610の$tmp_mapは%tmp_mapの間違いだが、これはPerlであればコンパイルエラーを起こすので、未然にバグを防げる。
0640デフォルトの名無しさん
2009/07/15(水) 21:02:440641デフォルトの名無しさん
2009/07/15(水) 21:04:260642デフォルトの名無しさん
2009/07/15(水) 22:26:05「さすがPerl、記述性が高い」と感じるのがperler。
「滅多に書かない記述の為に文法が歪められてる」と感じるのが一般人。
0643デフォルトの名無しさん
2009/07/15(水) 22:32:01Pythonistaは、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%h = ('hoge'=>1, 'page'=>2, 'moga'=>3, 'guge'=>4);
@a = @h{grep {/ge/} keys(%h)};
まさにそういう事をしやすくするためにPerlは柔軟なリストなわけで。
まあ、高尚な原理や理論より便利(っぽ)さ上等
0646デフォルトの名無しさん
2009/07/16(木) 00:09:14結果もハッシュで欲しいならこうかな
my %h2;
my @keys;
@h2{@keys} = @h{@keys=grep{/ge/}keys(%h)};
まあなんだ。面白いんだが、こういったことをやりすぎると
読みにくくなるのは否めないという
0647デフォルトの名無しさん
2009/07/16(木) 00:13:350648デフォルトの名無しさん
2009/07/16(木) 00:27:08がtrueで
"0x0A" == 10
がfalseになるスクリプト言語はありだと思う
0649デフォルトの名無しさん
2009/07/16(木) 00:29:07これが「コンテキスト」の上を行く「場当たり」って奴か
勉強になるな〜
0650デフォルトの名無しさん
2009/07/16(木) 00:34:05でも、PHPのこのいい加減な解釈ってずいぶんお世話になってるなぁ自分
0651デフォルトの名無しさん
2009/07/16(木) 00:44:460652デフォルトの名無しさん
2009/07/16(木) 00:48:25問題は常にそう解釈されるのでは無く
PHP自身がどのようにコンパイルされたか
という環境によって動作が異なることに在る
0653デフォルトの名無しさん
2009/07/16(木) 00:48:400654デフォルトの名無しさん
2009/07/16(木) 01:14:51だろうなって思うw
0655デフォルトの名無しさん
2009/07/16(木) 01:34:370656デフォルトの名無しさん
2009/07/16(木) 01:39:240657デフォルトの名無しさん
2009/07/16(木) 02:15:49似たようなことができるようになってるだけで、
根本的には概念が違う気がする。
リストの2〜3番目に、10要素を代入するとかできるからスライスってのが便利なわけで。
0658デフォルトの名無しさん
2009/07/16(木) 03:34:55>どんなにオブジェクト指向を強くしたところで、プリミティブ型や配列型のないプログラミングなどあり得ない。
>スカラ変数とリファレンスを分けるシジルがあればより便利だということに過ぎない。何もないよりずっといい。
何をいいたいのかまるでわからない。プリミティブ型や配列型を排除しろとは誰も言ってないし、うーん。
@tmpがリスト、%tmpがハッシュ、で、それ以外のデータ構造を使ったら$tmp
。
べつに、ぜんぶ$tmpで統一してくれていいんだけど。
>>>610の$tmp_mapは%tmp_mapの間違いだが、これはPerlであればコンパイルエラーを起こすので、未然にバグを防げる。
これもなにがどうエラーになるのか不明なので、解説よろしく。
つーか、もちっとわかりやすい文章書こうぜ。Perlerだから仕方ないけど。
0659デフォルトの名無しさん
2009/07/16(木) 03:38:100660デフォルトの名無しさん
2009/07/16(木) 04:49:21部分集合の操作が近いかもね。
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:270662デフォルトの名無しさん
2009/07/16(木) 11:51:27my %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:29color.update( (k,v in [('R', 63), ('G', 127), ('B', 255)]) )
の方がPythonicなんじゃない?
0664デフォルトの名無しさん
2009/07/16(木) 13:13:220665デフォルトの名無しさん
2009/07/16(木) 13:18:120666デフォルトの名無しさん
2009/07/16(木) 13:18:40print map(lambda k: color[k], ('R', 'G', 'B'))
0667デフォルトの名無しさん
2009/07/16(木) 13:19:420668デフォルトの名無しさん
2009/07/16(木) 13:20:580669デフォルトの名無しさん
2009/07/16(木) 13:22:300670デフォルトの名無しさん
2009/07/16(木) 16:13:18OLだった頃、会社で働いていた日本に超詳しいベルギー人が言ったことに納得してた。
日本文化は身内受けの凝り性文化だそう。
外国文化に負けまいとしているのではなく、
世に意図的にインパクトを与えようとしているのでもなく、
今ここにいる同じ価値観を共有する仲間からの喝采を浴びたいと考える。
その結果、同じものを志す者同士の「これすごいだろ、おもしろいだろ」合戦が始まり、
そこで生み出される物が自然と研ぎ澄まされていく。
でもその競争は、敵対的なものではなく、お互いを尊敬しあいながら、静かに深く進行していく。
そしてある日、偶然目撃した異文化出身の人間(外国人)から、
それがすごいものであることを知らされる。
ほとんどの日本人はその日が来るまで、自分たちが作り上げた物がすごいものとは知らない。
もろもろの伝統文化、芸能、電化製品、アニメ、他、みんな同じパターンで世界に広まっていった。
だから、日本がここまで発展してきたのも必然的なものだし、
この精神が衰えない限り、これからも日本は誰に頼まれることもなく、
知らないうちに勝手に世界にインパクトを与え続けていくだろうと。
0671デフォルトの名無しさん
2009/07/16(木) 16:17:34http://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:190673デフォルトの名無しさん
2009/07/16(木) 16:20:500674デフォルトの名無しさん
2009/07/16(木) 16:24:340675デフォルトの名無しさん
2009/07/16(木) 16:33:540676デフォルトの名無しさん
2009/07/16(木) 19:58:260677デフォルトの名無しさん
2009/07/16(木) 20:54:33Few 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>$ ruby
>bash: ruby: command not found
0679デフォルトの名無しさん
2009/07/16(木) 23:40:57/´fト、_{ル{,ィ'eラ , タ人 Ты думаешь, из меня,
/' ヾ|宀| {´,)⌒`/ |<ヽトiゝ я не могу сказать.
,゙ / )ヽ iLレ u' | | ヾlトハ〉
|/_/ ハ !ニ⊇ '/:} V:::::ヽ Я не знаю,
// 二二二7'T'' /u' __ /:::::::/`ヽ что случилось.
0680デフォルトの名無しさん
2009/07/16(木) 23:42:170681デフォルトの名無しさん
2009/07/16(木) 23:57:57それはツッコミかw
0682デフォルトの名無しさん
2009/07/17(金) 18:56:020683デフォルトの名無しさん
2009/07/17(金) 19:32:59@ls_ref.each{|x|
0684デフォルトの名無しさん
2009/07/17(金) 19:45:18OLだった頃、会社で働いていた日本に超詳しいベルギー人が言ったことに納得してた。
日本文化は身内受けの凝り性文化だそう。
外国文化に負けまいとしているのではなく、
世に意図的にインパクトを与えようとしているのでもなく、
今ここにいる同じ価値観を共有する仲間からの喝采を浴びたいと考える。
その結果、同じものを志す者同士の「これすごいだろ、おもしろいだろ」合戦が始まり、
そこで生み出される物が自然と研ぎ澄まされていく。
でもその競争は、敵対的なものではなく、お互いを尊敬しあいながら、静かに深く進行していく。
そしてある日、偶然目撃した異文化出身の人間(外国人)から、
それがすごいものであることを知らされる。
ほとんどの日本人はその日が来るまで、自分たちが作り上げた物がすごいものとは知らない。
もろもろの伝統文化、芸能、電化製品、アニメ、他、みんな同じパターンで世界に広まっていった。
だから、日本がここまで発展してきたのも必然的なものだし、
この精神が衰えない限り、これからも日本は誰に頼まれることもなく、
知らないうちに勝手に世界にインパクトを与え続けていくだろうと。
0685デフォルトの名無しさん
2009/07/17(金) 23:26:08どう考えても褒めすぎ
今の日本は屑しかいない
0686デフォルトの名無しさん
2009/07/18(土) 02:50:20> >>639
> >どんなにオブジェクト指向を強くしたところで、プリミティブ型や配列型のないプログラミングなどあり得ない。
> >スカラ変数とリファレンスを分けるシジルがあればより便利だということに過ぎない。何もないよりずっといい。
>
> 何をいいたいのかまるでわからない。プリミティブ型や配列型を排除しろとは誰も言ってないし、うーん。
> @tmpがリスト、%tmpがハッシュ、で、それ以外のデータ構造を使ったら$tmp
> 。
> べつに、ぜんぶ$tmpで統一してくれていいんだけど。
何を言ってるわけ?
$tmpに統一って、$tmpしかないことは機能性の後退だろ。
Perlがシジルを使ってデータ型を表すこと、それはハンガリアン記法という広く普及してる変数命名法を言語レベルで保証しているということ。
> >>>610の$tmp_mapは%tmp_mapの間違いだが、これはPerlであればコンパイルエラーを起こすので、未然にバグを防げる。
> これもなにがどうエラーになるのか不明なので、解説よろしく。
お前、Perl知らないだろ?
> つーか、もちっとわかりやすい文章書こうぜ。Perlerだから仕方ないけど。
>
お前がアホだからというか、Perlを知らないからだろ?
0687デフォルトの名無しさん
2009/07/18(土) 02:55:470688デフォルトの名無しさん
2009/07/18(土) 03:10:11型の決定は実行時に遅延させたいなあ
・・・・というわけなのかは知らんが、$やら@はスコープの表記に使っちゃった
0689デフォルトの名無しさん
2009/07/18(土) 03:47:280690デフォルトの名無しさん
2009/07/18(土) 09:11:430691デフォルトの名無しさん
2009/07/18(土) 09:29:21問題なのは関数渡しがまんどくさい
0692デフォルトの名無しさん
2009/07/18(土) 09:45:480693デフォルトの名無しさん
2009/07/18(土) 10:25:160694デフォルトの名無しさん
2009/07/18(土) 10:39:05$xxx = mb_decode_mimeheader($subj);
$xxx = mb_convert_encoding($subj,"SJIS");
echo $xxx;
↓
Subject: [?]?????????????
になっちゃうんです。
どうしたらうまく変換できますか?
0695デフォルトの名無しさん
2009/07/18(土) 10:39:100696デフォルトの名無しさん
2009/07/18(土) 11:34:06引数ないときに()を省略できるかどうかはまた別だけど、俺はあった方がいい。
0697デフォルトの名無しさん
2009/07/18(土) 12:23:18つかRubyの場合、フィールド参照もメソッド呼び出しだから
必ず括弧付けるとなると、なんだか読みにくくなりそう
0698デフォルトの名無しさん
2009/07/18(土) 12:27:010699デフォルトの名無しさん
2009/07/18(土) 12:37:46滅多にお目にかからないが、Methodクラスってのはある
ファーストクラスかと言われると怪しい
0700デフォルトの名無しさん
2009/07/18(土) 12:44:15でもそれ自体はメソッドじゃないお
0701デフォルトの名無しさん
2009/07/18(土) 12:50:26なる事が多くて、結局格好付ける事になりがち。
で、括弧が多くなってくると、「不統一なのもかっこわるいから、
全部付けとくか」ってなる。
0702デフォルトの名無しさん
2009/07/18(土) 12:54:420703デフォルトの名無しさん
2009/07/18(土) 12:56:39改行が文末として扱われる言語ならば、行を継続する場合に明示する。
例えばVBは行末に _ を書くし、Rubyでも行末にバックスラッシュを書くと文末として扱われない。
Pascalなんかは引数が無い場合には括弧を書かないが
Cなどと同じくセミコロンを置くことで文末を示す言語なので、複数行でも何ら表記は変わらない。
0704デフォルトの名無しさん
2009/07/18(土) 13:02:54そういうことか。
しかし、数学では普通関数をf(x)ってカタチに書くから、
カッコがないってのがなんか気持ち悪い。
0705デフォルトの名無しさん
2009/07/18(土) 13:08:25レシーバselfかつ引数なしのときは俺は()つけて書く。
func()みたいに。
もし()省略できなかったら、
require('library')
include('module')
みたいになって逆にキモくなるんじゃない?
まあ括弧省略可でうれしいのは,print,putsだろうけどね。
0706デフォルトの名無しさん
2009/07/18(土) 13:17:33Perlみたく @ary = sort keys %h みたいな書き方は認められてないよ。
Rubyにはsort関数もkeys関数も無いが、もしあったなら
ary = sort(keys(h)) と書かないとエラーになるはず。
ただブロックなどで「最後の式の結果を返す」となってる場面でも省略できちゃうから
そこは個人的にはちょっと何かないかなぁと思うけど。
0707デフォルトの名無しさん
2009/07/18(土) 13:37:05foo = p p 1 とか普通にできるけど?
ちょっと前までは、括弧が将来必要になるかも、ってwarningが出てたけど、
> 「文法を簡単にしようと思ってたんだけど、RubyConfで『括弧の省略を駆使していかに
> 英語っぽいコードを書くか』という内容でまるまる1セッション使った発表があって、諦めた」
という奴だね。
0708デフォルトの名無しさん
2009/07/18(土) 13:38:52文系:省略派
理系:非省略派
ってことだな。
0709デフォルトの名無しさん
2009/07/18(土) 13:39:58ま ぢ か
じゃあ俺の使ってるバージョン古いんだな…
0710デフォルトの名無しさん
2009/07/18(土) 13:41:56ガチガチの文系で理系にコンプレックスのある漏れが非省略派なのでうそ臭いです
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:500713デフォルトの名無しさん
2009/07/18(土) 14:12:53割り切ればいいのでは?
0714デフォルトの名無しさん
2009/07/18(土) 14:16:260715デフォルトの名無しさん
2009/07/18(土) 14:17:070716デフォルトの名無しさん
2009/07/18(土) 14:24:06puts( "hello ruby" )
0717デフォルトの名無しさん
2009/07/18(土) 14:26:53CやJavaの延長でRuby書いてる人との対立な気がする。
0718デフォルトの名無しさん
2009/07/18(土) 14:31:32"hello ruby"
だけでいいじゃない
0719デフォルトの名無しさん
2009/07/18(土) 14:38:39結果的にはそう見えるんだが、その中身を考えるとその表現は違う気がする
まず関数にバインドされた変数/フィールドがあって
括弧を付けるのは、その関数に対して「呼び出し」を試みる操作だからね
括弧をつけると、変数/フィールドにバインドされてるのが
・関数なら、関数の処理を行い結果を返す
・クラスなら、インスタンスを生成しそれを返す
・他にも、呼び出しが可能なオブジェクトにバインドされていればそれぞれの挙動を示す
・呼び出しに対応していないオブジェクトの場合、例外を発生させる
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メソッドが関数の代入されたプロパティとして実装されているから,って認識でOK?
0722デフォルトの名無しさん
2009/07/18(土) 14:54:20後発だけに。
0723デフォルトの名無しさん
2009/07/18(土) 15:04:00f = hogehoge.func
って書いたときに、fが何を表すのか不明になる。
0724デフォルトの名無しさん
2009/07/18(土) 15:17:14名前が変数名なのか関数名なのかで呼び出す・呼び出さないを
分けられない。
def foo(): pass
bar = foo
del foo
bar()
0725デフォルトの名無しさん
2009/07/18(土) 15:17:530726デフォルトの名無しさん
2009/07/18(土) 16:33:49でなんかなるんだっけ
0727デフォルトの名無しさん
2009/07/18(土) 17:32:22省略する人は、Lisp嫌いですか?
0728デフォルトの名無しさん
2009/07/18(土) 17:41:02hoge = func1
を「変数hogeにメソッドfunc1を呼び出した返値を代入する」と読んだり、
「変数hogeに関数func1を代入する」と読んだりするわけだ。
0729デフォルトの名無しさん
2009/07/18(土) 20:03:430730デフォルトの名無しさん
2009/07/18(土) 20:23:53C言語とかと一緒にやろうとすると見事にハマるw
0731デフォルトの名無しさん
2009/07/18(土) 20:32:11どちらかといえばそっちの方が好みだな。
一般的に = は等号という意味が定着してるんだから
プログラミングにおける代入という新しい概念には新しい記法を与えるのが自然。
正直、代入を'='にしたのはCの負の遺産だと思う。
0732デフォルトの名無しさん
2009/07/18(土) 20:35:20BASICだと同一判定も = だけどさ
0733デフォルトの名無しさん
2009/07/18(土) 21:11:280734デフォルトの名無しさん
2009/07/18(土) 23:04:17その考えはある意味正しいと思う一方で、
代入操作は比較的頻繁に行われることを考えると
短いトークンを与えようとするのは実用上正しいとも思う
0735デフォルトの名無しさん
2009/07/18(土) 23:52:28比較より代入のほうが多い、という判断があったからなんだけど、
サンプリングが偏ってた、って何かで読んだような。
0736デフォルトの名無しさん
2009/07/18(土) 23:56:54イメージ的に=の要請が強かったのかなあと思う
その頃から別に、代入に=で違和感なかったんじゃね?
0737デフォルトの名無しさん
2009/07/19(日) 00:34:020738デフォルトの名無しさん
2009/07/19(日) 00:36:33~はbitwise not
0739デフォルトの名無しさん
2009/07/19(日) 00:49:53今なら、Unicodeに入れてもらえばなんとかなるだろ。
0740デフォルトの名無しさん
2009/07/19(日) 00:59:000741デフォルトの名無しさん
2009/07/19(日) 01:05:030742デフォルトの名無しさん
2009/07/19(日) 01:34:37単純に、欧米圏の人間にフォントを入れてもらえばいいだけさね
頑張れMicrosoftおよびその他ディストリビュータ
0743デフォルトの名無しさん
2009/07/19(日) 01:36:380744デフォルトの名無しさん
2009/07/19(日) 01:40:43悪平等の見本みたいな意見だがなw
だが、いい加減英語アルファベット+αがグローバルスタンダードと思っていられても困る
0745デフォルトの名無しさん
2009/07/19(日) 01:43:25<- assign
0746デフォルトの名無しさん
2009/07/19(日) 01:56:010747デフォルトの名無しさん
2009/07/19(日) 02:02:330748デフォルトの名無しさん
2009/07/19(日) 02:09:220749デフォルトの名無しさん
2009/07/19(日) 02:12:39= のどの言語でも、そこには不満ないw
0750デフォルトの名無しさん
2009/07/19(日) 02:31:450751デフォルトの名無しさん
2009/07/19(日) 02:35:230752デフォルトの名無しさん
2009/07/19(日) 03:26:560753デフォルトの名無しさん
2009/07/19(日) 04:18:37assign =!
equals =
not equals !=
0754デフォルトの名無しさん
2009/07/20(月) 02:45:04"0"(ゼロ)って文字列が偽だなんて聞いてねえよ…
0755デフォルトの名無しさん
2009/07/20(月) 06:46:43PerlとPHPかな。他にもあるんだろうか。
その二つしか使わないおれはなんかそれに慣れちゃったな。
0756デフォルトの名無しさん
2009/07/20(月) 11:03:510757デフォルトの名無しさん
2009/07/20(月) 14:33:14null === false #=> false
なのでそいつもちょっと。
帯に短しタスキに長しと。(ちょっとちがうか)
0758デフォルトの名無しさん
2009/07/20(月) 17:29:170759デフォルトの名無しさん
2009/07/20(月) 18:16:32こうでつか?
0760デフォルトの名無しさん
2009/07/20(月) 19:45:02ネームスペースとかタイプヒンティングとか大規模開発向きの機能が中途半端なのがなんとも。
タイプヒンティングなんかarrayとオブジェクトだけとかいう謎の仕様だし。
ある程度の規模を越えたところで辛くなってくるんだよなあ。
比較演算が曖昧すぎてつまらんバグ起きやすいし。
0761デフォルトの名無しさん
2009/07/20(月) 19:57:14関数でもどっちみちソース追うよ。
この手のは最初に入った言語の影響や慣れってのが大きいよ。
0762デフォルトの名無しさん
2009/07/20(月) 20:06:37真面目にそれ何ていう言語?
もし俺も使ってたら気をつけないと…
0763デフォルトの名無しさん
2009/07/20(月) 20:54:160764デフォルトの名無しさん
2009/07/20(月) 20:55:44なんか無性にイラついてきた。
>>762めー!俺は絶対にお前を許さんからな!
0765762
2009/07/20(月) 22:19:13iヽ /ヽ
| ゙ヽ、 / ゙i
| ゙''─‐'''" l
,/ ゙ヽ
,i゙ / \ ゙
i! ● ● ,l そんなこと言われても
゙i,, * (__人__) ,/ わて猫やし…
ヾ、,, ,/
/゙ " ヽ
/ i!
(⌒i 丶 i ! i!.,
γ"⌒゙ヽ l l γ'.ヽ
i i,__,,ノ i,__,,ノ_,,丿
ヽ,_,,ノ"~´ ̄  ̄
0766デフォルトの名無しさん
2009/07/20(月) 22:19:340767デフォルトの名無しさん
2009/07/20(月) 22:20:410768デフォルトの名無しさん
2009/07/20(月) 22:24:290769デフォルトの名無しさん
2009/07/20(月) 22:24:490770デフォルトの名無しさん
2009/07/20(月) 22:27:11おお。知らんかった。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が最良の選択肢出会ったけど、今後はRubyにシフトするであろう
みたいなことが書いてあるのを何度かみた。
Rubyってそんなにいいの? なにがいいの?
自分はWeb屋だから、Rubyがまだ選択肢に入らないんだけど、選択肢に入るようになるのであれば勉強しておきたい。
Web屋に対してのRubyの利点を教えてくれ
0772デフォルトの名無しさん
2009/07/21(火) 02:29:330773デフォルトの名無しさん
2009/07/21(火) 06:09:53ちょっと前になにがなんでもRoRってノリな時代があったのは確かだが。
日本だとやっとPythonが地味に伸びてきているし、世界的にあいかわらずPHPは多いし。
0774デフォルトの名無しさん
2009/07/21(火) 06:23:15その順位は結構妥当だなと思ってしまった。
PHPを叩くPerlerが多いけど、PerlよりPHPのほうがまだましというのが正直な感想。
0775デフォルトの名無しさん
2009/07/21(火) 12:30:46なんでやねん。
{Perl,Python}>Ruby>>PHP
だろ。jk
0776デフォルトの名無しさん
2009/07/21(火) 12:34:430777デフォルトの名無しさん
2009/07/21(火) 12:36:59知らなきゃ叩けない
0778デフォルトの名無しさん
2009/07/21(火) 12:42:41ウェブは PHP/Java, ちょっとしたツールは Java, 性能要求が厳しれば C/C++ という鉄板の中で立ち位置がよくわからない。
0779デフォルトの名無しさん
2009/07/21(火) 12:44:080780デフォルトの名無しさん
2009/07/21(火) 13:14:07Web屋限定じゃないけど、単に時代遅れになってるってことじゃないの?
テキストの読み書き検索なんかに特化していたため、
単純な一個の掲示板を作るのには便利だったけど、
スカラー、配列以上のデータ構造になるとリファレンスを勉強しないと使えない。
オブジェクト指向になると「blessって何?」みたいな無理矢理な増築でわけわかめになってる。
0781デフォルトの名無しさん
2009/07/21(火) 13:19:12プログラミング言語、と呼ばれるほどガチガチでもなく
スクリプト言語、という言葉から連想するほどテキトーでもない
>775
PHPは言語として問題があってもWeb特化っていうアドバンテージがあるし
PythonはPerlとは全く別方向のスクリプトとして需要はあるだろう
Rubyが名前通りPerlの進化系として使えるから、Perlの需要って過去資源だけだと思うんだが
0782デフォルトの名無しさん
2009/07/21(火) 15:46:310783デフォルトの名無しさん
2009/07/21(火) 15:48:320784デフォルトの名無しさん
2009/07/21(火) 15:50:430785デフォルトの名無しさん
2009/07/21(火) 15:53:26自国製の言語をまともに評価できず、海外に評価されて逆輸入の形でしか受けいれなかった。
結局、そうこうしてるうちにユーザー文化が十分に育まれず
十分勝機のあったPythonの侵食を許してしまった。
0786デフォルトの名無しさん
2009/07/21(火) 16:10:560787デフォルトの名無しさん
2009/07/21(火) 17:39:370788デフォルトの名無しさん
2009/07/21(火) 18:05:10適当 - Perl
速度 - C
綺麗ならよし - Python
好き勝手やれ - Ruby
お前の世界だ - Lisp
分散処理なら - Earlang
とりあえず新しい - D
Wolfram - Mathematica
俺は嫌い - Java
Javaとくっつきすぎな - Scala
なんか面白そうな - OpenCL
なんじゃそりゃ - white space
0789デフォルトの名無しさん
2009/07/21(火) 18:39:35>Rubyが名前通りPerlの進化系として使える
使えない。
がんばってなんとかそのように使う人も
いるだろうが、そんな人ばかりではない。
0790デフォルトの名無しさん
2009/07/21(火) 18:41:52s/Python/Perl/g
RubyとPHPはちょっとキツいな。w
0791デフォルトの名無しさん
2009/07/21(火) 18:45:26unixのシェルスクリプト強化版みたいなポジならよかったのに。
ウェブの普及がもう少し遅くてCGIの言語選択肢が広ければ、
いや他の言語がもう少し早く登場してくれていれば…と悔やまれてならない。
0792デフォルトの名無しさん
2009/07/21(火) 19:25:06>いや他の言語がもう少し早く登場してくれていれば
どっちも起こらなかったと思う
Perlが糞だったからこその展開
0793デフォルトの名無しさん
2009/07/21(火) 19:27:29perlの発達を待つよりも、pythonやrubyに乗り換える方が早くて楽だった。
0794デフォルトの名無しさん
2009/07/21(火) 19:32:14Google言語ということもあってそこそこ勉強したが、
オブジェクト指向やり始めると途端にに気持ち悪くなるから好きになれん。
ってか、一度Rubyistになった人なら、そうそうPythonに寝返ることはないと思った。
PHPなら普通に使うけどね。
0795デフォルトの名無しさん
2009/07/21(火) 19:33:17日本人は釣られる時は世界屈指に釣られまくるよ。
世界よりも国益よりも善悪よりも、周囲の顔色が一番大事な民族性だから、
一旦周囲が特定の空気に包まれたら、その集団ヒステリーたるや物凄い。
一方、今はまだ周囲に無い世界の潮流とかの話になると、お互いに対する様子見で牽制しあって
なかなか動かない。
これを「釣られない」「民度の高さ」と表現すれば聞こえはいいけど、現代ではこの民族性は
国際競争における宿命的な負けフラグにもなってるな。
0796デフォルトの名無しさん
2009/07/21(火) 19:45:230797デフォルトの名無しさん
2009/07/21(火) 19:47:30何千行、どんなコード書いた?
0798794
2009/07/21(火) 19:56:15まあ実は俺はPy=>Rubyなんだが。
Pythonのどういうところが好きで、Rubyのどういうところが嫌いか聞きたい。
0799デフォルトの名無しさん
2009/07/21(火) 20:32:120800デフォルトの名無しさん
2009/07/21(火) 21:10:11ある程度の長さになるとPythonで書こうかなって思うなぁ
Perlは使い道が思いつかない
0801デフォルトの名無しさん
2009/07/21(火) 21:37:24でも、len()とかって未だ慣れないなぁ。
0802デフォルトの名無しさん
2009/07/21(火) 21:46:54Python的発想からすると戻り値が数値であることをlen()が保証してくれるってのは
素直に好きなんだけど、書く時には相変わらず慣れない
0803デフォルトの名無しさん
2009/07/21(火) 21:50:260804デフォルトの名無しさん
2009/07/21(火) 22:19:03>>> len(s)
6
>>> s.__len__()
6
>>> 'python'.__len__()
6
0805デフォルトの名無しさん
2009/07/21(火) 22:21:580806デフォルトの名無しさん
2009/07/21(火) 23:22:480807デフォルトの名無しさん
2009/07/21(火) 23:30:51単に拡張を取り入れる時点でpython以外に
十分に成熟している
扱いやすい
埋め込みが楽な言語
が無かっただけではないかなとか適当な事を言ってみる
0808デフォルトの名無しさん
2009/07/22(水) 00:27:28それから、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なんか、今までの中で一番納得
0811デフォルトの名無しさん
2009/07/22(水) 02:19:53Ruby(=Rails)が一時期流行ったのは、Web2.0とかのしょうもないドットコムバブルの再来願望に乗っかっただけだろ。
0812デフォルトの名無しさん
2009/07/22(水) 02:23:300813デフォルトの名無しさん
2009/07/22(水) 02:23:35Ajaxもあるし、
0814デフォルトの名無しさん
2009/07/22(水) 02:42:140815デフォルトの名無しさん
2009/07/22(水) 02:49:02ユーザー側が見るものも変わってるって言ってるんだろそれ?
0816デフォルトの名無しさん
2009/07/22(水) 04:21:34$ 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>書くときの気持ちよさはRubyが上でも、書きやすさは大して差が無く、
>読みやすさ・メンテのしやすさ・バージョンアップへの対応しやすさは
>圧倒的にPythonが上だもん。
そんなことないけどなあ。両方使った素直な感想として。
おまえ、Pythonしかろくに使ったことないだろ。
Pythonのほうが読みやすくてメンテのしやすいという具体的な例を出してみな。
0818デフォルトの名無しさん
2009/07/22(水) 07:21:320819デフォルトの名無しさん
2009/07/22(水) 07:38:44Pythonの方が、メソッドチェーンみたいな一行にゴチャゴチャ詰め込む文を
誰も使わない。a = b は必ず a に b を代入しているのでbが関数かどうか
調べなくて良い。名前空間が大事にされているので、何かの require したら
勝手に既存の型にメソッドが追加されてしかもそのメソッドがどのrequireから
持ち込まれたのか判らないって事がない。
Rubyでも判りやすく書けるとかじゃなくて、Pythonは判りやすく書く方法が
文化として定着しているため、ワザと読みにくくされていない限り誰のコード
でも読みやすい。
0820デフォルトの名無しさん
2009/07/22(水) 07:43:300821デフォルトの名無しさん
2009/07/22(水) 08:17:18メソッドチェーンを使わないんじゃなくて長くなるので使えないと見えてしまう
最後の2行は、Rubyもそうだと思うが
「○○でも判りやすく書ける」なんて言葉、Perlでぐらいしか聞かない
0822デフォルトの名無しさん
2009/07/22(水) 08:23:340823デフォルトの名無しさん
2009/07/22(水) 12:09:37新たなパラダイムが生まれても、自分で実装できるし
0824デフォルトの名無しさん
2009/07/22(水) 13:04:430825デフォルトの名無しさん
2009/07/22(水) 13:16:000826デフォルトの名無しさん
2009/07/22(水) 13:23:540827デフォルトの名無しさん
2009/07/22(水) 13:35:24Lisp製の有名アプリなんてとんと聞かないし。
あとは研究用の教材くらいかなあ。
0828デフォルトの名無しさん
2009/07/22(水) 13:36:440829デフォルトの名無しさん
2009/07/22(水) 13:45:56NPCの作成言語にlispを使っていたと思ったが
0830デフォルトの名無しさん
2009/07/22(水) 14:00:38・・・いやあれはまあUI絡みの部分が多いがな
0831デフォルトの名無しさん
2009/07/22(水) 14:46:480832デフォルトの名無しさん
2009/07/22(水) 14:57:39GIMPのAddinはLispでは?
0833デフォルトの名無しさん
2009/07/22(水) 16:01:150834デフォルトの名無しさん
2009/07/22(水) 16:25:30PHP -> ウェブデファクトスタンダード
Python -> Google 社内デフォルト
Ruby -> Ruby on Rails
Perl -> CGI の権威
Lisp -> AoE の NPC 作成言語
0835デフォルトの名無しさん
2009/07/22(水) 16:30:01恥ずかしくないか?
0836デフォルトの名無しさん
2009/07/22(水) 16:35:41Perlの印象もCGIの印象も悪くしたイメージしかない
0837デフォルトの名無しさん
2009/07/22(水) 16:37:190838デフォルトの名無しさん
2009/07/22(水) 16:40:050839デフォルトの名無しさん
2009/07/22(水) 17:25:210840デフォルトの名無しさん
2009/07/22(水) 17:37:45>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:030842デフォルトの名無しさん
2009/07/22(水) 18:06:32おそらく自前で関数を書いたり他人の書いたスクリプトのメンテやったことないのかと
全部判ってるって状態での開発?そんな楽な職場あるんだったら就職したいわぁ
0843デフォルトの名無しさん
2009/07/22(水) 18:11:30それは
↓
0844デフォルトの名無しさん
2009/07/22(水) 18:11:570845デフォルトの名無しさん
2009/07/22(水) 18:34:22結局HTMLを吐くだけだから。
だから、PHPみたいな明らかなウンコ言語が一番普及してる。
0846デフォルトの名無しさん
2009/07/22(水) 18:35:190847デフォルトの名無しさん
2009/07/22(水) 18:37:390848デフォルトの名無しさん
2009/07/22(水) 18:45:50それを全否定するかのようなフレームワークが主流になっているのが、どうしても理解できない。
テンプレートすらPHP的な書き方じゃないのが主流になってるし。
それなら結局Webでも言語関係無くない?と思うんだけど、PHP信者の意見を聞きたいわ。
0849デフォルトの名無しさん
2009/07/22(水) 18:46:23「○○の場合、××が大事なんであって、どんな△△使おうと××に影響はないんだよな。」
これコピペパターンに登録しとくか。
0850デフォルトの名無しさん
2009/07/22(水) 18:52:09言語的な扱いよりも環境作りやすい、移植しやすいとかそういう用途を優先してるんじゃね?
0851デフォルトの名無しさん
2009/07/22(水) 18:53:17HTMLにPHPコード直書きだと
触れないって怒る自称Webクリエイターがいるから
だからプログラマーもそれじゃ触らせないよってことになって今の状態
0852デフォルトの名無しさん
2009/07/22(水) 18:54:41MVC
0853デフォルトの名無しさん
2009/07/22(水) 18:57:30詭弁のガイドラインですね
>>845 はいいこといってるんだけどなぁ
0854デフォルトの名無しさん
2009/07/22(水) 19:00:43言語仕様の安定性は普及度の違いにかなり影響してそうだな。
後は英語の一次情報充実度合いとか。
0855デフォルトの名無しさん
2009/07/22(水) 19:00:52俺もフレワ開発してるが、ある程度の規模になると PHP のコード埋め込みなんか大して使えん
というかまず使わない。ほぼ <?php の中で echo だわ。無理に埋め込み式にすると
色んな言語触ってる奴はスタイル的に違和感覚えるしそれほどメリットがあるわけでもない。
テンプレートはある程度内容を制御できるのとキャッシュとか細かい機能があるから
結局はSmartyみたいなエンジン使う。だから言語機能としてPHPである必要はない。
それでもPHPを使うのは普及度が高くてデプロイに手間がかかることが少ない、
ウェブに特化した関数やらライブラリやらが充実しててそこそこ保守されてる、
そこそこ性能も悪くない、情報もそこそこある、
など積極的にというより無難さによるところが大きい。
欠陥は多いが、かといってわざわざ乗り換えるほどのスクリプト言語もない。
0856デフォルトの名無しさん
2009/07/22(水) 19:01:32そうか?
> コンテンツが大事なんであって、どんな言語使おうとコンテンツに影響はない
と
> だから、PHPみたいな明らかなウンコ言語が一番普及
の間に何の論理的な繋がりもないぞ。
何が「だから、」なんだか。
0857デフォルトの名無しさん
2009/07/22(水) 19:02:33登録してもいいと思うけど、それって単に物事の切り込み方としての定番であって、
成り立っていれば有効、成り立っていなければ無効、っていうごく普通の話だよ。
0858デフォルトの名無しさん
2009/07/22(水) 19:04:01極端な話、Smartyを使うためにPHPを使うという逆転が起こってても不思議はないかもね。
他の言語のテンプレートエンジンって、露骨に不便なの多くね?
0859デフォルトの名無しさん
2009/07/22(水) 19:17:43と
> だから、PHPみたいな明らかなウンコ言語が一番普及
は矛盾しないってことが言えるだけ
0860デフォルトの名無しさん
2009/07/22(水) 19:45:310861デフォルトの名無しさん
2009/07/22(水) 19:59:34Rails使ってるけど、Railsなんて既存のクラスに大量のメソッドを追加している。
でもそれが便利だから、世界中のみんなが喜んで使ってるし、別に困ってない。
なんかPythonのやり方しか知らないやつが他の言語を批判してるだけじゃん。
0862デフォルトの名無しさん
2009/07/22(水) 20:57:38>ここでいう「軽さ」はプログラマの負担の軽重を指し、
0863デフォルトの名無しさん
2009/07/22(水) 21:12:06大量に作って、大量に捨ててるんじゃないの? >rails
0864デフォルトの名無しさん
2009/07/22(水) 21:19:410865デフォルトの名無しさん
2009/07/22(水) 21:19:44プログラマの負担が軽いとは言えないのでは?
0866デフォルトの名無しさん
2009/07/22(水) 21:22:34そのうち収束するんじゃないの?
0867デフォルトの名無しさん
2009/07/22(水) 21:24:33Javaで書いたからってテストコードの量が減る訳でもないんじゃないか
0868デフォルトの名無しさん
2009/07/22(水) 21:25:220869デフォルトの名無しさん
2009/07/22(水) 22:35:46純粋に言語の仕様で戦って欲しい。
それが新しい言語の礎となる。
0870デフォルトの名無しさん
2009/07/22(水) 22:41:250
とかでいいじゃん。0がすべて。0以外は必要ない。
この言語が出来ること、言語の目的は、0の存在を示すこと。
0871デフォルトの名無しさん
2009/07/22(水) 23:00:560872デフォルトの名無しさん
2009/07/22(水) 23:05:42何が必要なんでしょうね
0873デフォルトの名無しさん
2009/07/22(水) 23:10:45>あとは研究用の教材くらいかなあ。
Maximaとか?
0874デフォルトの名無しさん
2009/07/23(木) 08:24:53話をそらすな。
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:30Railsの互換性の話とかは関係あるだろ
0877デフォルトの名無しさん
2009/07/23(木) 09:51:56Pythonでは普通内包表記を使うことですっきり書き下せるときだけ
内包表記を使うから、複数の文に分けた方が判りやすい文を
ゴチャゴチャ詰め込んでるの見たこと無いよ。
Rubyは書くときの楽しさ、Pythonはすっきりさ重視。
0878デフォルトの名無しさん
2009/07/23(木) 09:56:020879デフォルトの名無しさん
2009/07/23(木) 09:56:28Python系のバージョン間の互換性を大切にする文化は、
名前空間を大事にしているから可能って部分あるよね。
urllib がダメになったら urllib2 作ったりw
で、Deprecation Warningを消せた人のみPy3kにアップグレード可能
0880デフォルトの名無しさん
2009/07/23(木) 10:28:300881デフォルトの名無しさん
2009/07/23(木) 11:51:340882デフォルトの名無しさん
2009/07/23(木) 11:59:43言語仕様の貧弱さを「楽しさ」という曖昧な要素で補うPR戦略を取ったところ、
いつのまにか既成事実化してしまい、それに乗せられたユーザーが残って共同幻想を形成している。
というのが最新の分析。
0883デフォルトの名無しさん
2009/07/23(木) 12:01:040884デフォルトの名無しさん
2009/07/23(木) 12:39:59周囲に「分かっていないなぁ」と馬鹿にされるので
「楽しいです」と言ってます
0885デフォルトの名無しさん
2009/07/23(木) 12:45:04Rubyの「楽しい楽しい詐欺」は非常に巧妙に日本人的なユーザー心理を突くんだよね。
周りがそういってるからなんとなく、みたいな。
10人Rubyが楽しいという人がいたら、そのうち8,9人は884みたいな人だと言ってもいい。
ある意味PR戦略としては高く評価できる。
0886デフォルトの名無しさん
2009/07/23(木) 13:02:47Rubyのメソッドチェーンで読みにくいと思ったことはないんだけど、具体的に
どんなコードで読みにくいと思ったの?
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:58Pythonは3.0からUTF-8になったのがいい。
0890デフォルトの名無しさん
2009/07/23(木) 15:06:270891デフォルトの名無しさん
2009/07/23(木) 18:56:41ヤツをオレは決して信用しない。
そいつは間違いなく排他的で狭量な
バカだからだ。
0892デフォルトの名無しさん
2009/07/23(木) 19:01:07Objective-Pythonにするべき。
略して、「おっぱい」!!
0893デフォルトの名無しさん
2009/07/23(木) 19:17:560894デフォルトの名無しさん
2009/07/23(木) 20:19:31>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短く書けるから?いっぱいimportしなくていいから?
0899デフォルトの名無しさん
2009/07/23(木) 21:36:380900デフォルトの名無しさん
2009/07/23(木) 22:03:03> どんなものでも、できるようになれば楽しい。
そんなことあるか。
0901デフォルトの名無しさん
2009/07/23(木) 22:07:22ストレスフリーのプログラミングってのは楽しいもんだ。
それを実現できるのは
コンパイル不要=スクリプト
用途無制限=汎用
洗練された文法=現代的
ライブラリなどショートカット充実=RubyかPython
などここで二つに絞り込まれるわけだが
Rubyの場合は更に規約主義による簡潔な記述が加わる。
結果としてRubyが最も楽しいプログラミング言語といわれる。
0902デフォルトの名無しさん
2009/07/23(木) 22:09:19亀レスだけどAutoCADはlispで書いてあるのか?
0903デフォルトの名無しさん
2009/07/23(木) 22:11:45> 結果としてRubyが最も楽しいプログラミング言語といわれる。
ナイスジョークだ。
0904デフォルトの名無しさん
2009/07/23(木) 22:11:58書いてて楽か(短かい記述)、読んでて楽か(スタイル統一)、ってことだな。
趣味プログラマとして楽しいのは前者だろう、ってことで。
0905デフォルトの名無しさん
2009/07/23(木) 22:19:13頭のできの良い人の中はようわかりません
達人の域に達した人は何を楽しいと思うのかな
0906デフォルトの名無しさん
2009/07/23(木) 22:30:17なのでPythonの方がいいw
0907デフォルトの名無しさん
2009/07/23(木) 22:34:10> どんなものでも、できるようになれば楽しい。
えらい適当な話だし、もしこれをそのまま受け入れるとすると
Ruby信者がウリにしていることは1�_たりともRubyの特徴説明になってないなw
0908デフォルトの名無しさん
2009/07/23(木) 22:40:390909デフォルトの名無しさん
2009/07/23(木) 22:41:27意図的に構文を正規化しない
簡単な例「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つーか、色々な書き方が出来るのはいいとしても、どれも美しく見えないな。
0911デフォルトの名無しさん
2009/07/23(木) 23:06:25puts *(0..9)
0912デフォルトの名無しさん
2009/07/23(木) 23:08:56本当はその下にforで回すパターンもあるが
それはあんまりRubyっぽくないのと、1行にするにはちと長いというだけだろう
あとブロックの関係で意味も微妙に変わるから同じ文とは言えないし
for x in 0...10 do
puts x
end
0913デフォルトの名無しさん
2009/07/23(木) 23:09:350914デフォルトの名無しさん
2009/07/23(木) 23:14:12そりゃあ好みの問題だろう
RubyはRubyで、このメソッド呼び出しとブロック構文で豊かな世界を作ってる
だから、これはこれで統一された美しさがある
0915デフォルトの名無しさん
2009/07/23(木) 23:34:29けど強力
rubyの売りはどこだ
0916デフォルトの名無しさん
2009/07/23(木) 23:39:02PerlやPythonだと、書いて「戻る」とか、頭の中に「置く」とかしながら書くことが多くなる
0917デフォルトの名無しさん
2009/07/24(金) 00:31:47例えばブロック構文なんてのは
「高階関数は多くの場合高々1つの関数が渡せれば十分」
なんて決めつけが背後にある
0918デフォルトの名無しさん
2009/07/24(金) 00:54:48引数として渡すって形式だと辛いってのがある
0919デフォルトの名無しさん
2009/07/24(金) 01:02:57I think so.
0920デフォルトの名無しさん
2009/07/24(金) 01:05:30Perl = Wizardry
PHP = Ultima
Python = World Of Warcraft
Ruby = ドラゴンクエスト
Tcl/Tk = Might and Magic
って感じです。
Lispは何だろうな・・・。
0921デフォルトの名無しさん
2009/07/24(金) 01:06:09>Pythonはコードの正規化(誰が書いても同じコード)
残念だがそれは幻想だ
0922デフォルトの名無しさん
2009/07/24(金) 01:09:54Lispは俺的にはElder Scrollだな。
0923デフォルトの名無しさん
2009/07/24(金) 01:15:43例え話ってどうとでも解釈できるから
すっげぇ不毛な水掛け論になりやすいと思うんだ
0924デフォルトの名無しさん
2009/07/24(金) 02:12:45それがまじなら、俺はPythonを取る
Perlってそんなまぞいのか?…
0925デフォルトの名無しさん
2009/07/24(金) 02:26:090926デフォルトの名無しさん
2009/07/24(金) 02:36:07自分で作るクラスでも、 size だろうが length だろうが len だろうが自由に使える。
Pythonの場合、 len(a) としか書けないし、自分で作るクラスでも
.length じゃなくて .__len__ って書かないとバカにされる。
0927デフォルトの名無しさん
2009/07/24(金) 02:56:52Pythonで書けば誰が書いても同じコードになるってのは幻想だけど、
同じプログラムの同レベルの書き方を増やすためだけに構文や組み込み関数を
増やしたりはしないよね。
内包表記みたいに、良く出る3行を1行にすっきりまとめられるなら新しい
構文を作る価値があるけど、 range(3,5) と 3...5 じゃぁ大して短くならないから
通常の関数の構文のみで対応できるrangeを選んで構文を拡張しないとか。
0928デフォルトの名無しさん
2009/07/24(金) 03:41:190929デフォルトの名無しさん
2009/07/24(金) 03:42:56print ','.join(x for x in range(3, 5))
0930デフォルトの名無しさん
2009/07/24(金) 03:43:32宗教的でないことを宗教的信条とする言語はあるかもしれん
0931デフォルトの名無しさん
2009/07/24(金) 03:44:550932デフォルトの名無しさん
2009/07/24(金) 03:54:10プログラムが停止するのが、プログラミング作業の中で一番ムカつく瞬間だと
思う。
0933デフォルトの名無しさん
2009/07/24(金) 03:55:25コンパイル時に停止するか
の違いだけだろw
0934デフォルトの名無しさん
2009/07/24(金) 04:32:29型エラーで停止しないことを保証してくれる言語って
そんなに多くないような?
0935デフォルトの名無しさん
2009/07/24(金) 04:57:220936デフォルトの名無しさん
2009/07/24(金) 06:38:173...5自体は配列を生成するワケでなく、Rangeのインスタンスを生成するだけだから
Perlの同様の構文に相当するのはrangeかな?
0937デフォルトの名無しさん
2009/07/24(金) 08:35:41>>827の2行目以降に反論してくれないか?
0938デフォルトの名無しさん
2009/07/24(金) 08:54:07とりあえず、common lispのwikiでも読んでみればいいんでない
0939デフォルトの名無しさん
2009/07/24(金) 09:16:06さすがLISPだ。有名アプリがひとつもない。こういうニッチなところで使われてこそLISPの真骨頂だ。
>>822の”研究用の教材くらいかなあ”は見事に言い当てている。
0940デフォルトの名無しさん
2009/07/24(金) 10:56:59MITにOSをschemeで書いたコンピュータがあると昔ストールマンに聞いた事があるよ。
LispはCPUのリソース食いまくりの言語だけど,BSDに仮想記憶が導入されたのもLispのおかげだし
結構使いやすい言語ですよ。
0941デフォルトの名無しさん
2009/07/24(金) 12:28:06頭が固くてLISPを使いこなせないので使われてないと思いたいんですね
わかります
0942デフォルトの名無しさん
2009/07/24(金) 12:45:20うちの教授なんてマインドストーム上でLisp実装したとかいって大喜びしてたし。
未踏ソフトウェアの補助金受けてまでやることかとは思うけど。
それをマッカーシーに見せたら氏の方が更に喜んだとかなんとか.
0943デフォルトの名無しさん
2009/07/24(金) 13:57:34> 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:110946デフォルトの名無しさん
2009/07/24(金) 16:09:200947デフォルトの名無しさん
2009/07/24(金) 17:36:19処理系の実装言語が何であるかは重要ではないような
しかも下手な言語より速い
0948デフォルトの名無しさん
2009/07/24(金) 18:49:590949デフォルトの名無しさん
2009/07/24(金) 19:42:53│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0950デフォルトの名無しさん
2009/07/24(金) 20:03:27Lispがそんなにいいものなら処理系もLispで書いてしかるべき。
common lispはコンパイラがあるのならcommon lisp処理系はcommon lispで
書かれていると思うのだがどうだろう。そのとおりなら間違いを認める。
0951デフォルトの名無しさん
2009/07/24(金) 21:07:45ゲップが出るけど。
0952デフォルトの名無しさん
2009/07/24(金) 21:27:47書かれているよ。処理系にもよるけど。
LispじゃないけどGaucheはCみたいだね。
0953デフォルトの名無しさん
2009/07/24(金) 21:52:120954デフォルトの名無しさん
2009/07/24(金) 22:12:260955デフォルトの名無しさん
2009/07/24(金) 22:26:24だれもそんな話してない
0956デフォルトの名無しさん
2009/07/24(金) 22:45:090957デフォルトの名無しさん
2009/07/24(金) 22:54:49技術者としての楽しみが詰まってる言語だと思う。
実際の仕事で使うかどうかは別として、Lisp系を楽しいと思えない奴は技術者に向いていないと思う。
0958デフォルトの名無しさん
2009/07/24(金) 23:03:220959デフォルトの名無しさん
2009/07/24(金) 23:10:07まあ>>957の言うとおり、遊びで使える言語があるってのは楽しいだろうけど。
0960デフォルトの名無しさん
2009/07/24(金) 23:29:120961デフォルトの名無しさん
2009/07/24(金) 23:43:110962デフォルトの名無しさん
2009/07/25(土) 01:14:25AutoCadはCommon-Lispで書かれてるよ。
それにLispの処理系はOSがらみ以外の部分は結構Lispで書かれてるよ。
SchemeはMITでは公式言語と言って良い程使われてるし
Lispが使われてないという根拠は何なの?
証拠に基づいてレスしてもらえる?
0963デフォルトの名無しさん
2009/07/25(土) 01:29:360964デフォルトの名無しさん
2009/07/25(土) 01:31:12新しい言語をその言語自体で実装するってできるん?
0965デフォルトの名無しさん
2009/07/25(土) 01:35:24そりゃ、理屈から言えば可能。
ただし言語による、としかいえんわな。
実装言語の制約によるだけじゃないかと。
0966デフォルトの名無しさん
2009/07/25(土) 01:39:43MITはPythonにスイッチしたとかなんとか
0967デフォルトの名無しさん
2009/07/25(土) 02:14:36評価にも値しないと言われた事もあったな。
0968デフォルトの名無しさん
2009/07/25(土) 02:18:25よくあるブートストラップだよ。
1. その言語のインタプリタを別言語で作る。
2. インタプリタ上でその言語のコンパイラを作る。
3. インタプリタ上のコンパイラで、コンパイラ自身をネイティブ・コンパイル。
4. 以降はネイティブ・コンパイラで開発。
0969デフォルトの名無しさん
2009/07/25(土) 02:25:30実例は、c-front(C++の前身)だね
0970デフォルトの名無しさん
2009/07/25(土) 05:43:130971デフォルトの名無しさん
2009/07/25(土) 06:25:072. 仮コンパイラで、コンパイラ自身をネイティブ・コンパイル。
3. 以降はネイティブ・コンパイラで開発。
0972デフォルトの名無しさん
2009/07/25(土) 08:12:46CでもI/Oまわりはライブラリーを使わなければ不可能だし
gccは算術演算回りはアッセンブラーで組んであったと思うよ
0973デフォルトの名無しさん
2009/07/25(土) 08:40:46それは授業のテーマがロボティクスに変わったから。
0974デフォルトの名無しさん
2009/07/25(土) 08:44:25結局どんな言語でも、少しはアセンブラが必要だし、
コンパイラでなければ、完全なブートストラップは不可能。
理論的には、インタプリタからコンパイラを合成することはできるし、
PyPyではできているけど、PyPyを実用で使ってる例ってある?
0975デフォルトの名無しさん
2009/07/25(土) 09:08:35> AutoCadはCommon-Lispで書かれてるよ。
俺が無智だった。ひとつだけでもメジャーなので使われてて良かったな。
> それにLispの処理系はOSがらみ以外の部分は結構Lispで書かれてるよ。
Liso支持者はあらゆるところでLispが使われている(または最強)と言うもんだ。
そんなに奥ゆかしくていいのか?
> Lispが使われてないという根拠は何なの?
いくらLispでもFORTRAN程度には使われているだろう。使われてないとまでは言っていない。
> 証拠に基づいてレスしてもらえる?
俺がそうレスした相手は断定していたが俺は断定していないからそのかえしは当たらない。
Lispの話題はLispの衰退に反比例して盛り上がる。Liso支持者はこれからも頑張ってほしい。
0976デフォルトの名無しさん
2009/07/25(土) 10:08:34今のAutoCadはc/c++実装だと聞いた気がするが。
Lispが残っているのはマクロだけらしい。
0977デフォルトの名無しさん
2009/07/25(土) 10:56:11>俺が無智だった。ひとつだけでもメジャーなので使われてて良かったな。
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答えはイエスだ。Lispコードはそっくりそのまま、まだある。
Yahooはサーバー側のソフトウェアを、エリック・レイモンドが
薦めた5つの言語全てを使って書いている。
0980デフォルトの名無しさん
2009/07/25(土) 11:26:58EmacsはCで書いてある。マクロはlispで書いてあるので両者の境界は知らない。
0981デフォルトの名無しさん
2009/07/25(土) 11:35:09お前 態度の割に無知だな
0982デフォルトの名無しさん
2009/07/25(土) 11:41:290983デフォルトの名無しさん
2009/07/25(土) 11:55:48書き込みが馬鹿丸出しで内容が全然無い
プログラムをした事無いというより能力がないから言語を使いこなせない
というのが見え見えだろ
違うというなら自分で書いたプログラムをUPしてみ
見栄はってコピペしたらいかんよ
0984デフォルトの名無しさん
2009/07/25(土) 12:02:12EmacsのCで書かれてるのは基本的なUIとLispの評価器だけ。
ほとんどの機能はEmacs Lispで実装されてる
0985デフォルトの名無しさん
2009/07/25(土) 12:07:24おまえがやれよ。おれはたまに2chでないところでは発表してるから。
2chでさらせなんてバカじゃないか?
0986デフォルトの名無しさん
2009/07/25(土) 12:13:28客先と話ができるように必死で勉強したけど全然的外れって感じだな
またグダグダ言って自分の無能さをさらけだしてるし
ちなみに馬鹿はお前な
0987デフォルトの名無しさん
2009/07/25(土) 12:22:55見栄張るな ボケ!
0988デフォルトの名無しさん
2009/07/25(土) 12:46:34とくにアートワーク用のCADについてるルーターなんて限りなくLispでコーディング
するのにに適してるように思う
最近のパソコンはCPUパワーやメモリー容量がやたら増えたから
スクリプト言語やLispやJavaみたいにリソース食いまくり言語が実用面でも使えるように
なったんだろうな
0989デフォルトの名無しさん
2009/07/25(土) 13:08:10UIなんかはXMLとJavaScriptで書いてるのと通じるところがあるな。
Mozillaは現代版Emacsなのかもしれん。
0990デフォルトの名無しさん
2009/07/25(土) 13:12:15素晴らしい想像力に感服した。
人材派遣会社の営業が客先とLispの話をするなんて。
人材派遣会社の営業 "うちはLispのエキスパートを揃えています"。
客先 "Lisp? なにそれ うまいもの?"
おれにはこんな場面しか思い浮かばない。
0991デフォルトの名無しさん
2009/07/25(土) 13:35:250992デフォルトの名無しさん
2009/07/25(土) 14:02:46Lisp=かまってちゃん
ってことが良くわかった。
0994デフォルトの名無しさん
2009/07/25(土) 14:38:170995デフォルトの名無しさん
2009/07/25(土) 14:49:06関数型って意味じゃPythonだけどそれってLispっぽさとはちょっと外れてるかも
0996デフォルトの名無しさん
2009/07/25(土) 14:52:130997デフォルトの名無しさん
2009/07/25(土) 15:28:09あえて言えばPythonはScheme、RubyはCommon Lispかなあ
0998デフォルトの名無しさん
2009/07/25(土) 15:33:30> 想像力がないとアルゴリズムを考える時に苦労しない?
人材派遣会社の営業が客先とLispの話をするところを想像できないと苦労するって
どんなアルゴリズムだよ。
0999デフォルトの名無しさん
2009/07/25(土) 15:39:501000デフォルトの名無しさん
2009/07/25(土) 15:43:5310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。