2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2011/05/07(土) 23:09:39.61
最強のLL=軽量プログラム言語は、どれよ?

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

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

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

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

前スレ
【Perl,PHP】LLバトルロワイヤル16【Ruby,Python】
http://hibari.2ch.net/test/read.cgi/tech/1302692765/

2 :デフォルトの名無しさん:2011/05/07(土) 23:24:18.46
どうしてバトルロワイヤルするの?

3 :デフォルトの名無しさん:2011/05/08(日) 00:29:41.68
>>2
運命の切り札をつかみ取れ!!

4 :デフォルトの名無しさん:2011/05/08(日) 00:36:51.13
みんな仲良く色々使おうよ(´・ω・`)

5 :デフォルトの名無しさん:2011/05/08(日) 02:40:33.08
>>4
甘いんだよ、お前は

6 :デフォルトの名無しさん:2011/05/08(日) 10:22:36.98
do 〜 end でも { 〜 } でも書けることの何がいいんですか

7 :デフォルトの名無しさん:2011/05/08(日) 10:32:57.40
一方を気にくわない人がもう一方を使うことができます

8 :デフォルトの名無しさん:2011/05/08(日) 10:38:41.70
do 〜 end が気にいらない人が
do 〜 end で統一されたコードをメンテするのは苦痛ではないんですか

9 :デフォルトの名無しさん:2011/05/08(日) 10:47:02.94
>>6
文法上の結合優先度(演算子の優先順位みたいなもの)が違うので使い分けます

10 :デフォルトの名無しさん:2011/05/08(日) 10:51:21.02
# foobarの引数はa, bの値とブロック
foobar a, b do .. end

# ブロックはメソッドbの引数、aの値とbの返り値とがfoobarの引数
foobar a, b { .. }

11 :デフォルトの名無しさん:2011/05/08(日) 12:16:56.63
pythonはselfが微妙

12 :デフォルトの名無しさん:2011/05/08(日) 13:36:16.07
>>11
selfは食わず嫌い。しばらく使ってる時にならなくなる。
phpの==, ===, strcmp とか、しばらくその言語使っててもウゼーと
思うのが本当にダメな部分。

13 :デフォルトの名無しさん:2011/05/08(日) 13:50:10.14
たとえばやってることが数値計算っぽいことだとselfとかverboseな感じでうざいかも

def norm(self):
 return math.sqrt(self.x ** 2 + self.y ** 2)
みたいな?
まあこの例だけだといまいちピンとこないけど
要するに数式にいちいちselfがついてくる感じ

14 :デフォルトの名無しさん:2011/05/08(日) 13:57:32.01
>>12
メソッド定義する時に第一引数に書かなきゃいけないのがちょっと…

15 :デフォルトの名無しさん:2011/05/08(日) 14:27:06.52
Pythonでかくとちょっと冗長になると思う
大差ないといえばそれまでだけど

class Rational {
    def num
    def denom

    Rational(n, d=1) {
        def g = gcd(n, d)
        num = n.intdiv(g)
        denom = d.intdiv(g)
    }
    static gcd(x, y) {
        if (x == 0) y
        else if (x < 0) gcd(-x, y)
        else if (y < 0) -gcd(x, -y)
        else gcd(y % x, x)
    }
    def plus(x) { new Rational(num * x.denom + x.num * denom, denom * x.denom) }
    def minus(x) { plus(new Rational(-x.num, x.denom)) }
    def multiply(x) { new Rational(num * x.num, denom * x.denom) }
    def div(x) { multiply(new Rational(x.denom, x.num)) }
    String toString() { sprintf("Rational(%d, %d)", num, denom) }
}

16 :デフォルトの名無しさん:2011/05/08(日) 15:24:41.68
>>12
しばらくPython使ってても
いちいちフィールド呼ぶ度にselfは正直ウザいよ。

17 :デフォルトの名無しさん:2011/05/08(日) 15:34:56.93
selfは多用するから一文字記号でも良い気がする。
変数という名前に、文字の名前で修飾するのは読みづらいんだよね。

18 :デフォルトの名無しさん:2011/05/08(日) 15:35:03.89
# 目の焦点をぼやかしてお読みください
def __init__(_, a, b):
 _.name = a
 _.age = b

これでひとつなんとかなりませんか

19 :デフォルトの名無しさん:2011/05/08(日) 15:37:56.20
いちいちShiftを押すのはちょっと

20 :デフォルトの名無しさん:2011/05/08(日) 15:38:46.13
引数の self ってまだ残ってたんだ・・・

OO の味噌はモデルを簡潔に表現出来る事なのに、
記述性を悪くしたのは設計ミスだよなあ

21 :デフォルトの名無しさん:2011/05/08(日) 15:41:58.23
Javaとか簡潔に表現出来てるかあ?

22 :デフォルトの名無しさん:2011/05/08(日) 15:50:16.42
何で Java?

23 :デフォルトの名無しさん:2011/05/08(日) 15:51:51.21
pythonよりOOでしょ

24 :デフォルトの名無しさん:2011/05/08(日) 15:52:56.66
Python はメソッド呼び出しと関数呼び出しに一貫性を持たせようとして、
暗黙的な self ではなく、引数で self 相当のラベルを明示的に書かせる事に
したんだっけ。

25 :デフォルトの名無しさん:2011/05/08(日) 16:05:54.79
最初から OO 前提で設計していたらもっと素直で簡潔になっていたんだろうな

26 :デフォルトの名無しさん:2011/05/08(日) 16:11:27.44
OOってそんなに簡潔なもんじゃねーよ

27 :デフォルトの名無しさん:2011/05/08(日) 16:12:51.08
は?

28 :デフォルトの名無しさん:2011/05/08(日) 16:14:02.57
は?じゃねーよ

29 :デフォルトの名無しさん:2011/05/08(日) 16:32:11.24
キレる 子供!!!

30 :デフォルトの名無しさん:2011/05/08(日) 16:32:42.72
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h
キレる 子供=sora_hキレる 子供=sora_hキレる 子供=sora_h

31 :デフォルトの名無しさん:2011/05/08(日) 16:42:55.01
>>21
this(selfに相当)に限って言うなら…
少なくとも自分のフィールドやメソッドを呼ぶのに明示的なthisは要らないでしょ
自分自身を他へ引数として渡す、という場面以外であまりthisを使うことはないかと

32 :デフォルトの名無しさん:2011/05/08(日) 17:03:53.12
global って付けないと外のスコープにある変数を更新出来ない
self って付けないとローカルにある名前を参照出来ない

うーん、、、

33 :デフォルトの名無しさん:2011/05/08(日) 17:06:29.55
ネガティブシンキングなのかネガティブキャンペーンなのかただの無能なのか分からない

34 :デフォルトの名無しさん:2011/05/08(日) 17:10:57.82
えっ

35 :デフォルトの名無しさん:2011/05/08(日) 17:11:18.26
>>32
正確に言おうぜ
1) Python2.Xではそもそもグローバル以外の自由変数を更新できない
2) Python3.Xでは自由変数がグローバルかどうかで、自由変数を更新する際に
 globalとnonlocalを使い分けなければならない
3) Pythonはインスタンススコープを提供しない


36 :デフォルトの名無しさん:2011/05/08(日) 17:14:49.08
4) Python2.Xではリスト内包内の変数のスコープがリークする。3.Xではリークしないが
 いずれにせよ関数スコープが基本でありブロックスコープは存在しない
5) function(){}() のようなブロックを無様な醜いハックすらPythonには無い
 (lambdaの中に文を記述できないから)

37 :デフォルトの名無しさん:2011/05/08(日) 17:15:25.43
>function(){}() のようなブロックを無様な醜いハックすら
function(){}()のようなブロックを真似る無様な醜いハックすら

38 :デフォルトの名無しさん:2011/05/08(日) 17:28:04.37
Pythonおn関数スコープは地味に罠なので他言語使用者はまずハマる

C++やC99のように変数宣言を関数の先頭以外でも可能にした言語では
大抵の場合、宣言以下の行がスコープになっている
勿論それらの影響を受けたJavaやC#などのメインストリームの言語はみなそうだ
宣言の右辺がスコープに入るかどうかで多少言語による差はある
C++系ではスコープに入り、Perlでは入らない
Lispではletのスコープはbodyとはっきりしているので、Lispに似ているのは
Perlおんほう

Pythonの場合、やはり中途で変数束縛を記述できるが、その上もその変数の
スコープに入ってしまうので、そこは
その名前によって既存の変数が隠され使用できないが、
新しい変数も未束縛なので使用はできないという区間になる

39 :38:2011/05/08(日) 17:28:43.64
おn
おんほう

なんかバグってるな
主に俺がw

40 :デフォルトの名無しさん:2011/05/08(日) 17:50:57.57
pythonのさ、selfも面倒なんだけどさ、superがすごくめんどくさいんだけど、
そんなことない?

class AAA(object):
 def f(self):
  print "AAA"

class BBB(AAA):
 def f(self):
  super(self, BBB).f() ← クラス名を書かなきゃいけないのがすごく面倒

41 :デフォルトの名無しさん:2011/05/08(日) 17:59:54.30
Python3で改修が入ったんじゃなかったっけ
こんなのが書かれるぐらい厄介な箇所
http://fuhm.net/super-harmful/

42 :デフォルトの名無しさん:2011/05/08(日) 18:05:00.02
>>39
コードで書くとこういう事だよね

n = 10
def foo():
  print n # => UnboundLocalError: local variable 'n' referenced before assignment
  n = 20
  print n

コンパイラがもうすこしがんばってくれれば解消出来そうな問題だと思うんだけどなぁ
withと実行フレーム操作で擬似的にスコープを実現するハックをがんばった後、
ダミーのクラスを使う方法を思いついた。

n = 10
class _: # 名前は適当
  print n # これはグローバル 10
  n = 20
  print n # これはクラス変数 20
print n # => 10

数分後、素直に globals 使うように書き直した。

43 :デフォルトの名無しさん:2011/05/08(日) 18:09:46.96
そこは解消しなくて良いって
ローカルで定義したつもりがグローバル変数に上書いてたとかなるだろ
エラー吐いてくれる今の方がマシ

44 :デフォルトの名無しさん:2011/05/08(日) 20:13:59.71
>>41
ほんとだ。さんくす。
ttp://docs.python.org/release/3.1.3/library/functions.html#super
class C(B):
 def method(self, arg):
  super().method(arg) # This does the same thing as: super(C, self).method(arg)
なんで最初っからこういう仕様になってなかったんだろう。
Python2のsuper()はPHP以下のクソったれ。
でもPythonのキーワード引数は便利。




45 :デフォルトの名無しさん:2011/05/08(日) 20:27:07.24
クソなのはお前だろ

46 :デフォルトの名無しさん:2011/05/08(日) 20:31:10.67
>>15
まぁ、面倒くさいっちゃ面倒くさいけど。

class Rational:
 def __init__(self, n, d=1):
  g = self.gcd(n, d)
  self.num = n // g
  self.denom = d // g
 # これ、クラスメソッドにする必要あんのかなぁ?
 # 俺なら、普通の関数として、クラスの外か__init__の中に書く。
 @classmethod
 def gcd(cls, x, y):
  if x == 0: return y
  elif x < 0: return self.gcd(-x, y)
  elif y < 0: return -self.gcd(x, -y)
else: return self.gcd(y % x, x)

 def __add__(self, x):
  return Rational(self.num * x.denom + x.num * self.denom, self.denom * x.denom)
 def __neg__(self):
  return Rational(-self.num, self.denom)
 def __mul__(self, x):
  return Rational(self.num * x.num, self.denom * x.denom)
 def div(self, x):
  return self * Rational(x.denom, x.num)
 def __repr__(self):
  return "Rational(%d, %d)", (self.num, self.denom)

47 :デフォルトの名無しさん:2011/05/08(日) 20:36:38.99
> # これ、クラスメソッドにする必要あんのかなぁ?
嫌がらせに決まってるじゃないかw

48 :デフォルトの名無しさん:2011/05/08(日) 20:37:53.80
ところで >>15 って何言語?

49 :デフォルトの名無しさん:2011/05/08(日) 20:37:55.41
 def gcd(cls, x, y):
  if x == 0: return y
>  elif x < 0: return self.gcd(-x, y)
>  elif y < 0: return -self.gcd(x, -y)
> else: return self.gcd(y % x, x)

このへんclsのtypo?

50 :デフォルトの名無しさん:2011/05/08(日) 20:39:06.20
うげ、なぜか1行だけインデントずれた。んで、divを__div__に変えるの忘れてた。

__add__とかそのへん、returnばっか書くのがめんどくさかったら、lambdaでやっちゃってもいいかもね。
__div__ = lambda self, x: self * Rational(x.denom, x.num)
みたいに。
gcdも三項演算子使えば単文でかけるのだろうけど、ややこしいわな。おすすめしない。
def gcd(x, y):
 return y if x else gcd(-x, y) if x < 0 else -gcd(x, -y) if y < 0 else gcd(y % x, x)

51 : 忍法帖【Lv=10,xxxPT】 :2011/05/08(日) 20:40:15.11
>>49
うん、typoだ。すまない。

52 :デフォルトの名無しさん:2011/05/08(日) 20:54:36.85
>>48
Groovy

53 :デフォルトの名無しさん:2011/05/08(日) 21:39:23.64
>>43
Pythonでは未定義のローカル変数の参照と解釈されるんだよね、
曖昧なシチュエーションだからエラーになることには納得してるんだけど。

宣言以前は外側の変数を参照して欲しいって用途だったと思う。
勿論、上書きは期待してない。というかその為に明示的に使えるスコープが欲しかった。

他にPythonのスコープ関連の問題に遭遇したといえば、
for の一時変数をlambdaで使った時。

xs = []
for i in range(10):
  xs.append(lambda: i)

map(apply, xs) # => [9, 9, 9, ...]
del i
map(apply, xs) # => NameError: global name 'i' is not defiend

実際のコードは、event:handler の辞書をforで回して一括して登録する処理だったと思う。
ちなみに、高階関数にすると期待通りに動きます。

>>46
1ファイル1クラスの制限のためじゃないかな、

単に言語比較のため合わせるとしたら、
@staticmethod にして第一引数を省く。

__repr__は、vars使うと self. 省けます。
return "Rational(%(num)d, %(denom)d)" % vars(self)

54 :デフォルトの名無しさん:2011/05/08(日) 21:58:23.66
>>42
>コンパイラがもうすこしがんばってくれれば解消出来そうな問題だと思うんだけどなぁ
ってのは、実行時エラーじゃなくて、コンパイル時エラーにできないかってこと?
できそうに見えるね確かに

Pythonちょっと実行時エラーが多すぎ
Perlのstrictモードあたりに比べると特にそう

55 :デフォルトの名無しさん:2011/05/08(日) 23:36:38.44
お前がコンパイラ作れ

56 :デフォルトの名無しさん:2011/05/09(月) 00:16:08.08
if hoge:
  xxx = 1
...
if foo: # これ通るときは必ずhogeを通っている
  print xxx
みたいなケースを考えると、実行時は確実に未束縛変数の参照を検出できるが、
コンパイル時には確実に検出できるとは限らない。だから実行時に検出するという
Pythonの方針は間違っていない。(俺もJavaScriptみたいに変数宣言があれば
いいとは思うが、代入=宣言ならば仕方ない)

n = 1
def foo():
    print n # グローバル変数
    n = 10
    print n # ローカル変数
これを許したって、グローバル変数を書き換えられているつもりで書き換えられて
いないという動作で初心者を混乱させる事になる。行儀の悪いコードを暗黙に
通すよりも、明示的にエラーにするというPythonの方針は合理的なものだ。
(重ねていうが、俺はローカル変数宣言があればもっと良いと思う。)

57 :デフォルトの名無しさん:2011/05/09(月) 00:26:38.32
self反対派は、まず関数の第一引数のことを行っているのか、属性アクセスの事を言っているのか、
後者であればRubyみたいに記号を割り当てないのが嫌だと言っているのか、
それともJavaみたいに省略できないのが嫌だと言っているのかをはっきりしてくれ。

第一引数の事であれば、たった self, とスペースの5タイプだけだから気にするな。
属性アクセスの事であれば、長い式の中に何度もselfが出てくるのがウザイなら
ローカル変数に代入してから使えば良い。
記号は、できるだけ記号を使った構文を増やさずにシンプルで汎用的な
ルールで多くのケースをカバーするのがPython流だ。
Javaみたいな省略?名前空間が動的な言語でそれやると動作が複雑になったり
速度が犠牲になるから、それらの問題を解決する方法をぜひ実装してみてくれ。

58 :デフォルトの名無しさん:2011/05/09(月) 00:28:34.04
>>57
あたまわるいですね

59 :デフォルトの名無しさん:2011/05/09(月) 00:34:18.59
>>57
Python に欠点があっても良いでしょ。わざわざ取り締まる必要は無いと思うけど。
引数に self を渡すのは正直馬鹿らしいし、分かり辛い仕様だと思うけど、それを
理解した上で俺は使ってるよ。

60 :デフォルトの名無しさん:2011/05/09(月) 00:36:09.54
分かり辛いってなんだよ。そういうもんだと思って使えよ
馬鹿な頭で無理に分かろうとするな

61 :デフォルトの名無しさん:2011/05/09(月) 00:39:03.30
レスの内容が理解出来ないなら、わざわざ返事しなくても良いんだぜ

62 :デフォルトの名無しさん:2011/05/09(月) 00:41:19.35
その前に内容があるレスをしてくれよ。無いものを理解するのは流石の俺でも難しいね

63 :デフォルトの名無しさん:2011/05/09(月) 00:46:18.09
>>62
つまり君は、『メソッドの第一引数に self / this を明示的に渡す事が必須である』という仕様が
OOPL に慣れ親しんだ現代人にも分かり易いと思う訳かな?

普通は『そんな事はコンパイラが解決しろ』と思うよねえ。

64 :デフォルトの名無しさん:2011/05/09(月) 00:46:49.34
>>57=>>62


65 :デフォルトの名無しさん:2011/05/09(月) 00:50:01.03
と思ったが違った

66 :デフォルトの名無しさん:2011/05/09(月) 00:51:17.76
自分は Python がしょっぱい言語だと分かった上で使ってるけど、
奇麗な Python みたいな夢を抱いてる人ってまだ居るのかな。。。

67 :デフォルトの名無しさん:2011/05/09(月) 00:53:56.87
>>65
違うの?

じゃあ >>63>>57 向けってことで。

68 :デフォルトの名無しさん:2011/05/09(月) 00:59:59.64
>>56
その上のやつみたいな、実行時の条件によってunbound variable参照による
実行時エラーが出たり出なかったりするような糞コードは、
もしコンパイル時チェックをするのなら、単にコンパイル時エラーにするんだと思うよ

> 行儀の悪いコードを暗黙に通すよりも、明示的にエラーにするという
> Pythonの方針は合理的なものだ。
ちょっと主張の意味がわかんない
グローバルな名前をshadowする名前をつけることを行儀の悪いといっているのなら
Pythonはそれを禁じていないし、それゆえ
>グローバル変数を書き換えられているつもりで書き換えられて
云々の「初心者の混乱」とやらは現に今でも起きることだよね
そういう問題を本気で避けたければ、単に上位の変数をshadowする名前を
禁じればよいだけ
特に合理的だとは思えないね

69 :デフォルトの名無しさん:2011/05/09(月) 01:07:23.10
でも日本だとプログラミング言語の中でもPython人気らしいね

70 :デフォルトの名無しさん:2011/05/09(月) 01:10:54.87
チョットしたプログラムを書くには便利だからね
ライブラリが揃っていて、インストール不要で使える環境が多い

71 :デフォルトの名無しさん:2011/05/09(月) 01:16:39.41
>>68
>単に上位の変数をshadowする名前を禁じればよいだけ

普通はそういうのは文法の側で面倒見る物だと思うけど・・・

72 :デフォルトの名無しさん:2011/05/09(月) 01:22:02.50
>>63
省略してもいいししなくてもいい、という仕様よりは分り易くはあるよ
必ず改行しなきゃいけない、必ずインデントしなければいけない
そういう言語でしょ。それが受け入れられてるんだと思うけど

73 :デフォルトの名無しさん:2011/05/09(月) 01:24:51.47
>>72
普通の世界では引数の self なんて『全く書かなくていい』から、
そういう世界から来た人には分かり辛いし、面倒くさいでしょう。

74 :デフォルトの名無しさん:2011/05/09(月) 01:24:58.87
>>70
ちょっとプログラム書くのにクラスとかたくさん作ったりする?
ライブラリとモジュールで済ませようとするでしょ

それで済まないならselfが勝手に補完されるIDEを使うか
あるいは静的なオブジェクト指向言語使ったほうが速いんじゃないか

75 :デフォルトの名無しさん:2011/05/09(月) 01:25:43.40
>>71
勿論Pythonの言語仕様の話をしてるんだから、それも言語仕様の話
紛らわしくてごめん

76 :デフォルトの名無しさん:2011/05/09(月) 01:26:51.04
>>74
それって不便だけど、何とかなるって話でしょ。。。

77 :デフォルトの名無しさん:2011/05/09(月) 01:28:58.58
>>72
んなこと言ったって
clazz.method(obj, args)
obj.method(args)
のどっちでも書けるし

>>> class Foo(object):
... def foo(self, x):
... return x
...
>>> Foo().foo()
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: foo() takes exactly 2 arguments (1 given)

このエラーは間違いなく初心者にとっては混乱の元
1 givenと言ってるが
初心者にとっては引数など与えたつもりなどない

78 :デフォルトの名無しさん:2011/05/09(月) 01:29:49.09
>>77
仕様を理解してない初心者が混乱しない言語って何?

79 :デフォルトの名無しさん:2011/05/09(月) 01:34:17.61
Python の場合は初心者よりも、他の言語を経験して来た人が混乱する様な仕様になっていると思う。

まあ、分かってしまえば大した事無い問題だけど。

80 :デフォルトの名無しさん:2011/05/09(月) 01:34:26.08
ググっても解決しない問題を例にあげてくれよ。それは致命的な欠陥かもしれないから

81 :デフォルトの名無しさん:2011/05/09(月) 01:36:38.38
>>78
Foo.fooの型は引数を取らないcallable(bound method)でしょ
ユーザはそれを呼んだ
勿論字句上でもセマンティクスにおいてもそのcallableに引数など与えていないよ
それでそんなエラーメッセージを出されてもお世辞にも親切で分かりやすいとは
言えんだろうよ

>>72の流儀なら
いつもClazz.method(obj, arg)とでも呼ばせたほうが
一貫性があってわかりやすく受け入れられるという理屈になるのでは

82 :81:2011/05/09(月) 01:38:22.05
ごめん一行目
Foo().fooだった

83 :デフォルトの名無しさん:2011/05/09(月) 01:40:44.91
>>81
Foo.fooを何のつもりで読んだのか分からない。Foo.fooのコードは知らないって設定?

そりゃいつもひと通りの方が一貫性があっていいんじゃない
ダメなの_

84 :デフォルトの名無しさん:2011/05/09(月) 01:43:04.75
分かり難い分かり難いって、今でも本当にそう思って言ってんのか
初心者はきっと分かり難いはずだ!って想像して代弁してあげてるのか

今理解してるのなら良いじゃない。お前にも分かるんだから皆分かるよ

85 :デフォルトの名無しさん:2011/05/09(月) 01:43:17.43
>>83
もしかして、実装を知らなきゃクラスを使えないのか?Pythonでは
そういうのはleak of abstractionというんだが

単純にユーザが引数など与えていないのに、引数を一個渡された、3個必要だという
エラーメッセージが混乱の元だと言ってるだけだが
(そしてもちろん素直に3個渡せばまたエラーになるわけだ)

86 :デフォルトの名無しさん:2011/05/09(月) 01:43:22.17
Q. メソッドの引数に self が必要って、、、Python ってしょっぱくねぇですか?
A. 残念ながら Python はしょっぱい所もあるよ! でもそれを補って余りあるから使ってるよ!

で良い気がするんだけど・・・

87 :デフォルトの名無しさん:2011/05/09(月) 01:48:57.06
>>85
一個渡されて3個必要なら渡すのは2個だろw
あとselfがあるってことくらい初心者でも把握しろよ。基本だろ
それにhelpでドキュメンテーション文字列が読めるからそれで引数の説明があると思うが
呼ぶ時点でどんな引数がいるかだいたい分かってるんじゃないのって話
どんな入力に対してどんな出力が帰ってくるかって分からないのに、どうやって呼ぶの

88 :デフォルトの名無しさん:2011/05/09(月) 01:50:34.09
>>86
いや面倒くさいから分かり難いって話になってるからな
たぶん勢い余った言いがかりだろうけど

89 :デフォルトの名無しさん:2011/05/09(月) 01:52:09.05
>>88
・他の言語と違うから分かり辛い
・記述量が増えるから面倒くさい

コンボだよ
コンボ
両方

90 :デフォルトの名無しさん:2011/05/09(月) 01:52:27.06
そりゃ分かりにくいことは分かりにくいだろ

定義ではselfを書くが、呼ぶときは書かない
書かないだけでなく、bound methodには実際self引数はない
ただしエラーメッセージではselfの分が数えられる

91 :デフォルトの名無しさん:2011/05/09(月) 01:53:12.22
>>90
それが分かってるのに分かりにくってどういうこと?w

92 :デフォルトの名無しさん:2011/05/09(月) 01:55:04.94
>>91
複雑で奇妙なルールを「わかりにくい」と表現するのは
別におかしなことではないのでは?
仮にそれを理解していたとしても


93 :デフォルトの名無しさん:2011/05/09(月) 01:55:24.17
他の言語と違うからってさあ、なまじCに似せてある言語いっぱいあるけど、ファックだよね
まさに虎の威を借る狐だよ。まあそういうのって逆立ちしてもCに勝てないんだけどね

94 :デフォルトの名無しさん:2011/05/09(月) 01:55:28.79
ずーーーっと Python だけ書いてるなら、そりゃ脳も最適化されるだろうけど、
他の言語に従事しつつ Python もたまに書いていたら、あ、しょっぱいな、と
思うもの

95 :デフォルトの名無しさん:2011/05/09(月) 01:55:57.64
>>92
あーつまり分かりにくくはないけど分かりくいって言ってんのか、ややこしい奴だな

96 :デフォルトの名無しさん:2011/05/09(月) 01:57:22.59
>>95
いや、「分からない」と「分かりにくい」は違うぞ?
日本語分かってるか?
誰も「わからない」とは言ってない

97 :デフォルトの名無しさん:2011/05/09(月) 01:57:41.51
>>94
pythonよりしょっぱくない言語教えて

98 :デフォルトの名無しさん:2011/05/09(月) 01:58:58.53
>>94
Pythonは素直でシンプルなようで、その辺結構壁があるのな
意外と

99 :デフォルトの名無しさん:2011/05/09(月) 01:59:00.77
>>96
分かり難いものを分かる俺スゲーってことだろ。解ったよ
だがな、お前以外の皆も分かってるんだぜ。分かり難いにもかかわらずだ
分かり難いってなんだろうな

100 :デフォルトの名無しさん:2011/05/09(月) 02:00:18.19
>>97
Scheme とか

あれはあれで別の所がしょっぱいけど・・・

101 :デフォルトの名無しさん:2011/05/09(月) 02:00:36.02
>>99
そりゃ、他の言語ならそもそもそんなところで躓くことすら無いのだから
それに比べりゃ分かりにくい
ただの相対論だ

102 :デフォルトの名無しさん:2011/05/09(月) 02:03:17.20
>>101
じゃあ絶対的には分かりにくくないってことかよw
じゃあPerlとかRubyの相対的トラップを教えてよ。で、総合的に評価してよ

今の議論は全く意味を成さないね

103 :デフォルトの名無しさん:2011/05/09(月) 02:05:19.32
『Python は理解出来ないから消えてなくなれ!』と思ってる人はいないと思う。

『Python は理解し易いという割には、随所に罠があるよな』と思ってる人がいるだけ。

(多分)みんな Python を貶そうとしている訳じゃないから、安心汁。

104 :デフォルトの名無しさん:2011/05/09(月) 02:05:27.05
分かりにくいとかいう言葉面に妙にこだわってるみたいだからその内容をここまで
親切に説明してきたのにこれかw

そんなら最初から聞くなやアホが


105 :デフォルトの名無しさん:2011/05/09(月) 02:07:03.61
>>104
お前の説明は分かり難かったわー、というか分からなかった(笑)

106 :デフォルトの名無しさん:2011/05/09(月) 02:07:34.77
>>103
馬鹿の振りして分かり難い分かり難いって連呼してる奴はいるな

107 :デフォルトの名無しさん:2011/05/09(月) 02:09:55.04
>>106
いねーーーってw

誰かいる?

108 :デフォルトの名無しさん:2011/05/09(月) 02:10:17.64
pythonの相対的トラップは簡単だからこのスレのど素人たちにも語れるけど
rubyとかは難しすぎて多分語れる奴は出てこないだろうな

109 :デフォルトの名無しさん:2011/05/09(月) 02:11:20.97
>>107
お前だろw

ワリニクイーwwwソウタイテキニーwwwwワカラナイトハーイッテナイーwwww

110 :デフォルトの名無しさん:2011/05/09(月) 02:12:20.17
>>109
それ俺じゃないし・・・

111 :デフォルトの名無しさん:2011/05/09(月) 02:13:10.72
マジくだらん流れ

112 :デフォルトの名無しさん:2011/05/09(月) 02:13:47.44
>>111←こういう煽るだけのレスで埋まるスレ

113 :デフォルトの名無しさん:2011/05/09(月) 02:15:09.46
でもselfを付けるか付けないかなんて議論の価値が無いのは事実

114 :デフォルトの名無しさん:2011/05/09(月) 02:15:19.53
『Python の self は全く問題無い。むしろ良い物だ。』と言い切っちゃう人がいたら、
こういう議論も参考になるんじゃないかしらん。

115 :デフォルトの名無しさん:2011/05/09(月) 02:16:20.34
>>114
そういう人もいるだろ。いたらダメなのか?
こんな初心者どもの意見とか意味ないよ

116 :デフォルトの名無しさん:2011/05/09(月) 02:17:29.10
>>115
ダメだけど、良いんじゃね。
リスクはあるよとだけ言っておく。

117 :デフォルトの名無しさん:2011/05/09(月) 02:19:26.32
エラーの引数の数が合わないで混乱とか?w

118 :デフォルトの名無しさん:2011/05/09(月) 02:20:59.66
勿論、そういう事を公の場で表明しちゃうリスクの事ね

119 :デフォルトの名無しさん:2011/05/09(月) 02:22:39.44
ああ、全く分かってない馬鹿な初心者が噛み付いてくるからな。注意が必要だと思ったよ

120 :デフォルトの名無しさん:2011/05/09(月) 02:23:58.31
まず>>116みたいな特定の考え方をダメだと言ってる奴がいることが驚異的なリスクだな
こいつの考えた理想的な言語を使ってみたい。たぶんクソ言語だろうな

121 :デフォルトの名無しさん:2011/05/09(月) 02:25:56.61
俺は忠告はしたから、後はお任せするわ。。。

122 :デフォルトの名無しさん:2011/05/09(月) 02:28:30.38
>>121
>>120はPythonユーザは初心者を小馬鹿にする傲慢で鼻持ちならない連中ばかりだと
思われても特に損だとは思わないタイプの人間だろうから
忠告しても無駄だろう

123 :デフォルトの名無しさん:2011/05/09(月) 02:30:04.32
pythonユーザがどう思われようが俺の知った事ではないし、
俺を見てpythonユーザはこうだと決め付ける情報リテラシの欠片もない現代人としての初心者のこととかどうでもいい

124 :デフォルトの名無しさん:2011/05/09(月) 02:30:30.50
コミュニティとして一番初心者とかにも親切な雰囲気なのはPythonだよね。
Rubyはなんか性格悪いやつばっかりな気がする。

125 :デフォルトの名無しさん:2011/05/09(月) 03:09:46.21
問題があったらググるかソースコードを grep するだけなのに、
コミュニティって必要かな

126 :デフォルトの名無しさん:2011/05/09(月) 03:12:41.23
2chだけ見ても、ググる前に質問スレに質問してる奴って結構いるからなあ

127 :デフォルトの名無しさん:2011/05/09(月) 03:12:43.13
>>124
一部のイジメをTwitterで公言する中二とかが目立っちゃってるだけで、
Rubyにも親切ないい人がいっぱい居るよ。

128 :デフォルトの名無しさん:2011/05/09(月) 03:20:51.24
>>127
Pythonでは中二みたいな奴は存在しないよね
Rubyはどうだろ?

129 :デフォルトの名無しさん:2011/05/09(月) 03:26:30.84
誰かも書いてたけど、npm 良さげだね
前見た時はこんなに沢山パッケージが無かった気がしたのに

130 :57:2011/05/09(月) 03:47:32.06
一気に加速しててワラタ。
別に第一引数のselfが素晴らしいと言っているわけじゃなくて、見た目の悪さ
ほどには実用上は問題にならないから気にするなと言っただけのつもりで、
素晴らしいというつもりは全くなかった。

記号がいいかselfという名前が良いかは、俺はどっちかが良くてどっちかが悪いとは
思わない。Rubyは記号を、Pythonは名前を選んだだけだ。phpは$this->でPerlは
なんだっけ?

Pythonは十分使いやすくてそれなりに綺麗でそれなりの効率、という、
特筆するほどいい点はないけどバランスは良い言語だと思うよ。
他の有名なLLは、スレッドが使いにくかったり遅かったりそもそもWeb以外で
あまり使われていなかったりGUIライブラリが貧弱だったりと汎用言語にするには
キツイ欠点があるけど、Pythonはそういった欠点が少なくて適用範囲が広いから便利。
でも、そういった実装や周りの環境を考えないで言語だけに注目したときに、
「Pythonは他のLL全部を圧倒する素晴らしい言語だ」って言っちゃうヤツっているの?

131 :デフォルトの名無しさん:2011/05/09(月) 03:47:51.89
ググればわかる質問をした場合

Python「ググるとわかりますよ」

Perl「ググればわかるけど、こういうことじゃないだろうか?」→なぜか関係ない古参の雑談のネタに

Ruby「死ねよ。俺登校拒否だけど、コミッター。イジメってストレス解消だよね。」

という答えが返ってくる確率高い。

132 :デフォルトの名無しさん:2011/05/09(月) 05:10:51.41
>>131
イジメってストレス解消だよね。

こんな事言った奴は許せんな。
人間としてのまともな感覚があるとは思えん。

133 :デフォルトの名無しさん:2011/05/09(月) 05:27:52.76
>>77
>このエラーは間違いなく初心者にとっては混乱の元
>1 givenと言ってるが
>初心者にとっては引数など与えたつもりなどない

すごく同意。初心者にはわからないエラーメッセージだよね。

>>86
そうなんだよ。まったくそのとおりなんだけど、Pythonにしょっぱいところはないと言い張る
Python信者がいるから変なはなしになるんだよ。>>87みたいな。

134 :デフォルトの名無しさん:2011/05/09(月) 06:48:31.91
「初心者でも把握しろよ」は流石に無いわなあ…

135 :デフォルトの名無しさん:2011/05/09(月) 07:30:15.02
まぁ、最初はつまづくけど、一回つまづいたら覚えるもんじゃないの?
初心者でも一度もつまづかずにマスターできる汎用的な言語があるのなら、ぜひ知りたいものだ。

それと>>57の問うてる
> self反対派は、まず関数の第一引数のことを行っているのか、属性アクセスの事を言っているのか、
> 後者であればRubyみたいに記号を割り当てないのが嫌だと言っているのか、
> それともJavaみたいに省略できないのが嫌だと言っているのかをはっきりしてくれ。
は、かなりまともな問いだと思うよ。

具体的に何が不満なのか書かずに、ただself批判してるだけだと、理由もなく叩きたいだけの人にしか見えない。
これに関しては、どっちでもいいことだと思うし、他の言語と違うからとかいう叩き方はすごくダサいと思う。

136 :デフォルトの名無しさん:2011/05/09(月) 08:43:34.90
>>135
>> self反対派は、まず関数の第一引数のことを行っているのか、属性アクセスの事を言っているのか、
>> 後者であればRubyみたいに記号を割り当てないのが嫌だと言っているのか、
>> それともJavaみたいに省略できないのが嫌だと言っているのかをはっきりしてくれ。

こんなことを言われてる時点で、仕様がださいことが決定的だよな。

137 :デフォルトの名無しさん:2011/05/09(月) 08:55:32.98
このスレのOOP脳のアホっぷりにどん引きですよ


138 :デフォルトの名無しさん:2011/05/09(月) 08:56:12.45
>>134
いや、マジでselfがあるって知らないでPythonプログラミングしてる奴がいるなら今直ぐに止めた方がいいと思うよ
なんか反論ある?初心者が把握しないでも良い正統的な理由があるの?

139 :デフォルトの名無しさん:2011/05/09(月) 08:58:06.37
>>130
Perlは、$_[0]

140 :デフォルトの名無しさん:2011/05/09(月) 09:01:00.28
self批判って馬鹿しかしてないんだな

141 :デフォルトの名無しさん:2011/05/09(月) 09:04:50.65
selfは初心者が把握してなくて当然ってどこのゆとりだよ
Pythonすら使えないゆとりが使える言語を紹介してくれよ

142 :デフォルトの名無しさん:2011/05/09(月) 09:33:43.42
pythonやるときに「selfを省略しても大丈夫」と勘違いする奴がいるとしたら
そいつは改行やインデントも省略するに違いない

ルールを他の言語に合わせることの合理性が欲しいならpythonをやるべきではないが
Javaと似てないからしょっぱいという主張に正当性があるのかは不明

143 :デフォルトの名無しさん:2011/05/09(月) 09:59:15.81
まさに、Pythonにしょっぱいところはないと言い張るPython信者そのまんまだな。

144 :デフォルトの名無しさん:2011/05/09(月) 10:01:58.76
Pythonにしょっぱいところはあるにしても、self批判はねーよ
お前アホすぎてそこしか理解できないだけだろ?


145 :デフォルトの名無しさん:2011/05/09(月) 10:07:30.10
まあSteve Yeggeが指摘する所の、
スコープと生存期間周りのルールの問題

>Pythonの作者のGuido Van Rossumはまた、間抜けな技術的失策を初期に犯している。
>ラリーの失策ほど甚だしいものではないが、それでもいくつか本当にひどいのがある。
>たとえばPythonはもともとレキシカルスコープを持っていなかった。
>そして動的スコープも持っていない。動的スコープにも問題はあるのだが、それなりには機能する。
>Pythonはグローバルスコープとローカル(関数)スコープ以外のスコープを何も持っていない。
http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm

146 :デフォルトの名無しさん:2011/05/09(月) 10:17:51.65
128 :デフォルトの名無しさん:2011/05/09(月) 03:20:51.24
>>127
Pythonでは中二みたいな奴は存在しないよね
Rubyはどうだろ?

お前sora_hのこといってんのか!?
キングダム オブ ルビー コミッターのsora_hに土下座しろ!!

147 :デフォルトの名無しさん:2011/05/09(月) 10:17:51.53
俺もこのスレのself批判に本当にうんざりしてるよ
しかもホワイトスペースには寛容らしいから、並のプログラマでもないんだろうな。訳がわからない

148 :デフォルトの名無しさん:2011/05/09(月) 10:17:56.43
>>144
じゃなくて、pythonのselfがいけてないことをどうしても認めようとしないだけでしょ?
信者の鏡ですな

149 :デフォルトの名無しさん:2011/05/09(月) 10:21:29.38
>>148
じゃなくて、selfってスコープを表してるだけだからなあ
他に叩くこともなくてこれを一生懸命叩いてるんだろうけどさ

150 :デフォルトの名無しさん:2011/05/09(月) 10:22:34.41
今日 ラリウォールがでてくる夢見ました
ハワイかどっかに旅行いって
変な教会の場所に、ラリウォールみたな人が受付をやってました
最初、なんかピンッときたんですが
そのあと質問したらラリーウォールっていってました
旅行者に出されるクイズみたいなやつがでたんですが
最初は視力とかなんか意味わからない問題がでました

そして中盤らへんにPerlの質問がでました
質問内容は、Perlのよさはなにか みたいで4択ででました
変数がどうたら、処理速度がどうたら 実用的とかだったきがします

そして突然ラリーウォールが教われました つかみ合いになってました
僕はその敵の腹を殴ったんですが びくともしませんでした

そして、なぜか教室掃除をさせられました旅行者全員
乾拭きをもって床をふいてました

151 :デフォルトの名無しさん:2011/05/09(月) 10:24:44.74
selfとかまじつまらない話やめませんか?激しくどうでもいいので
お前らウンチがスコープとかselfクソ!!都会っても無駄です
言語製作者に直接いうか、言語製作者がウォッチしてそうなスレでやってください
こんなクソスレはパイソン製作者とかみてません
わかりましたか?
だったらさっさと書き込むなクズ

152 :デフォルトの名無しさん:2011/05/09(月) 10:24:57.12
> じゃなくて、selfってスコープを表してるだけだからなあ
kwsk

153 :デフォルトの名無しさん:2011/05/09(月) 10:26:31.16
>>151
初心者はself以外の話を出来ないんですよ。許してあげましょうよ

154 :デフォルトの名無しさん:2011/05/09(月) 10:27:29.30
そして10年の月日が流れた

155 :デフォルトの名無しさん:2011/05/09(月) 10:27:31.49
>>44
正直それができるぐらいならselfいらないと思うんだが
そのsuper()にはself渡してないけど、どっからselfに関する情報もってきたの?

Pythonマジ意味わからん
ってかキモすぎる

156 :デフォルトの名無しさん:2011/05/09(月) 10:28:17.21
>>152
フォフォフォフォフォ
selfとかマジでいってんおかね君は
Perlでいうmy $class=shift;みたいなもんすか
もうわしは50歳 

157 :デフォルトの名無しさん:2011/05/09(月) 10:29:06.20
なんかよくわかりませんが
selfっていうのはperlでいう$self=shift;ですか?おしえてください
なんかよくわかりません

158 :デフォルトの名無しさん:2011/05/09(月) 10:30:01.72
C++でいうthiscallをプログラマに明示的に書かせているんですよおばあちゃん

159 :デフォルトの名無しさん:2011/05/09(月) 10:30:11.27
>>138
普通、初心者だから把握してないんだろ
それを、初心者も把握していなければならないとしてしまったら
初心者は路頭に迷ってしまうぞ

160 :デフォルトの名無しさん:2011/05/09(月) 10:30:24.52
Perlもボッコボコ!
ゲームも弱っ弱っの忍者さんがいるスレはここですか!?

161 :デフォルトの名無しさん:2011/05/09(月) 10:30:51.17
Python信者さんは>>44を説明してよ
マジでキモいんだけど

162 :159:2011/05/09(月) 10:32:28.68
逆に、>>138 は初心者の頃から把握してたの?
それを把握できるのって初心者脱出の道の中にあると思うのだけれど

163 :デフォルトの名無しさん:2011/05/09(月) 10:32:41.89
>>159
え?じゃあどうやってプログラミングするの?把握せずに、どうやってプログラミングするの?

164 :デフォルトの名無しさん:2011/05/09(月) 10:34:09.36
>>162
少なくともself批判してる馬鹿みたいに大混乱することはなかったな
たぶんself批判してるレベルの理解力の奴はプログラミングとか向いてないと思うよ

165 :デフォルトの名無しさん:2011/05/09(月) 10:35:27.12
self批判してる奴はPython以外の言語なら余裕で使えるのか?
ポインタ分からないからC以外の言語を使うとか言う奴みたいだな

166 :デフォルトの名無しさん:2011/05/09(月) 10:44:04.91
selfの件で唯一欠点と言えるのは引数の数を間違えたときのエラーが
分かりにくい件で、これがイケてないのはGuidoも認めてる。
http://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay

第一引数を省略できない(追加の5タイプが必要な)デメリットは、メソッドを
インスタンス経由で参照されるまではただの関数として利用できるメリット
(クラスの外側で定義した関数をメソッドにできるとか、デコレータが使えるとか)
とのトレードオフ。
ただし、Rubyは後発で、Pythonでいう関数をモジュールのメソッドに置き換えることで
関数自体を無くしてメソッドで統一したり、mixinを使ったりして、このトレードオフを
Pythonよりもうまく扱っている。つまり、PythonがイケてないというよりRubyがエライ。

まぁRubyにはRubyで代わりにしょっぱいところは沢山あるし、RubyはPythonが昔から
持っているキーワード引数をまだ導入出来ていなかったりするから、selfの件だけで
RubyがPythonよりエライとは言わないけどね。

167 :デフォルトの名無しさん:2011/05/09(月) 10:45:34.26
ああ、引数のことがどうとか言ってたのはGuidoとかいう人の受け売りだったのか

168 :デフォルトの名無しさん:2011/05/09(月) 10:46:59.96
だからなんでsuper()と書けるのにいちいちselfを書かなきゃいけないのか教えてよ!

169 :デフォルトの名無しさん:2011/05/09(月) 10:47:18.46
>>168
引数が一意に決まるからだろ

170 :デフォルトの名無しさん:2011/05/09(月) 10:48:51.36
RubyはPerlから親しめなさを踏襲してるからPythonより全体的に扱いにくいよ
存在自体がしょっぱいから落ち目ってこと

171 :デフォルトの名無しさん:2011/05/09(月) 10:49:46.60
>>169
ちょっと意味が分からない

def __init__(self, arg):
 super().__init__(arg) // self使ってないが別に困らない

引数のselfは何の役に立ってるの?

172 :デフォルトの名無しさん:2011/05/09(月) 10:50:44.97
>>171
>>44のコメント読めよ

173 :デフォルトの名無しさん:2011/05/09(月) 10:51:03.50
>>155
Python3 の super() は引数が省略された場合、呼び出し元のフレームから
第一引数を取ってくる。
Python2では、super() は旧スタイルクラスが混じってると動作しないから、
あまり使われていない。

174 :デフォルトの名無しさん:2011/05/09(月) 10:53:26.47
>>171
>>173 なので、第一引数の self は暗黙的に super() に渡されている。

175 :デフォルトの名無しさん:2011/05/09(月) 10:53:40.57
>>173
なるほど意味分かった、ありがとう
フレームの第一引数を暗黙に取るのか

そういう暗黙チックな構文糖を導入するぐらいなら
他にも色々できることあったような気がする

176 :デフォルトの名無しさん:2011/05/09(月) 10:54:35.31
他では一意に決まらないから

177 :デフォルトの名無しさん:2011/05/09(月) 11:01:29.57
>>175
Python3 の super() に関してはもっと暗黙な部分があって、
呼び出し元のメソッドオブジェクトからクラスを取れるようになっている。
なので、クラススコープで定義された関数とそれ以外で定義された関数は別物。
クラスの外で作られた関数では、super()の引数を省略できない。

selfはむしろ、クラス取るために呼び出し元をこれだけ弄るなら、第一引数取る
くらい追加の仕掛けなしにできるからイイじゃない、ってくらいのオマケ。

178 :159:2011/05/09(月) 11:01:51.27
>>163
把握せずにプログラミングしちゃうのが初心者だろ?

>>164
大混乱はしないさ、最初だけ
でもそれを批判しちゃってるのが「初心者でも把握しとけ」だろ?

179 :デフォルトの名無しさん:2011/05/09(月) 11:05:21.73
把握せずにプログラミングするのが初心者なら
初心者が把握できてないselfのどこに問題があるんだ?
問題があるのは初心者だろ

180 :デフォルトの名無しさん:2011/05/09(月) 11:06:44.15
>>177
詳しくありがとう
callerの実行時情報見て動きを変える関数って黒魔術めいてるけど
特殊用途の関数だからいいってことなのかな……

Pythonのほかの言語要素からすると異色の実装に見える




181 :デフォルトの名無しさん:2011/05/09(月) 11:07:23.81
オーバーロードも知らんのかよ

182 :デフォルトの名無しさん:2011/05/09(月) 11:08:45.14
なんでオーバーロード?

183 :159:2011/05/09(月) 11:08:46.76
>>179
俺self自体の批判なんかしたっけ?

184 :159:2011/05/09(月) 11:13:33.32
俺が批判してんのは、self自体は別に悪いとは言えないけど
初心者には確かに解り辛くて、それをあろうことか
初心者のせいにしちゃってるのがマズいってこと

185 :デフォルトの名無しさん:2011/05/09(月) 11:13:42.74
>>181
もしかして>>180に対するレス?
一般にオーバーロードは呼び出し側のフレーム情報は用いないし
Pythonにはオーバーロードは存在しないと思ったけど
俺なんか勘違いしてる?

186 :デフォルトの名無しさん:2011/05/09(月) 11:15:18.37
>>185
pythonにはオーバーロードは存在しないよ。初めから引数が省略されてるのがおかしいみたいな
言い方してたから。それってそんあにおかしいことかあ?
挙動を考えれば分かると思うけど、クラス外でクラス内の省略した呼び方したら普通にエラーになるんじゃねえの

187 :デフォルトの名無しさん:2011/05/09(月) 11:16:34.52
>>186
いやだからなんで「オーバーロード」が出てくるのかさっぱりわからない

188 :デフォルトの名無しさん:2011/05/09(月) 11:17:31.96
>>187
デフォルト値があるからオーバーロードがないんだろ
結局とる引数によって動きを変えるなんて普通

189 :デフォルトの名無しさん:2011/05/09(月) 11:19:39.25
>>188
> 結局とる引数によって動きを変えるなんて普通

関数がその関数に与えられた引数によって動きを変えるのは普通というより
当たり前
super()関数は、super()の引数じゃなくて、super()を呼んだ関数への引数
によって動きを変えているから
いちいち実行時フレームを参照している
ちっとも普通じゃない

そんなことも理解しないでオーバーロードとかホザいてたの?


190 :デフォルトの名無しさん:2011/05/09(月) 11:20:31.90
>>189
だからフレームが変わると引数が変わるだろ

191 :デフォルトの名無しさん:2011/05/09(月) 11:21:21.27
>>190
kswk

192 :デフォルトの名無しさん:2011/05/09(月) 11:23:57.11
省略したときの動作をクラスの外で呼んだときに出来るのかってだけ

193 :デフォルトの名無しさん:2011/05/09(月) 11:30:24.84
レキシカルスコープしかない無い言語でフレーム情報で動的スコープを真似るのは
一種のハックだと思う

194 :デフォルトの名無しさん:2011/05/09(月) 11:47:49.95
>>192
クラスの外で呼んだ時、の意味を詳しく
class Foo(Bar):
    def meth(self):
        super().meth()
で、foo=Foo(); foo.meth() という意味であれば、もちろんできる。

def hacked_meth(self):
    super().meth()
Foo.meth = hacked_meth
という意味であれば、できない。第一引数じゃなくてクラスのほうが取れないから。

195 :デフォルトの名無しさん:2011/05/09(月) 12:07:58.20
Pythonはよく分からんのだが、
もしかしてselfって環境そのもの?

196 :デフォルトの名無しさん:2011/05/09(月) 12:18:35.54
>>195
そうではなくて、ただのthis

197 :デフォルトの名無しさん:2011/05/09(月) 19:22:26.33
176 :Perl忍者ninjahebi:2011/05/09(月) 19:09:17.11 ID:rXRDzuOR0
どうでもいいけど俺の名前使うのやめてくれない?

198 :デフォルトの名無しさん:2011/05/09(月) 19:22:45.37
#ninjahebi (笑)

199 :test ◆M5ZWRnXOj6 :2011/05/09(月) 19:23:01.23
test

200 :a ◆M5ZWRnXOj6 :2011/05/09(月) 19:25:46.46
a

201 :test ◆M5ZWRnXOj6 :2011/05/09(月) 19:35:46.37
e

202 :デフォルトの名無しさん:2011/05/09(月) 19:43:18.15
>>148
まるで@だとすごくいけてるかのような書き方だなw

203 :デフォルトの名無しさん:2011/05/09(月) 20:17:54.84
凄くってほどじゃないが、冗長性は控えめだと思うなあ
そもそもメソッドなら@すら要らないんだし

…あー、属性への代入で self 省けないのはちょっとスマートじゃないな
仕組み上、仕方ないのは解るけどさ

204 :デフォルトの名無しさん:2011/05/09(月) 20:18:56.19
ちょっと解りにくくてすまぬ、アクセサのことね

205 :デフォルトの名無しさん:2011/05/09(月) 20:28:22.09
self()にすれば良かったのに…

206 :デフォルトの名無しさん:2011/05/09(月) 20:35:12.07
メソッドは@いらないなら、変数もいらないようにすればいいのに。中途半端な。

207 :デフォルトの名無しさん:2011/05/09(月) 20:50:17.41
バトロワスレで言っても仕方の無い事かもしれんが、

B 言語 PG :『A 言語って××がマイナスポイントだよね
A 言語 PG :『B 言語だってマイナスポイントはあるだろ

ってなるのは何でだろうね。

B 言語 PG :『A 言語って××がマイナスポイントだよね
A 言語 PG :『そうだね。そこは不便だけど、別のプラスポイントがあるから使ってるよー

で良いと思うんだが・・・

208 :デフォルトの名無しさん:2011/05/09(月) 21:32:35.12
>>207
バトルロワイヤルですし

209 :デフォルトの名無しさん:2011/05/09(月) 21:37:53.03
>>206
属性とインスタンス変数が区別出来なくなるじゃない

210 :デフォルトの名無しさん:2011/05/09(月) 21:47:44.31
Rubyコミュニティがなんか気持ち悪いという印象がある。
Perlから移りやすい文法なので言語としてはいいんだけど。

初心者でゼロからやる人はPythonの方がいいよな。今なら間違いなく。

211 :デフォルトの名無しさん:2011/05/09(月) 21:57:21.30
問題があったらググるかソースコードを grep するだけなのに、
コミュニティって必要かな

212 :デフォルトの名無しさん:2011/05/09(月) 22:02:04.48
>>210
でもPythonは今日のログで排他的な印象持ったなあ
まあRuby側からの印象でしかないけどさ

213 :デフォルトの名無しさん:2011/05/09(月) 22:03:52.19
>>212
このスレでコミュニティの質を判断するなww

214 :デフォルトの名無しさん:2011/05/09(月) 22:06:21.12
Pythonユーザはホワイトスペースとselfの議論に
心底うんざりしているのを忘れないでくれ


215 :デフォルトの名無しさん:2011/05/09(月) 22:10:02.04
>>214
黙れハゲ

216 :デフォルトの名無しさん:2011/05/09(月) 22:10:24.39
このスレ見てるとむしろ大好きなんじゃないかと

217 :デフォルトの名無しさん:2011/05/09(月) 22:12:22.95
スルッと受け入れれば良いだけだと思うんだけどなあ

self とか
global とか
lambda とか
GIT とか
速度とか

色々あるでしょ

218 :デフォルトの名無しさん:2011/05/09(月) 22:12:38.76
上の口ではうんざりとか言ってても下の口がビクンビクンいってる感じだな

219 :デフォルトの名無しさん:2011/05/09(月) 22:12:59.68
typo した...

× GIT
○ GIL

220 :デフォルトの名無しさん:2011/05/09(月) 22:18:51.50
Python と Ruby 1.9 って、GILがあるとはいえ php, Perl, Ruby 1.8 に比べたら
圧倒的にスレッドが使い物になる言語だから、それを欠点にあげると他のLLは
論外になってしまう。

221 :デフォルトの名無しさん:2011/05/09(月) 22:23:35.71
>>215
お前がその二つしか解らない底なしのアホだからって
そんなに怒んなよ


222 :デフォルトの名無しさん:2011/05/09(月) 22:26:48.80
>>220
他の LL って php, Perl, Ruby 1.8 しか挙ってないみたいですが??
どこが論外なんだろう・・・

223 :デフォルトの名無しさん:2011/05/09(月) 22:28:52.43
>>222
スレタイ

224 :デフォルトの名無しさん:2011/05/09(月) 22:29:14.82
つか、「他にも問題のある言語があるから問題無い」って理屈はおかしいだろ・・・

225 :デフォルトの名無しさん:2011/05/09(月) 22:30:18.35
>>222
そういうこと言いたいなら、まずリストアップされてない
言語を自分で挙げなよ


226 :デフォルトの名無しさん:2011/05/09(月) 22:31:15.16
>>223
次スレからは Erlang も Haskell も Go も JavaScript も Common Lisp も
Scheme も SML も OCaml も、マルチスレッドを扱える LL は全て入れて
おくべきだなw

227 :デフォルトの名無しさん:2011/05/09(月) 22:31:38.00
>>225
>>226

228 :デフォルトの名無しさん:2011/05/09(月) 22:33:02.62
Schemeありなのは嬉しいが、本当にいいのか?www


229 :デフォルトの名無しさん:2011/05/09(月) 22:35:54.94
>>228
微妙な所だけど、gauche が昔からネイティブスレッド扱えるから入れておいた

230 :デフォルトの名無しさん:2011/05/09(月) 22:36:42.82
>>226
スレタイにそんなに書ききれないし
>>1には
LLの定義とともに
>エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・
と書いてある(ただの例示的列挙)わけだからいちいち明示する必要はないだろう

ってマジレススマソ


231 :デフォルトの名無しさん:2011/05/09(月) 23:39:05.49
>>221
へー

232 :デフォルトの名無しさん:2011/05/10(火) 04:42:04.03
>>214
ほかのみんなはPython信者の傲慢ぶりとPerl忍者のきちがいぶりに心底うんざりしていることを忘れないでくれ

233 :デフォルトの名無しさん:2011/05/10(火) 05:32:11.75
>>232
傲慢なんじゃなくてアホが言い負かされてるだけ


234 :デフォルトの名無しさん:2011/05/10(火) 05:53:27.16
コンパイルや実行環境を事前に立ち上げておくことなく
ソースファイルを瞬時に実行できるなら
このスレの対象であるところのLLに含めていいと思う

235 :デフォルトの名無しさん:2011/05/10(火) 06:34:55.30
>>232
プログラマの三大美徳は不精、短気、傲慢

236 :デフォルトの名無しさん:2011/05/10(火) 09:30:34.40
>>235
ソース読め

237 :デフォルトの名無しさん:2011/05/10(火) 10:03:54.53
>>234
それが、C++インタプリタとかいう物も存在するんだよ…

238 :デフォルトの名無しさん:2011/05/10(火) 10:27:38.62
>>237
cint? あれ試したこと無いけど早いのかな
使ってたら time helloworld.c とかやってくれるとうれしい
静的型でも早いなら>>234は引っ込める

239 :デフォルトの名無しさん:2011/05/10(火) 12:12:18.49
>>238
ちょ、ちょっと待て、>>234 に早さの条件とか入ってたのか

240 :デフォルトの名無しさん:2011/05/10(火) 12:17:00.65
>>234だったらこれでも当てはまるんじゃね?
cc helloworld.c && ./a.out

241 :デフォルトの名無しさん:2011/05/10(火) 12:17:55.65
いやどっちみちCでは、実装がインタプリタであっても
「プログラマの負担が軽量な言語」とは言えんと思うがw




242 :デフォルトの名無しさん:2011/05/10(火) 12:29:56.20
C++はcout, cinがあるだけ大分マシじゃね。ちょっと動作確認するくらいには良いかも
少なくともJavaよりは楽かな。でもやっぱC/C++のいいところは実行速度だからな
たまにPythonのコードをC/C++に書き換えるとその速さに感心する
でも文字列処理とか配列処理とかいちいち作るの面倒すぎ

243 :デフォルトの名無しさん:2011/05/10(火) 12:47:01.83
>>239-241
ごめんごめん。>>234を十分条件みたいに書いたのはバカだった
CをLLというにはたしかに無理があるw
あくまで必要条件として次がほしいなあと

* 事前の明示的なコンパイルが不要
* 実行開始するまでの時間が短い

JRuby, Scala, Clojureみたいにスクリプトっぽく実行できるけど
スタートアップに時間かかる言語/処理系があるので
そういう思いで>>234を書いたのでした

244 :デフォルトの名無しさん:2011/05/10(火) 14:18:17.10
俺はその手はLLに入れてもいいと思うのだが>起動に時間かかる
LLの第一義定義である「プログラマの負担の軽重」と何も関係ないし……

特に、Web用途が大半である(と思われる)PHPとの比較で考えれば
起動の時間は問題にもならないだろ

245 :デフォルトの名無しさん:2011/05/10(火) 14:46:10.08

http://hirata-create.lar.jp/


246 :デフォルトの名無しさん:2011/05/10(火) 15:44:16.60
ipythonの方が高機能だけどpythonインタプリタの方が起動が速いから後者を使うってことはあるな

247 :デフォルトの名無しさん:2011/05/10(火) 19:51:51.95
>>243
とりあえず十分条件の意味をよく調べてみようか

248 : 忍法帖【Lv=32,xxxPT】 :2011/05/14(土) 11:19:47.58
このスレって落ちてる?

249 :デフォルトの名無しさん:2011/05/14(土) 12:27:17.19
いきなり過疎ったな

250 :デフォルトの名無しさん:2011/05/14(土) 12:32:17.36
>>247のレスでどれだけスレが止まるか楽しんでたんだと思う

251 :デフォルトの名無しさん:2011/05/15(日) 06:37:19.83
LispはC並に高速にできることを最近知った
(Lispは知らないので真偽は定かでない)

252 :デフォルトの名無しさん:2011/05/15(日) 09:31:54.07
なんだその提灯記事

253 :デフォルトの名無しさん:2011/05/15(日) 10:43:05.89
充分に複雑なプログラムをきちんとした(ユーザーフレンドリーを削ぎ落した)Lisp実装できちんと作ればC並に速いよ
そのかわりメモリだだ使いまくりでコンパイル遅いけど

ふつうのプログラムならそりゃCで書いたほうが速いに決まってるわけで、つまりこの世の9割はLispで書くとCより遅い

254 :デフォルトの名無しさん:2011/05/15(日) 12:32:07.49
Lispだとプリミティブな操作が単純で副作用も少ないから最適化しやすくて
Cだと何でもできるから最適化に限界があるってかんじじゃん?

255 :デフォルトの名無しさん:2011/05/15(日) 12:37:07.70
ずっと速度や省メモリを要求されてきただけあって
Cの最適化はかなり進んでるぞ

256 :デフォルトの名無しさん:2011/05/15(日) 15:00:32.33
これと似たような話だろ。

Cより速いJava
http://d.hatena.ne.jp/kenmaz/20080702/1214932866

257 :デフォルトの名無しさん:2011/05/15(日) 15:05:01.13
Lisper は生成されるアセンブラを読んで手動での最適化もする
その為、ディスアセンブルする関数が言語に組み込みだったりする

258 :デフォルトの名無しさん:2011/05/15(日) 15:46:24.67
>>257
はいはい、バイトコード最適化厨乙

259 :デフォルトの名無しさん:2011/05/15(日) 15:52:20.73
>>258
Lisp はバイトコードじゃなくてネイティブコードだっつの

260 :デフォルトの名無しさん:2011/05/15(日) 15:58:09.22
Cもそこまで速くないよ

261 :デフォルトの名無しさん:2011/05/15(日) 15:59:05.44
Cより速い言語ってどれ?

262 :デフォルトの名無しさん:2011/05/15(日) 16:04:12.34
機械語

263 :デフォルトの名無しさん:2011/05/15(日) 16:05:00.35
機械語より速い言語ってどれ?

264 :デフォルトの名無しさん:2011/05/15(日) 16:06:01.31
>>262ってさ、Cが一番速いって言ってるようなもんだよね

265 :デフォルトの名無しさん:2011/05/15(日) 16:11:49.23
科学技術計算用途ならFORTRANのが速いんじゃないの

Cはベクトル演算、並列演算を意識した言語仕様になっとらんし
ポインタ等が最適化を邪魔してる面があって
CのコードをコンパイルしてもあんまりSIMDとか使ってくれんだろう

動画処理など少しでも性能が欲しい(が単純な数値計算の多い)ソフトは
Cでも遅くてASM使いまくってるみたいだな

266 :デフォルトの名無しさん:2011/05/15(日) 16:16:06.15
FORTRANプログラミングは辛すぎる

267 :デフォルトの名無しさん:2011/05/15(日) 16:18:03.08
>MATLABを用いると、C言語やFORTRANといった従来のプログラミング言語よりも短時間で簡単に科学技術計算を行うことができる

268 :デフォルトの名無しさん:2011/05/15(日) 16:56:53.08
>>265
restrict修飾子のおかげでCでもポインタはハンデにならなくなった


269 :Perl忍者:2011/05/15(日) 17:21:33.96
早い、遅いわめいてるクセして作るアプリ・スクリプトがごみ
まじすごくない 本当にすごくない

だっておまえらウンコが書くスクリプトうんこなんだもん
モバゲーとかグリーとかのバカチョンたちがゲームつくってるけどウンコ

オンラインゲームにばりばりちょうちょうちょう!!負けちゃってるウンコゲーム
提供相手は情弱、ウンコゲームによろこぶ情弱、うんこみたいな出尽くしてる運子ゲーム
あっちむいてほいとか、javascriptでテトリスとかもう失笑物だよね(笑)

あの一人で作ったときはすげえって思うけど
所詮テトリスとかクソみたいなパズルゲームとかjavascriptで作ったうんこみたいなウンチゲームまじきもいんで

ブログとかにのせないでもらいませんか??

javascriptでゲームとかゲームなめてんですか?
自分で満足しても僕から見たら全部ウンコですよ
Dofusuくらいなら、まあがんばったね くらいですよそれ以下はゴミ

君たちjavascriptで、あっちむいてほいとかジャンケンとかテトリスとかライフゲームとか
パズルとかもうまじで痛すぎますよ!!!究極!!!!!まじで!!
もうやめてくださいね本当にじゃあさようなら!!!

270 :Perl忍者:2011/05/15(日) 17:24:31.66
グリーってほんとすごくないね ゲームも

271 :デフォルトの名無しさん:2011/05/15(日) 20:05:19.31
激しく同意

272 :デフォルトの名無しさん:2011/05/15(日) 21:35:20.62
でもそのグリはむちゃくちゃ儲けてるんだよな。

273 :デフォルトの名無しさん:2011/05/15(日) 23:06:54.14
以下グリー言語スレ

274 :デフォルトの名無しさん:2011/05/16(月) 00:21:47.54
情弱から如何に金を絞りとるかというスキルが重要なのであって、
プログラミングスキルは全く重要じゃない

275 :デフォルトの名無しさん:2011/05/16(月) 00:42:13.95
お前らが貧乏だってことはわかった

276 :デフォルトの名無しさん:2011/05/16(月) 03:20:56.71
RAM を大量に消費するとか、専用のコントローラで操作したいとか、
激しくネットワークトランザクションが発生するとか、膨大な量の
ポリゴンを処理したいとか、マシンの性能を最大限まで引き出したい
とかじゃなければ JavaScript でゲームを書くのも現実的な選択肢だと
思うわ。

短時間でそれなりの物を作れるのはかなり大きいメリットだと思う。
コーディングよりもロジックを考える方に時間を使えるからね。

277 :デフォルトの名無しさん:2011/05/16(月) 04:15:40.79
ゲームプラットフォームとしても JavaScript は最適ダネ!

278 :デフォルトの名無しさん:2011/05/16(月) 07:57:59.27
メモリを消費する、というのはわかるが、RAMを消費する、というと、
なんか高温の環境とかでチップがどんどこ壊れるとかそんなのみたいだ。

279 :デフォルトの名無しさん:2011/05/16(月) 08:36:18.35
DIMM

280 :デフォルトの名無しさん:2011/05/16(月) 09:42:43.32
日本の技術者は技術を捨てて、商売に走っちゃったね

281 :デフォルトの名無しさん:2011/05/16(月) 13:28:40.09
金儲けを考えないと批判され
金儲けを考えると批判され

282 :デフォルトの名無しさん:2011/05/16(月) 13:43:40.78
>>276
そこで述べてるのって開発側にとってのメリットだよね
ありがちなFlash+ActionScriptじゃなくてJSをゲーム開発に選んで
何が嬉しいのか、それだけだとよくわからない

283 :デフォルトの名無しさん:2011/05/16(月) 15:25:12.78
ウェブブラウザさえあれば動くとか


284 :デフォルトの名無しさん:2011/05/16(月) 17:31:27.24
ソーシャルゲームはいかにユーザに有料アイテムを買わせるかが最大の課題だからな。
NoSQLで負荷分散うんたらかんたらとか、そんなのどうでも良い。

285 :デフォルトの名無しさん:2011/05/16(月) 18:04:06.51
>>282
iOS で動く
ベンダーフリー
ブラウザ側と連携し易い

つーか、別に Flash でも良いよ
『○○が良い』って言うと『排他的に○○が良い』と言ったと思う人多いね・・

286 :デフォルトの名無しさん:2011/05/16(月) 18:10:18.62
>>285
つまりLLだけど、ease of developという意味での利点ではないのね


287 :デフォルトの名無しさん:2011/05/16(月) 18:12:58.33
>>286
Flash との差分を挙げただけだけど?

何で LL としての利点を挙げないといけない事になってるんだろ・・

288 :デフォルトの名無しさん:2011/05/16(月) 18:13:02.19
JSゲーってIE6とかでも動くの

289 :デフォルトの名無しさん:2011/05/16(月) 18:14:13.01
わざわざ IE6 を挙げるくらいだから、答えは分かってるよな

290 :デフォルトの名無しさん:2011/05/16(月) 18:15:40.91
>>287
いや、Flashゲーならありふれてるけど敢えてJS推したい強力な
理由がなんかあるのかと

291 :デフォルトの名無しさん:2011/05/16(月) 18:16:24.02
>>290
>>285 の下2行

292 :デフォルトの名無しさん:2011/05/16(月) 18:18:08.55
つまり「無い」、ということね
敢えてJS出したのは気分の問題?

293 :デフォルトの名無しさん:2011/05/16(月) 18:22:14.23
>>292
強力に押したい理由って例えばどんなの?

イチイチ突っかかってくるのは気分の問題?

294 :デフォルトの名無しさん:2011/05/16(月) 18:25:50.00
Flashで作られていたら誰も驚かないだろうSVGガールが
IE9 + HTML5のデモに使われているのを見て色々考えることがあった

HTML5! W3C標準!とか言っても、あれがまともに見れる環境、
Flashアニメまともに見れる環境より少ないんじゃないのか


295 :デフォルトの名無しさん:2011/05/16(月) 18:28:31.48
>>293
いや、>>276の言っている大筋の論旨は実にLL的だけど、
その論旨の中でのJavaScriptゲーという選択がありがちなFlashに比べて
微妙にマニアックでよくわからなかっただけ


296 :デフォルトの名無しさん:2011/05/16(月) 18:28:34.24
普及している物が一番なら、誰も新製品は出さんわな
簡単な理屈なんだが

297 :デフォルトの名無しさん:2011/05/16(月) 18:30:32.60
>>296
新技術は当然あってもいいが、それにデベロッパとしてさっさと
追従するのが妥当かどうかはまったく別だろう
HTML5のVideoにしてもお話にならん状態だし
せいぜい5年先、10年先に生きてくる話だろうと思ってる


298 :デフォルトの名無しさん:2011/05/16(月) 18:31:02.04
>>295
LL 的な部分で JavaScript が Flash より優れている所を聞きたいってこと?

正直 Flash はもう興味が無いから、知りたかったら別の人に聞いて

299 :デフォルトの名無しさん:2011/05/16(月) 18:33:05.73
>>297
デベロッパ全員が追従しなくていいでしょ
俺は行くけど君は残るという選択は何の問題も無いよ

300 :デフォルトの名無しさん:2011/05/16(月) 22:16:38.17
きもちわりー議論だなオイw

301 :デフォルトの名無しさん:2011/05/17(火) 04:43:16.05
LLは恥ずかしいから、スクリプト言語って書こう

302 :デフォルトの名無しさん:2011/05/17(火) 06:05:21.33
(function (){})();
↑なにこの意味不明な言語

303 :デフォルトの名無しさん:2011/05/17(火) 07:05:12.05
どう見てもC言語をそのまま進化させただけにしか見えないが。

304 :デフォルトの名無しさん:2011/05/17(火) 07:22:58.42
>>302
((lambda ...) ...)

305 :デフォルトの名無しさん:2011/05/17(火) 08:23:20.06
javascriptもactionscriptもどっちもecmascriptの実装の一種だから
言語としては別にあんま変わらないと思ってたんだが、違うのか?

306 :デフォルトの名無しさん:2011/05/17(火) 08:40:04.08
>>302
もう少し見やすい方法も。。。

new function() {}

307 :デフォルトの名無しさん:2011/05/17(火) 12:25:51.00
喫煙所についてぐだぐだ文句言うなよ
糞が

308 :デフォルトの名無しさん:2011/05/17(火) 13:11:59.48
いや煙流れてくれば、服とかにおい付くし、空調的な配慮が全くないと
どこが分煙だよ、って気分になるぞ。

309 :デフォルトの名無しさん:2011/05/17(火) 13:13:04.18
>>306
new しただけで本体が実行されるのもちょっと……

310 :デフォルトの名無しさん:2011/05/17(火) 13:32:22.86
>>302
気にするな、C++もだいたいそんな感じだ
#include <stdio.h>
int main(){[](){[](){[](){puts("|ω・`)");}();}();}();}


