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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
さすがにもういらないよね
2デフォルトの名無しさん:2010/11/22(月) 05:31:15
ならなぜたてた
3デフォルトの名無しさん:2010/11/22(月) 08:10:59
Rubyの勝利
4デフォルトの名無しさん:2010/11/22(月) 08:17:09
Rubyは趣味でひっそりやってる分にはよかったんだけどね
なまじRailsなんかで広まっちゃったもんだから
5デフォルトの名無しさん:2010/11/22(月) 14:27:25
趣味っつーか、ツールとしてなら良かった
Ruby開発ってのは微妙ではある
6デフォルトの名無しさん:2010/11/22(月) 18:11:11
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
7デフォルトの名無しさん:2010/11/23(火) 02:00:08
Rubyは1.9でゴミになった。M17Nがひどすぎ。
8デフォルトの名無しさん:2010/11/23(火) 02:21:20
解説を見てる限りじゃけっこう美しく感じるんだけど、どのへんがひどいの?
9デフォルトの名無しさん:2010/11/23(火) 04:15:45
pythonは初心者向けとか言われるけど、バカにあのソースいじらせたら、
どんなに上手に設定されたエディタ使ったところで、
インデント解除するのにいちいち全部の行でバックスペースぽちぽちするんだろうなぁ、
と思ってみたところ、だったら閉じ括弧でもendでもなんでも書かせて、
その代わりインデントは全部エディタ任せの方がいいんじゃないかと思ったり思わなかったり。
10デフォルトの名無しさん:2010/11/23(火) 08:04:00
ちゃんと設定したエディタなら<BS>一発とかでインデント一段浅くできるような気が
それにend<CR>も<BS> * 4もタイプ数的には同じという罠
11デフォルトの名無しさん:2010/11/23(火) 08:40:58
>>7
アンチCSIでUCS原理主義なんだろおまえがwwwwwwww
12デフォルトの名無しさん:2010/11/23(火) 09:33:06
>>11
別にCSIでもいいが、今の仕様が糞なのは確かだろ。
M17Nとか仕様を解説した文書はあるが、実際の使い方の文書がない。
1.9でいくつかトラブル起きたが、force_encoding以外の解決方法がないんだよ。
force_encodingはわざと使いにくくしてるし。
13デフォルトの名無しさん:2010/11/23(火) 09:44:35
ttp://jp.rubyist.net/magazine/?0025-Ruby19_m17n

これだけコード例が出てても「実際の使い方の文書がない。」とか...
14デフォルトの名無しさん:2010/11/23(火) 10:06:37
実際には使えません
15デフォルトの名無しさん:2010/11/23(火) 10:07:29
force_encodingが必要な場面て外部との境界くらいじゃ?
16デフォルトの名無しさん:2010/11/23(火) 10:20:17
一応貼っておこう

最強のLL=軽量プログラム言語は、どれよ?

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

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

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

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

過去スレは容量オーバーのため>>17に分離
17デフォルトの名無しさん:2010/11/23(火) 10:20:33
※前スレ
【Perl,PHP】LLバトルロワイヤル13【Ruby,Python】
http://hibari.2ch.net/test/read.cgi/tech/1287944631/
■過去スレ
【Perl,PHP】LLバトルロワイヤル12【Ruby,Python】
http://hibari.2ch.net/test/read.cgi/tech/1284382120/
【Perl,PHP】LLバトルロワイヤル11【Ruby,Python】
http://hibari.2ch.net/test/read.cgi/tech/1276128624/
【Perl,PHP】LLバトルロワイヤル10【Ruby,Python
http://pc12.2ch.net/test/read.cgi/tech/1270996206/
【Perl,PHP】LLバトルロワイヤル9【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1267553581/
【Perl,PHP】LLバトルロワイヤル8【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1259287439/
【Perl,PHP】LLバトルロワイヤル7【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1248487404/
【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1244166510/
【Perl,PHP】LLバトルロワイヤル5【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1238720336/
【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1234635513/
【Perl,PHP】LLバトルロワイヤル3【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1215319832/
【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1209289408/
【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1188997302/
18デフォルトの名無しさん:2010/11/23(火) 10:29:23
       ┌─┐
       │●│
       └─┤
       _   ∩
      ( ゚∀゚)彡
    ┌─┬⊂彡
    │●│ おっぱい!おっぱい!
    └─┘
19デフォルトの名無しさん:2010/11/23(火) 12:43:29
http://twitter.com/yukihiro_matz/statuses/6862021614112769