311 :デフォルトの名無しさん:2011/05/17(火) 14:51:15.72
( ;゚Д゚)y─┛~~ >>308
( ゚Д゚)y─┛~~ >>308
−y( ´Д`)。oO○ >>308
あ、ごめん、そっちいっちゃった?
めんごめんご

ま、煙草吸わない奴はそうかも知れないけど
喫煙所って俺らにはコミュニケーションの場なんだよね
煙草が嫌なら自宅に閉じこもって仕事してろ

312 :デフォルトの名無しさん:2011/05/17(火) 15:11:35.03
仕事中にコミュニケーションと称してサボってるだけじゃん

313 :デフォルトの名無しさん:2011/05/17(火) 15:26:39.04
非喫煙者とはコミュニケーションとらんのか

314 :デフォルトの名無しさん:2011/05/17(火) 15:49:24.79
>>311
むしろ煙草を吸うなら自宅で吸ってろ

315 :デフォルトの名無しさん:2011/05/17(火) 16:02:36.12
実際には煙も流れて来ないような掲示板で熱く嫌煙を語る奴って、どっかおかしいよな。
しかし、タバコの煙で健康を害する奴って結局、遺伝的に弱すぎなんじゃね?
実際タバコぱかぱか吸って90で元気なジジババだって一杯いるし、タバコに弱い
遺伝子は絶滅すべきなんじゃなかろうか?

316 :デフォルトの名無しさん:2011/05/17(火) 16:08:31.62
スレチの話題で4行も費やす奴から滅んだらよろしい

317 :デフォルトの名無しさん:2011/05/18(水) 00:39:06.06
実際に漏れてもないシステムの脆弱性問題を語るやつって、どっかおかしいよな
しかし、脆弱性を実際に突かれる奴って、運が悪すぎなんじゃね?
実際脆弱性をそのままにしてるシステムだって一杯あるし、運が悪い
システムは絶滅すべきなんじゃないだろうか?

なんか、違うな……


318 :デフォルトの名無しさん:2011/05/18(水) 07:56:35.43
立川談志とか忌野清志郎とかそう言ってて、ガンになってから禁煙したけどね。まあ、清志郎は手遅れだったけど、談志ももうダメっぽいよね。

319 :デフォルトの名無しさん:2011/05/18(水) 08:00:02.35
にゃんの話だよ

320 :デフォルトの名無しさん:2011/05/18(水) 09:22:43.59
金払って毒もられる気分ってどんな気持ち?
納税ご苦労様です

321 :デフォルトの名無しさん:2011/05/18(水) 22:45:47.91
俺はタバコ吸わないしむしろ嫌煙だけど、建物の隅っこで喫煙してる奴は哀れだし
場違いな嫌煙主張をしてる奴はニコチン以外の何かによって脳みそがヤラれてるんだと思う

322 :デフォルトの名無しさん:2011/05/18(水) 23:17:54.04
ふーん。で、半日前に終わったスレ違いの話題にレスをする奴についてはどう思うの?

323 :デフォルトの名無しさん:2011/05/18(水) 23:26:25.42
お前みたいに一日中2ちゃんに張り付いている奴ばかりじゃないんだ。世の中は。

324 :デフォルトの名無しさん:2011/05/18(水) 23:42:36.71
ふーん。俺も10分しないうちにレスを返せる様になりたいね。

325 :デフォルトの名無しさん:2011/05/18(水) 23:43:53.40
そりゃ、今このスレ見てるからだろう。
ほんとお前jは救いがたいバカだな(笑)

326 :デフォルトの名無しさん:2011/05/19(木) 00:00:25.26
ふーん。婉曲的な表現が通じない人っているよね。

327 :デフォルトの名無しさん:2011/05/19(木) 00:22:55.19
>>310
コンパイルできません><

328 :デフォルトの名無しさん:2011/05/19(木) 00:27:33.43
>>327
C++と言っても0xだからな
少なくとも0xのラムダ式に対応したコンパイラじゃないとダメだ


329 :デフォルトの名無しさん:2011/05/19(木) 01:05:59.50
>>328
gcc 4.5 でできました!
ラムダわけわかんないけどc++でもトレンドになるなら
LLの勉強してなれとこうかな

330 :デフォルトの名無しさん:2011/05/19(木) 01:13:47.07
ラムダって装甲ロボット兵でしょ。

331 :デフォルトの名無しさん:2011/05/19(木) 01:16:33.82
ラムダはLLのものじゃないし、C#にもあるし、慣れるというほど難しくもないけど、C++ではトレンドにならないと思う

332 :デフォルトの名無しさん:2011/05/19(木) 01:30:58.97
qsort()みたいなC言語時代から関数を引数に取ってた関数はlambda式になってもおかしくないんじゃね?

333 :デフォルトの名無しさん:2011/05/19(木) 01:36:10.65
どういうこと?

334 :デフォルトの名無しさん:2011/05/19(木) 01:36:22.37
今でもC書くときはC89な俺はわりと>>331に同意できる
構文が醜くてもlambdaで書くほうがstructでいちいちファンクタ記述するよりは楽だが
BOOSTのlambdaなら非0xコンパイラでも利用できるし
それでなくともlambdaでなければ実現できないことがあるわけでもないので
ポータビリティを優先させるという選択は普通にありえる
記述で楽をしたいことが最重要ならC++など選んでいるはずはないのだから……

335 :デフォルトの名無しさん:2011/05/19(木) 01:59:02.95
仕事でチームで開発する場合はそうだろうね
でもC++を使う理由はそれだけじゃなくて、変態だからってのもあるよ
マルチパラダイムの選択肢がまた増えちゃうってのは変態的にはワクワクだろう
だから変態のトレンドにはなる気がする
つまりネット上で盛り上がってるように見えるけど職場では禁止されるパターン

336 :デフォルトの名無しさん:2011/05/19(木) 02:03:03.95
>>302
それは無名関数を普通の関数と同じ形式で呼び出せるという
JavaScript 最大の利点のひとつなんだけどな・・

Scheme でいう所の >>304 と一緒

JavaScript の場合は、本来の関数適用という用途から外れて、
スコープを作る目的で多用されているのが問題なんだろうね

337 :デフォルトの名無しさん:2011/05/19(木) 05:15:29.30
C++ってテンプレートとか絡んでくるとデバッガーとかでも追いにくいし、やっぱメンテ
面倒だ。なんだよあのむちゃくちゃに長い名前。

338 :デフォルトの名無しさん:2011/05/19(木) 05:26:29.81
確かにC++はアサーションとprintfでバグを追いかけてしまう。ロガーとか使うべきなのだろうか。

339 :デフォルトの名無しさん:2011/05/19(木) 18:16:16.07
>>337
今日書いたC++の涙が出てくるコード

    std::binder1st<std::mem_fun1_t<uint64_t&, TrackEditor, size_t> >
        ctsf = std::bind1st(std::mem_fun(&TrackEditor::CTS), this),
        dtsf = std::bind1st(std::mem_fun(&TrackEditor::DTS), this);

Pythonなら単に
ctsf = self.CTS
dtsf = self.DTS
ってとこか

0xならstd::functionとかautoとか使えるんだよな確か


340 :デフォルトの名無しさん:2011/05/19(木) 20:14:50.30
>>333
ソート方法なんてそんな使い回すものじゃないんだし
一時関数でいいじゃん、それってlambda式がぴったりじゃないかなと

341 :デフォルトの名無しさん:2011/05/19(木) 22:04:00.46
(function (){})();は、setTimeout(arguments.callee, 〜)の場合も使うな

342 :デフォルトの名無しさん:2011/05/20(金) 01:09:02.80
>>334
情報系の院で、計算量の多い数値計算プログラムを書き捨ててる際に、
特にboostのlambdaとかbindの使い方が分からん奴にとって、
今すぐにでも正規に入れて欲しい機能のひとつ

343 :デフォルトの名無しさん:2011/05/20(金) 01:24:45.31
正規にってなんだよ

344 :デフォルトの名無しさん:2011/05/20(金) 01:59:35.98
>>343
言語規約にってことじゃないの?

345 :デフォルトの名無しさん:2011/05/20(金) 04:04:47.52
そんなのの使い方も分からん奴が使いこなせるのかよ。

346 :デフォルトの名無しさん:2011/05/21(土) 01:49:33.32
バベル案内
Steve Yegge / 青木靖 訳
ttp://www.aoky.net/articles/steve_yegge/tour_de_babel.htm

>SmalltalkはC++に取って代わるのを長い間待ち続け、そしてJavaが現れて彼らを完全か
>つ恒久的に閉め出してしまった。Rubyがまったく同じことを、今、Pythonに対して行っ
>ている。事実上一夜にして。

>Pythonは世界を支配できたかもしれないが、致命的な欠陥が2つある。

347 :デフォルトの名無しさん:2011/05/21(土) 14:31:31.67
ここではjslinuxは全然話題にならんのだな

348 :デフォルトの名無しさん:2011/05/21(土) 14:46:41.33
あれは(制約が多いと思われていた)ブラウザ上であそこまでやったのが凄いんじゃないの。

349 :デフォルトの名無しさん:2011/05/21(土) 14:51:04.61
perllinux
phplinux
rubylinux
pythonlinux

350 : 忍法帖【Lv=38,xxxPT】 :2011/05/23(月) 05:37:02.44
糞スレ保守

351 :デフォルトの名無しさん:2011/05/23(月) 12:31:15.11
Perlで覚えた知識が無駄にならない、自然な以降という意味ではPythonよりRubyの方が
ずっといいよね。ゼロから覚える人はソースがきれいに書くように強制されるPythonの
方がいいと思うけど。

352 :デフォルトの名無しさん:2011/05/23(月) 13:03:30.69
移行ね。

ずっと良いの意味による。
Rubyに移行した先に何が待つのか?
今後のことを考えるならPythonだろう。

Rubyはコミュニティが脳内お花畑で付き合いきれん。

353 :デフォルトの名無しさん:2011/05/23(月) 13:58:06.78
Perlの多様性に嫌気が差したならPython、
ベターPerlを求めるならRuby、って感じじゃね。

まあ用途毎に言語決めたら良いんじゃないかとは思うが。
HerokeならRuby、GAEならPythonみたいに。

354 :デフォルトの名無しさん:2011/05/23(月) 14:05:09.97
>>352
コミュニティに付き合う必要ってそもそもなくね?

355 :デフォルトの名無しさん:2011/05/23(月) 15:11:10.26
>>354
その言語のイベントって参加したくならない?
MLでやり取りしているあの◎◎さんに会える〜
とかってなるとテンション上がるでしょ。

コミュニティにはある程度関わっておいた方が良いよ。
仕事とか技術とかで為になる話を聞ける機会も結構あるし

356 :デフォルトの名無しさん:2011/05/23(月) 15:37:58.02
VSでC#書くようになって、vimでPerl書いてMooseは遅いなあとか言ってたこれまでの歴史が黒歴史になったわ。

357 :デフォルトの名無しさん:2011/05/23(月) 16:48:22.48
>>355
イベントに参加とかしたくはならんなあ、MLならともかく
オフラインで会うとなれば地元でやることなんてほぼないのだから
1泊以上は前提になるワケで、参加したいとか思ったことない

358 :デフォルトの名無しさん:2011/05/23(月) 18:48:40.55
田舎モノは一生そこで篭ってればいいよ

359 :デフォルトの名無しさん:2011/05/23(月) 19:16:16.98
>>355
コミュニティの雰囲気は技術と全く関係無いでしょ

技術を増やしたいなら、サロン的な場で話を聞くよりも
他人のソースコードを読んだり自分でコーディングした方が早いよ
(自分で勉強する気があるならだけど)

360 :デフォルトの名無しさん:2011/05/23(月) 22:19:12.86
一から学ぶならPython
他言語からの移行なら本人の趣味だろう

361 :デフォルトの名無しさん:2011/05/23(月) 22:22:02.74
>>352
今後の事ってなに?
Pythonに何か良い事でも起きるの?

362 :デフォルトの名無しさん:2011/05/23(月) 22:24:51.94
というよりRubyに未来がない

363 :デフォルトの名無しさん:2011/05/23(月) 22:30:44.03
>>362
何で Pythonian は他言語を目の敵にしてるの?

364 :デフォルトの名無しさん:2011/05/23(月) 22:32:26.13
Pythonは原理主義者が多いからな.

365 :デフォルトの名無しさん:2011/05/24(火) 01:00:30.81
>>363
いや、Rubyは頑張って流行作ってみました感があるよ。
それでもそこまで浸透していないように思う。
Rubyの未来に対する考えでは
島根と島根以外では温度差があるんじゃないの?

366 :デフォルトの名無しさん:2011/05/24(火) 01:04:43.42
>>365
いや、俺は Rubyist じゃないから Ruby なんてどうでも良いんだわ
何で Pythonista が他言語に攻撃的なのか知りたいだけ

367 :デフォルトの名無しさん:2011/05/24(火) 01:08:28.56
インデントと改行のせい

368 :デフォルトの名無しさん:2011/05/24(火) 02:20:16.79
>>366
しばらく前まで Python を擁護する発言を見るとすぐにPython信者認定するやつが
常駐してて、 Python 叩きの方が酷いように見えたけどな。

369 :デフォルトの名無しさん:2011/05/24(火) 02:26:06.56
人格叩きは何れにしろ不毛だよ

370 :デフォルトの名無しさん:2011/05/24(火) 08:17:39.89
>>368
つまり仕返しってこと?
叩かれたから叩くと?

371 :デフォルトの名無しさん:2011/05/24(火) 08:46:36.03
仕返しってwww
マイナー言語使ってると発想が攻撃的になるのかね?


372 :デフォルトの名無しさん:2011/05/24(火) 09:11:16.10
マイナー言語よばわりして攻撃してるつもりかね?

373 :デフォルトの名無しさん:2011/05/24(火) 09:17:42.38
全然。なぜならマイナー言語好きだから。
いいじゃんマイナーだろうが好きなら。


374 :デフォルトの名無しさん:2011/05/24(火) 09:33:08.16
>>370
別に Python ユーザーが攻撃的なわけじゃなくてどの言語でも攻撃する人は
居るよと言いたかっただけなんだけど、どうしてそういう方向に考えるのかな、、、
ひょっとして小学生?

そういえば、phpだけはdisられっぱなしの総受けマゾ言語かもしれない。

375 :デフォルトの名無しさん:2011/05/24(火) 12:15:22.69
disってください
http://hirata-create.lar.jp/


376 :デフォルトの名無しさん:2011/05/24(火) 19:28:48.40
>>374
それが貴方の言いたい事なら、他の言語のユーザにも攻撃的な人が居るとだけ言えばいいんだよ

文脈を無視して、唐突に他言語のユーザに話題を広げておいて、自分の発言が理解されて当然
という風に振る舞うのはどこかおかしいと、小学生を卒業してるなら分かるでしょ

377 :デフォルトの名無しさん:2011/05/24(火) 19:49:33.08
これはあれだな
つまらないことで言い争いはやめよう、と切り出したほうの圧勝

378 :デフォルトの名無しさん:2011/05/24(火) 19:51:15.56
勝ち負けだったのか
大人だから勝ちは譲っておくわ

379 :デフォルトの名無しさん:2011/05/24(火) 20:01:26.49
>>376
やっぱりマイナー言語を使ってると攻撃的になるんだねー


380 :デフォルトの名無しさん:2011/05/24(火) 20:03:04.39
というかPythonちゃんは日本での知名度が低いころに
インデントがインデントがっていじめられたのが未だに尾を引いてる

381 :デフォルトの名無しさん:2011/05/24(火) 20:03:16.73
>>374
PHPユーザーは、需要があるとか現実的な理由でユーザーなんであって
言語仕様のダメさは重々わかってるからなw
でもダメな所が好きなんだぜ

382 :デフォルトの名無しさん:2011/05/24(火) 20:11:51.06
Schemer が S 式の括弧の多さを指摘された所で、別に気にしないもんな

383 :デフォルトの名無しさん:2011/05/24(火) 20:17:08.19
あれはメリットがでかすぎる
仮に指摘されてもどうってことない

384 :デフォルトの名無しさん:2011/05/24(火) 20:19:19.08
C 使いが「クラスが無い」と指摘された所で、確かにそうだねと思うだけだもんな

385 :デフォルトの名無しさん:2011/05/24(火) 20:29:57.00
ObjC 使いが「名前空間が無い」と指摘された所で、ほ〜良く知ってるね
と思った一瞬後にはスッパリ忘れてるよな

386 :デフォルトの名無しさん:2011/05/24(火) 20:33:23.72
JavaScript 使いが「ブロックスコープが無いんだって?」と指摘された所で、
その内 let が行き渡るさ、と遠くを見つめて笑うだけだもんな

387 :デフォルトの名無しさん:2011/05/24(火) 20:45:14.51
だから、Python 使いも他の言語ユーザも、攻撃されたとか反撃しよう等と思わずに
好きな言語を使えばいい

388 :デフォルトの名無しさん:2011/05/24(火) 20:56:19.55
スレの趣旨的にはdisりあってくれたほうがw
個人攻撃みたいなのはおもんないけど

389 :デフォルトの名無しさん:2011/05/24(火) 21:08:42.53
技術的に正しい指摘だけならいいんだけどな

コミュニティの質とかどうでもいいw

390 :デフォルトの名無しさん:2011/05/24(火) 21:29:53.73
Pythonにくらべて、Rubyは実行環境を用意するのが大変だね
なんでもお手軽なUbuntuですらソフトウェアセンターで開発→Rubyって選ぶと
どわーって出てきてどれをインストールしたらいいかわからんレベル
なんかソースもってきてmake installするのが当たり前みたいな感じ
Pythonは最近のディストロだと設定スクリプトで採用されているので標準でそろってるんだよね
言語仕様的にはRubyの方が好きかな

391 :デフォルトの名無しさん:2011/05/24(火) 21:34:35.63
自分もRubyの方が好きだな。

392 :デフォルトの名無しさん:2011/05/24(火) 21:45:37.12
Rubyのdebパッケージは、いろんなニーズに対応できるようにDebian的に細分化されてる

んだが、どれ入れればいいんだかよくわからんのは確かだ
fullと書いてあるのを入れればいいんだけど

Rubyは間違った意味でユーザー専用デスクトップ用なので、
ソースをホームディレクトリで自前ビルドしてバージョン分岐させるシステムが自前供給されてる
システムにインストールされるRubyなんてどうせRails用だろ1.8.7でいいよみたいなすごい適当な

393 :デフォルトの名無しさん:2011/05/24(火) 21:48:29.60
Rubyはrvmがデフォルトじゃないの?

394 :デフォルトの名無しさん:2011/05/24(火) 21:49:26.86
俺はWindowsでもLinuxでも自分でRubyのビルドなんざしたことないがなあ
ソース持って来るのが当たり前なんて思い込みを押し付けられても困る

395 :デフォルトの名無しさん:2011/05/24(火) 21:50:27.87
Archならpacman -Syu rubyで問答無用で1.9が入るぜ
らくちんだぜ

396 :デフォルトの名無しさん:2011/05/24(火) 21:51:46.06
-Syuじゃなくて-Sか

397 :デフォルトの名無しさん:2011/05/24(火) 21:56:17.27
>>393
デフォルトではないが、事実上の標準ではある
rvm use 1.8.7 とすると、 $HOME/中略/bin/ruby が $HOME/.rvm/中略/ruby-1.8.7-p344 を起動するシェルスクリプトに
rvm use 1.9.2 とすると、 $HOME/中略/bin/ruby が $HOME/.rvm/中略/ruby-1.9.2-p180 を起動するシェルスクリプトに
rvm rake test とすると、インストールされている全Rubyで rake test によるテストが長々と順に実行される

嫌ってる人もいるんだけど

398 :デフォルトの名無しさん:2011/05/24(火) 22:03:16.34
ねえ、プログラミング言語の話題は無いの?


399 :デフォルトの名無しさん:2011/05/24(火) 22:05:28.46
>>398
ここは戦場だぜ?
気を抜いていると死ぬぞ

400 :デフォルトの名無しさん:2011/05/24(火) 22:07:19.08
いや、インストレーションの話してて面白いのかなと思って

401 :デフォルトの名無しさん:2011/05/24(火) 23:00:48.15
rvmは、へたに普及してしまったおかげで問題の切り分けが面倒になったという。

402 :デフォルトの名無しさん:2011/05/25(水) 00:43:17.12
ここを見ていると Scheme ってやっぱり良い言語なんだな...

403 :デフォルトの名無しさん:2011/05/25(水) 00:45:36.99
それほどでもない

404 :デフォルトの名無しさん:2011/05/25(水) 00:47:10.73
悪くはないけど、特別良いってわけでもない

405 :デフォルトの名無しさん:2011/05/25(水) 00:57:00.81
特別良い言語なんて無いから、それほどでもない言語ってサイコー

406 :デフォルトの名無しさん:2011/05/25(水) 00:57:59.47
Cとpythonは特別良い

407 :デフォルトの名無しさん:2011/05/25(水) 00:59:23.47
C は良いとして、何で Python?

408 :デフォルトの名無しさん:2011/05/25(水) 03:58:41.23
ここまでPythonの話題8割、Ruby1割、その他1割くらい。良くも悪くもPythonがこの先生きのこるのは間違いないな。

409 :デフォルトの名無しさん:2011/05/25(水) 04:16:40.94
圧倒的じゃないか我が軍は

410 :デフォルトの名無しさん:2011/05/25(水) 09:12:07.50
Rubyのパッケージって最初のころは便利でいいなあ、と思ってたけど、ちょっと使いだすと、
バージョンの微妙な違いとか依存関係でうまく動かなかったり、なんか信頼性がCPANとかに
比べるとずっと低い感じがする。
インストール時のバージョン管理とかももうちょっと賢くやってもらえないかと思ったり。

おもちゃっぽいのならいいけど、やっぱPerlとかPythonに比べると今一つ使えるものじゃない
んだよね。

411 :デフォルトの名無しさん:2011/05/25(水) 09:15:27.20
はいはい、ぱいそんぱいそん

何でインストールの話ばかりしてるんだろね

412 :デフォルトの名無しさん:2011/05/25(水) 09:30:48.98
なんでRuby使いはそんなPythonを敵視してるん?

413 :デフォルトの名無しさん:2011/05/25(水) 09:37:55.65
国産を盲信しているからだろう。

414 :デフォルトの名無しさん:2011/05/25(水) 09:42:17.81
>>411
インストール無関係に実際に使っていれば気になることばかりのはずなんだが、
まさか使ってもいない言語の話しようとしてたのか?

415 :デフォルトの名無しさん:2011/05/25(水) 09:42:34.13
>>412
Perl,PHPよりも見た目がすっきりした汎用LLという部分で競合してるけど、
現状Web以外の分野では圧倒的に負けてるからじゃね?
PerlをRubyで置き換えたいのに、実際のLinuxディストリではRubyじゃなくて
PythonがPerl代わりに使われてしまってる。

416 :デフォルトの名無しさん:2011/05/25(水) 09:46:07.14
>PerlをRubyで置き換えたいのに
そんな気概は1ミリも見えないんだが…

417 :デフォルトの名無しさん:2011/05/25(水) 09:50:47.35
むしろRubyの狙いどころが分からん


418 :デフォルトの名無しさん:2011/05/25(水) 09:56:07.50
RubyはPerlを置き換えるとかいう話は
Rubyを使っている人

  以外

からよく聞く

419 :デフォルトの名無しさん:2011/05/25(水) 09:59:07.30
http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm
この人はRubyを使ってなくてPerlを置き換えるって言ってるの?

420 :デフォルトの名無しさん:2011/05/25(水) 10:03:24.20
RubyもPythonもそこまで競合しないと思んだが

421 :デフォルトの名無しさん:2011/05/25(水) 10:04:23.83
Pythonの方がオブジェクト指向風味の味付けが微妙にいいんだよね。くどくなくて。
Rubyはどっかくどいんだ。

上手く説明できないが、キリスト教ならカトリックとかプロテスタントならついていける
けど、Rubyは統一教会とかモルモン教みたいなカルト的テイストって感じかな?

422 :デフォルトの名無しさん:2011/05/25(水) 10:07:16.09
それは好みだと思います

423 :デフォルトの名無しさん:2011/05/25(水) 10:08:02.76
どこぞのスレでもあったが、Ruby 使う人は

 ・ $HOME/bin は Ruby スクリプト
 ・ サーバサイドスクリプトは Perl
 ・ システム起動スクリプトは Python

を使う
WebサーバでRubyスクリプトを適当使用する以上に情熱燃やしたりしないし(起動時間短縮とか省メモリとかめんどくさいから)、
Linuxやデスクトップの起動スクリプトをRubyで書いたりもしない(これも起動時間やライブラリがめんどくさいから)

424 :デフォルトの名無しさん:2011/05/25(水) 10:11:39.14
>>423
Perlの「小物スクリプト需要」を置き換えたとは言えるな
プロ用ウェブ記述言語としてのPerlの分野はそのまま何も変わらん
Railsの人がトチ狂って土足で踏み荒らしてるが

425 :デフォルトの名無しさん:2011/05/25(水) 13:01:27.65
結局Rubyはなくてもいいってことね

426 :デフォルトの名無しさん:2011/05/25(水) 13:05:07.48
Rubyは仕様がちゃんとしていて優れている

427 :デフォルトの名無しさん:2011/05/25(水) 13:05:32.79
>>412>>413
少なくともこのスレではPython側からRuby側への攻撃の方が激しい。
レッテル貼りの人格攻撃も->Rubyの方向で多いし。

大抵の基準ではPythonの方が勝ってるから、
Python側からRuby側を攻撃する理由ってあんまりない気がするけどなー。

PythonユーザーのRubyアンチが生じる理由って、なまじ国内でRubyの人気があるせいで
国内のLLユーザーがRubyに流れがちでPythonの日本語ドキュメントの充実を妨げてるとか、
そういうところにあるんだろうか。

そんなに心配してRubyのネガキャンしなくても、
Rubyが使われてるとこがPythonに置き換えられることはあれど、
今Pythonが使われてる領域でわざわざPythonからRubyに置き換わるようなことはまずないのにね。

428 :デフォルトの名無しさん:2011/05/25(水) 13:21:45.21
被害妄想が激しいな

429 :デフォルトの名無しさん:2011/05/25(水) 13:34:28.98
phpはdisられ耐性ついてるからな


430 :デフォルトの名無しさん:2011/05/25(水) 13:44:10.67
Rubyへの批判は
>>124, >>131, >>170, >>210, >>352, >>362, >>421, >>425

こういう感じだからなあ。
ま、Pythonのくだらないself批判と同じで、ひとりなんだろうけどね。

431 :デフォルトの名無しさん:2011/05/25(水) 13:52:49.74
whitespace/self批判はものすごくありふれてるよ、上で引用されてる
Stive Yeggeも書いてるしな

432 :デフォルトの名無しさん:2011/05/25(水) 14:02:25.84
この流れを見る限り、言語の優劣はともかくruby使いがキモいことはわかるな
お前らが評判落としてると自覚しようぜ

433 :デフォルトの名無しさん:2011/05/25(水) 14:13:25.55
>>432みたいなのがPythonの評判を落とすわけだけどねw

434 :デフォルトの名無しさん:2011/05/25(水) 14:14:37.34
単芝死ね

435 :デフォルトの名無しさん:2011/05/25(水) 14:15:56.13
VIPPERは巣に帰れよ

436 :デフォルトの名無しさん:2011/05/25(水) 14:17:04.76
>>435
は?お前が帰れよ

437 :デフォルトの名無しさん:2011/05/25(水) 14:18:26.33
>>426
これは嫌みとか皮肉とか?

438 :デフォルトの名無しさん:2011/05/25(水) 14:19:14.76
>>437
嫉妬か
みっともないな

439 :デフォルトの名無しさん:2011/05/25(水) 14:21:29.98
>>437
痛すぎる初心者のRuby信者だったりして

440 :デフォルトの名無しさん:2011/05/25(水) 14:23:13.07
>>433
Rubyを悪く言うのはすべてPython厨(キリッ

441 :デフォルトの名無しさん:2011/05/25(水) 14:25:19.45
>>440
図星ですか?

442 :デフォルトの名無しさん:2011/05/25(水) 14:26:04.88
>>441
ということにしないと不都合があるんですか?

443 :デフォルトの名無しさん:2011/05/25(水) 14:27:43.45
>>442
まあPython厨じゃないってことにしておきたければしておけばいいんじゃない?

444 :デフォルトの名無しさん:2011/05/25(水) 14:29:23.80
432 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/25(水) 14:02:25.84
この流れを見る限り、言語の優劣はともかくruby使いがキモいことはわかるな
お前らが評判落としてると自覚しようぜ

433 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/25(水) 14:13:25.55
>>432みたいなのがPythonの評判を落とすわけだけどねw

445 :デフォルトの名無しさん:2011/05/25(水) 14:35:39.72
言語仕様で勝負できないクズふたり

446 :デフォルトの名無しさん:2011/05/25(水) 14:36:05.17
>>434
91 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/09(月) 01:53:12.22
>>90
それが分かってるのに分かりにくってどういうこと?w

102 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/09(月) 02:03:17.20
>>101
じゃあ絶対的には分かりにくくないってことかよw
じゃあPerlとかRubyの相対的トラップを教えてよ。で、総合的に評価してよ

今の議論は全く意味を成さないね

104 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/09(月) 02:05:27.05
分かりにくいとかいう言葉面に妙にこだわってるみたいだからその内容をここまで
親切に説明してきたのにこれかw

そんなら最初から聞くなやアホが

381 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/24(火) 20:03:16.73
>>374
PHPユーザーは、需要があるとか現実的な理由でユーザーなんであって
言語仕様のダメさは重々わかってるからなw
でもダメな所が好きなんだぜ

388 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/24(火) 20:56:19.55
スレの趣旨的にはdisりあってくれたほうがw
個人攻撃みたいなのはおもんないけど

389 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/24(火) 21:08:42.53
技術的に正しい指摘だけならいいんだけどな

コミュニティの質とかどうでもいいw

447 :デフォルトの名無しさん:2011/05/25(水) 14:37:03.55
まーたperlの不戦勝か

448 :デフォルトの名無しさん:2011/05/25(水) 14:38:36.29
まあRubyをdisるのはだいたいPython厨だし、PythonをdisるのはだいたいRuby厨

そしてPerlの勝利

449 :デフォルトの名無しさん:2011/05/25(水) 14:43:04.88
perlが傍観してる間に
phpは実績をつんでいく

450 :デフォルトの名無しさん:2011/05/25(水) 14:49:02.55
Perl, PHP, Ruby, Python
さて、仲間外れはど〜れだ?

451 :デフォルトの名無しさん:2011/05/25(水) 14:51:19.50
基準によって全部仲間外れになりうるな

452 :デフォルトの名無しさん:2011/05/25(水) 14:59:34.44
パッと見てひとつだけ大文字で目立ちまくりなPHPかと思ったが
RubyもひとつだけRで始まるな

453 :デフォルトの名無しさん:2011/05/25(水) 15:04:22.54
pythonの長さも目立つw

つか用途も結構違う気が

454 :デフォルトの名無しさん:2011/05/25(水) 15:52:47.67
PHP 使い手が土方寄り、全部大文字
Ruby 頭文字がこれだけR
Python 主用途を決めず汎用を目指している、インデントでブロックを表す

Perlは仲間外れな部分が思い付かないや

455 :デフォルトの名無しさん:2011/05/25(水) 16:00:44.40
perl宝石
ruby宝石
python蛇
php

456 :デフォルトの名無しさん:2011/05/25(水) 16:01:09.90
PHP=PHP

457 :デフォルトの名無しさん:2011/05/25(水) 16:02:09.32
Python->銃

458 :デフォルトの名無しさん:2011/05/25(水) 16:03:21.82
Pythonの元ねたはテレビ番組だと見たような気がするが

459 :デフォルトの名無しさん:2011/05/25(水) 16:10:36.00
いったい何をテーマにバトルしてるのやら

460 :デフォルトの名無しさん:2011/05/25(水) 16:18:33.59
>>459
はい死亡ー

461 :デフォルトの名無しさん:2011/05/25(水) 16:57:15.21
メジャーバージョンアップで成功する(した)のはどれですか?

Perl 6
PHP 6
Python 3
Ruby 1.9 (2.0?)

462 :デフォルトの名無しさん:2011/05/25(水) 17:42:32.75
Python3は使いやすくなったけど、2との互換性はない

463 :デフォルトの名無しさん:2011/05/25(水) 18:32:41.14
Ruby初心者スレで軽く話題になってたんだけど
Pythonって短いスクリプトの実行だと遅いのかな
何かとRubyのほうが重いと思ってたから意外なんだけど

% cat batt.rb
puts File.read('/sys/class/power_supply/BAT1/energy_now').chomp
% cat batt.py
with open('/sys/class/power_supply/BAT1/energy_now') as f: print(f.read().strip())

# Ruby1.9.2, Python2.7.1, Python3.2 でそれぞれ実行
% {time ruby batt.rb && time python2 batt.py && time python3 batt.py} 1> /dev/null
ruby batt.rb 0.02s user 0.01s system 18% cpu 0.182 total
python2 batt.py 0.32s user 0.01s system 53% cpu 0.625 total
python3 batt.py 0.23s user 0.02s system 81% cpu 0.303 total

464 :デフォルトの名無しさん:2011/05/25(水) 18:43:23.30
>>463
そうそう
色々モジュール読んでるからかどうか知らんが、インタプリタの起動自体がPythonは遅い
-eとか-cとかで単純なワンライナー実行して比較してみるとはっきり分かる

まあ遅いとは言ってもJavaみたいに遅いわけじゃないし
Pythonの場合はモジュールをあらかじめバイトコンパイルしとくから
比較的大きなプログラムの場合は特に問題はないだろうとは思うが


465 :デフォルトの名無しさん:2011/05/25(水) 19:10:58.23
>>464
たしかに問題になる場面は限られてるね
うちの場合は出力をdmenuに流すスクリプトをPythonで書いたら
dmenuが操作を受け付けるようになるまで妙に時間がかかるので
ようやく気づいたぐらい
でも小物はこれからはRubyで書くことが増えそうだ

466 :デフォルトの名無しさん:2011/05/25(水) 19:17:58.57
>>463
その遅さは自分の体感と異なるな、と思って試してみたら
Pythonはそのデータより10倍くらい速かったけど、
Rubyも10倍くらい速かったわ。Rubyの起動はええ


467 :デフォルトの名無しさん:2011/05/25(水) 19:24:52.35
>>412
Ruby 使いじゃないんだけど
何で Python vs Ruby という構図を作りたがるん?

468 :デフォルトの名無しさん:2011/05/25(水) 19:33:56.33
>>463
遅いか速いかは別にして、ごく短いスクリプトだとシェルスクリプトやPerlやRubyで済ませてしまうなあ
Pythonでワンライナーは書きにくいし書けても見辛い感じがする
やっぱあれは縦に書いてこそ読み書きしやすい言語なんだなって思う

469 :デフォルトの名無しさん:2011/05/25(水) 19:39:50.57
Pythonワンライナーって使ってる人いるのかな?
自分の場合1〜2回、こんな機能があるんだ〜って使ったっきり。

普通のコーディングはPythonにほぼ移行したけど、ワンライナーは専らPerl。
sed,awkの強力版程度で、むしろPerlにとっては原点回帰かな。
Perlは想定以上の用途に使われすぎたんだよ。
blessとかやり始めた辺りで間違いに気づいて引き返すべきだったんだ。

470 :デフォルトの名無しさん:2011/05/25(水) 19:51:01.01
>>464
Python は起動時に -S オプションを指定しないと import site を実行するからな。
Ruby で言えば require gems を毎回してるようなものだ。

逆に言えば、モジュールの読み込みが他のLLに比べて高速だから、デフォルトで
こんなモジュールを読み込む設定になってしまっている。

471 :デフォルトの名無しさん:2011/05/25(水) 19:59:05.72
>>469
余技でやる人はいる、ぐらいのレベルじゃない?
インデントでブロックを表現しなきゃいけないし
PerlやRubyと違いワンライナー向けの手当てがないから
以下はRubyのオプションから一部抜粋

-0[octal] specify record separator (\0, if no argument)
-a autosplit mode with -n or -p (splits $_ into $F)
-Fpattern split() pattern for autosplit (-a)
-i[extension] edit ARGV files in place (make backup if extension supplied)
-n assume 'while gets(); ... end' loop around your script
-p assume loop like -n but print line also like sed

472 :デフォルトの名無しさん:2011/05/25(水) 20:04:23.67
>>470
なるほど。さっそく>>463を再計測してみたらぐっと速くなった
-Sなしで遅いって言うのはフェアじゃないね

% {time ruby batt.rb && time python2 -S batt.py && time python3 -S batt.py} 1> /dev/null
ruby batt.rb 0.02s user 0.01s system 57% cpu 0.058 total
python2 -S batt.py 0.05s user 0.01s system 89% cpu 0.067 total
python3 -S batt.py 0.09s user 0.02s system 61% cpu 0.184 total
% {time ruby batt.rb && time python2 batt.py && time python3 batt.py} 1> /dev/null
ruby batt.rb 0.02s user 0.01s system 36% cpu 0.092 total
python2 batt.py 0.31s user 0.02s system 63% cpu 0.523 total
python3 batt.py 0.22s user 0.03s system 62% cpu 0.405 total

473 :デフォルトの名無しさん:2011/05/25(水) 20:23:15.25
-Sつけてもpython3だとそこそこ遅いのね。

474 :デフォルトの名無しさん:2011/05/25(水) 20:40:27.72
>>467
何度同じ質問してんだよ

475 :デフォルトの名無しさん:2011/05/25(水) 21:08:42.32
>>473
Python3のopenは、バイナリモードじゃないとファイルをUnicodeにデコードしながら
読み込むからね。
open('/sys/class/power_supply/BAT1/energy_now', 'rb') にしたら、
バイト列をそのまま読み込むので同じくらいの速度になる。

476 :デフォルトの名無しさん:2011/05/25(水) 21:13:07.80
ってことは、shebang行は
#!/usr/bin/env python
とかじゃなくて
#!/usr/bin/python -S
にしたほうがいいのか?

477 :デフォルトの名無しさん:2011/05/25(水) 21:27:59.68
>>475
ワンライナーとか数行プログラムでいちいちそんなもの気にすんのもアレだし
ごく小規模ならPerlかRuby、ある程度規模が大きいか人と共同で開発するならPythonとかやるのが便利そう

478 :デフォルトの名無しさん:2011/05/25(水) 21:29:02.59
>>476
標準ライブラリしか使わなくて、起動時間が大事ならそう書いたらいいけど、
普通のコマンドラインツールでは体感できないくらいの速度だから不要。

479 :デフォルトの名無しさん:2011/05/25(水) 21:35:22.12
0.3秒もかかるようじゃCGI用途では重すぎだから-Sつけた方がよさげ。

480 :デフォルトの名無しさん:2011/05/25(水) 21:35:51.24
MAMPでローカルにphpテスト環境を走らせています(現在勉強中の立場です)
JSONデータの扱いについて質問があります

test.jsonというファイルがあって、
たとえばJSの$.getJSON()で通信しようとするとき、拡張子が
test.jsonのままだと読み込みませんが、
test.json.phpとすると通信に成功するのはなぜでしょうか?

まったく同じセットでレンタルサーバーにアップしてテストしてみると今度は逆に
test.json.phpだと読み込みませんが、
test.jsonとすると通信に成功します。

いたらないことばかりですがご教示いただけますでしょうか。
自分としてはどちらでも同じ拡張子でテストができるといいのですが。



481 :デフォルトの名無しさん:2011/05/25(水) 21:39:49.19
>>480
ここはそういうスレじゃないよ
WebProg板の該当スレで聞くよろし

482 :デフォルトの名無しさん:2011/05/25(水) 21:48:51.26
失礼しました。

483 :デフォルトの名無しさん:2011/05/25(水) 22:37:50.89
>>426
えっ

484 :デフォルトの名無しさん:2011/05/25(水) 22:41:59.60
PerlはUTF-8 localeな環境じゃないと、日本語扱ったとたん
ちっとも楽じゃなくなるのが困るぜ

ところでPython2.xだとcat -nみたいなのは下のように書くと思うけど

import sys
for n, s in enumerate(iter(sys.stdin.read, '')):
 print '%6d\t%s' % (n + 1, s)

3.xだと

import sys
for n, s in iter(sys.stdin.buffer.readline, b''):
 sys.stdout.buffer.write('%06d\t'.format(n).encode('ascii') + s)

こんな風に書くの?なんかやだなあ
もっとうまい書き方あんのかな

485 :484:2011/05/25(水) 22:44:27.06
ごめんなんか色々間違ってる……
2.xのコードは
for n, s in enumerate(iter(sys.stdin.readline, '')):
 print '%6d\t%s' % (n + 1, s),
こうかな

486 :デフォルトの名無しさん:2011/05/26(木) 00:55:24.11
subprocess.call('cat', '-n')

487 :デフォルトの名無しさん:2011/05/26(木) 01:03:36.21
for n, s in enumerate(sys.stdin):
 print '%6d\t%s' % (n + 1, s.rstrip("\n"))

とかじゃないか?


488 :484:2011/05/26(木) 01:20:14.59
>>487
そう書くと、sys.stdinがttyにbindされているときに具合が悪いので……
Cのstdioのようにttyかどうかでバッファリング戦略変えてくれればいいのにと
いつも思う

489 :デフォルトの名無しさん:2011/05/26(木) 02:08:02.52
>>488
Python3 ではテキストIOはラインバッファリングがデフォルトだから、
その点は汚いハックが要らないんだけど、その代わりバイト列を文字列として
扱いたいときはlatin1を使うという汚いハックがいる。

import sys
fin = open(sys.stdin.fileno(), 'r', encoding='latin1')
fout = open(sys.stdout.fileno(), 'w', encoding='latin1')
for n, L in enumerate(fin):
    fout.write('{0:5d}\t{1}'.format(n, L))


490 :484:2011/05/26(木) 02:13:34.89
>>489
3使ってないからそういうテクは知らなかった、ありがとう
それはかなりウゲーって感じだなぁ……

まあ書き捨てで多少なりとも楽したい、という目的の場合はアリか

491 :デフォルトの名無しさん:2011/05/26(木) 02:17:17.82
PerlでUTF8以外使う場合は、use encoding 'euc-jp';するだけだろ。

492 :デフォルトの名無しさん:2011/05/26(木) 02:19:32.02
>>491
Perlのencoding関係のメンテナさんはuse encodingは黒歴史だから
使うなって言ってるけど
ttp://blog.livedoor.jp/dankogai/archives/51221731.html

493 :デフォルトの名無しさん:2011/05/26(木) 02:22:10.42
ttp://www.aritia.org/hizumi/perl/perlwin.html
こういうの見るとマジゲンナリ

494 :デフォルトの名無しさん:2011/05/26(木) 02:30:11.50
スクリプト自体をutf8で書く場合は、use utf8して、PerlIOとかでエンコードの変換を処理するってこと。
エディタがutf8に対応してないとかcatで標準出力に流して文字化けするのが嫌だとかで、スクリプト自体をeuc-jpで書きたい場合は、use encoding 'euc-jp'する。



495 :デフォルトの名無しさん:2011/05/26(木) 09:12:56.13
>>411は、matzの宗教知った上でモルモン言うてるんか?
知らずにそういう考えに至ったのなら、それはそれですごい洞察力だと思う。

496 :デフォルトの名無しさん:2011/05/26(木) 09:31:10.68
>>495
誰もレスしてくれなからってそんな自演を

497 :デフォルトの名無しさん:2011/05/26(木) 09:50:44.61
敵は自演妄想か。

498 :390:2011/05/26(木) 20:35:15.86
>>392
>>423
納得がいった。
> ・ $HOME/bin は Ruby スクリプト
> ・ サーバサイドスクリプトは Perl
> ・ システム起動スクリプトは Python
まさに自分の使い方はこのとおりだわ。

システムで動作するRubyに標準的なものが存在してない感じなのに
仕事でRails使うときどうすんだよって思ってたんだけど

> システムにインストールされるRubyなんてどうせRails用だろ1.8.7でいいよみたいなすごい適当な
ってことは、debでは1.8のfullをいれときゃいいのか。

今のところは、チームで開発するならPerlかPythonが無難みたいね。

499 :デフォルトの名無しさん:2011/05/26(木) 20:39:29.86
Perlは実績があるからというだけで
大規模開発に向いているとはいえない

500 :デフォルトの名無しさん:2011/05/26(木) 20:41:53.17
大規模なのに LL を使うの?
プロトタイピング?

501 :390:2011/05/26(木) 20:45:56.76
まあ、Perlで二人以上で作ると、みんなまったく違う書き方するんだよなぁ
コーディング規約でガチガチにするような言語でもないし。
今度のプロジェクトはPythonを提案するつもり

標準的インストール環境が統一されれば、Rubyでやりたい気もするんだけど、
そのへんのところ、Rubyの開発者界隈はどう考えてるんだろう?

502 :デフォルトの名無しさん:2011/05/26(木) 20:56:34.32
>>501
インストール手順書は作らないの?

503 :デフォルトの名無しさん:2011/05/26(木) 21:39:05.06
>>499
Perlで書かれたでかいプログラムの保守とか投げられたら死にそう

504 :デフォルトの名無しさん:2011/05/26(木) 22:05:44.03
まあ2にゃんもしにそうだしな

505 :デフォルトの名無しさん:2011/05/26(木) 22:08:28.94
読まれることと保守することを意識して書けばだいたいおk

506 :デフォルトの名無しさん:2011/05/26(木) 22:46:12.66
海外じゃまだPerl使い多いよな
レンタルサーバーもPerlかPHP

507 :デフォルトの名無しさん:2011/05/27(金) 00:15:49.17
スコープが関数なPythonで大規模開発は不可能

508 :デフォルトの名無しさん:2011/05/27(金) 00:16:55.13
>>507
import dis

509 :デフォルトの名無しさん:2011/05/27(金) 00:20:14.10
>>507
全然説得力無い。OOP脳?


510 :デフォルトの名無しさん:2011/05/27(金) 00:24:34.56
え?Pythonってスコープが関数なの?じゃPHPと一緒じゃん。だっせー。

511 :デフォルトの名無しさん:2011/05/27(金) 00:26:29.78
Python はあと10倍くらい速ければな
Unladen Swallow が成功していれば良かったんだが

512 :デフォルトの名無しさん:2011/05/27(金) 00:27:26.17
スコープがかなり甘いCでさえ大規模開発は可能
もちろん可能不可能で言えばってレベルの話

513 :デフォルトの名無しさん:2011/05/27(金) 00:33:37.21
Pythonのグローバルはファイル単位。
その意味では翻訳単位(ファイル単位)のスコープを持つCと似てる。


514 :デフォルトの名無しさん:2011/05/27(金) 00:36:46.68
う、うん……(´・ω・`)