yukihiro_matz: 昨日の「遅刻する夢」に引き続いて、今日は「迷子になる夢」を見
た。なんか不安があるんじゃないだろうか、オレ
               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <こいつ最高に良い勘してるお
  \     ` ー'´     //
  / __        /
  (___)      /
20デフォルトの名無しさん:2010/11/23(火) 12:49:55
マルチうざい
21デフォルトの名無しさん:2010/11/23(火) 13:08:20
>>13
その記事がゴミ。車乗りたい人に鉄の作り方だけ教えるようなもの。
22デフォルトの名無しさん:2010/11/23(火) 13:15:30
Rubyなんてネタ枯れだから>>19も暇なんだろ。
23デフォルトの名無しさん:2010/11/23(火) 13:17:30
Rubyの夢も潰えた…ヵ…(死)
24デフォルトの名無しさん:2010/11/23(火) 13:28:46
3年後くらいには、

ああ、そういえば日本人が開発してた言語もあったねえ(遠い目

なんてことになってるんだろうね
25デフォルトの名無しさん:2010/11/23(火) 14:19:29
Rubyが空気のような存在になるってのは、
それはそれで良い事なのではないかといふ気がする
26デフォルトの名無しさん:2010/11/23(火) 14:26:41
... やがてRubyは空気になり、そして千の風になったのです。【完】
27デフォルトの名無しさん:2010/11/23(火) 14:40:45
妄想に必死だなw
28デフォルトの名無しさん:2010/11/23(火) 21:08:08
>>10
>>9には全部の行って書いてあるよ
29デフォルトの名無しさん:2010/11/25(木) 07:27:20
rubyのマーシャルってなんであんな感じなの?
普通にメソッドみたいにできないの?

30デフォルトの名無しさん:2010/11/26(金) 18:25:31
684 名前:デフォルトの名無しさん [sage]: 2010/11/12(金) 12:27:47
遂にC#を越えたな
http://www.google.co.jp/trends?q=ruby+programming,+python+programming,+C%23+programming&ctab=0&geo=all&date=all&sort=0



685 名前:デフォルトの名無しさん [sage]: 2010/11/12(金) 14:17:37
>>684
まだ上には上が
Google トレンド: Java programming, ruby programming, python programming, C# programming
http://www.google.co.jp/trends?q=Java+programming%2C+ruby+programming%2C+python+programming%2C+C%23+programming&ctab=0&geo=all&date=all&sort=0

しかしC#下がってきてるのウケル


686 名前:デフォルトの名無しさん [sage]: 2010/11/12(金) 14:18:49
>>684
phpぶっちぎってるんだが、こっちの方がすごくないか
Google トレンド: php programming, ruby programming, python programming, C# programming
http://www.google.co.jp/trends?q=php+programming%2C+ruby+programming%2C+python+programming%2C+C%23+programming&ctab=0&geo=all&date=all&sort=0
31デフォルトの名無しさん:2010/11/27(土) 08:28:24
32デフォルトの名無しさん:2010/11/27(土) 12:35:25
152 名前:デフォルトの名無しさん [sage]: 2010/11/27(土) 01:48:44
次は tail.py の実装だな

156 名前:デフォルトの名無しさん [sage]: 2010/11/27(土) 12:02:32
ttp://codepad.org/nyzf67zT
書いてみたけど、結構面倒くせえなw

158 名前:デフォルトの名無しさん [sage]: 2010/11/27(土) 12:23:53
Ruby使う方が楽ですねぇ


らしいんだけど、rubyだとどう書くの?
33デフォルトの名無しさん:2010/11/27(土) 14:31:30
こういうのは手続き的に書くなら言語が何でも泥臭くなる気がする。
34デフォルトの名無しさん:2010/11/27(土) 17:19:43
>>32
Ruby のスレだと何かと言い訳ばかりしてコードが出てこない傾向にあるな
35デフォルトの名無しさん:2010/11/27(土) 17:25:00
Pythonスレに常駐して、全ての話題でRubyの方がいいってコード見せずに言い続けてるキ○ガイだろ。
ほっとけよ。わざわざこのスレに転載する方もアホ。
36デフォルトの名無しさん:2010/11/27(土) 21:44:29
>>34
Rubyの本スレは雑談スレだからな。あそこはあんまりコードを出さない。
初心者スレ辺りだと結構コードが出て来るけど、
別スレで既に出ている問題を初心者質問として貼るのは流石にスルーされるだろうな。
37デフォルトの名無しさん:2010/11/28(日) 01:27:32
>>35
別に、それ書いた奴がまともかまともでないかはどうでもいい。
問題は、Rubyの方が楽か、そうでないかだ。
38デフォルトの名無しさん:2010/11/28(日) 01:42:16
ちゃんとかけばRubyだろうと大して楽にはならん。
39デフォルトの名無しさん:2010/11/28(日) 01:57:35
RubyがPythonに敗北した理由は、ライブラリのサポートが弱いから?

構文的には優れているのに残念だよね。
40デフォルトの名無しさん:2010/11/28(日) 02:31:51
優れてるという人が多い割に、書く人が少ないのはなぜ?
41デフォルトの名無しさん:2010/11/28(日) 03:40:23
客観的に優れているかは知らんが、
PerlやPythonがある中で一定の地歩を固めたのは本当に驚くべきこと
(っていうか、一番驚いてるのは当のmatzのようだ……w)

比較的黎明期の段階で、初期設計がうまくいっていた事と、
Dave Thomasとか幾人かの優れたプログラマに
支持されたのが大きいのかもしれない
42デフォルトの名無しさん:2010/11/28(日) 06:03:44
>>40
あんまり書く人が少ない印象はないなあ。
普段見てるスレの傾向のせいなのかな?
43デフォルトの名無しさん:2010/11/28(日) 09:08:26
シェアはともかく、マイナーではないな。
仕事でスクリプト言語が必要になったときにPerlでもPythonでもなく
Ruby選んでも拒否されない程度にはメジャー。
Perlは無視してもいいし、PythonはGoogle App Engine使う時くらい。
現状1.9がダメなので今後が不安だが…
44デフォルトの名無しさん:2010/11/28(日) 09:20:52
1.9がどうダメだよ?
45デフォルトの名無しさん:2010/11/28(日) 09:55:33
>>43
ビッグ・マイナーとリトル・メジャー果たしてどっちがよかったんだろうか…
46デフォルトの名無しさん:2010/11/28(日) 13:40:28
日本人だとRuby知っててもPython知らないひとが結構いる
47デフォルトの名無しさん:2010/11/29(月) 02:31:12
他の板に立つプログラミングスレでRubyなんて一度たりとも見たことない
48デフォルトの名無しさん:2010/11/29(月) 02:37:05
なるほど

【Ruby】Ruby on Rails Part10
http://hibari.2ch.net/test/read.cgi/php/1282991262/
49デフォルトの名無しさん:2010/11/29(月) 03:08:30
いまごろ47は感動に打ち震えていることだろう
50デフォルトの名無しさん:2010/11/29(月) 10:48:29
そういうスレじゃねーよ。「プログラミングスレ」だよ。アホか
51デフォルトの名無しさん:2010/11/29(月) 11:23:59
>>50
47さんチィーっす
52デフォルトの名無しさん:2010/11/29(月) 15:07:47
RubyはWeb用言語だったのか・・・
53デフォルトの名無しさん:2010/11/29(月) 18:00:37
言語を限定しないプログラミングスレだよ
54デフォルトの名無しさん:2010/11/29(月) 18:54:45
言語を限定しないって…この板はプログラミングについて語る板だから
色んな言語の話もできるけど、他の板でプログラミングって言ったら
具体的な目的があってやるものだろ?
なら言語は用件に合わせてすぐに決まらなきゃマズいと思うが、言語を限定せずに話が進められるのか?
いったいどんなスレを想定してるんだ?
55なるとくん:2010/11/29(月) 19:13:36




逃げワード「 人それぞれ 主観 用途に応じて  どの言語がいいか一概には言えない」
56なるとくん:2010/11/29(月) 19:18:13
きみみたいにお茶を濁すかすはくたばれ



逃げワード「 人それぞれ 主観 用途に応じて  どの言語がいいか一概には言えない」
57デフォルトの名無しさん:2010/11/29(月) 19:18:58
>>54
もっと見識を広げようぜ
58デフォルトの名無しさん:2010/11/29(月) 21:37:15
>>57
いや、拡げようにもどんなスレがあるのか分からないんだ
59デフォルトの名無しさん:2010/11/29(月) 22:32:27
例えばν即でも定期的にプログラミングスレ立つよ
60デフォルトの名無しさん:2010/11/29(月) 22:37:25
そこは今までどんな言語が出て来たの?
61デフォルトの名無しさん:2010/11/29(月) 22:42:56
C/C++,Java,Lisp,Pythonは定番かな。少なくともrubyなんて一度も見たことない。誰が使ってるんだおる
62デフォルトの名無しさん:2010/11/29(月) 22:45:49
例えばこのLLバトルロワイヤルスレでも、コード晒すのってだいたいRuby以外じゃん
GroovyだかScalaだか、その辺で晒す人すらいたのに
63デフォルトの名無しさん:2010/11/29(月) 23:51:36
文脈に応じて、手が届く範囲でコードは書こうと思っているが
たまたまそういう話題にならなかっただけじゃないの
64デフォルトの名無しさん:2010/11/30(火) 00:37:27
結局バトルロワイヤルで弾かれたのがrubyっていうことですね
65デフォルトの名無しさん:2010/11/30(火) 02:11:31
弾かれたってよりも、そもそも書く人がいない。
よく自信満々でコード晒して欠点指摘されてるPythonが弾かれてんじゃね?

つーわけで、
Perl→老害
Ruby→非実在青少年
Python→民主党員
PHP→ネトヒキ
Groovy/Scala→中二病
Lisp→格好付けすぎ
66デフォルトの名無しさん:2010/11/30(火) 02:27:10
最後の一行がやりたかっただけだろまったくもう
67デフォルトの名無しさん:2010/11/30(火) 08:55:40
Rubyの場合、ユーザ層が分離しちゃってるからな

1つはRubyistヲチや言語比較がメインの層(Ruby本スレ派)
ここに来るのはこの層になるんだが、この層はあまりRubyコードを書かない
細かい仕様については詳しいが、それ以上の実践に関しては話さないからな
むしろ知ってるのは処理系ソースのためのC言語だったり、比較用の他言語の仕様

もう1つは実践するのがメインの層(初心者スレ派)
初心者スレで質問に答えたり、宿題スレで丸投げされたのをコードに起こす層
実際にコードに起こすのは上手いし、色んなノウハウも知ってたりする
でも他言語との比較とかには興味がないからここには来ない
68デフォルトの名無しさん:2010/11/30(火) 09:53:05
Rubyist はもう疲れちゃったんだよ
こんなスレでわざわざコードを晒すほどの元気はない
69デフォルトの名無しさん:2010/11/30(火) 10:59:36
楽天技術フェローって何やってるの?送料無料にしてくれると有り難いんだけど。。
70デフォルトの名無しさん:2010/11/30(火) 15:01:53
>>69
それは技術者じゃなくて経営者の案件です
71デフォルトの名無しさん:2010/11/30(火) 17:37:54
72デフォルトの名無しさん:2010/11/30(火) 21:10:43
LLの中で一番テストコードを書く文化が定着してるのはRuby
テストのないコードはレガシーコードです
73デフォルトの名無しさん:2010/11/30(火) 21:13:33
PythonもかなりTDDが定着していると思うんだけど、どうなんだろうね?
標準ライブラリのカバレッジ率とかどっかで比べられないかな。
74デフォルトの名無しさん:2010/12/01(水) 01:42:57
>>66
むしろネトヒキ言いたかった。
75デフォルトの名無しさん:2010/12/01(水) 01:48:39
>PythonもかなりTDDが定着していると思うんだけど、どうなんだろうね?

DocTest便利だけど禁止の環境もあるんだよなぁ
76デフォルトの名無しさん:2010/12/01(水) 01:49:26
>>67
なんで処理系ソースが分かるくらいの人が、たかがLLで何か書いたりすらできないの?
専門で書いてる人にはかなわないかもしれないけど、仕様知り尽くしててCソース読めるくらいの実力がありゃ、
コード書けない要素がある気がしない。
77デフォルトの名無しさん:2010/12/01(水) 02:59:08
>>75
doctest よりは unittest, nose なんかが使われていることが多い。
doctest はドキュメント内のサンプルコードが正しいことをチェックする(サンプルコードの
更新もれを不正で常に up to date にする)ためにはとても便利だけど、
unittest を doctest で真面目にやろうとしたらコードよりも doctest の方が長くなってしまう。
78デフォルトの名無しさん:2010/12/01(水) 03:18:42
>>76
ヒント:著作権
79デフォルトの名無しさん:2010/12/01(水) 03:58:47
>>78
どう関係あるんだ?
80デフォルトの名無しさん:2010/12/01(水) 05:23:27
以前Ruby本スレにライブラリか何かのパッチを貼った人がいたんだけど
そうすると2chの規約上そのパッチの権利は2chに移る
だからそういったコードを2chに書いたりはしない

ってことが言いたいんじゃないか
ここでお遊びコードを貼る貼らないの話と
どれくらい関係しているのかは知らないが
81デフォルトの名無しさん:2010/12/01(水) 06:19:13
というか貼る文化が無いんだよRuby本スレ
82デフォルトの名無しさん:2010/12/01(水) 06:22:05
>>80
そういうことが心配な人は、2chにコード貼るとき「※このコードはGPLで許諾します」と書いておけばいんじゃね?
83デフォルトの名無しさん:2010/12/01(水) 06:26:04
>>81
まあその通りだね
>>80はあくまで>>78を敷衍しただけ
84デフォルトの名無しさん:2010/12/01(水) 11:15:11
2chに直接貼るのがダメならcodepadとかgistとか経由するとどうなるん?
85デフォルトの名無しさん:2010/12/01(水) 11:25:50
問題なし
貼らない言い訳に逝ってるだけだろう
86デフォルトの名無しさん:2010/12/01(水) 15:03:07
>>65
C言語最強ということですね、わかります
87デフォルトの名無しさん:2010/12/01(水) 18:39:52
>>84
codepad、gist は知らないが、github は他人がフォークしたりを許さないとコー
ドを up しちゃ駄目な規約になってたはず。
88デフォルトの名無しさん:2010/12/01(水) 20:12:39
>>80
2chの場合、貼った時点で書き込みの知的財産権全てが
運営に移る(とされてる)から、そういうレベルじゃなかったりする
http://info.2ch.net/kiyaku.html

投稿者は自分の書き込みの内容を利用できるけど
「運営から」書き込み利用の権利を許諾してもらってる立場
ライセンスを指定したところで効力がない

それに規約にはこんな文面もあるから
> また、投稿者は掲示板運営者が指定する第三者に対して、一切の権利(第三者に対して再許諾する権利を含みます)を許諾しないことを承諾します。
そもそもGPLコンパチにはなりようがなかったりもする

個人的にはこの書き込み規約自体、法的に有効なのか怪しいとは思うけど
89デフォルトの名無しさん:2010/12/01(水) 20:14:03
上記アンカミス
s/>>80/>>82/
スマソ
90デフォルトの名無しさん:2010/12/01(水) 21:26:19
>>88
どこの法律が適用されるのかなと思ったら、投稿者と運営の間では日本国の法
律が暗黙の前提となってるのか。
運営会社・サーバが日本にないけど、これでいいのかな?
これで投稿者が外国人だったら日本関係なさそう。
91デフォルトの名無しさん:2010/12/01(水) 23:15:15
>>90

それでもベルヌ条約というのがあるんだよ。
92デフォルトの名無しさん:2010/12/01(水) 23:43:56
スレチだし面倒くさい話になるからやめようぜ
匿名での法律談義ほどろくでもないものはない
93Perl忍者 ◆M5ZWRnXOj6 :2010/12/02(木) 09:16:01
3キモ言語はキョロ充おおいよ
Perlは違うけど
94デフォルトの名無しさん:2010/12/02(木) 17:43:41
Pythonのadvent calendar異様にショボくね?
95デフォルトの名無しさん:2010/12/02(木) 18:13:21
規約上、2chにコードを投稿するのは「ライセンス」上よくないのだけが確かなこと

で、規約の該当条項が法的に有効かどうかは各々の国で適当に裁判でもして決めてくれ
96デフォルトの名無しさん:2010/12/03(金) 01:11:22
akiyanが軽くRubyを見下しててなんかイラっときた
97デフォルトの名無しさん:2010/12/03(金) 01:25:57
akiyanが何使ってるのか調べてみたらPHPとかPerlで吹いた
98デフォルトの名無しさん:2010/12/03(金) 01:26:35
誰……?
99デフォルトの名無しさん:2010/12/03(金) 01:38:22
そこはあれか
やはりLispとアセンブラとかだと別に吹かないわけか
100デフォルトの名無しさん:2010/12/03(金) 01:38:48
PHP使いにバカにされることほど屈辱的なものはないなw
101デフォルトの名無しさん:2010/12/03(金) 11:17:10
>>99
なんつーか、その辺はスクリプト言語を見下してもまあ、そんなもんだよなって感じるね
102デフォルトの名無しさん:2010/12/06(月) 02:04:15
>>67
両方見てるよ
珍しい方なのかもしれんが

本スレも結局アンチスレみたいな話題ばかりだし過疎ってるし。過疎は2chごとか。
しかし、本スレも定期的に>>80-88の流れになるがな
103デフォルトの名無しさん:2010/12/06(月) 02:05:59
>>99
どこかで聞いたことある話だと思ったらこれだな

Geekなぺーじ : プログラミング言語ヒエラルキー
http://www.geekpage.jp/blog/?id=2006/12/13

プログラミング言語ヒエラルキーにおける罵倒
http://anond.hatelabo.jp/20070502200124
104デフォルトの名無しさん:2010/12/06(月) 02:09:08
>>103
下は初めて見たが、結構無理して罵倒をこしらえてるなw
105デフォルトの名無しさん:2010/12/07(火) 21:54:37
RubyがPythonより上なのは確か
106デフォルトの名無しさん:2010/12/07(火) 22:10:22
RubyがPythonよりウヘェなのは確か
107デフォルトの名無しさん:2010/12/08(水) 01:11:35
サーセン
108デフォルトの名無しさん:2010/12/08(水) 14:53:30
本スレならいざしらず、真昼間から初心者スレを荒らしてる馬鹿を引き取りに来てください

Ruby 初心者スレッド Part 39
http://hibari.2ch.net/test/read.cgi/tech/1287623173/
109デフォルトの名無しさん:2010/12/08(水) 15:16:56
C#はこのスレでは扱ってないからそう言われても
110デフォルトの名無しさん:2010/12/08(水) 16:04:18
IronRubyとかあるんじゃなかったか、よく知らんけど
111デフォルトの名無しさん:2010/12/09(木) 02:16:45
>>109
そーいうスレでもないとは思うんだ > C#はこのスレでは扱ってない
112デフォルトの名無しさん:2010/12/12(日) 19:19:52
PythonのSQLAlchemyが神過ぎる
Rubyとかは知らんけどPHPじゃこういうORMは実装すらできないだろwww
113デフォルトの名無しさん:2010/12/12(日) 22:57:26
pythonはsqliteしか知らんかった
114デフォルトの名無しさん:2010/12/12(日) 23:37:01
dirでDBの中を回せるくらいのイノベーションをだな・・・
115デフォルトの名無しさん:2010/12/13(月) 01:42:48
何がすごいのか詳しく
116デフォルトの名無しさん:2010/12/13(月) 08:13:51
>>112
SQLAlchemyの利点をkwsk

>>114
PowerShellが何をとちくるったか、ファイルやディレクトリ構造のマッピングのモデル(?)を汎用的に採用してる。
従来のドライブ名の部分が操作対象(プロバイダ)を表すようになってる。
SQL Server PowerShellプロバイダを使えばディレクトリ操作するようにDB操作できる(らしい)www

SQL Server PowerShell プロバイダーの使用
http://msdn.microsoft.com/ja-jp/library/cc281947.aspx


シェルのエイリアスや環境変数、レジストリや変数やメソッドも同様に扱える
117デフォルトの名無しさん:2010/12/13(月) 22:41:04
>>116
主要なRDBMSに対応してるならともかく、MSSQLだけならただのド変態だな
118デフォルトの名無しさん:2010/12/14(火) 21:42:48
WindowsならSQLサーバが普通だろ
119デフォルトの名無しさん:2010/12/15(水) 04:42:24
WindowsにSQLサーバ入れてる人自体少数だと思うが…そういう意味じゃないんだよね?
SQLサーバを入れるなら、MS-SQLサーバって意味で書いてるんだよね?

どっちにしても、MS-SQLサーバが普通ってことにはならんと思うが
仕事でWindows鯖を立てるなら、とかならまあ分かるんだけど
120デフォルトの名無しさん:2010/12/15(水) 06:30:44
もちろんSQLServer(のORマッパ)すげえといいたいわけじゃなく
>>114の「dirでDBの中を回せるくらいのイノベーション」だけに掛かってて、
イノベーションかもしれんがこれは誰が得するんだろう?といいたかっただけ

まさか、SQLServerに突っかかられるとはおもわなんだ
121デフォルトの名無しさん:2010/12/15(水) 07:14:22
「変態」が琴線に触れたんだろうな
122デフォルトの名無しさん:2010/12/15(水) 07:50:48
Windowsの開発者なら、普通、クライアントPCにもSQLサーバインストールしてる。
123デフォルトの名無しさん:2010/12/15(水) 08:07:43
プロプラで他にどこも採用しない技術をCoooooooooool!とか言ってるのは変態だろ。
124デフォルトの名無しさん:2010/12/15(水) 08:08:32
excelだろ
125デフォルトの名無しさん:2010/12/15(水) 09:15:22
>>117
プロバイダを実装すればいんじゃね?
べつにMS縛りではないし。
126116:2010/12/15(水) 10:52:05
いや「変態」と言われたらむしろ喜ぶんだが、
MSSQLの方じゃなくて、ドライブにマッピングしているところを「変態」と言って欲しくてだな(^ω^#)ビキビキ
127デフォルトの名無しさん:2010/12/15(水) 11:06:55
LLスレで何言ってるんだよ
128デフォルトの名無しさん:2010/12/15(水) 12:27:56
/devや/procみたいなのにいろんなものマップするという考え方自体は
Unixで伝統的で、PowerShellのPSDriveはそのパクリだと思う
cygwinだと昔から/proc/registryとか使えてたしね

MSSQLマップするって発想は、まあLINQとかやっちゃう.NETならではですな、と思うが
冷静に考えて「欲しい」かといえばそうでもない
ぶっちゃけDBはGUIから触ったほうが便利だし、バッチ的にやりたければ
もともと昔ながらのosqlで出来る

というか、OS開発してるMSがやってることなのに、PowerShellという一アプリに
閉じてる時点で貧乏性で、ショボいと思う
なんでファイルシステムレベルで拡張してくれないんだか
MSはFUSEみたいなの作れよなー
129デフォルトの名無しさん:2010/12/15(水) 12:48:33
ファイルシステムの革新的革命はやろうとして頓挫したじゃないか
130デフォルトの名無しさん:2010/12/15(水) 13:50:48
WinFXか
131デフォルトの名無しさん:2010/12/15(水) 15:29:19
WPFでこのように”1行”で書いたコードで
簡単なブラウザが出来てしまいますが
このスレタイの言語ならどうやって書くの?

<WebBrowser Source="http://..."/>
132デフォルトの名無しさん:2010/12/15(水) 15:37:29
>>131
それは単にIEに用意された機能だろ
IE側がサポートしないと無理
133デフォルトの名無しさん:2010/12/15(水) 18:06:50
>>132
何を言ってるんだか俺にはいまいちよくわからんが…

IEは昔からIWebBrowser2だかいうCOMインタフェースを公開してて
それを使ってIEエンジンのタブブラウザみたいな代物が作られてきた

つまりActiveXのコントロールをホスティングできる言語であれば
IEの機能を簡単に利用できるし、.NETからもそういう形で利用しているんだろう
それ以上にIEに一体何をのぞむんだ?
134デフォルトの名無しさん:2010/12/15(水) 18:19:51
>>131
`firefox`
135デフォルトの名無しさん:2010/12/15(水) 18:24:27
WebKitバインディングとかLLにもあるのかな?
でも言語自体の話じゃないからここで扱うようなことじゃないか
136デフォルトの名無しさん:2010/12/15(水) 18:26:13
ってことはここにある言語はどれもブラウザ作れないってことですね
137デフォルトの名無しさん:2010/12/15(水) 18:50:22
そうですね。

好きにすればバカw
138デフォルトの名無しさん:2010/12/15(水) 19:02:23
>>135
QTにもwxWidgetsにもあるんでないの
ActiveXのホスティングも両者でサポートされていたと思ったけど

>>136
http://www.ibm.com/developerworks/jp/linux/library/l-wxpython/index.html
139デフォルトの名無しさん:2010/12/15(水) 19:09:34
で、1行でできますか?
140デフォルトの名無しさん:2010/12/15(水) 19:22:23
はいはいできないできない
141デフォルトの名無しさん:2010/12/15(水) 19:22:23
特定のアプリが一行で書けたとして、で?って感じだな。
142デフォルトの名無しさん:2010/12/15(水) 19:26:38
>>138
サンクス調べてみる
surfみたいなのLLで作れたら面白いだろうなと
143デフォルトの名無しさん:2010/12/15(水) 19:50:52
LLでGUIってのがそもそも向かないだろ
144デフォルトの名無しさん:2010/12/15(水) 20:00:31
>>143
貴様Tcl/Tkディスってんのかオラ
145デフォルトの名無しさん:2010/12/15(水) 20:03:07
>>144
ゴミだろそれ
146デフォルトの名無しさん:2010/12/15(水) 20:16:51
そう思うんならそうなんだろうお前の(略
147デフォルトの名無しさん:2010/12/15(水) 20:17:19
こいつrubyスレにも来てたわ
頭おかしいんじゃないの
148デフォルトの名無しさん:2010/12/15(水) 20:19:54
LLって言うか、UNIX系OSのGUIがショボイって話だろ
149デフォルトの名無しさん:2010/12/15(水) 20:21:29
3Dメディアにいつ対応するの?w
150デフォルトの名無しさん:2010/12/15(水) 20:25:44
攻め方を変えてきたw
151デフォルトの名無しさん:2010/12/15(水) 23:02:56
RubyはGUI向けじゃないのは確か
152デフォルトの名無しさん:2010/12/15(水) 23:44:04
>>131
[(v.load(),v.show()) for v in [QWebView()]]
153デフォルトの名無しさん:2010/12/16(木) 00:16:39
>>144
それ単にtkで良くね
Tcl無くてもtkだけで使えるんだし
154デフォルトの名無しさん:2010/12/16(木) 00:33:50
>>153
他の言語からTkを利用することはできるけど
TkはTclとCで書かれてるから、Tclは必須だったと思うけど
155Perl忍者 ◆M5ZWRnXOj6 :2010/12/16(木) 00:43:00
わるいごはいねえが
156デフォルトの名無しさん:2010/12/16(木) 00:45:55
必ずしもTclで記述する必要はないが、Tclの実行環境自体は必要、という理解だった
157デフォルトの名無しさん:2010/12/16(木) 01:15:20
pTkあたりはTkInter経由なんだっけ?
昔触ったきりなので忘れたは。
158デフォルトの名無しさん:2010/12/16(木) 02:14:50
>>143
なんで向かないの?
159デフォルトの名無しさん:2010/12/16(木) 02:29:31
TclとTkみたいに、その言語の為のGUIライブラリってのがないんだよな
どこかのを間借りしてきて使えますよってだけで、この言語だからもっとも使いやすい的な要素に乏しい
160デフォルトの名無しさん:2010/12/16(木) 02:49:29
VBには勝てない
161デフォルトの名無しさん:2010/12/16(木) 02:52:31
ウイルスバスターはLLじゃありませんよ?
162デフォルトの名無しさん:2010/12/16(木) 16:56:11
163デフォルトの名無しさん:2010/12/17(金) 02:21:57
>>131
せっかくの煽りなんだし、LLの識者で面白い返しはできないかな
7行スレみたいな感じで1行でできればWPF厨に煽りになるコード

>>131はxamlでいいのか?実際に動かしてみたいんだがどうすりゃいいんだ
164デフォルトの名無しさん:2010/12/17(金) 02:25:46
アホか
その程度でいいなら、VB6やDelphiのころからコード無しで作れるが
165デフォルトの名無しさん:2010/12/17(金) 02:25:54
>>163
まずVSをインストールします。


でもGUIならWPFが進んでると思うな。
166デフォルトの名無しさん:2010/12/17(金) 02:26:30
コード無しは語弊だ。コードを書かずにだな。
その程度の代物。
167デフォルトの名無しさん:2010/12/17(金) 02:30:15
>>165
いや、GUIの手軽さはわかってる。Windows触っていたときあるし。

だからGUIじゃない.Netではやりにくい方向で攻めればいいんじゃね。
LLなら1行でwebサーバーとかできそうだけど。


テンプレに沿ったほうがいいな。こんな感じで。

◯◯でこのように”1行”で書いたコードで
簡単な◯◯◯◯が出来てしまいますが
このスレタイの言語ならどうやって書くの?

xxxxxxxxxxxxxx

168デフォルトの名無しさん:2010/12/17(金) 02:54:19
>>167
それはそういうライブラリがそろってるかどうか、だからなあ。
勿論ライブラリの充実は重要な要素だけど。

system("firefox http://www.google.com");

じゃ駄目だよね 。
169デフォルトの名無しさん:2010/12/17(金) 08:11:59
>>167
そういうことなら

require 'sinatra'; get '/:cmd' do eval(params[:cmd]).to_s << "\n" end

$ ruby 1line_webserver_calculator.rb &
$ curl http://localhost:4567/2**1024
1797693134862315907729305190789024733617976978942306572734300811577326758055009631
3270847732240753602112011387987139335765878976881441662249284743063947412437776789
3424865485276302219601246094119453082952085005768838150682342462881473913110540827
237163350510684586298239947245938479716304835356329624224137216
170デフォルトの名無しさん:2010/12/17(金) 08:12:46
>>167
テンプレ忘れてた

Rubyでこのように”1行”で書いたコードで
簡単な計算機付きwebサーバーが出来てしまいますが
このスレタイの言語ならどうやって書くの?


くだらなさすぎワロタw
171デフォルトの名無しさん:2010/12/17(金) 09:18:20
>>169
Sinatra標準ライブラリじゃねーじゃんクソが

require 'webrick';s=WEBrick::HTTPServer.new(:Port=>4567);s.mount_proc('/'){|req,res|res.body=eval(req.path.gsub(/^\//,'')).to_s<<"\n"};trap("INT"){s.shutdown};s.start

$ ruby 1line_webserver_calculator.rb &
$ curl http://localhost:4567/2**1024
1797693134862315907729305190789024733617976978942306572734300811577326758055009631
3270847732240753602112011387987139335765878976881441662249284743063947412437776789
3424865485276302219601246094119453082952085005768838150682342462881473913110540827
237163350510684586298239947245938479716304835356329624224137216

Rubyでこのように”1行”で書いたコードで
簡単な計算機付きwebサーバーが出来てしまいますが
このスレタイの言語ならどうやって書くの?
172Perl忍者 ◆M5ZWRnXOj6 :2010/12/17(金) 09:46:04
ごみみたいなことやっててたのしい?
173デフォルトの名無しさん:2010/12/17(金) 10:29:35
そりゃGUIならMS系の方がいいに決まってるじゃん。
174デフォルトの名無しさん:2010/12/17(金) 10:33:11
MSがというか、設計段階から企業が煮詰めたもののほうが一般的にはマシだな
コミュニティ主導のは発散してて使いにくい
175デフォルトの名無しさん:2010/12/17(金) 12:13:45
windowsならブイビーなんかは楽そうだな。
書き捨てスクリプトをちょっと人につかってもらう時程度なら
簡素化したGUIラッパーもでいい
http://easygui.sourceforge.net/
こういうやつ
176デフォルトの名無しさん:2010/12/17(金) 14:32:58
Python標準ライブラリなら、
python -m SimpleHTTPServer
177デフォルトの名無しさん:2010/12/17(金) 15:01:33
ruby -run -e httpd
最近の un.rb は変態だな…
178デフォルトの名無しさん:2010/12/17(金) 15:05:16
なんかライブラリも含めると外部アプリ呼び出すのと大差なくておもんないね
179デフォルトの名無しさん:2010/12/17(金) 16:37:32
>>178
ライブラリってそういうもんだろ
珍しくもないワンライナの議論だ
180デフォルトの名無しさん:2010/12/17(金) 21:45:06
>>131
コマンドプロンプトから1行でIE呼べます
と同レベル
181デフォルトの名無しさん:2010/12/18(土) 03:47:24
それは違うな。
LLというかUNIX系ならGTKとかWebKitとかのライブラリを組み合わせないといけない。
WPFが高機能なGUIアプリを簡単に作れるのはその通りで、その点で同等の物があるかって言ったらないでしょう。
182デフォルトの名無しさん:2010/12/18(土) 04:41:58
pythonは文字コードが面倒><
183デフォルトの名無しさん:2010/12/18(土) 05:35:22
馬鹿には無理
184デフォルトの名無しさん:2010/12/18(土) 10:16:36
Windowsで

#coding: utf-8
raise Exception(u'化けますよ')

こういうUTF-8エンコーディングで書かれたスクリプトを実行すると、

Traceback (most recent call last):
File "foo.py", line 3, in <module>
raise Exception(u'蛹悶¢縺セ縺吶h')
Exception: 化けますよ

こうなるのがPython
185デフォルトの名無しさん:2010/12/18(土) 10:32:22
>>184
やっぱPythonはだめだRubyじゃないと
186デフォルトの名無しさん:2010/12/18(土) 11:00:15
Python2ではファイル名と例外がUnicodeじゃないんだっけか
そのままバイト列として処理するから、
表示できるかどうかは標準エラー出力がそのバイト列を解釈できるかどうかだけに依存する
187デフォルトの名無しさん:2010/12/18(土) 11:45:28
おいおい!!awkを忘れるんじゃねーよ!!
何だかんだいってもawkが最強!!
188デフォルトの名無しさん:2010/12/18(土) 17:19:37
>>181
ライブラリ使えばできるなら、それでいいじゃん。
189デフォルトの名無しさん:2010/12/18(土) 21:52:49
WPFなら

<ListView ItemsSource"{Binding DataSets}"/>

たったこれだけでデータオブジェクトをListViewに
カラムもつけて表示してくれるのですが
このスレの言語だとできますか?
190デフォルトの名無しさん:2010/12/18(土) 21:57:53
はいはいできないできない
191デフォルトの名無しさん:2010/12/18(土) 22:05:49
言語をがんばってもWPFに勝てない罠
192デフォルトの名無しさん:2010/12/18(土) 22:19:37
IronPythonで出来るよ
193デフォルトの名無しさん:2010/12/18(土) 22:50:25
XAMLじゃなくC#で書いたらどうなるん?
194デフォルトの名無しさん:2010/12/18(土) 23:22:24
>>189
WPFでbz2ファイルの解凍もできる?
195デフォルトの名無しさん:2010/12/18(土) 23:24:19
それは「WPFで」やるような仕事じゃないんじゃないのw
.NETなら、多分
ttp://www.sharpdevelop.net/OpenSource/SharpZipLib/
このへんを使うのでは
196デフォルトの名無しさん:2010/12/18(土) 23:32:33
そんな古臭いもの今時使うわけないだろバカ
197デフォルトの名無しさん:2010/12/18(土) 23:55:13
>>195
じゃあWPFってなにするの?
GUI作るだけ?
198デフォルトの名無しさん:2010/12/19(日) 00:46:58
>>197
まず、WPF素人は、ここを見て
ttp://ja.wikipedia.org/wiki/Windows_Presentation_Foundation
尚も何か知りたければ、ここを見る
ttp://www.microsoft.com/products/expression/ja/wpf/default.mspx
199デフォルトの名無しさん:2010/12/19(日) 01:34:53
LLスレにXAMLか
200デフォルトの名無しさん:2010/12/19(日) 01:36:18
奴隷の鎖自慢か
201デフォルトの名無しさん:2010/12/19(日) 06:40:06
俺の鎖は金メッキだぜ
202デフォルトの名無しさん:2010/12/19(日) 07:33:20
うむ、金メッキなら純金の鎖より実用性は上だな。
しかし、メッキは剥げるぞ。
203デフォルトの名無しさん:2010/12/19(日) 13:25:00
結局、UIに毛がはえた程度か。
しかもmonoじゃ動かないからwindows専用なのか。

だったら、Qtのdesignerが吐き出すXMLを手動で作るのとあんま変わらん気がする
204デフォルトの名無しさん:2010/12/19(日) 14:08:06
LLスレかと思ったら別スレでした
205デフォルトの名無しさん:2010/12/19(日) 14:11:23
では、WPFのBindingと同じ位パワフルなものを
簡潔に書ける言語でもあるんですか?
206デフォルトの名無しさん:2010/12/19(日) 14:12:42
ないなら自分で作れカス
207デフォルトの名無しさん:2010/12/19(日) 14:16:16
待てこれはIron***に話を進めたがるRubyPython連合の陰謀だ
208デフォルトの名無しさん:2010/12/19(日) 14:22:24
QTを使って開発する場合
GUIに依存したコードを書くため、GUIを変更すると
コードビハインドの変更も余儀なくされます

しかし、WPFはGUIとコードが完全に分離しているので
GUIをいくら変更しようがコードを修正する必要はありません

このようなBinding機能がある言語はこのスレにありますか?
209デフォルトの名無しさん:2010/12/19(日) 14:23:25
IronRubyとIronPythonはWPF呼べるから
RubyとPythonはめんどくさいこの話から一抜けしますね
210デフォルトの名無しさん:2010/12/19(日) 14:27:40
これは単純な値のデータだけじゃなくて
イベントに対してもBindingできます

例えばボタンをクリックしたら、ヘローワールドというダイアログを
出すようにしておきます
WPFなら、ボタンクリックじゃなくて、ListViewのアイテムをクリックや
Windowの空き部分をクリックに変更しても、コード側では何も修正しなくても
ちゃんとダイアログがでます
WPFだからできることです

QTを使ってこんなことができますか?
211デフォルトの名無しさん:2010/12/19(日) 14:46:45
/WPF/
212デフォルトの名無しさん:2010/12/19(日) 14:55:00
PHPはどうでもいいけどなんでIronPerlってないの?
213デフォルトの名無しさん:2010/12/19(日) 15:01:38
PHPならこういうことできるけど
http://hirata-create.lar.jp/
Perlではできない現実。
214デフォルトの名無しさん:2010/12/19(日) 15:12:50
>>210
WindowsじゃなくてMacに変更してもちゃんとダイアログがでますか?
215デフォルトの名無しさん:2010/12/19(日) 15:18:21
いまどきMacやLinuxで動かないGUIフレームワークを
わざわざ持ち出してくるバカもいないだろう
216デフォルトの名無しさん:2010/12/19(日) 16:09:03

>>214
じゃあ、コードで示してくださいな
GUIに依存しないコードをねw
217デフォルトの名無しさん:2010/12/19(日) 16:11:08
>>215
Macなんてパソコン音痴が買って公開しちゃったパターンでしょw
218デフォルトの名無しさん:2010/12/19(日) 16:19:57
情弱にもほどがある
219デフォルトの名無しさん:2010/12/19(日) 16:23:51
220デフォルトの名無しさん:2010/12/19(日) 16:25:30
Macでエロゲできますか?
VMは無しで
221デフォルトの名無しさん:2010/12/19(日) 16:26:08
同じ人だよねぇ
222デフォルトの名無しさん:2010/12/19(日) 16:26:47
XNAゲームやWndowsLiveのゲームができますかー?www
Mac買う奴なんて情弱だけだろw
223デフォルトの名無しさん:2010/12/19(日) 16:35:18
惨めすぎる
224デフォルトの名無しさん:2010/12/19(日) 16:36:29
Windowsユーザだが、そんなんやったこともないな
Macは昔漢字Talkだったころに使った事がある

当時はBSDカーネルじゃなかったから爆弾でまくりの不安定OSで
リソースフォークというWindowsでいうNT副次ストリームっぽい物が多用されていて
パスの書式が変態的で
改行コードはCRだった気がするが
もうほとんど覚えていない
225デフォルトの名無しさん:2010/12/19(日) 16:38:19
変なやつが出てから荒れ放題だな。
LLの話に戻せよドザ。
226デフォルトの名無しさん:2010/12/19(日) 16:43:01
ドザとかいっちゃう奴って五十歩百歩の厨房だよね
227デフォルトの名無しさん:2010/12/19(日) 17:25:31
コードの変更しやすさとかって、考え過ぎると却って想定外のケースに弱くなるよね
228デフォルトの名無しさん:2010/12/19(日) 17:43:08
コードを変更しやすいなんて一言も言っていないがw
229デフォルトの名無しさん:2010/12/19(日) 17:44:10
winよりMacの方が良い理由教えてよwせんぱーいwww
230デフォルトの名無しさん:2010/12/19(日) 17:57:38
エロゲ豚をふるい落とせる
231デフォルトの名無しさん:2010/12/19(日) 18:00:03
"UIと比較して毛が生えた程度"は当たり前なので反論できません
windows専用もその通りです
XAMLはデザイナに生成させることができます。少なくともデザイナはQTよりは強力です。
232デフォルトの名無しさん:2010/12/19(日) 18:04:02
もうおまいらC#やF#の話もってこいよ
LINQのこれLLではどう書くんですかとかのほうがよっぽど有意義だ
233デフォルトの名無しさん:2010/12/19(日) 18:05:53
F#の話は、VF#expressが出てからな。
234デフォルトの名無しさん:2010/12/19(日) 18:09:02
注目の言語って何かある?
特にScalaやClojureより新しい世代でさ
235デフォルトの名無しさん:2010/12/19(日) 18:11:22
ぶーー
236デフォルトの名無しさん:2010/12/19(日) 18:13:39
>>233
コンパイラもう出てるじゃん。fscだっけ
237デフォルトの名無しさん:2010/12/19(日) 18:38:20
>>232
4.0だとPLINQだっけか
ttp://msdn.microsoft.com/ja-jp/library/dd997425.aspx

F#は前からその手のサポートがあったみたいだけど
ttp://msdn.microsoft.com/ja-jp/library/dd233250.aspx
238デフォルトの名無しさん:2010/12/19(日) 19:06:11
>>236
だから、それはVF#expressではないだろ。
239デフォルトの名無しさん:2010/12/19(日) 19:18:39
Mac、System7の頃から使ってて、今でもたまに気分転換でMacのノート使うけど、PerlとかRubyでプログラミングするにしてもWindowsでcoLinuxとかVMware使った方が便利だと思う。
運用するのはLinuxやFreeBSDなんだから、そっちの方が問題が少ない。
WindowsのPuTTYとかWinSCPとかTortoiseSVNとか、この辺に匹敵するソフトがMacにはない。ことえりも使いづらいし。
テキストエディタもどれもしっくり来なくて、結局TextEdit使ってる。
Macはメニューバー中心の操作体系がもう時代遅れだと思う。
240デフォルトの名無しさん:2010/12/19(日) 20:06:34
scpやsvnはコマンドラインで事足りてるんでとくに反論はしないけど、
PuttyってTerminal.appじゃだめなんか?
241デフォルトの名無しさん:2010/12/19(日) 20:28:47
Terminalは256色対応できないのと、日本語表示に問題があるのが。パッチを入れても、全角記号とかで表示が狂う。
iTermも2になってマシになったけど、screenとかで画面分割したりすると、異常にスクロールが遅くなるし。
SVNとかも、クライアントPCで使ってる場合、GUIの方が使いやすいし。
242デフォルトの名無しさん:2010/12/19(日) 20:51:40
>>208
よくわからん。
例えばtextArea1に文字列を出力してたとして。
textArea1を消したら、どこに出力されるの?

>>210
designerでシグナルとスロットの接続してるなら、できるんじゃねーの?
243デフォルトの名無しさん:2010/12/19(日) 20:53:32
>>231
UIに毛が生えた程度なら、それを言語と比較するってどうなの?
HTML+javascriptとperl比較するくらいに頭おかしい気がするんだけど。
244デフォルトの名無しさん:2010/12/19(日) 21:08:12
ライブラリ自慢なんてこのスレでいくらでもやってることでしょ
245デフォルトの名無しさん:2010/12/19(日) 21:21:03
できれば言語そのものの話に戻ってほしいけどね

ライブラリの話は範囲が広がり過ぎて話も広く浅くなるか
一方は理解していてももう一方にはちんぷんかんぷんだったりする
246デフォルトの名無しさん:2010/12/19(日) 21:21:05
前にもGUIライブラリの話があったけどそのときは
この言語ならGUIの定義を内部DSLでこう書けるぜ、どうよ!って感じの話しだったけどね
根本的には言語のシンタックスとか言語自体のパワーとかそっちの方向の話だったと思うよ
247デフォルトの名無しさん:2010/12/19(日) 21:23:37
>>242
textArea1にプッシュするコードは明示的に記述はしないってことでしょ
モデルがあって、モデルの属性とtextArea1をXAMLでbindする
textArea1を消したら、単にその属性が表示されないだけ

MVCなら当たり前の話だから、WPF使ったことが無い俺でもそれぐらいはわかる
248デフォルトの名無しさん:2010/12/19(日) 21:33:30
関数型だと
ttp://netsuperbrain.com/blog/posts/introducing-reactive-events/
こういうのが流行りなのか?
MSもReactive Extensionsとかいうの出してるみたいだけど
(JS版もあるみたいだ)
しかしこのページ、-> が -&gt; になってて読み難い……

コルーチン使うより楽なんかな
249デフォルトの名無しさん:2010/12/20(月) 01:31:52
無能な奴はそう考えるのか・・・滑稽だな
250デフォルトの名無しさん:2010/12/20(月) 01:34:51
>>239
> Macはメニューバー中心の操作体系がもう時代遅れだと思う。

それじゃあ今時の操作体系ってどんなやつ?
251デフォルトの名無しさん:2010/12/20(月) 01:45:56
>>250
3D
252デフォルトの名無しさん:2010/12/20(月) 01:46:16
無能な奴はそう考えるのか・・・滑稽だな
253デフォルトの名無しさん:2010/12/20(月) 01:51:32
グラフィックデザイナーがMacを愛用していたのは過去の話
今では誰も使っていません
254デフォルトの名無しさん:2010/12/20(月) 01:54:04
>>247
なんだ。ようは、ただのモデルとビューで、
モデルはコードで実装したらビューはXMLで書けるってだけ?

それって、Qtでできるのとは違うの?
255デフォルトの名無しさん:2010/12/20(月) 01:57:14
>>250
Windows7
256デフォルトの名無しさん:2010/12/20(月) 02:17:11
>>254
だからBinding
257デフォルトの名無しさん:2010/12/20(月) 03:19:39
>>250
Vista以降のExplorerとかOffice2007以降とかIE8とかChromeみたいなウィンドウメニュー(メニューバー)を極力排除して、ツールバーやリボンを中心としたインターフェイス。
それ以前にMacの場合、コンテクストメニューのサポートが弱いのが致命的だけど。
258デフォルトの名無しさん:2010/12/20(月) 03:49:09
Macユーザーはデザインで選びましたってバカが多い
そしてエロゲもゲームもフリーソフトのほとんどができないと後で知って泣きを見る
259デフォルトの名無しさん:2010/12/20(月) 03:57:01
検索したらリボンって10年前にロータスで採用されてたんだな
260Perl忍者 ◆M5ZWRnXOj6 :2010/12/20(月) 09:02:51
3キモ言語の発生場所はMacOSX

付属のターミナルからはじめちゃうやつ(笑)

だいたい初音ミクのカスガキや大人がPerlをいじりだして
自己紹介欄らんに初音ミク、Perl、Ruby、Python、PHPってかいてる
OSの見た目を改造とかくだらねえことやってるごみみたいなやつばっかりw
くそまかのコミュはきもちわるいwごみみたいなアップル製品わめいたりほざきあってる
ゲームもカスゲーしかないwまともなのは海外ゲーw
マック使う意味なしw
261Perl忍者 ◆M5ZWRnXOj6 :2010/12/20(月) 09:09:30
おめえみたいなグズは一生マック(笑)

iphoneアプリやipadアプリ開発するわけでもないのにマック(笑)
わらさせんじゃねえよグズ


りなっくす>>>>マック(苦笑)

MacOSX ライオン(失笑)
262デフォルトの名無しさん:2010/12/20(月) 09:30:00
現状C#とRubyくらいなら使えるのですが
今からPerlやるのってためになると思いますか?
263デフォルトの名無しさん:2010/12/20(月) 14:45:38
なにをやるかによる。でもきみが20代なら勉強のために知っとくのは悪いことではない。
264デフォルトの名無しさん:2010/12/20(月) 15:16:33
>>263
ありがとうございます。丁度時間もあるのでやってみようと思います。
265デフォルトの名無しさん:2010/12/20(月) 15:18:18
年齢なんて関係あるのか?
40代はPerl覚えちゃいけないとでも?
266デフォルトの名無しさん:2010/12/20(月) 16:24:08
40代なら、今まで生きてきた時間から、人生の残りがどれぐらいで
どの程度の時間が使えるか、人に聞くまでも無く判断がついてるだろう
267デフォルトの名無しさん:2010/12/20(月) 16:28:58
だから言っているんだよ
何で20代なのさ
268デフォルトの名無しさん:2010/12/20(月) 16:32:58
>>263に聞けよ
269デフォルトの名無しさん:2010/12/20(月) 18:05:13
VB(Script)はこのスレで語ってもいい?
270デフォルトの名無しさん:2010/12/20(月) 22:54:06
VBか…文字列処理は正規表現なんかも使えるようになったようだが
リスト処理(VBだから…配列処理?)は現状どんなもんかな

ForEachは結構早い段階から導入してたようだが
「配列Aの各要素を2乗した新しい配列Bを作成」って1行で書けるのか?
とりあえずスレタイの言語は現状、できるようだけど
271デフォルトの名無しさん:2010/12/20(月) 23:22:24
スレタイの言語は配列の各要素が複数の文字コードが混在してても1行で書けますか?
コントロール配列でそれぞれにイベントを追加するのを一行でできますか?
3DSMAXなどで作成した3Dオブジェクト配列を1行で画面に表示できますか?
ピクセルシェーダー配列の各要素でPictureBoxの画像にエフェクトを順にかけることが1行でできますか?

WPFなら余裕ですけどねw
272デフォルトの名無しさん:2010/12/20(月) 23:24:50
B = A.Select(a => a * a).ToArray();
273デフォルトの名無しさん:2010/12/20(月) 23:30:45
不思議、完全、馬鹿、嵐、氏、根。
274デフォルトの名無しさん:2010/12/20(月) 23:44:24
>>270
VBScriptほとんど知らないけど
動的配列が欲しければReDimでreallocしろという世界みたいなので
リスト処理とか超面倒くさそうだなー

と思って今頑張って書いてみたけど、こんな感じになるみたい
むしろJavaScript風に割り切って全部ディクショナリにしてしまうのが
楽かも?

Function foldLeft(ByVal f, ByVal init, ByVal xs)
    foldLeft = init
    For Each x in xs
        foldLeft = f(foldLeft, x)
    Next
End Function

Function map(ByVal f, ByVal xs)
    ReDim ys(UBound(xs))
    For i = 0 To UBound(xs)
        ys(i) = f(xs(i))
    Next
    map = ys
End Function

Function square(ByVal x)
    square = x * x
End Function

For Each x In map(GetRef("square"), Array(1, 2, 3, 4, 5))
    WScript.Echo x
Next
275デフォルトの名無しさん:2010/12/21(火) 00:15:56
>>264
時間あるなら、LispかC++でも覚えた方がためになると思うけどなぁ。
Ruby知っててPerl新たにやるメリットってほとんどない。
276デフォルトの名無しさん:2010/12/21(火) 00:21:18
>275
年配の人と話を合わせられるようになる。
277デフォルトの名無しさん:2010/12/21(火) 00:21:47
>>271
Webサーバを1行で動かせる?
配列に対して、任意の関数をキーに使ったソートが1行で書ける?
Yコンビネータが1行で作れる?

これが1行で書けるんです!とだけ主張するほど痛々しいことはない。
用意されてたら1行で書けるけど、すべてを用意することなんてできない。

実用的なプログラムを、より簡潔な処理で書ける言語がよいのだから、
実用的なプログラムを晒してはじめて評価が得られる。
278デフォルトの名無しさん:2010/12/21(火) 00:29:32
<またまたご冗談を、WPFで実用的なプログラムなんて、ねぇ?
                         ,、ァ
                         ,、 '";ィ'
________              /::::::/l:l
─- 、::::;;;;;;;;;`゙゙''‐ 、    __,,,,......,,,,_/:::::::::/: !|
  . : : : : : : `゙'ヽ、:::゙ヾ´::::::::::::::::::::::`゙゙゙'''‐'、. l|
、、 . : : : : : : : : r'":::::::::::::::::::::::::,r':ぃ::::ヽ::::::::ヽ!                 ,、- 、
.ヽ:゙ヽ; : : : : : :ノ:::::::::::::::::::::;;、-、、゙:::     rー-:'、                /   }¬、
. \::゙、: : : :./::::::::::::::;、-''"::::::::::   ,...,:::,::., :::':、            _,,/,,  ,、.,/   }
   ヽ:ヽ、 /:::::::::::::::::::::::::     _  `゙''‐''"  __,,',,,,___       /~   ヾ::::ツ,、-/
     `ヽ、:::::::::;;;、、--‐‐'''''',,iニ-    _|  、-l、,},,   ̄""'''¬-, '  ''‐-、 .,ノ'゙,i';;;;ツ
   _,,,、-‐l'''"´:::::::'  ,、-'" ,.X,_,,、-v'"''゙''yr-ヽ / ゙゙'ヽ、,    ,.'      j゙,,, ´ 7
,、-''"    .l:::::::::::;、-''"  ,.-'  ゙、""ヾ'r-;;:l  冫、     ヽ、 /    __,,.ノ:::::ヽ. /
       l;、-'゙:   ,/      ゞ=‐'"~゙゙') ./. \    /  '''"/::::;:::;r-''‐ヽ
     ,、‐゙ ヽ:::::..,.r'゙         ,,. ,r/ ./    ヽ.   ,'     '、ノ''"   ノ
   ,、‐'゙     ン;"::::::.       "´ '゙ ´ /      ゙、 ,'            /
  '     //:::::::::            {.        V           /
        / ./:::::::::::::            ',       /         /
.    /  /:::::::::::::::::.            ',.      /   ,.、     /
279デフォルトの名無しさん:2010/12/21(火) 00:37:34
HQ9+を気が済むまで拡張すればよい
280デフォルトの名無しさん:2010/12/21(火) 00:44:54
EvernoteもWPFやめちゃったし・・・ねぇ。
281デフォルトの名無しさん:2010/12/21(火) 01:14:42
おいWPFちゃんをいじめるスレになってるぞ
282デフォルトの名無しさん:2010/12/21(火) 01:24:25
H ello world in a message box
A nalog clock
D igital clock
T ic tac toe
283Perl忍者 ◆M5ZWRnXOj6 :2010/12/21(火) 09:04:08
@WIKI アット ウィキの管理人はいじめの犯罪者だった(アットフリークス)


ソース http://www.mudaijp.com/wp/1957.html


竹田隼也
いじめられていた被害者が2ちゃんねるのコテ環境様という人で、竹田隼也は2ちゃんねるの一部の板を運営してたみたいです(ボランティアだと思いますが)

逮捕された竹田隼也は、アットフリークスの取締役です。
現在の取り締まり役は、大野真和になってますね。
竹田隼也は、アットフリークを立ち上げたメンバーであることは確定しています。(まだ運営にも関わっています)
その当時の記事→アーカイブ


アット ウィキの運営情報(whoisより)
有限会社アットフリークス
640-8227
和歌山県和歌山市西汀丁26番地県経済センター6F


当時はアットフリークスが運営するBBSにもこのいじめのことが書かれてたみたいですが、現在はすっかり削除されています(隠蔽)。

公の場で問題になってから事実を公表する運営も信用できませんよね。
絶対に知ってるはずなのに、このようなコメントを残しています。
284デフォルトの名無しさん:2010/12/21(火) 16:20:35
一番仕事で需要があるLLって何よ?
PHP?
285デフォルトの名無しさん:2010/12/21(火) 16:23:02
JavaScriptでしょ
286デフォルトの名無しさん:2010/12/21(火) 16:50:45
PHPなんてなんの役に立つんだよw
287デフォルトの名無しさん:2010/12/21(火) 20:23:24
何の役に立つも何も、あの言語Web以外じゃ役に立たないのは明白だろw
288デフォルトの名無しさん:2010/12/21(火) 20:50:34
PHPで3Dゲーム作りたいんですが
XNAみたいに簡単に作れますか?
289デフォルトの名無しさん:2010/12/21(火) 21:00:50
ここでPHPを叩くのは名古屋グランパススレで千葉ロッテを叩くぐらい奇妙なことです
290デフォルトの名無しさん:2010/12/21(火) 21:04:40
PHPで陰金が治りました
291デフォルトの名無しさん:2010/12/21(火) 21:19:10
偉い人へ:
Pythonで、クラス内に 同じメソッド名の staticmethod と classmethod があります。
で、staticmethodから classmethodを呼び出す時に同じメソッド名だからなのか、
classmethodを見つけてくれないのだけれども、メソッド名を変えないで呼び出す
方法はありますか?
292デフォルトの名無しさん:2010/12/21(火) 21:38:05
デリゲート
293デフォルトの名無しさん:2010/12/21(火) 22:37:22
>>291
同じ名前で2つのメソッドがあることはありえません。
あとで定義したほうが、先に定義した方を上書きしています。
そもそもなぜ同名の static method と class method が必要なのでしょうか?
294デフォルトの名無しさん:2010/12/22(水) 01:19:10
>>291
Pythonを捨ててRubyに切り替えましょう
295デフォルトの名無しさん:2010/12/22(水) 01:27:30
>>294
Rubyならクラスにクラスメソッドとスタティックメソッドを同名で定義できるの?
296デフォルトの名無しさん:2010/12/22(水) 01:56:53
え?pythonやrubyってnamespace問題なんてあるんだ?wしょぼw
297デフォルトの名無しさん:2010/12/22(水) 03:27:12
Pythonって、クラス内に同じメソッド名使ってコンパイルエラーにならないの?
298デフォルトの名無しさん:2010/12/22(水) 03:30:17
ならないね
299デフォルトの名無しさん:2010/12/22(水) 03:41:40
ならないオブジェクト指向言語が普通だと思ってた
300デフォルトの名無しさん:2010/12/22(水) 08:43:22
Java脳はJava使ってればいいんだよ
301Perl忍者 ◆M5ZWRnXOj6 :2010/12/22(水) 09:15:20
@WIKI アット ウィキの管理人はいじめの犯罪者だった(アットフリークス)


ソース http://www.mudaijp.com/wp/1957.html


竹田隼也
いじめられていた被害者が2ちゃんねるのコテ環境様という人で、竹田隼也は2ちゃんねるの一部の板を運営してたみたいです(ボランティアだと思いますが)

逮捕された竹田隼也は、アットフリークスの取締役です。
現在の取り締まり役は、大野真和になってますね。
竹田隼也は、アットフリークを立ち上げたメンバーであることは確定しています。(まだ運営にも関わっています)
その当時の記事→アーカイブ


アット ウィキの運営情報(whoisより)
有限会社アットフリークス
640-8227
和歌山県和歌山市西汀丁26番地県経済センター6F


当時はアットフリークスが運営するBBSにもこのいじめのことが書かれてたみたいですが、現在はすっかり削除されています(隠蔽)。

公の場で問題になってから事実を公表する運営も信用できませんよね。
絶対に知ってるはずなのに、このようなコメントを残しています。
302Perl忍者(竹田隼也) ◆M5ZWRnXOj6 :2010/12/22(水) 10:39:52
いじめ^^;
303291 @Java脳:2010/12/22(水) 11:44:06
>>293
ども。
コントーラにビジネスロジックを入れたくないので、モデルの static method
で実装し、目的としては同じ処理をするメソッドが class methodにもあるので
出来れば同じメソッド名にしたかった・・という流れ。
javaでは出来るのでね。
じゃ、汚いけど、_ とか入れるか。
304デフォルトの名無しさん:2010/12/22(水) 12:19:22
291からずっと意味不明なんだけど
class methodとinstance methodを勘違いしてない?
普通はstatic methodとclass methodは同じ物だろ
305デフォルトの名無しさん:2010/12/22(水) 12:40:23
>>304
Pythonではその両者は違うよ
classmethodはクラスオブジェクトを引数にとるが、staticmethodは取らない
Javaのclass methodと同じなのはstaticmethodのほうだな

Pythonではただの関数が使えるのだから、staticmethodの存在意義が
俺には疑問だけど

>>291が勘違いしているのかしていないのかは、わからないw
306デフォルトの名無しさん:2010/12/22(水) 12:46:14
Pyhton に限らず普通は static method と class method は同じ物ではないな
307291 @Java脳:2010/12/22(水) 12:47:40
>>304 >>305
ごめんなさい、勘違いしていた。
static methodと instance method だった。

>>305
>Pythonではただの関数が使えるのだから、staticmethodの存在意義が俺には疑問だけど
出来れば詳しく教えてください。
308305:2010/12/22(水) 12:48:33
> classmethodはクラスオブジェクトを引数にとるが
この書き方だとちょっと紛らわしいか…

ふつうのinstanceメソッドは
def foo(self, x) とか定義して、selfにはインスタンスオブジェクトが渡される
(他の言語のthis相当)

クラスメソッドでは
@classmethod
def foo(cls, x) とか定義して、clsにはクラスオブジェクトが渡される
(Pythonでは全てがオブジェクトだからクラスもオブジェクトで、
メタクラスのインスタンス)

foo()が親クラスに定義されていて、派生クラス側でfoo()を呼んだ場合に
渡ってくるclsは、継承クラスのオブジェクトになる
309304:2010/12/22(水) 12:50:58
>>305
ありがとう。やっぱりそうなんだ
誰も指摘しないしそんな気はしてたけどJavaでは出来ると言われてすごく混乱したw
310305:2010/12/22(水) 12:52:18
>>307
いや別に難しい話じゃないよ
Pythonにおけるstaticmethodは、機能的には単にclassの中に書いてみただけの
ただの関数でしかないでしょう

Pythonでは関数をクラスの中に書かなければならない言語ではないし
クラスがprivateみたいなアクセスコントロール機構を持っているわけでもないし
モジュール機構があるから、名前空間としてのクラスも別に重要ではない
ならただの関数でよくね?というだけの話
311291 @Java脳:2010/12/22(水) 12:58:40
>>310
>名前空間としてのクラスも別に重要ではないならただの関数でよくね?というだけの話
ありがとうです。確かに。まだJava脳から抜けない・・
312デフォルトの名無しさん:2010/12/22(水) 13:05:32
>>303の設計はJavaでも明らかにおかしいけどな
313デフォルトの名無しさん:2010/12/22(水) 14:52:18
クラスの名前空間の中にただの関数を入れると、インスタンス経由で instance.method() と呼びだすと、
勝手にインスタンスメソッドだと解釈して第一引数にインスタンスが渡されてしまう。
なので、インスタンス経由で呼び出したときにも第一引数いりませんよーって宣言するために
staticmethodがある。

で、結論としては、外から隠す方の名前の先頭に _ を付ける。
他の方法もあるけど、全部汚いか非効率。
314デフォルトの名無しさん:2010/12/22(水) 16:29:40
>>291はstaticmethod云々以前に
単にPythonではメソッドのオーバーロードができない、ってだけの話なんだけど
分かっているのかな?

引数型を明示しない動的型言語なんだから
静的型と同様のオーバーロードは原理的にできるわけがない
個数だけのディスパッチみたいな部分的なサポートなら可能に思えるけど
まあシンプルに「出来ない」ものとしたんだろう
315デフォルトの名無しさん:2010/12/22(水) 17:46:51
デフォルト引数があるから必要ないんじゃないの
316デフォルトの名無しさん:2010/12/22(水) 17:55:03
ふつーに型検査してディスパッチできるだろ
317デフォルトの名無しさん:2010/12/22(水) 18:05:16
>>316
int add(int x, int y)
double add(double x, double y)

があるときに、C++コンパイラは
add(1.0, 2.0)
という呼び出しをdouble add(double x, double y)
にパターンマッチする

で、Pythonはどうするの?
318デフォルトの名無しさん:2010/12/22(水) 18:18:41
中の処理が同じなら区別する必要がないし、違うなら中で場合分けすればいいんじゃないの
319デフォルトの名無しさん:2010/12/22(水) 18:22:13
言語がディスパッチしてくれなきゃでしょ、という話なのに「場合分けすればいい」とか
320デフォルトの名無しさん:2010/12/22(水) 18:23:28
「言語がディスパッチしてくれなきゃ」というのは正しいの?
321デフォルトの名無しさん:2010/12/22(水) 18:39:01
多重定義の話をしてるのに
手動型チェックと手動条件分岐で多重定義やパターンマッチの代わりになるとか
言ってる奴はバカじゃないの?
それとも>>316はもっと高級な話をしてるのか?
322デフォルトの名無しさん:2010/12/22(水) 18:42:54
どうするの?って聞かれたから答えのにバカだって。バカはどっちだよ
323デフォルトの名無しさん:2010/12/22(水) 18:44:37
>>322
いや君は「できる」といったけど、それは「できてない」んだよ
「できてない」から、手動でやってるんでしょ
324デフォルトの名無しさん:2010/12/22(水) 18:46:13
>>323
俺は>>316じゃない。>>317から>>323まで俺とお前しか書き込んでない
325デフォルトの名無しさん:2010/12/22(水) 18:47:25
>>314
> 静的型と同様のオーバーロードは原理的にできるわけがない
>>316
> ふつーに型検査してディスパッチできるだろ

>>316が isinstance()のようなものを使った汚い手動分岐のことなら、
誰もそれを「静的型と同様のオーバーロード」とは見做さないし、
「出来てる」とは言わないの
わかったか?
326デフォルトの名無しさん:2010/12/22(水) 18:48:08
>>324
>>319>>321も別人だよ
327デフォルトの名無しさん:2010/12/22(水) 18:52:05
>>> class Foo(object):
... def hoge(self): return 'HOGE'
>>> def fuga(self): return 'FUGA'
>>> Foo.fuga = fuga
>>> def hage(self): return 'HAGE'
>>> f = Foo()
>>> f.hage = hage
>>> def hige(self): return 'HIGE'
>>> Foo.hige = hige
>>> g = Foo()
>>> g.hoge()
'HOGE'
>>> g.fuga()
'FUGA'
>>> g.hage()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Foo' object has no attribute 'hage'
>>> g.hige()
'HIGE'
>>> f.hige()
'HIGE'
>>> f.hage()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: hage() takes exactly 1 argument (0 given)
>>> f.fuga()
'FUGA'
>>> f.hoge()
'HOGE'
>>> f.hage(None)
'HAGE'
328デフォルトの名無しさん:2010/12/22(水) 18:53:19
pythonにはCのようなgotoもポインタもないよ。頭の悪い人には理解できないかもしれないけど
329デフォルトの名無しさん:2010/12/22(水) 19:06:01
なんつうか、誰もPythonをdisってるんじゃないのに被害妄想か?
相変わらずだな……

動的型言語として、引数型指定とかさせる仕様じゃないから
引数型に応じた自動的なディスパッチ機構(パターンマッチ/オーバーロード)は
Pythonには無いですよ

ってだけの話だったのに

なんで「手でディスパッチすればできる」とか意味不明な反論になってるのwww
>>328も妙に上から目線だしwww
330デフォルトの名無しさん:2010/12/22(水) 19:08:17
俺はディスパッチ出来るなんて言ってませんー
C++ではこうやるんだけど、pythonではどうやるの?って馬鹿な奴が消えてくれればそれでいいんだけど
331デフォルトの名無しさん:2010/12/22(水) 19:14:10
LLでメソッドの多重定義できるのなんてあったっけ
332デフォルトの名無しさん:2010/12/22(水) 19:22:00
LLの定義によるんじゃないの
groovyはできる(ただし、型がルーズなので信じると裏切られることも多い)
333デフォルトの名無しさん:2010/12/22(水) 19:35:39
http://www.python.org/dev/peps/pep-3124/
pythonでやるならこんな感じだろーな
pepはまだdraftだけどこのてのライブラリは探せばいくつかある

lispだとgeneric functionとか、gaucheもそんな感じだわな

汚いとかなんとかいわれてもはぁそうですかとしか…
334デフォルトの名無しさん:2010/12/22(水) 19:39:43
pythonは引数の省略と名前付き引数の機構が強力だから
そもそも多重定義が必要になる場面がほとんど無いんだよ
335デフォルトの名無しさん:2010/12/22(水) 19:40:54
>>334
そうそう。実際、JavaのコードをPythonに書き直したりすると分かる
336デフォルトの名無しさん:2010/12/22(水) 20:12:17
jQueryのソースちょっと見たときタイプチェックの嵐で動的言語って大変だなって思った
337デフォルトの名無しさん:2010/12/22(水) 20:23:01
>>334
そんなことは無いと思うけど…
今ダウンロードしたgoogleclとかいうgoogle APIのクライアントライブラリ
を試しに見てみると、base.pyの中で引数に対してisinstanceを呼んでいる箇所が
8箇所ぐらいある
勿論どうしても必要と言うものでもないけどね

>>333
ああそれはいいな、でもdraftなのか
338デフォルトの名無しさん:2010/12/22(水) 21:29:38
>>337
isinstance が必要かどうかの話はしていないぞ
339デフォルトの名無しさん:2010/12/22(水) 21:33:27
>>338
引数に対するisinstance()を頻繁に行う必要があるってのは、>>334への反例に
なるかと思ったんだけど

Javaで
void foo(Object arg) {
 if (arg istanceof Integer) ..
else if ....
}

こんな馬鹿げたコードは書かないでしょ
多重定義があるから
340デフォルトの名無しさん:2010/12/22(水) 21:47:33
多重定義が必要と言いたいのか、必要ないと言いたいのははっきりしろ低能
341デフォルトの名無しさん:2010/12/22(水) 21:58:27
>>340
>そもそも多重定義が必要になる場面がほとんど無いんだよ
というのが疑問だからつっこんだだけ

isinstance()を使ってるのは、多重定義があれば多重定義を使う場面だから、
「そもそも必要でない」というのはあたらないかと
342デフォルトの名無しさん:2010/12/22(水) 22:16:56
あれば使う。だから根本的に必要だってこと?
343デフォルトの名無しさん:2010/12/22(水) 22:17:54
根本的に必要とまではいえないでしょ
あれば便利という程度に過ぎない
344デフォルトの名無しさん:2010/12/22(水) 22:20:13
Pythonってイマイチだな。
345デフォルトの名無しさん:2010/12/22(水) 22:21:43
まあ多重定義が可能だとしてもやらない、という方法も理解するよ
名前バインディングが文字通り・見たままで済むからシンプルになる
C++のname manglingはキモい
346デフォルトの名無しさん:2010/12/22(水) 22:22:43
>>339
pythonの場合は
def foo(intobject=None, strobject=None, listobject=None, hashobject=None):
って書けるから引数の省略と組み合わせると多重定義は要らないって話
(引数の型が正しいかどうかっていうのとは別の話)
347デフォルトの名無しさん:2010/12/22(水) 22:25:11
>>346
意図は理解するけど、使い勝手としてはデグレードはしてるな
foo(intobject="foo")
のように書けるし、
キーワードを覚えてタイプする必要がある
348デフォルトの名無しさん:2010/12/22(水) 22:27:59
LLバトルロワイヤル…C++馬鹿…Java馬鹿…
349デフォルトの名無しさん:2010/12/22(水) 22:36:52
len(笑)
350デフォルトの名無しさん:2010/12/22(水) 22:47:18
静的脳はなにやってもダメ
351デフォルトの名無しさん:2010/12/22(水) 22:47:19
pythonよくわからんけどそういうのって
def foo(obj):
 if isinstance(obj, int):
  foo_int(obj)
 elif isinstance(obj, str):
  foo_str(obj)
  ...
みたいなコードが

def foo(intobject=None, strobject=None, listobject=None, hashobject=None):
 if intobject != None:
 foo_int(intobject)
 elif strobject != None:
  foo_str(strobject)
  ...
みたいになるだけ?
まったくうれしくない、デフォルト引数の使い方間違ってね?
352デフォルトの名無しさん:2010/12/22(水) 22:57:27
x+y みたいなのはオーバーロードできるのに、
sin(x) みたいなのはオーバーロード出来ないのはバランス
悪くてやだなー、と思ったことはある。
353デフォルトの名無しさん:2010/12/22(水) 22:58:09
こういうの見てるとC#ってよくできてるなーと思うよw
354デフォルトの名無しさん:2010/12/22(水) 23:00:04
>>353
お前の脳みそも同じくらい良く出来てればよかったのにな
355デフォルトの名無しさん:2010/12/22(水) 23:05:31
>>352
クラスの中の演算子オーバーロードなら、左オペランドの型は確定するからなー
逆に言うとglobalなoperator定義みたいなのはやっぱりできないし

今日からfunction compositionは>>演算子で!とか思い立っても
f >> g
とはかけずに
Compose(f) >> g
とかそんなコードを書くしかない


356デフォルトの名無しさん:2010/12/22(水) 23:06:26
>>351
これはひどいwwww
357デフォルトの名無しさん:2010/12/22(水) 23:12:36
>>347
PowerShellは実引数の型に応じてそれを受け取る仮引数と処理を制御するけど、そういう話?
ttp://blogs.msdn.com/b/powershell/archive/2008/12/23/powershell-v2-parametersets.aspx
358デフォルトの名無しさん:2010/12/22(水) 23:15:55
>>357
「デグレードしてる」ってのは、
静的型言語でのパターンマッチやオーバーロード、あるいは
>>351の上の版のような手動ディスパッチに比べて

使い勝手が劣り、error proneで、「これがあるから要らない」とまで主張するには
どうかと思うぐらいいいところが何も無いってことね
359デフォルトの名無しさん:2010/12/22(水) 23:31:59
今知った。JavaではStringクラスはfinalなのでサブクラスを定義できないそうだ。
なにこのクソ言語。
360デフォルトの名無しさん:2010/12/22(水) 23:42:25
Python は言語機構としては多重定義を用意していないけど、
多重定義を実装することは可能で、それを使いやすいライブラリにすることも可能。
ttp://gihyo.jp/dev/serial/01/pythonhacks/0007?page=2&skip
361デフォルトの名無しさん:2010/12/22(水) 23:49:01
>>358
うん、だからこういうことでいいのかと思ったけど
便利に見えて関数定義何度もするのと大して手間変わらんのだよなー
362デフォルトの名無しさん:2010/12/22(水) 23:49:53
>>360
おー
これってPythonダックタイプな(概念的)インタフェースを上手く扱えるのかな?

Pythonってfilelikeとかiterableみたいな、
特定の型を継承しない型のクラスみたいなのが結構あって、それを判別したいことは
多分多いのだと思うのだけれど
363デフォルトの名無しさん:2010/12/22(水) 23:59:25
>>362
ABCとかあるし、やろうと思えばできるけど、実用的じゃないだろうな。
例えば、 filelike は iterable でもあるけど、どっちにする?

そんな面倒なこと考えるくらいなら、 foo_from_file, foo_from_iter って別の名前の関数作るほうが良いと思うよ。
364デフォルトの名無しさん:2010/12/23(木) 00:04:02
>例えば、 filelike は iterable でもあるけど、どっちにする?

filelikeとiterableのディスパッチのように、単に
曖昧で決定できないというエラーを出すのが普通かと
(コンパイラが賢いことをする言語では、そういうことが普通によくある)

> そんな面倒なこと考えるくらいなら、 foo_from_file, foo_from_iter って
> 別の名前の関数作るほうが良いと思うよ。

んーC++のオーバーロードとかHaskellのパターンマッチなんて要らないよね
みなアセンブラで書こうぜって話?
365364:2010/12/23(木) 00:04:56
× filelikeとiterableのディスパッチのように、単に〜
○ filelikeとiterableのディスパッチのように、「それが困難な場合には」単に〜

ちょっと抜けてた
366デフォルトの名無しさん:2010/12/23(木) 00:17:57
>>364
C++みたいに優先順位付けを頑張らないなら、ABCでの対応もできるな。

> んーC++のオーバーロードとかHaskellのパターンマッチなんて要らないよね
> みなアセンブラで書こうぜって話?

そんな極論は言ってない。静的言語ではオーバーロードを美味しく使わせてもらってるし、
静的に型付けできるのにオーバーロードできないAS3は嫌い。
あくまでも、Pythonみたいな動的型付け言語ではの話。
367デフォルトの名無しさん:2010/12/23(木) 00:20:20
> C++みたいに優先順位付けを頑張らないなら、ABCでの対応もできるな。
優先順位付けはある程度は可能だし
今でも↑のやつでやってるんじゃないの?
basestringとstrのディスパッチャーにstrを渡したらstrを
適合させるんでしょ

filelikeとiterableではfilelikeのほうが狭いから、filelikeを渡せば
普通はfilelikeに適合させるんじゃないの
368デフォルトの名無しさん:2010/12/23(木) 00:49:35
オーバーロード出来ないとパラメーター名に適切な名前付けらんなくてイヤンなことがあるよね
たとえば
draw_rect(1,2,3,4)
draw_rect((1,2),(3,4))
draw_rect((1,2,3,4))
みたいに呼び出せる関数を書きたかったらシグネチャは
def draw_rect(a,b=None,c=None,d=None):
みたいな感じになるだろうけど
オーバーロードできるなら
def draw_rect(x,y,w,h):
def draw_rect(pt1, pt2):
def draw_rect(rect):
みたいにちゃんとした名前付けてあげられる、可読性も向上する
369デフォルトの名無しさん:2010/12/23(木) 00:53:56
>>368
んだなー
一方
draw_rect_points()
とか
draw_rect_rect()
とかだと、dynamic languageなのに静的型言語よりstaticなのが気持ち悪いし
操作の名前に型の名前が入り込んでしまうのが名前として良くない
370デフォルトの名無しさん:2010/12/23(木) 00:57:36
PythonでOOPなんてやるのが間違っているだろw
C++かせいぜいJavaにしておけよwww
371デフォルトの名無しさん:2010/12/23(木) 01:01:07
なるほど、確かにselfとか書くのうざいしな
そうはいってもあんまりfunctionalな言語でもないのだが
372デフォルトの名無しさん:2010/12/23(木) 01:07:47
>>370
お前マジで頭逝ってんのか?
373デフォルトの名無しさん:2010/12/23(木) 01:16:20
>>368
いい例だな
374デフォルトの名無しさん:2010/12/23(木) 01:50:44
その代わりにPythonは引数の渡し方が柔軟だけどね。
draw_rect(a,b,c,d) だけあったら、
draw_rect(*(1,2)+(3,4)) とか draw_rect(*(1,2,3,4)) とかできる。
375デフォルトの名無しさん:2010/12/23(木) 02:19:03
利用する側が型を意識して呼び出さないといけないんじゃ、代わりになってないと思う
376デフォルトの名無しさん:2010/12/23(木) 02:25:22
オーバーロードは確かにLL使ってて1番気になる点
377デフォルトの名無しさん:2010/12/23(木) 02:36:05
>>375
そこらへん柔軟にできるのなら、別に
draw_rect(int,int,int,int)と
draw_rect(list)を両方用意する必要ってない気がする。
378デフォルトの名無しさん:2010/12/23(木) 02:40:59
draw_rect(int,int,int,int) だと
draw_rect(x1,y1,x2,y2)
draw_rect(x,y,w,h)
どっちなのかわからないんだよな
379デフォルトの名無しさん:2010/12/23(木) 06:43:03
>>368
そうかなー
def draw_rect(a,b=None,c=None,d=None):
 if d is not None:
  x, y, w, h = a, b, c, d
  _draw_rect4(x, y, w, h)
 elif b is not None:
  pt1, pt2 = a, b
  _draw_rect2(pt1, pt2)
 else:
  rect = a
  _draw_rect1(rect)
そんなに悪くないと思うけど、だめかな。
380デフォルトの名無しさん:2010/12/23(木) 10:41:24
>>379
全然だめだし無駄だと思う
この例で矩形を描くために_draw_rect4(), _draw_rect2(), _draw_rect1のような
関数を別々に実装するかといえばそんなわけはなくて、実際に仕事をする
コア実装のインタフェースはどれか一つだろう

なので、Pythonなら>>374の書いているようなタプルのパッキング、アンパッキング
を使ってさっさと引数をタプルならタプル、4変数なら4変数に加工して
それから処理したほうがいい

型シグニチャもそれだと何の役にも立たずドキュメント性も無いから
俺ならいっそ*argsにしてしまって、len(args)でディスパッチさせるかな
381380:2010/12/23(木) 10:53:49
つまり、↓のようなコードね
勿論その下の型シグニチャ+オーバーロードっぽい擬似コードのほうが
ずっと明快で好ましいと思うけど

def draw_rect(*args):
if len(*args) == 4:
x0, y0, x1, y1 = args
elif len(*args) == 2:
(x0, y0), (x1, y1) = args[0], args[1]
elif len(*args) == 1:
x0, y0, x1, y1 = args[0]
:
-----------------------------------------------------------
def draw_rect(rc: Rect):
draw_rect(rc.x0, rc.y0, rc.x1, rc.y1)

def draw_rect(pt0: Point, pt1: Point):
draw_rect(pt0.x, pt0.y, pt1.x, pt1.y)

def draw_rect(x0: int, y0: int, x1: int, y1: int):
:
382デフォルトの名無しさん:2010/12/23(木) 10:58:56
>>379
C++ライブラリのラッパ作るとか、そうしたい理由があるならそれでいい。
そうじゃないなら、ダメ。
383デフォルトの名無しさん:2010/12/23(木) 11:05:34
>>381
draw_rectだけしかそういう関数ないんだったらそれでいいけど、
同じ引数でdraw_roundrectもあるなら、その方法がいいとは思えない。

Rect側で
def to_list(self):
 return [self.x0, self.y0, self.x1, self.y1]
ってすればいいんじゃね?
384380:2010/12/23(木) 11:07:38
> if len(*args) == 4:
よく見たらこのへん全部 * が余計だった
後、w, hとかの場合もあったのか
385デフォルトの名無しさん:2010/12/23(木) 11:09:06
>>383
なるほど
386デフォルトの名無しさん:2010/12/23(木) 12:03:13
過疎
387Perl忍者(竹田隼也) ◆M5ZWRnXOj6 :2010/12/23(木) 12:58:04
^^
388デフォルトの名無しさん:2010/12/23(木) 15:48:43
Pythonは大変だねーダサいコーディングしないといけないから
やっぱりC#最強だね
389デフォルトの名無しさん:2010/12/23(木) 15:53:01
工作員も大変だな。Pythonだけを槍玉に上げるってことは、そういうことなんだろうな
390386:2010/12/23(木) 16:01:29
最強はScalaです
391デフォルトの名無しさん:2010/12/23(木) 16:06:27
C#は文末のセミコロンがどうしようもなくダサいな
昭和世代の言語って感じ
392デフォルトの名無しさん:2010/12/23(木) 16:09:49
perlとRubyが消えて、PHPとPythonが残ったな
393デフォルトの名無しさん:2010/12/23(木) 16:11:41
PHPもPythonも消えて
JavaScriptだけ残る
394デフォルトの名無しさん:2010/12/23(木) 16:13:10
JavaScriptはあんますきじゃない、CoffeeScriptに期待
395デフォルトの名無しさん:2010/12/23(木) 16:29:56
今の時代コロンだな
396デフォルトの名無しさん:2010/12/23(木) 16:35:07
なるほどviか
397デフォルトの名無しさん:2010/12/23(木) 16:37:57
だるまさんがころんだ
398デフォルトの名無しさん:2010/12/23(木) 16:47:25
mをつけろよでこすけやろう
399デフォルトの名無しさん:2010/12/23(木) 16:49:03
おまいらすっころんでろ
400デフォルトの名無しさん:2010/12/23(木) 16:49:16
PythonやめてC#にしたらモテモテになりました
401デフォルトの名無しさん:2010/12/23(木) 16:50:25
シャワーを浴びてコロンを叩く
402デフォルトの名無しさん:2010/12/23(木) 16:52:16
C#厨がついにこのスレにも暴れ出したか。C++、Javaはちゃんとこの板から全滅させてきたか?
403デフォルトの名無しさん:2010/12/23(木) 16:58:28
VB>C#>IronPython>Ruby>次どこいけばいい?
404デフォルトの名無しさん:2010/12/23(木) 16:59:56
コミュニケーションにいけ
405デフォルトの名無しさん:2010/12/23(木) 21:58:37
>>388
Pythonだと、
draw_rect(int x0, int y0, int x1, int y1){ return draw_rect(Rect(x0, y0, x1, y1)); }
draw_rect(Point p0, Point p1){ return draw_rect(Rect(p0.x, p0.y, p1.x, p1.y)); }
なんてダサいコード書かなくていいの。
C#じゃどーすんのかしらないけどさ。
406デフォルトの名無しさん:2010/12/23(木) 23:34:16
PowerShellでやってみたが、なんだか恐ろしいバッドノウハウの塊になった気がしないでもない

function Draw-Rect
{
[CmdletBinding(DefaultParameterSetName="xywh")]
param(
[Parameter(ParameterSetName="rect", Position=0)]
[ValidateCount(4,4)]
[int[]] $rect,
[Parameter(ParameterSetName="point", Position=0)]
[ValidateScript({$_.Count -eq 2 -and $_[0] -is [int] -and $_[1] -is [int] })]
[object[][]] $pt,
[Parameter(ParameterSetName="xywh",Position=0)]
[int]$x,
[Parameter(ParameterSetName="xywh",Position=1)]
[int]$y,
[Parameter(ParameterSetName="xywh",Position=2)]
[int]$w,
[Parameter(ParameterSetName="xywh",Position=3)]
[int]$h
)
switch ($PsCmdlet.ParameterSetName)
{
"rect" { 1 } # Draw-Rect 1,2,3,4
"point" { 2 } # Draw-Rect (1,2),(3,4)
"xywh" { 4 } # Draw-Rect 1 2 3 4
default { "ダーッ!" }
}
}
407デフォルトの名無しさん:2010/12/24(金) 22:25:43
だれか、Pythonやったことない俺に
>>383を解説してくれ
408デフォルトの名無しさん:2010/12/24(金) 23:10:54
>>407
draw_rectがRect型でもlist型でも整数4つでも、どの引数でも使えるように多重定義するくらいなら、
Rect型をlist型に変換する方法を提供するとか、そうした方が幸せになれる、という意味。
409デフォルトの名無しさん:2010/12/24(金) 23:14:57
おれならどっちかっていうとRectにそういうコンストラクタを提供するな
まあ発想としては似たようなもんだが
Rectの入り口が広ければ、draw_rectはRect版だけでいい
410デフォルトの名無しさん:2010/12/25(土) 13:21:00
それもありだね。ていうか、実装上そんな感じになってるだろうなぁ。