515 :デフォルトの名無しさん:2011/05/27(金) 00:55:33.85
結局Pythonはファイルで区切るし、Perlはpackageで区切るし、Rubyはmoduleで区切るから
実質的なスコープは似たようなもんだよね

516 :デフォルトの名無しさん:2011/05/27(金) 01:08:13.54
う、うん……(´・ω・`)

517 :デフォルトの名無しさん:2011/05/27(金) 01:25:24.11
ん、ぁん……(´=ω=`)

518 :デフォルトの名無しさん:2011/05/27(金) 01:53:45.84
名前空間にあとで追加したい場合どうしたらいいん?

519 :デフォルトの名無しさん:2011/05/27(金) 04:31:11.48
どの環境の話よ

520 :デフォルトの名無しさん:2011/05/27(金) 09:33:11.65
Perlはスコープをブロックで区切る。おおざっぱなPythonと一緒にしないで。

521 :デフォルトの名無しさん:2011/05/27(金) 09:41:33.53
ちゃんとした lambda があったら let の代用が出来たんだけどね...
macro があればなお良い

522 :デフォルトの名無しさん:2011/05/27(金) 09:42:40.70
lambdaやgenerator式やリスト内包表記では
スコープ分かれてるよ


523 :デフォルトの名無しさん:2011/05/27(金) 10:22:09.46
Python にもきちんとしたクロージャがあれば、ブロックスコープなんて瞬時に実装出来たのにね
もちろん、大々的に使うにはシンタックスシュガーが必要だけど

524 :デフォルトの名無しさん:2011/05/27(金) 10:38:33.22
関数自体が1画面に収まる範囲だったら関数単位のスコープで全く困ることは
ないんだけど、たまにGUIアプリとかで1画面に収まらない関数がぽこぽこ
存在することがあって、スコープもそうだけどインデントブロックも追うのが
面倒だったりする。

良い方に解釈したら、言語レベルで関数分けろとプレッシャーをかけてくる。

525 :デフォルトの名無しさん:2011/05/27(金) 10:47:28.15
Cみたいにファイル単位のスコープあったりするのって、なんか美しくないのは
わかるけど、多人数のプロジェクトのときとかにわかりやすいんだよね。どこを直して
いいのか悪いのか、みたいなのが。直感や現実的な作業におけるわかりやすさという
点でバランスがいい。
Cが生き残っているのはそういう部分もあるんじゃないかな?

526 :デフォルトの名無しさん:2011/05/27(金) 12:07:07.60
美しくなくねーよ

527 :デフォルトの名無しさん:2011/05/27(金) 13:28:53.67
>>522
リスト内包がスコープもつようになったのって、3.xからじゃなかったっけ?

528 :デフォルトの名無しさん:2011/05/27(金) 15:52:43.49
最新版でスコープ持ってるなら良いんじゃね