けどそしたらdraw_rect(Point, Point)が...
draw_rect(Rect(*p0.pos(), *p1.pos()))
かなぁ。
411デフォルトの名無しさん:2010/12/25(土) 13:56:15
C#は良く出来てると思う。
412デフォルトの名無しさん:2010/12/25(土) 14:01:26
>>411
それを譫言のように繰り返すのやめてくれw
413407:2010/12/25(土) 14:23:49
>>408-409で納得したと思ったら>>410でまた混乱

関数側じゃなくて引数に使うRect型のコンストラクタを多重定義するなら
draw_rectはRect受け取るやつだけでいいんじゃないの?
414デフォルトの名無しさん:2010/12/25(土) 14:34:57
>>413
多重定義するなら、それでいいけど。
したくなければどうしよう。
415デフォルトの名無しさん:2010/12/25(土) 19:46:09
多重定義の何を忌避してるかによるんじゃなかろか
416デフォルトの名無しさん:2010/12/25(土) 22:26:12
なんかもう、「多重定義なくてもキーワード引数で万歳」なんてなかった、的な話になっとるな
417デフォルトの名無しさん:2010/12/25(土) 22:31:36
>>416
お前の意図が見え透いてるからな
418デフォルトの名無しさん:2010/12/25(土) 22:35:54
いつの間にそんな心理戦になっていたのか・・・
419デフォルトの名無しさん:2010/12/25(土) 22:38:36
じゃあ言いたいことがあるならハッキリ言えばいいんじゃないか
多重定義が出来ない言語が糞だってな。頭が悪すぎて相手してられないよ
420デフォルトの名無しさん:2010/12/25(土) 23:47:51
じゃ遠慮なく

Pythonはゴミ
421デフォルトの名無しさん:2010/12/25(土) 23:51:59
どのLLが良いんですかね
422デフォルトの名無しさん:2010/12/26(日) 00:20:03
Python
423デフォルトの名無しさん:2010/12/26(日) 01:49:38
好きなの使え
424デフォルトの名無しさん:2010/12/26(日) 01:56:22
PHPはくず
425デフォルトの名無しさん:2010/12/26(日) 01:59:39
Pの付く言語以外ならどれでもいいよ
426デフォルトの名無しさん:2010/12/26(日) 02:02:37
落ち目のRubyだけは選ばないようにしないとな
427デフォルトの名無しさん:2010/12/26(日) 03:23:07
Rubyを使いこなしてはじめてOO使いと言える
428デフォルトの名無しさん:2010/12/26(日) 03:30:13
○○となんとかは使いようってことですね、わかりますん。
429デフォルトの名無しさん:2010/12/26(日) 07:10:15
わかりますん。 て新しい日本語だね。

○○使いになるとこういう言葉を話せるようになるんですね。
430デフォルトの名無しさん:2010/12/26(日) 07:37:50
>>429
おとっつあんおかゆができたわよ
431Perl忍者 ◆M5ZWRnXOj6 :2010/12/26(日) 10:24:06
OO使いやなんかわめいてるやついるけど
実際ごみくず
432デフォルトの名無しさん:2010/12/26(日) 10:29:26
>>416
キーワード引数でどうにかしようとしてた人もいるけど、俺はあんま好きじゃないってだけ。
range([start,] stop [,step]) 程度なら、*argsの大きさ数えて場合分けで実装してもいいと思うけど。
433デフォルトの名無しさん:2010/12/26(日) 10:44:22
>>419
できないから別の方法使うんじゃなくて、多重定義って本当に必要な場面なんてほとんどない。
どうしても必要ならPythonなら>>360の方法でできるし、
言語の機能を追加するような魔改造はPythonよりRubyの方が得意な印象なので、きっとRubyでもできるのだろう。
434デフォルトの名無しさん:2010/12/26(日) 10:57:24
>>433
俺に言うな
435デフォルトの名無しさん:2010/12/26(日) 11:02:44
>多重定義って本当に必要な場面なんてほとんどない。

ここが議論の分かれるところだったのでは?
キーワード引数があれば要らない、とかいう意見は突っ込まれまくっていたし
多重定義があれば要らないisinstanceが結構多用されている例があがっていた
436デフォルトの名無しさん:2010/12/26(日) 11:08:49
シングルディスパッチでうまい設計をして解決するのがいい方法なのか、
isinstanceで振り分けるのがいい方法なのか、
多重ディスパッチがいい方法なのか、
結論はないんじゃない?
437デフォルトの名無しさん:2010/12/26(日) 11:13:14
言語特有の、あれば使うという程度の機能でしかないだろ
438デフォルトの名無しさん:2010/12/26(日) 11:16:05
多重定義信者はJavaプログラマだよ、間違いなく。
439デフォルトの名無しさん:2010/12/26(日) 11:18:41
えっ、pythonにはインクリメント演算子がなくて、+=1を使ってるだって?プークスクス


これと同レベル
440デフォルトの名無しさん:2010/12/26(日) 11:20:08
isinstanceで振り分けるのと多重ディスパッチの2択だったら多重ディスパッチのがいいべ
>多重定義って本当に必要な場面なんてほとんどない。
ってのはシングルディスパッチでうまい設計が出来る場合がほとんどだよと言いたいのだろう
本当に出来るのかは知らんけど
441デフォルトの名無しさん:2010/12/26(日) 11:26:15
オーバーロードっつーたって、引数の数で分けるなら別に対して困らないから
(デフォルト引数や、多重代入を1行書くだけで事足りるからね)
問題になるのは型で分ける場合の話だけだよな

っつーても、変数に型がない言語で引数の型で縛るってのも
変な話になるんだよなあ
どっちかっつーと、ダックタイピング的に
「渡されたオブジェクトに必要なメソッドが揃っているなら、型とか考えない」
って解決法が一番だと思うぞ
逆に言えば、渡すオブジェクト側に必要なもの揃えてやればいいだけ


>>433
過去にはあったらしいって話はどっかで聞いたような気もするが
実用例は全く聞かない辺り、必要ないんだろうなやっぱ
442デフォルトの名無しさん:2010/12/26(日) 11:28:54
静的片付けだから柔軟なプログラミングが出来ないせいで、
Pythonから見たら無駄な、多重定義せざるを得ないという状況の方が圧倒的に多いように思えるけど
443デフォルトの名無しさん:2010/12/26(日) 11:32:36
> 変数に型がない言語で引数の型で縛る
静的型ではないだけで
レシーバの型に応じたディスパッチ(いわゆるポリモーフィズム)はあるのだから
ぜんぜん「変な話」ではないと思う

ただし現実問題として引数型に対する多重ディスパッチは無い
というのが多くのLLの現状

C++族のオーバーロードによる多重ディスパッチは多重だが静的な
(コンパイル時の)ディスパッチなので
動的言語に適したもの、となると、実行時型による動的な
多重ディスパッチになるんだろう
444デフォルトの名無しさん:2010/12/26(日) 11:33:53
>>440
多重ディスパッチとか言っても分かってない
Javaしか出てこないお子様しかいないから
445デフォルトの名無しさん:2010/12/26(日) 11:34:28
静的型付けだから柔軟なプログラミングが出来ないせいで、
Pythonから見たら無駄な、多重定義をせざるを得ないという状況の方が圧倒的に多いように思えるけど、違う?
446デフォルトの名無しさん:2010/12/26(日) 11:36:08
多重ディスパッチが許容されないから
Pythonではたとえば
callable x callable -> callable
のような演算子がつくれないんですよ
447デフォルトの名無しさん:2010/12/26(日) 11:38:53
許容されるせいで生まれる弊害を全く考慮しない馬鹿ども
448デフォルトの名無しさん:2010/12/26(日) 11:51:19
>>443
Perl6ならそういうこともできるのかな?
449デフォルトの名無しさん:2010/12/26(日) 12:09:58
>>447
具体的にたとえばCLOSでどういう弊害が指摘されているというのかな?
言えなければおまえも馬鹿だ。
450デフォルトの名無しさん:2010/12/26(日) 12:10:20
Perl6は多重定義出来るね。まあ、Perl6は仮引数に型を指定出来るけど。
ただ、型がない言語でも、仮引数の個数でだけでも多重定義出来る方が、スマートに書ける場合が多々あるように思う。
foo()の中のifで切り分けて_foo1()とか_foo2()に飛ばすって、如何にも泥臭い。
451デフォルトの名無しさん:2010/12/26(日) 12:15:16
誰か>>445に答えて
452デフォルトの名無しさん:2010/12/26(日) 12:15:22
見たらPerl6は多重定義そのものずばりがあるっぽいね
変数に任意の型を持たせることもできるし、これで変に略記に拘らなければもっと受け入れられると思うんだけど
ttp://d.hatena.ne.jp/uasi/20100730/1280472169
453デフォルトの名無しさん:2010/12/26(日) 12:16:11
ぐは、被った
454デフォルトの名無しさん:2010/12/26(日) 12:20:34
>>449
なんのデメリットもないCLOSが普及しない理由はなんだい?
455デフォルトの名無しさん:2010/12/26(日) 12:49:40
>>435
少しくらいならisinstance使えばいいし、大量に使わないといけなくて可読性が低下するなら、
それは多重継承が必要な場面だから>>360の方法で多重継承すればいい。

けれど、本当に多重定義が必要な場面ってそんなにないよ。
例えばdraw_rectに関しては、Rect型しか取らないことにできる。
似た引数の関数を作るときのことを考えると、そうした方が手間は少ない。

キーワード引数使うっていうのは、例に出てたような
def f(intobj=None, strobj=None, ...)はアホの極みだが、
list.sort(reverse=False, key=None)みたいなのは無駄な多重継承を避ける役に立つ。

>>440
場合によるんじゃね?
それに、どうしても多重定義が必要なら、する方法はあるんだから。

>>446
必要か?
x(callable, callable) -> callableでいいんじゃね?
456デフォルトの名無しさん:2010/12/26(日) 12:53:16
>>455
多重継承と多重定義がごちゃごちゃになってる
全部多重「定義」のつもり?

> x(callable, callable) -> callableでいいんじゃね?
1+2+3+4は
+(1, +(2, +(3, 4)))
よりずっと読みやすく書きやすい

だからPythonでもクラスの中に演算子を定義できるようにしているが
クラス+ポリモーフィズムのシングルディスパッチなので有効性が限定的だという話
457デフォルトの名無しさん:2010/12/26(日) 12:55:35
えっ、pythonにはインクリメント演算子がなくて、+=1を使ってるだって?プークスクス


これと同レベル
458デフォルトの名無しさん:2010/12/26(日) 12:59:57
多重定義と多重ディスパッチがごっちゃになってない?
459デフォルトの名無しさん:2010/12/26(日) 13:12:04
いわゆる多重定義と多重ディスパッチ(マルチメソッド)の違いって
それが静的か動的かって点だけだろう
上の議論では多重定義は静的な多重ディスパッチとして、同じ枠組みで
語られているように思う
つまり実行時に解決される(ポリモーフィックに動作する)かどうかは、
問題にされていない

多重継承の話は一度も出ていないし、関係無いんじゃないの
460デフォルトの名無しさん:2010/12/26(日) 13:13:16
結局のところ多重定義の必要性云々本質的でなくて
引数をif文で一つずつ回すしかないような状況はうまくないよねってところが問題であって
それがうまく解決できるならやり方はなんでもいいように思うけど
461デフォルトの名無しさん:2010/12/26(日) 13:16:53
ifはダメで、いくつも定義するのはおkって理屈がよく分からん
462デフォルトの名無しさん:2010/12/26(日) 13:18:48
>>461
やりたいことをクリアに表現できているかどうかだ
多重定義は意図が明確で宣言的
ifは、それを「手続きによって」「ベタに」表現している

上で出ている引数長で分岐、といった例は、引数にドキュメント性が全くないので
コメントを使用方法をダラダラ書かざるを得ない
463デフォルトの名無しさん:2010/12/26(日) 13:26:05
そこまで違いがあるかあ?主観の話に聞こえるんだけど
464デフォルトの名無しさん:2010/12/26(日) 13:28:34
主観といえば主観かも知れないが、ポリモーフィズムによるシングルディスパッチが
なくなって、それも全部isinstanceでやれと言われたら嫌だと思うんじゃないか?
465デフォルトの名無しさん:2010/12/26(日) 14:06:34
よしじゃあ多重定義とif文の間取って行こう、を地で行ったのが>>406
結局どこかで冗長なコード書く羽目になる
466デフォルトの名無しさん:2010/12/26(日) 16:21:27
>>456
多重継承って、
class A{void foo(){}};
class B{void foo(){}};
class C : public A, B{};
のこと?
なんでそれが出てきたのか知らないけど、その話してるとは気づかんかった。

> +(1, +(2, +(3, 4)))
reduce(operator.add, [1,2,3,4])
関数2つから関数を作り出す関数がこんなに連結されてる時点で、既に読みやすくない。

演算子の有効性なんて、PythonもC++も過度には求めてないよ。
優先度も定義できないし、できるのは+とか*とかの使いまわしくらい。
467デフォルトの名無しさん:2010/12/26(日) 16:25:48
>>462
どうせ関数にはdocstring付けるのが推奨だ。

range([start,] stop[, step]) -> list of integers
なんて、十分明確だと思うし、

多重定義っぽく
range(stop) -> list of integers
range(start, stop[, stop]) -> list of integers
って書いても問題ないと思うよ。
468デフォルトの名無しさん:2010/12/26(日) 16:46:51
>>466
誰も多重継承の話なんてしていないだろう
多重継承とか言い出したのは >>455だけ
469デフォルトの名無しさん:2010/12/26(日) 16:51:06
>>468
じゃあ、間違えたんじゃね?
470デフォルトの名無しさん:2010/12/26(日) 16:53:00
スクリプト言語は進化したけど、人間の方は「はなししって何ですか」のころからちっとも進歩していないんだな。
471Perl忍者 ◆M5ZWRnXOj6 :2010/12/26(日) 17:08:33
人間関係ないから^^;
472デフォルトの名無しさん:2010/12/26(日) 17:38:59
2chに限って言えば退化し続けているんじゃないの

http://www2.atpages.jp/mirror/2ch/python/prog/read.php/1068824510/
昔のPythonスレとか見ると、とても同じスレとは思えないほど
ちゃんと技術的な話題について語っている
473デフォルトの名無しさん:2010/12/26(日) 19:02:50
>>472
昔は一部の「わかっている」人だけが参加していたけど、今はそれ以外の人も参加しているからでは?
昔より一般化してきたという意味では進歩しているかと。OOに対する考え方も多様化していると見ることもできるし。
474デフォルトの名無しさん:2010/12/26(日) 19:22:57
Pythonユーザについて一般化するとそういう見方もあるかもしれないけど、
2chについて言えば、やはり過疎ってきてるし
賢そうな、あるいは面白いレスやスレの比率は減ってS/Nが低下してると思う

まあスレ違いだな
475デフォルトの名無しさん:2010/12/26(日) 19:41:25
正直、range()ってPythonの例としては微妙なんだよなあ。
範囲なのに、個数の表現まで内包しちゃってて
そのせいでPythonの関数定義のシステムからも外れちゃってる。

>>433
Rubyは名前を大量に定義する文化だから、要らないんだよ。
同じ意味の別名のメソッドがあっても気にしないし
機能別に別々にメソッドがあることも珍しくない。
基本は同じなんだけど微妙に違うメソッドとかも普通にあるし。
476デフォルトの名無しさん:2010/12/26(日) 20:18:04
>>475
そのおかげで、「こういう書き方ができるかな?」と思って書くとすんなり動いてくれたりするから使いやすい。
自分が「こう書きたい」と思うように書けるのはプログラミングを楽しくしてくれる。

俺がPython大嫌いなのは段付けを強制するからなんだよね。俺もCで書くとき、関数の中は段付けするけど
関数の終わりは段付けをなくして閉じた書き方をしたいと思っても文法エラーになる。
こんな言語仕様を考えた奴はアホだと思ったね。柔軟性がかけらもないから書いてても楽しくないしストレスが溜まる。
477デフォルトの名無しさん:2010/12/26(日) 20:20:00
476訂正
> 関数の終わりは段付けをなくして閉じた書き方をしたいと思っても、Pythonでは文法エラーになる。
478デフォルトの名無しさん:2010/12/26(日) 20:21:36
どのLL使ってんの?あえて外してCを挙げたんだろうけど
479デフォルトの名無しさん:2010/12/26(日) 20:33:53
>>476
Pythonの設計思想は書きやすさより読みやすさだから
480デフォルトの名無しさん:2010/12/26(日) 20:57:40
>>477
閉じの行が嫌いな人も居るからなあ、そればかりは好みの問題でしょ
LISPなんかは閉じ括弧を明示するけど、閉じ括弧は最後の行の末尾に纏めちゃうから見た目はPythonみたいになるし))))))
481デフォルトの名無しさん:2010/12/26(日) 21:40:21
まとめとしては、いくら言語の設計思想として読みやすさに重きを置いていても
>>346のようなコードを書こうとする者を止めることはできなかった、ということですね
482デフォルトの名無しさん:2010/12/26(日) 21:50:05
オーバーロードがあれば346があういうコードをかくのをとめられたはず、かわいそうに…
483デフォルトの名無しさん:2010/12/26(日) 21:54:52
引数ありのコンストラクタを定義するとき別に空のコンストラクタを書かなきゃいけないのはクールじゃないよね
484デフォルトの名無しさん:2010/12/26(日) 21:58:18
まあオーバーロードってなにしろ地球人を飼育してるわけだから
346とかメじゃないですよ
世界樹の迷宮2のラスボスの場合はバーローとか言われてるけどね!
485デフォルトの名無しさん:2010/12/26(日) 22:20:37
「可読性は善」

Guidoが築き、信者が広めたPythonコードとは、一体何だったのか。

今、その実態が多重ディスパッチ―――。



なんていうドキュメンタリ仕立ての本をだな?
486デフォルトの名無しさん:2010/12/26(日) 22:47:21
>>476
君頭悪そうに見えるからもうレス書かない方がいいよ
487デフォルトの名無しさん:2010/12/27(月) 00:52:01
int hoge(void){
  if (〜){
    if (〜){
      if (〜){
      }
    }
  }
} //閉じ括弧ばっかうざい

int hoge(void){
  if (〜){
    if (〜){
      if (〜){
      }}} //きもい
}

def hoge():
  if 〜:
    if 〜:
      if 〜:
        〜
//イイ!
488デフォルトの名無しさん:2010/12/27(月) 00:54:52
馬鹿と煙は高い所が好きってことですね、わかります。
489デフォルトの名無しさん:2010/12/27(月) 01:26:44
インデントは強制でもいいけど、閉じ括弧は書かせて欲しいよねえ。
490デフォルトの名無しさん:2010/12/27(月) 01:41:39
代わりにpass書けばおk
491デフォルトの名無しさん:2010/12/27(月) 01:53:57
インデントベースは良くも悪くも冗長さが省かれる
492デフォルトの名無しさん:2010/12/27(月) 02:01:04
>>489
そうそう。ぱっと見て視覚的にわかりやすいコードは内容が理解しやすいから書きやすいし保守もしやすい。
>>487みたいに尻切れトンボがいいなんていう腐ったセンスしか持ってないと混乱しやすくなる。
コードが長くなったり、修正しまくってインデントがちょっとずれたら動作を間違って解釈してしまう。
閉じカッコがインデントと対応させて書ければブロックの単位を確認するのが一目でわかるし、
尻切れトンボが途中にあっても発見しやすい。
493デフォルトの名無しさん:2010/12/27(月) 02:19:39
慣れてない人はそう思うのだろうね
494デフォルトの名無しさん:2010/12/27(月) 04:02:32
インデントに文句言う香具師はPython使ったことが無い法則
495デフォルトの名無しさん:2010/12/27(月) 04:08:43
センスが腐ってるかどうかはともかくたとえば
if cond:
  do_something()
  i += 1

なのか

if cond:
  do_something()
i += 1

なのかコピペしてるとわからなくなることは確かにある
でも俺は end や fi を毎回書くぐらいなら稀にコピペミスするほうを選ぶ
496デフォルトの名無しさん:2010/12/27(月) 04:34:43
多分Lisp系も使った事ないんだろうなあ
497デフォルトの名無しさん:2010/12/27(月) 06:31:49
>>496
>>487の悪口は俺が許さないよ?
498デフォルトの名無しさん:2010/12/27(月) 07:39:18
int hoge(void){
  if (〜){
    if (〜){
      if (〜){
       }}}}

//イイ!
499Perl忍者 ◆M5ZWRnXOj6 :2010/12/27(月) 12:17:32
お前ら低レベルすぎるから

まだぜんぜん追いつかれないわ
500デフォルトの名無しさん:2010/12/27(月) 12:28:02
Pythonもifとかでブレースつかわんだけだろう
データ構造や関数呼び出しがネストすれば
Pythonでも普通に)))))))とかあるぞ

最初からifもブレース使うようにしときゃ
後で別構文のif式を導入することもなかったのに
501デフォルトの名無しさん:2010/12/27(月) 12:47:14
ソースが構造化されていないとエディタとの連携とかがやりにくい
Lispならeval-last-expressionとか何でもないけど
Pythonは上から順番に見ることしか許さない構文

何かに似てると思わないか?
Shift-JISやEUC-JPなどのレガシー文字エンコーディングだよ
文字の区切りが判別し難いから先頭から舐めていくことを要求される
UTF-8はそれよりはずっとよく出来ている
502デフォルトの名無しさん:2010/12/27(月) 13:35:48
>>481
バカにつける薬はないのだから、仕方ない。
503デフォルトの名無しさん:2010/12/27(月) 13:42:19
>>500
> 最初からifもブレース使うようにしときゃ
> 後で別構文のif式を導入することもなかったのに

関係ない。文を式として扱えないだけ。

>>501
構造化はされてる。
Lispでも
(+ 1
  2 (+
   3
4))
を3行目から読むとむちゃくちゃになる。
504デフォルトの名無しさん:2010/12/27(月) 14:45:49
>>501
全然喩えになってない
505デフォルトの名無しさん:2010/12/27(月) 18:50:52
むしろ、先頭バイトで可変長バイト数文字列のバイト数が判るのがインデントブロックに似てて、
開く括弧と閉じ括弧を対応付けないといけないのがエスケープによるコードページ切り替えを必要とする
エンコーディングに似てないか?
506デフォルトの名無しさん:2010/12/27(月) 22:36:25
>>502
これを個人の能力の責任に押し付けて終わるのは容易い
だが「だったら俺が馬鹿でもキーワード引数の使い方を間違えないドキュメント作ったらぁ」と行動を起こすのが先を行く者なのだ
私には分かる、"彼"はそういう男だ・・・
507デフォルトの名無しさん:2010/12/27(月) 23:40:07
RubyもPythonもSilverLightには適わない
508デフォルトの名無しさん:2010/12/27(月) 23:42:34
silverlightが最強なのは台湾でだけ
509デフォルトの名無しさん:2010/12/27(月) 23:48:45
SilverLightがインストールされているのは全PCの約7割
GUIも手軽に作成することが出来る

一方RubyもPythonもインストールされているのは1割以下w
スクリプト書いてもインストールしてないと使えませーんwwww
510デフォルトの名無しさん:2010/12/27(月) 23:50:15
Silverlight 使いが SilverLight とは書かないだろうし
汎用スクリプト言語の Ruby と Python を比較したりはしないだろうし
ましてや敵うを適うなどと間違えたりは

結論
>>507 は Adobe か Apple のまわしもの
511デフォルトの名無しさん:2010/12/27(月) 23:52:30
回し者?意味不明w
誰が書いてようが関係ないだろ
事実なんだからさww

反論できないからって、工作員だとか言うしかないんだよねww
512デフォルトの名無しさん:2010/12/27(月) 23:55:11
>>511
涙ふけよ
513デフォルトの名無しさん:2010/12/27(月) 23:58:03
そういうセリフは反論できてからにしてくださいよww
負け惜しみにしか聴こえませんからねww

Silverlightより優れている点でもあるんですかー?ww
一行でボタン作れますか?

webに強いRubyもPythonもweb電卓GUIすら簡単に作れないじゃないですかww

Silverlightならweb用の電卓をそのままデスクトップアプリとして
利用できますよーーww
514デフォルトの名無しさん:2010/12/27(月) 23:59:21
Silverlightは真のマルチプラットフォームはHTML5発言で死にました
515デフォルトの名無しさん:2010/12/28(火) 00:02:59
死んでるのはRubyPythonでしょw
誰がこんなのインストールしてるの?ww
516デフォルトの名無しさん:2010/12/28(火) 00:04:39
そういや、アイロンなんとかって、まだ生きてるの?
517デフォルトの名無しさん:2010/12/28(火) 00:11:00
Silverlight一応PCに入ってるけど入ってないと見れなくて困るコンテンツって今のところまだやー、ごめんなー
518デフォルトの名無しさん:2010/12/28(火) 00:14:32
>>495
>なのかコピペしてるとわからなくなることは確かにある
>でも俺は end や fi を毎回書くぐらいなら稀にコピペミスするほうを選ぶ

オレは逆。
今までPythonのインデント強制方式は便利だと思ってたけど、
コピペ時にミスるだけでなく、エディタでのインデント自動修正が
できないから、endや}を毎回書くほうを好むようになった。
あとPythonはコード生成系に弱い。eRubyみたいなのがさくっと実装できない。
519デフォルトの名無しさん:2010/12/28(火) 00:55:36
520デフォルトの名無しさん:2010/12/28(火) 01:08:09
一行でWebBrowser作れますか?
521デフォルトの名無しさん:2010/12/28(火) 04:14:11
何気にMacにとってSilverlightは神アプリだぞ
あれのお陰でそれまでIE専用サイトだったとこがいくつか観れるようになった
522Perl忍者 ◆M5ZWRnXOj6 :2010/12/28(火) 08:52:07
動画バカは死ねよ
カスなんだよお前は

Mac使ってる時点でゲロクズゴミ^^;
ゲロクズゴミ521ちゃんは死んでね^^;
523デフォルトの名無しさん:2010/12/28(火) 09:51:18
>>506
バカはドキュメントを読まない
524デフォルトの名無しさん:2010/12/28(火) 09:53:33
>>509
py2exe

>>513
サーバアプリケーションとクライアントアプリケーションの区別くらいつけてから書け
525デフォルトの名無しさん:2010/12/28(火) 10:19:44
最近の Silverlight はローカルでスタンドアロン動作するアプリ開発にも使えたような
526デフォルトの名無しさん:2010/12/28(火) 11:16:36
>>525
Silverlightがクライアントサイドっていってるんだろ
527デフォルトの名無しさん:2010/12/28(火) 13:27:37
DMMのサンプルアダルト動画がSilverlightだから仕方なく入れてる
528デフォルトの名無しさん:2010/12/28(火) 14:20:04
能書きよりも現実に作れるってすばらしいね
http://hirata-create.lar.jp/
529デフォルトの名無しさん:2010/12/28(火) 14:28:08
え?
530デフォルトの名無しさん:2010/12/28(火) 14:55:14
バカ発見w>>526
531デフォルトの名無しさん:2010/12/28(火) 15:04:56
あれってFlashみたいなもんじゃないのか?
532Perl忍者 ◆M5ZWRnXOj6 :2010/12/28(火) 19:30:19
バカマカほどSilverlightなどに必死^^;
DRM動画が見れないかわいそうなごみくずども

マックとかわらわせないでくれるかね?
早く死んじまえよゴミクズ野郎がw
533デフォルトの名無しさん:2010/12/28(火) 19:49:57
↑お前とセックスしたい
534Perl忍者 ◆M5ZWRnXOj6 :2010/12/28(火) 21:13:31
DRM Macとか検索必死にしてるゴミクズばかりだろうねwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwww
おれはxxサイトの欠陥しってるからwwwwwwww

知りたかったら教えてやるよwwwwwwwwwwwww
535デフォルトの名無しさん:2010/12/29(水) 00:30:18
DRM重視の所はSilverLightが多いでしょ。GyaoとかYahooニュースとか。
536デフォルトの名無しさん:2010/12/29(水) 00:33:53
あと、Flashと違って、Mac版のSilverlightも高性能で良くできてるんだよな。
Mac版のFlashはWindows版と比べて性能が相当落ちるんで、Appleが怒るのも分からないではない。
537デフォルトの名無しさん:2010/12/29(水) 00:51:44
結論