529 :デフォルトの名無しさん:2011/05/27(金) 21:10:23.69
言語仕様の話になると途端にスレが静まるなw

530 :デフォルトの名無しさん:2011/05/27(金) 21:14:34.43
内部構造は普通ユーザが意識するものじゃないし
意識しなければいけないのなら設計がおかしい

531 :デフォルトの名無しさん:2011/05/27(金) 21:24:10.09
どこに内部構造の話題があるんだ?

532 :デフォルトの名無しさん:2011/05/27(金) 21:28:30.50
なんだ常にROMってる奴いるんだな

533 :デフォルトの名無しさん:2011/05/27(金) 21:39:48.20
>>524
深いインデントは、視線で綱渡りをしている気持ちになるよね

534 :デフォルトの名無しさん:2011/05/28(土) 16:28:57.45
エディタの設定変えなよ

535 :デフォルトの名無しさん:2011/05/28(土) 16:33:57.80
それは一体どんな設定?

536 :デフォルトの名無しさん:2011/05/28(土) 16:36:32.30
タブ幅を大きくするとか、インデントの可視化とか

537 :デフォルトの名無しさん:2011/05/28(土) 16:39:42.25
他の言語はそんな事をする必要は無いんだけど?

538 :デフォルトの名無しさん:2011/05/28(土) 16:41:01.00
他の言語でもそうしたほうが分かりやすいよ

539 :デフォルトの名無しさん:2011/05/28(土) 16:42:38.79
たまに1v1のチャットと勘違いしてる人がいて怖い
他の言語とか書かれても何の他なのか知らんがな

540 :デフォルトの名無しさん:2011/05/28(土) 16:43:50.18
python以外の全ての言語の中で、彼らが知ってる言語

541 :デフォルトの名無しさん:2011/05/28(土) 16:44:33.90
他の言語ではインデントの可視化なんて要らないけど?

542 :デフォルトの名無しさん:2011/05/28(土) 16:46:00.60
>>539
話に混ざりたいの?

543 :デフォルトの名無しさん:2011/05/28(土) 16:46:08.61
pythonでもいらんよ

544 :デフォルトの名無しさん:2011/05/28(土) 16:46:30.76
>>534
>>543

545 :デフォルトの名無しさん:2011/05/28(土) 16:47:24.43
>>542
いえあんまり
なんか動的言語スレにいいとこ持ってかれた感じだ

546 :デフォルトの名無しさん:2011/05/28(土) 16:47:36.30
別にインデントを可視化しないと微妙に読みにくいぐらいで言語の評価に影響は無いがな。

547 :デフォルトの名無しさん:2011/05/28(土) 16:47:41.48
>>544
お前馬鹿だなあw

548 :デフォルトの名無しさん:2011/05/28(土) 16:48:12.54
>>545
じゃあ、何の他なのか知らなくてもどうでも良いじゃん

549 :デフォルトの名無しさん:2011/05/28(土) 16:48:50.66
>>546
そう思いたいなら、それで良いんじゃないの

550 :デフォルトの名無しさん:2011/05/28(土) 16:51:20.02
エディタの設定変えないで文句言ってる奴は、一度変えてみろってことだろ
デフォルト設定でも当たり前にpython使ってる奴はいくらでもいる

そんな低次元の不満で言語を評価してるつもりになるなよ

551 :デフォルトの名無しさん:2011/05/28(土) 16:52:34.63
>>546
インデントが深いと普通に見辛いよ

http://d.hatena.ne.jp/camlspotter/20101212/1292165692

552 :デフォルトの名無しさん:2011/05/28(土) 16:54:49.70
ネストが深くても見やすいという”他の言語”の例を上げろよ

553 :デフォルトの名無しさん:2011/05/28(土) 16:56:02.27
>>552
他の言語はインデント幅を血眼で追い掛けなくていいから

554 :デフォルトの名無しさん:2011/05/28(土) 16:58:04.50
血眼になる素人とかどうでもいい

555 :デフォルトの名無しさん:2011/05/28(土) 17:07:22.79
>>553
ネストが深いとどの言語でも追いかけにくいぞ

556 :デフォルトの名無しさん:2011/05/28(土) 17:09:33.60
ブロック構造が括弧なら1行に10個分くらいネストしてもインデントを追わなくて済むね!^^

557 :デフォルトの名無しさん:2011/05/28(土) 17:11:32.11
言語仕様でもインデントの話だと食いつきが良いんだな


558 :デフォルトの名無しさん:2011/05/28(土) 17:12:12.06
pythonのことなんてインデント制御ってことしか知らないから^^

559 :デフォルトの名無しさん:2011/05/28(土) 17:13:14.15
>>551
エディタの設定変えてインデント見えるようにするだけでいいんじゃないの?

560 :デフォルトの名無しさん:2011/05/28(土) 17:15:07.74
>>556
今どれくらいの階層のブロックにいるかいちいち括弧数えなきゃいけなくなるね。

561 :デフォルトの名無しさん:2011/05/28(土) 17:31:16.08
スコープの話もこれくらい喰いつきが良ければな・・・


562 :デフォルトの名無しさん:2011/05/28(土) 17:32:25.37
スコープにこだわってるキチガイなんなの?それしか言えないの?

563 :デフォルトの名無しさん:2011/05/28(土) 17:35:03.64
まあインデントの話よりはスコープの方が重要だわ


564 :デフォルトの名無しさん:2011/05/28(土) 17:36:15.90
インデントなんかの下らない話より重要なのは良いけど、
いつまでそれを引っ張ってるんだ?馬鹿なの?

565 :デフォルトの名無しさん:2011/05/28(土) 17:46:27.11

539 :デフォルトの名無しさん:2011/05/28(土) 16:42:38.79
たまに1v1のチャットと勘違いしてる人がいて怖い
他の言語とか書かれても何の他なのか知らんがな



面白い発言だね 1v1のチャット

566 :デフォルトの名無しさん:2011/05/28(土) 17:52:51.46
PvPなんかでversusがvと略されるの見慣れていたのでスルーしてたは。


567 :デフォルトの名無しさん:2011/05/28(土) 17:54:58.89
意味不明だったけどスルーしたは

568 :デフォルトの名無しさん:2011/05/28(土) 18:01:10.34
>>564
君にはスコープの話は難しくて分かんないから
その話ばかりじゃ詰まらないんだね?
低能の君に分からない話題でごめんね?
でも、君がもっと面白い話を振っても良いんだよ?


569 :デフォルトの名無しさん:2011/05/28(土) 18:06:31.04
俺にしか出来ない言語仕様の難しい話( ー`дー´)キリッ

570 :デフォルトの名無しさん:2011/05/28(土) 18:08:29.53
いやいや、君だけが理解できない言語仕様の話www


571 :デフォルトの名無しさん:2011/05/28(土) 18:32:34.32
スコープの話もこれくらい喰いつきが良ければな・・・


↑誰も食いつかなくて涙目なのに何いってんのこの人

572 :デフォルトの名無しさん:2011/05/28(土) 18:33:14.88
スコープの話したくてたまらない奴は一人で語ってろよ
スコープって言ってるだけのばかじゃないかw

573 :デフォルトの名無しさん:2011/05/28(土) 18:35:10.16
話し相手が欲しいなら他のスレに行った方が良いんじゃないの

574 :デフォルトの名無しさん:2011/05/28(土) 20:44:02.41
インデントよりはマシだからスコープの話するけど。
スコープが細かくなったらどんな利点があるの?

変数の寿命が短くなったらさっさとオブジェクトが破棄されてメモリ効率が上がるってのは多少あるけど、
明示的にオブジェクトを破棄できる言語では、そんなに嬉しいとも思えない。

変数名が衝突して痛い目を見るって言いたいなら、
1関数内に把握しきれないほど多数の変数があること自体が悪い。

スコープ分けたとしたら、
if foo:
 do_something_a()
 x = a
else:
 do_something_b()
 x = b
はどう書くのよ。
前もってxを宣言するのか、if/elseブロックの中でxが外のスコープにあることを宣言するのか知らないけど、
あんまりやりたくないな。そういうの。

575 :デフォルトの名無しさん:2011/05/28(土) 21:36:22.68
ifが式になればおk

576 :デフォルトの名無しさん:2011/05/28(土) 21:49:46.37
ifが式の言語だと何の問題ないし、Perlのif「文」でも
my $x = do {
 if (foo) { do_something_a(); a; } else { do_something_b(); b; }
};
でいいんじゃね

JavaScriptも関数スコープ言語で素直にブロックスコープが利用できないから
ブロックを真似て可視性を制御するために
(function(){})()
みたいな涙ぐましいことやってるわけだけど
Pythonはそれすらできないからな

577 :デフォルトの名無しさん:2011/05/28(土) 21:56:48.49
>>574
Rubyはifではスコープ作らんけどイテレータはブロック使うのでスコープ作るから
その前に代入文を書くことがある
だからPythonで言うところのNoneを代入するよ

ゼロだと数値計算、空文字列だと文字列処理、
空リストだとリスト処理の初期値に見えかねないのであくまでNoneね

まあPythonは関数ローカルな関数作れるんだから
スコープ欲しいなら関数内で関数分けすりゃいいと思うんだけど…

578 :デフォルトの名無しさん:2011/05/28(土) 21:59:11.05
同じ関数スコープでも、まともな匿名関数の使えるJavaScriptなら
var x = (function() {
 if (foo) {
  do_something_a()
  return a
 } else {
  do_something_b()
  return b
 }
})()
と書けるね

579 :デフォルトの名無しさん:2011/05/28(土) 22:01:08.07
素人考えで悪いんだけど、PythonってJSのfunctionやC++0xのラムダ式みたいに、
その場で関数作って使い捨てることってできないの?
lamdaは出来ること限られてるし

580 :デフォルトの名無しさん:2011/05/28(土) 22:02:52.70
>>579
そのできること限られてるlambda以外に匿名関数は無いよ
(Javaで言う匿名クラスもない)

581 :デフォルトの名無しさん:2011/05/28(土) 22:04:24.38
なんでそんなに匿名関数好きなの?

582 :デフォルトの名無しさん:2011/05/28(土) 22:05:58.78
その場でテキトーに名前付けて関数定義すれば良いじゃん

583 :デフォルトの名無しさん:2011/05/28(土) 22:07:29.59
・しばしばそのほうが簡潔だから
・名前の可視性に関して、プログラマの意図をコード上により忠実に
表現できるから

JavaScript使ったことある人なら理解してると思うけど……
みっともなくとも無駄に名前空間を汚さないようにfunction使いまくり

584 :デフォルトの名無しさん:2011/05/28(土) 22:11:27.45
なくて困ることあるの?

585 :デフォルトの名無しさん:2011/05/28(土) 22:20:54.82
Pythonでもローカル関数名なんてかなりテキトーだよ
そんな長い関数じゃないならfuncとかfとか付けちゃうこともあるし…
そりゃ長い関数内のローカル関数ならある程度の意味を持たせるけどさ

586 :デフォルトの名無しさん:2011/05/28(土) 22:28:07.93
すぐ必要条件で考えたがるのがPython信者の悪い癖だ

587 :デフォルトの名無しさん:2011/05/28(土) 22:30:08.56
じゃあ匿名関数があるJS使ってれば良いじゃん。なんで無理してPython使って文句言ってんの?

588 :デフォルトの名無しさん:2011/05/28(土) 22:31:41.56
仕様を把握していても使ってるとは限らないだろう

589 :デフォルトの名無しさん:2011/05/28(土) 22:33:11.76
確かに。使ってないからなくて困るかって質問に答えられなかったのか

590 :デフォルトの名無しさん:2011/05/28(土) 22:33:17.75
>>587
このスレでそれを言ったら負けって感じのレスだなw

>>586
necessary conditionじゃなくてrequirementの意味か

591 :デフォルトの名無しさん:2011/05/28(土) 22:37:38.33
負けて良いからお前はJS使ってろよ

592 :デフォルトの名無しさん:2011/05/28(土) 22:42:40.25
っていうPythonぐらいじゃないの、メジャーなLLでこんだけ匿名関数の
扱いが悪いのって
まあPHPだと5.3以降だっけかまともに使えるようになったの

593 :デフォルトの名無しさん:2011/05/28(土) 22:44:21.32
なくて困ったことが一度もないんだけどw

594 :デフォルトの名無しさん:2011/05/28(土) 22:44:40.39
λ ...

595 :デフォルトの名無しさん:2011/05/28(土) 22:50:07.21
>>593
ふわふわしたおまけって奴だな

http://practical-scheme.net/trans/beating-the-averages-j.html

596 :デフォルトの名無しさん:2011/05/28(土) 22:53:10.32
他所のイデオロギーを持ち込むなよ

597 :デフォルトの名無しさん:2011/05/28(土) 23:18:22.18
>>574
Python 良く知らないので、間違ってたらスマソ。

#!/usr/bin/python
list = []
def foo():
  global list
  x = 10
  for i in range(3):
    def bar():
      return x + i
    list.append(bar)
foo()
for i in list:
  print i
  print i()

↑これを実行すると↓こうなる

<function bar at 0x1004b8050>
12
<function bar at 0x1004bb320>
12
<function bar at 0x1004bb2a8>
12

みたいなのは直感的?

598 :デフォルトの名無しさん:2011/05/28(土) 23:25:14.47
ちなみに JavaScript だとこう書ける

var list = [];
(function foo() {
  var x = 10;
  for(var i = 0; i < 3; i++) {
    with({i: i}) {
      list.push(function() { return (x + i); });
    }
  }
})();
for(var i = 0; i < list.length; i++) {
  console.log(list[i]);
  console.log((list[i])());
}

↓実行結果

function() { return (x + i); }
10
function() { return (x + i); }
11
function() { return (x + i); }
12

599 :デフォルトの名無しさん:2011/05/28(土) 23:31:24.80
>>598
Python の場合、クロージャの本当の能力なんて滅多に使わないんだから、
関数を定義した時に外側の変数の値をそのままバインドしちゃえば良いのにって
思うな。
一応、そういう時によく使うイディオムでは、 def bar(x=x, i=i) ってして、
内側の関数のデフォルト引数に外側の変数自体じゃなくて変数の値をバインド
してやる。

600 :デフォルトの名無しさん:2011/05/28(土) 23:35:30.80
>>597
>>597
それ、クロージャを持つ手続き型言語で破壊的ループを用いてそれと同じことをやると
大抵同じ結果になるんじゃないか(そうならないものを知らない)
変数が値ではなく箱に束縛されてるのが手続き型言語なので

Pythonの例でいうと、以下のようにすればOK
def foo():
    L = []
    for i in range(3):
        L.append((lambda x: lambda: 10 + x)(i))
    return L

closures = foo()
for c in closures:
    print c
    print c()

勿論以下のように書けば、関数foo()はいらない
closures = [(lambda x: lambda: 10 + x)(i) for i in range(3)]

601 :デフォルトの名無しさん:2011/05/28(土) 23:40:26.60
>>599
なるほど。
with と同様、回避方法は編み出されてるのね・・・

>>600
まあそういう答えは来るかなと思った。
Python の lambda に制限があるのは既出だから・・・

602 :デフォルトの名無しさん:2011/05/28(土) 23:43:35.89
>>599
確かに少なくともnonlocalの無かった2.xでは
箱でなく値のキャプチャで良かった筈だね

603 :デフォルトの名無しさん:2011/05/28(土) 23:44:24.93
という事で、以上がブロックスコープが有った方が良い理由の一例。

あとは名前空間を汚さない為とか、既出の通り。

604 :デフォルトの名無しさん:2011/05/28(土) 23:46:42.58
大したことないね

605 :デフォルトの名無しさん:2011/05/28(土) 23:48:13.83
>>602
nonlocal も導入されたけどほとんど使われてないという。

606 :デフォルトの名無しさん:2011/05/28(土) 23:48:49.54
>>597
そんな実行結果になるわけがないだろうと・・・
>>> L=[]
>>> def foo():
... x=10
... for i in range(3):
... def bar():
... return x + i
... L.append(bar)
...
>>> foo()
>>> L
[<function bar at 0x024FB0B0>, <function bar at 0x024FB270>, <function bar at 0x024FB0F0>]
>>> for f in L:
... print f,f()
...
<function bar at 0x024FB0B0> 12
<function bar at 0x024FB270> 12
<function bar at 0x024FB0F0> 12
>>>

え!?なんで12になるの!?

607 :デフォルトの名無しさん:2011/05/28(土) 23:48:58.20
>>604
そう思う人が Python を使ってる
そうじゃない人は他の言語を使ってる

簡単な理屈だね

608 :デフォルトの名無しさん:2011/05/28(土) 23:49:28.35
>>605
っていうか3.xがほとんど使われてないという……


すみませんすみません

609 :デフォルトの名無しさん:2011/05/28(土) 23:54:53.05
>>607
確かにJSなんて全く使いたいなんて思わないね

610 :デフォルトの名無しさん:2011/05/28(土) 23:57:46.08
JSっていうかPythonだけ仲間はずれなんだけどね

611 :デフォルトの名無しさん:2011/05/28(土) 23:58:48.46
python使えない人たちカワイソーw

612 :デフォルトの名無しさん:2011/05/29(日) 00:00:09.68
python使えない人はPHPで我慢するしかないね…

613 :デフォルトの名無しさん:2011/05/29(日) 00:00:13.39
>>606
その i は一度きりじゃなく、永遠だって事

614 :デフォルトの名無しさん:2011/05/29(日) 00:02:26.48
python使ってないはずなのにpythonの話題しかないw

615 :デフォルトの名無しさん:2011/05/29(日) 00:05:57.31
Python はネタの宝庫なんで

616 :デフォルトの名無しさん:2011/05/29(日) 00:06:13.39
Pythonが決定的にダメなのは2ちゃんに貼ってあるソースをそのままコピペしたときに
動かないことだな。
RubyやPerlならそういうことはない。やはりブレースを使う言語の勝ち。

617 :デフォルトの名無しさん:2011/05/29(日) 00:07:59.77
せっかく勝ったのにユーザー減りまくり落ち目言語は辛いね

618 :606:2011/05/29(日) 00:12:36.69
そっか
iはforから抜けるときには2になっててxは10不変なんだから常に2+10となったんだ
#てっきりxが原因になってるものだと思い込んでたわ

619 :デフォルトの名無しさん:2011/05/29(日) 00:13:18.78
Perlはユーザ減ってそうだがRubyも減ってるのか?

620 :デフォルトの名無しさん:2011/05/29(日) 01:26:20.39
*unixを扱う際に、pythonの代用になりうるjavascriptの実装ない?
rhinoとかgjs,seedなんかを使ってる人いたら使い勝手おしえて欲しいなん

621 :デフォルトの名無しさん:2011/05/29(日) 01:54:29.73
>>575-576,578
いい解決法とは思えんな。
if foo:
 do_something_a()
 x = a
else:
 do_something_b()
 x = b
 y = bb
はどうするの?
yに無駄に0でも代入しとく?

622 :デフォルトの名無しさん:2011/05/29(日) 01:55:37.39
問題解決能力の低い奴はプログラミングに向いてないと思います

623 :デフォルトの名無しさん:2011/05/29(日) 02:01:53.07
>>603
君の書き込みがどれかよく分からなかったんだけど、結局何がいいの?

ていうか、名前空間汚さないって言われても。
そんなこと気にしないといけないほどに関数内に名前が溢れてるって、その設計どうなの?

624 :デフォルトの名無しさん:2011/05/29(日) 02:04:18.25
>>622
「向いてないと思います」で済ませる奴のことか。

625 :デフォルトの名無しさん:2011/05/29(日) 02:05:07.24
>>620
Rhinoだけ試したことあるけど
あれは起動に時間がかかるからそれだけで代替にはならないと思う

>>621
Rubyのばあい

ret = if false
 puts 'do_a()'
 x = :a
else
 puts 'do_b()'
 x = :b
 y = :bb
end

626 :デフォルトの名無しさん:2011/05/29(日) 02:06:22.21
ああ、返り値使ってないからretいらないか

627 :デフォルトの名無しさん:2011/05/29(日) 03:27:57.12
Perlで、普通はこう。
my ($x, $y);
if ($foo){
    do_something_a();
    $x = $a;
}
else {
    do_something_b();
    $x = $b;
    $y = $bb;
}

628 : 忍法帖【Lv=1,xxxP】 :2011/05/29(日) 03:31:03.82
文章長いと言われた上にsambaに引っかかる忍法帖Lv1

お勧めしない書き方はこう。
my ($x, $y) = do {
    if ($foo) { do_something_a(); $a } else { do_something_b(); ($b, $bb) }
};

perlで$a,$bは…眠いからいいや。

629 :デフォルトの名無しさん:2011/05/29(日) 04:34:06.88
>>619
どちらも一時のWeb言語の時代が終わって、本来のユーザ数に戻った感じ。
Web言語時代からすれば確かに減ってるんだけどね。

630 :デフォルトの名無しさん:2011/05/29(日) 08:25:25.21
局所的に使う名前を漏らさないとか、変数の寿命を制限するとか、
普通の言語では普通の機能だわな

631 :デフォルトの名無しさん:2011/05/29(日) 08:29:17.09
>>621
それってfooが真のときにyを使用したら鼻から悪魔か
ひどいコードだな

632 :デフォルトの名無しさん:2011/05/29(日) 08:48:13.08
>>625
それって変数スコープはどこにあるの?

>>630
そうする利点は?

>>631
どの言語想定してる?
大抵のLLなら鼻から悪魔にはならないと思ったが。

633 :デフォルトの名無しさん:2011/05/29(日) 08:49:14.83
現実的に考えれば>>621のyは実際には両方のケースでの初期化がいるか
fooが真のケースでしか使用しない(つまりifの後で使用できるのはただの
名前のリーク)のいずれかのはずだ

条件次第でだとunbound variableで実行時エラーになる脆弱で醜い
コードをPythonユーザは嬉々として書き、コンパイラも何の苦情も言わないわけだ

どっちみち、Pythonのように書けることは何のメリットでもない
分かってないようがな

634 :デフォルトの名無しさん:2011/05/29(日) 09:06:48.76
>>632
>>> foo = 0
>>> if foo:
... y = 0
... else:
... pass
...
>>> print y

Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'y' is not defined


635 :デフォルトの名無しさん:2011/05/29(日) 09:07:45.85
>>633
コンパイラとインタプリタの区別くらいつけような


636 :デフォルトの名無しさん:2011/05/29(日) 09:08:45.86
>>635
Pythonがソースコードをコンパイラでバイトコンパイルしてから
VMで実行する言語であることすら知らなかったのか……

637 :デフォルトの名無しさん:2011/05/29(日) 09:12:41.43
>>632
Ruby の if はスコープを作らず、if ... end が最後の処理値を返す(捨てられることも多い)
条件が then なら x は :a、 y は新規定義せず、ret は最後の処理の戻り値だから :a
条件が else なら x は :a、 y は :bb、ret は最後の処理の戻り値だから :bb

638 :デフォルトの名無しさん:2011/05/29(日) 09:14:51.84
Pythonでは関数内では一つの変数に一つの意味を割り当てるとか、
スコープが問題になるほど長いコードは書かないとか、
いわゆる"pythonic"なコードを書くことを推奨する文化があるから
今の仕様なんだろうけど
正直言ってPythonユーザでもブロックスコープは欲しいですよ


639 :デフォルトの名無しさん:2011/05/29(日) 09:19:58.76
スコープ掘る文があれば良いんじゃね?

scope:
  云々

みたいな

640 :デフォルトの名無しさん:2011/05/29(日) 09:31:11.51
ブロックスコープのために変な構文追加するぐらいなら、俺は要らない。

641 :デフォルトの名無しさん:2011/05/29(日) 10:39:52.92
Luaってパッと見、構文がPascal系だけどJavaScriptに結構似てる感じだなー
と思ってたけど、ブロックスコープなんだな

do
 local x = 1
 print(x)
 do
  local x = x + 1
  print(x)
 end
 print(x)
end

これが期待通りに動く
(LuaのlocalはPerlのlocalじゃなくてmyの意味、つまりレキシカル)
束縛を明示する→ブロックスコープ
束縛を明示しない→関数スコープ
がわりとありがちなパターンとすると、JavaScriptはちょっと変り種?

642 :デフォルトの名無しさん:2011/05/29(日) 11:34:21.56
>>638
>正直言ってPythonユーザでもブロックスコープは欲しいですよ

普通の Python ユーザはそうだよね。

今更ブロックスコープのメリットが分からない人なんて
いないと信じたいね。

643 :デフォルトの名無しさん:2011/05/29(日) 11:58:18.06
ブロックスコープのメリットはわかってるけど、
書き方が煩雑になるなら要らないと言うだけの
ことなんだが...。

トレードオフとか考えない人なのかな?

644 :デフォルトの名無しさん:2011/05/29(日) 12:09:34.63
>>643
メリットが分かってるなら、何で自分に話しかけられたと思ってるの?

そんな事より >>623 辺りにメリットを教えてあげると良いと思うわ。

645 :デフォルトの名無しさん:2011/05/29(日) 12:14:25.75
いやよん

646 :デフォルトの名無しさん:2011/05/29(日) 12:16:16.49
お前の説明がわけわかめだから、>>623 にバカにされてるだけだと思うぞ。

647 :デフォルトの名無しさん:2011/05/29(日) 12:26:29.60
>>646
実際、自分が理解するまでは問題なんて存在しないという姿勢の人に
噛んで含んで説明するのは骨が折れるもんだぜ

それがいかに一般的には常識と思われている事柄でもね

648 :デフォルトの名無しさん:2011/05/29(日) 12:34:13.35
それは正しいが、君がバカにされてることと何の関係もないぞ。

649 :デフォルトの名無しさん:2011/05/29(日) 12:37:29.79
そう思いたいなら、そう思えば良いんじゃないの
>>623さん

650 :デフォルトの名無しさん:2011/05/29(日) 12:43:34.51
>>643
Python は知らんけど、JavaScript は let を導入しただけ
トレードオフに悩むほど書き方は煩雑にはなっていないよ

651 :デフォルトの名無しさん:2011/05/29(日) 12:52:25.20
>>649
自演厨か...。

> 実際、自分が理解するまでは問題なんて存在しないという姿勢の人に
> 噛んで含んで説明するのは骨が折れるもんだぜ

実感したよ。(w

652 :デフォルトの名無しさん:2011/05/29(日) 12:58:50.85
本人でもないのに、バカにされたバカにされたと叫んでたのかw
お疲れさん...。

653 :デフォルトの名無しさん:2011/05/29(日) 12:59:49.30
>>650
>Python は知らんけど、JavaScript は let を導入しただけ
>トレードオフに悩むほど書き方は煩雑にはなっていないよ

しただけって...、まあ人によって受け止め方は違うわな。

654 :デフォルトの名無しさん:2011/05/29(日) 13:02:38.65
書き方について、他にどういう受け止め方があるのかな...。

655 :デフォルトの名無しさん:2011/05/29(日) 13:20:32.12
名前空間を汚さないという利点は、それで困る前に関数分けろで終了。
スコープの具体的な利点って今のところ >>597 みたいな少しレアなケースしか無くて、
しかも今のPythonでも関数内で関数を定義することでスコープは作れる。
Pythonは構文の追加にかなり慎重だから、スコープ作るためだけの構文追加の提案は
通る気がしないな。

656 :デフォルトの名無しさん:2011/05/29(日) 13:28:46.71
>>633
if foo:
 y = 1
do_something()
if foo:
 func(y)
って場合もあるよ

>>634
それは鼻から悪魔じゃないけど、何がいいたいの?

657 :デフォルトの名無しさん:2011/05/29(日) 13:29:15.37
他の言語でどうだこうだ言うんじゃなくて、本当にPythonにスコープが必要なのに
存在してないのかを考えないと。
特に明示的なローカル変数の宣言がある言語とそうじゃない言語は大きく事情が異なる。
もしPythonが
for i in range(N):
...
for i in range(M):
でiが複数回宣言されているという構文エラーになるなら、スコープは絶対必要だろう。

658 :デフォルトの名無しさん:2011/05/29(日) 13:33:57.80
>>597
for i in range(3):
 def bar():
  return x + i
 list.append(bar)
の次の行に
 i = 2
を付け足したら、スコープ作っても結果は同じだけど、それは直感的なのか?

659 :デフォルトの名無しさん:2011/05/29(日) 13:50:01.08
>>597 って、 >>599 で終了だろ。
JavaScript で let が欲しいケースも大抵 >>597 の用途で、値だけ欲しいのに
変数をバインドする方法しか無いから仕方なくスコープ使ってるんじゃない?

660 :デフォルトの名無しさん:2011/05/29(日) 13:50:07.79
>>652
> 本人でもないのに、バカにされたバカにされたと叫んでたのかw

バカにされてるのは君なんだけど...、日本語大丈夫?

661 :デフォルトの名無しさん:2011/05/29(日) 13:56:14.01
>>633
ifが文だとそういう脆弱なコードに鈍感になるのかもしれない
教育的にはよろしくなかったりするのかも

662 :デフォルトの名無しさん:2011/05/29(日) 13:56:26.10
>>654
> 書き方について、他にどういう受け止め方があるのかな...。

煩雑かそうでないかの 0/1 じゃないだろ。

人によって、ちょっと煩雑・だいぶ煩雑 とかもあるんだよ。

て言うか、トレードオフってわかってる?

663 :デフォルトの名無しさん:2011/05/29(日) 14:13:44.65
>>638
> Pythonでは関数内では一つの変数に一つの意味を割り当てるとか、
> スコープが問題になるほど長いコードは書かないとか、
> いわゆる"pythonic"なコードを書くことを推奨する文化があるから
> 今の仕様なんだろうけど
> 正直言ってPythonユーザでもブロックスコープは欲しいですよ
>

けど、局所化された変数というのは、「これは重要な変数ではない」「このブロックの中でだけ使う」という意味を割り当ててるわけだろ。


664 :デフォルトの名無しさん:2011/05/29(日) 14:15:59.97
>>638
めちゃくちゃなコードを書きたいのにPythonを使う理由はなんだろう…

665 :デフォルトの名無しさん:2011/05/29(日) 14:33:42.48
>>664
ブロックスコープ使う = めちゃくちゃなコードかよ


666 :デフォルトの名無しさん:2011/05/29(日) 14:38:09.40
"pythonic"でないpythonのコード=めちゃくちゃなコード

LLバトルロワイヤルって言ってるけど、結局常用に耐えるのはpythonだけで
初めから勝負になってないんだよね。その中で残った糞みたいな不満を話題にしてるだけ
根本的にpythonより優れてるLLがないから、このスレは機能してない

667 :デフォルトの名無しさん:2011/05/29(日) 15:07:05.76
俺もPython信者だが、>>666は痛すぎる。。。

668 :デフォルトの名無しさん:2011/05/29(日) 15:09:14.54
Python 信者なら pass しろよ。

669 :デフォルトの名無しさん:2011/05/29(日) 15:11:23.79
まともな反論もできずに個人攻撃しか出来ないPython信者

670 :デフォルトの名無しさん:2011/05/29(日) 15:14:28.41
>>666
おまいさんのようにPythonicって言葉を喧伝する人が結構いるということは
Pythonって言われてるほどTIOWTDIじゃないんじゃね?
という気がしなくもない

671 :デフォルトの名無しさん:2011/05/29(日) 15:18:53.92
このスレで池沼共がPython分かり難い分かり難いと喚いてる割には
初心者に勧める言語としてLLの中で挙がるのは、Pythonが一番多く
他に可能性があるのはPHP、Javascriptが少し。PerlやRubyはまず挙がらない

まあpython以外はこのスレでも話題に挙がらないから、本当に分かり難い言語なんだろうな
池沼でも不満を漏らす程度には分かる言語であるPythonのユーザビリティは圧倒的だということ

672 :デフォルトの名無しさん:2011/05/29(日) 15:21:37.03
TIOWTDIなんてどこで言われてんだよ。初めて聞いたぞ

673 :デフォルトの名無しさん:2011/05/29(日) 15:28:10.91
>>672
ちょっとオーバーに言っただけだよ。気にするなよ

まあぐぐって30件しか出なかったときにはこれは正直失言だったと

674 :デフォルトの名無しさん:2011/05/29(日) 15:28:36.43
>>661
関数型言語を知ってる人から見ると拒絶反応出るようなコードなんだけどね
Pythonってやっぱり手続き型言語だなあと実感する

675 :デフォルトの名無しさん:2011/05/29(日) 15:29:52.27
え、関数型言語知ってる人は手続き型言語に拒絶反応出るのwやべーな

676 :デフォルトの名無しさん:2011/05/29(日) 15:31:27.47
>>675
というよりは
>>621
がそれぐらいどうしようもないってこと

あんな糞コードをドヤ顔でさらされてもな……

677 :デフォルトの名無しさん:2011/05/29(日) 16:17:17.83
node.jsがOS標準装備になればjs使うよ

678 :デフォルトの名無しさん:2011/05/29(日) 19:07:25.83
>>676
単なる例にそんなにこだわらなくていいよ。
if c:
 x = Foo()
 x.method()
else:
 x = Bar()
でも構わない。

679 :デフォルトの名無しさん:2011/05/29(日) 19:10:13.23
これは苦しい

680 :デフォルトの名無しさん:2011/05/29(日) 19:54:19.23
my $x = $c ? Foo() : Bar();
$x->method() if $c;

こんな感じじゃないの

681 :デフォルトの名無しさん:2011/05/29(日) 20:04:44.70
>>643
煩雑ってのがmyだのvarだのletだののことを言ってるのなら
selfと何度もタイプさせられることを思えば何でもないし
初期化と代入を区別しないのは混乱と誤りの元で
xに代入するつもりでX = 1とかタイポしてもエラーにすらならんし
nonlocalやglobalダサい




682 :デフォルトの名無しさん:2011/05/29(日) 20:17:35.05
>>673
まあmap()やらが3.xでも残ってる時点でone wayではないわな
内包表記でなんとかなるはずだよな?

683 :デフォルトの名無しさん:2011/05/29(日) 20:28:20.61
map(None, (1,2), (3,4,5))
-> [(1, 3), (2, 4), (None, 5)]

こういうのはlist comprehensionだと微妙じゃね
zipだと
[(1, 3), (2, 4)]
になる

684 :デフォルトの名無しさん:2011/05/29(日) 20:29:36.74
>>683
うへえ、そんなコード見たくないよ

685 :デフォルトの名無しさん:2011/05/29(日) 20:29:53.61
内包表記はリストを返す
mapはgeneratorは返す
機能が違う


686 :685:2011/05/29(日) 20:33:25.79
mapはgeneratorを返す、だ
日本語が不自由な子みたいだ・・・


687 :デフォルトの名無しさん:2011/05/29(日) 20:33:27.20
>>685
2.xのmap()が返すのはリスト
ジェネレータ式はジェネレータ返す

688 :デフォルトの名無しさん:2011/05/29(日) 20:39:02.72
>>687
>>682の流れから何故2.xを持ち出す?


689 :デフォルトの名無しさん:2011/05/29(日) 20:52:35.83
>>680
1回ですむ比較を2回もするのか。
もし比較条件が変数じゃなく関数の返り値だったら、二度実行するか一時変数に残しておくのか。

690 :デフォルトの名無しさん:2011/05/29(日) 20:57:03.00
>>688
よく読んでなかったすまん

691 :デフォルトの名無しさん:2011/05/29(日) 20:59:14.38
>>689
なんだその後だしジャンケン
条件が変数じゃないんならそう書け

イヤなら別に
my $x;
if (..) {...} else {...}
って書いてもいいんだぞ

692 :デフォルトの名無しさん:2011/05/29(日) 21:30:43.87
>>685
内包表記がgenerator返せばよくね

693 :デフォルトの名無しさん:2011/05/29(日) 21:34:41.86
>>692
だからそれがジェネレータ式

694 :デフォルトの名無しさん:2011/05/29(日) 21:42:15.19
>>693
どゆことよ
map()要らなくね、って話と繋がる?

695 :デフォルトの名無しさん:2011/05/29(日) 21:46:39.02
>>671
今時Perlは挙がらないがRubyは挙がることがあるから困る。

696 :デフォルトの名無しさん:2011/05/29(日) 21:56:21.25
>>694
どういうことといわれても……
>>692の言うgeneratorを返す内包表記はすでにあって、
それがジェネレータ式だというだけの話

map()がいるいらないの話でいえば
内包表記/ジェネレータ式 ⊃ map()であればmap()はいらないと言えるだろ
通常の用途では確かにこれは成り立つし
>>685はちょっと違うと思うね

697 :デフォルトの名無しさん:2011/05/29(日) 22:20:02.50
>>696
調べて分かった、俺はジェネレータ式を単なる内包表記の亜種だと思っていたみたいだ
つまり俺の話は「ジェネレータ式と内包表記あればmap()とか要らなくね?」ってなるんだな
実際のところmap()の代用にならないことってあるのかな、これら

698 :デフォルトの名無しさん:2011/05/29(日) 22:27:53.51
>>697
Pythonのmap()はLispのと同じで複数のリストを処理できる
(ベクトルの加算とかにいい)んだけど
zip()+内包表記でも同じことはできるので
zip()を前提にするならば、>>683みたいな微妙な仕様上の違いぐらいじゃないかな



699 :デフォルトの名無しさん:2011/05/29(日) 22:34:47.61
>>698
そか、ありがとう
まあPythonとは言えど「書き方はいくつかはある」ということだな

700 :デフォルトの名無しさん:2011/05/29(日) 22:54:56.55
今更!?書き方が1つしかないとか馬鹿の妄想だろ
python弄りのレベルが日に日に下がってるな

701 :デフォルトの名無しさん:2011/05/29(日) 23:10:01.28
そうだよ?俺は始めから >>682 でPythonはone wayじゃないと言ってた
んでその中でmap()は要るっていう意見 >>683 >>685 みたいなのがあったから
「map()は本来なら要らないはず」を肯定するための材料を探してただけ

702 :デフォルトの名無しさん:2011/05/29(日) 23:15:44.25
>>691
変数でも二度も条件分岐書くなんて悪手だろ。
最初から、そうやってif文の外にスコープ用意してりゃいいんだよ。

703 :デフォルトの名無しさん:2011/05/30(月) 00:00:51.21
寺宝

704 :デフォルトの名無しさん:2011/05/30(月) 09:26:31.94
そりゃ、インクリメントと条件分岐とループがあれば、mapも内包も要らなだろ。
Pythonの one way とは、すでに十分簡潔で効率的な書き方があるなら構文や組み込み
関数の追加はしない、程度の意味だ。
blist = map(int, alist)みたいにすでにある関数にmapしたいだけなのに
blist = [int(x) for x in alist] は冗長だしビルトイン関数からルックアップする処理が
毎回実行されて遅い。
しかし、map+lamdaやmap+filter+lambdaよりは内包のほうが簡潔で効率的なのでどっちも必要。
だからPython 3でもmapはビルトインに残ってる。
一方、使う頻度の低いreduceはfunctoolsに左遷された。

705 :デフォルトの名無しさん:2011/05/30(月) 09:46:46.01
reduceが左遷されたのは、Guidoたんが純粋関数言語嫌いだったからだと思っていた。
一部のユーザーから恨みを買い、匿名でウィザード本が送りつけられた、というウワサをどこかで聞いた。

706 :デフォルトの名無しさん:2011/05/30(月) 10:17:33.83
reduce左遷するなら、mapとfilterも左遷でよかったんじゃないかと思う。

707 :デフォルトの名無しさん:2011/05/30(月) 10:19:28.08
ttp://twitter.com/#!/gvanrossum/status/1851696531
これか

ttp://fold.sigusr2.net/2010/03/guido-on-functional.html
> You can write reduce() in a few lines of Python.
> Not so in a functional language.
こういう意味不明のことを書くから
突っ込まれたりSICPを送り付けられたりするんだろうな

let rec foldl f a = function
 | [] -> a
 | x::xs -> foldl f (f init a) xs


708 :デフォルトの名無しさん:2011/05/30(月) 10:30:20.73
あとはこのへんか
ttp://www.artima.com/weblogs/viewpost.jsp?thread=98196
ttp://www.reddit.com/r/programming/comments/8lgp0/guido_van_rossum_somebody_mailed_me_a_copy/


709 :707:2011/05/30(月) 10:40:34.68
俺のほうが意味不明なコードになっていたw
2行目は
| x::xs -> foldl f (f a x) xs
かな


710 :デフォルトの名無しさん:2011/05/30(月) 10:45:18.28
python以外の言語のコードが挙げられる度に、なんで流行らないのかがよく分からる

711 :デフォルトの名無しさん:2011/05/30(月) 11:51:42.40
なにがなんだかよく分からる


712 :デフォルトの名無しさん:2011/05/30(月) 12:26:49.66
>>704
関数ひとつだけの処理をmapにかけるのって結構レアケースじゃね?
確かにmap(int,ls)やmap(str,ls)では使うが、それ以外で使ったことないし
ちょっとした追加の処理が入ること考えると始めから内包で書いちゃうよ、俺は。

713 :デフォルトの名無しさん:2011/05/30(月) 12:32:52.79
>>712
内包に比べたらレアだけど、他のitertoolsの中身に比べたらよく使う。
あと、reduceがfunctoolsなので、組み込みから外されると、itertoolsだったか
functoolsだったか迷うことになるw

714 :デフォルトの名無しさん:2011/05/30(月) 12:59:17.85
それはマニュアル読めば載ってるからそう困らないような…
むしろreduce()は何故itertoolsにしなかったんだろ
てか俺はitertoolsの中身のがmap()よりよほど使うがなあ

715 :デフォルトの名無しさん:2011/05/30(月) 13:57:15.27
py2 -> py3 でbuiltinから削除された関数は、
from __legacy__ import *
で復活できるようにすればいいと思ってみたり。

716 :デフォルトの名無しさん:2011/05/30(月) 15:57:10.09
結城浩のPerl言語プログラミングレッスンって読んでみたけど、これ確かに評判どおりよくできている
というか、初心が躓かないように細部まで気を配っている感じでいいね。密度も濃いし。

RubyやPythonも結城浩が入門書書けばいいのに。
似たような版型、値段の本は両社とも何冊がでているが、残念ならが内容が段違い。

717 :デフォルトの名無しさん:2011/05/30(月) 16:59:20.69
複数の言語の入門書を
量産している作者の本は総じて完成度が低い

718 :デフォルトの名無しさん:2011/05/30(月) 18:19:37.79
>>717
2ちゃんねらーみたいだな

719 :デフォルトの名無しさん:2011/05/30(月) 18:21:43.43
木木日青ヒヒ古ですか?わかります。

720 :デフォルトの名無しさん:2011/05/30(月) 18:59:41.60
PythonとかRubyの入門書って、他の言語の知識が前提になってるのばっかだよな。そうじゃないと言いつつ、まったくのプログラミング未経験者向けの本はない。


721 :デフォルトの名無しさん:2011/05/30(月) 19:11:31.92
PHPが一番簡単(短期間で習得)そうだし、どこでも使えるだろうという安易な考えで本一冊終えて、
いざ使おうと昔から契約しているさくらの条件(一番安いレンサバ)を見たら使えなかったw

Python、Rubyは使えるのになんでww


はー、どうしよ。

722 :デフォルトの名無しさん:2011/05/30(月) 19:50:20.54
>>720
たのしいRubyはプログラミング未経験者向けだよ。評判もそこそこ。

723 :デフォルトの名無しさん:2011/05/30(月) 20:05:28.05
>721
信号も見ずに横断歩道渡る人ですか?w

724 :デフォルトの名無しさん:2011/05/30(月) 20:22:35.50
>>707
それって OCaml?

725 :デフォルトの名無しさん:2011/05/30(月) 20:33:22.42
>>721
そんなあなたにステップサーバーがおすすめ。

726 :デフォルトの名無しさん:2011/05/31(火) 00:17:49.75
>>707
>SICPを送り付けられたりするんだろうな

http://twitter.com/#!/gvanrossum/status/1838308947

これか...
送りたくなる気持ちも分かるけどw

727 :デフォルトの名無しさん:2011/05/31(火) 03:22:48.22
GUIを使ったちょっとしたツールをWindowsで動かしたいのですが、そういうGUIデザインがしやすかったり、
EXE化しやすいのではどういうLLがいいんでしょうか?
また最小限の修正でMacOSやLinuxに移植できるものでしょうか?

728 :デフォルトの名無しさん:2011/05/31(火) 03:32:34.98
>>727
EXE
LL
移植
日本語

この 4 つを同時に達成するのはかなり厳しいよ

729 :デフォルトの名無しさん:2011/05/31(火) 03:34:30.45
そもそもGUIでどれもまともな評判を見ない気がする
まあどれも似たり寄ったりで、慣れの問題なのかも知れんが

730 :デフォルトの名無しさん:2011/05/31(火) 03:35:56.83
その内、AndroidやiOSにも移植したくなるだろうしなあ

731 :デフォルトの名無しさん:2011/05/31(火) 03:36:31.62
今こそJavaやろうずwww

732 :デフォルトの名無しさん:2011/05/31(火) 05:56:28.29
>>726
SICPとは
送った奴はセンスがあるなあw

733 :デフォルトの名無しさん:2011/05/31(火) 06:17:32.78
結局そういう用途だとJavaやC#がいいんじゃないかということになっちゃうよね。
インタフェース作成のツールもあるし。
LLはやはりサーバサイドやスクリプト処理用だよな。

734 :デフォルトの名無しさん:2011/05/31(火) 07:09:00.17
サーバーサイドでRubyなんか低性能な言語つかうなよ
使って余分な電気消費してCO2が増加する

735 :デフォルトの名無しさん:2011/05/31(火) 07:25:54.69
そう思うならおまえが機械語で最適なプログラム書けよ

736 :デフォルトの名無しさん:2011/05/31(火) 07:28:28.48
おれだけ書いても意味ないだろ

737 :デフォルトの名無しさん:2011/05/31(火) 07:30:56.10
節電できないなんて言っているデータセンターは甘え
今すぐ糞遅いRubyのコードをScalaやJavaで書き直せ

738 :デフォルトの名無しさん:2011/05/31(火) 08:00:08.82
遅いというならJavaもアウトだろ

739 :デフォルトの名無しさん:2011/05/31(火) 08:25:53.27
おれだけ書いても意味ないとか言うのは甘え
今すぐデータセンターに行ってお前が全て機械語で書き直せ

740 :デフォルトの名無しさん:2011/05/31(火) 08:34:35.46
なんで俺が他人がRubyで書いた欠陥コードの面倒をみるんだよw

741 :デフォルトの名無しさん:2011/05/31(火) 09:03:10.93
なんで俺が他人がとか言うのは甘え
Rubyなんか低性能な言語とか今すぐ糞遅いRubyのコードをとか言うなら
お前が機械語で書き直せ

742 :デフォルトの名無しさん:2011/05/31(火) 09:24:01.91
Rubyが糞遅くって地球を過剰に汚すのは事実だろ

743 :デフォルトの名無しさん:2011/05/31(火) 09:28:29.43
そう言って騒ぐなら世界中のあらゆるプログラムをてめえが機械語で最適に書き直せよ

744 :デフォルトの名無しさん:2011/05/31(火) 09:30:30.51
カスが居直るな

745 :デフォルトの名無しさん:2011/05/31(火) 09:48:42.51
カスってのはクソ遅いとか必死な奴のことだろ

746 :デフォルトの名無しさん:2011/05/31(火) 09:50:39.19
「機械語で現代のPC用プログラミングなんてできるわけないだろ」という理解がないと先に進めないからな
プログラミングの煩雑度はすべて等しいという前提そのものが誤りだ
まあ、そういうふうになにかものを考えているかどうかは怪しいが
誰も構ってくれないからレスが欲しいというのならレス欲しいと大きく書いたほうがまだマシで、この板でないほうが適切

747 :デフォルトの名無しさん:2011/05/31(火) 09:54:21.30
ここはそういう困った奴の隔離スレのはずだが、何を言ってるんだ?

748 :デフォルトの名無しさん:2011/05/31(火) 09:57:32.19
>747
LL最高や!JavaやC++なんていらなかったんや!

な奴の隔離スレと解釈するのはまあありかもしれない
でもその解釈は無いわー

749 :デフォルトの名無しさん:2011/05/31(火) 10:16:56.59
いきなり機械語とか言い出して頭大丈夫?
Rubyより速い言語なんていくらだってあるだろ

750 :デフォルトの名無しさん:2011/05/31(火) 10:22:31.16
>>749
べつに何か考えてのことじゃないから、そんな指摘は無意味

751 :デフォルトの名無しさん:2011/05/31(火) 10:25:39.80
どっかのスレでJava土方とか呼ばれて小馬鹿にされたから
このスレに来て暴れてるのさ

752 :デフォルトの名無しさん:2011/05/31(火) 10:29:54.01
動的言語スレと区別がつかないと思ったらそういうわけか

753 :デフォルトの名無しさん:2011/05/31(火) 10:34:49.53
>>727
最低限使い物になるのがPyQt、Python、py2exe だけど、普通はC#をおすすめする。

754 :デフォルトの名無しさん:2011/05/31(火) 10:48:31.87
>>484-490 の話題の事後報告
Python-ideas で Python 3 で cat -n が実装しにくいことと、 latin1 エンコーディングを
使うのはハックなのかPythonicなのかを訊いてみたところ、英語が苦手な俺には話題を追うのが
辛いくらい盛り上がった結果、 bytes にも .format メソッドを追加しようかという方向に
話が進んでる。
http://mail.python.org/pipermail/python-ideas/2011-May/010391.html
Python 3.3 からは b"{0:6d} {1}".format(n, line) みたいに書けるように
なるかもしれない。

755 :デフォルトの名無しさん:2011/05/31(火) 11:07:46.06
全然関係ないけどlatin-1って変なところに制御文字があって
例えば、0x85が改行扱いになっている
http://ja.wikipedia.org/wiki/ISO/IEC_8859-1
splitlines()とかに通すとまずい

>>> 'hoge\x85fuga'.decode('latin-1').splitlines()
[u'hoge', u'fuga']

756 :デフォルトの名無しさん:2011/05/31(火) 11:13:14.46
>>754

面倒なのでGuidoのコメントしか読んでないけどw

757 :デフォルトの名無しさん:2011/05/31(火) 11:32:32.96
>>755
世の中のLatin-1の60%くらいはISO-8859-1ではなくasciiかWindows-1252なので、その指摘にはあんまし意味がない
間違っているのは世間なのだが、これはもう仕方がない
あとISO-8859-1をデフォルト解釈にしたHTTPは氏ね

758 :484:2011/05/31(火) 11:49:19.07
>>754
ありがとう
途中まで真面目に読んだけど、最後のほうはさすがにつらくてGuidoの奴だけ読んだw
>>755
おもしろい
>>757
バイト列をunicodeの0-256にそのままマップしてパススルーする手段としては
latin-1はややdangerousなことがあるよ、という指摘だと思うので、
「意味が無い」ってことはないかと

以下はPython2のコードだけど
u'喝'.encode('cp932') -> '\x8a\x85'
u'喝'.encode('cp932').decode('latin-1') -> u'\x8a\x85'
u'喝'.encode('cp932').decode('latin-1').splitlines() -> [u'\x8a']

CP932がASCII互換かといえば微妙なんだけれども
バイト列のままでも少なくとも行の処理ぐらいは問題なく出来ると
認識されていると思う
(だからstdioが普通にCP932でも使えるわけだけれども)
行区切りぐらいでデータが壊されるのは、意図しない結果でしょう

759 :デフォルトの名無しさん:2011/05/31(火) 11:58:21.22
>>734
PHPェ……。

760 :デフォルトの名無しさん:2011/05/31(火) 12:02:05.77
PHPでLambdaが使えるようになったぞ
ttp://www.moongift.jp/2011/05/20110613-2/

761 :デフォルトの名無しさん:2011/05/31(火) 14:38:14.75
言葉が足りなかった。言いたかったことは>>758であってます
以前、unicodeのみに対応しているライブラリにマルチバイトをそのまま通そうとして
latin-1に変換して食わせてみたんだけど、変なところで文字化けが発生して
調べてみたら>>755だったと。latin-1に変換したマルチバイト文字列を弄るときは
気をつけようねって話です

762 :デフォルトの名無しさん:2011/05/31(火) 20:49:37.25
>>733
tck/tk はLLには入らんのかなぁ

763 :デフォルトの名無しさん:2011/05/31(火) 20:58:03.36
あんなもん役に立たないオモチャだろ

764 :デフォルトの名無しさん:2011/05/31(火) 21:07:11.73
>>763
>>727 はオモチャ程度で気軽にGUIを作りたいって言ってると思う
GUI以外の部分はtclで書く必要ないんだし
移植もらくだよね

765 :デフォルトの名無しさん:2011/05/31(火) 21:09:54.64
Tkには一応少なくとも歴史的な意義があったと思うし
REPLとGUIの組み合わせを考えると、wishのように、REPLで何か打ち込むたびに即座に
UI要素を生成させたり変化させられる(フィードバックがえられる)ような環境は
今でも有効だと思うし、そうあるべきだと思う(ツールキットがTkである必要はない)

Tclのほうは、Lispに似てる(shにも似ている)けど、Lispより非力で貧弱で
正直存在意義が分からない

766 :デフォルトの名無しさん:2011/05/31(火) 21:20:32.58
>>765
>Lispに似てる
この度はたいへん斬新なご意見を賜わり…

あれは本気でshスクリプトだよね

767 :デフォルトの名無しさん:2011/05/31(火) 21:34:03.63
>>766
何でもコマンド、何でも文字列、みたいな超シンプルな作りというか本質が
Lispに似てると思ったんだけど、そんなに斬新な意見かな?

まあ似てるのそこだけなんだけどな
functionalじゃないし、code as dataとかマクロとか、Lisp特有の力は
なーんも無いから

768 :デフォルトの名無しさん:2011/05/31(火) 21:36:01.38
使い物にならないという点では似てる

769 :デフォルトの名無しさん:2011/05/31(火) 22:07:04.55
知らなきゃ使えない

770 :デフォルトの名無しさん:2011/05/31(火) 22:54:26.64
ちんちんが硬くなってきた

771 :デフォルトの名無しさん:2011/06/01(水) 05:55:28.32
>>767
「なんでも文字列」に一番似てる言語って、同じ「なんでも文字列」の言語だと思うんだ
んで、それはシェルスクリプトやバッチファイル等、コマンドシェルの言語に近い性質で
「なんでもリスト」の言語はそれらに比べるとちょっと遠いと思うんだ

772 :デフォルトの名無しさん:2011/06/01(水) 07:10:59.07
本質的に相当似てた記憶があるんだが
Tclってどういうのだったか今となっては全然思い出せないぜ

773 :デフォルトの名無しさん:2011/06/01(水) 07:33:45.30
データは何でも文字列
文字列をevalすれば実行できる
8.5からはapplyでlambdaもできる
Tclってのはそんな感じ

774 :デフォルトの名無しさん:2011/06/01(水) 08:46:35.13
「一番外側の括弧がないlisp」という表現はうにまがか何かで前世紀に見た気がする。

775 :デフォルトの名無しさん:2011/06/01(水) 10:16:26.34
おっさん乙

776 :デフォルトの名無しさん:2011/06/01(水) 10:42:47.10
>>774
一見文字列だがあれは括弧のないリストってことか
しかもtailのアイテム群はたんなる文字列なので
その解釈はheadのコマンドに任されてるからどう評価するのも自由
よって特殊形式ですらユーザがTclで定義できる
例えばifならcondの値のよってはthen節やelse節をまったく評価しないことも可能

やっぱりLispと似てるんじゃないか?

777 :デフォルトの名無しさん:2011/06/01(水) 12:18:30.50
TclはLispの劣化再発明だからRMSにdisられているんだと思っていた
劣化してるかわりに(Algol構文慣れした)普通のプログラマにも親しみ易いとか
そういう利点も特に無いしな

778 :デフォルトの名無しさん:2011/06/01(水) 12:24:58.24
>>777
http://wiki.tcl.tk/13410

779 :デフォルトの名無しさん:2011/06/01(水) 12:28:32.21
>>778
Wikiにわざわざそういう比較が載っているとはw
教えてくれてありがとう

780 :デフォルトの名無しさん:2011/06/01(水) 18:04:20.24
perl - 勝手に添削 - Perl中級者への道
ttp://blog.livedoor.jp/dankogai/archives/51687118.html

>dieやwarnは\nでふるまいが変わる

こういう記事読んでるとPerlって適切な警告やエラーを表示しないまま不適切な
コードを書いてしまう、またヘンなノウハウを山ほど知ってないと使えない欠陥言語って
印象がますます強くなあ。


781 :デフォルトの名無しさん:2011/06/01(水) 19:53:16.90
Perlはバッドノウハウの薀蓄垂れるジジイ専用言語だから深入りしない方がいいよ。
あれはワンライナー専用言語。OOPもCPANも、もう不要。

404とこのオッサンの時代も終わりだよ。
献本御礼、とかいって読んでもいない糞本のベタ褒めでもしてなさいってこった。

782 :デフォルトの名無しさん:2011/06/01(水) 20:04:59.54
子飼団のブログみると確かにPerlなんて滅んだ方がいいのかもと思っちゃうよな
何が勝手に添削か知らんが

783 :デフォルトの名無しさん:2011/06/02(木) 01:28:24.61
Perlはワンライナーのためだけに入れただろ、って要素てんこ盛りだからなあ

784 :デフォルトの名無しさん:2011/06/02(木) 02:07:35.21
Tk は一時代を築いた素晴らしいソフトウェアですが、
今どきの GUI スクリプティングは JavaScript をどうぞ

Titanium : http://www.appcelerator.com/
Qt Quick : http://qt.nokia.com/qtquick/
wxJavaScript : http://users.skynet.be/saw/index.html
Seed : http://live.gnome.org/Seed
JSCocoa : https://github.com/parmanoir/jscocoa/tree
DashCode : http://www.apple.com/macosx/developers/#dashcode
Chromeless : http://mozillalabs.com/chromeless
XULRunner : https://developer.mozilla.org/ja/XULRunner
Google Desktop Gadgets : http://desktop.google.com/plugins
Yahoo! Widgets : http://widgets.yahoo.co.jp/
Windows Scripting Host : http://support.microsoft.com/kb/232211
Adobe Air : http://www.adobe.com/jp/products/air/

785 :デフォルトの名無しさん:2011/06/02(木) 02:11:25.45
どうぞって言って無責任に羅列するだけの馬鹿

786 :デフォルトの名無しさん:2011/06/02(木) 02:15:58.41
2chで馬鹿って言ってる人からレスが来た

787 :デフォルトの名無しさん:2011/06/02(木) 02:19:16.27
はあ、JS厨は馬鹿すぎて話にならないわー
URL貼っただけで何か語ったつもりになってるしー

788 :デフォルトの名無しさん:2011/06/02(木) 02:20:43.07
URL貼っただけなのに、レスを付けずにはいられなかったみたーい

789 :デフォルトの名無しさん:2011/06/02(木) 02:23:29.74
貼っただけ、だから問題なんだろ

790 :デフォルトの名無しさん:2011/06/02(木) 02:30:50.36
何が問題か説明出来るの?

791 :デフォルトの名無しさん:2011/06/02(木) 02:33:30.96
ちゃっちゃと GUI を作りたいなら、JavaScript が最適

792 :デフォルトの名無しさん:2011/06/02(木) 02:36:17.52
>>790
>>784を見てどうすればいいわけ?つーか、これらは何?
そういう使い分けをするの?同じような用途なら、どれが優れてるか教えてくれるかな
クソツールが沢山あっても仕方ないんだよ
rubyを見ろよ。流行るか流行らないかは、どれか一つに掛かってるわけ

793 :デフォルトの名無しさん:2011/06/02(木) 02:41:23.40
>>792
興味持ったなら質問スレか初心者スレで聞いてくれ
もう少し具体的に聞いてくれたらお答えするよ

794 :デフォルトの名無しさん:2011/06/02(木) 02:44:08.19
JSには何一つまともなツールが無いのかよw

795 :デフォルトの名無しさん:2011/06/02(木) 02:56:22.89
デスクトップやサーバサイドやウェブアプリ向けの便利なライブラリや
ツールが沢山ある以外は、あんまりないかなあ

デスクトップアプリ、サーバサイドスクリプティング、ウェブアプリを
作りたい人には JavaScript がお勧めだけど、それ以外の環境はどうだろね

796 :デフォルトの名無しさん:2011/06/02(木) 03:04:24.69
子飼弾って、文庫本程度の本なら10分とかそこらで読める。YouTubeに動画が上がってる。めちゃ凄い。

797 :デフォルトの名無しさん:2011/06/02(木) 03:09:35.74
これかな?
http://www.youtube.com/watch?v=s7wEesGmQQ4
なんかものすごく不快なんだが。

798 :デフォルトの名無しさん:2011/06/02(木) 03:10:37.47
10秒で切った

799 :デフォルトの名無しさん:2011/06/02(木) 03:12:02.36
公害団ってなんかうるせーよな、ぎゃーぎゃー。

800 :デフォルトの名無しさん:2011/06/02(木) 08:04:36.91
子飼弾指で文字が隠れてるよ

801 :デフォルトの名無しさん:2011/06/02(木) 08:48:19.73
Guile っていうSchemeの実行環境がすごく気になるんだけど、Linux限定っぽいんだよね。
これに近い言語、実行環境ってないですか?

欲しいのは他のスクリプト言語から呼び出せてWindowsのプロシージャを構成できるスクリプト実行環境なんです。

HSPのDLL版もそういうことが出来るんだけど、呼び出し元とデータ共有する方法が分からないので、
他の言語でそういうのがあればなと。

IEに組み込まれてるVBSとJSのDLLはよく分からないし、HTAもEXEしかない。

そういえばHTABOXがだいぶ拡張されてるっぽいから見てみるかな。


802 :デフォルトの名無しさん:2011/06/02(木) 09:08:24.94
guileならその昔SunOSで動かしたが。

803 :デフォルトの名無しさん:2011/06/02(木) 09:58:34.10
>>796
>子飼弾って、文庫本程度の本なら10分とかそこらで読める。YouTubeに動画が上がってる。めちゃ凄い。

あの書評を書くため程度の理解度でいいなら、俺だって10分で読めるわww

804 :デフォルトの名無しさん:2011/06/02(木) 10:02:57.79
>>803
じゃあどうしてみんなそれをやらないの?

805 :デフォルトの名無しさん:2011/06/02(木) 10:21:10.47
>>804
何の話をしてるか知らないが、書評を書くほうが時間がかかるし無駄だからじゃね?

806 :デフォルトの名無しさん:2011/06/02(木) 10:47:06.20
ええっと、文庫本一冊360Pぐらいだとして、
1分あたり36P、1Pあたり2秒弱ねー。
たぶん適当にキーワード拾ってるだけで読んでないと思うよ。

807 :デフォルトの名無しさん:2011/06/02(木) 10:56:55.95
>>806
俺、意識の加速って技使えるからよゆーで全部の文字を読んで理解できるよ。
読み終えると同時に記憶は消えるけど。
キーワードだけ覚えておくって技を使えるならあらすじは書けるね。書評も書ける。

ちなみに俺以外で意識の加速が出来る人間を、思い出せるだけで二人知ってる。
一人はちょくちょく俺を襲撃してきて俺を破壊した。
もう一人は出版社に勤めている担当編集者だったけど、俺が意識の加速を出来ると言ったら
つぶてを飛ばしてきたり時々俺を見かけると攻撃してきたりしたので、
俺に余裕がなくなってるときに襲われたときについに殺してしまった。
手に負えない強いやつは、殺せるときに殺しておかないといけないからね。
あの人なんで俺を攻撃してきたんだろ。
俺に出会うまでは自分を神か何かだと思っていたらしいんだけど。


808 :デフォルトの名無しさん:2011/06/02(木) 11:30:01.69
You must go to the hospical!
Quick!!! Quick!!!

809 :デフォルトの名無しさん:2011/06/02(木) 11:38:40.85
>>807
薬物ダメ、ゼッタイ

810 :デフォルトの名無しさん:2011/06/02(木) 11:46:01.54
>>804
本当は10分では読めないから
「俺だってできる」はただの反発で、根拠などない

811 :デフォルトの名無しさん:2011/06/02(木) 12:02:16.08
なんか感動できる小説を読んだとして
速読でも普通に読んだと同じように感動できるの?

812 :デフォルトの名無しさん:2011/06/02(木) 12:07:25.12
こいつが10分で読めているという保証もないよね。

813 :デフォルトの名無しさん:2011/06/02(木) 12:09:57.62
>>811
10分の間に突然笑ったり泣いたりする子飼弾を想像してわろた。

まあこの手の速読って基本的に「斜め読み」の類のもので、
じゃあ1,2時間かけた人と同じくらい内容を理解して覚えているかというと……。

テストしてみればはやいね!

814 :デフォルトの名無しさん:2011/06/02(木) 12:41:06.73
普通の人でも何処に何が書いてあったっけ、みたいな感じで本をパラパラめくったりするでしょ。
ああいう極端な速読ってきっとそれの延長だと思うよ。誰でもやってるようなことの。
なんかすげえ技術に見せかけて、商材商法やる奴がいるだけじゃないかな?

オレは蔵書を〜万冊持ってる、オレは東京新大阪間で新書をウン冊速読できる、みたいなこと
書くやつはまあいかがわしいかな、と思う。
もらった本で書評サイト作るぐらいいかがわしい。

815 :デフォルトの名無しさん:2011/06/02(木) 13:11:39.19
「内容を暗記しなければならない」ような本なんて稀だよね
それこそ参考書とか教科書とか、そういうのだけだろ
たとえ3日かけて読んだって、たぶん、そもそも、それほど詳細に思い出せたりはしないだろう

816 :デフォルトの名無しさん:2011/06/02(木) 13:50:51.74
内容を覚える必要がない本を10分で読んでなにか意味あるの?

内容覚える必要ないんだから情報としては価値がないのだろうし、
かといって10分で読み終えてしまうから時間つぶしにも娯楽にもならない。

817 :デフォルトの名無しさん:2011/06/02(木) 13:56:42.88
>>804
プライドがあるからだろ。
プライド捨てりゃ、誰だってできるよ。
「□□様より献本御礼。すごい、史上最高の××本。これを読まずに××は語れない。」
とか書いときゃいいんだから。
あんなの読んでありがたがるのは、みのもんたのコメントをありがたがる情弱と同等。
書評するなら自分で買えよ(それより献本を公表するなよw)

818 :¥暴走天使悪魔のZ¥:2011/06/02(木) 14:03:06.55
Javascriptでモンハンみたいなゲーム作りたいんですけど
つくれますか?

819 :デフォルトの名無しさん:2011/06/02(木) 14:11:17.41
つくれるよ。
実際にモンハンはJavascriptでできてるってしらんの?

820 :デフォルトの名無しさん:2011/06/02(木) 14:12:43.69
作れることには作れるんでないのかね。
現行のマシンでまともに動かないだけで。

821 :¥暴走天使悪魔のZ¥:2011/06/02(木) 14:14:29.86
僕の友達のPHPハッカーがゲーム作ってもブラウザのやつでしょぼかったです

822 :¥暴走天使悪魔のZ¥:2011/06/02(木) 14:15:11.32
回答ありがとうございます
hello warudo からつくってみたいとおもいます

823 :デフォルトの名無しさん:2011/06/02(木) 14:42:17.93
>>817
違う
どうして10分で本を読まないのかという話

824 :デフォルトの名無しさん:2011/06/02(木) 14:51:16.92
>>816
覚える必要がないからさっさと読むんだろ。楽しみたければ読んだあと回想すればいいだけ。

>>823
> どうして10分で本を読まないのか

楽しめないからだろJK

825 :デフォルトの名無しさん:2011/06/02(木) 14:53:36.79
>>823
>>817じゃないけど
>あの書評を書くため程度の理解度

普通の人は時間つぶしや娯楽、あるいは情報源として本を読むから、
娯楽や時間つぶしなら10分で読む必要がないし、情報源として読むなら10分では不足。

10分で大量の本を読む理由がある人なんて書評書く人ぐらいのものだよ。

今すぐ必要で使って不要になって忘れる情報を探すために本を読むなら、
誰だって10分で拾い読みして読むこともあるでしょ。

826 :デフォルトの名無しさん:2011/06/02(木) 14:57:59.76
まあ、世の中、凄い奴がいるからな。俺の知り合いにも教科書ぱっと開いて、1ページ音読して、本閉じて、暗唱出来るのがいた。

827 :デフォルトの名無しさん:2011/06/02(木) 16:16:39.18
というか、実のところ、音読と黙読程度の違いでしかない可能性が高い
音読しかできない幼児に「よむのはやいね」と言われてもああそうって感じだし、
「そんなのでなにかいてあるかわかるの」と言われても、わかりますが何かって感じだ
幼児にとって黙読は超高速で効果の怪しい神業だが、我々には日常でしかない

文字を字を追うことなく面で読むことは決して不可能ではないので、おそらく速読は理屈的にも可能だ
そんだけ

828 :デフォルトの名無しさん:2011/06/02(木) 16:26:07.80
おまえら釣られすぎ。
彼にとっては読書=書評(という名の宣伝)に使えそうなフレーズを探し出す作業

彼にとって10分で読むと公言するのは、多読家であり、本を見る目が肥えている、という
印象を与えるための演出であり、マーケティングに決まってるだろ。
真に受ける奴は、間違いなく情弱。

829 :デフォルトの名無しさん:2011/06/02(木) 16:27:59.61
>>828
可能かどうかの話してるんだろ
あなたがその人をどれだけ嫌っているかどうかには誰も興味はない

830 :デフォルトの名無しさん:2011/06/02(木) 16:36:59.00
>>827
>文字を字を追うことなく面で読むことは決して不可能ではないので、おそらく速読は理屈的にも可能だ
これがほんとかどうか確かめるために内容理解度テストをすればよいわけですな

831 :デフォルトの名無しさん:2011/06/02(木) 17:08:56.78
不可能に決まってんだろ

832 :デフォルトの名無しさん:2011/06/02(木) 17:24:09.39
可能だよ
写真を見て一瞬で全体を把握できるだろ。
ただ、詳細に聞いてみると大抵間違ってるんだけどな。

833 :デフォルトの名無しさん:2011/06/02(木) 17:32:14.40
なんで写真が突然出てくるの?莫迦なの?死ぬの?

834 :デフォルトの名無しさん:2011/06/02(木) 17:32:51.04
レインマンでダスティンホフマンが一瞬で爪楊枝かマッチ棒が何十本あるか数えるシーンがあるけど、そういうのだな。

835 :デフォルトの名無しさん:2011/06/02(木) 17:42:53.02
速読は見るのと理解するプロセスが独立だと分かれば簡単
例えばさ、既に熟読して内容を理解しきっている本を再度読むとき
パラパラ捲っても読めるだろ?理解するプロセスをすっとばしてるからな

でも、これを未読の本に適用しても「自分が既に理解してること」と
パターンマッチしてるだけだから、読書しても全然賢くならないんだぜ

836 :デフォルトの名無しさん:2011/06/02(木) 17:47:10.57
じゃあなんで俺は賢いの?

837 :デフォルトの名無しさん:2011/06/02(木) 17:48:42.86
A: 賢人はそんなこと言わない

838 :デフォルトの名無しさん:2011/06/02(木) 17:52:26.70
速読は内容を文章でなく、イメージで捉える手法。
コードを読むときに字面で追わず、内容をイメージでつかむのと同じだよ。
どうでもいい話だけど。

839 :デフォルトの名無しさん:2011/06/02(木) 17:55:34.49
結局内容理解度テストすればいいだけ。

840 :デフォルトの名無しさん:2011/06/02(木) 17:59:37.56
これ以上子飼団をいじめるなよ。
彼けっこう苦しいんだから。

841 :デフォルトの名無しさん:2011/06/02(木) 22:14:54.62
10分ではむりだけど、30分くらいで文庫1冊読む知り合いがいる
そいつにその文庫の一節を読みきかせると、ページ数を当てるし、続きを暗唱したりする
気持ち悪いくらいの能力だと思うけど、そいつは陸自で匍匐前進するのが仕事
Python最高

842 :デフォルトの名無しさん:2011/06/02(木) 22:23:30.43
LL
LL
LL
LL
LLLLLL

LL
LL
LL
LL
LLLLLL

の話は?

843 :デフォルトの名無しさん:2011/06/02(木) 22:30:03.49
pythonの大勝利ということで結論出てる

844 :デフォルトの名無しさん:2011/06/02(木) 22:30:57.27
python遅いじゃん

845 :デフォルトの名無しさん:2011/06/02(木) 22:34:53.97
http://www.youtube.com/watch?v=uwAOc4g3K-g

この話題の流れでPythonと言ったら、むしろこっちの方だな

846 :デフォルトの名無しさん:2011/06/02(木) 22:49:46.82
言いたいことも言えないこんな世の中じゃ

Python

847 :デフォルトの名無しさん:2011/06/02(木) 23:10:23.42
Ruby : http://tryruby.org/
Haskell : http://tryhaskell.org/
Scheme : http://www.biwascheme.org/
Erlang : http://www.tryerlang.org/
OCaml(via Java) : http://ocamljava.x9c.fr/toplevel/toplevel.html
Python(via MS) : http://www.trypython.org/
JavaScript : http://jsfiddle.net/

わお、JavaScript が圧倒的じゃん

848 :デフォルトの名無しさん:2011/06/02(木) 23:14:14.83
JS信者の根拠なしの印象操作うぜえ

849 :デフォルトの名無しさん:2011/06/02(木) 23:14:14.85
頭悪そう

850 :デフォルトの名無しさん:2011/06/02(木) 23:18:52.44
おまいら楽しいなw

851 :デフォルトの名無しさん:2011/06/03(金) 00:21:24.01
俺はJSもJCも好きだけど、Python大勝利じゃん

852 :デフォルトの名無しさん:2011/06/03(金) 00:25:05.39
そらそうよ

853 :デフォルトの名無しさん:2011/06/03(金) 01:20:43.77
>>851
JJは?

854 :デフォルトの名無しさん:2011/06/03(金) 08:20:24.65
JUJU宴

855 :福盛俊明:2011/06/03(金) 09:05:42.70
23 名前:福盛俊明 :2011/06/02(木) 23:51:15.53
俺はDarkBASICの天才♪”
俺に答えられない質問はない

質問はこちらへ
http://www.geocities.jp/courant_de_console/main_street/index.html

アハアハ〜♪”

856 :デフォルトの名無しさん:2011/06/03(金) 22:57:58.23
GUI スクリプティングなら JavaScript ( >>784 )
取っ付き易さなら JavaScript ( >>847 )
どんなプラットフォームでも動かしたいなら JavaScript
関数型言語とオブジェクト指向のエッセンスを同時に楽しみたいなら JavaScript
3D をグリグリ動かしたいなら JavaScript
ユーザの多さで言ったら JavaScript
開発の活発さで言ったら JavaScript

何だ、バトルするまでもないな…

857 :デフォルトの名無しさん:2011/06/03(金) 23:54:21.63
>>856
俺の使ってる古い処理系だと
((1<<128)-1)&1
が0になるんだが、最新のだとこの糞仕様なおってるの?

858 :デフォルトの名無しさん:2011/06/04(土) 00:05:11.45
matplotやnumpyなんかのライブラリを誰かが書き直してくれて、
Java並みの速度で動作してくれるなら、Javascriptに乗り換えるよ

859 :デフォルトの名無しさん:2011/06/04(土) 00:14:07.66
実行環境がブラウザ(笑)

860 :デフォルトの名無しさん:2011/06/04(土) 00:18:28.80
ところが Windows 8 は JavaScript で書いたアプリがメインに

http://plusd.itmedia.co.jp/pcuser/articles/1106/03/news114_4.html

861 :デフォルトの名無しさん:2011/06/04(土) 00:21:14.95
このJSキチガイをどうにかしてくれ

862 :デフォルトの名無しさん:2011/06/04(土) 00:21:22.31
これにてバトルロワイヤル終了

863 :デフォルトの名無しさん:2011/06/04(土) 07:18:16.40
で、>>857の仕様は直ったの?
整数もまともに扱えないとかJS糞すぎだろ

864 :デフォルトの名無しさん:2011/06/04(土) 08:55:39.57
便利だよね。ActiveXだよね。

865 :デフォルトの名無しさん:2011/06/04(土) 09:47:06.13
Javascriptのユーザー数ってブラウザにちょこちょこ細工してるだけの人が多いから
かなり水増しされてるんじゃね

866 :デフォルトの名無しさん:2011/06/04(土) 10:10:12.76
そういう裾野の広さが魅力

867 :デフォルトの名無しさん:2011/06/04(土) 10:48:35.06
>>860
>ところが Windows 8 は JavaScript で書いたアプリがメインに
Windows 8自体がメインにならないかもしれないという罠があるわけだがw

868 :デフォルトの名無しさん:2011/06/04(土) 11:23:15.99
その記事書いてる人、おかしいと思う。

869 :デフォルトの名無しさん:2011/06/04(土) 11:32:40.09
どの記事でも同じ

http://journal.mycom.co.jp/articles/2011/06/03/computex03/index.html

870 :デフォルトの名無しさん:2011/06/04(土) 11:38:44.63
>>868
MS は JavaScript 押し
元々 ECMAScript にも長く関わって来たし

http://japanese.engadget.com/2011/06/01/windows-8/
http://journal.mycom.co.jp/articles/2011/06/03/computex03/index.html
http://plusd.itmedia.co.jp/pcuser/articles/1106/03/news114_4.html
http://www.publickey1.jp/blog/11/windows_8html5javascriptwindows.html

871 :デフォルトの名無しさん:2011/06/04(土) 11:41:50.09
ネイティブAPI使えないなら普通のアプリは作れない。
いまさらActiveXでもないし、Windowsフォームを使わない理由はない。
お天気情報とかその程度ならJSでもいいのでは?
Vistaや7のウィジェットはJSだし。
うちのPCのデスクトップにも時計とかカレンダー置いてる。

872 :デフォルトの名無しさん:2011/06/04(土) 11:49:36.11
そこら辺は意識の切り替えが必要だね
ウェブアプリに於けるネイティブ API は REST とかのウェブサービス
データストアはオンラインストレージ等のサービスを利用する
オフラインでの作業はキャッシュマニフェストやローカルストレージで
普通のアプリが作れるかどうかはプログラマの質次第

もちろん古いデスクトップアプリが動かなくなる訳じゃない

873 :デフォルトの名無しさん:2011/06/04(土) 11:53:21.91
MSのマーケティングだね。HTML5好きですってアピっとけばアーリーアダプターが喜んでくれるから。

874 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 14:31:46.71
久しぶりに登場してみたよみなさんあいかわらずですねあ、かわいそう

875 :デフォルトの名無しさん:2011/06/04(土) 15:39:00.79
Perl, Python, Rubyで日本人のコミッタってそれぞれどれくらいいるの?

876 :デフォルトの名無しさん:2011/06/04(土) 15:40:27.73
Perl忍者は当然Perlのコミッタなんでしょ?
それともただの信者?

877 :デフォルトの名無しさん:2011/06/04(土) 16:18:44.03
Perl信者って語感もなかなかだな

878 :デフォルトの名無しさん:2011/06/04(土) 16:21:34.15
Perlしんじゃワロス
YOU! 改名しちゃいなYO!

879 :デフォルトの名無しさん:2011/06/04(土) 16:39:39.65
MSのアレは、シンクライアントもどきにするなら、ブラウザベースでいいじゃんと思ったな。

880 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 16:44:46.12
なんカストークばっかりだねここ

881 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 16:54:15.30
sora_hってオワコンらしいね
みんないってるよ

882 :デフォルトの名無しさん:2011/06/04(土) 16:58:14.24
うわ、また才能ある若者への嫉妬か。痛いな
なんて思いながらググってみたら、twitterが出てきたわ。
ほんとに腐っててワロタ。子供にPC与えちゃダメだな

883 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 17:15:49.96
うわあ・・・

884 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 17:18:06.60
twitterもってないけど
オイツあたま故障してるのかなあ???

885 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 17:18:42.50
こいつらいつまで語り合ってんだろうねマジキモキモ
早く死ね

886 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 17:19:28.38
なんかこいつらLL言語やってるやつだけが感染する強力風邪ウイルスとかに感染したら
ここに来るやついなくなろだろうね

887 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 17:23:19.78
早く消ねsora_h

888 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 18:01:55.92
Perlはオワコン

889 :デフォルトの名無しさん:2011/06/04(土) 18:07:22.76
Rやoctave使えよ。色々と捗るぞ

890 :デフォルトの名無しさん:2011/06/04(土) 18:12:53.34
中学生に完全敗北したPerl忍者w
小学校からやり直せよw

891 :デフォルトの名無しさん:2011/06/04(土) 18:17:44.59
忍者wwwww

892 :デフォルトの名無しさん:2011/06/04(土) 18:21:25.63
今時の中学生>>>>>>>>>>現代の忍者

さすがのハットリ君もこれには呆れるでござるの巻
忍者の名を名を汚した栃木の彼の君は忍者を名乗るなでござる
忍者の面汚しが!!!!!!

893 :忍者ハットリ@:2011/06/04(土) 18:22:53.35
今後はPerl信者と名乗るように
よろしいな?中学生に完全敗北した君。

894 :デフォルトの名無しさん:2011/06/04(土) 18:28:24.19
これはPerl忍者たちが黙っていられないね
怒りに触れる前に消えたほうがいいよみんな

895 :デフォルトの名無しさん:2011/06/04(土) 18:29:13.94
本体を消滅させないかぎりどんどん分身が暴れるから意味ないらしいね
ぜんぜんわかってないね

896 :デフォルトの名無しさん:2011/06/04(土) 18:32:53.51
Perl忍者=Malaらしいよ

897 :デフォルトの名無しさん:2011/06/04(土) 18:36:11.52
フォローしてもらったからっていい気になるなよ

898 :デフォルトの名無しさん:2011/06/04(土) 19:13:23.38
Malaってかんかくまでこだわってるらしいねカスだから
M.a.l.a とか M a la

899 :デフォルトの名無しさん:2011/06/04(土) 19:14:14.12
はー適当な公開範囲が無い!!!!!! 約2時間前 TweetIrcGatewayから

ため息くさいからはかないでほしい

900 :デフォルトの名無しさん:2011/06/04(土) 19:14:41.08
日記化うぜえ

901 :デフォルトの名無しさん:2011/06/04(土) 19:22:32.85
鴨ん、おっと間違えた
カモーンPerl信者

902 :デフォルトの名無しさん:2011/06/04(土) 20:55:07.58
rubyにはrakeという便利ツールがあるけど、同様なのはPHPやPythonにあるかな。
PHPではphing2というのを使ってみたけど、これはPHP版Antなので、xmlで書かなきゃいけなくて
めんどくさくて断念した。
つかphing使って思ったけど、antってクソだな。まるで直感的でない。

903 :デフォルトの名無しさん:2011/06/04(土) 21:10:04.51
おまえがくそだ消えろかす

904 :デフォルトの名無しさん:2011/06/04(土) 22:34:35.34
Pythonのsconsってのは結構知られているはず。


905 :デフォルトの名無しさん:2011/06/04(土) 22:42:43.08
>>904
sconsみたけど、ルールとコマンドをPythonオブジェクトの構造で表現するんだよね。
そうじゃなくて、rakeのようにコマンドの羅列でいいんだけど。

906 :デフォルトの名無しさん:2011/06/04(土) 22:43:36.58
そうじゃなくて、

907 :デフォルトの名無しさん:2011/06/04(土) 22:54:38.18
>>902
PHPはpakeというのが見つかった
ttps://github.com/indeyets/pake
symfonyで使われているみたいだから、それなりに広まっているのかな


908 :福盛俊明:2011/06/05(日) 00:41:46.69
味噌痔〜♪(アハアハ〜♪”


909 :デフォルトの名無しさん:2011/06/05(日) 06:58:38.10
Perl信者に流されたんで再投

Python, Rubyで日本人のコミッタってそれぞれどれくらいいるの?

910 :デフォルトの名無しさん:2011/06/05(日) 13:04:06.10
もう JavaScript で良いじゃん

Apple : JavaScriptCore で JavaScript を強力にプッシュ
Google : V8 で JavaScript を強力にプッシュ
MS : IE9 に加えて Windows 8 で JavaScript を強力にプッシュ
Nokia : Qt Quick で JavaScript を強力にプッシュ
Mozilla : いわずもがなで JavaScript を強力にプッシュ
Adobe : PDF も Illustrator も Air ももちろん JavaScript

有力なベンダーは全部 JavaScript 押し
この流れに対抗出来る LL なんて無いよね

911 :デフォルトの名無しさん:2011/06/05(日) 14:25:14.47
プッシュしてるのはお前だけだろ

912 :デフォルトの名無しさん:2011/06/05(日) 14:28:41.30
GAEでJS使えないじゃんワロス。ブラウザ対応状況に依存ワロス

913 :デフォルトの名無しさん:2011/06/05(日) 14:48:57.97
>>910
どれだけプッシュされようと、JavaScriptの言語仕様がが古くさいからな。
スコープが変だったり、引数のデフォルト値が指定できなかったり。
PHPにすら劣る点が多すぎる。

914 :デフォルトの名無しさん:2011/06/05(日) 14:50:13.88
>>910
シェアが高いのは認めるけど、文法がダサいから書きたくならないんだよなー

なにあのシーゲンゴ(笑)みたいな古くさい文法ww
生のjsが廃れてCoffeeScriptが主流になればいいのに

915 :デフォルトの名無しさん:2011/06/05(日) 14:51:21.88
かぶった
913しね

916 :デフォルトの名無しさん:2011/06/05(日) 15:00:56.97
>>914
CoffeeScript ってそんなに良いかな?
あれなら JavaScript のままで良いじゃんと思っちゃうんだけど、
どこら辺に魅力を感じるの?

917 :デフォルトの名無しさん:2011/06/05(日) 15:01:24.17
名前だけでなく使われ方もJavaに似てきたな

918 :デフォルトの名無しさん:2011/06/05(日) 15:20:07.71
ECMAScript 5準拠で書いて良いなら、JSでも良いよ。
けど、それじゃ意味ないじゃん。ブラウザで動くのがJSだけだから、JS使ってるだけで。
もしRubyでもPythonでもPHPでもいいけど、そのインタプリタがブラウザにインストールされてるなら、JS選ぶ人なんていないでしょう。


919 :デフォルトの名無しさん:2011/06/05(日) 15:53:17.69
そんな事無いと思うけど?

920 :デフォルトの名無しさん:2011/06/05(日) 15:55:22.59
汎用言語としてはPythonの方がよっぽど使われてる事実

921 :デフォルトの名無しさん:2011/06/05(日) 15:58:44.17
pythonも初心者向け言語だよね
ベターなシェルスクリプトとして使うには便利

922 :デフォルトの名無しさん:2011/06/05(日) 16:10:08.02
javascriptの文法のダサさは元々がschemeインタプリタを
組み込もうとした歴史的経緯にあるんじゃねーの?
perlみたく、あのバギーっぽさがいいじゃん

923 :デフォルトの名無しさん:2011/06/05(日) 16:43:40.45
>>909
Rubyは20人強。非日本人をもっと増やした方がいい。

924 :デフォルトの名無しさん:2011/06/05(日) 18:14:07.87
継承とかMixinとか難しい。もう関数だけあれば良いです

925 :デフォルトの名無しさん:2011/06/05(日) 18:50:15.97
>>913
引数のデフォルト値が無いと困るケースが分からんな...。

http://d.hatena.ne.jp/lurker/20060811/1155307397

未だに冗長な self を書かせる Python とか、インデントを強制する
Python とか、まともな無名関数を用意出来ない Python とかの方が
余程古くさいわ...。

926 :デフォルトの名無しさん:2011/06/05(日) 18:54:37.66
>>912
GAE なら Mirah とかを使うと楽しそうだね

927 :デフォルトの名無しさん:2011/06/05(日) 19:04:57.48
まあ確かにlambdaじゃもの足りないときってのはあるけどさ、
大抵ここを批判してくる連中はデコレータとfor, with辺りの仕様を知らない。

928 :デフォルトの名無しさん:2011/06/05(日) 19:06:31.62
GAEならRingoJSとかいうのが使えたはず
だけどPython,JRuby,Groovy,Scalaまで選択肢ある中であえてjsはなぁ

929 :デフォルトの名無しさん:2011/06/05(日) 19:08:10.29
他の言語で無名関数が必要なときの9割ぐらいは、
lambda, @, for, withを使い分けることでいける。

むしろ、コードの意図が明確になるし、スコープもキモくならなくて、
デメリットよりメリットの方が大きい気もするんだけど。

複数知ってないと使えんという批判ならまあ分かるけどね。

930 :デフォルトの名無しさん:2011/06/05(日) 19:19:38.36
>>925
引数が足りなかった場合やキーワード引数名をtypoしたときに自動でエラーに
してくれる分、JSのデフォルト値付きキーワード引数モドキよりPythonの方が便利だよ。
Pythonのselfがイケてないのは同意だが、JSのthisも別の意味でイケてない。

931 :デフォルトの名無しさん:2011/06/05(日) 19:22:57.94
>>930
キーワード引数自体が些末な機能だからどうでも良いわ
CLの昔からある物を今更新しいとも思わんし...。

932 :デフォルトの名無しさん:2011/06/05(日) 19:23:49.11
不便な点は華麗にスルー

933 :デフォルトの名無しさん:2011/06/05(日) 19:24:56.77
面倒くさ

934 :デフォルトの名無しさん:2011/06/05(日) 19:28:32.91
以上、文法が古くさいとかダサいとか印象論を言い出すと自分に帰って来る罠でした

935 :デフォルトの名無しさん:2011/06/05(日) 19:31:14.25
>>931
大事なのは新しいかどうかじゃなくて
便利かどうか

936 :デフォルトの名無しさん:2011/06/05(日) 19:37:36.94
そもそもJavaScriptってPythonとかPerlとかRubyとほとんど競合していないような……。

937 :デフォルトの名無しさん:2011/06/05(日) 20:00:54.27
>>934
え、古くさくないの?ダサくないの?

938 :デフォルトの名無しさん:2011/06/05(日) 20:31:39.46
いまどきリストをfor使って添え字でアクセスするとか。

939 :デフォルトの名無しさん:2011/06/05(日) 20:32:44.69
名前空間なくて$をみんなで奪い合いとか。なんすか、これ?

940 :デフォルトの名無しさん:2011/06/05(日) 20:47:41.16
(Mozilla)JavaScriptの話なのかECMAScript5の話なのかECMAScript Harmonyの話なのかで返答が変わってくる

941 :デフォルトの名無しさん:2011/06/05(日) 21:48:24.22
書き捨てで単純な値比較以外にPythonでlambdaなんか使わんけど、
標準モジュールに利用頻度の高い関数を返すlambdaもどきがあってもいいかも。
知らんだけでもうありそうだけど。。。

942 :デフォルトの名無しさん:2011/06/05(日) 22:37:36.86
>>941
一応operatorモジュールとかあるけど、importなしにパっと使えるlambdaは便利。
L.sort(key=lambda x: len(x[1])) とか。

943 :デフォルトの名無しさん:2011/06/05(日) 23:15:31.80
Perl ワンライナー、昔の資産のメンテ
PHP お手軽なWebプログラム
Ruby 趣味
Python ベターシェルスクリプト、システム設定とか
Java Script ブラウザ
TCL/TK 昔のGUI資産のメンテ

944 :デフォルトの名無しさん:2011/06/05(日) 23:19:22.79
Rubyは環境さえ整えばメインで使いたいが
システムに入ってることが期待できないしなぁ
言語の優劣というより、政治力のなさとかコミッタの少なさとかが問題なのかな

945 :デフォルトの名無しさん:2011/06/05(日) 23:39:00.68
リーダーありきの言語の限界というか
仕様が明文化されてなかった時代が長いし、
いろいろ後手後手に回ってる感がね

946 :デフォルトの名無しさん:2011/06/05(日) 23:52:12.29
Pythonにシェルスクリプトの仕事をやらせたことはないなあ
えらく冗長になる

947 :デフォルトの名無しさん:2011/06/06(月) 00:03:26.82
簡単なシェルスクリプトはbashでいいと思うけど、複雑なシェルスクリプトになると
メンテが大変なのでやっぱりPythonで書きたい。

948 :デフォルトの名無しさん:2011/06/06(月) 00:07:03.16
簡単な処理を短く書き捨てる
って用途にはPythonは向かないよな
そこはPerlの独壇場

複雑な・規模の大きな処理を使い回す
って用途にこそPython
逆にこの用途にPerlは使いたくない

適材適所

949 :デフォルトの名無しさん:2011/06/06(月) 00:20:15.04
俺、Python使いだけど。ワンライナーとか書き捨てとかそういうのもいいなと思って、最近awkはじめたんだ。
awkで書くのが辛い規模のを書くときは、素直にPython使えばいいかな、と思って。

テキスト処理するならawkほんといいよ。

950 :デフォルトの名無しさん:2011/06/06(月) 00:23:09.53
>>948
RubyとPythonはどう使い分ければいいの?

951 :デフォルトの名無しさん:2011/06/06(月) 00:30:36.73
Rubyは"より良いPerl"らしいよ。Perlに勝てないのなら存在価値ないね

952 :デフォルトの名無しさん:2011/06/06(月) 00:33:26.23
>>949
俺もawk成り行きで一通り覚えたけど・・・
perl既に知ってるんだったら、awk勉強するより英語勉強したほうがいいと思う。

953 :デフォルトの名無しさん:2011/06/06(月) 00:53:21.43
>>952
perlは知らない。昔ちょっとやったけど、あんま身につかなかった。
身についてたらPythonとawkに手を出そうと思わなかった気がする。

英語勉強した方がいいってのには同意だけど。プログラミング言語系のスレでそれ言っちゃうとおしまいよ。
どのプログラミング言語よりも、英語の方が使い道あって仕事も多くて応用も効くから。

954 :デフォルトの名無しさん:2011/06/06(月) 01:09:31.36
$ irb
irb> [1] == [1]
=> true
irb> {} == {}
=> true

$ python
>>> [1] == [1]
True
>>> {} == {}
True

$ node
> [1] == [1]
false
> {} == {}
false

JSってバカなんじゃね?

955 :デフォルトの名無しさん:2011/06/06(月) 01:37:31.02
>>954
必要なら Array の prototype に compare() メソッドを足してあげると良いんじゃないの

956 :デフォルトの名無しさん:2011/06/06(月) 02:34:06.53
>>955
なんでそんなことしなきゃいけないの?
イコールぐらいまともに実装しろよな。
それか演算子オーバーライドできるようにしてくれ。

957 :デフォルトの名無しさん:2011/06/06(月) 02:39:08.89
>>956
自分でしたくなけりゃ、出来合いのライブラリをロードすれば良いだけだよ
自分で実装するのも簡単だけどね

958 :デフォルトの名無しさん:2011/06/06(月) 03:34:32.05
言語仕様がおかしいんだね。

959 :デフォルトの名無しさん:2011/06/06(月) 03:40:23.78
未だに言語仕様とライブラリ仕様の区別が付いてない人っているよね...。

960 :デフォルトの名無しさん:2011/06/06(月) 06:57:52.81
>>949
awkは単体より、シェルスクリプトの一部として使うのが良いと思う
言語単体で使うならそこはPerlでやりたい
Pythonは百行以上書くときだなあ、小物にはまず使わないや

961 :デフォルトの名無しさん:2011/06/06(月) 08:05:39.03
>>959
使う上では同様に気になる

962 :デフォルトの名無しさん:2011/06/06(月) 10:56:48.27
ワンライナーとか小物スクリプトの用途ではPerlぐらいには使えるよ、Ruby
Perlに比べれば読めないスクリプトにならないって利点もある

とはいえ、システムに組み込まれてることは期待できないし、
Rubyを使った案件なんかもなきに等しいから、
結局趣味で手元の作業を簡略化するぐらいしか使い道がないんだよね。

963 :デフォルトの名無しさん:2011/06/06(月) 11:07:21.46
Rubyってそれで十分じゃないかな、とは思う

964 :デフォルトの名無しさん:2011/06/06(月) 11:32:50.91
rubyとperlなら可読性の差なんか無いだろ

965 :デフォルトの名無しさん:2011/06/06(月) 11:39:40.67
RubyとPythonの言語的な性能は大差ないと思うけど、
ライブラリには大きな差があるように感じる

966 :デフォルトの名無しさん:2011/06/06(月) 11:43:16.57
どんぐりのなんとやら

967 :デフォルトの名無しさん:2011/06/06(月) 11:52:51.22
そういえば.net使う限り、どれでコンパイルしても同じだよな。

JScriptだってコンパイルすれば言語仕様を超えて演算子のオーバーロードが出来るようになるって書いてあったし。


968 :デフォルトの名無しさん:2011/06/06(月) 11:57:50.35
工学系の人間覚えるならPythonがいいよ
数式処理とか数値解析とかのライブラリが豊富
numpyとかscipyとかsympyとか
MATLABやMathematicaには多少劣るけど

969 :デフォルトの名無しさん:2011/06/06(月) 12:00:37.65
>>968
俺がPythonに興味を持ったのは3Dライブラリで簡単に3Dゲームが作れるってところだったんだけど、
その数値計算?ライブラリがあるんなら現実的かもな。
ライブラリのセットアップだけでちょっとおなかいっぱいだったんだけどやってみるかな。


970 :デフォルトの名無しさん:2011/06/06(月) 12:02:58.94
>>969
どっちかっつうと研究用だから、ゲーム用途に耐えうる速度かどうかは知らんぞ?
いまどき頂点演算なんて行列計算するまでもなくラッピングされてそうだし

971 :デフォルトの名無しさん:2011/06/06(月) 12:35:10.30
>>968
numpy等等は個々のライブラリなので、
環境として挙げるなら EPD(Enthought Python Distribution)や sage かな。

972 :デフォルトの名無しさん:2011/06/06(月) 13:03:34.63
システムに組み込まれてるかどうか、ライブラリが充実してるかどうかなんかも、
実際に言語を選ぶ際には重要なファクターだよね

だからこそ、古い言語は強いんだけど

973 :デフォルトの名無しさん:2011/06/06(月) 13:49:33.02
>>964
Perlはコンテキストに依存したコード書くと結構混乱するかも

974 :デフォルトの名無しさん:2011/06/06(月) 18:10:38.87
>>971
あれ巨大すぎて邪魔。何が入ってるのか何が入ってないのかも把握できない
必要なものだけその都度入れたほうが良い

975 :デフォルトの名無しさん:2011/06/06(月) 18:24:22.25
>>970
pythonが論文に使われたりするの?

研究というより、ちょっとした確認用のプログラム電卓みたいな用途じゃねえの
学生の宿題の答えの確認程度にはいいかもな
といっても、ライブラリの関数を覚える労力と
他のソフトの関数を覚える労力は変わらんと思うけど
工学がどうのこうの研究がどうとかハッタリは置いといて単純に汎用性を考えると
pythonは便利

976 :デフォルトの名無しさん:2011/06/06(月) 20:00:08.53
python遅いじゃん

977 :デフォルトの名無しさん:2011/06/06(月) 20:03:41.05
ちょっと前のネタだけど、ワンライナーの比較。
F#が意外と奇麗なのね。OCamlも同じ感じかな。

http://programmingzen.com/2011/06/02/10-ruby-one-liners-to-impress-your-friends/
http://solog.co/47/10-scala-one-liners-to-impress-your-friends/
http://blog.fogus.me/2011/06/03/10-haskell-one-liners-to-impress-your-friends/
http://codeblog.dhananjaynene.com/2011/06/10-python-one-liners-to-impress-your-friends/
http://freegeek.in/blog/2011/06/10-clojure-one-liners/
http://ricardo.cc/2011/06/02/10-CoffeeScript-One-Liners-to-Impress-Your-Friends.html
http://willwhim.wordpress.com/2011/06/02/fsharp-one-liners-to-impress-your-friends/
http://marxsoftware.blogspot.com/2011/06/ten-groovy-one-liners-to-impress-your.html
https://gist.github.com/1004837

978 :デフォルトの名無しさん:2011/06/06(月) 20:18:13.35
>>976
Python自体は遅いんだけど、一般的な関数はC言語で実装済みだし、自分で定義する
関数も簡単にCやFortranで書けるから、あくまでもそれらを組み合わせるための
言語としてよく使われている。
3Dの世界でも同じ理由でPythonがデファクトスタンダード言語になりつつある。

979 :デフォルトの名無しさん:2011/06/06(月) 20:28:24.23
BlenderでもMayaでも単なるツール言語じゃん
Script-Fuみたいなもんでしょ

980 :デフォルトの名無しさん:2011/06/06(月) 21:13:16.37
スクリプト、フー!


981 :デフォルトの名無しさん:2011/06/06(月) 22:11:31.97
>>980
gimpスレに帰れ

982 :デフォルトの名無しさん:2011/06/06(月) 22:20:08.96
>>975
matlab,octave,Rがありで、numpyがダメな理由がわからない
Cしかしらない老害教授が自分で即席で書いたような逆行列の関数だとかを
B4に渡したけど数値誤差多すぎて使いものにもならんってことはあったな
gmp、ublas何それ?な教授とか、工学部に居なくていいのに。
こーいう無能がリストラに合わないなんて、なんて羨ましい職業なんだろう

983 :デフォルトの名無しさん:2011/06/06(月) 22:41:49.03
それは論文を書くときに、ノーベル賞学者の論文を引用するのがありで、
学部生の卒業論文を引用するのがダメな理由が分からないって言ってるようなもの

984 :デフォルトの名無しさん:2011/06/06(月) 23:38:19.32
numpyは十分に枯れてるだろ
pythonで直に書くわけじゃないぞ

985 :デフォルトの名無しさん:2011/06/07(火) 01:30:45.23
Pythonが良いのはbattery includedって事に尽きるよな
ライブラリさえ揃っていれば、正直なところ言語は何でも良い

986 :デフォルトの名無しさん:2011/06/07(火) 01:53:49.94
ライブラリが充実しているのは、ライブラリ作った人が大勢いたということだから、
ライブラリの揃ってる言語ってのは、仮に糞だとしても使いようのある糞。

987 :デフォルトの名無しさん:2011/06/07(火) 10:31:38.69
>>982
そのかわり、教授には他にはない経験と実績があるのさ。たぶん

gnuplotの代わりにmatplotlib使うだけでもpython覚える価値はあるぜ

988 :デフォルトの名無しさん:2011/06/07(火) 11:09:03.53
ねーよ

989 :デフォルトの名無しさん:2011/06/07(火) 11:37:05.27
pythonすら覚えられない低能かわいそうですw

990 :デフォルトの名無しさん:2011/06/07(火) 11:43:10.57
pythonを覚える価値はあるが、gunplotの代わりがどうとかそういうこと言うのもうやめろ。見てるこっちが恥ずかしい

991 :デフォルトの名無しさん:2011/06/07(火) 12:01:39.82
現実を認められないruby信者の発狂が見苦しいです

992 :デフォルトの名無しさん:2011/06/07(火) 12:18:40.99
ええっとどこからRubyが出てきたのか

993 :デフォルトの名無しさん:2011/06/07(火) 12:21:00.76
Rubyをdisらないと死んじゃう人の脳内から

994 :デフォルトの名無しさん:2011/06/07(火) 12:26:05.48
Pythonで3Dで検索したらBlenderってのが出てきたけど、無料の開発環境の.netで作って
シルバーライトで動かすのが手ごろかなと思う。


995 :デフォルトの名無しさん:2011/06/07(火) 12:42:21.15
ときどきこのスレの住民層がまったくわからなくなる

996 :デフォルトの名無しさん:2011/06/07(火) 12:46:52.38
科学技術系ではPython圧勝だなぁ。
Bio{Perl,Python,Ruby}でもPython圧勝。

997 :デフォルトの名無しさん:2011/06/07(火) 12:53:38.06
ニッチな分野ではあるがなwくそ高い専用ソフトが溢れてる中にあっては貴重な存在

998 :デフォルトの名無しさん:2011/06/07(火) 12:59:22.45
科学技術系ではお高いソフト圧勝に決まってんだろ

999 :デフォルトの名無しさん:2011/06/07(火) 13:06:51.46
PerlもRubyもそういう用途はあまり考えられてないからねえ。

Rubyはライブラリが貧弱すぎるし、Rubyでプログラミング入っちゃった人と
趣味でやってる人とRails厨が使ってる印象。

Perlは過去の遺産で持ってる感じ。今から始める人がやる理由はあまりない。

1000 :デフォルトの名無しさん:2011/06/07(火) 13:14:25.86
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

226 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)