SLとWPFのコンビニ勝てる言語は無い
他は全部糞
538デフォルトの名無しさん:2010/12/29(水) 01:52:21
セブンイレブン最強他は糞
539デフォルトの名無しさん:2010/12/29(水) 02:19:24
で、silverlightはクライアント側で動くの?サーバ側で動くの?
540デフォルトの名無しさん:2010/12/29(水) 02:27:34
          ハ,,ハ
   _    ( ゚ω゚ ) 
  ◎ー)   /    \
   |  |  (⌒) (⌒二 ) ブッ!ブバァァ!!ビチビチィィ!!
   ~~~  /⌒ヽ( ̄、 ヽ プシャァァ!!ブチャブチャァァ!!!
      /    Lヽ \ノ ゲリゲリー!!ブリュッブリュブリュゥゥ!!!
      ゙ー―――(__)
541デフォルトの名無しさん:2010/12/29(水) 02:44:30
SilverlightやFlashやWPFやウンコの話はどうでもいいから、LLの話をしないか?
542デフォルトの名無しさん:2010/12/29(水) 03:38:26
ってか,SilverlightやFlashやWPFは,ここで比較するような言語なのか?

延々と終わらないLL論争で,一通り触ってみて文法を覚えるだけ覚えて,
思い返すば,どれもほとんど記憶に残っていないし,
どれにでも地雷があった気がしたので,その都度,リファレンスを見ながら,
boostの使い方でも覚えた方が便利だろうなとか思っている
543デフォルトの名無しさん:2010/12/29(水) 03:50:05
言語というのは覚えるためにやるんじゃなくて、「こういうソフトを作る必要がある」という状況になってから
やったほうがはるかに簡単に身に付く。作りながら、覚えながら作るという感じ。
544デフォルトの名無しさん:2010/12/29(水) 04:01:21
          ハ,,ハ
   _    ( ゚ω゚ ) 
  ◎ー)   /    \
   |  |  (⌒) (⌒二 ) ブッ!ブバァァ!!ビチビチィィ!!
   ~~~  /⌒ヽ( ̄、 ヽ プシャァァ!!ブチャブチャァァ!!!
      /    Lヽ \ノ ゲリゲリー!!ブリュッブリュブリュゥゥ!!!
      ゙ー―――(__)
545デフォルトの名無しさん:2010/12/29(水) 05:40:59
LLのGUIツールキットがイマイチで、じゃあ手軽に作れるGUIアプリの開発言語は何だろう?って、それがFlashだったりSilverlightだったりって流れだろ。
546デフォルトの名無しさん:2010/12/29(水) 05:46:59
いや待て待て、Flashは言語ではないし(言語としてはActionScript)
Silverlightだって言語じゃない(言語としてはJSやVBやC#などになる)
547デフォルトの名無しさん:2010/12/29(水) 05:48:22
手軽にGUIアプリを作れるLLがあってもいいが、手軽にGUIアプリを作れるから
といって、それをLLと呼ぶのは間違いじゃね?
548デフォルトの名無しさん:2010/12/29(水) 07:27:07
Tcl/Tkの頃から、進化どころか退化してる部分だからなぁ
549デフォルトの名無しさん:2010/12/29(水) 07:34:56
じゃあ誰か進化させてくれ
550デフォルトの名無しさん:2010/12/29(水) 07:47:47
そこでSilverlight
551デフォルトの名無しさん:2010/12/29(水) 10:58:21
ブランドや標準化で解決する問題ではない。
552デフォルトの名無しさん:2010/12/31(金) 18:36:50
2010年6月調査

○OSシェア
  Windows XP : 52.02%
 Windows Vista : 27.64%
 Windows 7 : 10.73%
  MacOS : 4.72%
 Windows 2000 : 0.97%
 iPhone : 0.97%
 Windows ME : 0.40%
 Windows 98 : 0.21%
Android : 0.15%
 Linux : 0.11%
  Windows Server 2003 : 0.09%
 不明 : 0.69%
 その他 : 1.30%

Rubyなんて使ってるバカってなんなの?
WPF+SL+JSで十分だろw
553Perl忍者 ◆M5ZWRnXOj6 :2010/12/31(金) 23:36:44
あっそっすか
554デフォルトの名無しさん:2011/01/01(土) 01:20:49
Rubyはバカには使いこなせないw
555デフォルトの名無しさん:2011/01/01(土) 01:36:07
使いこなす必要が無い
556デフォルトの名無しさん:2011/01/01(土) 02:43:57
そして脳ミソが退化
557デフォルトの名無しさん:2011/01/01(土) 04:15:12
>>552
調査の母集合くわしく
558デフォルトの名無しさん:2011/01/01(土) 05:03:06
>>552
ソース元
559デフォルトの名無しさん:2011/01/01(土) 08:18:51
脳内じゃね?
560デフォルトの名無しさん:2011/01/02(日) 12:21:54
Silverlightはおわコン。
MSNですらFlashのオンパレード、誰かyahoo動画ニュース見る為にSilverlight入れた?
561デフォルトの名無しさん:2011/01/03(月) 00:46:03
多分ウェブでUAを元にしたシェアだろうな。だいたいどこの調査でもそんなもんだからな。
けど、企業だと、ネットにつながってないPCとか、プロキシ経由のPCもあるだろうから、実際はもっとWindowsが多いだろうな。
562デフォルトの名無しさん:2011/01/03(月) 06:09:04
>>560
Gyao観るためにSilverlight入れたMac使いは結構いるんじゃね
563デフォルトの名無しさん:2011/01/03(月) 14:30:52
全世界で70%、日本限定で80%だな。
さらに、日本、MacOSXで絞り込むと、85%まで上がる。
Yahooやギャオの影響だろうな。
http://riastats.com/
564Perl忍者 ◆M5ZWRnXOj6 :2011/01/03(月) 14:58:01
クソマカはさっさとしねってこと

Mac使いは死ね

クソマカはゴミしかいねえな
ペンギンやマイトガイとか瑪瑙とか狂ってるゴミばかっかりだな
565デフォルトの名無しさん:2011/01/04(火) 15:58:13
Ruby終わりの始まり
566デフォルトの名無しさん:2011/01/04(火) 20:01:40
DebianのRubyパッケージ管理者、Ruby開発コミュニティに不満を持ち辞任
http://slashdot.jp/developers/article.pl?sid=11/01/04/0457204
567デフォルトの名無しさん:2011/01/04(火) 20:07:02
P言語の時代だからな。R言語と言うと別にあるし、Rubyより有用だし
568Perl忍者 ◆M5ZWRnXOj6 :2011/01/04(火) 20:57:29
#

コメントを書く

#
もうぜんぶrubyでいいじゃん (スコア:1)
ksiroi (24990) : 2011年01月04日 16時41分 (#1883309) 日記

日本が誇る某大企業がC言語を社内共通語にしたんだしさ。
全員rubyで会話すれば万事解決すんじゃないの?

// redmine動かしてみてrubyは無理っつかなんか嫌だと感じた
// やれといわれりゃやるけどあれで開発とか無理。まだPHPのほうがいいや(:>^
569Perl忍者 ◆M5ZWRnXOj6 :2011/01/04(火) 20:58:46
スレってつぶすことできますか?
課金すればできますか?教えてください><
570デフォルトの名無しさん:2011/01/04(火) 21:02:33
□に入る漢字を答えよ

 思うに、Lucasさんがもう辞めたと宣言した理由は6が大きそうです。ボランティア
でやっているのに、口さがなく文句を言うヤツが多くてウンザリした、というのが一
番大きいのではないでしょうか。これについては、まつもとさんも、
571デフォルトの名無しさん:2011/01/04(火) 21:18:35
太さ
572Perl忍者 ◆M5ZWRnXOj6 :2011/01/04(火) 21:31:03
こいつが中国人だったらぼろくそたたかれてるなかわいそう
573Perl忍者 ◆M5ZWRnXOj6 :2011/01/04(火) 21:40:21
6、Rubyコミュニティの何人かはクソのような振る舞いをやめろwww
6、Rubyコミュニティの何人かはクソのような振る舞いをやめろwww
6、Rubyコミュニティの何人かはクソのような振る舞いをやめろwww
6、Rubyコミュニティの何人かはクソのような振る舞いをやめろwww
6、Rubyコミュニティの何人かはクソのような振る舞いをやめろwww
6、Rubyコミュニティの何人かはクソのような振る舞いをやめろwww
6、Rubyコミュニティの何人かはクソのような振る舞いをやめろwww

574デフォルトの名無しさん:2011/01/05(水) 00:47:37
Rubyのパッケージって、OS標準のパッケージには不要なんじゃない?
PerlとかPythonはシステムツールで必須な場合多いだろうけど、Rubyなくてもかまわんでしょう。
Gemsに任せて、使いたい人だけ勝手に使えば良いんじゃないかな。
575デフォルトの名無しさん:2011/01/05(水) 03:40:15
>>560
台湾のSilverlightのサイト見るためにSilverlightいれたわ
576デフォルトの名無しさん:2011/01/05(水) 10:45:53
「クソのような振る舞いをやめろ」

俺、たとえばたまにmhattaが他所のコミュニティの内情も知らずに口はさんできたりとか、
Debianな人間にこそそれ言いたいとか思うことあるけどな。
577Perl忍者 ◇M5ZWRnXOj6:2011/01/05(水) 22:28:16
皆さん調子に乗ってすみませんでした。
578Perl忍者 ◆M5ZWRnXOj6 :2011/01/06(木) 00:12:54
偽乙
579Perl忍者 ◇M5ZWRnXOj6:2011/01/06(木) 00:34:22
Perl最強だぜ!
580デフォルトの名無しさん:2011/01/06(木) 00:37:29
C++にはかなうまい
581デフォルトの名無しさん:2011/01/06(木) 00:58:01
がはは
582Perl忍者 ◆M5ZWRnXOj6 :2011/01/06(木) 16:21:24
シュッシュシュ パネーッス!!ハイハイ!!
583Perl忍者 ◆M5ZWRnXOj6 :2011/01/06(木) 16:38:27
gfx様マンセーーーーーーー!!!!!!!!!!!!!!!!!!!!

gfx様は庶民派なのでかっこいいです

gfx様
584デフォルトの名無しさん:2011/01/06(木) 21:01:21
キモ
585Perl忍者 ◆M5ZWRnXOj6 :2011/01/06(木) 21:07:17
誰だい?gtx様を


「キモ」

といった子はぁ〜!!ほらほらほらほら!!
出てこないとぶっ潰しますよぉ
586tokuhirom:2011/01/06(木) 21:09:11
俺だけど文句ある?
587デフォルトの名無しさん:2011/01/06(木) 22:28:28
Silverlight
588デフォルトの名無しさん:2011/01/07(金) 04:32:56
pythonはguidoが突然の事故で死んでも大丈夫だみたいな話があったけど
rubyはmatzが死んだら共倒れぽいな
589デフォルトの名無しさん:2011/01/07(金) 09:45:09
ある意味、そこからが始まりのような気もするw
一番の仕様いじりたがり君が居なくなるからな
590デフォルトの名無しさん:2011/01/07(金) 14:23:32
Dave Thomasが
「matzが急にいなくなってもまあ大丈夫なんじゃね?」
的なコメントを残していたような
といっても言語仕様のストッパーがいなくなるから、中長期的には……
591デフォルトの名無しさん:2011/01/07(金) 14:35:11
Python には明文化された大量の PEP や Zen of Python がある
けど Ruby にはそれがない
言語の生みの親に何かあった場合のダメージは Ruby のほうが大きいだろう

とはいえそこまで両言語が残ってるかも怪しい
592デフォルトの名無しさん:2011/01/07(金) 14:51:11
>>590
逆だと思う、matzがいじりたがりで、周りがストッパー
593デフォルトの名無しさん:2011/01/07(金) 15:05:31
>>592
最近は自重気味だから問題ない
それよりも、言語設計の最終的な決定者ということで
有象無象の要求を弾き続ける作業が大事
594デフォルトの名無しさん:2011/01/07(金) 19:20:55
数多の要求を跳ね除けた上で特定の気に入った仕様を推すから我侭支配者のように映るだけで
本当は仕様決定者としての仕事はわりとしてる

仮にまつもとゆきひろが居なくなった場合、
次のバージョンのRubyはエキサイティングになり、
その次のバージョンのRubyはカスになり、
その翌年にはRubyが3つに分裂するだろう
595デフォルトの名無しさん:2011/01/07(金) 21:44:53
Matzが世を去ったらRubyはforkだらけになるだろうな
596デフォルトの名無しさん:2011/01/07(金) 23:15:05
マネージメントほうめんがよろしくないんじゃないかと
リリースマネージャっぽい人の悲鳴をみるに
権限をあやふやにしたまま仕事まかせてるような
597デフォルトの名無しさん:2011/01/08(土) 02:15:50
yuguiさんの悲鳴か
598デフォルトの名無しさん:2011/01/08(土) 07:24:30
今もRuby1.8とRuby1.9とtrunkにforkしとるだろうが
プラットフォームによっては1.6や1.9.0もforkしたままだしなんとかしろやと

IronRubyは死んだ。JRubyはもはや虫の息。Ruby Enterprise Editionは役目を終えようとしている。
macrubyは空気、Rubiniusってなんだっけ?
むしろ収束してきたのでは
599デフォルトの名無しさん:2011/01/08(土) 07:43:01
えー JRuby も虫の息なの?
趣味で iText 使おうと Jython を調べてたらどうも虫の息っぽいから
JRuby でも始めようかと思ってたのに(PragProg から JRuby の新刊出るし)
おとなしく Java か Scala にしとくか

にしても Ruby 本スレかと
600デフォルトの名無しさん:2011/01/08(土) 08:23:19
1.9.0はタグだけでブランチは存在しないが
601デフォルトの名無しさん:2011/01/08(土) 08:32:50
>>600
Debian -- lenny の ruby1.9 パッケージに関する詳細
http://packages.debian.org/lenny/ruby1.9
602デフォルトの名無しさん:2011/01/08(土) 09:11:42
jrubyは全然活発だろ
603デフォルトの名無しさん:2011/01/08(土) 09:31:56
ディス鳥が勝手に作ったブランチまで、本家の責任にされるのかよ
やってらんねーなw
604デフォルトの名無しさん:2011/01/08(土) 12:31:44
IronPythonも微妙じゃね
605デフォルトの名無しさん:2011/01/08(土) 14:26:39
Ironはどっちも微妙、JはPythonが微妙、MacはPythonにはそもそもない
Rubyの圧勝じゃないか
606デフォルトの名無しさん:2011/01/08(土) 14:30:05
607デフォルトの名無しさん:2011/01/08(土) 14:41:06
Jythonは一時期微妙だったけど今は普通に開発されてるよ。
Iron系も問題ない
608デフォルトの名無しさん:2011/01/08(土) 14:42:09
警告
これらのモジュールは撤廃され 3.0 では無くなります。


あるけど、終わコンってこと?
609デフォルトの名無しさん:2011/01/08(土) 15:17:53
Jythonっていま2.5.2rc2とかなんだ
JythonにしろIronPythonにしろ、3系をベースにしたほうが文字列のセマンティクスが
近くてよさそうに思えるけどな
CPythonほど2.xの過去のコードベースとの互換性とか重要じゃないだろうし…
そうでもないのかね?
610デフォルトの名無しさん:2011/01/08(土) 21:03:03
RubyはJRubyもMacRubyもちゃんと最新の1.9系をベースに開発されてるな
Ruby圧勝だな
611Perl忍者 ◆M5ZWRnXOj6 :2011/01/08(土) 21:45:02
誰と戦ってんですか?
612デフォルトの名無しさん:2011/01/08(土) 21:58:11
きっとぱーるぬんじゃと。
613Perl忍者 ◆M5ZWRnXOj6 :2011/01/08(土) 21:58:32
610 :デフォルトの名無しさん:2011/01/08(土) 21:03:03
RubyはJRubyもMacRubyもちゃんと最新の1.9系をベースに開発されてるな
Ruby圧勝だな


誰と戦ってるかいえよこら
614デフォルトの名無しさん:2011/01/08(土) 23:56:12
Perl忍者をスルーしないのはこのスレぐらいだ
いいスレを見つけたな
615デフォルトの名無しさん:2011/01/08(土) 23:59:16
パール忍者はNGNameに突っ込んでたはずなのにまた出てきた。トリップ変えたのか?
616デフォルトの名無しさん:2011/01/09(日) 00:04:58
>>615
うちもそうなった。全角半角の違いとかじゃない?
フォントに IPAMonaPGotihic Book 使ってるけど違いがわかりにくいのが難点
617Perl姫:2011/01/09(日) 00:07:16
誰もいないのー?><????????????
ひどすぎw
私5時まで勉強机いくから笑
おわってるwwwwwwwwwwwwwwww
たすけてw
さいあく
そういえば最初夕方だったねwいたのw
平日昼にいたときもあったよね?ここのスレw
にゃ〜;o;
しにたいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい
いいいいいいいいいいいいいいい
12時w
お風呂はいって課題やって5時まで寝るね^^
618デフォルトの名無しさん:2011/01/09(日) 00:10:08
います
おいくつですか?
619Perl姫:2011/01/09(日) 00:11:28
おしえたくない
もう嫌い><
620デフォルトの名無しさん:2011/01/09(日) 00:51:34
パンティ何色ですか?
621Perl姫:2011/01/09(日) 00:52:21
死ね色><
622デフォルトの名無しさん:2011/01/09(日) 17:27:13
>>611
おまえがいうな
623デフォルトの名無しさん:2011/01/11(火) 23:16:14
OSが1つしかないなら、窓ではvba,*nixならpythonに絞るんだけれど、
今はブラウザの時代だろうから、javascriptが全盛期.
異論は受け付けない.とか思うが、全く触ったことがない.
javascriptって端末からのバッチ処理できたっけ?
P言語や関数型はweb上のチュートリアルが充実してるのに、
javascriptの入門って、便所紙みたいなのしか出てこない
624デフォルトの名無しさん:2011/01/11(火) 23:18:35
なんでブラウザの時代だとjavascriptになるんだよアホか
625デフォルトの名無しさん:2011/01/11(火) 23:29:27
ブラウザ上で動くものを作るのに、perlやpythonで似たようなことできるの?
出来ても処理系を入れたり、フレームワーク入れたり
なにかと手間が掛かりそうなんだけど
626Perl忍者 ◆M5ZWRnXOj6 :2011/01/11(火) 23:38:36
バカの一つ覚えみたいにクラウドとかブラウザとかわめいてるごみですかあなたは?
627デフォルトの名無しさん:2011/01/11(火) 23:39:33
0から説明しないといけないのだろうか
何も知らないで異論は受け付けないって何だよ
628Perl忍者 ◆M5ZWRnXOj6 :2011/01/11(火) 23:40:03
コテくらいつけろやゴミクズ
629Perl忍者 ◆M5ZWRnXOj6 :2011/01/11(火) 23:41:23
今の時代とか(大笑


時代語ってるやつがごみすぎてわらえる

予測できんの?ってかんじ
630デフォルトの名無しさん:2011/01/11(火) 23:42:01
んなの煽って教えてもらう戦法に決まってるだろ
631デフォルトの名無しさん:2011/01/11(火) 23:45:18
一つしかないTCPを複数の高級言語で情報隠蔽する時代
教えるよりも隠す時代
632デフォルトの名無しさん:2011/01/12(水) 00:19:10
GNOME 3.0からデフォで入るはずの
ローカルアプリのgnome-shellですらjavascriptで書かれてるお
ブラウザ上もローカルも、LLはjavascriptの一人勝ちだお(^ω^)
perlなんて、宗教みたいなguileでも弄ってる方がマシなレベル
633デフォルトの名無しさん:2011/01/12(水) 00:25:21
linuxにどんだけpythonが使われてると思ってんだよ
javascriptとか仕方なく嫌々ながら使われる言語の代表格じゃん。LLとして論外
634デフォルトの名無しさん:2011/01/12(水) 00:28:32
一歩間違えたらTclが使われてたんだろうな
HTTPだかHTMLの仕様書読んでいて思ったことがある
635デフォルトの名無しさん:2011/01/12(水) 01:28:44
pythonが負の遺産になるかはたまたshかtcshかbashになるか
636デフォルトの名無しさん:2011/01/12(水) 01:37:36
pythonなんて、未来では「ほげ」言語に置き換わってるよ
負の遺産が怖いなら、Cで書くよろし
637デフォルトの名無しさん:2011/01/12(水) 03:03:36
JavaScriptは組み込みオブジェクトが処理系によって違いすぎる。
ブラウザ用言語としては昔より標準化されてきてるが、
デスクトップウィジェットやらの、非ブラウザ用途は悲惨。
638デフォルトの名無しさん:2011/01/12(水) 03:35:05
639デフォルトの名無しさん:2011/01/12(水) 04:56:14
JavaSriptってなんでECMAScript4準拠が立ち消えになったんだろう。
バッドノウハウの固まりみたいな現状で、デスクトップアプリ並の大規模開発強いるのは。
640デフォルトの名無しさん:2011/01/12(水) 08:57:42
>>639
誰も強いてないのに、JavaScripterが適材適所を無視してどこでもJS使いたがるだけだろ。
641デフォルトの名無しさん:2011/01/12(水) 09:07:47
サーバーサイドはどうなの?最近よく話題にのぼるnode.jsとか
642デフォルトの名無しさん:2011/01/14(金) 03:39:02
JSは標準化が進まないのが難点だな、言語としては意外なほどよく出来てるが
643デフォルトの名無しさん:2011/01/14(金) 03:47:22
すれ違い
644デフォルトの名無しさん:2011/01/14(金) 05:29:58
スレ違いか?充分LLの範疇に入る言語だと思うが
645デフォルトの名無しさん:2011/01/14(金) 06:08:10
JSってローカルなリソースにアクセスできるんだっけ?
646デフォルトの名無しさん:2011/01/14(金) 06:11:28
JS標準規格としてそれをやるライブラリは存在しないが
例えばWSH上のJScriptはFileSystemObjectでローカルファイルへのアクセス出来るぞ
647デフォルトの名無しさん:2011/01/14(金) 06:54:51
それって悪用されると危ないよね
648デフォルトの名無しさん:2011/01/14(金) 07:05:01
MSって馬鹿なの?
649デフォルトの名無しさん:2011/01/14(金) 09:26:59
CommonJSでできるんじゃね
650デフォルトの名無しさん:2011/01/14(金) 09:32:12
ブラウザの組込みじゃなくて、ローカルで動く処理系ならどれだってそういう機能あるだろ。
651デフォルトの名無しさん:2011/01/14(金) 09:35:43
>>647
WSHのスクリプトをうっかり動かすおバカさんは、exeファイルをうっかり動かすおバカさんだから、問題ない。
652デフォルトの名無しさん:2011/01/14(金) 09:48:26
ダブルクリックしないと実行されないと思い込んでたら
いつのまにかシングルクリックでも実行されるのがデフォルトになってて
意図しないで起動されてびっくりしたことがあるのだが
もうずいぶん前の話だったりする
653デフォルトの名無しさん:2011/01/14(金) 10:02:22
MSって馬鹿だよね
654デフォルトの名無しさん:2011/01/14(金) 10:56:42
Flashとかでもそうだけど型があいまいすぎる言語は嫌いだ
そういう意味ではJavaScriptも嫌い

あんなんでよく開発とかやってられるな・・・・
怖くて絶対使いたくねぇよ
655デフォルトの名無しさん:2011/01/14(金) 11:36:45
そのへん、LLはどれも似たようなもんじゃないかね。
LL以外で言うと、ANSI Cあたりはギリギリセーフぐらいか?
656デフォルトの名無しさん:2011/01/14(金) 12:07:59
C++でいうと、templateのダックタイピングはギリギリアウト
657デフォルトの名無しさん:2011/01/14(金) 13:19:53
>>650
そりゃそうだよ
ただ >>645 はJSにはブラウザ実装しか存在しないと思い込んでそうだったし
658仕様書無しさん:2011/01/14(金) 13:37:58
node.jsには誰も触れれない低脳っぷり
659デフォルトの名無しさん:2011/01/14(金) 13:45:51
JSをありがたがってるのは低能だけだろ
660デフォルトの名無しさん:2011/01/14(金) 13:54:14
amachangとかな
661ひみつの検疫さん:2025/01/15(水) 13:05:42 ID:MarkedRes
汚染を除去しました。
662デフォルトの名無しさん:2011/01/14(金) 14:05:04
ウイルスコード
663デフォルトの名無しさん:2011/01/14(金) 14:21:12
個人的にはコルーチン・継続ベースでない非同期プログラミングは鬱陶しいので
あまりしたくないなあ

libevent+コルーチンベースの
Pythonのgeventでechoサーバもどきを書いてみたよ
(ただしcat -nのように、行番号を各行に付加して返す)
非同期でありながら、同期と見た目は全く同じように書けるのがわかると思う

node.jsだとどういうコードになる?

def cat_n(src, sink):
    for n, line in enumerate(src):
        sink.write('%06d %s' % (n + 1, line))

def service(sock, address):
    with closing(sock.makefile()) as src:
        with closing(sock.makefile('w', bufsize=0)) as sink:
            cat_n(src, sink)

StreamServer(('127.0.0.1', 12345), service).serve_forever()
664デフォルトの名無しさん:2011/01/14(金) 15:08:44
ActionScriptは型指定出来る。
665デフォルトの名無しさん:2011/01/14(金) 15:41:43
>>662
>>661 が投稿されてからセキュリティソフトが反応して
なんかのファイルを隔離しましたって出た
その後うちの専ブラがログが見つからないと言ってエラー吐いて死ぬようになった
666662:2011/01/14(金) 15:45:34
こっちはMSEが反応して除去しただけで特に問題はないけど
667デフォルトの名無しさん:2011/01/14(金) 20:22:39
>>655
それでもPerl6なら・・・Perl6ならきっとなんとかしてくれる・・・
668デフォルトの名無しさん:2011/01/14(金) 21:26:52
PHP6もね
669デフォルトの名無しさん:2011/01/14(金) 22:34:42
>>654
型が重要といえば、HaskellとかOCamlか
書捨て用途のLLで、アプリケーション書くとかナンセンスだよな
逆に使い捨てのスクリプトで型書けとか言われても面倒だけど
型にvarを入れたC#は素晴らしいと思う
670デフォルトの名無しさん:2011/01/14(金) 23:21:23
よく使われるコードはよくテストされるから型は不要
型が必要なのは、極めて稀なケースしか出番がないコード
671デフォルトの名無しさん:2011/01/14(金) 23:26:21
>>654は動的型を嫌がっているのか型付けが弱いのを嫌がっているのか分かりにくい

静的型で型付けが強いのがほしいんなら関数型とかしかないな
(ただしJVM系はだめ)
Javaも.NETも参照型に全部無節操にnullをつっこめるし
Cなんかvoid*だのunionだの何でもありで、それらを使った場合の型安全性は
動的型で型付けの強い言語にも劣る
672デフォルトの名無しさん:2011/01/14(金) 23:28:07
そんなもん関数型のは過剰とも取れる。
673デフォルトの名無しさん:2011/01/14(金) 23:38:54
>>672
俺は別に静的型信者じゃないけど
信者からすれば過剰じゃないんだろう

Javaや.NETの参照型は本質的に全部nullableだから、本来常にnullチェックによる
条件分岐が要る
関数f()の戻り値がnullではないことが分かっているならf()の戻り値の
nullチェックを省いてもいいけど、それを型システムの上で示す方法が無いし
Maybeモナドのようにそうした汚い仕事をうまく抽象化する仕掛けも無い
674デフォルトの名無しさん:2011/01/15(土) 00:13:20
>>658
CommonJSなら触れられてるじゃないか
675デフォルトの名無しさん:2011/01/15(土) 01:29:16
Javaにはポインタは無いのに
NullPointerExceptionが多発するのはなぜでしょう?
676デフォルトの名無しさん:2011/01/15(土) 01:30:38
ポインタがないというか
677デフォルトの名無しさん:2011/01/15(土) 02:23:07
クライアントで使うGUIアプリで型指定出来ないというのは、実行速度だとかメモリ使用量だとかで厳しいと思う。
678デフォルトの名無しさん:2011/01/15(土) 11:30:53
上流で書く仕様書は実行出来ないだろ
実行出来ないというのは、速度とかメモリとかで論外だと思う
でも最初にそういうのを作っておくことには意味がある
679デフォルトの名無しさん:2011/01/15(土) 15:34:44
意味が分からん。
680デフォルトの名無しさん:2011/01/15(土) 17:34:24
gobaku
681デフォルトの名無しさん:2011/01/15(土) 19:00:40
LLでアプリを作るやつと
それを参考に高速化するやつで分業すればいい
高速化に成功したら
LLを参考にしたおかげで成功したことにする
682デフォルトの名無しさん:2011/01/15(土) 19:55:33
まあ、高速化(笑)なんて底辺派遣プログラマーにやらせりゃいい話だからな。

クリエイティブな活動はLLを使ったほうが効率いい。
683デフォルトの名無しさん:2011/01/15(土) 20:47:48
LLよかもboostつかった方がお手軽だと信じている
684デフォルトの名無しさん:2011/01/15(土) 21:48:45
どっかに言語ユーザー毎にOSとライブラリ、使用するツール、
作成したプログラムの相関を表したグラフが載ったサイトとかないかな
685デフォルトの名無しさん:2011/01/15(土) 23:03:03
JSのウェブアプリをネイティブ並みに高速にチューニング出来るなら、Googleからスカウトが来るでしょうね。
686デフォルトの名無しさん:2011/01/15(土) 23:06:26
Googleに入ったらGoogle以上のものは作れないから。
結果的に失敗して野垂れ死にしたら、そこまでの人だったとして諦めるしかない
687デフォルトの名無しさん:2011/01/16(日) 10:25:52
>>685
ネイティブ並みじゃなくてネイティブで書き直していいよ
それでもJSが本家でネイティブは分家という扱いは変わらないけど
688デフォルトの名無しさん:2011/01/16(日) 10:56:54
JSをネイティブで書き直してどうすんだ
ブラウザで動かなきゃ意味ないだろうに……

google native clientのことか?
689デフォルトの名無しさん:2011/01/16(日) 11:07:42
専用ブラウザ
690デフォルトの名無しさん:2011/01/16(日) 20:11:38
>>688
JavaのJITみたいなやり方にすればブラウザで動くじょ
691デフォルトの名無しさん:2011/01/17(月) 18:15:12
>>663
マタPython信者ノPython自慢ガハジマタヨ
ダレカ対戦シテアゲテ!
692デフォルトの名無しさん:2011/01/17(月) 18:21:37
スクリプト言語による効率的ゲーム開発 新訂版
http://www.amazon.co.jp/gp/product/4797361662

どうなのこれ
693デフォルトの名無しさん:2011/01/17(月) 19:49:41
そのまま使うには厳しいんじゃない?だから、GWTみたいなのがあるんだろう。
694デフォルトの名無しさん:2011/01/17(月) 21:14:18
C++が厳しいという意味ではJavaが正解
Java以外に何かあるとするなら、そもそもOOPが間違いだという前提でないと無理
695デフォルトの名無しさん:2011/01/17(月) 21:58:04
誰かGUIライブラリバトルロワイヤルスレでも立ててくれよ
gtkとQt,wxwidgetなんかのうちで、どれを使い込もうか踏ん切りつかないんだ
696デフォルトの名無しさん:2011/01/17(月) 21:59:42
>>695
その3つを挙げているなら、多少なりとも自分で調べたんだろ?
その結果を書いてみたら、議論のきっかけになるかもよ。
697デフォルトの名無しさん:2011/01/17(月) 22:30:16
698デフォルトの名無しさん:2011/01/17(月) 22:35:30
>>695
よし、漏れと一緒にQtやろうぜ
http://www.qtrac.eu/marksummerfield.html

クリップボードのテキストを表示するプログラムのmakeがようやく通って
キャッキャしてる程度だけどよろしくね
699デフォルトの名無しさん:2011/01/18(火) 00:19:34
よろしくね
700デフォルトの名無しさん:2011/01/18(火) 09:05:54
>>698
冗談でなしにHDDがぶっ壊れて、Xfaceの偉大さに気付いた。
人間の真価はいざというときにこそ問われるものだとすれば、
CDからブートしたときに入ってる率が高いLL、
perlとpythonをこそが全てに違いない
701デフォルトの名無しさん:2011/01/21(金) 01:29:07
ブラウザはCLRでもJVMでLLVMでもなんでもいいからそんな感じの実行環境のせて
それ向けのバイトコード吐く言語ならどの言語でも開発可能みたいな方向にはならんのかな
ブラウザ戦争でJavaScriptがまたこんだけ高速化したよみたいなニュース読むたびになんだかなぁって気持ちになる
702デフォルトの名無しさん:2011/01/21(金) 02:31:38
JavaScriptは名前にJavaがついてるのはなぜ?
703デフォルトの名無しさん:2011/01/21(金) 02:50:32
1995 ? ブレンダン・アイクがプログラミング言語設計においてかつて犯されたあらゆる誤りを取り上げ、
さらにいくつかの誤りを新たに考案し、LiveScriptを作る。後にこの言語はJavaの人気にあやかるため
JavaScriptと改名された。さらにこの言語は皮膚病の人気にあやかるためECMAScriptと改名された。
704デフォルトの名無しさん:2011/01/21(金) 03:12:27
ブラウザ上でJavaScriptにトランスレートして実行するぜってのはいくつかあるよな。
BiwaSchemeとか。CoffeeScriptって言語も一応そういう実行方法が用意されてた。

実行効率はどうか知らんが。
705デフォルトの名無しさん:2011/01/21(金) 19:32:09
よろしく
706デフォルトの名無しさん:2011/01/21(金) 20:43:16
iPadみたいなタブレットPCって、ダイナブックの構想のまんまなのに
タブレットPCでSmalltalkが大々的に復活したりしないのかな
707デフォルトの名無しさん:2011/01/21(金) 21:19:11
“あらゆる年齢の「子供たち」のためのパーソナルコンピュータ” ― アラン・ケイ (1972)
http://swikis.ddo.jp/abee/74

これを読むと、もはや暫定レベルかつ不完全ながらもダイナブックのためのすべては揃っている
(というよりGUIやメッセージングのOOなど、もはや我々は「発明」された未来のうちにいて久しい)
わけだから、あとはジョブズのように金儲けのために手っ取り早く暫定ダイナブック(≒Smalltalk)の
表層をまねて切り売りしているような人たちに都合の良いミスリードに惑わされないことも含め、
もう使う側の意識の問題だけなのではないでしょうかね。
708デフォルトの名無しさん:2011/01/22(土) 01:50:20
通報しました
709デフォルトの名無しさん:2011/01/22(土) 07:25:40
>>707
>これを読むと、もはや暫定レベルかつ不完全ながらもダイナブックのためのすべては揃っている
>(というよりGUIやメッセージングのOOなど、もはや我々は「発明」された未来のうちにいて久しい)
>わけだから、あとはジョブズのように金儲けのために手っ取り早く暫定ダイナブック(≒Smalltalk)の
>表層をまねて切り売りしているような人たちに都合の良いミスリードに惑わされないことも含め、
>もう使う側の意識の問題だけなのではないでしょうかね。

一文が長杉
マジレス寒杉
710デフォルトの名無しさん:2011/01/22(土) 12:12:30
>>706,707
一言で言って、「このスレでSmalltalkの話題はスレ違いだ」

Smalltalkとは単なる言語処理系ではなく、エディタ/ブラウザ/インスペクタ/デバッガ等を含む
統合化開発環境だ。Light-weight Languageではない。

Smalltalkの話題であればこの板のSmalltalkスレへ、iPadであれば新Mac板へ逝け!!
711710:2011/01/22(土) 12:22:13
>>706,707はスレ違いではあるが、誤った情報が含まれているので、そこだけ指摘する。

>>706
>iPadみたいなタブレットPCって、ダイナブックの構想のまんまなのに

・iPadはタブレットPCではないし、Personel Computerではない。Mobile Deviceの一つだ。
・iPadはA.KayのDynabook構想とは無関係だ。XEROX PARC(Palo Alto Research Center)の研究成果と
 「あえて」結びつけるのであれば、M.weiserらのUbiquitous Computingプロジェクトが近い。
 このプロジェクトではTab/Pad/Boardと呼ばれる三種類のデバイスが構想されており、
 現在のApple製品系列であればiPhoneがTabに、iPadがPadに、BoardがAppleTVに対応する。

>>707
>あとはジョブズのように金儲けのために手っ取り早く暫定ダイナブック(≒Smalltalk)の
>表層をまねて切り売りしているような人たちに都合の良いミスリードに惑わされないことも含め

Jobs(Apple)を引き合いに出すのなら、ナゼ世界一の大富豪であるGates(Microsoft)を挙げないのか?
GatesはJobsを遥かに超える金儲けによってMS大帝国を築きあげた。

あえて言おう、「Dynabook/SmalltalkとJobs/Appleを無理矢理結びつけようとする
>>706のカキコは、読者をミスリードを誘う愚かな行為(FUD)そのものである」と。

もし反論があれば、>>710で書いたスレにカキコ汁。待っているぜよ。
712:デフォルトの名無しさん:2011/01/22(土) 13:52:39
708 :デフォルトの名無しさん:2011/01/22(土) 01:50:20
通報しました




通報オタク乙
713デフォルトの名無しさん:2011/01/23(日) 21:07:23
Appleの時価総額がとっくにMS超えてるとか知らないだな。
714デフォルトの名無しさん:2011/01/23(日) 23:45:36
会社の売上とLLは何の関係もないだろ
715デフォルトの名無しさん:2011/01/23(日) 23:51:44
>>710
gstみたいな処理系はLLみたいなものだろ
716デフォルトの名無しさん:2011/01/24(月) 00:16:13
かといって、GNU SmalltalkはSmalltalkと呼ぶにはかなりの変わり種だし。痛し痒しだ。
717デフォルトの名無しさん:2011/01/24(月) 09:59:37
iPadはダイナブックじゃないよね。
718デフォルトの名無しさん:2011/01/24(月) 11:16:06
719デフォルトの名無しさん:2011/01/24(月) 16:37:32
Objective-Cの[ ]の中はほぼSmalltalkじゃん
720デフォルトの名無しさん:2011/01/25(火) 00:42:35
LLって英語圏でも通じる?
721デフォルトの名無しさん:2011/01/25(火) 01:50:13
英語圏だと、XLだよ。
722デフォルトの名無しさん:2011/01/25(火) 01:53:05
ピザwww
723デフォルトの名無しさん:2011/01/26(水) 00:31:12
luaはゲーム組込み用途のスクリプトだと思ってたんだけど、
wiresharkやnmapにも組み込まれてたんだ

リストと連想記憶と正規表現と匿名関数があれば事足りるのに増えすぎ
724デフォルトの名無しさん:2011/01/30(日) 23:36:51
>>682
逆じゃないの?底辺がLL使ってるイメージだけど。
725デフォルトの名無しさん:2011/01/30(日) 23:43:39
>>720
そもそも日本と概念が違うような気がするのだがどうなのだろう
http://en.wikipedia.org/wiki/Lightweight_languages
726デフォルトの名無しさん:2011/01/31(月) 02:59:55
>>724
何を言っているんだ
底辺は Java / VB / PHP だろ
727デフォルトの名無しさん:2011/01/31(月) 03:16:12
受託開発系
 勝ち組が使う言語 UML(設計だけするが実装はやらない上流SE 実装は下請けに丸投げ)
 負け組が使う言語 Java(今日もデスマ♪過労欝自殺♪サービス残業♪)

自社サービス系
 どの言語を使っても勝ち組
728デフォルトの名無しさん:2011/01/31(月) 03:29:07
とりあえずうんこしてきた
きもちいい
729デフォルトの名無しさん:2011/01/31(月) 14:16:01
          ハ,,ハ
   _    ( ゚ω゚ ) 
  ◎ー)   /    \
   |  |  (⌒) (⌒二 ) ブッ!ブバァァ!!ビチビチィィ!! うんこRuby
   ~~~  /⌒ヽ( ̄、 ヽ プシャァァ!!ブチャブチャァァ!!! うんこPerl
      /    Lヽ \ノ ゲリゲリー!!ブリュッブリュブリュゥゥ!!!
      ゙ー―――(__)
730デフォルトの名無しさん:2011/01/31(月) 14:38:04
>>720
通じない。LLは日本で技術本を書いている作家や出版社が、目立つコピーが欲しくて広めた単語。つまり日本語。
731デフォルトの名無しさん:2011/01/31(月) 15:53:48
732デフォルトの名無しさん:2011/01/31(月) 16:04:53
733デフォルトの名無しさん:2011/01/31(月) 16:06:38
>>732
チュートリアルとか入門書を全て無視して、ソースコードを読めと書いてある点に違和感を感じる。
734デフォルトの名無しさん:2011/01/31(月) 16:19:55
そうか?
なぜこの世にたくさんのプログラミング言語があるのかを知らない人が書いた記事だと思った
組込制御だとかCGだとか数値計算だとかの別の世界を知らないアプリケーション屋さんの意見だな
今の世の中はアプリ屋さんだらけだから、アプリ屋さんがアプリ屋さん向けに書いた記事としてはこの程度のものかな?


そうですね。日本でもCG業界やゲーム業界では、RubyとPythonだと、ほぼPython一色といっていいほどPythonの方が多く使われていますね。


それは俺も思った

自分の業務(ネットワーク/OSまわり)に近い視点で言えば、
ライブラリ開発やカーネル開発(依存するものを最小限にすることが求められる)とか、
複数OSをまたいでのシステム管理(移植性が重要)とか、
そこらへんの観点がないように感じたなぁ。

大規模系の開発者からはまた別の観点で言いたいことがあるんじゃなかろうか
735デフォルトの名無しさん:2011/01/31(月) 16:26:53
>CでできることはC++でもすべてできるので、個人的にはC++を使わずにCを使うというシーンがあまり思い浮かばない。

そこの筆者なにもわかってないな
736デフォルトの名無しさん:2011/01/31(月) 16:33:58
>>732
> 有名な高級(?)言語の中では最速の実行速度を誇る。

Fortranは?

> 軽い言語だと勝手に裏側でやってくれるようなメモリの確保とかファイルポインタの操作なんかも、Cでは自分で意識して書かないといけない。

C言語でファイル入出力を扱ったことが無いのが良く分かる。

> あと移植性が低い。たとえばLinuxで動いているコードをWindowsで動かそうと思ったら、いろいろ書き換えないといけないところが出てくる。#ifdef Windowsみたいな。

ANSI Cの範囲なら、移植性は高い。
GUIを扱うならAPIやライブラリに全く互換性が無いので、プリプロセッサで分岐できるレベルではない。
makeは必須ツールなのだから、リンカーの互換性も指摘すべき。
737デフォルトの名無しさん:2011/01/31(月) 16:41:05
>GUIを扱うならAPIやライブラリに全く互換性が無いので

Qt4いいよ
738デフォルトの名無しさん:2011/01/31(月) 16:42:55
>>735
>>CでできることはC++でもすべてできるので、個人的にはC++を使わずにCを使うというシーンがあまり思い浮かばない。
> そこの筆者なにもわかってないな

それは私も思った。
739デフォルトの名無しさん:2011/01/31(月) 16:48:51
だれかきた
740デフォルトの名無しさん:2011/01/31(月) 17:15:33
ざっと読んで気になったのは以下の2点。

・Cの参考書として「はじめてのC」を推薦している事で、Cの理解度の低さが分かる。(洒落にならん)
 そのくせC++では「Effective C」を挙げているから、C++大好きな人なのだと思う。

・Objective-CのC++/Java等との決定的な差異として、(SmalltalkやRubyと同様に)
 動的なOOPを前提に設計された言語であるという事が欠けているのは、致命的なミス。
 冒頭で仕事じゃ使っていないと書いているのだから、生半可な知識を披露すべきではない。

他は、概ね妥当なコメントじゃないかと。(賛同できない事柄も多いが誤りではないのでOKとする)
741デフォルトの名無しさん:2011/01/31(月) 19:18:12
>>736
> C言語でファイル入出力を扱ったことが無いのが良く分かる。
システムプログラミングの経験がないだろw
ファイル入出力もOSレベルだとアセンブラで組んだルーチンを
コールするようなことをやる
当然、アセンブラの方を知らないでプログラムは組めない

ポインタどころかメモリ空間を意識して、直接書き込むような
スキルが必要になる(多分、カーネルの中身を知らないと
分からないと思う)

C++でも出来なくはないが、同じようなことをやるとCで
書いた方が早いというような話になる
742デフォルトの名無しさん:2011/01/31(月) 20:23:53
>>741
ベンチマークをとった事があるんだが、OSのAPIを叩いてファイルアクセスをしても、ファイルストリーム関数を使ってもほとんど速度は変わらん。
ファイル・オープン時に、シーケンシャル・リードとか、ランダム・アクセスとか色々とオプションをつけられるのだが、ディスク・キャッシュに情報が渡るはずなのに、ほとんど効果が無い。
それでもわざわざAPIを叩いているの?
743デフォルトの名無しさん:2011/01/31(月) 20:37:33
>>742
>>741はOSのAPIを呼ぶ側の話じゃなくてOSを実装する側の話だと思うよ
744デフォルトの名無しさん:2011/01/31(月) 20:52:49
745デフォルトの名無しさん:2011/02/01(火) 00:27:48
Cを学ぶやつって大抵初心者だしやさしいCくらいでいいんじゃね?
別の言語やってればポインタ以外は流し読みで理解出来る
746デフォルトの名無しさん:2011/02/01(火) 00:34:26
747デフォルトの名無しさん:2011/02/01(火) 13:18:48
このスレLoveLetter-Cに感染してるみたいなんだけど。
748デフォルトの名無しさん:2011/02/01(火) 13:21:54
馬鹿が>>661に貼ったからな
749デフォルトの名無しさん:2011/02/01(火) 13:21:55
それはたいへんだ(棒
750デフォルトの名無しさん:2011/02/01(火) 21:34:14
最近つくづく思うけど、Perlってもうダメだね。日本じゃまだマシだけど、海外じゃ完全に空気。
751デフォルトの名無しさん:2011/02/01(火) 23:07:55
組込み開発やアプリケーション、数値計算を別にして、
問題を解いたり、アルゴリズムを記述するのに向く言語って何れだ?
lisp系か?なんて思いながら、anarchy golfのlanguage rankingを見たら、
golf scriptについでrubyが入ってて驚き。perlは3位。pythonに至っては6位。
ほとんどpythonでかくのかと思ってたんだけど、意外なとこで使われてんのね
これで飯が食えるわけでないだろうけど。
752デフォルトの名無しさん:2011/02/01(火) 23:38:27
ってか、anarchy golfってrubyコミュニティの人が運営してんのな
753デフォルトの名無しさん:2011/02/02(水) 06:29:26
Pythonて明らかにgolfには向かないだろ
754デフォルトの名無しさん:2011/02/02(水) 08:00:10
755デフォルトの名無しさん:2011/02/02(水) 08:01:41
756デフォルトの名無しさん:2011/02/02(水) 15:23:30
>>751
> 問題を解いたり、アルゴリズムを記述するのに向く言語って何れだ?
> lisp系か?なんて思いながら、anarchy golfのlanguage rankingを見たら、
C
757デフォルトの名無しさん:2011/02/02(水) 16:58:19
C言語はアルゴリズム以外の部分に思考を遮られ過ぎだろ
758デフォルトの名無しさん:2011/02/02(水) 17:56:02
hashや連結リスト程度なら、即興で実装できるんでね?
競技プログラミングでインドや中国の参加者だと、
わりとCを使っている上位入賞者なんてみた気がするぞ

MSの性能が戦力の優劣には関係しないってシャアが言ってたし、
言語の機能なんて問題を解く上での優劣には関係しないんだよ。とか妄想してみる。
classなんて飾りです。アプリケーション連中にはそれがわからんのです
759デフォルトの名無しさん:2011/02/02(水) 22:15:52
何C対LLみたいなことになってんのwww
適材適所ってのがあんだろ
760デフォルトの名無しさん:2011/02/03(木) 00:13:04
>>758
んなところから実装しなきゃならんのはどう考えても開発の邪魔だろ。
最初からある程度は実装されてた方が楽だし
そういう既存のやつは色んなノウハウが既にあったり
バカ正直な実装に比べて最適化が行なわれてたりして効率的だったりする。
761デフォルトの名無しさん:2011/02/03(木) 00:16:56
Cはアルゴルズムの最後の継承者
762デフォルトの名無しさん:2011/02/03(木) 00:45:13
C「兄より優れた弟などいない」
C++「….」
763デフォルトの名無しさん:2011/02/03(木) 06:21:09
>>758 みたいなこと言ってpythonやrubyなら簡単にできることを
Cでシコシコと作られた日にゃ、おれが上司だったら切れちゃうよ
764デフォルトの名無しさん:2011/02/03(木) 06:42:52
>>760
Java最高ですねわかります
765デフォルトの名無しさん:2011/02/04(金) 00:26:14
>>758
たとえ即興で実装できたとしても、毎回実装すんのはだるいだろ。
しかも、人によって実装が微妙に違ったりするから、分かり辛い。
デフォで欲しいよ。飾りじゃない。
766デフォルトの名無しさん:2011/02/04(金) 00:29:27
>>750
そうなの?やっぱPythonか?
767デフォルトの名無しさん:2011/02/04(金) 00:31:28
>>751
再帰がからむアルゴリズムだとHaskell最強だよ。まあ、当然かな?
768デフォルトの名無しさん:2011/02/04(金) 00:33:55
汎用性に欠けてる時点で論外だろ
769デフォルトの名無しさん:2011/02/04(金) 00:40:15
>>768
Haskellって汎用性に欠けるって言われるけど、本当にそうなのかな?
今勉強してるけど、ライブラリさえあれば(笑)C++と同レベルな気がする。

と書いておきながら、俺はHaskellあんま好きじゃないんだけど。
オブジェクトはいるよ。オブジェクトは。
770デフォルトの名無しさん:2011/02/04(金) 00:45:31
普及するまでは使い物にならない
使い物にならないから普及しない
771769:2011/02/04(金) 00:48:44
>>770
それは本当だけど、それ言ったら終わりでしょ。LLなんてJavaなんかに
比べたらはるかにマイナーなんだし。
772デフォルトの名無しさん:2011/02/04(金) 00:58:19
>>770
そこで、railsのようなキラーアプリをだな
773デフォルトの名無しさん:2011/02/04(金) 01:18:27
>>766
漏れの鯖環境では
4 年ほど前から Perl 刈り実施中
もう殲滅カウントダウンまできた
774デフォルトの名無しさん:2011/02/04(金) 03:27:00
>>773
そうか・・・やっぱりPerlはもうダメか。Perl6のOO具合を見て、まだいけるのかと思ってた。
775デフォルトの名無しさん:2011/02/04(金) 08:47:27
むしろ、そのPerl6が一番の問題なんじゃねえの
新バージョンへの移行どころか、新しい言語に移行するような状態になっちまうだろあれ
776デフォルトの名無しさん:2011/02/04(金) 22:23:28
>>750
>最近つくづく思うけど、Perlってもうダメだね。日本じゃまだマシだけど、海外じゃ完全に空気。

日本って、なんであんなにPerlが強いん?
そんで、なんであんなにPythonが弱いん?
777デフォルトの名無しさん:2011/02/04(金) 22:27:11
すべて日本語のせいです。
778デフォルトの名無しさん:2011/02/04(金) 23:40:21
perlは使わないけれど、消えて欲しくない言語だな
極めたら端末からワンライナー書くのには便利そうだし
不精さの美学みたいなものがある

で、pythonはインスタンス変数に全てselfをつけないとダメなのか?
長い数式とか書くのが面倒くさそう
その点で、rubyは@だけ書けば良さそうで楽そう。アクセッサまで付いてる
779デフォルトの名無しさん:2011/02/05(土) 00:16:10
rubyは書き捨てに向いてるからな
まさしくperlの後継者足りうる言語
780デフォルトの名無しさん:2011/02/05(土) 01:57:59
実際書いてみたらselfって言うほど面倒くさくないんだよなぁ。
ていうか、どうしても嫌ならwithステートメントでselfの中身展開できる気がする。
781デフォルトの名無しさん:2011/02/05(土) 02:30:57
>>780
>ていうか、どうしても嫌ならwithステートメントでselfの中身展開できる気がする。

は?jsと勘違いしてる?
782780:2011/02/05(土) 02:48:32
ちきしょー、locals()は更新できないんだった。
http://codepad.org/3XkPyymL

evalで文字列から関数作って、仮引数の形で変数渡してやればできるはずだが、眠い。
783デフォルトの名無しさん:2011/02/05(土) 02:56:17
Pythonのselfは予約語ではないので
インスタンス変数にアンダーバーを前置するどこぞの慣習にあわせて

class Foo(object):
  def foo(_, x, y):
    _.hoge = x

とかしたらselfだせーよとか文句言われなくなるかもしれない
ただ今度は関数型の人から怒られる可能性が
784デフォルトの名無しさん:2011/02/05(土) 02:57:51
だめだ。contextmanager内のスコープとyieldでのスコープは別だ…
スタックフレームとか使えばできるのかな? でももうねる
785デフォルトの名無しさん:2011/02/05(土) 03:02:34
>>783
よくわかんないけど、それ分かった上でどーこー言ってる人たちだと思ってた。
そうしたところで、2文字も打つのめんどくさいとか言われるんで、ローカルスコープ変えるかのようにできないとダメなんだと思う
786デフォルトの名無しさん:2011/02/05(土) 03:20:55
rubyみたく@を使ってくれたら、何も迷わずにpythonつかうのにな
numpyとかで科学技術っぽい計算してる人たちは、
この辺の面倒さにどう対処してんだろう。(普通に、matlabつかうか)
787デフォルトの名無しさん:2011/02/05(土) 03:23:14
あなたは、迷わずruby使えば良いと思うよ
788デフォルトの名無しさん:2011/02/05(土) 04:08:19
pythonの方が使われている場所が多いじゃん
ざっと思い付いただけでも、Mercurial,trac,gimp,blender,geditの拡張

rubyはendが階段状に並ぶのが気持ち悪い
そのうちに、こういう無意味な注文を受け付けてくれる
ツールでも生まれてくれればいいのにな
GUIフロントエンドで、{}かbegin〜endにするか、indentにするか
無名関数、無名クラスの有無、静的片付けか動的片付けか、GCの有無
オペレータはオーバロードさせるか?アクセッサを用意するか
M$ならCLR上で動く、こういうツールを作ってくれそうにもないな
789デフォルトの名無しさん:2011/02/05(土) 04:10:59
勝手に@pyとかいう言語を作ればいいじゃん。そこまで難しい事かな
790デフォルトの名無しさん:2011/02/05(土) 05:52:25
>>780
デコレータでバイトコード弄ってみた(読み込みのみ)
http://codepad.org/7JUcS78A
http://pypi.python.org/pypi/byteplay が必要
791デフォルトの名無しさん:2011/02/05(土) 07:32:54
俺の場合selfがめんどいかどうかは別にどうでもいいんだけど、
オブジェクト指向言語を語るくせに、インスタンスのスコープを持っていないことに
腹が立つ。

シンプルさのためにそうなってるのかと思ったが、どうもそうでもない。
obj.method(arg)がClass.method(obj, arg)になるという点ではシンプルだが、
これを実現するための仕組みはとてもシンプルとは思えない。
792デフォルトの名無しさん:2011/02/05(土) 07:37:30
C→C++みたいな経緯で作られてるから
793デフォルトの名無しさん:2011/02/05(土) 07:51:54
オブジェクト指向の言語で見かけはともかく、実現する仕組みが「シンプル」
なんてものが存在すると思い込んだ原因が知りたい。
794791:2011/02/05(土) 08:06:45
>>793
ん?俺?

インスタンススコープがないってことはスコープの種類が少ないということだから、
シンプルってことになるじゃん。
でも、スコープの種類少なくても、selfをインスタンススコープのように扱わせる
仕掛けはシンプルじゃなかったよという話。

一応シンプルな例を挙げておくと、PerlとLuaかな。これらもPythonと同じで
第一引数がselfになるんだけれども、これを特殊解釈させるために、
ドットと違う演算子を用意してる。
795791:2011/02/05(土) 08:09:25
>>793
あーちょっとずれてるか。

インスタンススコープがないのは腹立たしいが、
シンプルさのためなら許してやる。だけど、シンプルなわけでも
ないのでPython許さんということ。
796デフォルトの名無しさん:2011/02/05(土) 08:13:48
別にお前に許されるために設計してるわけじゃないだろうしなあ
797791:2011/02/05(土) 08:18:59
>>796
まあね。
とにかく「selfめんどい」以外にもPythonのオブジェクト指向には
ダメなところが存在するということなんだよ。
798デフォルトの名無しさん:2011/02/05(土) 08:47:17
PerlとLuaがそんなに素晴らしいなら。
799デフォルトの名無しさん:2011/02/05(土) 09:13:59
luaはセキュリティ周りのツールに組み込まれてるぞ。ゲームだとWoWとか

スクリプト言語がここまで増えて、あれやるために、
あの言語みたいに頭切り替えるぐらいなら、
いっそのことguileが流行ってくれれば良かったのにと思う
800Perl忍者 ◆M5ZWRnXOj6 :2011/02/05(土) 10:16:20
wowやってんのかおめえ?

俺もやってたぞレベル46
801デフォルトの名無しさん:2011/02/05(土) 10:21:22
>>794
「仕掛け」ってなんだ?
結局、書き方が気に入らなかったってことかよ
802デフォルトの名無しさん:2011/02/05(土) 11:26:32
>>786
ただそれだけのことが面倒で、それさえなければ迷わず使うとか思ってるんだったら、君にはPythonあってない。
Pythonは、数タイプ節約するために特別な仕組みを提供してくれる言語じゃない。
使い始めたらどうせ他の面倒なことが目立って嫌になるんだろう。

>>791
それって、オブジェクト指向で本質的な部分なの?
それよりも、本当の意味でのカプセル化はできていないとか、他にも文句言うところはある。
あと、実現するための仕組みがシンプルなLLなんて、俺はしらない。
803デフォルトの名無しさん:2011/02/05(土) 11:48:59
>>786はPython信者を怒らせてしまった。どうしてくれる。

> それって、オブジェクト指向で本質的な部分なの?
だれもオブジェクト指向の本質が何かなんて話題にしてないのに、こんな噛み付き方をするのはさすがPython信者。

> あと、実現するための仕組みがシンプルなLLなんて、俺はしらない。
だれもおまえが知ってるかどうかなんて気にしてないのに、こんなこと牡蠣散らすとはさすがPython信者。
804デフォルトの名無しさん:2011/02/05(土) 11:49:12
PerlのOOは仕組み的には結構シンプルじゃね?
基本は元々ある連想配列の仕組みを流用して
OO的な部分はbless1つで実現してるワケだから。
805デフォルトの名無しさん:2011/02/05(土) 12:03:20
Pythonはレキシカルスコープを提供してるんだから、classを
単純にレキシカルスコープと見なせないのかな?というのがやや疑問

レキシカルに上の環境にある変数はPythonで暗黙に参照できるわけでしょ
更新はできないけど
レキシカルスコープの言語なんだから
classはメソッドの上のスコープ、classのフィールドはメソッドの上の
スコープにある自由変数と見なせてもいい気がする




806デフォルトの名無しさん:2011/02/05(土) 12:15:43
一言で言うとPythonのスコープキモいですといういつもの話題になりそうだな
807デフォルトの名無しさん:2011/02/05(土) 12:22:43
>>802
横レス失礼するよ。

オブジェクト指向の本質が何かとかカプセル化がうんぬんかとかを議論する気は無いけど、
OOP元祖であるSmalltalk、およびRubyと比較した観点でのPythonの欠点を挙げてみる。

・ブロック(クロージャ)が実装されていない。
・条件分岐が式ではなく文として実装されている。

Rubyだとブロックが使えるし、if .. then .. else(およびcase .. when ..)は式だから、
Smalltalkで書かれたコードをスイスイと書き換えて再利用できる。

Pythonというのは、(C++やJavaと同様に)手続き型言語へ「後からOOPを継ぎ足し」た
設計のように見える。それは、selfというキーワードを「多用」するスタイルについても同じ。
プログラマにOOPスタイルのコーディングであることをわざと意識させようとする
(教育的な?)設計思想であると言えるのかもしれない。それに対してSmalltaikやRubyは
デフォがOOPだから、selfというキーワードは「必要な時」にしか使わない。

これらは「最初からOOPである」ことを前提に設計されたSmalltalkやRubyと
「後からOOPを継ぎ足し」たPythonとの大きな差異ではないかと思う。
808デフォルトの名無しさん:2011/02/05(土) 12:28:31
>>807
後者は以前は微妙に面倒くさい欠点だったな。
今は3項演算子に相当するものがあるから随分とやりやすくなったが。

前者はブロックの代わりに関数ローカルな関数が作れるので何とかなるかな、と思う。
809デフォルトの名無しさん:2011/02/05(土) 12:38:39
>>803
> オブジェクト指向言語を語るくせに
って書いてるのに、オブジェクト指向のほんのどうでもいい部分を取り上げたとでもいいたいの?

> だれもおまえが知ってるかどうかなんて気にしてない
そんなもんない、と書きたかったのだが、全言語知ってるわけじゃないからそう書いたのだよ。
ところで、あるのかい?
810デフォルトの名無しさん:2011/02/05(土) 12:46:01
クロージャの第一引数につねにenvとかいうのを渡す必要があって
自由変数をenv.fooのように参照しろとか言われたら嫌だろう
それと同じ話だと思うぞ

まあPythonの場合は自由変数を更新するには
最近のバージョンでnonlocalと宣言する必要があるし
局所変数のスコープが関数全体に広がるから、むしろそう書いたほうが良かったかも
しれないがなw
Explicit is better than implicit
だそうだし
811デフォルトの名無しさん:2011/02/05(土) 12:48:21
>>807
式と文の違いは、オブジェクト指向とは関係ない。
クロージャなら関数が持ってる。

selfがキーワードじゃないってのはおいとくとして。
『「後からOOPを継ぎ足し」た設計のように見える』と書いている文章がいつの間にやら『「後からOOPを継ぎ足し」た』に変わってる。
「ゲーム脳の恐怖」で使われてる論法そっくりだ。

ま、実際のところ、Pythonは手続き型言語寄りのマルチパラダイム言語だと思うが。
812デフォルトの名無しさん:2011/02/05(土) 12:50:11
>>810
じゃあ、envはどこの名前空間にあるのさ?
meta_env.envってすればいいの?
meta_meta_env.meta_env.envってすればいいの?
813812:2011/02/05(土) 12:51:22
あ、ごめ。引数でとるのか。
関数型プログラム言語として使うなら、そうするのもありじゃないかと思うよ。
814デフォルトの名無しさん:2011/02/05(土) 12:55:09
>>812
すまん、ただのたとえ話にそういう突っ込み方をされるとは思わなかったw

言いたいことはわかるだろ、Pythonのレキシカルスコープは大抵の言語の経験者に
とっては少なくとも異色なんだよ


815デフォルトの名無しさん:2011/02/05(土) 13:00:17
class Let(object):
 pass
dist = lambda x, y: (lambda let, pairs, f: [[let.__setattr__(x, v) for x, v in pairs], f(let)][1])(Let(), [('x_sq', x*x), ('y_sq', y*y)], lambda let: math.sqrt(let.x_sq+let.y_sq))
print dist(3, 4) # ==> 5.0

うん、全然ありだな。
816デフォルトの名無しさん:2011/02/05(土) 13:06:10
class Env(object): pass
let = lambda pairs, f:let2(Env(), pairs, f)
let2 = lambda env, pairs, f: [[env.__setattr__(x, v) for x, v in pairs], f(env)][1]

ってすれば、代入のかわりにlet使ってenvを得て、
ローカル変数使わなくてもenv使えば処理できるのな。
817デフォルトの名無しさん:2011/02/05(土) 13:13:50
>>814
逆に、異色な部分がない言語ってやる価値あんの?
高速とか、そういうメリットあるならともかく、実行速度の遅い言語の場合で。

Rubyだって(少なくとも、出た当初は)ブロック付きメソッドなんて異色だったし、
Smalltalkのオブジェクト指向だって(少なくとも、出た当初は)異色だったよ。
高級言語のFortranなんて、アセンブラやってた人からしたら本当に異色だっただろうな。

けど、異色だという理由だけで否定するのって、バカのすることだよね。
だから、selfを引数に取ることが具体的にどうダメなのかを、
「他の言語と違うから」以外の意見を持ったバカじゃない人から聞きたいのだけど、
具体的にダメな点ってのが、タイプするのが面倒くさい、くらいしか出てこないんだ。
818デフォルトの名無しさん:2011/02/05(土) 13:24:32
>タイプするのが面倒くさい

これは案外でかい気がする。
ブロック付き構文は(Ruby使いに言わせれば)便利な記法だそうだし
アセンブラよりFortranなどの高級言語のほうが読み書きは容易だろう。
Pythonのselfと書かざるをえない文法には、とにかく何か意図か理由があるんだろうけど
どういうメリットがある?
819デフォルトの名無しさん:2011/02/05(土) 13:28:02
>>815-816
おー、ネタをふったのは俺だが、屁みたいな議論よりよほど面白いぞw
820807:2011/02/05(土) 13:52:12
>>811
>式と文の違いは、オブジェクト指向とは関係ない。
>クロージャなら関数が持ってる。

>>807の指摘がOOPとは関係ないのであれば、大いに関係のある
「関数型言語との比較」という観点で見たPythonの欠点に書き換えましょう。
・ラムダ式(無名関数)の中で局所宣言(let式)ができない
・条件分岐が式ではなく文として実装されている
前者については、Smalltalk/Rubyには両者ともラムダ式はありませんが、代わりに
ブロック(クロージャ)があるので、局所宣言を含む無名関数を自然に記述できます。
Pythonで初心者にも分かり易い「局所宣言を含む無名関数」は書けますか?

後者については、明確なPython欠点でしょう。
確かにPython 2.5から三項演算子は追加されましたが、その構文
 <true expr> if <cond expr> else <false expr>
はPython固有の記法で、手続き型言語を含めた言語の中でも「異質な存在」です。
これなら、まだ Lisp風の
 (cond <cond expr> <true expr> <false expr>)
ような前置記法、あるいは、Smalltalk(やForth)風の
 <cond expr> ifTrue: <true expr> ifFalse: <false expr>
のような後置記法のほうがマシ(自然)に見えます。

「ラムダ式の実装が不完全」で、しかもプログラミングで多用される
「条件分岐が式ではない」Pythonは、関数型言語としても中途半端な言語に見えます。
これもまた手続き型言語へ「関数型を後から継ぎ足し」た言語設計ではないかと思います。
821デフォルトの名無しさん:2011/02/05(土) 14:03:12
しかしだな、馬鹿の為に考え出された「馬鹿サポート機能」について熱く語られても困る。

結局、局所的、という機能は人間が馬鹿で全部覚えておいて完全に制御はできないと
いうところをサポートする為のものだ。

局所的、という特性自体はOOPとは無関係だ、というか無関係に近い。
822807:2011/02/05(土) 15:07:19
>>821
そうですね、少し表現が上品すぎて
このバトルスレにはふさわしくなかったかもしれません。
デハご要望に応じて、このスレ向きの口調で>>807,820を書き換えましょう。

 Rubyと比較すると、Pythonなんてオブジェクト指向としても
 関数型言語としても中途半端で不完全な代物。
 まあ、手続き型言語としては優秀だと認めてやるから、
 このスレだとPython vs. Perlでバトルするのがお似合いだな。
 それをRuby厨は上から生暖かく見物するとしよう。

こんなんでどうでせうか?できれば>>807,820への
感情論を抜きにした(技術者としての)論理的な反論をキボンします。
823デフォルトの名無しさん:2011/02/05(土) 15:17:27
よろしい、頭脳明晰で言行一致の君ならできるだろうが、

「上から生暖かく見物する」

と、断言した以上、二度と書き込まないことを祈る。
脳が腐っていて、物事の判断が出来ない馬鹿以上の
大馬鹿であることを証明したいなら、今後もどんどん
書き込みたまえ。
824デフォルトの名無しさん:2011/02/05(土) 15:19:38
>>820
真っ先に末尾再帰の最適化を上げない時点で、関数型言語知らずに言ってるんだなぁと思える。
継ぎ足した知識でしか使う脳がない人には、継ぎ足した仕様で十分なんじゃないの?
825デフォルトの名無しさん:2011/02/05(土) 15:25:21
>>822
>>820
・letはsyntax sugerであるから、lambdaがあれば不要
・異質であることのみを理由にして、それを欠点というのは根拠が足りない

>>807>>811にあるとおり。

これらより、
> Rubyと比較すると、Pythonなんてオブジェクト指向としても
> 関数型言語としても中途半端で不完全な代物。
はどちらも、根拠が足りない。

その後の文章は、タダの感情論なので、自分で「感情論抜きにした論理的な」とか言いながら
自分は感情論使うってバカなんじゃねーの?と感情論で返しておく。
826デフォルトの名無しさん:2011/02/05(土) 15:28:06
関数型言語として完全なものにしてもらっても困るんだけど
どのことするからユーザーが増えないんだよ
827デフォルトの名無しさん:2011/02/05(土) 15:28:47
×どのこと
◎そんなこと
828807:2011/02/05(土) 16:33:48
>>823
馬鹿以上の大馬鹿なので、カキコさせてもらいます。

>>824
Rubyには末尾再帰最適化が実装されていないので、スタックオーバーフローし易く、
その為に時としてループで手続き的なプログラミングが必要になる点は認めます。
ただし、Rubyはそもそも関数型言語ではありませんし、このスレで議論したいのは
(Ruby vs. 関数型言語ではなく、)関数型としての観点におけるPythonとRubyとの比較です。
末尾再帰最適化については、どちらも実装されていないので、引き分けではないでしょうか?
それとも、もしもPythonには末尾再帰最適化が実装されてる、というのなら話は別で、
それはRubyの欠点/Pythonの利点として認めます。いかがでしょうか?

>>825
>・letはsyntax sugerであるから、lambdaがあれば不要
>・異質であることのみを理由にして、それを欠点というのは根拠が足りない

関数型言語の特殊な機能/頻繁に使用されない機能等であれば、そんな隅っこを取り上げて、
それが実装されていないからうんぬんといった指摘は、根拠が足りないと言えるでしょう。
けれども関数型言語において、局所宣言(let式)の存在は、極めて常識的/日常的/基本的です。
Lisp/Scheme/ML/Haskellなど、あるいはそれらのサブセットですら実装されています。

それがRubyであれば、それらが言語のプリミティブとして実装されていますから、
Rubyであれば自然な関数型言語風プログラミングが可能です。
Pythonのように、ややこしく見づらいコーディングを強いられることはありません。
Pyhhonによる関数型プログラミングのコードが、初心者にも見やすいとお考えですか?

同様に,(>>820でも書きましたが)条件分岐は、プログラミング一般で多用される基礎です。

以上の事から、>>820の指摘が根拠の足りないという指摘は、否定します。
829デフォルトの名無しさん:2011/02/05(土) 18:27:52
>>828
> それがRubyであれば、それらが言語のプリミティブとして実装されていますから、
> Rubyであれば自然な関数型言語風プログラミングが可能です。

ついこないだまでブロック内変数もブロックがブロックを引数にとることもできなかった
欠陥言語がどのツラ下げてそれを言うかと。
830794:2011/02/05(土) 19:15:22
>>801
>>809
obj.method(arg)をClass.method(obj, arg)に変換するための仕組みのこと。JK

>>802
うん。本質的な部分だよ。例えば、構造化言語でローカル変数なかったら気持ち悪いでしょ?
そんな感覚。

本当の意味のカプセル化なんてLLには要らない。柔軟性が下がるだけ。
突っ込むところではない。
ちなみに、Pythonのアンダースコアで可視性を表すシステムはRubyよりよく出来てる。
Rubyはprotectedまでしか表せないけど、Pythonは真の意味に近いprivateが
扱えるからな。

何を持ってシンプルかっていうのは人によるだろうけど、Pythonの仕組みは比較的
シンプルではない方だと思うよ。ってか俺PerlとLua挙げたじゃん。
これじゃあ駄目なの?いじわるな子ね。

>>807
俺はRubyのが好きだけど、関数型言語としてはPythonの方がよくない?
流石にファーストクラスで関数が使えるのはでかいよ。

例えば、RubyのStringScannerとPythonのre.Scannerとか?Python
の方は関数型っぽく使うはずだったよ。
831デフォルトの名無しさん:2011/02/05(土) 19:18:28
↑アンカー間違い
802=809だと思うから、>>809は第2段落より
832794:2011/02/05(土) 19:48:59
そろそろROMろうかなと思ったが、意外とPythonのselfについて知らない人
がいるようなので俺が説明しよう!

Pythonicオブジェクトシステムについて

まず、このことをおさえておく。
def hoge():
  pass
と書くと「変数」hogeに関数オブジェクトが代入される。

で、次にこれをおさえる。
class Hoge:
  x = 100
  def huga(self):
    pass
こう書くとHoge.xに100、Hoge.hugaに引数ひとつの関数オブジェクトが
代入される。

そしてhoge = Hoge()とインスタンス化すると、hogeからもHogeの属性が見える
ようになる。つまりhoge.xとhoge.hugaが使える。
hoge.xとすると100が返ってくる。一方でhoge.hugaとすると
関数オブジェクトが帰ってくると見せかけて、なんとメソッドオブジェクトが返ってくる。

メソッドオブジェクトとは何かというと、selfを保持している関数オブジェクトの
ことである。メソッドオブジェクトにカッコをつけて呼び出すと、
引数をひとつずらして、第一引数に保持しているselfを渡してくれる。

これがselfを書かせる理由。
これにより、hoge.huga()はHoge.huga(hoge)と同等になって
Pythonicだねということらしい。

メリットはまあ普通の関数でメソッドっぽいものを実現できるということかな。
833デフォルトの名無しさん:2011/02/05(土) 19:53:16
ずっと昔からこの糞長文を毎回のように書き込みまくってるのは同一人物か?
834Perl評論家:2011/02/05(土) 21:08:50
覚えたてのバカが熱弁するって832のことを言うんですね

キモキモ

少しは833を見習ってくださいよカス
835デフォルトの名無しさん:2011/02/05(土) 21:10:59
る厨は空気読めねーのが揃っているのな教祖からしてそうだが
先達の丸パクり100%で成り立ってるくせにちょっとした瑕疵を
鬼の首を取ったみたいに嬉々としてけなすとか仁義にもとるわ
RubyはRubyは言うならせめて独自の工夫を引き合いに出せ
んなもんがあればだけどな
836デフォルトの名無しさん:2011/02/05(土) 22:03:27
>>828
関数型言語として使えるか使えないかじゃなくて、引き分けとか、そういう話だったの?
Rubyじゃ自然な関数型言語風プログラミングはできない。末尾再帰最適化ができないから。Pythonも同様。
サッカー選手か野球選手どっちがバスケうまいか、みたいなどうしようもない話はする価値ないよ。

> 同様に
なにが同様なんだww

# で、RubyじゃProcかlambdaかどっちが関数なの?ww
837デフォルトの名無しさん:2011/02/05(土) 22:12:03
パクリのセンスすらない糞言語の信者やってて楽しいか?
838デフォルトの名無しさん:2011/02/05(土) 22:13:12
処理系の話もこのスレに含まれるの?
839832:2011/02/05(土) 22:25:02
>>834
えー、だってこれぐらい知ってくれてないとPython批判しても
何がダメなのかわかってもらえないじゃん。

>>835
何いってるのかわかんね。とりあえずけなしてるわけでもないし、
仁義にもとってるわけでもない。
840Perl評論家:2011/02/05(土) 22:29:27
キモキモ
841デフォルトの名無しさん:2011/02/05(土) 22:57:34
>>802
数タイプ節約したいだけじゃなくて、主に可読性の問題
例えばだけど、
self.x**3 + self.x**2 + 0.5*self.x**2 + self.x*self.y + self.x*self.y**2
@x**3 + @x**2 + 0.5*@x**2 + @x*@y + @x*@y**2
こう並べてみて、どっちが見やすい?
こういう数式が大量に並べると、とにかく目が疲れるんだ
JavaにもオペレータのオーバーロードやC#のプロパティを含めて欲しい
842デフォルトの名無しさん:2011/02/05(土) 23:05:34
x = self.x
xをいじくる大量の数式
self.x = x

ですべてが片付くとは言わないが
843デフォルトの名無しさん:2011/02/05(土) 23:06:56
代入するのにコストかからないのか?
844デフォルトの名無しさん:2011/02/05(土) 23:11:37
>>841
下も十分見にくい
x^3 + x^2 + 0.5 * x^2 + x * y + x * y^2
ぐらいがいいな
845デフォルトの名無しさん:2011/02/05(土) 23:14:39
アホか
846デフォルトの名無しさん:2011/02/05(土) 23:15:45
それって、変数のスコープが分からない
@は変数のスコープを思い出させてくれる
847デフォルトの名無しさん:2011/02/05(土) 23:17:10
@とか$を多用する言語が良いならそっちを使えば良いだろ
848デフォルトの名無しさん:2011/02/05(土) 23:18:08
>>846
レキシカルに上にあるんだからダイナミックスコープと違って
スコープなんて自明だし、別に困らないけどなあ……
関数型の自由変数でも、C++族のメンバ変数/フィールドでも

そんなに@が並んでたら、目が痛いよ
849デフォルトの名無しさん:2011/02/05(土) 23:19:40
遅いし、マイナーでライブラリ書いてくれる人が少ないじゃん
信者ないから、便利なもの使いたいんだよ
850デフォルトの名無しさん:2011/02/05(土) 23:23:19
>>848
c++だと、メンバ変数にはx_や、m_xぐらいは書くだろ?
@の一文字ぐらいは増えても諦めるだろ
c++のポインタで目が痛くならなければ、
リファレンスだって生まれなかったんじゃないのか(設計と進化は、まだ読んでないが)
851デフォルトの名無しさん:2011/02/05(土) 23:27:18
お前が諦めろよ
852デフォルトの名無しさん:2011/02/05(土) 23:28:33
>>850
いや諦めるんなら諦めるでいいけど、「諦める」ってことは、別段優れても何にも
いないってことだよなw

D&Eは大分前に読んでもう手元にないが、リファレンスの導入の経緯はそういう
あれじゃなくて、operator overloadingのための要請という点が大きかった気がする
ただしD&Eにそれが書いてあったかどうかは覚えていない
853デフォルトの名無しさん:2011/02/05(土) 23:34:02
次の俺俺言語設計者がruby,pythonの慣習に従って、
selfやendの階段みたいなことしたら嫌じゃん
AIっぽい記号処理も数値計算も行いやすい軽量言語とかを
ここで、次なる救世主を待っているんだ
ひょっとしたら知らないだけで既にあるのかもしれないし。@pyとか。parrotとか
854デフォルトの名無しさん:2011/02/05(土) 23:41:15
お前が作れよ
855Perl評論家:2011/02/05(土) 23:44:49
まちぼうけ〜まちぼうけ〜あるひさっさとコーティング〜
856デフォルトの名無しさん:2011/02/05(土) 23:50:40
いや、俺がつくる。いやいや、俺が。
ダチョウ倶楽部みたいに、どうぞどうぞの世界だろ
自分で実装するぐらいなら、おとなしく、c++を使うわ
言語実装する関係の卒業研究やってる学生さんが実装してくれることを超期待
857デフォルトの名無しさん:2011/02/05(土) 23:52:51
んなもん、最低限実用になるまでに10年はかかるぞ
Matzがどれくらいかけたのか、正確な所は知らんけど
858Perl評論家:2011/02/05(土) 23:53:58
MatzじゃなくてクソMatzだろカス
859デフォルトの名無しさん:2011/02/06(日) 00:11:36
実用にならない実装と論文なら1年ぐらいあれば書けるだろ
記号処理と数式処理を主とした目にやさしいオブジェクト指向型グルー言語とかをテーマで
860デフォルトの名無しさん:2011/02/06(日) 00:14:53
天然って怖いわ
861デフォルトの名無しさん:2011/02/06(日) 00:18:33
>>843
参照するコストもあるから、何度も参照され、かつ、代入のコストがそこまで大きくないオブジェクトだったら、
>>842のようにした方がトータルのコストも少なくなる。

>>841
どっちも見にくい。
(lambda x, y: x**3 + x**2 + 0.5*x**2 + x*y + x*y**2)(self.x, self.y)
の方がまだマシで、>>842がよりよい。

>>848
変数の参照だけならそれでいいと思うけど、
変数に別の値を代入したり、新しい変数作ったりを考えると、
思った以上に事態は面倒だよ。
862デフォルトの名無しさん:2011/02/06(日) 00:24:06
>>861
いや、更新でも特に困らない
(というかC++でもJavaでもC#でもLispでも何でもいいが、上位のスコープにある
レキシカル変数を普通に更新できる)

「上位のスコープに新たに変数を作る」という機能があるかどうかだろうなあ

863デフォルトの名無しさん:2011/02/06(日) 00:32:29
>>862
C#, Lisp(Lispの代入って、標準的な仕組みとしてあるの?)はよく知らないんだけど。
C++, Javaに関しては、
・変数には宣言を伴う
・上位スコープと同じ名前のローカル変数が宣言されたら、ローカル変数が優先される
って性質があるから、更新でも特に困らない。

そういう性質のないPythonが苦し紛れにnonlocalキーワードを追加したのを忘れちゃいかんよ。
864デフォルトの名無しさん:2011/02/06(日) 00:35:50
>>863
だから、それはあくまで「Pythonの」仕様の問題でしょ
「原理的に」困る困らないという話とは別

・let, my, val, varみたいにbindingを明示する手段がない
・ローカルにないxに対して、x = 1のような文は、上位のスコープにxがあるかどうかは
 無視して*常に*ローカルにbindingを作成する

という仕様だから、「Pythonでは」そうなっているというだけ
865デフォルトの名無しさん:2011/02/06(日) 00:37:11
あーそれとCommonLispの破壊的代入はsetf
CommonLispはマルチパラダイム言語であって関数型言語じゃないからふつうに使われる
Schemeにも破壊的代入のset!はある
866デフォルトの名無しさん:2011/02/06(日) 00:42:53
>>861
> (lambda x, y: x**3 + x**2 + 0.5*x**2 + x*y + x*y**2)(self.x, self.y)
> の方がまだマシで、>>842がよりよい。
有難うございます。救世主様。今日から私は、迷わずにpythonの信者になります
あなたをおいて、どこにいきましょう。

> 参照するコストもあるから、何度も参照され、かつ、代入のコストがそこまで大きくないオブジェクトだったら、
> >>842のようにした方がトータルのコストも少なくなる。
ところで、メシア様。キャッシュにはメモリ上の位置が記憶されてるものじゃないのでしょうか?
参照コストなんて、self.x(または、@x)の時点でメモリ位置がキャッシュにストアされて、
以降はキャッシュにヒットするものだと思っておりました
そして、ローカル変数のx(これは実体ですよね)を代入などしたら、
それだけでもコスト掛かって、xとself.xのアドレスがキャッシュに
たまるので、他のオブジェクトの変数や命令キャッシュにもlambdaの
位置が配置されて腹の中がパンパンになるのだと思っておりました
867デフォルトの名無しさん:2011/02/06(日) 00:44:04
うぜえ
868Perl評論家:2011/02/06(日) 00:47:23
こいつら俺よりかは詳しくないけど

詳しいからさ

企業人だろ?かえれカス
869デフォルトの名無しさん:2011/02/06(日) 01:14:55
言語マニアは言語しかしらない
アルゴリズムとか知らない
数学とかできない
社会に有用なものを提供できない
クズ
870デフォルトの名無しさん:2011/02/06(日) 01:20:48
おらっ、アルゴリズマー様のお通りだ!!道を空けろ!!
871デフォルトの名無しさん:2011/02/06(日) 01:37:37
>>869
物理屋の書いたCのコードとか、読めたもんじゃなかった。
そもそもライブラリの存在すらよく理解してない。
ソースコード見ると、何十年もの間、何の研究をしてきたのかすらも疑問に思った。
そして、アカデミックな立場にある人々の書く論文の大半は、
とりわけ社会に有用なものを提供しているわけでもない(…4流の大学だからか)
そして、社会に有用なものを常に提供し続けるのは、
それは、Tシャツにジーパンを履いた人たちでなくて、大企業でスーツを着ている人たちだよ
872デフォルトの名無しさん:2011/02/06(日) 01:42:50
そんな直ぐに金になるような研究はカス私立の十八番だろ
873デフォルトの名無しさん:2011/02/06(日) 03:24:52
>>805
関数でそれが出来ているのは、ローカル変数が関数をコンパイルするときに
決定されるから。
それに対して、クラス属性やインスタンス属性は実行時に決定されないので、
Pythonの self. や Ruby の @ みたいに、名前をインスタンスの名前空間から
探す事を明示する必要がある。

C++ や Java など、クラスの名前空間が静的に決定される言語では
この限りではない。
874デフォルトの名無しさん:2011/02/06(日) 03:32:14
>>843
代入コスト<<<属性ルックアップのコスト
代入したほうが圧倒的に速い。
875デフォルトの名無しさん:2011/02/06(日) 03:51:25
金にならない研究など金と時間の無駄です。
基礎研究は別ですが。
876デフォルトの名無しさん:2011/02/06(日) 04:26:28
>>864
原理的に、仕様の選択の問題だろーが。

self.*やら@やらlet, my, val, varみたいな方法でスコープを明示することなくその問題を解決できるのかい?
それとも、PythonやらRubyにvarを導入してself.やら@をなくせと言いたかったの?

# いちゃもんつけるために頭ひねってどうすんのよ。
877デフォルトの名無しさん:2011/02/06(日) 04:32:13
>>865
それはLispじゃなくCommonLispの話。
多くの方言で破壊的代入はあるが、スコープやら含めて細部まで動作が統一されてるとは思えないから、
標準的な仕組みとしてあるのか、と書いた。

>>866
> 思っておりました
で? ていうか、実装依存なんじゃねーの?
878Perl評論家:2011/02/06(日) 08:37:42
言語オタうぜええ

言語オタはうぜえんだよばかが
モナド、がーべじコレクション、メモリとかわめいてんだろ?
なんか通ぶって そういうのなあ、簡単に実装できねえだろ?

おまえらさあそれで、新しい言語使ってクソゲロRuby以上にユーザー数いるの?
アプリとちがってなあ ごみすぎんだよつまらねえし たのしい?無理してんの?

研究してる俺SUGEEEEEEEEEEEEEEEEEEEE!!!
とかおもってんだろ?まじしねよ

そんななあアルゴリズマーとかわめいてるけどさああ、なんか全然新しい発見してないだろ?
あるものに、ちょこっと手を加えてるとかひらめいてるだけで

言語オタはうぜえんだよ 俺は凄いとおもわないけどな
通ぶってカスノゴミどもがらりーウォールとかみたいな開発部分を真似してやっているのがゆるせねえ
まじ死ねカス言語オタ
879Perl評論家:2011/02/06(日) 08:39:42
あ〜はやくしなねえかなこいつら
死ねよカス
880デフォルトの名無しさん:2011/02/06(日) 10:21:24
>>877
何をわけのわからんことを……
「標準的な」と言ってるから、それこそ標準規格であるCommonLispを
挙げたんじゃないか

有象無象が勝手に作れるLispの実装のことなんぞ知らんよ、そこに「標準的」という
言葉を使う意味があるのか?

ちなみに現在多分一番有名なLispの変種であるEmacs Lispにも勿論破壊的代入はあるよ
Emacs Lispはダイナミックスコープだが
881デフォルトの名無しさん:2011/02/06(日) 10:26:38
>>876
勿論解決できる、当たり前だろ?

上位のスコープの名前を優先する仕様であれば、nonlocalやglobalは要らなくなる
この場合は同じ名前のローカル変数が作れないという弊害があるが
別の名前をつければいいだけだ

その上で、Perlのようにオプショナルにbindingを明示する手段を提供すれば、
同じ名前のローカル変数を作りたいときには、myとかvarとか書いて明示すれば
作れるようにできる
通常は明示は要らない

さらにPerlのstrictモードのようなものをつければ、常時bindingの明示を強制して
typoにまつわる馬鹿馬鹿しいバグをコンパイル時に検出することが可能になる
882デフォルトの名無しさん:2011/02/06(日) 10:28:28
>その上で、Perlのようにオプショナルにbindingを明示する手段を提供すれば、

おっとここでの「Perl」はちょっとたとえが不適切だった
PerlにしろJavaScriptにしろ、bindingを明示しないとグローバルになってしまう
からな
そうだな、groovyあたりが適当か
883デフォルトの名無しさん:2011/02/06(日) 10:42:44
>>873
Pythonのような言語でも全ての属性が動的である必要はない気がする
Pythonで言うと動的な属性は__dict__に格納され、静的でいいばあいは__slots__
を使うのだと思ったけど、原理的に後者の場合は明示が要らないはず

要は、コンパイル時にクラスの属性として確定しているものは
普通に自由変数扱いにできて(つまり修飾不要)
ダイナミックな属性はそれこそ自由変数selfだのdynamicだの経由でアクセス
するという設計も一応可能では

それと、現在の仕様であってもselfを自由変数にすることは可能で
その違いは第一引数として明示する必要がない、という点に出てくる
(もちろんPythonで第一引数selfを明示させる「意図」は耳タコが出来るほど
聞いたから理解はしているつもりだが)
884デフォルトの名無しさん:2011/02/06(日) 13:32:14
>>880
マイナーな標準規格と言わざるをえないな。
そして、破壊的代入がないなんて話は誰もしていない。スコープの話をしている。

>>881
> 上位のスコープの名前を優先する仕様であれば、nonlocalやglobalは要らなくなる
それは、スコープを制限することでスコープは自ずと明示されるという、仕様の選択。
明らかに不便になるのだから、それで解決できたとは言えないよ。

> その上で、Perlのようにオプショナルにbindingを明示する手段を提供すれば、
そういう方法を使わずに解決できる方法をきいてんの。

全く新しい考え方を持ち出さない限りは、原理的に、仕様の選択なんだよ。


君の書いたことは、つまり、こういうことだ。
ifの後にインデントもendもなしにブロックを明示できるのか、という話に対し、
ifの後を1つの式に限るのならどちらも必要ない。その上で、オプショナルに{}でブロックを明示すればよい、
と返している。

それを君が、実に明解で非の付け所のない話で、それで全て解決すると思ったのなら、
君の主張は正しかったと思い込んでくれて構わない。
885デフォルトの名無しさん:2011/02/06(日) 13:36:14
お前ら面白いな。
結局[Python|Ruby][でも|なら]こう[す|な]れば、そうできる。
ちゅう話に収束して[Python|Ruby]に物凄い不満を表明しているだけに終始している。

お前ら、もう全然別の物を作ったらいんじゃね?
886デフォルトの名無しさん:2011/02/06(日) 13:49:32
>>884
なんか話がどんどんそれてるな
俺はPythonをどうしたらいいとか、そういう話をしてるんじゃないぞ?

元の話は、「一般論として」上位のスコープにある変数を更新するのに何か
問題があるかという話をしていて、俺はそれ自体は別に何も問題はないと言ったんだ
そこに問題を抱えているのはPythonという言語特有の問題にすぎないだろ
俺はそこには関心がない

>明らかに不便になるのだから、それで解決できたとは言えないよ。

だからさー、Pythonの話をしてないのに、Pythonの言語仕様の範囲内で「解決」
しなきゃいかんのよ
Pythonなんぞどうだっていい

それと、悪いけど、Python3.xが出るまではレキシカル変数の更新をする手段が
そもそも無く、
今でもglobal「文」やnonlocal「文」を明示的に必要とすることに比べれば
レキシカル変数と同じ名前のローカル変数を使えないとしても、別に「不便」でも
何でもないな
Pythonユーザは単に別の名前をつけるという穏当な手段よりはるかに汚い
ハックに甘んじてきたんだろう
887デフォルトの名無しさん:2011/02/06(日) 13:57:20
だからPython信者を刺激するなって。
宗教は争いの種にしかならん。
888デフォルトの名無しさん:2011/02/06(日) 13:58:09
>>884
CommonLispをマイナーな標準規格って……
無知ってこえーな
889デフォルトの名無しさん:2011/02/06(日) 14:04:59
>>887
このスレってPython信者を弄るスレかと思ってた
890デフォルトの名無しさん:2011/02/06(日) 14:11:06
>>886
そりゃ、下位にスコープを持ち得ない言語であるなら、上位スコープにある変数を更新するのに何ら問題はない。
下位にスコープを持ち得たとしても、それが上位スコープと衝突することがないのなら、問題ない。
そこまでは、何ら異議はない。
もし君にとってそれで十分だったのなら、これまでかけあったゲロは、かけあう必要のなかったものだ。

ただ、名前が衝突しうるなら、衝突を避ける手段を取る必要がある、という話をしていて、
それはPythonに限らず、どの言語でも、その言語の範囲内で解決しないといけない問題だ。
Pythonにこだわってるのはむしろ君だ。

> 今でもglobal「文」やnonlocal「文」を明示的に必要とすることに比べれば
> レキシカル変数と同じ名前のローカル変数を使えないとしても、別に「不便」でも
> 何でもないな

それなら「同じ名前の変数は使えない」と思い込んでいれば、お望み通りの結果に。
891デフォルトの名無しさん:2011/02/06(日) 14:14:38
>>888
ひとつの方言としてはメジャーだが、標準規格と偉そうに言うにはマイナーだろ。
SchemeとEmacs LispもCommonLispの規格に準拠したら、メジャーだと認めてもいいが。
892デフォルトの名無しさん:2011/02/06(日) 14:17:51
>>890
名前の衝突なんて話は当たり前で、それは参照でも起こることだろう

更新において何か特別な問題があるとかいってる奴がいるから(>>861)
俺は>>862で別にそんなことはないと言っただけだぞ

衝突回避のための仕様の選択という話なら、Pythonは衝突を回避するための手段を
提供するどころか、上位のレキシカル変数にアクセスするための手段すら
提供していなかったわけだが……
893デフォルトの名無しさん:2011/02/06(日) 14:18:46
>>891
ANSIの標準規格を捕まえてマイナーな標準規格とか言うのなら
この世の言語の大半は話にならん
894デフォルトの名無しさん:2011/02/06(日) 14:23:37
俺もウンザリだからこう言い換えよう

上位スコープの変数の更新を問題なく行えるような言語の設計は普通に可能である
ただし特定の言語(Pythonなど)がそう設計されているとは限らない

それでいいか
895デフォルトの名無しさん:2011/02/06(日) 14:53:38
>>892
そうだね。Pythonでは参照時は問題が起こらない仕様になっているので、当初は参照での話をしていなかった。
君が話を一般的にしたときに、俺は、言語によっては参照でも問題が生じうることを思い出すべきだった。それを思い出せなかったのは俺の手落ちだ。

実際は、更新時に限らず、参照時であっても、仕様の選択の問題だ。
もちろん、更新時に仕様の選択により問題が生じうることに間違いはないが。


> 衝突回避のための仕様の選択という話なら、Pythonは衝突を回避するための手段を
> 提供するどころか、上位のレキシカル変数にアクセスするための手段すら
うん。そうだよ。
多くの場合は、引数と値返しで対応できるけど、導入されたね。

>>894
そういう設計は当然、可能だよ。そのために、何らかの、名前を区別する構文を用意するなど、何らかの仕様の選択を行う必要があるだけで。
Pythonだって、新たな構文を導入したら可能だろうね。
896デフォルトの名無しさん:2011/02/06(日) 14:56:42
信者じゃない。エキスパートだ。
897デフォルトの名無しさん:2011/02/06(日) 15:02:34
エキスパート△
898デフォルトの名無しさん:2011/02/06(日) 15:13:49
>>883
__slot__ の中身も実行時に参照されるデータで、コンパイル時に決定できないよ。
Pythonでコンパイル時に名前の参照先を決定できるのは関数の内側だけ。
899デフォルトの名無しさん:2011/02/06(日) 15:57:46
ローカル変数が my とかふざけた名前付けてるからPerlが嫌いだ。最初に見たときは冗談としか思えなかった。
900デフォルトの名無しさん:2011/02/06(日) 16:03:00
Perlはコミュニティ全体にそういうおふざけが好きな空気があるな。
901デフォルトの名無しさん:2011/02/06(日) 16:03:11
VisualBasicさんをdisるのはやめろ
902デフォルトの名無しさん:2011/02/06(日) 18:36:08
この人たちは、自分が誰と戦っていると考えてんだろうな
903デフォルトの名無しさん:2011/02/06(日) 21:08:36
自分自身です
多重人格者の場合は自分の分身と永遠に戦い続けます
904デフォルトの名無しさん:2011/02/06(日) 22:46:41
myとかourとか分かりやすくていいと思うが。
905akiyan:2011/02/06(日) 23:29:35
cakePHP使ってるとRails方面の方々がご丁寧にもかけつけてあーだこーだ説教してくる
PHPは駄目だとかcakeはセキュリティホールが云々だの
もう少し建設的な話できないのかな
906デフォルトの名無しさん:2011/02/06(日) 23:33:31
所詮ruby厨だからな
このスレ見てりゃわかるけどさ
907デフォルトの名無しさん:2011/02/06(日) 23:33:52
なんだ突然
908デフォルトの名無しさん:2011/02/07(月) 00:19:22
エキスパートじゃない。自称エキスパートの信者だ。
909デフォルトの名無しさん:2011/02/07(月) 01:40:32
あらやだ
910デフォルトの名無しさん:2011/02/07(月) 02:04:48
>>904
さすがに my は恥ずかしい
911デフォルトの名無しさん:2011/02/07(月) 02:07:29
マイマイまいんちゃんdisってんのか
912デフォルトの名無しさん:2011/02/07(月) 08:27:18
Rubyがselfを書かない方法を採用したのは、カプセル化を言語仕様として強制するため。
そのために obj.hoge という表記は常にメソッドの呼び出しである、と定め
属性へのアクセスと明確に区別されるようになってる。

ただ弊害として、属性値には直接アクセスできない
→ 属性値としてメソッドオブジェクトを入れればそれはメソッド、なんて仕様だとそのメソッドもアクセス不能
→ 全てがオブジェクトな中で、メソッドだけは特別扱い
…ということになってるが。
913デフォルトの名無しさん:2011/02/07(月) 20:14:25
>ただ弊害として、属性値には直接アクセスできない
アクセッサあるし、別にいいじゃん
ゲッターもセッターもいらんでしょ
914デフォルトの名無しさん:2011/02/07(月) 21:30:53
>>904
最初、myと聞いたときには、なんかイヤな
感じだった。
その後、ourと聞いたときは、あー、
そういう命名なのね、としか思わなかった。
915デフォルトの名無しさん:2011/02/08(火) 01:02:18
Rubyって関数とメソッドは区別されるんか。
916デフォルトの名無しさん:2011/02/08(火) 01:04:41
Ruby初心者スレで関数とかいうと面倒くさい人たちに説教喰らうことは確か
917デフォルトの名無しさん:2011/02/08(火) 03:14:41
Pythonはそこらへんいい意味で曖昧
918デフォルトの名無しさん:2011/02/08(火) 03:40:59
>>916
Rubyはメソッドだけじゃなく、関数もあるから、メソッドを関数と呼ぶようなことをしなければ無問題。
919デフォルトの名無しさん:2011/02/08(火) 04:31:16
まとめると、Rubyはカス、こうですか?わかりますん。
920デフォルトの名無しさん:2011/02/08(火) 04:47:14
カスじゃない人は何使ってるんでしょうね
921デフォルトの名無しさん:2011/02/08(火) 04:49:17
GTKはカス
922カスRubyler:2011/02/08(火) 15:01:40
カス
923デフォルトの名無しさん:2011/02/08(火) 15:03:36
Ruby=火遁 ヒトカゲ
Perl=水遁 ゼニガメ
Python=木遁 フシギダネ
924Perl評論家:2011/02/08(火) 17:59:40
>>923
激しく同意
925デフォルトの名無しさん:2011/02/08(火) 18:48:13
>>915
関数はメソッドの一種、ということになってる。
926デフォルトの名無しさん:2011/02/09(水) 00:31:36
>>917
曖昧じゃないよ。関数だよ。
ただの関数だからこそ、selfが必要。

>>918
よくわからんけど、lambdaとProc.newとブロックとメソッドと関数があるの?他にもある?
927デフォルトの名無しさん:2011/02/09(水) 01:53:56
Rubyはブロックがそのままオブジェクトとして使えるようになると、より便利になrんだろうか
928デフォルトの名無しさん:2011/02/09(水) 02:55:58
>>926
究極的にはメソッドとオブジェクトだけ。
関数はメソッドの一種で、lambdaやprocやブロックが返すのは手続きをラップしたオブジェクト。
929デフォルトの名無しさん:2011/02/09(水) 03:23:59
>>926
表記上だけかもしれないけどこういうこと

>>> def A():
... pass
...
>>> def B(self):
... pass
...
>>> class C:
... @classmethod
... def D(cls):
... pass
... def E(self):
... pass
>>> setattr(C, "A", A)
>>> setattr(C, "B", B)

>>> A
<function A at 0xb76a32cc>
>>> B
<function B at 0xb77991b4>
>>> C.A
<unbound method C.A>
>>> C.B
<unbound method C.B>
>>> C.D
<bound method classobj.D of <class __main__.C at 0xb77a0cec>>
>>> C.E
<unbound method C.E>
930929:2011/02/09(水) 03:26:44
肝心の箇所忘れてた

>>> c = C()
>>> c
<__main__.C instance at 0xb77a29cc>
>>> c.A
<bound method C.A of <__main__.C instance at 0xb77a29cc>>
>>> c.A()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: A() takes no arguments (1 given)
>>> c.B
<bound method C.B of <__main__.C instance at 0xb77a29cc>>
>>> c.B()
931デフォルトの名無しさん:2011/02/09(水) 03:53:04
>>929
表記上だけっぽいね。
In [1]: class Klass:
...: def f(self):
...: pass
...:

In [2]: def _g(self):
...: pass
...:

In [3]: Klass.g = _g

In [4]: _g
Out[4]: <function _g at 0x8df3f44>

In [5]: Klass.g
Out[5]: <unbound method Klass._g>

In [6]: Klass.f
Out[6]: <unbound method Klass.f>

In [7]: _g
Out[7]: <function _g at 0x8df3f44>
932Perl評論家:2011/02/09(水) 11:53:18
おいみんな

Perldocなおってるぞ
933デフォルトの名無しさん:2011/02/09(水) 12:17:19
Rubyのは
「メソッド定義で関数のように振舞うメソッドを定義することができる」
「そのように定義された、どこでもレシーバなしで呼べるメソッドを関数的メソッドと呼ぶ」
「さらにそれを関数と略して呼ぶ人も中にはいる」
という程度
オブジェクトに属するメソッドしか作れないので、本当の意味での function を作成することはできない

関数的メソッドが特定のオブジェクトかモジュールに所属していることを隠すことは本来できないので
わざわざ関数と別途呼ぶことは初心者の理解を妨げるただの欺瞞だという考え方がないわけでもない
>>915>>926みたいに「じゃあ関数とメソッドの関係ってなんじゃらほ」ということになる
「Arrayクラスのjon関数」とか表現してしまう人も出る始末
934デフォルトの名無しさん:2011/02/09(水) 14:36:25
>>933
Rubyのモジュール関数は、どう解釈すればいいの?
「Rubyのモジュール関数」も「初心者の理解を妨げるただの欺瞞」の一つなのかな?

たとえばStandard MLのような関数型言語にもモジュールという概念はあって、
ある関数は特定のモジュールに所属していると考えることができる。そうであるならば、
「Rubyのモジュール関数」は「関数である」と解釈してもいいと思うんだけど....。

この話、継承がからむとややこしくなるから、クラスの概念は除外するよ。
935デフォルトの名無しさん:2011/02/09(水) 14:56:44
Rubyのモジュールは、便利だから他の言語仕様から取り込んだだけだと思う。
全てがオブジェクトでなければならないと決めているわけじゃないだろうし。
できるだけそうなるように作ったけど、便利なものは取り込んで行くという方針なのでは?
936デフォルトの名無しさん:2011/02/09(水) 14:57:22
>>934
モジュール関数というものもない(一応)

 ・ foo というメソッドがレシーバつきで呼べない private の設定になっている
 ・ foo という名前のメソッドがそのモジュールの特異メソッドとしても定義されている
 ・ つまり、普段は M.foo で使え、面倒なときは include M して foo でも使える

という状態を、他の言語を利用してきた人向けにモジュール関数と呼ぶことがあるというだけ

Ruby の attr_accessor で作ったメソッドを指して「Rubyにもアクセサがあります」と言ったらたぶんみんな怒るだろ
動作としては「いわゆるアクセサ」じゃないから
Ruby の文脈で外見が無理矢理それっぽく動作するものを探してそう呼んでるだけのグロテスクな存在

全て、ただのメソッド
937デフォルトの名無しさん:2011/02/09(水) 15:08:04
Rubyはクラスやモジュールの存在や相互の関係が学んですぐ見えるようになるからな
それをわざわざ別の概念で隠してしまうのが、心情的に不快なのだろう

「これはputs関数です」
「いやKernelクラスのputsメソッドを呼んでるだけだよね? ふつうにputsメソッドでよくね??」

irb> Kernel.__send__(:puts, "a")
a
938デフォルトの名無しさん:2011/02/09(水) 15:13:58
殴りたくなるな
939デフォルトの名無しさん:2011/02/09(水) 15:19:00
メソッドは関数ではない
というところの認識からして違う
メソッドと関数を同一視する言語の人から見ればそれは奇妙だろう
940934:2011/02/09(水) 15:22:41
>>936
>・ つまり、普段は M.foo で使え、面倒なときは include M して foo でも使える

Standard MLには(Rubyのincludeに相当する)open宣言というのがあるから、
普段は「関数」を M.foo で使え、面倒なときは open M して foo でも使える。
もちろん open宣言は対話環境(インタプリタ)でも利用できる。ということは、

「Standard MLの関数」とは、Standard MLの文脈で外見が無理矢理それっぽく
動作するものを探してそう呼んでるだけの「グロテスクな存在」なのかな?
941デフォルトの名無しさん:2011/02/09(水) 15:41:14
>>939
メソッドである時点で関数とは呼べないのだ、という認識がずれてるな
Rubyのメソッドは関数のようなかっちりしたものではない
もっとふにゃっとした、オブジェクトがないと立っていられない類の概念
942デフォルトの名無しさん:2011/02/09(水) 15:46:22
Rubyには基本、オブジェクトしかないからな
関数型のパラダイム持ち込まれても困る
N88-BASICにクラス持ち込まれても困るだろ
943デフォルトの名無しさん:2011/02/09(水) 16:53:26
ルーチンのことを「関数」と呼ぶ、というのは「関数型のパラダイム」じゃないぞ。
944Perl忍者 ◆M5ZWRnXOj6 :2011/02/09(水) 18:46:20
サブルーチンって値を返さないやつ?
945デフォルトの名無しさん:2011/02/09(水) 19:08:55
値を返さないのはプロシージャ(手続き)じゃね?
946デフォルトの名無しさん:2011/02/09(水) 19:11:34
数値シミュレーションにオブジェクト指向を生かすには、どんな設計にしたらいいんだ
947Perl忍者 ◆M5ZWRnXOj6 :2011/02/09(水) 19:31:59
楽しいの?
948デフォルトの名無しさん:2011/02/09(水) 19:36:51
>>946
アプリケーションの機能に言語設計上の特性が影響するとは思えないんだが…
949デフォルトの名無しさん:2011/02/09(水) 19:56:17
ステートパターン使うなりで、保守しやすくなったりせんの?
950デフォルトの名無しさん:2011/02/09(水) 19:59:54
>>949
プログラム保守上の難易度とアプリケーションの機能にどんな関係が…
951デフォルトの名無しさん:2011/02/09(水) 20:27:12
>アプリケーションの機能に言語設計上の特性が影響するとは思えないんだが…
>プログラム保守上の難易度とアプリケーションの機能にどんな関係が…
ごめん。煽りでなしに、バカだから何いってるのかわからない。
やりたいのは産業用ロボットのシミュレーションで、モータのパラメータや、
重心位置、アーム座標やモータの位置、先端速度・加速度なんかの似たパラメータを
含むものをオブジェクトとして、まとめてしまいたい。
で、オブジェクトとしてまとめても、アームの形状や軸数、
物と衝突したときなんかは、更新するときの式が微妙に変わってくる
後はブロック線図を、どうプログラムに落とすのかが気になったので
どんな感じに設計してプログラム書いてるんだろーって思って1行レス
952デフォルトの名無しさん:2011/02/09(水) 20:32:10
>>951
更新するときの式で、その微妙に変わってくる部分を
アームオブジェクトや衝突対象のオブジェクトに訊ねるor任せる、じゃね?
953デフォルトの名無しさん:2011/02/09(水) 20:43:56
>>951
アプローチはいくつかあるが、あなたがちょっとオブジェクト指向について勘違いして
いる節があるので難しいかもしれない。

1) 産業用ロボット全体のシミュレーションをオブジェクト指向言語ででっちあげる。
  ※言語が変わるだけで、全般的なプログラム設計自体はさほど変化ない。

2) オブジェクト指向言語によって、有意な規模で分割した産業用ロボットの各パーツ
  毎にシミュレートさせた総体として、結果産業用ロボット全体のシミュレーションを
  行う。※すごくやっかい、オブジェクト指向と産業用ロボットそのものに対する詳細
  な理解が必要。

1)がオブジェクト指向から最も遠い使い方、2)がその正反対。
954デフォルトの名無しさん:2011/02/09(水) 21:17:59
>>952
そんな感じに作ってはいたんですが、オブジェクトによっては不要なパラメータ出てきたので、
他の方々はアームオブジェクトを派生させるのかなとか、
数式部分だけオブジェクトにしてたりするのかなとか、
>>953
やってみたかったのは2の方です。モジュール毎にテストして、最後に組み合わせたかったので。
OOPについて理解してない状態で、パラメータやオブジェクトを後から追加していったら、
楽に実験できるかと思ってたんですが、かえって泥沼にハマった記憶があります。
後からコードを継ぎ足していくような書き方には向いてないんですかね?
それとも、入門者で設計が不味かったでしょうか?
955デフォルトの名無しさん:2011/02/09(水) 21:42:46
>>954
> 後からコードを継ぎ足していくような書き方には向いてないんですかね?
オブジェクトの振る舞いは大抵そうやって継ぎ足していくというか、派生オブジェクトは
まさにそうやって作られる。

> それとも、入門者で設計が不味かったでしょうか?
というより、直す時になるべく少ししか弄らないようにしてない?
部分的に弄ってなんとかしようとしてオブジェクト的には台無しとかよくあるよ。
オブジェクト化の副産物として、各属性や手続き(メソッド)は割と独立しているから
ばらしてオブジェクトその物を作り変えてしまうことも(俺は)よくやるよ。
956デフォルトの名無しさん:2011/02/09(水) 22:34:15
python使いでスタープログラマーなんているの?
957デフォルトの名無しさん:2011/02/09(水) 22:47:23
まつもとゆきひろさん(おやくそく
958デフォルトの名無しさん:2011/02/09(水) 22:54:32
星はまわりが暗いからこそ輝ける
959デフォルトの名無しさん:2011/02/10(木) 01:50:47
>>942
>>941が書いてるのはそう言う意味じゃないと思うよ。
960デフォルトの名無しさん:2011/02/10(木) 11:44:50
なんかウィルスの警告が出てうざいな
961デフォルトの名無しさん:2011/02/11(金) 00:49:58
サンフランシスコでは誰もPerlのことを話題にしないんだとさ。Perl使ってるのは日本ぐらい?
ttp://mtl.recruit.co.jp/blog/2010/11/qconsf_1.html
> 最後に余談ですが、QconSFの話の中でPerlは誰も話題にしてませんでした。
> MTLではPerl多いのですが…。JavaやRubyが多いコミュニティのようですね。
> Pythonもたまに出てくる。PHPはFacebookで使ってますが「なぜPHP使ってるの?」
> なんて質問が出る始末…。地域によって流行があるものですね。

962Perl評論家:2011/02/11(金) 01:06:11
おれさあ
perl使われてないとか気にしたことないよ

おまえさあ 使われてないとか きにしてんの?

俺はPerlが凄いとおもってんだよ

お前きにしてんだろ? 今流行の言語は〜〜だ Perl?時代遅れ みたいな
あのさあ お前はばかだろ?愛着とかないの?

思い入れとかないんだろうなあ、かっこつけて生産重視とかでしか見てないんだろ?
そんな、プログラミングには感情的なこと入らないみたいな
だろ? お前がプログラマならその流行に便乗してもしかたないけどさああ

お前みたいなカスはすぐ物とか捨ててソウだな 大事にしなさそう
物を大事にしないやつは帰れカス

もう1回教育受けなおしなさい^^;
963デフォルトの名無しさん:2011/02/11(金) 01:18:19
少なくともpearlは失敗作だし
いまさら新規案件でも使う気にならない
リプレースの機会があればガンガン乗り換えてる
未練とか愛着とか全く感じないね
964デフォルトの名無しさん:2011/02/11(金) 03:08:04
PerlはLinuxディストリに標準で入ってるから、なんか使わないといけないような気にさせられる。
でも、もう消していいんだね。
965デフォルトの名無しさん:2011/02/11(金) 04:28:37
>>963
乗り換え先の言語についてkwsk
966デフォルトの名無しさん:2011/02/11(金) 05:42:32
そもそも案件とかリプレースとか言っちゃってる人間に「失敗作」だのと宣われる謂れは無いと思うぞPerl
あれは元々単なるテキスト処理言語であって、それ以上でもそれ以下でもない
一時期Web言語として名を馳せたのは、テキスト処理とWebプログラミングが非常に相性が良かったからで
そもそも目的外の使い方をしておいて失敗作だの未練だの愛着だのワケわかんね
967デフォルトの名無しさん:2011/02/11(金) 05:46:09
>>963 じゃないけど
pearlはweb用途以外でも糞だろ
968デフォルトの名無しさん:2011/02/11(金) 05:53:41
もしかすて: Perl
969デフォルトの名無しさん:2011/02/11(金) 05:55:35
もちろん気付いていたが放置した
今は全く反省していない
970デフォルトの名無しさん:2011/02/11(金) 06:13:45
糞な所が無い言語というのも中々無い物だがな。
最初から完成された言語なんて無い訳だから、どんな言語も多少は
しがらみを持っている。それが歴史の古い言語なら尚更。
971デフォルトの名無しさん:2011/02/11(金) 06:35:57
606 デフォルトの名無しさん [sage] 2011/02/11(金) 06:01:05 ID: Be:
    DirectShow のスレッドと迷ったけど、
    CE 特有の癖があるかも + ほんとうに DirectShow なのかわからないので
    とりあえずこっちに。

    PlatformBuilder6

    バッテリー警告とかで、
    システム全体のサウンドを停止して
    自分の警告音だけをならす方法ってありますか?

    警告音を鳴らし始めるときに、すべてのサウンドを停止して、
    警告音が鳴ってる間になろうとする、ほかのサウンドをブロックしたいのです。

    DirectSound だと排他っていうみたいなのですが、
    DirectSound はもうないようなので。
972Perl評論家:2011/02/11(金) 08:15:13
しがらみなんてないぜみたいな海外きどりがうぜえんだよかす

消えろよはやく グローバルオタうぜえ
973デフォルトの名無しさん:2011/02/11(金) 11:12:05
それは負け惜しみにしか聞こえません
974デフォルトの名無しさん:2011/02/11(金) 13:05:31
Perlerの悔しまぎれがひどすぎるwwww
975デフォルトの名無しさん:2011/02/11(金) 13:54:45
>>967
計算機言語を糞呼ばわりする奴は糞。
976デフォルトの名無しさん:2011/02/11(金) 14:30:43
pearlは糞だろ
977デフォルトの名無しさん:2011/02/11(金) 17:56:38
>>962
Perl評論家w 必死すぎるww
978デフォルトの名無しさん:2011/02/11(金) 17:59:42
必死なPerl評論家って何かに似てると思ったら、Javaに叩かれてたころのコボラーにそっくりだ。
反論するときの必死さがそっくり。

>>970
>糞な所が無い言語というのも中々無い物だがな。
その通り。糞のない言語なんてない。あるのはどのくらい糞が多いか少ないかだけ。
もちろんPerlは糞が多い。
979デフォルトの名無しさん:2011/02/11(金) 18:15:27
おれさあ
COBOL使われてないとか気にしたことないよ

おまえさあ 使われてないとか きにしてんの?

俺はCOBOLが凄いとおもってんだよ

お前きにしてんだろ? 今流行の言語は〜〜だ COBOLl?時代遅れ みたいな
あのさあ お前はばかだろ?愛着とかないの?

思い入れとかないんだろうなあ、かっこつけて生産重視とかでしか見てないんだろ?
そんな、プログラミングには感情的なこと入らないみたいな
だろ? お前がプログラマならその流行に便乗してもしかたないけどさああ

お前みたいなカスはすぐ物とか捨ててソウだな 大事にしなさそう
物を大事にしないやつは帰れカス

もう1回教育受けなおしなさい^^;
980デフォルトの名無しさん:2011/02/11(金) 18:21:19
最早、Perl評論家=Perl忍者と同レベルの奴しか居ないクソスレと成りました。
981デフォルトの名無しさん:2011/02/11(金) 18:31:25
>>978
>Javaに叩かれてたころのコボラーにそっくりだ。

『コボルなら!俺でもコボルなら見下せる!』みたいな輩がいたって事かな
自分は一度も見た事無いけど、そういう世界に住んでる人もいるのかな
982デフォルトの名無しさん:2011/02/11(金) 18:46:10
このご時世にperl6のカブキっぷりはすげーと思う
983デフォルトの名無しさん:2011/02/11(金) 20:12:39
Ruby はいつの間にか GPL から BSDL に変わったんだね
これは素晴らしい
984デフォルトの名無しさん:2011/02/11(金) 20:37:55
Perlが今でも人気あるのは日本とロシアぐらいだね。
世界的に見て、ウェブ系だとPHPが圧倒的に普及してる。PythonはUNIX系OSのシステムツールって分野も含めて、そこそこ。
RubyはRailsと同義語みたいな扱いで、ウェブ系に限ればやっぱりそこそこ。
俺はPerl6は凄く良いと思うけど、いつまで経ってもリリースされないんじゃどうしようもない。
今さらarrayリファレンスをforで回せるようにするとか、いつまでもPerl5にこだわっても意味ないと思うんだよな。
985デフォルトの名無しさん:2011/02/11(金) 20:42:47
>>984
Pythonってもはやそこそこじゃないんじゃない?
一応今月のTIOBEでPHP抜かしちゃったし。

日本だとまだまだマイナーだけどな。
986デフォルトの名無しさん:2011/02/11(金) 20:43:53
Facebookの人がPHP使ってる理由について、本当はC++がいいけど、C++の優秀なプログラマーをたくさん集めるのは難しい、だから、HipHop for PHPを作った、って言ってたな。
987デフォルトの名無しさん:2011/02/11(金) 20:46:20
いや、案件数というか、数はPHPが多いよ。
ただし、Web2.0系って言うの?その手の自社コンテンツ持ったスタートアップ企業だと、確かにPHPよりPythonかRubyの方が多いと思うけど。
その辺は日本も海外も同じだな。日本でPHPが強いのは中小の受託系制作会社だから。
988デフォルトの名無しさん:2011/02/11(金) 20:51:44
COBOLって十進数の計算をそのままできるから、
銀行の給与計算では今でも重宝されてんじゃねーの?
講義で教授が言ってたお!!趣味グラマやweb系には、
カラツバ法なんて永遠に巡り会うことなさそうだけど
計算機科学って、どこで使うの?
989デフォルトの名無しさん:2011/02/11(金) 21:25:50
>>985
いつの間にか更新されてたんだな。
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
990Perl評論家:2011/02/11(金) 21:37:39
中小のほうがかっこいいよ

WEB系は中小のほうがかっこいい
991デフォルトの名無しさん:2011/02/11(金) 21:44:08
15位のNXT-Gってぜんぜん知らねー
16位のAdaとか意味不明の躍進
今更何かあったのか
992デフォルトの名無しさん:2011/02/11(金) 21:55:49
俺はc++の人気の下がり方と
下層ながらにも徐々に確実に勢力を伸ばしているc#が気になった
個人的には、ミゲル・デ・イカザ萌えなので、
MicrosoftやGNU、Oracle,Googleの思惑を越えて,一番に流行ってほしいが
993デフォルトの名無しさん:2011/02/11(金) 22:02:16
nxt-gはLEGO Mindstormsで使う言語のグラフィカルな奴だろうか。
http://www.ortop.org/NXT_Tutorial/

Goの暴落は悲しいな…。
994デフォルトの名無しさん:2011/02/11(金) 22:19:35
goは何よりも絵に書いた餅だし、
少しも金に結びつきそうにないから、
使う人は好事家に限られるでしょ
アプリケーションへの組込み用途に特化したluaの方が、
まだまだ今後も需要が伸びそう
これ見る限りじゃ、LLはpythonの一人勝ちっぽいな
995デフォルトの名無しさん:2011/02/11(金) 22:31:55
>>994
PHPを見落としてるぞ。
しかし、Pythonが何処で使われてるのか、さっぱり分からんな。
UNIX系OSのツールでもPerl程度ぐらいにしか使われてないし。
GAE人気だとしたら、Javaは右肩下がりなのが分からん。
996Perl評論家:2011/02/11(金) 22:33:41
997Perl評論家:2011/02/11(金) 22:34:37
998デフォルトの名無しさん:2011/02/11(金) 22:35:50
>>995
TIOBEのリストは現実世界で実用に使われてる/使われてないとはあまり関係はないよ
単に話題になってるかどうかだから
そうじゃなかったらFortranあたりを差し置いてGoが出てくるなんてありえんだろ
999デフォルトの名無しさん:2011/02/11(金) 22:38:10
>>995
ぱっと思いつくのはAnaconda、Yum、Mailmanとか
http://en.wikipedia.org/wiki/List_of_Python_software
1000Perl評論家:2011/02/11(金) 22:43:04
スレ立てるな!!!!!!!!


1000!!!!!!!!!!!!!!!!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。