【Perl,PHP】LLバトルロワイヤル19【Ruby,Python】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2011/11/04(金) 20:22:50.23エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・
さあ、死ぬまで語りやがれ!!!
■LLとは?
軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、
コードの作成や修正が容易と見なされるプログラミング言語のことを指す。
ここでいう「軽さ」はプログラマの負担の軽重を指し、
実行速度に優れているという意味ではない。
現在の水準では
・インタプリタ
・動的型
・正規表現
・クロージャ
などを利用できるものがLLと呼ばれることが多い。(Wikipediaより)
前スレ
【Perl,PHP】LLバトルロワイヤル18【Ruby,Python】
http://hibari.2ch.net/test/read.cgi/tech/1310082014/
0002デフォルトの名無しさん
2011/11/04(金) 20:39:37.790003デフォルトの名無しさん
2011/11/04(金) 22:43:59.10>エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・
Tclも仲間に入れてやってください。
機能が少ないと思っている人が多いようですが、
汎用言語として満たすべき機能は一通りそろってます。
高階関数や無名関数だって使えます。
残念ながら、クロージャーは素のTclにはありませんが、
Jimという処理系にはちゃんとあります。
覚えることも少ないので学習コストも低く、生産性も高いです。
ある問題を解決しようとして、それがPerlやJavaやCで可能な場合、
そのほとんどはTclでも可能だと考えていただいて差し支えありません。
クセが強くてなじみにくいという評価をされることが多いTclですが、
本当は結構イケてる言語です。
といいつつ最近はPythonに夢中ですけどね。
0004デフォルトの名無しさん
2011/11/05(土) 03:28:53.220005デフォルトの名無しさん
2011/11/05(土) 14:39:32.510006デフォルトの名無しさん
2011/11/05(土) 15:13:14.01みんなが自分の好きな言語について語ればいいと思うよ。
でも、LLVMはここで言うLLとは違うからな。
0007デフォルトの名無しさん
2011/11/05(土) 16:10:49.530008デフォルトの名無しさん
2011/11/05(土) 16:30:22.45いわゆるアメリカンサイズ
0009デフォルトの名無しさん
2011/11/05(土) 17:05:22.76一部のバカがスクリプトのことを手軽・簡単の意味でLLとか勝手に間違ってるだけ
ほんと恥ずかしいわ
0010デフォルトの名無しさん
2011/11/05(土) 17:49:24.500011デフォルトの名無しさん
2011/11/05(土) 18:05:45.910012デフォルトの名無しさん
2011/11/05(土) 18:16:37.89感染した研究員はどのスレッドにも同じコピペを
繰り返すといった症状が報告されています。
研究員によると思われる書き込みがあっても
近づかないようにしてください。
京都大学
0013デフォルトの名無しさん
2011/11/05(土) 18:18:36.320014デフォルトの名無しさん
2011/11/05(土) 18:24:16.71むしろ、海外だとC言語みたいなもののことだと思われるらしいな
0015デフォルトの名無しさん
2011/11/06(日) 10:00:19.13亀だけど、ありがとう
じゃあhaskellも参入と言う事で逝きます
0016デフォルトの名無しさん
2011/11/06(日) 13:30:30.35そうなんだむしろ逆なのかよw
もう言わないようにしとくわ
0017デフォルトの名無しさん
2011/11/06(日) 13:48:47.56日本でも通じる
0018デフォルトの名無しさん
2011/11/06(日) 13:56:16.950019デフォルトの名無しさん
2011/11/06(日) 14:01:10.97和製英語なんだから
英語圏の人間とやりとりもしないのに
海外で……とか言ってるほうが滑稽だわ
0020デフォルトの名無しさん
2011/11/06(日) 15:34:42.550021デフォルトの名無しさん
2011/11/06(日) 15:45:34.91scripting languages as "LL" in Japan.
We use words in order to communicate,
but you never communicate with an English speaker, I guess.
0022デフォルトの名無しさん
2011/11/06(日) 17:16:56.920023デフォルトの名無しさん
2011/11/06(日) 17:30:30.590024デフォルトの名無しさん
2011/11/06(日) 17:55:43.45スクリプトキディって言葉とかぶるから
バカかよ
見下されるのがいやなんだろ C使いとかに スクリプト(笑)
みたいに
だからLLとか造語つくってんだろうな かっこいい風に
0025デフォルトの名無しさん
2011/11/06(日) 18:18:39.290026デフォルトの名無しさん
2011/11/06(日) 21:58:28.89前者は言語の特性、後者は処理系の特性。
だからどうしたっていう話だけど。
でも、記述が容易な言語がどうして軽量言語になってしまうのかは意味が分からないよね。
スクリプトでいいじゃん。
0027デフォルトの名無しさん
2011/11/06(日) 22:16:56.95安易言語でいいじゃん
0028デフォルトの名無しさん
2011/11/07(月) 11:43:42.83記述が容易=書くのが少ない
だろ
だから軽量だろ
あほかよ
風変わりに物事を捉えてかっこつけてるジャップ乙
0029デフォルトの名無しさん
2011/11/07(月) 11:52:55.32低脳乙w
0030デフォルトの名無しさん
2011/11/08(火) 03:48:24.210031デフォルトの名無しさん
2011/11/11(金) 20:18:20.140032デフォルトの名無しさん
2011/11/11(金) 20:55:27.140033デフォルトの名無しさん
2011/11/11(金) 21:24:26.970034デフォルトの名無しさん
2011/11/11(金) 23:30:44.49Googleも認めた本物のスクリプト言語、Pythonがあるにもかかわらず
その他の情弱言語を使ってる奴らって、ほんとにプログラマなのかな
プログラマ気取りの素人が、冷やかしでム板に書きこんでるだけなのだろうか
0035デフォルトの名無しさん
2011/11/11(金) 23:49:37.120036デフォルトの名無しさん
2011/11/12(土) 01:02:48.030037デフォルトの名無しさん
2011/11/12(土) 07:35:17.87ひとつの言語しか使えない奴って、ほんとにプログラマなのかな
0038デフォルトの名無しさん
2011/11/12(土) 18:36:13.670039デフォルトの名無しさん
2011/11/12(土) 20:41:26.73IO関係の標準が無さ過ぎだけど、基本的な要件は揃ってるし
0040デフォルトの名無しさん
2011/11/12(土) 22:43:34.79C・・・キレたらうるさそうな親父ばかり。
Java・・・体育会系でもないのに体育会系のオーラを出している。わからないが、何か自信がありそう。
PHP・・・気の弱そうな奴が多い。何にも自信がなさそう。
Ruby・・・頭ハゲ散らかしてたり、顔が日焼けでボロボロの障害者が多い傾向。
Python・・・使ってる奴しらねぇ。
0041デフォルトの名無しさん
2011/11/12(土) 23:41:45.650042デフォルトの名無しさん
2011/11/12(土) 23:53:51.20端末からのテキスト処理も楽だし、数値計算周りのライブラリも充実しているのに
PHPが優遇されているのって歴史的な経緯以外に何か他の理由でもあるのか?
けどまぁ、情弱な文系SEが大半を占めているバカだらけの日本じゃ別にPHPで困ることもないか
0043デフォルトの名無しさん
2011/11/13(日) 00:04:23.30Pythonに関しては、ZopeさえコケていなければWebサーバ用LLとして大成功していたはずなのに、
Railsなんかが登場したおかげで、すっかり影が薄くなってしまいますた....
0044デフォルトの名無しさん
2011/11/13(日) 00:49:55.28ってか、railsにインスパイアされたフレームワークって今じゃ幾らでもあるよね
djangoとかCakePHPとか。rubyってRoRを使いたいユーザを除くと、
pythonやPHPの方がユーザー数は圧倒的に多いと思うんだけど
本家のrailsって、他を遥かに越えるほど良いものなんだっけ?
0045デフォルトの名無しさん
2011/11/13(日) 01:41:24.25数値計算や端末からのテキスト処理なんてWeb系じゃ大して使わないからなあ…
0046デフォルトの名無しさん
2011/11/13(日) 04:28:59.82そいつらの面倒一生見る訳じゃないし
0047デフォルトの名無しさん
2011/11/13(日) 08:23:29.61PHP使ったことないから想像だけど。
0048デフォルトの名無しさん
2011/11/13(日) 08:30:25.68Zopeが登場した当時、「RDB+PHPはもう古い、これからはOODB+ZopeがWebの中軸になる!」と
さかんに宣伝され、雑誌でもZope特集が組まれていた
少なくとも自分はZopeからPythonという言語を知ったし、その時点でRubyは知らなかった
そして、その後のORM(RDB)+Railsの出現と華々しい革新性への注目は、誰もが知っているだろう
今でもZopeの開発は継続されてはいるが、結果的に当初の期待が大きく裏切られたという事実は動かしがたい
djangoとCakePHPについては実際に触っていないので憶測になるが、おそらく技術水準ではRailsと同等だろう
しかしRailsはRailsでコミュニティの活動が活発だし、その進化は異常に早い
Railsに何か致命的なトラブルが発生して開発が停滞する、あるいはdjangoやCakePHPから
何かのイノベーションが提示されでもされない限り、後発のdjangoやCakePHPがRailsに追いつくのは無理
Railsは決して技術的に完璧なWebフレームワークではないんだけどね....(たとえばSeaSideのような.... )
だからこそ「もしもZopeが....だったなら」という「たら・れば」感はPythonコミュニティの潜在認識になっている
0049デフォルトの名無しさん
2011/11/13(日) 10:23:57.19そこで、本来のPHPの役割を超えて大規模なシステムを組もうとするやつが現れて、
低品質なPHPフレームワークが乱立することになる。
でも今はどうだろう?
VPSのように自分でいじれるサーバーを簡単に調達できるようになったし、
HerokuのようなPaaSもたくさん出てきている。
しかも今までのCGIとは違って動作も早いんだよ。
もはや言語仕様が糞なPHPを好き好んで使う理由なんて全くなくなったんだよ。
元々仕方なくPHPを使ってた人も多いだろうけど。
0050デフォルトの名無しさん
2011/11/13(日) 10:48:07.96自分はプログラミングはできても、鯖運用には自信が無いや....
国内にHeirokuみたいなサービスってあるのかな?
0051デフォルトの名無しさん
2011/11/13(日) 12:55:40.83遅い、設計が古い、動作がおかしいの3重苦
日本では流行ってないけど海外だとYiiが流行ってきてる
0052デフォルトの名無しさん
2011/11/13(日) 13:23:09.27なんかまた馬鹿が喧嘩ふっかけにきたな。
にやにやして次の発言を待つかw
0053デフォルトの名無しさん
2011/11/13(日) 14:44:48.55ここの奴がPythoPythonいうから、Pythonやろうと思う。
LinuxにはPython2がデフォルトで入ってるみたいだが、
3を入れたほうがいいよな?
あとmod_wsgiってのを入れるのか。
0054デフォルトの名無しさん
2011/11/13(日) 15:16:30.04昔から専鯖でもPHP使ってる所が多いと思うが。
0055デフォルトの名無しさん
2011/11/13(日) 17:31:12.14CakePHP使ってんの?
可哀そうにw
0056デフォルトの名無しさん
2011/11/13(日) 18:13:55.60とりあえずVPSとの対比としてのレン鯖があるとして
レン鯖で済むようなwebサイトならPHPで充分かなと思う
0057デフォルトの名無しさん
2011/11/13(日) 19:34:04.95Webサービスを書きたいってのがある
ただ、まあ重いフレームワークを使わずに、
直にDBI+SQLで操作するCGIでも
何とかなってしまう(何とかしてしまう)という話もある
0058デフォルトの名無しさん
2011/11/13(日) 20:06:24.300059デフォルトの名無しさん
2011/11/13(日) 20:12:30.74阿呆ってこれのこと
http://hirata-create.lar.jp/
0060デフォルトの名無しさん
2011/11/13(日) 21:09:23.06オオッ、スゲーヨ、コレ... 正直驚いた、ここまでするかw
0061デフォルトの名無しさん
2011/11/13(日) 22:32:14.07日本にも物好きがいるんだな。それもFLOSSとは関係なさそうなのが
0062デフォルトの名無しさん
2011/11/13(日) 22:33:52.900063デフォルトの名無しさん
2011/11/13(日) 23:33:02.400064デフォルトの名無しさん
2011/11/14(月) 00:31:37.41ウェブ系から入ってネイティブアプリ作りたい人には割と良い言語じゃないか?
0065デフォルトの名無しさん
2011/11/14(月) 01:46:34.52つかネイティブアプリの意味分かって言ってるのか?
0066デフォルトの名無しさん
2011/11/14(月) 05:20:04.590067デフォルトの名無しさん
2011/11/14(月) 07:23:18.81そう言うのは、デスクトップアプリと呼べ
0068デフォルトの名無しさん
2011/11/14(月) 10:59:18.30直接実行できたりするするので
実行ファイル形式のアプリがネイティブとは限らない
1.純粋なマシンコード
2.C#(Javaも?)みたいなJITコンパイル型VMのバイトコード +α
3.スクリプト言語をパックした系の、インタプリタ+スクリプト(orバイトコード)
プログラミングしない人には区別つかんと思う
0069デフォルトの名無しさん
2011/11/14(月) 11:20:21.350070デフォルトの名無しさん
2011/11/14(月) 12:00:51.900071デフォルトの名無しさん
2011/11/14(月) 13:22:20.48javaのjarファイルも、もっと言えばスクリプトの.rbや.pyも、処理系に紐付けされてればダブルクリックで起動出来るから、ネイティヴアプリと分けてデスクトップアプリと呼ぶんだろ
0072デフォルトの名無しさん
2011/11/14(月) 13:27:07.250073デフォルトの名無しさん
2011/11/15(火) 17:32:46.07Python>>>>>>>>Ruby
求人数は
Ruby on Rails>>>>>>>>Django
http://www.indeed.com/jobtrends?q=django%2Cruby+on+rails&l=
どういうことなの?
0074デフォルトの名無しさん
2011/11/15(火) 17:48:15.590075デフォルトの名無しさん
2011/11/15(火) 17:54:35.50もはやWeb系スタートアップの共通語になってるらしいからね
求人数が多いのはそのためだと思うよ
0076デフォルトの名無しさん
2011/11/15(火) 18:03:23.05Pythonのほうが使いやすいと思うのだがフレームワークはRailsが優位なんだろうか
0077デフォルトの名無しさん
2011/11/15(火) 18:23:14.33でも、FlaskはSinatraより好きだから、Pythonが嫌いってわけではない。むしろ好き。
ただ、いざ作り始めるとやっぱりRailsが楽だなあってなって、Railsを使い続けている。
0078デフォルトの名無しさん
2011/11/15(火) 18:38:46.28同感だ
同じように思っている人が他にもいて安心した
0079デフォルトの名無しさん
2011/11/15(火) 18:54:37.13Railsみたいなフレームワークあるのに
Pythonにはいいのないんだよな
0080デフォルトの名無しさん
2011/11/15(火) 21:19:09.89Scalaも注目されだしたのはつい最近のことだしな。
それに比べてPythonは、Zopeというデファクトスタンダードが既に存在していたけど、
いつの間にかフェードアウト。
ただ、どうやってもRailsもどきがRailsを超えることはできないのは間違いない。
0081デフォルトの名無しさん
2011/11/15(火) 21:21:09.05それはありえないな。根拠が無いだろ?
0082デフォルトの名無しさん
2011/11/15(火) 21:23:12.91実際に利用されてる数は、ウェブではPHPに遥かに劣るし、システムツールならPerlPythonに遥かに劣る。
0083デフォルトの名無しさん
2011/11/15(火) 21:25:38.55これってキリッって言いたいだけだと思う。
後発品が先に出たものを超えたものなんていくらでもあるから。
0084デフォルトの名無しさん
2011/11/15(火) 21:30:04.390085デフォルトの名無しさん
2011/11/15(火) 21:31:12.000086デフォルトの名無しさん
2011/11/15(火) 21:53:33.76PHPで同じ事をできないわけではないだろうけど、Ruby on Railsほど簡潔にはできない
0087デフォルトの名無しさん
2011/11/15(火) 22:04:48.99Scalaに移った人が言ってた
0088デフォルトの名無しさん
2011/11/15(火) 22:31:53.56ここ最近って、M$もgoogleもjavascript押してねぇ?
0089デフォルトの名無しさん
2011/11/15(火) 22:47:25.77RailsにはうんざりだからZope/Djangoに移ったというのなら分かるけど、
そこでScalaに移ったと言うのだと、このスレでは説得力が皆無だな
ただ単にdisりたいだけちゃうんかと
0090デフォルトの名無しさん
2011/11/15(火) 22:50:07.81精神的なものじゃね?スタートアップなんて根無し草の集まりにとって、
googleが囲った言語にcoolさを見出せないんだろ
0091デフォルトの名無しさん
2011/11/15(火) 22:52:42.980092デフォルトの名無しさん
2011/11/15(火) 22:58:37.21David Pollakでしょ
0093デフォルトの名無しさん
2011/11/15(火) 23:07:07.67どういった理由で、djangoの情報とプラグインが増えないのよ?
linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん
わざわざ不合理で不完全な言語を使うなんて
社会からハミ出た奴らの精神的な作用によるものじゃないの?
0094デフォルトの名無しさん
2011/11/15(火) 23:15:11.93未来について語る事は子供にでもできるからね
というか、世界中のPythonプログラマが Remeber Zope!! を合い言葉に
打倒RailsたるWebフレームワークを開発しているはずだけど、
いまだにRailsを超えるプロダクトが登場しないのはナゼ?
Railsも登場してから、かなりの年月が経過しているんだけどなぁ....
その間にもRailsはRails 3が登場して、REST/AJAXの強化等の進化が継続しているよ
>>91
それが先発品の優位さ、という事なんじゃないかと思う
0095デフォルトの名無しさん
2011/11/15(火) 23:20:20.21djangoの情報とプラグインが増えないという、
現実に対する鬱憤を吐いてるようにしか聞こえないな
もしも
>linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん
が真実であるのなら、今頃はdjangoの情報とプラグインが溢れかえっているはず
009689
2011/11/15(火) 23:41:17.10それは知っているよ。自分も関数型言語を触るから。
ただし、いくら有名人の言葉とはいえ、
LLバトルスレでScalaを引き合いに出しても「説得力が皆無」ということ。
0097デフォルトの名無しさん
2011/11/16(水) 00:02:02.860098デフォルトの名無しさん
2011/11/16(水) 00:14:50.54ちょっと違う。
RailsではなくRubyという言語の機能でメソッドのフックができる。
これはPHPでは実装できない。だからPHPではフレームワーク側で
メソッドのフックに近いことが出来るような仕組みを用意している。
RailsはRubyが持っている機能を使ってフレームワークが比較的シンプルになっている。
そのおかげでRailsの開発もスムーズに行った。
PHPのフレームワークはその部分が少し複雑になっている。
が、できないことはない。フレームワークと言語の仕事の範囲が代わるだけで
RailsとPHPフレームワークを比べれば、大きな差はない。
0099デフォルトの名無しさん
2011/11/16(水) 00:17:06.66サイトを立ち上げてから修正を繰り返していくところまではRailsのほうが簡単だけど、
RubyではScalaのようなJVM環境には実効速度の面で太刀打ち出来ないから、
システムが本格的に固まってきたら、RubyからScalaに移るんだろ。
Twitterなんかがまさにそうじゃないか。
>>97
まず文法が簡潔じゃない
0100デフォルトの名無しさん
2011/11/16(水) 00:19:09.67そんな話、Twitterぐらいしか聞かないじゃないかw
0101デフォルトの名無しさん
2011/11/16(水) 00:21:45.93yumもgdbの拡張も、gnome周りの拡張もpythonがデフォだ
4、5年ぐらい前はpythonはプリインストールされてんのに、
rubyはソースコードから入れないとダメな状況だったぞ
ウェブ開発だけrubyが優遇されてる意味が分からん(htmlに埋め込み辛いからか?)
セキュリティ周りのツールやルータはluaで書かなければならんし…。
ここいらでjsに妥協して統一されてしまわんかなと思う奴は少なくないはず
0102デフォルトの名無しさん
2011/11/16(水) 00:28:06.10文法のどの部分が簡潔じゃないん?
010389
2011/11/16(水) 00:46:36.39だからそんな話は分かっているって。
でもその話は「Rubyから関数型言語(Scala)へ移行した理由」だろ?
同じ事を三度目の繰り返しになるけど、
その理由を「LLバトルスレ」で語っても「説得力が皆無」と言っているんだが....
RubyがXXXだからPython(あるいはPerl)へ移行しました、という話なら議論の価値はあるよ
0104デフォルトの名無しさん
2011/11/16(水) 01:20:49.05Python信者乙。
yumや、gdbとgnomeの拡張がpythonであるからといって、それをwebアプリでも使いたいと思う人は少ないというだけのこと。
ソースからインストールする必要があったとしても、web開発ではrubyを使いたいという人が多いというだけのこと。
0105デフォルトの名無しさん
2011/11/16(水) 05:42:06.00今作ってる
気が向いたら公開するつもり
0106デフォルトの名無しさん
2011/11/17(木) 09:28:13.01Tokuhirom Perl Player!! Go Go!
0107デフォルトの名無しさん
2011/11/17(木) 10:28:14.50いや、perlは滅んだ方がいい
0108デフォルトの名無しさん
2011/11/17(木) 14:18:45.22無理やりアプリを書かないようにすればいいだけ。
0109名無し
2011/11/17(木) 19:00:37.640110デフォルトの名無しさん
2011/11/17(木) 22:55:06.04まぁ、Cで拡張する必要がない人にはgdbはいらないけどね
おまえみたいなのASPでも弄ってろ
0111デフォルトの名無しさん
2011/11/17(木) 23:46:44.50死ねLL
0112デフォルトの名無しさん
2011/11/19(土) 07:20:45.44なんでハッカー()ってツールを祭り上げたがるんだろうな
0113デフォルトの名無しさん
2011/11/19(土) 10:32:47.08tokuhirom、ma.la?っていう人の話だけ聞きたい
色々なスレで見かけるけど有名らしいね
動画ありませんか?
0114デフォルトの名無しさん
2011/11/19(土) 10:53:09.78宣伝乙
0115デフォルトの名無しさん
2011/11/19(土) 15:19:12.060116デフォルトの名無しさん
2011/11/20(日) 00:21:31.810117デフォルトの名無しさん
2011/11/20(日) 09:32:34.440118デフォルトの名無しさん
2011/11/20(日) 09:54:54.50これはruby,pythonを越えて一番に多いんだぞ
0119デフォルトの名無しさん
2011/11/20(日) 11:15:19.680120デフォルトの名無しさん
2011/11/20(日) 11:18:54.56そして他の人が同じだと思わないほうがいい。
0121デフォルトの名無しさん
2011/11/20(日) 11:22:25.470122デフォルトの名無しさん
2011/11/20(日) 11:28:20.45真面目に見えるのなら、本当に真面目なのかもしれませんね。
自分ではよくわかりませねん。
0123デフォルトの名無しさん
2011/11/20(日) 11:32:16.79”人に喜ばれる” ”技術を追う楽しみ” ”大規模なシステムを組みたい” とかわめいてるバカは情弱かよ
脆弱性報告してんじゃねえよ 情弱かよ 報告することが美徳かよ 正義ぶってんじゃねえぞ
悪用しろよ 悪いはかっこいい お前らはバカ
悪用できる勇気がないのか?低レベルだから 逮捕されそうだな君たちは
0124デフォルトの名無しさん
2011/11/20(日) 11:33:40.470125デフォルトの名無しさん
2011/11/20(日) 16:04:07.39http://alistersjp.files.wordpress.com/2011/04/image1.png
githubはRubyが最多
なぜかgithubはruby信者が多い
0126デフォルトの名無しさん
2011/11/20(日) 16:05:50.16なんかそれ「もうちょっとOtherをkwsk」と言いたくなるグラフだなw
0127デフォルトの名無しさん
2011/11/20(日) 16:27:43.590128デフォルトの名無しさん
2011/11/20(日) 16:40:12.67ScalaとかJavaよりいいのか?
0129デフォルトの名無しさん
2011/11/20(日) 17:41:03.01アメーバピグライフが確かnode.jsで出来ていて
20万同時接続とかをAppサーバ20台、DBサーバ(mongodb)を108台で捌くらしいけど
ttp://www.slideshare.net/snamura/nodejs-9956558
0130デフォルトの名無しさん
2011/11/20(日) 18:22:12.20アルファブロガー兼詐欺師のakiyanこと秋田真宏 株)ロケットスタートの秋田真宏ことakiyan
広告主からも掲載者からも見放されて風前の灯KauliのCTO 最近は2ちゃんでの度重なる失策でナーヴァス・ブレイクダウンでakiyan.comも更新途絶
ことakiyanがご降臨と聞いて鳩ろだからすっとんできますたが、
それほどでもないカキコなので帰ります。
0131デフォルトの名無しさん
2011/11/20(日) 18:37:17.72ピーク時20万でAppサーバー20台って
1台あたり1万じゃん?
C10K問題(Client 10000問題)到達してないじゃん?w
0132デフォルトの名無しさん
2011/11/20(日) 19:52:37.91何を言いたいのかさっぱりわからん
0133デフォルトの名無しさん
2011/11/20(日) 20:41:30.310134デフォルトの名無しさん
2011/11/21(月) 15:29:01.88いい教師である
いい教師
0135デフォルトの名無しさん
2011/11/21(月) 15:29:27.530136デフォルトの名無しさん
2011/11/21(月) 23:08:14.42ほかの言語でも同じことできるんじゃないのか?
0137デフォルトの名無しさん
2011/11/21(月) 23:34:58.43できなくはないけど、他の言語で同じ事をやると、
それその言語を使っている意味あるの?ってなってしまう。
node.jsはスレッド(プロセス)を使わないだけじゃなくて
ブロックするI/Oを使わないという特徴がある。
ファイル読み書きやデータベースアクセスなど一定時間処理かかってしまうものをnode.jsは非同期で行うようにした。
もし同期的なものを使うと、スレッドは一つしか無いためすべての処理が止まってしまう。
所でJavaScript標準でファイル読み書きやデータベースアクセスなどをする関数は何でしょう?
答えは、無い。この無いっていうのがnode.jsにぴったりな言語だった。
他の言語ではファイル読み書きなどの命令が標準で存在するがそれらはいずれも同期的なもの。
node.jsの用途では使えないから、別に作ってそれを使わないといけない。
node.js用のライブラリばかり使うのでその言語でやる必要性がない。
他の言語はその言語の資産、ブロックするI/Oが含まれているライブラリが、仇となってるんだよ。
ちなみにブラウザに搭載されたJavaScriptはスレッドがないから、既存のJavaScriptライブラリは自然とブロックしないものになってる。
だからnode.jsで既存のJavaScriptライブラリを資産として使うには問題ない。
ブロックしない命令だけによるライブラリを構築するには、ブロックするI/Oによって
作られた世界が存在しないJavaScriptが一番最適だったとそう俺は考えてる。
0138デフォルトの名無しさん
2011/11/22(火) 00:11:09.78node.jsが普及したら、非同期でノンブロッキングI/Oなpythonやrubyの実装が出たりするかな
0139デフォルトの名無しさん
2011/11/22(火) 00:48:56.41ttp://www.nicovideo.jp/watch/1320669612
この動画の14分頃からと質問でなぜnodeを作る言語にJSを選んだか
について話してたと思う
0140デフォルトの名無しさん
2011/11/22(火) 00:50:16.920141デフォルトの名無しさん
2011/11/22(火) 00:56:46.17企業による運用実績とか出始めてきてるし
0142デフォルトの名無しさん
2011/11/22(火) 01:10:08.29そのうち話題にならなくなるでしょ
0143デフォルトの名無しさん
2011/11/22(火) 01:20:27.79大規模開発したりはせんだろw
0144デフォルトの名無しさん
2011/11/22(火) 01:21:36.50↓
物珍しさや、流行りだけで
0145デフォルトの名無しさん
2011/11/22(火) 11:53:26.340146デフォルトの名無しさん
2011/11/22(火) 22:05:54.070147デフォルトの名無しさん
2011/11/23(水) 01:13:49.050148デフォルトの名無しさん
2011/11/23(水) 12:50:14.34Pythonの例外処理って例外クラスのクラスオブジェクトを投げるよね
他の言語だと例外クラスのインスタンス投げると思うんだけど、あれは何故?
0149デフォルトの名無しさん
2011/11/23(水) 14:54:40.080150デフォルトの名無しさん
2011/11/23(水) 18:45:12.49Python なんてブロックの終了を省略出来るくらいしか認知されていない言語をそうそう使おうなんて思わないし、
PHPも新規で使いたいなんてそうそう思わないだろうし、
消去法でRubyしか残らないだろ。
と思ったが、いま自鯖で Redmine 入れようとしてかなり苦戦しているw
0151デフォルトの名無しさん
2011/11/23(水) 18:52:56.130152デフォルトの名無しさん
2011/11/23(水) 19:17:14.00アナタハニホンゴノフジユウナハントウシュッシンシャデスカ?
0153デフォルトの名無しさん
2011/11/23(水) 19:31:54.00いいえ、誰でも
0154デフォルトの名無しさん
2011/11/23(水) 19:36:53.240155デフォルトの名無しさん
2011/11/23(水) 20:06:47.190156デフォルトの名無しさん
2011/11/23(水) 20:07:30.910157デフォルトの名無しさん
2011/11/23(水) 21:03:08.23Scalaよりすごいらしいですけど
0158デフォルトの名無しさん
2011/11/23(水) 21:05:05.71○ Clojure
0159デフォルトの名無しさん
2011/11/24(木) 12:45:07.81求人とかみると
結構アメリカでも使われているっぽいけどな
0160デフォルトの名無しさん
2011/11/24(木) 13:24:42.16WORD PRESSとかのCMSカスタマイズみたいなの入れると更に割合下がるし。
0161デフォルトの名無しさん
2011/11/24(木) 15:51:19.17もっと早く有名になればRubyやらPythonがいろんなソフトのスクリプトに使われまくることもなかったのに。
本当にRubyとかPythonとかスクリプトに使われてるプログラムとか困るわ。
スクリプトのくせに言語自体がでかすぎて覚えるのが面倒くさくてしょうがない。
Lua最強、組み込み最強、これからはLLじゃなくて組み込みが流行ってほしいわぁ。
0162デフォルトの名無しさん
2011/11/24(木) 17:36:28.97実行速度以外にメリットないから
0163デフォルトの名無しさん
2011/11/24(木) 17:46:59.08拡張/埋め込み型言語が汎用スクリプト言語と見なされるようになった例としてはTcl/Tkがある。
Tcl/Tkは初期のバージョンこそ低機能でストールマンにも酷評されたほどだが、
現在はかつてより機能も増え、Tkの利便性もあって、
かつてほど流行らないとはいえ一定の地位を確立している。
Luaも同様に単独で用いても十分な汎用スクリプト言語と見なされるようになる可能性はある。
Tclより文法の癖がないので、もう少し機能を増やし、IUPあたりを標準GUIライブラリーとすれば
ありえない話ではない。
0164デフォルトの名無しさん
2011/11/24(木) 19:15:34.82これだけでオブジェクト指向もばっちりできるんだぜ。
(メタテーブルは使うと馬鹿を見るからおいといて、)
文法も分かりやすい、処理速度もスクリプト系最高、全てが良いこと尽くめじゃん。
Rubyのくっちゃくちゃな制御構文を必死に覚えて、
Pythonの意味不明なデータ構造を解読してたのが馬鹿みたいだわ。
所詮、超高級言語とか言われてるスクリプト言語の行きつく先は
C++やらJavaやらの機能をまねることだから
これからも見栄張って複雑化、巨大化してだんだんスクリプトとして使いにくくなるわな。
その逆で簡素にすることを目的とする組み込み系は
やっぱり本来のスクリプト言語のあり方で、分かりやすく使いやすい言語に進化するんだと思う。
Lua最強!組み込み系最高!
0165デフォルトの名無しさん
2011/11/24(木) 19:23:20.440166デフォルトの名無しさん
2011/11/24(木) 20:32:24.37tcl/tkはtkが優秀すぎた
tcl自体はダメ言語だよな
あれなら素直にlisp使う方がいい
0167デフォルトの名無しさん
2011/11/24(木) 20:38:04.82しかし、ストールマンの思惑どおりにはSchemeがTclの代替になるほどには普及しなかったけどな。
いくら「Tcl使うな。Scheme使え」と言っても普通のプログラマが急にLisp系の言語に馴染むのは無理だし。
何だかんだ言われても、シェルスクリプト感覚のコマンド言語であそこまで使えれば上出来だよ。
0168デフォルトの名無しさん
2011/11/24(木) 21:15:20.360169デフォルトの名無しさん
2011/11/24(木) 21:25:57.580170デフォルトの名無しさん
2011/11/25(金) 15:13:15.99昔から言われてるが
tclは外のカッコ抜いた劣化lispだよ
tkとの馴染みはいいけど
lispはシンプルで永遠のマイナー言語だから
今後も細く長く生きるだろな
0171デフォルトの名無しさん
2011/11/25(金) 17:58:03.94tclはなまじlispに似てるからそういう批判ってよく耳にするけど、
だからってlispなんて使いたくないけどねぇ。
lispはシンプルだっていうけど、マスターしやすさ比べればTclのほうが簡単だし。
lispの書籍に乗ってるような非実用的なサンプルで遊んでる暇があったら、
手っ取り早く業務アプリの一つでも作りたいのが普通の人なわけで。
たかがちょっとしたツール作るのにlispを学習するのはコストに見合わない。
だからこそいつまでもマイナーなのであって、孤高ぶっても意味は無い。
tclになじめないならpythonでもrubyでも好みに合う言語を使えばいい。
何が悲しゅうて万年マイナーで挫折者続出で、
簡単じゃないのに簡単だと宣伝されるlispなんぞ使わなきゃならんの?
0172デフォルトの名無しさん
2011/11/25(金) 18:01:21.18また、生産性の向上に寄与したマクロは、任意に定義されたユーザ言語を定義することと等しいので、このプログラムが利用しているマクロについての十分な知識がなければ、コードの構造も理解できないことになる。
0173172
2011/11/25(金) 18:02:16.96>>172は
http://www.rubyist.net/~matz/20030910.html
からの引用ね。
0174デフォルトの名無しさん
2011/11/25(金) 18:10:32.83大戦争勃発しました
誰も止められない戦い
0175デフォルトの名無しさん
2011/11/25(金) 18:21:50.76その「手が届くかどうか」という基準の前には美しさだの簡潔さだのなんて二の次、三の次になる
まぁ、「プログラミングやりてぇぇーーー」って人にとってlispは神言語なんだろうね
でも、多少冗長でも理解しやすい言語を使って、とりあえず色々作りたい普通の人にとって、
lispの素晴らしさを熱く語り、「どうしてみんな使わないんだろう」くらいのことを吐く人は気持ち悪いだけ
0176デフォルトの名無しさん
2011/11/25(金) 18:40:38.31Tcl、マスターし易いか?俺は未だに[ ] と { }のどっちを使うべきなのかが判らなくなることが多い
0177デフォルトの名無しさん
2011/11/25(金) 19:07:47.48そんなことで迷う人がいるんだね
lispが驚くほど簡単で便利なら、どうして全てのプログラマが使うようにならないのか、
それを考えたことがあるのか?
0178デフォルトの名無しさん
2011/11/25(金) 19:29:14.650179デフォルトの名無しさん
2011/11/25(金) 19:34:17.67Cで書きたいところはCで書けるので。
0180デフォルトの名無しさん
2011/11/25(金) 20:01:14.79同じことするならlispのがいいな
まあ両方使わずに別な言語使うがw
でもlispは実験的なことしやすいから
マイナーとして残るだろ
0181デフォルトの名無しさん
2011/11/25(金) 20:09:10.18そもそもLispを必要だと感じず、別の言語で大過なく仕事をこなしている。
S式だcarだcdrだconsだ再帰だマクロだと言っても、普通の人にとってはだから何としか思わない。
やりたいことを手続きとして順に書くほうが直感的に楽だし、それで不便を感じない。
0182デフォルトの名無しさん
2011/11/25(金) 20:55:33.64というか、ナンセンスな難しさで満ちている。
たとえばここのwc。
ttp://www.shido.info/lisp/scheme_sym.html
たまたまtclが話題になってるのでtclで書くとこうなる。
if {$argc == 0} {
puts "ファイルが指定されていません"; exit
}
if [catch {open [lindex $argv 0] r} fd] {
puts "ファイルがオープンできません"; exit
}
puts [regexp -all {[^ ]+} [regsub -all {[[:space:]]$} [regsub -all {[[:space:]]+} [read -nonewline $fd] { }] {}]]
close $fd
あくまで上で話題になってるからtclで無理に書いただけで、
得意でないので変なところもあるかもしれんが笑って許してもらいたい。
lisp派から見れば、「正規表現使ってるんだから短く書けて当然。アンフェアだ」と思われるだろう。
でも、実用的なプログラミングを教えるなら最初からこういう書き方を教えるのが普通だ。
lispに馴染めず嫌いになる人が多い理由は、ただプログラミングがやりたいだけなのに
「Lisp流派」の「プログラミング道」の修業をさせられるから。
手続型言語ならば、極端に言えば適当に書けばなんとなく動くわけで、
らくだが針の穴をくぐるような困難さはない。
0183デフォルトの名無しさん
2011/11/25(金) 21:03:07.16wcといっても、それやってることが全然違うべ
lisp入門に難しいのが多すぎるってのは同意だけど
0184デフォルトの名無しさん
2011/11/25(金) 21:48:29.470185デフォルトの名無しさん
2011/11/25(金) 21:58:15.850186デフォルトの名無しさん
2011/11/25(金) 22:03:33.11Utiltyクラスもそうだけど、日本人の自称エリートは
海外の用語を音だけ借りて自分の逃げ道にするの好きだよなァ・・・。
0187デフォルトの名無しさん
2011/11/25(金) 22:18:44.77ネタは各単語の頻度じゃねえかw
まあperlあたりで書くと数行かな?
ていうか、言語なんて適材適所だし
普通いくつか使えるだろ
tclは今更感が強いがね
0188デフォルトの名無しさん
2011/11/25(金) 22:20:00.24ここ、日本なんで、
日本語でお願いしますね。
0189デフォルトの名無しさん
2011/11/25(金) 22:21:52.500190デフォルトの名無しさん
2011/11/25(金) 22:22:31.280191デフォルトの名無しさん
2011/11/25(金) 22:57:12.57tcl愛用してる俺は今更な人間なんだね
悪いねぇ
俺の言語の利用頻度
bashスクリプト>awk>tcl>python>c>basic
職業はプログラマじゃないんで、動きゃいいって発想
プロって大変だね
素人だったら極力古いBASIC並に覚えることが少ない言語で済ませるところを
難しくしなくちゃいけないんだから
0192デフォルトの名無しさん
2011/11/25(金) 23:06:29.96現場の人「仕事の能率上げたいからこういうの作って」
社内SE「デキネ」
現場の人「仕方ない自分で作るか」
数日後・・・
現場の人「なんだ、簡単に作れるじゃん。あんたやる気あんの?」
社内SE「普通にやったら難しいんです」
現場の人「普通にやらずに簡単にやればいいだろ」
社内SE「・・・」
0193デフォルトの名無しさん
2011/11/25(金) 23:25:53.14(ことわっておくが、自分は現場側の人だよん)
0194デフォルトの名無しさん
2011/11/25(金) 23:41:04.52一応相手はプロフェッショナルだからねぇ
プロが真面目に作ろうと思ってもできないのに、
アホな言語、劣った言語で素人が作ったらプロの面子丸つぶれだろ
それと、作るのは簡単でも社内で業務に用いるものだから
一応伺いをたてないとマズいってのもある
0195デフォルトの名無しさん
2011/11/26(土) 00:06:14.03特定のジャンルで強いがそこでしか使わないローカル言語が過小評価されている。
0196デフォルトの名無しさん
2011/11/26(土) 00:12:05.47奴隷は言われたことを言われたとおりにやってりゃいいんだよ
0197デフォルトの名無しさん
2011/11/26(土) 00:43:58.850198デフォルトの名無しさん
2011/11/26(土) 00:58:02.75社内SEがプログラム出来るとは限らないだろ。
Excelとパワポしか使えないのにSE名乗っているのなんてそこら辺にいるし。
0199デフォルトの名無しさん
2011/11/26(土) 01:23:22.27仕様書とか管理文書とか工数見積り作って
レビューと承認とって
バカでも使えるようにエラー処理も万全に
さあ、もうやる気でねえだろ
0200デフォルトの名無しさん
2011/11/26(土) 02:47:47.92プロの面子丸つぶれとか、くだらない話
社内SEは面子のために仕事をしているわけじゃない
彼らは彼らなりの責務がある
社内SEはご用聞きや雑用係でもなければ、お母さんでもない
現場で課題が見つかったのなら、まずは現場で解決を図るのが当たり前
その上で解決の困難な課題があれば社内SEへ相談する
社内の情報システム部門の人達に対して
技術力への向上心を強く期待する考えは自分にもあるが、それとこれとは別の話
最初から相手を見下した態度をとる>>192や、くだらぬ面子にこだわる>>194の姿勢は
とても理性のある大人の行為であるとは思えない
後半の伺いを立てるという部分については理解する
0201デフォルトの名無しさん
2011/11/26(土) 04:00:44.320202176
2011/11/26(土) 09:17:40.24いや俺はLISPがマスターし易いとも思わんさ
括弧アレルギーはすぐ克服出来るけど、マクロ絡みは慣れが要るしな
ただTclもそれと対比するほど簡単じゃなくね?ってツッコミたかった
そのひとつとして出したのが括弧の選択ね
>>182 を見ても if の引数が [ ] だったり { } だったりする
ループなら { } 一択とかはまだ判りやすいんだが…
それぞれの意味は解ってても、パッとどちらが最適かは出てこないし
他人のコードでなぜこちらを使ったのか、本当にこちらで正しいのかは
しっかり読み込まないと見えてこないよ
これなら無茶なコマンド形式よりも
分岐やループとかは専用構文のほうが簡単だったよ…
0203デフォルトの名無しさん
2011/11/26(土) 10:03:10.46carだのcdrだのconsだのドット対だの言ってるのはlispだけだよな
他の言語だとデータが長い入れ物に順番に入ってるっていう認識で使いこなせるのに
>>202
tclで[]を使うのってlispで言う所のcarのコマンドを解釈させるってだけじゃないの?
単なる慣れの問題としか思えないんだけど
0204デフォルトの名無しさん
2011/11/26(土) 10:32:49.62Tclはシェルを知ってるならシェルだと思うのが一番わかりやすい
シェルを知らない・かつ本当に初心者なら、とっつきにくい言語だとは思う
Tclではすべてがコマンド関数であり、データはすべて文字列である
(Lispで言うスペシャルフォームすら存在しない)
Tclは基本的にeagerに評価するが、Tclの評価とはシェルで言う文字列展開である
関数の評価っぽいことをしたい場合には[]を使う(シェルのコマンド展開と同じ)
ifのthen節else節のように、eagerに評価されては困る場合は{}で遅延させる
変数のlvalueにアクセスする場合には$をつけない、rvalueにアクセスする場合には
つける(シェルと同じ)
とりあえずこんぐらい知っとけばなんとなくわかるんじゃね
0205デフォルトの名無しさん
2011/11/26(土) 10:40:51.80Tclにはポインタがない
昔のPerlもポインタがなかったようだが今のPerlにはポインタがある
0206デフォルトの名無しさん
2011/11/26(土) 10:50:53.94時々ごっちゃになって混乱する
0207デフォルトの名無しさん
2011/11/26(土) 10:54:56.320208デフォルトの名無しさん
2011/11/26(土) 11:38:43.33この状況が続く限り信者は無限に増え続ける
0209デフォルトの名無しさん
2011/11/26(土) 12:46:08.51CLIだったらPython、GUIだったらTclを選ぶことが多い
以下、"http://www.nslabs.jp/monkey-python-02.rhtml"より抜粋
# -*- coding:utf-8 -*-
import Tkinter
class Scribble:
def on_pressed(self, event):
self.sx = event.x
self.sy = event.y
self.canvas.create_oval(self.sx, self.sy, event.x, event.y, outline = "red", width = 5)
def on_dragged(self, event):
self.canvas.create_line(self.sx, self.sy, event.x, event.y, fill = "red", width = 5)
self.sx = event.x
self.sy = event.y
def __init__(self):
window = Tkinter.Tk()
self.canvas = Tkinter.Canvas(window, bg = "white", width = 300, height = 300)
self.canvas.pack()
quit_button = Tkinter.Button(window, text = "終了", command = window.quit)
quit_button.pack(side = Tkinter.RIGHT)
self.canvas.bind("<ButtonPress-1>", self.on_pressed)
self.canvas.bind("<B1-Motion>", self.on_dragged)
window.mainloop()
Scribble()
0210209
2011/11/26(土) 12:46:51.93proc mousePress {w x y} {
global mousePressed startX startY
set mousePressed 1
set startX $x
set startY $y
.c create oval $startX $startY $x $y -outline red -width 5
}
proc mouseDrag {w x y} {
global mousePressed startX startY
.c create line $startX $startY $x $y -fill red -width 5
set startX $x
set startY $y
}
pack [canvas .c -bg white] -expand 1 -fill both
pack [button .b -text 終了 -command exit]
bind .c <ButtonPress-1> {mousePress .c %x %y}
bind .c <B1-Motion> {mouseDrag .c %x %y}
0211209
2011/11/26(土) 12:48:29.93変数mousePressedは不要です
0212デフォルトの名無しさん
2011/11/26(土) 19:38:20.40いやlispの劣化版
perlはある意味割り切ってる
0213デフォルトの名無しさん
2011/11/26(土) 21:18:33.83お願いします
0214デフォルトの名無しさん
2011/11/26(土) 21:19:37.420215デフォルトの名無しさん
2011/11/26(土) 21:24:34.99そもそもlispと同じである必要なんてあるの?
暗記量が少なくて済むお手軽言語なんだから、それでいいのでは?
0216デフォルトの名無しさん
2011/11/26(土) 21:26:04.85めんどくせえよハゲ
0217デフォルトの名無しさん
2011/11/26(土) 21:29:01.48Tk版
button ".b" -text "Say Hello" -command hello
pack ".b" -padx 20 -pady 6
C++版
button(".b") -text("Say Hello") -command(hello);
pack(".b") -padx(20) -pady(6);
きめぇwwwいくらC++だからと言って - 演算子オーバーロードかよ
こういうC++界隈に多い「やれるからやってみますた」みたいなノリって何なんだろうな
0218デフォルトの名無しさん
2011/11/26(土) 21:39:11.27『RPGサンプル仕様』
ウインドウを表示する
ウインドウはリサイズ不可
マップの大きさは16x16マス
マップチップ1個の大きさは32x32ピクセル
マップは平地と木で構成し、平地には石を置ける
木と石は障害物なので、そこへは移動できない
障害物とキャラの重なりがある場合、前後関係を意識して表示する
マップ上の特定の位置でごく簡単なイベント発生
キャラ移動の方向は東西南北の四方向
キャラは常にウインドウの中央に表示し、
キャラ移動の画像は東西南北の各方向につき3枚(直立、右手が前、左手が前)
キャラのステータス情報を表示したり消したりできる
ここまでおおざっぱに作って、tcl/tkではシェバング行等、
動作に必須でない行も含めて148行でした
wcすると、
$ wc rpg.tcl
148 1020 4657 rpg.tcl
という結果でした
結構無駄があるのでもう少しスリムにする余地もありそうです
劣化してないLispならほんの数行でできるのではありませんか?
0219デフォルトの名無しさん
2011/11/26(土) 21:41:01.77Ruby/Tkにしてみた Ruby 1.9以上で
小さいスクリプトしか書いたことないので
Pythonみたいにclassを作ったほうがいいのか
トップレベルにべた書きしほうがいいのかよくわからない
#coding:cp932
require 'tk'
sx,sy = 0,0
Tk::Canvas.new bg:'white' do
bind 'ButtonPress-1' do |event|
sx,sy = event.x, event.y
TkcOval.new(self,sx,sy,sx,sy, outline:'red', width:5)
end
bind 'B1-Motion' do |event|
TkcLine.new(self,sx,sy,event.x,event.y, fill:'red', width:5)
sx,sy = event.x, event.y
end
pack expand:1, fill:'both'
end
Tk::Button.new text:'終了' do
command {exit}
pack
end
Tk.mainloop
0220218
2011/11/26(土) 21:46:16.39>キャラは常にウインドウの中央に表示し、
これは、正しくは
キャラは常にウインドウの中央に表示し、背景を動かすことでキャラの動きを表現する
でした。
あと、もう一つ条件があるのを忘れてました
「ウインドウに任意のタイトルをつける」
0221218
2011/11/26(土) 21:57:49.49>マップは平地と木で構成し、平地には石を置ける
砂地も使ってましたので、正しくは次のとおり
「マップは平地と木と砂地で構成し、平地には石を置ける」
>>216
別に冷やかしでRPG作ってくださいってお願いしてるわけじゃないんですよ
Lispでどれくらいのことがどの程度の手間でできるのか知りたいんです
私はスクリプト言語をいくつか齧った程度なので視野が狭く、
Python、Tcl、PHPなどがすごく手軽で便利に見えてしまってます
世の中にはもっと便利な言語もたくさんあるのだということを知りたいんです
0222デフォルトの名無しさん
2011/11/26(土) 22:44:09.81Ruby/Tkもわりと変なことしてます
一番ベタな書き方で省略なしだと
b = Tk::Button.new(Tk.root,{'text' => 'Say Hello', 'command' => proc{hello}})
b.pack({'padx' => 20, 'pady' => 6})
オプション名をシンボルにして、親ウィンドウ指定&メソッド呼び出し括弧&ハッシュ引数の括弧を省略して
b = Tk::Button.new :text => 'Say Hello', :command => proc{hello}
b.pack :padx => 20, :pady => 6
Ruby1.9のハッシュ記法で
b = Tk::Button.new text:'Say Hello', command:proc{hello}
b.pack padx:20, pady:6
ウィジットのインスタンスメソッドで
b = Tk::Button.new
b.text 'Say Hello' #セッターメソッドでも可 b.text='Say Hello'
b.command{hello} #セッターメソッドだと b.command=proc{hello}
b.pack padx:20, pady:6
オプションをブロック内に記述
ブロック内ではselfがウィジットのインスタンスにすりかえられてます
(Rubyで内部DSLを作るときの常套手段)
b = Tk::Button.new do
text 'Say Hello'
command{hello}
pack padx:20, pady:6
end
ウィジットの引数つきのインスタンスメソッドはselfを返すのでメソッドチェーンでつなげてみたり
b = Tk::Button.new.text('Say Hello').command{hello}.pack(padx:20,pady:6)
0223デフォルトの名無しさん
2011/11/27(日) 01:59:21.34得意分野であるリスト処理は最近のスクリプト言語にかなり輸入されてる
それこそ挙げられたPythonでそのリスト処理の手軽さをしっかり享受してると思うぞ
0224デフォルトの名無しさん
2011/11/27(日) 03:19:04.77(asdf:oos 'asdf:load-op :ltk)
(in-package :ltk-user)
(with-ltk ()
(let ((c (make-instance 'canvas
:background "white"))
(b (make-instance 'button
:text "終了"
:command #'(lambda ()
(setf *exit-mainloop* t))))
sx sy)
(defun press (evt)
(setf sx (event-x evt)
sy (event-y evt))
(create-oval c sx sy sx sy))
(defun drag (evt)
(create-line* c sx sy (event-x evt) (event-y evt))
(setf sx (event-x evt)
sy (event-y evt)))
(pack c :expand 1 :fill :both)
(pack b)
(bind c "<ButtonPress-1>" #'press)
(bind c "<B1-Motion>" #'drag)))
0225デフォルトの名無しさん
2011/11/27(日) 14:16:15.96音楽やプログラムも必要だしそれらを束ね合わせるセンスもいるし
更に全てハイレベルで無いとしょぼくなる
お前らLLジャップじゃ相当太刀打ちできない
>>213みたいなゴミカスは本当にカスだと思う
何がRPGだよ何がLISPでRPGだよ
不向きな言語で物を作ろうとする美徳 気持ち悪いねジャップは
カスLLじゃゲーム作りは向いてないよ
全てにおいて中途半端
WEBサイトなんて中途半端
グラもゲーム並みに緻密でかっこいいものもいらない 平坦な素材とかだけ
音楽すら使わない ただのクリック音 ファミコンぐらいの音
プログラミングもゴミ ただのレベルの低いLL すべてにおいてカス
LLはゴミ
0226デフォルトの名無しさん
2011/11/27(日) 14:21:16.61低レベルのスマートフォンアプリかゲーム作るか
不向きな言語でゲーム作って "LISPでゲーム作ってみた" "COBOLでゲーム作ってみた"
"Haskellでシューティングゲーム作ってみた"とか
くだらない車輪の再発明してればいいんだよ
真の欧米のインテリゲンチャはもっとレベルの高いオンラインゲームだよ
レベルの差だねジャップは
ゲームに不向きなLL
馬鹿WEBのにわかがゲーム(笑) 笑わせんなってw
David M. Bourg+Glenn Seemannの靴でも舐めとけばいいよジャップはw
0227デフォルトの名無しさん
2011/11/27(日) 14:53:11.430228デフォルトの名無しさん
2011/11/27(日) 15:01:12.32だからゲームを作ってゲームの中に篭ってレベルを競うのだ。
0229デフォルトの名無しさん
2011/11/27(日) 15:01:51.19読んだのかよ
0230デフォルトの名無しさん
2011/11/27(日) 15:03:40.79> ゲームの外の世界にはレベルなんてないんだぜ。
あるぞ。
将棋二段とか
0231デフォルトの名無しさん
2011/11/27(日) 21:54:10.310232デフォルトの名無しさん
2011/11/27(日) 22:26:04.19>>ゲームは創作物の中でハードル高い CGだけでも奥深いのに
音楽やプログラムも必要だしそれらを束ね合わせるセンスもいるし
更に全てハイレベルで無いとしょぼくなる
0233デフォルトの名無しさん
2011/11/27(日) 23:25:00.76漢字の使い方くらい勉強しようぜ
それとも小学生なのか
0234デフォルトの名無しさん
2011/11/27(日) 23:48:29.000235デフォルトの名無しさん
2011/11/27(日) 23:56:09.42情報が古いと言うかなんというか
0236デフォルトの名無しさん
2011/11/27(日) 23:58:28.330237デフォルトの名無しさん
2011/11/28(月) 00:01:57.56それならゲーム等の3D映像だって必要無い奴は買わないわけだし
必要であればOnにするだろ?
0238デフォルトの名無しさん
2011/11/28(月) 00:08:58.93ニコニコ動画のデブチンもすげークソだし
なにが凄腕プログラマだよ 日本の2chのその下らへんで有名だけ
ねえ?!??!
ニコニコ動画はウンコじゃん
Youtubeはログインしないで見れる
ニコニコ動画はログインしないと見れない くだらない ニコニコビュアー使えば見れる(失笑)
Yotubeは誰でもコメントできれば最高
ニコニコ動画はウンコ
お前らクズ
ゲームでもゴミ
欧米がやったあとやるだけ
いつも欧米のあとゲームはな??? 消えろよいい加減
ゲームの緻密さで勝てないと UIとかくだらねえ発想(体感ゲーム、トイレでゲーム)
とかくだらねえので勝とうと必死 くだらねえんだけど
0239デフォルトの名無しさん
2011/11/28(月) 00:17:14.770240デフォルトの名無しさん
2011/11/28(月) 00:21:54.82本当にそう思う
機体の力に頼るジャップ
アーマードコアもロボット
エヴァとかも
ジャップが好きになるものはわかる
0241デフォルトの名無しさん
2011/11/28(月) 00:25:41.160242デフォルトの名無しさん
2011/11/28(月) 00:30:43.740243デフォルトの名無しさん
2011/11/28(月) 00:33:33.24P C ゲ ー ム の 話 題 に ふ れ な い の か ? ? ?
な ん で 家 庭 用 ゲ ー ム 機 ?
0244デフォルトの名無しさん
2011/11/28(月) 00:35:35.32ら
せ
な
い
で
く
れ
0245デフォルトの名無しさん
2011/11/28(月) 11:10:45.320246デフォルトの名無しさん
2011/11/30(水) 01:53:09.56言語に対する情熱なんて持たずに、ただ単に使い勝手の良い糊として
使いたいだけの人にはpythonが唯一の選択肢。
ウェブ系?何それオイシイの?てか、ちょっと前の関数型ブームって何だったんだろう
node.jsもhaskellみたいに、ちょっと騒がれて消えるような運命を辿るのかな
0247デフォルトの名無しさん
2011/11/30(水) 03:14:37.77非常に惜しい言語
0248デフォルトの名無しさん
2011/11/30(水) 06:22:33.210249デフォルトの名無しさん
2011/11/30(水) 11:31:02.48どちらかと言えば問題は self.__ が長過ぎることかと
一行にフィールドがいくつも現れる場合に、書きにくいのは当然ながら、読みにくい…
0250デフォルトの名無しさん
2011/11/30(水) 13:15:06.690251デフォルトの名無しさん
2011/11/30(水) 14:05:34.94いや、素直にprivateフィールドをサポートすればいいと思うよ…
self自体は名前変えられるけど、アンダーバー2つがウザいからな
0252デフォルトの名無しさん
2011/11/30(水) 14:10:17.40あんまり使わないからいいか、と思ったのかもしれないが、残念ながら巷では多用されまくってるな
0253デフォルトの名無しさん
2011/11/30(水) 14:24:53.670254デフォルトの名無しさん
2011/11/30(水) 19:55:06.62情報量で選ぶとpythonになりますかねえ
0255デフォルトの名無しさん
2011/11/30(水) 20:44:07.120256デフォルトの名無しさん
2011/11/30(水) 20:55:42.07今日の問題は、>>255がなに言語プログラマか?です。
その理由も一緒にお応え下さい。
0257デフォルトの名無しさん
2011/11/30(水) 21:02:06.64って感じで触ってきたけどJavaScriptにどっぷりだったせいもあって
PHPめんどくさい事多すぎ
Javaとかもっとめんどくさいけどw
0258デフォルトの名無しさん
2011/11/30(水) 21:09:02.41Java、C#、Cのほうが遙かに面倒だろ。
0259デフォルトの名無しさん
2011/11/30(水) 21:15:16.84何言語プログラマーもなにも俺初心者だしなぁ。覚えた言語はマークアップ言語以外ではまだ一つだけだ。
0260デフォルトの名無しさん
2011/11/30(水) 21:49:18.00確かに面倒だけどまだJavaとかC#とかの方が書きやすいよ
Cに関してはただただ面倒くさい言語
PHPは書くには楽な部類だけど微妙だわ
0261デフォルトの名無しさん
2011/12/01(木) 01:21:24.560262デフォルトの名無しさん
2011/12/01(木) 01:29:59.810263デフォルトの名無しさん
2011/12/01(木) 03:03:53.85かえってバグ作り込みそうだしメリット不明で、にわかには信じ難いんだけれども
0264デフォルトの名無しさん
2011/12/01(木) 03:12:46.69昔のファミコンはアセンブラしかなくて不便だった。
0265デフォルトの名無しさん
2011/12/01(木) 06:53:45.91それはC++に移行したとはいえないし
部分的に移行したともいえない
なぜなら移行する範囲について何も言っていないから
0266デフォルトの名無しさん
2011/12/01(木) 06:56:13.94組み込みでもアプリ寄りなのは
C++使ってるとこもあるみたいだが
0267デフォルトの名無しさん
2011/12/01(木) 07:15:57.70クラスなどは開発効率を上げるという点で使える。
0268デフォルトの名無しさん
2011/12/01(木) 07:24:46.14Javaなんて、開発環境側で、例外処理の自動生成(空の)が出来るし、
変数名やクラス名が気に入らなければ、リファクタ>名前の変更で、
プロジェクト内のすべての出現箇所を変更してくれる。
この変数・メソッドはどこで使われいるのだろうかと、調べたくなったら、
呼び出し階層を開くで、プロジェクト内のすべての使用箇所を表示してくれる。
0269デフォルトの名無しさん
2011/12/01(木) 08:06:51.87関数ポインタよりtypedefが良いという奴が型名をリファクタリング
lambdaよりclassが
hashよりclassが
このパターンに付き合わされるのが面倒
0270デフォルトの名無しさん
2011/12/01(木) 10:35:18.07STLゴリゴリ使うワケにもいかんだろうし、かと言って今更純Cには戻れんという感じの
0271デフォルトの名無しさん
2011/12/01(木) 11:17:01.86new / delete は基本文法な訳だが?
0272デフォルトの名無しさん
2011/12/01(木) 17:23:25.75環境によったら動的確保がやばいのかもしれないが。
0273デフォルトの名無しさん
2011/12/01(木) 18:38:32.890274デフォルトの名無しさん
2011/12/01(木) 19:52:27.87たんにメソッドでいいと思うんだけど。
0275デフォルトの名無しさん
2011/12/01(木) 23:22:44.011.そのメソッドはなにを返すのか?
2.コンストラクタ名は何になるのか?
3.コンストラクタではなにを返すのか?
0276デフォルトの名無しさん
2011/12/01(木) 23:36:13.66C++がbetterとも言えないからCが多い
new/deleteとかvirtualとか要らね
mallocなんて必要ねえ
起動したプログラムは二度と止まらないとか普通だし
0277デフォルトの名無しさん
2011/12/02(金) 09:56:08.420278デフォルトの名無しさん
2011/12/03(土) 21:42:26.23それぞれの言語で書いたバトルアルゴリズムを闘わせろって意味ですね
0279デフォルトの名無しさん
2011/12/03(土) 21:51:12.97やってみたいけど言語関係なくアルゴリズム勝負のような気が
0280デフォルトの名無しさん
2011/12/03(土) 22:16:48.00まずは俺のターン、ドロー!
eaxレジスタにゼロをセットし、リターン!
0281デフォルトの名無しさん
2011/12/04(日) 01:01:53.640282デフォルトの名無しさん
2011/12/04(日) 01:14:12.02聞いたことがあるような
0283デフォルトの名無しさん
2011/12/04(日) 03:08:06.56doom のクローンで敵を倒すと対応するプロセスが kill されるのがあったはず。
0284デフォルトの名無しさん
2011/12/04(日) 13:18:07.44アセンブラで書いて壊し合いする奴は
0285デフォルトの名無しさん
2011/12/04(日) 20:01:02.18ttp://vyznev.net/corewar/guide.html
ttp://corewar.co.uk/wendell/
corewarsのスレでも建てるかい?w
0286デフォルトの名無しさん
2011/12/05(月) 00:50:53.44>newがメソッドだとして
>1.そのメソッドはなにを返すのか?
レシーバであるクラスのインスタンスオブジェクト
>2.コンストラクタ名は何になるのか?
initializeでも__init__でもお好きなように
>3.コンストラクタではなにを返すのか?
何も返さなくてOK
で、newやdeleteが演算子である利点って何?
0287デフォルトの名無しさん
2011/12/05(月) 00:58:17.720288デフォルトの名無しさん
2011/12/05(月) 01:26:36.04たぶん流れ的には C++ の話だと思うんだけど…
オブジェクトの生成をメソッドでやる言語って、だいたいクラスそのものを基本的にオブジェクトとして扱う言語だと思う。
だからこそ、クラスに対してメソッド呼び出しをする、って形が自然になる。
でも C++ とかって、クラスは「型」であってオブジェクトではないという考え方じゃないか?
オブジェクトではないものに、メソッド呼び出しはヘンだということじゃないかなあと思う。
まあ、JavaScript みたくオブジェクトであるハズのものに new 演算子を付ける言語とか
Delphi みたく、型なのにメソッド呼び出しみたいな書式でインスタンス生成する言語もあるにはあるけどさ。
0289デフォルトの名無しさん
2011/12/05(月) 19:33:37.23なるほど。でもC++にもクラスメソッドってあるんじゃないの?
0290デフォルトの名無しさん
2011/12/05(月) 19:44:47.16でもそうすると、Javaはどうなんだよって話に…確かにわかんないやw
0291デフォルトの名無しさん
2011/12/05(月) 19:46:57.99すべてのルートとなるクラスね
親クラスないのに、作ってもいないクラスメソッドがあるのはなんでだよって話になるってことね
でも結局Javaの説明がつかないので投げた
0292デフォルトの名無しさん
2011/12/05(月) 22:28:54.10引数と戻り値の型が書けないから、Dartみたいに笑いものにされて終わっていた
0293デフォルトの名無しさん
2011/12/05(月) 22:43:40.27クラスにnewメソッドがあるがこのメソッドは
特殊なメソッドで通常のメソッドとは全く違う。
っていうのなら、メソッドにしないほうがいいと思うんだが。
そのほうが綺麗でしょ。
Perlのnewは通常のメソッドと全く同じだよ。
そのせいでblessで値を返すみたいな面倒なコードを
量産しなければならなくなったけど。
0294デフォルトの名無しさん
2011/12/06(火) 01:18:16.360295デフォルトの名無しさん
2011/12/06(火) 23:21:44.510296デフォルトの名無しさん
2011/12/07(水) 02:59:14.61もしruby覚えたらPHP使う機会なくなるかな?適材適所って感じで使い分けられるならrubyもやりて〜んだが。
0297デフォルトの名無しさん
2011/12/07(水) 13:06:09.45>クラスにnewメソッドがあるがこのメソッドは
>特殊なメソッドで通常のメソッドとは全く違う。
どう違うの?
>っていうのなら、メソッドにしないほうがいいと思うんだが。
>そのほうが綺麗でしょ。
ぜんぜん。なんできれいだと思うの?
>Perlのnewは通常のメソッドと全く同じだよ。
>そのせいでblessで値を返すみたいな面倒なコードを
>量産しなければならなくなったけど。
それはPerlの設計がクソなだけ。話がそれてる。Pythonを見ればいい。
0298デフォルトの名無しさん
2011/12/07(水) 14:14:37.12一つのLLしか使わないの?
みんな色々使って仲良くしようよ。
0299デフォルトの名無しさん
2011/12/07(水) 15:08:25.460300デフォルトの名無しさん
2011/12/07(水) 15:36:57.37スレタイ100回嫁
0301デフォルトの名無しさん
2011/12/07(水) 20:02:26.93出力がHTMLならPHP、プレーンテキストならRuby
利用者が使うのがブラウザならPHP、コマンドラインならRuby
0302デフォルトの名無しさん
2011/12/07(水) 20:46:48.01利用者が使うのがブラウザならnodejsでJavaScript、コマンドラインならnodejsでJavaScript
JavaScriptだけでいいな
0303デフォルトの名無しさん
2011/12/07(水) 21:00:19.40PHPだけでも、これぐらいのことは出来るらしいから
PHPだけでもいいんじゃね?
http://hirata-create.lar.jp/
0304デフォルトの名無しさん
2011/12/07(水) 21:33:26.42>>301
ブレーンテキストが初耳なぐらい素人なんで難しいんですがphpも使い分けで選択する余地有りってことですよね。
>>302
JavaScriptを勉強するのが結構楽しいのでサーバーサイドも気になるのですがレンタルサーバーで使えるとこ少なくないですか?
>>303
PHPを使うフリーソフト?というのがよくわからないのですがエディタでPHPを書くだけでは出来ないような機能を拡張したようなフリーソフトということでしょうか?
0305デフォルトの名無しさん
2011/12/07(水) 21:35:27.350306デフォルトの名無しさん
2011/12/07(水) 21:36:20.08まぁ昔からそれ系のライブラリはあったが。
nodejsとかは無料で使えるサーバもある。
0307デフォルトの名無しさん
2011/12/07(水) 22:11:58.00PHP勉強しつつもPHPでそうゆうことが出来るとは思ってなかったです。
node.js無料サーバーで使えるとか俄然興味でてきたなぁ。
0308デフォルトの名無しさん
2011/12/07(水) 22:21:03.81Web系はJavaがいいなー
PHPは触りたくない。
そういう意味ではRubyがおすすめ。
0309デフォルトの名無しさん
2011/12/07(水) 22:21:10.080310デフォルトの名無しさん
2011/12/07(水) 22:31:39.24っていうかexe作るんだったらPHPじゃなくても出来るのに
わざわざPHP使いたいっていうのが笑える
webやるならpython快適だよ
0311デフォルトの名無しさん
2011/12/07(水) 22:33:19.33Javaって企業で使うイメージなんだけど趣味で使うにも覚える価値ありかな?Androidアプリも完全にJavaというわけでもないとか聞いたんだが。
でもLLしか学んでない俺には難しそうだ。
高校時代に授業で学んだはずのC言語は1%も覚えてないし。
0312デフォルトの名無しさん
2011/12/07(水) 22:43:33.930313デフォルトの名無しさん
2011/12/07(水) 23:16:16.39言語なんて10位使えるのは普通だが
0314デフォルトの名無しさん
2011/12/08(木) 04:55:01.77> >>275
> >newがメソッドだとして
> >1.そのメソッドはなにを返すのか?
> レシーバであるクラスのインスタンスオブジェクト
>
> >2.コンストラクタ名は何になるのか?
> initializeでも__init__でもお好きなように
>
> >3.コンストラクタではなにを返すのか?
> 何も返さなくてOK
>
> で、newやdeleteが演算子である利点って何?
>
newが演算子である利点って別にないよね。
PerlやJSの場合、任意のメソッドでハッシュリファレンス返したり、オブジェクトリテラル返したりしてインスタンス作るわけだけど、それで不便があるかって言ったら別にない。
0315デフォルトの名無しさん
2011/12/08(木) 14:06:48.63YammerがScalaからJavaへ移行中
ttp://www.infoq.com/jp/news/2011/12/yammer-scala
> Yammerは複雑さや性能面を鑑みて、基盤のインフラをScalaからJavaへ戻すそうだ。
...
> Javaの代わりにScalaを使うことで生まれる軋轢や複雑さは、 Scalaの生産性や運用負荷の削減によっては埋め合わせできません。
その反応
ttp://togetter.com/li/223895
Scala信者の必死ぶりが笑える
0316デフォルトの名無しさん
2011/12/08(木) 20:52:34.75newメソッドが通常のメソッドと性質が違う
特殊メソッドという扱いにすればそうかもね。
でも特殊メソッドという例外的な仕様を作るのなら
new演算子のほうがいいでしょ。
0317デフォルトの名無しさん
2011/12/08(木) 21:17:33.59http://blog.livedoor.jp/dankogai/archives/51733482.html
北畠徹也氏が代表の「テラ・インターナショナル」がPerlを勝手に商標登録
>>この北畠って人は、ツイッターとかでも自殺するって言って話題になったり
よく分からないNPOか何かに募金をしてくれってメールを数万人規模のMLに流したり
それらは実はチョットした技術的ミスだって釈明してたりする人らしいね
Tetsuya_K 北畠徹也
@dankogai の家に電話したら、「小飼弾は死にました」らしい。ざまみろ。ざまみろ。というか、死んだ方が社会にとって幸せ。以上。# どうでもいいが、jcode.plなんて簡単につくれるじゃろ。あんなので調子に乗るアホもどうかしてるぜ。
Tetsuya_K 北畠徹也
I compared my @klout with @dankogai, how does your @klout compare? klout.com/user/dankogai/… @Tetsuya_K に比べたら全く大したことねーな。大口叩く愚か者が。
コメントの一覧
「みんなおもしろいおもしろいいってるけど北畠さん完全にかわいそうな精神病の患者ですよね」
「コメント欄が病的で怖い。人格が分裂してる?」
「本当に何がしたかったんだろう・・・」
「無事取り消されたそうで。本当によかった。」
0318デフォルトの名無しさん
2011/12/08(木) 21:38:58.75ワロタw
おもいっきりセールス断るときの常套句じゃないかw
http://www.google.co.jp/search?q=セールス+死にました
約 6,420,000 件 (0.12 秒)
馬鹿にされてることを自分で公開して恥ずかしく無いのかな?
0319デフォルトの名無しさん
2011/12/08(木) 22:29:29.13だからどう違うのかを聞いているのに、まともに答えてないじゃん。
「newは特殊」という馬鹿りで、どう特殊なのかまるで説明されてない。
Rubyだけでも勉強したら?
0320デフォルトの名無しさん
2011/12/08(木) 22:52:33.23apacheコミュでも散々暴れてたのに
0321デフォルトの名無しさん
2011/12/08(木) 23:11:18.07どうちがうのかって実際い書いてみれば分かるでしょ?
newはインスタンスを返すメソッドだよね?
擬似言語で書くけど、
function new() {
return ○ ← これはどうやって生成するのか? new Class()とでもするかい?
}
0322デフォルトの名無しさん
2011/12/08(木) 23:23:17.210323デフォルトの名無しさん
2011/12/08(木) 23:28:39.860324デフォルトの名無しさん
2011/12/08(木) 23:31:21.760325デフォルトの名無しさん
2011/12/08(木) 23:51:18.57開発環境の入力補完機能で、
n を打った時点で補完してくれそうな気がする。
0326デフォルトの名無しさん
2011/12/08(木) 23:55:36.520327デフォルトの名無しさん
2011/12/08(木) 23:57:12.96blessすれば
アホかよ
予約語じゃないしnewは
0328デフォルトの名無しさん
2011/12/09(金) 00:22:33.36こんなの他の言語にはないよ。特殊な仕様だ。
大体newの実装をいちいち書かないといけないのがめんどくさい。
それを省くためのモジュールもあるけど、
それを使うとnewは特別扱いされることになる。
newをメソッドにしたために
別の複雑なルールができあがっていく。
しかもそのルールを破ることも可能。
違うルールのものを混ぜるのが難しくなっていく。
このように特殊なメソッドになっていくわけさ。
0329デフォルトの名無しさん
2011/12/09(金) 00:26:34.100330デフォルトの名無しさん
2011/12/09(金) 00:35:01.48他の言語に無いとか特殊とか言われても
SmalltalkとかEiffelとかSatherとかPerlとかRubyとかPythonとかは
インスタンス生成にnew演算子とか使わないのだが……
つうかC++の系統のOOPLしか知らない?
> 大体newの実装をいちいち書かないといけない
んなこたあない
これ以上面白おかしいことを言う前に、ひとつメタクラスのことでも
勉強したらどうだろう
0331デフォルトの名無しさん
2011/12/09(金) 00:37:22.65ちゃんと説明したら?
0332デフォルトの名無しさん
2011/12/09(金) 00:40:19.770333デフォルトの名無しさん
2011/12/09(金) 00:40:32.12バカもいいかげんにしろ。
blessが必要なのはPerlというクソ言語だけ。RubyもPythonも、blessを必要としない。
newがメソッドにできない理由なんてない。できないとしたら328のような無知が原因。
0334デフォルトの名無しさん
2011/12/09(金) 00:43:48.09ただし他のメソッドと違う特性を持った
特殊なメソッドになる。
違うものは違う書き方にしたほうがわかりやすい。
そういう話。
0335デフォルトの名無しさん
2011/12/09(金) 00:44:32.11当然だがインスタンス生成はオブジェクトではなくクラスへのメッセージになる
(クラスベースのOOPの場合は)
よってそれはインスタンスメソッドではなくクラスメソッドであるか
メタクラスのインスタンスメソッドであるということになる
Smalltalk系ではnewメッセージはメタクラスが実装しているはず
Pythonも似たようなもんで、関数コールと同じインタフェースになるが
typeというメタクラスがinstantiationを行う
こういう共通なものはいちいちユーザが記述する必要がない
実際に必要なのはクラス毎の初期化処理なので、普通は「コンストラクタ」に記述する
メタクラスがインスタンスをこしらえたあとで、そいつを呼んでくれるわけだ
というような話は誰かさん以外は分かってるような話だから
いちいち誰も説明したがらないんだろ
0336デフォルトの名無しさん
2011/12/09(金) 00:46:01.30誰かさん以外には言うまでもないことだと思うが
0337デフォルトの名無しさん
2011/12/09(金) 01:12:27.91だからどう特殊なのかを聞いてるんでしょ。日本語わかってる?
blessはPerl固有の事情なんで、それをもって特殊とかいうのはおかしい。
RubyもPythonも、コンストラクタは特殊でもなんでもない、ただのメソッド。
で、なにがどう特殊なの?
0338デフォルトの名無しさん
2011/12/09(金) 01:28:48.89特殊でもなんでもない
0339デフォルトの名無しさん
2011/12/09(金) 01:37:10.03Rubyで言えば、fooを呼び出したら、、
クラスに定義したfooが呼び出される。
そしてfooでreturnしたのがfooの戻り値だ。
fooじゃなくて○○○というメソッドという形に一般化しよう。
○○○を呼び出したら、クラスに定義した○○○が呼び出される。
これがメソッドだ。
しかしnewはクラスに定義したnewが呼び出されるわけじゃない。
そしてreturnを書いてないのに、newから戻り値が返ってきている。
このようにnewは特殊なものだ
0340デフォルトの名無しさん
2011/12/09(金) 01:43:43.20ここまで理解力がないのもいっそ素晴らしいな……
クラスFooのインスタンスfooがあるときに
foo.bar()と書くとfooのクラスであるFooに定義されてあるbar()というメソッドが
呼ばれるという話だろ
Rubyのようにメタクラスという概念がある言語では、
クラスもまたインスタンスであって、クラスのクラスはメタクラスとよばれ、
FooはメタクラスClassのインスタンスだ
Foo.new()と書くと、FooのクラスであるClassに定義されてあるnew()という
メソッドが呼ばれるわけだ
ルールはfoo.bar()の場合となにも変わらないことがわかるだろう
ちっとも特殊ではない
0341デフォルトの名無しさん
2011/12/09(金) 01:59:57.55#!/usr/local/bin/perl
my $x = bless {}; # ブレス!
ref $x; # メインが〜 メインが〜
0342デフォルトの名無しさん
2011/12/09(金) 02:56:50.83面倒じゃない記述で明示的にインスタンス生成できるのならば、些末な文法の違いなんてどうでもいい
0343デフォルトの名無しさん
2011/12/09(金) 05:04:42.830344デフォルトの名無しさん
2011/12/09(金) 08:42:38.22つまり、メタクラスという特殊なものと。
0345デフォルトの名無しさん
2011/12/09(金) 09:25:51.95役割の名前がないと他人に説明するときにえらい不便なのでメタクラスと呼ぶ人がいるというだけ
Rubyに至ってはClassクラスのインスタンスをクラス名と同じ名前の定数に代入して「クラスのように見える」ようにしてるだけに過ぎない
String = Class.new
class String
def sub; ... end
...
end
実際には速度の関係で定義をCで書いているが
0346デフォルトの名無しさん
2011/12/09(金) 09:52:28.12オブジェクトなんだから、クラスというオブジェクトにもクラスがあるというだけの話
何も特殊な話ではない
Smalltalkほど純粋なOOPLではないJavaにだってClassというクラスがあって
ClassにはnewInstance()というメソッドがあるだろ
普通はnew演算子を使うが
0347デフォルトの名無しさん
2011/12/09(金) 10:16:35.22ary.map {|x| x**2}
となるものが、Python では
map(lambda x: x**2, ary)
となり、lambda の本体が1つの式では表現しきれなくなると
def mapper(x):
.....
map(mapper, ary)
と書き換える必要があります。
0348デフォルトの名無しさん
2011/12/09(金) 10:24:20.94f = lambda x:(x and f(x-1)*x)or 1
RubyにはPythonのように「lambda本体は式でなければならない」という限定がありませんから、
andやorを使った不自然な記述をしなくても
f = lambda{|x|if x == 0 then 1 else x*f.call(x-1) end}
または
f = lambda{|x|x == 0 ? 1 : x*f.call(x-1)}
と書けます。lambda内でreturnが使えますから、書きたければ
f = lambda{|x|if x == 0 then return 1 else return x*f.call(x-1) end}
でもOKです。
0349デフォルトの名無しさん
2011/12/09(金) 11:11:09.42f = lambda x: f(x-1)*x if x else 1
なわけですが
0350デフォルトの名無しさん
2011/12/09(金) 11:12:13.28Python
print [x*2+100 for x in [1,2,3,4,5] if x > 2 and x < 5]
暗号のように見える。
Ruby
puts [1,2,3,4,5].select{|i| i > 2 and i < 5}.map{|i| i*2+100}
思考の流れと、コードの流れが一致しているので書きやすい。
0351デフォルトの名無しさん
2011/12/09(金) 11:22:55.04map(lambda x: x*2+100, filter(lambda x: x > 2 and x < 5, [1,2,3,4,5]))
0352デフォルトの名無しさん
2011/12/09(金) 11:59:04.29>lambda内でreturnが使えますから、書きたければ
>f = lambda{|x|if x == 0 then return 1 else return x*f.call(x-1) end}
>でもOKです。
Rubyの場合、(Pythonと違って <== ココ重要!!) if/caseといった条件分岐は
(文ではなく)式だから、return文は無くてもいいし、その方が簡潔になると思う
f = lambda { |x| if x == 0 then 1 else x * f.call(x - 1) end }
0353デフォルトの名無しさん
2011/12/09(金) 12:10:08.46>puts [1,2,3,4,5].select{|i| i > 2 and i < 5}.map{|i| i*2+100}
とても理解しやすい比較例だね
Rubyの場合には、左から右へと無名関数がデータフローあるいは
パイプラインのように並ぶから、コードが読みやすい
関数型プログラミングに不慣れな初心者でも、参照透明性のあるコードが自然に書ける
プログラマにとって優しい or プログラミングの楽しさを教えてくれるのがRuby
それと比較すると、Pythonのコードは、関数型プログラミングというものが
いかに高度で難解なものであるかという事をもったいぶってプログラマに押し付ける
もしもPythonしか知らないプログラマであれば、関数型 = 難解 という印象を持つだろう
0354デフォルトの名無しさん
2011/12/09(金) 12:22:07.370355デフォルトの名無しさん
2011/12/09(金) 12:38:51.31map/filterはfor/ifと同じだと言っているだけだから、難解という印象は持たない。
それに、イテレータを難解だと思わせていたのは関数型だけではなくて、
イテレータやコールバックをパラダイムを覆す概念として印象付けたのはむしろOOPだ。
0356デフォルトの名無しさん
2011/12/09(金) 12:53:45.66>RubyにはPythonのように「lambda本体は式でなければならない」という限定がありませんから、
これも関数型プログラミングを実践する上で、Pythonには無くてRubyにはある重要なポイントだね
階乗計算くらいだと単純すぎて、ナゼ重要なのかが分かりづらいと思うのでコードで示す
result_list = source_list.map { |elem|
x = foo(elem.x) # ここが局所宣言を書く部分
y = bar(elem.y) # ここも局所宣言の続き
x + y # 最後に評価された式の値が、無名関数のリターン値になる
}
Rubyでは、map等に与える無名関数の中で局所的な環境(クロージャ)が作られるから、
x = foo(...) のような代入文がいくつでも(= 複雑な処理でも)書ける
このポイントは、実用的なプログラムを関数型風で書こうとした時に、威力を発揮する
0357デフォルトの名無しさん
2011/12/09(金) 12:59:21.070358デフォルトの名無しさん
2011/12/09(金) 13:17:26.54高卒ドカタなんだろうなぁと可哀想になる
大学で数学に触れる機会があれば
集合の表記に似せてることが分かるから
0359デフォルトの名無しさん
2011/12/09(金) 13:46:31.97>map/filterはfor/ifと同じだと言っているだけだから、難解という印象は持たない。
関数型プログラミングに慣れた、あるいは得意な人であれば、そういった印象なんだろね
でも残念ながら >>353 で指摘したのは、これから関数型プログラミングを学ぼうとする初心者、
あるいはそんな初心者へ教える立場から見た、優しさ or 分かりやすさなんだ
たとえば「あるリストからある条件で抽出してそれを変換する」処理は、絵で書くと以下のようになる
[ 入力リスト ] ---> ( 抽出処理: select ) ---> ( 変換処理: map ) ---> [ 出力リスト]
これをRubyで書いたのが、(>>350から引用)
puts [1, 2, 3, 4, 5].select { |i| i > 2 and i < 5 }.map { |i| i * 2 + 100 }
であり、同じ処理をPythonで書くと、なぜか
print [x * 2 + 100 for x in [1, 2, 3, 4, 5] if x > 2 and x < 5]
になってしまう
どちらが「初心者にとって」理解が容易なコードであるかは、客観的に見て一目瞭然じゃないのかな?
0360デフォルトの名無しさん
2011/12/09(金) 13:53:28.85[1,4,3,2].sort.reverse.map{|x| x.to_s}.join('-')
Pythonだと読みにくいです。
'-'.join(map(str, reversed(sorted([1,4,3,2]))))
0361デフォルトの名無しさん
2011/12/09(金) 14:07:17.88Pythonでは思考の流れと一致しないばかりか、「カッコだらけ」のコードになると.....
0362デフォルトの名無しさん
2011/12/09(金) 14:10:47.93抽出処理・変換処理は分かりやすくないだろ。
名詞を並べているだけで、説明になっていない。
それを「絵」だといってごまかしている。
0363デフォルトの名無しさん
2011/12/09(金) 14:27:15.30[1,2,3].product([0,1,2,3]).select {|i,j| i * j > 2 and i * j < 5}.map {|i,j| i * j}
Python
[ x * y for x in [1,2,3] for y in [0,1,2,3] if 2 < x * y < 5]
0364デフォルトの名無しさん
2011/12/09(金) 14:28:55.99Rubyのやり方は基本ではなく玄人のやり方だろ
0365デフォルトの名無しさん
2011/12/09(金) 14:31:29.880366デフォルトの名無しさん
2011/12/09(金) 14:35:42.51>1に挙がってるスクリプト言語では、関数プログラミングに近い表記が出来るってだけで
参照透明性はないんじゃない。例えば、階乗計算の例に挙がってるコードの再帰のfはグローバル変数参照。
> パイプラインのように並ぶから、コードが読みやすい
別の視点も提供してみる
* リスト内包表記では、行頭だけ見れば何の型のリストか分かる。
* パイプラインのように並べて書くと、行末まで読まないと何のリストかわからない。
どちらが読みやすいかって主観的な意見は人それぞれ、
日本語と英語どちらが読みやすいかみたいに意見分かれそうだけど。
プログラムのコードを読むにあたっては、自分にとっては前者の方が都合が良いです。
後、比較の為に合わせてるのかもしれないけど、>>350
x > 2 and x < 5 は、Pythonでは 2 < x < 5 って書きます。
----
集合って高校で習ったような気がする・・・というのはさておき、
リスト内包表記は SQL をイメージすると覚えやすいよ。
0367デフォルトの名無しさん
2011/12/09(金) 14:44:01.38左から右に目を動かせばいいから
ただし二つ以上の要素でリストを生成するような場合は
リスト内包のほうが書きやすい気がする
つまり>>363みたいにproductを使わざるをえないようなケース
0368デフォルトの名無しさん
2011/12/09(金) 14:44:44.47そうかもね、なのでメソッドチェイン方式も内包表記もどっちも持ってる言語が最強だわな
0369デフォルトの名無しさん
2011/12/09(金) 15:40:36.66>メソッドチェイン方式も内包表記も
LINQ
でも、メソッドチェインなんかは構文糖衣でなんとかなりそうな範囲。
print I([1,2,3,4,5]).select(lambda x: 2<x<5).collect(lambda x: x*2+100).to_list()
http://codepad.org/fTb7LwTm
0370デフォルトの名無しさん
2011/12/09(金) 16:01:01.01これ似たようなこと誰でも思いつくみたいだなw
俺もまったく同じようなものを書いたことがあるよ……が、実際に使うかと言えば
使わない
0371デフォルトの名無しさん
2011/12/09(金) 16:15:53.72それぞれの言語に愛着のある方もいるでしょうから偏った意見もあると思いますが
そういうのも含めて色々な意見を聞いてみてどちらから学ぶか決めたいと思っています
皆さんはどちらが良いと思いますか
0372369
2011/12/09(金) 16:21:03.82同じく、全く使わない。
簡単に同様の機能を実装できるので、言語でわざわざサポートするまでもない例ってことで。
それに、Pythonでは組み込みの型でメソッドチェインはやって欲しくないな
listにmap,filterメソッドができたとしても、
似たようなコレクションtuple,deque,array,queue等にも同じメソッドが必要になってくるし。
シーケンスプロトコルの利点が活かせない。
0373デフォルトの名無しさん
2011/12/09(金) 16:34:00.08rubyはブロック変数が右側にあるから、
メソッドチェインのみで完結するなら、確かに左から右の方が自然な流れですね。
Pythonでは、 for x in ... と変数が左側に来るのでデータの流れは右から左
変数への代入は右から左 x = arg
関数の評価順も右から左 outer(center(inter( arg )))
慣れてる言語の方が読みやすいのは当然だけど、
こういう所も、それぞれの言語においての読みやすさに影響する。
Pythonの書きにくさ、多分カーソルを戻さないといけない煩わしさだと思うけど、
対応する括弧のハイライト、括弧単位でのカーソル移動や、閉じ括弧を自動で入れてくれる機能を持つ
プログラマ向けのエディタを使おう。この点は、エディタの習熟度で印象がかわってきそう。
0374デフォルトの名無しさん
2011/12/09(金) 16:43:13.16キーワードが必要かとか値返すのに明示的にreturn書かなきゃダメかとか
きょうびjavascriptの配列にもmapやらfilterとかあるけどfunctionとかreturn書かなきゃいけないのめんどい罠
0375デフォルトの名無しさん
2011/12/09(金) 17:20:18.92(x * 2 + 100 for x in [1,2,3,4,5] when 5 > x > 2)
[1,2,3,4,5].filter((x) -> 5 > x > 2 ).map((x) -> x * 2 + 100)
0376デフォルトの名無しさん
2011/12/09(金) 17:22:58.94LL言語低調な一年だった。
0377デフォルトの名無しさん
2011/12/09(金) 18:41:51.79得意と不得意を言語レベルではっきり主張するのでメリケン好みと言えなくもない
Rubyは全方位になんとなく八方美人なので、全体的になんとなく書きやすくてなんとなくキモくて遅い
0378デフォルトの名無しさん
2011/12/09(金) 18:46:31.32それにしても、Erlangの伸びが不気味だね。来年中頃には20位以内に入って
くるのは確実。他の関数型ではF#が目立つくらいのものだが。
0379デフォルトの名無しさん
2011/12/09(金) 18:48:52.27「書きにくいってことはその処理に向いてないってことだから諦めろ」を地で行く
0380デフォルトの名無しさん
2011/12/09(金) 18:49:44.33高卒だけどPythonのリスト内包は解るよ(Haskellのも複雑なのでなければ解るかな)
…逆に、数学の表記にはかなり苦手意識がある(集合もしかり)
数式を見ると「関数型言語とかで書いてくれたほうが解りやすいのに…」って思うw
0381デフォルトの名無しさん
2011/12/09(金) 19:13:38.59古い記事だけど、
http://www.atmarkit.co.jp/news/200704/27/erlang.html
現実になりつつあるようだ。
0382デフォルトの名無しさん
2011/12/09(金) 20:21:13.91Pythonを学んでみて不満があったらRubyでいいと思う
0383デフォルトの名無しさん
2011/12/10(土) 01:17:28.39Rubyは大クラス主義なもんで
eachメソッドで列挙可能なクラスはmapやselectできますな
mapやselectの実装はEnumerableモジュールにあって
eachメソッドさえ持ってればEnumerableモジュールをimportするだけで使えるので
外部のライブラリでも列挙可能なものは、たいていEnumerableモジュールをimportしてますね
Rubyユーザーは列挙可能なものはmapやselectできて当然だろって思ってる気がします
0384デフォルトの名無しさん
2011/12/10(土) 01:23:49.48これを読みづらいと感じるのは、左から右に流れる
日本語文に慣れているからだと思うが、
もしかしてアラビア語ネイティブな人からすると逆に読みやすいのか?
0385デフォルトの名無しさん
2011/12/10(土) 01:34:57.89F#のパイプライン演算子最高ということで
0386デフォルトの名無しさん
2011/12/10(土) 01:41:34.460387デフォルトの名無しさん
2011/12/10(土) 13:40:40.74基本その場でdefするのがPython風なんだと思う。
名前空間が汚れるとか、そもそも関数名そのものを考えるのがウザい
てのもわかるけど書きにくいとは感じない。
むしろ関数名がドキュメントになるし、書き方も統一されるしわかりやすい。
これって調教?
0388デフォルトの名無しさん
2011/12/10(土) 13:59:10.93知らないものの意味を名前から推測できる保証はない。
0389デフォルトの名無しさん
2011/12/10(土) 14:40:31.040390デフォルトの名無しさん
2011/12/10(土) 15:35:41.62これはPythonをdisっているように見せかけてRubyをdisっているのか?
と一瞬思ってしまったw
だってRubyのほうが長くない?CLのfuncallみたいなcall()がちょっとうざいし…
そしてどっちもlambda式の中で束縛変数の名前で再帰可能、と
0391デフォルトの名無しさん
2011/12/10(土) 15:44:36.04これはPythonの内包表記が単に無駄にforループっぽくてあんまり簡潔じゃない
ということだろーな
Haskellの
[ x*2+100 | x <- [1..5], x > 2 && x < 5 ]
だったらどう?
俺はこう書けるのにfilterとmapで書くかと言ったら書かない
Haskellの内包表記は"What"をそのものズバリで書いている
filterとmapのほうがずっと"How"で手続き的だ
そのまま「思考の順序そのままで」「書きやすい」という順序に依存した発想が
手続きよりなんじゃないの
0392デフォルトの名無しさん
2011/12/10(土) 15:48:19.75数学だったら合成関数で記述するかな
outer(center(inter(x))) = (outer・center・inter)(x)
outer・center・interで考えれば引数を除去できる
つまりポイントフリー
0393デフォルトの名無しさん
2011/12/10(土) 17:08:46.06[1,2,3,4,5].select(&:even?).map(|x| x*3)
That is almost readable code even in English!
I would read it as something like this.."From the list 1,2,3,4,5 select even numbers and map it to number times 3". Really nice!
This vs the clunkier Python code ...
[x*3 for x in [1,2,3,4,5] if x%2 == 0]
I mean it both works just that it seems more elegant in ruby.
0394デフォルトの名無しさん
2011/12/10(土) 17:48:26.17>そしてどっちもlambda式の中で束縛変数の名前で再帰可能、と
pythonのそれは自由変数。rubyも同じだったはず。
0395デフォルトの名無しさん
2011/12/10(土) 17:58:34.440396デフォルトの名無しさん
2011/12/10(土) 18:01:05.71あーなるほど
関数スコープだから代入文の右辺の時点ですでに名前が可視になっていて
lambda式から見ると、自由変数扱いということかな?
これは見慣れないとびっくり要素かも……
0397デフォルトの名無しさん
2011/12/10(土) 18:36:28.16>>> def make():
... g = lambda x: 1 if x == 0 else x * g(x - 1)
... return g
...
>>> fact = make()
>>> fact.func_code
<code object <lambda> at 0x7ef87698, file "<stdin>", line 2>
>>> fact.func_code.co_freevars
('g',)
0398デフォルトの名無しさん
2011/12/10(土) 20:24:33.28pythonはないよ。自身を呼び出す関数は作れるけど、その関数自体が式内では自由変数になる。
ここで必要なのは callee よりも letrec
>>396
関数内だとその通り。モジュールのトップレベルだとグローバル変数参照になる。
0399398
2011/12/10(土) 20:26:29.810400デフォルトの名無しさん
2011/12/11(日) 08:35:53.32それとも、まるでPerlのように古い仕様を残す方針になったのか。
0401デフォルトの名無しさん
2011/12/11(日) 11:30:31.90var f = function fact(x) { return x ? x*fact(x-1) : 1 };
0402デフォルトの名無しさん
2011/12/11(日) 11:45:42.35>>398ではないが、その辺はPythonでは以前からなんもかわってない筈
「古い」というのがどういう意味か分からないが
Pythonの「グローバル」は実際にはモジュール名前空間の中での話なので何も困らない
>>> fact = lambda x: 1 if x == 0 else x * fact(x - 1)
>>> fact.func_code.co_freevars
()
>>> import dis
>>> dis.dis(fact)
1 0 LOAD_FAST 0 (x)
3 LOAD_CONST 0 (0)
6 COMPARE_OP 2 (==)
9 JUMP_IF_FALSE 5 (to 17)
12 POP_TOP
13 LOAD_CONST 1 (1)
16 RETURN_VALUE
17 POP_TOP
18 LOAD_FAST 0 (x)
21 LOAD_GLOBAL 0 (fact) <------ コレ
:
:
0403デフォルトの名無しさん
2011/12/11(日) 21:00:59.70echo done;
?>
0404デフォルトの名無しさん
2011/12/11(日) 21:02:07.18echo done;
?>
0405デフォルトの名無しさん
2011/12/11(日) 21:25:43.18Rubyって1.9からブロックスコープになったんだっけ?
0406デフォルトの名無しさん
2011/12/11(日) 22:18:13.47仕事をしている人達ばかりなの?
0407デフォルトの名無しさん
2011/12/11(日) 22:32:00.89仕事の成果物としては使ってないなー
0408デフォルトの名無しさん
2011/12/12(月) 01:04:13.200409デフォルトの名無しさん
2011/12/12(月) 01:44:36.100410デフォルトの名無しさん
2011/12/12(月) 01:45:42.990411デフォルトの名無しさん
2011/12/12(月) 07:07:37.930412デフォルトの名無しさん
2011/12/12(月) 07:24:31.54シェスクリプトのソースを直接納品するのと同程度には稀だということ
Rubyスクリプトはシェルスクリプトのように普段(使い捨てで)くるくる動いてこそ意味がある
大人数でスキルも目的もバラバラな人間に年単位でプログラム作らせたいなら、そりゃJavaを使えばいいのさ
0413デフォルトの名無しさん
2011/12/12(月) 08:39:03.22Rubyでは無理ってことかね。そこが重要なんだが。
0414デフォルトの名無しさん
2011/12/12(月) 08:44:34.69Java は徹底しているからな。C# みたいに、検査例外がないなんてことはないし。
0415デフォルトの名無しさん
2011/12/12(月) 08:58:27.590416デフォルトの名無しさん
2011/12/12(月) 09:41:29.950417デフォルトの名無しさん
2011/12/12(月) 10:25:43.66そもそもRubyはコード書く人=利用者な言語だと思う基本的には
0418デフォルトの名無しさん
2011/12/12(月) 10:40:11.49制作委員会や予算がついて何人月で作るような業務用のやつとか
そういうのしかプログラムと呼ばないような人がいるような気がする
ホテルや料亭で作るのも料理だし、定食屋や弁当屋で作るのも料理だし、一般家庭で作るのも料理だぞ
0419デフォルトの名無しさん
2011/12/12(月) 10:46:29.84いるよ
会社に入って正社員としてプログラムを初めて習って業務でしかプログラミングしない人というのは一定数いる
そういう人にとってのプログラムは、会議して予算つけて社員が複数人で何ヶ月も開発してクライアントに納入するものだろう
個人が作って個人が使って個人が出力を受けて個人が利益に与るようなものはプログラムとは呼ばない
たとえそれが会社の社員個人のパソコンの中や社内サーバの中で、データが業務(の補助)に使われていてもね
そういう人は家にパソコンがないとか、家に開発環境が入ってなかったりする
ちょうど、ごつい大工道具や金属加工の旋盤なんかは仕事道具であって、そんなものが家にあるわけがないのと同じような理屈
0420デフォルトの名無しさん
2011/12/12(月) 10:59:01.26社内業務向けのアプリだし、GUIじゃないけどね。
0421デフォルトの名無しさん
2011/12/12(月) 11:34:43.75Rubyは家庭料理やね
食うのは自分と家族(同僚)、みたいな
0422デフォルトの名無しさん
2011/12/12(月) 12:04:17.360423デフォルトの名無しさん
2011/12/12(月) 12:26:48.97そうだよ
クライアントがJavaを求めてるならJavaで書けばいいし、
Perlモジュールに便利なのがあるならPerlで書けばいいし、
PHPができる人しか集められなかったならPHPで書けばいいし、
Pythonしか知らない人がうるさくて仕方ないならPythonで書いて黙らせればいい
Javaを使えなかった負け組企業がRuby(正確にはRoR)になだれ込ん(でまた負けた)だだけで、
Rubyユーザーの立ち位置は昔からあんまり変わらない
0424デフォルトの名無しさん
2011/12/12(月) 12:59:23.76あんた、いいこと言うねえ
0425デフォルトの名無しさん
2011/12/12(月) 13:43:23.460426デフォルトの名無しさん
2011/12/12(月) 17:12:38.83昔ちょろっとぐぐってみたとき、IBMのSIerの記事でRoRのことが結構書いてあったような。
0427デフォルトの名無しさん
2011/12/12(月) 21:14:44.67RoR側の人はRoRこそRuby的に思ってそうだが
>>422
Programmer's Best Friend が謳い文句だからな
自分が使うツールを作るための言語ってのが本来の立ち位置
0428デフォルトの名無しさん
2011/12/13(火) 01:40:21.36>1にある言語の中では、概ね yes
JavaScript 1.7 では let でブロック・スコープが使える。
が実装されてるのは一部なので、ブラウザの互換を考えるとweb用途では実質使えない。
ruby1.9の変更はブロック・スコープというか、
rubyの機能「ブロック」の引数のスコープだったと思う。
0429デフォルトの名無しさん
2011/12/13(火) 02:05:36.18うへぇ、Java-erが傲慢でプライドが高いのは相変わらずだな。他人を見下しながら生きている。
最近はScala-erも鼻持ちならないけど。
0430デフォルトの名無しさん
2011/12/13(火) 18:45:48.88スクリプト言語系の話題はいつもそう
0431デフォルトの名無しさん
2011/12/13(火) 19:14:26.50LLじゃなくてもいいです。
0432デフォルトの名無しさん
2011/12/13(火) 19:17:12.860433デフォルトの名無しさん
2011/12/13(火) 19:37:01.140434デフォルトの名無しさん
2011/12/13(火) 19:39:27.710435デフォルトの名無しさん
2011/12/13(火) 20:25:24.67Rubyが一番性格がよろしい。
0436デフォルトの名無しさん
2011/12/13(火) 20:56:03.03PHPerは卑屈すぎるし、
間をとってPythonistaかな。
0437デフォルトの名無しさん
2011/12/13(火) 21:01:01.81PHPer: 土方、DQN
Pythonista: イケメン、リア充
0438デフォルトの名無しさん
2011/12/13(火) 21:42:12.490439デフォルトの名無しさん
2011/12/13(火) 23:09:44.31慣れたら、けっこうLispも見れるじゃんって思うようになってきた。
0440デフォルトの名無しさん
2011/12/14(水) 00:04:22.900441デフォルトの名無しさん
2011/12/14(水) 00:34:54.13いじめられっこネクラチビメガネみたいな色黒とかキモオタ
顔面オジサン、オバサンばっかなの?
0442デフォルトの名無しさん
2011/12/14(水) 00:36:12.690443デフォルトの名無しさん
2011/12/14(水) 00:37:26.090444デフォルトの名無しさん
2011/12/14(水) 00:40:20.960445デフォルトの名無しさん
2011/12/14(水) 00:47:59.11Scalaer: 鼻持ちならない、モヒカン
Lisper: マジキチ
Rubyist: ネクラ、オタク、キモメン、いじめられっこネクラチビメガネ、色黒、キモオタ、顔面オジサン、オバサン
PHPer: 土方、DQN
Pythonista: イケメン、リア充、永久凍土
0446デフォルトの名無しさん
2011/12/14(水) 00:53:15.910447デフォルトの名無しさん
2011/12/14(水) 01:16:28.38コンボボックス(ドロップダウンリスト)、ボタン、テキストエリア…
コマンドプロンプトの黒い画面がいやなひとへ
0448デフォルトの名無しさん
2011/12/14(水) 01:59:42.440449デフォルトの名無しさん
2011/12/14(水) 02:03:34.740450デフォルトの名無しさん
2011/12/14(水) 02:27:32.56それって実質 GUI 操作をするJavaScriptのコードの方が多くなりそう
プロンプト苦手なら普通にIDE...
0451デフォルトの名無しさん
2011/12/14(水) 06:41:22.980452デフォルトの名無しさん
2011/12/14(水) 08:25:35.820453デフォルトの名無しさん
2011/12/14(水) 09:10:56.43ユーザー入力がないならこれでもなんとか、というか別にHTML書き出せば他の言語でも
0454デフォルトの名無しさん
2011/12/14(水) 21:36:29.44そういう言語は、習得が容易でうろ覚えで適当に書いてもそれなりに動く必要があるが、
そのような言語設計にすると「文法が変」、「最新のパラダイムが導入されておらず時代遅れ」等のナンセンスな指摘をされて普及しない。
こういう話が出るとPython、Ruby、Scheme等をすすめる人がいるが、
プログラミングの専門教育を受けておらず、なおかつ特別にプログラミングの適性があるわけでもない人々が
それらの言語を本当に容易に使えると思っているのだろうか?
Tclはシェル言語に近い文法であり、オブジェクト指向に過度にこだわらないため
プログラミングの専門教育を受けていない人でもアレルギーを起こさず、
覚えるべきことも少なく学習に時間がかからないので、ほぼ条件を満たしているように見える。
だが、現状ではその真価が発揮されていない。
プログラミングを専門としない人々が日常的に使える言語の普及を希求する。
0455デフォルトの名無しさん
2011/12/14(水) 21:41:42.590456デフォルトの名無しさん
2011/12/14(水) 21:47:30.630457デフォルトの名無しさん
2011/12/14(水) 22:01:07.13理由は4つ
1. プロが使おうとしないものは普及しにくい
2. かつての8bit機のBASICのように、デフォルトのスクリプト言語にならなければ
デスクトップ・ユーザーは使おうとしない
3. かつての8bit機のBASICのように、パソコンに命令して自在に操る喜びを
現在のデスクトップユーザーは知らないし、知ろうともしない
4. たとえごく簡単にでもプログラミングができれば便利であるが、
デスクトップ・ユーザーはそれを知らないし、知ろうともしない
0458デフォルトの名無しさん
2011/12/14(水) 22:10:28.72おそらく期待に沿ったレスではないと思うけど、現実的な解は「プログラミングしない」こと
一般の人々にとって、コンピュータは目的を達成するための道具(手段)にすぎない
だから、そんな彼らへ無理にプログラミング言語を押し付ける必要は無い
過去を振り返るとVisiCalcに始まった表計算ソフトは、
それまでプログラミングが必須だと思われていた複雑な計算処理を、
普通の人でも対話的に組立てることが可能な環境を提供した
繰り返しになるけど、普通の人々はプログラミング言語そのものを欲しているわけではない
0459デフォルトの名無しさん
2011/12/14(水) 23:13:51.01Pythonでいいんじゃね?
0460デフォルトの名無しさん
2011/12/14(水) 23:28:06.16awk
0461デフォルトの名無しさん
2011/12/15(木) 00:07:46.57シェルスクリプト(awk等を含む)とTcl/Tkだけで済んでしまう。
シェルスクリプトで日常的なことはほとんどできる。
シェルスクリプトが苦手とするGUIはTcl/Tkで補える。
速度が要求されるとか、オブジェクト指向が必要であるとか、
そういう場合は他の言語も勉強しなければならないだろうけど。
0462デフォルトの名無しさん
2011/12/15(木) 00:22:23.57今北産業
0463デフォルトの名無しさん
2011/12/15(木) 00:34:34.50TclはLispのマクロのようなこともできるので
やろうと思えばアレルギーを起こすこともできる
0464デフォルトの名無しさん
2011/12/15(木) 01:07:37.53>>458ともかぶるが、一般人は簡易な言語は求めていないと思う。むしろ簡易な操作で作業を効率化できる方がおそらく重要。
そうゆう点では、言語仕様はどうあれ、Excel VBA(マクロ記録)はうまくニーズにフィットしてると思う。
0465デフォルトの名無しさん
2011/12/15(木) 07:46:22.160466デフォルトの名無しさん
2011/12/15(木) 07:47:55.57まず、どうやってExcelをひらくか
ひらいてマクロが実行できるのか
0467デフォルトの名無しさん
2011/12/15(木) 08:20:10.82すまん、Excelのことは忘れてくれ。あーゆーマクロ記録のほうが有用では?ということが言いたかっただけだから。
0468デフォルトの名無しさん
2011/12/15(木) 09:11:22.710469デフォルトの名無しさん
2011/12/15(木) 12:23:57.81あれでも一応brainfuckやunlambdaみたいな完全な言語が作れるぞ
0470デフォルトの名無しさん
2011/12/15(木) 13:22:06.95生産性を改善するという触れ込みでありながら、事実上普及していない
何でかは知らんけど、同じ大きさのモニタに表示できる情報量で
テキストに負けちゃうからっていう説を聞いたことがあるような
0471デフォルトの名無しさん
2011/12/15(木) 14:50:47.59Excelもなんか敷き詰められてるし
0472デフォルトの名無しさん
2011/12/15(木) 22:24:43.60「これを直接書き下したほうがわかりやすい」と気付いてしまうからだ
0473デフォルトの名無しさん
2011/12/16(金) 22:06:14.450474デフォルトの名無しさん
2011/12/16(金) 22:09:52.80Perl、PHP、Ruby、Python はどれも今後の互換性の問題が解決していない。
この中で最もまともなのは、おそらく、Pythonだろう。
言語仕様、使用実績、ドキュメント、ライブラリ、を総合的に見て、
Pythonが最も無難であると判断する。
しかし、残念ながらPythonは3.0で過去との互換性を捨ててしまった。
PHPは有望なのだが、残念ながらver5.3で大幅な仕様追加と変更が発生した。
PHPは来るべきver6に対して現在変化している最中のようである。
Rubyはver1.9で過去との互換性を捨ててしまった。
Rubyは来るべきver2.0に向けて変化の最中である。
また、Rubyは残念ながらサンプルコード、ドキュメントが充実していない。
また、ver1.9での変更によって使用できなくなったツールやフレームワークが多すぎる。
米国でもRubyの人気が落ちているようだが、それは互換性が消滅したことが影響しているだろう。
Perlは一応は安定しているが、来るべきver6.0がリリースされると過去との互換性が無くなることになる。
ただしCPANというライブラリの集合が存在する以上、それらライブラリの流通性によって、互換性維持の圧力がかかり、
結果としてPerl6.0は受け入れられないと予想される。よってPerlは比較的安全な言語である。
しかしながら、その言語仕様は非常に古く問題点が多い。
これら4つの代表的なLL言語を見ると、Pytohnの互換性問題さえ解決するのならば、
Pythonが最高なのだと思われる。
次点でPHPだろう。
しかしいづれの言語であっても、現時点でコードを大量に書いた場合、
将来においてそれらのコードの互換性が維持されている可能性は低いと思われる。
よって私はそれら4つの言語に手を出すのは止めようと思っている。
おそらく、これら4つの言語は情報も豊富でやると面白いと思う。
しかし、今現時点においては、将来的な互換性問題が解決していない。
0475デフォルトの名無しさん
2011/12/16(金) 22:15:19.59前PHP6として作ってたのはPHP5.4になったし
0476デフォルトの名無しさん
2011/12/16(金) 22:46:03.592009年の記事か。
python は後5,6年は2系でいけると思うんで、2系を今からでも大丈夫なような。
5,6年の根拠はないけれど。
perl は来年のクリスマスにはでるかなあ。
0477デフォルトの名無しさん
2011/12/17(土) 00:19:28.80旧バージョンも当分メンテされるでしょ。
互換性を期待するのならLispが一番じゃないのか。
0478デフォルトの名無しさん
2011/12/17(土) 00:40:56.37それはたとえばアセンブラ命令のように
0479デフォルトの名無しさん
2011/12/17(土) 00:50:57.38纏めるために後から規格作ったパターンだから
今もある程度環境差が残ってるんじゃねえかな
だいたいそういうのって完全にはまとまらない
0480デフォルトの名無しさん
2011/12/17(土) 01:13:09.29そんな使われない言語を出されてもなぁ。
0481デフォルトの名無しさん
2011/12/17(土) 01:23:34.39アセンブリ言語のようにアーキテクチャによって
互換性が左右されるとは知らなかった。なるほど。
0482デフォルトの名無しさん
2011/12/17(土) 01:57:24.31Rubyist: ネクラ、オタク、キモメン、いじめられっこネクラチビメガネ、色黒、キモオタ、顔面オジサン、オバサン、頭ヅルハゲチ○ポ、顔面日焼けでボロボロ野郎
0483デフォルトの名無しさん
2011/12/17(土) 03:17:05.21結局何も言ってないに等しい部ログじゃね
0484デフォルトの名無しさん
2011/12/17(土) 03:22:54.24>メインとして開発をするというのは本格的なアプリケーションを作成するという意味だ。
>ちょっとかじったくらいの意味ではない。
最高に頭悪いなこいつ
0485デフォルトの名無しさん
2011/12/17(土) 05:58:55.42まさか夏休みの学生のように入門書や文法書読破して「○○言語極めた!」とか言ってるわけではあるまい
その言語のトークンを勉強すればいいだけなら、今でも全員アセンブラでプログラミングをしているはずだ
0486デフォルトの名無しさん
2011/12/17(土) 07:42:08.63言語なんていくらでも増やせるだろ
意味がないからやらないだけで
0487デフォルトの名無しさん
2011/12/17(土) 11:46:08.96日本のゲーム業界を盛り上げましょう
「小島秀夫応援振興協議会」
http://toro.2ch.net/test/read.cgi/gamedev/1324089321/
0488デフォルトの名無しさん
2011/12/17(土) 12:41:06.63お前がなぜ、このスレに居るのか理解できない。
0489デフォルトの名無しさん
2011/12/17(土) 16:19:32.53特に理由とかないよ。
お前は理由があって見てるの?
2ちゃんねるごときに
0490デフォルトの名無しさん
2011/12/17(土) 16:45:12.04凄すぎる
何であんなに凄いんだろう
凄い
凄いよ!?!?!?!!!!!!!!!!!!!!!!!!!!!!!!!
凄い!!!!!!!!!!!!!!!!!!!!!!!!!!!!
とにかく凄い
ゲーム会社は凄い
最強
コンピュータ技術者として最強
0491デフォルトの名無しさん
2011/12/17(土) 16:46:28.91ぱねすぎる
何であんなにぱねぇんだろう
ぱねぇ
ぱねぇよ!?!?!?!!!!!!!!!!!!!!!!!!!!!!!!!
ぱねぇい!!!!!!!!!!!!!!!!!!!!!!!!!!!!
とにかくぱねぇ
ゲーム会社はぱねぇ
最強
コンピュータ技術者として最強
0492デフォルトの名無しさん
2011/12/17(土) 16:48:56.90WEB業界と違って
WEB業界ってただユーザーから送られてくる ”数キロバイト”のデータを処理して
ブラウザに返して
「WEBサービス!! モバゲー!!」(キリッ!) とか言ってるバカだから
アホじゃん
頭おかしいって思われてる
ゲーム会社のやつは凄いと思う
あんな人間離れした
3Dグラフィック+C++プログラミング+サウンド
すべてを束ねるコンピューター技術者最強
最強だよ
そうおもわないかい?
0493デフォルトの名無しさん
2011/12/17(土) 17:10:31.460494デフォルトの名無しさん
2011/12/17(土) 17:11:15.580495デフォルトの名無しさん
2011/12/17(土) 18:13:18.59LLの俺らが勝てっこねーわ
0496デフォルトの名無しさん
2011/12/17(土) 20:56:33.080497デフォルトの名無しさん
2011/12/17(土) 21:00:34.240498デフォルトの名無しさん
2011/12/17(土) 21:01:58.370499デフォルトの名無しさん
2011/12/17(土) 21:13:24.240500デフォルトの名無しさん
2011/12/17(土) 21:34:19.32サイトごとに専用ブラウザや専用プロトコルを作ればハードルが上がる
0501デフォルトの名無しさん
2011/12/17(土) 22:19:32.92WEBでゲームって言ってもソーシャルゲームとかだし。
格が違うわ。
0502デフォルトの名無しさん
2011/12/17(土) 22:40:22.730503デフォルトの名無しさん
2011/12/17(土) 23:37:17.53例えばストリーミングシステムやオンライン決済システムだと
どこまでの範囲がWEB系の仕事になんの?
0504デフォルトの名無しさん
2011/12/17(土) 23:37:26.60がめ系は一級建築士
0505デフォルトの名無しさん
2011/12/17(土) 23:41:58.420506デフォルトの名無しさん
2011/12/17(土) 23:51:38.010507デフォルトの名無しさん
2011/12/17(土) 23:52:14.56現在、多くのプログラマ(素人)が
ウェブアプリケーションというものが
ベストな正しい方向だと勘違いしている。
ソフトウェアの作るにおいて
そのアプリケーションに応じた
状態遷移を実装するというのは
基本中の基本である。
その点においてウエブブラウザという
ある状態遷移が実装されているアプリケーションの上に
また別のアプリケーションを実装するのは
論外である。
そこまでするなら普通にアプリケーションを実装
してダウンロードして使って
もらえばいいのである。
ウェブアプリケーションとは
虚構にしか他ならない。
ウェブアプリケーションを
作ろうとしているあなた。
今すぐ普通のアプリケーション
とし設計し始めては
いかがだろう。
そうすればきっと後悔しないですむ。
0508デフォルトの名無しさん
2011/12/17(土) 23:53:07.64TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。
そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての
ブラウザというアプリケーション。
ここまではいい。
だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。
つまりブラウザ上で、アプリケーションを動かすという発想なのである。
ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。
つまりアプリケーションのためのひとつのパーツなのである。
Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)JavaならWebClietnだ(これは、ブラウザではないが。)。
包含関係が逆なのである。
ブラウザ上にアプリケーションを作るのは愚かなブームである。
0509デフォルトの名無しさん
2011/12/17(土) 23:54:13.53Flashでの淡々とした作業、こんなのでいいのか?と疑問に持つレベル
使い回しのコードをいじって、とりあえず納品
C++で書いてるゲームエンジニアはそりゃレベル高いわな
0510デフォルトの名無しさん
2011/12/18(日) 00:07:05.280511デフォルトの名無しさん
2011/12/18(日) 00:14:52.03早くゲーム作れ
最強
ゲーム開発者は最強
お前らじゃ絶対に勝てない
これだけは言える
お前らじゃ
絶対に
ゲーム開発者に
勝てない
0512デフォルトの名無しさん
2011/12/18(日) 01:29:26.410513デフォルトの名無しさん
2011/12/18(日) 01:38:55.80ちょっとだけかじったが、あのトランザクション周りの
複雑奇怪なアルゴリズムは何なんだよw
0514デフォルトの名無しさん
2011/12/18(日) 02:35:27.64超同意、あとOSの排他制御関連もすごい
0515デフォルトの名無しさん
2011/12/18(日) 02:39:34.17243 名前:名無しさん@お腹いっぱい。[] 投稿日:2011/12/16(金) 23:50:22.64 ID:HNpdB+bg
>>241
HTMLやHTTPを悪者にはしていない。
TCP/IPができあがり、その応用として、ファイルを送る。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
略
だからこっちに帰れって
0516デフォルトの名無しさん
2011/12/19(月) 12:24:38.34HTMLとかCSSでドヤ顔してるのは、ね
0517デフォルトの名無しさん
2011/12/19(月) 12:44:29.30>>516にCSS3だけでドヤ顔できそうなレベルの物を作れる奴居そう
0518yuitest
2011/12/19(月) 19:49:14.71CSS3なんてざらですね、ちなみに私はcjhatというWEBサービスを展開しております。
http://cjhat.net/
新潟在住です。
私の父はIT企業に勤めております。
0519yuitest
2011/12/19(月) 19:50:36.99たいしたことやってません
http://twitter.com/yuitest
0520yuitest
2011/12/19(月) 19:59:33.68Perl6 はもはや全然 Perl じゃないんだけどね。
0521デフォルトの名無しさん
2011/12/19(月) 20:03:15.820522デフォルトの名無しさん
2011/12/19(月) 20:06:55.370523デフォルトの名無しさん
2011/12/23(金) 03:04:42.25誰も新規がつかないところはPerlだな
0524デフォルトの名無しさん
2011/12/23(金) 03:20:08.270525デフォルトの名無しさん
2011/12/24(土) 20:41:28.690526デフォルトの名無しさん
2011/12/24(土) 21:15:55.02python》ruby》PHPでおk?
0527デフォルトの名無しさん
2011/12/24(土) 21:54:37.500528デフォルトの名無しさん
2011/12/24(土) 23:45:58.120529デフォルトの名無しさん
2011/12/24(土) 23:47:01.370530デフォルトの名無しさん
2011/12/24(土) 23:48:24.69http://winbinder.org/examples.php
0531デフォルトの名無しさん
2011/12/24(土) 23:55:30.280532デフォルトの名無しさん
2011/12/25(日) 00:07:54.460533デフォルトの名無しさん
2011/12/25(日) 00:38:03.50ねらーは基本ズボラだから
無駄な努力はしたくないのさ
0535デフォルトの名無しさん
2011/12/25(日) 06:27:33.78だからこそ強力で手軽なわりに誰でも使えるものになっている
0536デフォルトの名無しさん
2011/12/25(日) 06:33:32.01サイズならpythonで間に合う)みたいな使いかしかしないから
HTMLなんてコンテンツのインデックスが並んでるやつをちょっと手打ちしたことしかないから
どんだけ便利なのか分からんなあ。みんなホームページとか作ってるの?
0537デフォルトの名無しさん
2011/12/25(日) 08:34:26.49ネット機能を多く盛り込んだスクリプト言語。
サーバー無くとも動作する。
0538デフォルトの名無しさん
2011/12/25(日) 11:28:17.38汎用プログラミング言語ではないという根拠は?
0539デフォルトの名無しさん
2011/12/25(日) 11:49:52.430540デフォルトの名無しさん
2011/12/25(日) 11:51:03.97汎用プログラミング言語ですよね?
それで?
0541デフォルトの名無しさん
2011/12/25(日) 11:54:19.090542デフォルトの名無しさん
2011/12/25(日) 12:06:51.58Pythonってなんかあるの?
0543デフォルトの名無しさん
2011/12/25(日) 12:12:33.48というか、PHPがHTMLテンプレートプロセッサなのは周知のことだと思ったのだが、何が不満なのだろう
0544デフォルトの名無しさん
2011/12/25(日) 12:19:37.90PyPI
0545デフォルトの名無しさん
2011/12/25(日) 12:21:30.20何かあったはず、俺もPython詳しくないから忘れたけど…
ただPython自体の方針が「本体に大量のライブラリを添付する」なワケだから
究極的にはそれも本体に添付すればいいじゃん、みたいになるんじゃねーの
0546デフォルトの名無しさん
2011/12/25(日) 12:30:05.42以下公式まぬあるから引用
>PHP (PHP: Hypertext Preprocessor を再帰的に略したものです) は、
>広く使われているオープンソースの汎用スクリプト言語です。
>PHP は、特に Web 開発に適しており、HTML に埋め込むことができます。
http://www.php.net/manual/ja/intro-whatis.php
0547デフォルトの名無しさん
2011/12/25(日) 12:34:44.74つまりHTMLなんだけどな
無関係とは言えないだろう、どう考えても
0548デフォルトの名無しさん
2011/12/25(日) 12:38:13.160549デフォルトの名無しさん
2011/12/25(日) 12:44:32.75そうすればRubyにイラつくこともないからさ
仏のような心でRubyを見守り続けることができるよ
0550デフォルトの名無しさん
2011/12/25(日) 13:14:56.37Python、Rubyなどと同程度の装備だろ。
0551デフォルトの名無しさん
2011/12/25(日) 13:20:14.39俺がそのパターンだけど、確かに大筋は覚えるの早かったかも知れんが細かい点で躓きまくった
Pythonが目当てなら初めからPythonでいいし、Rubyが目当てなら初めからRubyでいい
0552デフォルトの名無しさん
2011/12/25(日) 13:25:14.63PHPが汎用プログラミング言語じゃないとする
理由はないよな?
0553デフォルトの名無しさん
2011/12/25(日) 13:25:34.09pypi
>>545
>Python自体の方針が「本体に大量のライブラリを添付する」なワケだから
Pythonやってるけど、この方針は知らない。PHPではなくて?
>>546
同マニュアルのFAQに”PHP と HTML は深く関係しています。”って書いてるよ。
まぁ、プログラミング言語として独立して使えない事もないって意図だろうけど。
0554デフォルトの名無しさん
2011/12/25(日) 13:26:55.62つまり、実用的なデータ取得レポート作成言語 って知ってる?
汎用プログラミング言語じゃないんだよw
0555デフォルトの名無しさん
2011/12/25(日) 13:27:31.42汎用プログラミング言語というのは間違い無いだろ。
0556デフォルトの名無しさん
2011/12/25(日) 13:28:47.60汎用プログラミング言語ということでいいじゃないか?
それじゃなんかダメな理由でもあんのか?
0557デフォルトの名無しさん
2011/12/25(日) 13:30:26.12Javascriptも似ているがどっちを選ぶかと言ったらPHPだな。
0558デフォルトの名無しさん
2011/12/25(日) 13:32:15.750559デフォルトの名無しさん
2011/12/25(日) 13:34:37.23これこそブラウザ内で使うのに特化している言語。
ファイルの読み書きとか標準で付いてないだろ。
0560デフォルトの名無しさん
2011/12/25(日) 13:44:37.460561デフォルトの名無しさん
2011/12/25(日) 13:48:18.02バーカ。
元々の話してるんだよ。
Perlはレポート作成言語だし、
PHPはHTML組み込み言語だし
JavaScriptはブラウザ組み込み言語だ
これらは汎用プログラミング言語ではない。
0562デフォルトの名無しさん
2011/12/25(日) 13:48:50.58> これらは汎用プログラミング言語ではない。
元々はなw
今は違う。
0563デフォルトの名無しさん
2011/12/25(日) 13:49:56.22本当にPython信者ってのは、Rubyに敵愾心を持っているんだなw
これがいわゆる「Zopeのトラウマ」って奴?
0564デフォルトの名無しさん
2011/12/25(日) 13:54:48.090565デフォルトの名無しさん
2011/12/25(日) 13:59:49.59C++でできてPHPにできないのは3Dグラフィックくらいでは。
0566デフォルトの名無しさん
2011/12/25(日) 14:04:06.05型宣言付ければ
C++に似ているな
0567デフォルトの名無しさん
2011/12/25(日) 14:12:51.61>Pythonやってるけど、この方針は知らない。PHPではなくて?
電池付属哲学
0568デフォルトの名無しさん
2011/12/25(日) 14:13:20.870569デフォルトの名無しさん
2011/12/25(日) 14:15:20.24Zend Engineの仕組み
http://thinkit.co.jp/cert/article/0705/7/1/3.htm
0570デフォルトの名無しさん
2011/12/25(日) 14:24:17.64この記事の内容では、速いというのはPHP3と較べてだし、コンパイルされるのは中間コード。
JITコンパイルには触れてない。
0571デフォルトの名無しさん
2011/12/25(日) 14:26:38.792011年12月12日
Facebookは10日、PHPを高速に実行する仮想マシン「HipHop Virtual Machine」(hhvm)を公開しました。
The HipHop Virtual MachineHipHop Virtual Machineは、PHPを高速に実行するためにPHPのコードをC/C++に変換してg++でコンパイルし、
バイナリコードにするHiphop compiler(hphpc)と、PHPのインタプリタであるHipHop interpreter (hphpi)を組み合わせたもの。
PHPのコードをダイナミックにバイナリコードへと変換することで、高速な実行を目指しています。
コンパイラと同等以上の実行速度へ
HipHopはFacebookが開発し、オープンソースとして公開しています。今回のHipHop Virtual Machineも、これらの開発の延長線上にあるものです。
http://www.publickey1.jp/blog/11/phpjithiphop_virtual_machinefacebook.html
0572デフォルトの名無しさん
2011/12/25(日) 14:47:44.34PHPでOpenGLあったよw
http://phpopengl.sourceforge.net/
0573デフォルトの名無しさん
2011/12/25(日) 14:49:49.15なんでもできるでしょw
0574デフォルトの名無しさん
2011/12/25(日) 15:02:46.39SDL はPHPエクステンションがあるし、Truevision3D は COM で扱える。
0575デフォルトの名無しさん
2011/12/25(日) 15:05:44.60PHPはHTML出力テンプレートであって、汎用プログラミング言語ではない (キリッ)
0576デフォルトの名無しさん
2011/12/25(日) 15:12:34.58ウィンドウ、ボタン、エディットボックスなどの作成・配置には
プログラムを用いることなくグラフィカルに作成することができます。
統合環境になっていて、ビジュアルの作成だけでなくプログラムの作成、テスト起動、
さらにはコンパイル・ビルドしてEXEを作成することまで可能です。
http://hirata-create.lar.jp/?page=HC-wbRadStudio
0577デフォルトの名無しさん
2011/12/25(日) 15:28:45.33Ruby 覚えてから Java 1.4 程度の言語仕様なら1日で余裕だった。
0578デフォルトの名無しさん
2011/12/25(日) 15:31:30.00時間がかかるのは、その言語で一番最適な開発方法。
コードの書き方から使用するライブラリの選定と
その使い方とかな。
言語仕様ってのはマニュアル読めば済むが
開発は試行錯誤が必要。
0579デフォルトの名無しさん
2011/12/25(日) 17:26:01.04エラーログを消すために原因を調べようとエラーログでググったら、
そのエラーログをページ上に出力してしまってるページだけが
腐るほど引っかかるw
0580デフォルトの名無しさん
2011/12/25(日) 17:28:38.040581デフォルトの名無しさん
2011/12/25(日) 17:32:35.010582デフォルトの名無しさん
2011/12/25(日) 17:58:04.170583デフォルトの名無しさん
2011/12/25(日) 19:01:55.71qdmailとか個人的に作ってるライブラリはあるけど各自勝手にに開発されてて、まとまった形になってない。
0584デフォルトの名無しさん
2011/12/25(日) 19:03:46.94本家がもっともPHPに貢献してる。
0585デフォルトの名無しさん
2011/12/25(日) 19:55:02.00Pearとか知ってる?
0586デフォルトの名無しさん
2011/12/25(日) 20:05:50.570587デフォルトの名無しさん
2011/12/25(日) 20:10:56.70テキストのソースコードはやむを得ないとき。
0588デフォルトの名無しさん
2011/12/25(日) 20:29:02.37比べてどうすんの?
0589デフォルトの名無しさん
2011/12/25(日) 20:54:26.350590デフォルトの名無しさん
2011/12/25(日) 21:15:19.18いつのまにか非がつけられないような言語になっちゃうんじゃないか
0591デフォルトの名無しさん
2011/12/25(日) 21:30:29.03基本何もしなければ損もしない
0592デフォルトの名無しさん
2011/12/25(日) 21:32:27.73>>549
あーごめん変なこと書いた
もうRubyで半年くらい書いてるんだ。で、Ruby以外の言語も覚えたくてCとかJavascriptとかやったけど
CはめんどくさすぎるしJavascriptはブラウザでやるかWSHしかないし。
で、Rubyの経験がいきるかな?と思ってPythonはどうかな、とおもって書いた
0593デフォルトの名無しさん
2011/12/25(日) 21:41:31.25わざわざ他人に聞いてどうすんの
馬鹿じゃね
0594デフォルトの名無しさん
2011/12/25(日) 21:48:49.04まだまだ経験が足りんな。まあRubyで半年じゃその程度か。
0595デフォルトの名無しさん
2011/12/25(日) 21:54:54.44きっとRubyが嫌いになる
0596デフォルトの名無しさん
2011/12/25(日) 22:02:16.76まあ、別に覚えて損はないと思うよ
じゃあ、とりあえず同じようにRubyを先に、Pythonをその後に覚えた俺が躓いた部分を教えておく
Pythonでクラス自作するときには、必ず親クラスをobjectと明示しとけ。
暗黙でObjectが親だから明示する必要はないなんて考えを捨てるべし。
0597デフォルトの名無しさん
2011/12/26(月) 11:23:46.31特にサーバーで動かすのに、一気に沢山来ても裁けるやつが優れている。
0598デフォルトの名無しさん
2011/12/26(月) 11:52:14.230599デフォルトの名無しさん
2011/12/26(月) 21:12:26.64なんかこのスレ見るまでは、
Pythonってインデントでブロックを表現する変な言語だが、
それ以外は比較的まともな言語ってイメージだったんだけど、
いろいろ問題がありそうだな。
そう思う俺は Java がメイン。
Rubyは5年くらい前に使ってたかなw
0600デフォルトの名無しさん
2011/12/26(月) 23:48:25.19Twisted on pythonだな
0601デフォルトの名無しさん
2011/12/27(火) 01:19:16.27昔との互換性で残っちゃってる仕様、ってのがあるみたい。
上に挙げたのもその一つで、objectを最終的な基底クラスとしないものは
classic classと呼ばれ、現在の通常のクラスとは様々な場面で似て非なる動作をする。
0602デフォルトの名無しさん
2011/12/27(火) 01:52:48.55そんなあなたに Python3
0603デフォルトの名無しさん
2011/12/27(火) 02:09:05.41知り合いが「なんでreduceが無くなったんだ」とか
いくつか不満を漏らしていた記憶がある
いわゆるPythonらしいアプローチってのは、手続き的でも関数的でもないのかな?
0604デフォルトの名無しさん
2011/12/27(火) 08:58:10.92基本的には手続き的だと思うよ
個人的に面白いなと思ったのは
forを使ったイテレータの多用と、それがリスト内包にまで絡んでるのと
オブジェクトに対する呼び出し操作、の応用範囲が広いことかな
関数オブジェクトに対する呼び出しが関数呼び出しなのは当然だし
メソッドが、メソッドオブジェクトとバインドされたフィールドに対する呼び出しなのも
JSとかで似たような実装だから分かるが
インスタンスの作成がクラスオブジェクトに対する呼び出し操作なのは驚いた
0605デフォルトの名無しさん
2011/12/27(火) 09:45:02.49構文的にはC++と一緒なので特に驚かなかった
もっとも中身はメタクラス経由なのでSmalltalk系統だけど
> いわゆるPythonらしいアプローチってのは、手続き的でも関数的でもないのかな?
ファーストクラスの関数はあるけど、末尾最適化がなくリストが配列なので
Pythonで関数型をそのまま真似ても上手くいかない
Pythonの方向性はSTL登場以降のC++に一番似ていると思う
つまり手続きベースのマルチパラダイムでジェネリック指向
0606デフォルトの名無しさん
2011/12/27(火) 16:53:29.290607デフォルトの名無しさん
2011/12/27(火) 17:15:31.510608デフォルトの名無しさん
2011/12/28(水) 09:29:20.74いちいちtemporaryな関数を作成してから目的の関数に渡していたのがばからしくなった。
0609デフォルトの名無しさん
2011/12/28(水) 09:43:17.83PythonからRubyには移行できないな
0610デフォルトの名無しさん
2011/12/28(水) 11:03:14.91どうせ廃れる。
0611デフォルトの名無しさん
2011/12/28(水) 11:58:14.38両方やっても問題ないべ
0612デフォルトの名無しさん
2011/12/28(水) 12:09:06.15他のやったほうがいいわ
0613デフォルトの名無しさん
2011/12/28(水) 12:25:49.99新しい言語を覚えるってのは面白い発見があって楽しいよ
0614デフォルトの名無しさん
2011/12/28(水) 12:34:31.54Pythonも同じような感じですか?
0615デフォルトの名無しさん
2011/12/28(水) 13:03:58.26Pythonならそれなりの規模のプログラムも書けるよ
俺はよく5000行ぐらいのクラスを書いてるけど、可読性も高いしバグも少ない
0616デフォルトの名無しさん
2011/12/28(水) 13:08:35.69それは分けろよ…
0617デフォルトの名無しさん
2011/12/28(水) 13:24:41.840618デフォルトの名無しさん
2011/12/28(水) 13:32:00.10この一文でどれくらいのプログラマか判断してやれよ
そっとしておいてやれよ
0619デフォルトの名無しさん
2011/12/28(水) 13:41:11.70出来なくはないが、ワンライナは向いてるとは言いがたいなぁ。
自分はプロトタイプ作成や、小物ユーティリティ・ツール、アプリ組み込みに使ってます。
>>617
Pythonで *クラスが* 5000行もあるのはそれなりの規模と言えるよ。複数に別けてもいいサイズ・・というか別けた方がいい。
LLでは一般的に、Java等よりも短い行数で書けるし、その中でもPythonは end とか } 要らない分、更に少ない行数で済む。
0620デフォルトの名無しさん
2011/12/28(水) 13:50:47.990621デフォルトの名無しさん
2011/12/28(水) 13:51:15.800622デフォルトの名無しさん
2011/12/28(水) 13:53:13.785000行超えてるのは Lib/decimal.py だけ
0623デフォルトの名無しさん
2011/12/28(水) 14:46:08.22ライブラリだと十分大きいと思うが。
業務アプリしか書かないお前にはわからないんだろうな。
0624デフォルトの名無しさん
2011/12/28(水) 15:00:55.040625デフォルトの名無しさん
2011/12/28(水) 15:07:09.970626デフォルトの名無しさん
2011/12/28(水) 15:08:51.86>リストやジェネレータ式の内包表記が便利過ぎて
おれもそう信じてたけど、Rubyの、メソッド呼び出しを続けて書けるほうが便利だわ。
まるでjQueryみたい。といってもjQueryのほうが後発だけど。
たとえば「xsから0以上のものを選んで、その二乗の和を求める」場合
sum([ x*x for x in xs if x > 0 ])
これだと、後ろから読まないといけないんだよね。でも
xs.select{|x| x > 0}.map{|x| x*x }.sum
これなら頭からひとつずつ読めばいいから、わかりやすいし、考えたとおりに書きやすい。
まさにスクリプトって感じがする。
0627デフォルトの名無しさん
2011/12/28(水) 15:46:32.510628デフォルトの名無しさん
2011/12/28(水) 15:49:37.12そんなあなたにこのサイトをお勧めします
ttp://blogs.itmedia.co.jp/magic/2011/12/6886-2d5b.html
0629デフォルトの名無しさん
2011/12/28(水) 15:55:19.77ネストするmapとかflattenとかわかりくいよ
Python: [[x,y] for x in xs for y in xs]
Ruby: xs.map{|x| xs.map{|y| [x,y] } }.flatten(1)
0630デフォルトの名無しさん
2011/12/28(水) 16:34:10.00[ プログラム ] Rubyについて(アンチ専用) Part004
593 名前:デフォルトの名無しさん [sage]: 2011/12/28(水) 14:05:05.31
本書くのはいいし、寄付をお願いするのもいいんだけど、
○○さんは5万円以上寄付してくれましたって、
具体的な金額が分かるようにするのはなんなの?
寄付金額で順位付けするって失礼だぞ!
そういうの分からないか?お前は?
多くの方は千円以上って、おいおい。
最下位の人は数百円ですって言ってるじゃん。
なんて言うか、今回のは不謹慎ではないけど、非礼だよね。
寄付者を順位付けて公開するのは止めたら?
書籍の執筆料を寄付方式で集めるのはいい方法だと思うけど、
集まった寄付金額について具体的に触れるのは失礼、礼を欠く行為だぞ。
> たのしいなかまがぽぽぽ〜ん君
彼の上司はこういう人間教育をしないのかね?
それか、寄付を集めなくてもいいように給料増やしてやれよwww
寄付者を寄付金額で順位付け
って失礼な行為だと自覚できないかな、ゆとりは
0631デフォルトの名無しさん
2011/12/28(水) 16:46:47.02自分にとっては、逆に、後ろまで読まないと何を返してるかわからないのがデメリット。
後、そのメソッド・チェインでは
ブロックが呼び出される回数や selectとmapでそれぞれ一時的に配列を作ってるのが気になる。
0632デフォルトの名無しさん
2011/12/28(水) 17:25:29.75いっぽうメソッドチェーンは
orz.sage().hage().hoge().hige() タイプの問題には向いている
つまり向いている方向がちがう
(まあHaskellなら hige . hoge . hage . sage と書くだけだというのは置いといて)
強い弱いということで言うと、問題を解くのに必要な一番能力が弱い
(限定された)道具を使うという考え方があるようだよ
ベタ再帰は強い(汎用的)、がそれゆえ読むのに注意を必要とする
foldrは再帰よりは弱いが、foldrで表現可能な問題のクラス(原始再帰)はかなり
広いので、mapやfilterで済むならもちろんそのほうが望ましい
ではこの問題は弱いmapやfilterを結合させるほうがいいかというと、
俺はlist comprehensionのほうが集合表記そのもの=whatを表現していて好きだな
Pythonのlist comprehensionのsyntaxはあまり好きではないが
それは大きな問題じゃない
0633デフォルトの名無しさん
2011/12/28(水) 17:44:09.18メソッドチェインでもflatmapなんかは強い方の機能なのでこれが出ると読みづらくなってくる
ただ弱い方のメソッドをチェインだけで済むならそっちのが俺は見やすいわ
まあC#やscalaみたいに両方持ってて処理によって使い分けられるのが1番いいわ
0634デフォルトの名無しさん
2011/12/28(水) 18:31:05.58それはコーディングスタイルで改善できる
xs.map { |x|
xs.map { |y| [x, y] }
}.flatten(1)
>>626の例なら、以下のようになる
xs.select { |x|
x > 0
}.map { |x|
x * x
}.sum
先の例のような直積構造はネストとして水平軸に並ぶ
後の例のような合成構造はメソッドチェーンとして垂直軸に並ぶ
0635デフォルトの名無しさん
2011/12/28(水) 18:37:40.140636デフォルトの名無しさん
2011/12/28(水) 18:41:30.420637デフォルトの名無しさん
2011/12/28(水) 19:28:07.77>先の例のような直積構造はネストとして水平軸に並ぶ
>後の例のような合成構造はメソッドチェーンとして垂直軸に並ぶ
なるほど。参考になった。さんくす。
>>632
>いっぽうメソッドチェーンは
>orz.sage().hage().hoge().hige() タイプの問題には向いている
>つまり向いている方向がちがう
>(まあHaskellなら hige . hoge . hage . sage と書くだけだというのは置いといて)
同意だな。Haskellは関数を逆順に並べているのが気になる。思考の順番と一致しないから。慣れかもしれないけど。
0638デフォルトの名無しさん
2011/12/28(水) 19:30:17.68>後、そのメソッド・チェインでは
>ブロックが呼び出される回数や selectとmapでそれぞれ一時的に配列を作ってるのが気になる。
それはたしかにデメリットかもしれないけど、その程度の性能低下を気にするなら、そもそもPythonもRubyも使うべきじゃないでしょ。
なんのためにスクリプト言語を使うのか。それは考えていることをそのまま表現しやすいから。
それを実現してくれるなら、多少の性能低下はちっとも気にしない。
それよりも、少しでも頭で考えていることをそのまま表現できるかどうかを気にする。
つーかあれだな、ちょっとでもPythonを批判しようものなら、
0639デフォルトの名無しさん
2011/12/28(水) 19:34:08.580640デフォルトの名無しさん
2011/12/28(水) 19:56:09.230641デフォルトの名無しさん
2011/12/28(水) 20:18:14.710642デフォルトの名無しさん
2011/12/28(水) 20:28:45.92一言で言うと「俺はRubyが大嫌いなんだぁーー」ということですな
どうやらPython厨にとって、メソッドチェーンは「酸っぱい葡萄」らすい
0643デフォルトの名無しさん
2011/12/28(水) 20:30:42.37> 同意だな。Haskellは関数を逆順に並べているのが気になる。
> 思考の順番と一致しないから。慣れかもしれないけど。
.は数学の関数合成と同じなので……
パイプっぽい順序で書かせる道具としては
HaskellにはArrow, F#にはパイプライン演算子というのがある
0644デフォルトの名無しさん
2011/12/28(水) 20:40:47.81(f >> g) x = g(f(x))
(f << g) x = f(g(x))
ということね
定義は自明で単純
let (>>) f g x = g (f x)
let (<<) f g x = f (g x)
このようなものがほしければ、もちろんF#に限らずOCamlでもHaskellでも作れる
関数合成で記述する利点は、x.f().g()はg(f(x))はxが無いとかけないけど
g . fならxを消せて、なおかつ独立した式(関数)になっているというところ
つまり後者で書いているほうが一般性が高い
(lambda (x) g(f(x)))
と書いても同じになるが、g . fに比べて冗長この上ない
0645デフォルトの名無しさん
2011/12/28(水) 20:53:05.750646デフォルトの名無しさん
2011/12/28(水) 20:56:19.59#テキストファイルを作成日時順に並べてフルパスを列挙
dir | ? Name -match ''\.txt$" | sort CreationTime | % FullName
0647デフォルトの名無しさん
2011/12/28(水) 21:08:54.18Rubyでも、必要とあればオプションパッケージで
メソッドチェーンの遅延評価は可能だよん(ニヤニヤ
・Rubyist Magazine - enumerable_lz による遅延評価のススメ
http://jp.rubyist.net/magazine/?0034-Enumerable_lz
0648デフォルトの名無しさん
2011/12/28(水) 21:09:45.60FPに通じるものがあるのかな?
0649デフォルトの名無しさん
2011/12/28(水) 21:14:02.640650デフォルトの名無しさん
2011/12/28(水) 21:27:07.64ジェネレータ式は内包表記で書けてかつ遅延評価される
0651デフォルトの名無しさん
2011/12/28(水) 21:28:11.760652デフォルトの名無しさん
2011/12/28(水) 21:36:55.69Pythonの"リスト内包表記"は遅延評価されない、リストを返す。"ジェネレータ式"が遅延評価版。
Python内では区別あるけど、こういう話の流れだと文脈によっては後者を指すこともある。
Haskellと違うところと言えば、2.x 系では一時変数のスコープの問題あり。(3.x系で改善)
0653デフォルトの名無しさん
2011/12/28(水) 21:47:21.27遅延評価が必須なのは無限を扱うケースだけど、
LLにとって一般的なプログラミングじゃほとんど使われる事は無いのだから
Rubyでオプションパッケージ扱いなのは妥当な判断じゃないかと思う
しかも map を map_lz (あるいは select を selet_lz) へと書き換えるだけという簡潔さがあるし
それに対してPythonの場合には、わざわざジェネレータ式としてロジックを再設計せにゃならんから面倒クセー
あと、そもそもLINQは汎用言語じゃないから、このスレじゃ比較の対象にはならんぜよ
0654デフォルトの名無しさん
2011/12/28(水) 21:54:12.95> ロジックを再設計せにゃならんから面倒クセー
これはちょっと言いたいことがよくわからない
リスト内包との違いはカッコとして[]を使うか()を使うかだけだよ
> あと、そもそもLINQは汎用言語じゃないから、このスレじゃ比較の対象にはならんぜよ
これもちょっと言いたいことがよくわからない
0655デフォルトの名無しさん
2011/12/28(水) 22:09:14.56メモリ上に不要な中間オブジェクトを生成したくないってケースもある。
ライフスパンの短いスクリプトでは不要かもしれないけど、
サーバアプリ等では有用だよ。
0656デフォルトの名無しさん
2011/12/28(水) 22:15:52.33>サーバアプリ等では有用だよ。
具体的にどう有用なの?教えてくださーい
0657デフォルトの名無しさん
2011/12/28(水) 22:16:49.11中間オブジェクトというなら
評価が終わるまで破棄できないオブジェクトを早く破棄するために評価を終わらせるべき
だから遅延するべきではない
0658デフォルトの名無しさん
2011/12/28(水) 22:27:33.10遅延評価のようなものが意味をもつのはコレクションの要素サイズやコレクション総サイズが大きい場合だろう
遅延かけてもらったほうが総サイズ的にはマシという場合はままある
増える消費メモリったって数MBなんだからそんなとこ気遣わずにとっとと終わらせろという場合ももちろんあるはず
0659デフォルトの名無しさん
2011/12/28(水) 22:34:00.24>リスト内包との違いはカッコとして[]を使うか()を使うかだけだよ
Rubyの場合は、遅延評価の有無を「メソッド名の違い」として表現できる
だから、その気になればこんなコードも書ける(普通はこんなの書かないけど....)
xs.send(
if lazy then :select_lz else :select end
) { |x| ..... }
それに対して、Pythonは「構文の違い」として表現しなければならない
言語としての表現力/柔軟さの差異は、明白じゃないかな? -- "Simple is Power!!"
(その代わり、Rubyは処理効率を犠牲にしているけどね ....)
>> あと、そもそもLINQは汎用言語じゃないから、このスレじゃ比較の対象にはならんぜよ
>これもちょっと言いたいことがよくわからない
LINQはデータベース検索という用途(ドメイン)に特化した言語機構ではないの?
あと>>651のLINQとはPynq(LINQのPython実装)を指していると思うんだけど、
同じオプションパッケージであってもPythonのPynqは良くてRubyのenumerable_lzは悪いのかな?
0660デフォルトの名無しさん
2011/12/28(水) 22:37:37.39「場合わけ」を必要としない(この場合はサイズが小さいからどうでもいいけど
この場合はサイズがでかくなるかもしれないからストリームにしよう、とか)
→コードの汎用性・再利用性が高められてイイ!ということのはず
もちろん少なくとも慣れていない人間にとっては動きが理解しにくく
スペースリーク等の罠にはまりやすいという欠点ももちろんあるわけだけれども
(一見tail callで実装できるので効率がよさそうに見えるfoldlが
スペースリークしまくりとか)
0661デフォルトの名無しさん
2011/12/28(水) 22:40:08.65ぜんぜん違います
リストとジェネレータ式に関しては、言いたいことは分かった、なるほどね
もっともPythonもitertoolsだと同じもののgenerator版を「関数として」提供してる
わけだけどね
0662デフォルトの名無しさん
2011/12/28(水) 22:40:12.63flattenだと3重ネストしたリストの最後だけ展開したくない、とかいうときに面倒いし
それ以外は右へ右へ書けて凄い楽なだけに
0663デフォルトの名無しさん
2011/12/28(水) 22:45:30.53PythonどころかJavaでもできる
内包表記は構文でサポートしないと難しい(マクロがあれば別だが)
0664デフォルトの名無しさん
2011/12/28(水) 22:52:10.97ランダムアクセスするなら配列。
しないならループか関数。
なぜサイズを考える必要があるのか分からない。
0665デフォルトの名無しさん
2011/12/28(水) 22:56:14.61上の話の流れをよんでちょうだい
selectという関数をselect_lzと使い分けるかどうかという話がでてたでしょ
全てが遅延ならそういうものは要りませんよという話
0666デフォルトの名無しさん
2011/12/28(水) 22:59:22.93>ぜんぜん違います
違うと言いたんなら、その違いを説明しておくんなさいまし
>もっともPythonもitertoolsだと同じもののgenerator版を「関数として」提供してるわけだけどね
そのとおり
Pythonでは、わざわざ「関数として」表現しなければならないからダサイけど、
Rubyではメソッド名を hoge から hoge_lz にするだけですむからスマートだよね
0667デフォルトの名無しさん
2011/12/28(水) 23:00:50.440668デフォルトの名無しさん
2011/12/28(水) 23:02:20.51Linq to Objectでぐぐるといいと思うけど
簡単に言うとSystem.Linqが提供するのはIEnumerableインタフェースに対して
map, filter, foldみたいなリスト処理っぽい関数群で、
それをSQLライクなプチDSLっぽい記法でも書けるようになっている
SQLに似てるけど、こっちの記法は意味的には内包表記に近い
つまり別にDBというドメインに特化された要素じゃないです
DBにも使えるけど
0669デフォルトの名無しさん
2011/12/28(水) 23:07:13.23発動させることができる
.NET5ではasync/awaitのような新たな構文で、容易に非同期処理が記述できるようにも
なった
コルーチンや継続を用いると状態遷移地獄やコールバック地獄に比べると
通常の手続き型のコード記述と同じようにかけて楽なのを知ってる人は
有難味がすぐわかると思う
0670デフォルトの名無しさん
2011/12/28(水) 23:23:31.48なんか江戸時代に戻るみたいな恐怖を感じる人には難しい
0671デフォルトの名無しさん
2011/12/28(水) 23:29:40.03継続モナドとか言っても仕方がない
0672デフォルトの名無しさん
2011/12/28(水) 23:36:39.67LINQがListやArrayのような一般的なコレクションに対して使えるのは分かるけど、
「LINQ単体では汎用言語としては成立しない」よね?ってことを言いたいんだけど ....
もしも Pynq というPythonのオプションライブラリを指しているのなら、Pynqと書いて欲しい
あと、PynqはActiveRecordモドキだね
以下はPynqのサイトにあった例だけど、
filtered_collection = From(some_collection).where("item.property > 10").select_many()
コード中にSQL文を文字列として埋め込むのと比較すればズッと楽チンだと思うけど、
現実としてPynqをListやArrayに使う気にはならないね
ナゼ文字列で抽出条件("item.property > 10")を書かにゃならんの?ダサイよ
もしもPynqをimportするだけで
filtered_collection = [item for item some_collection if item.property > 10]
みたいなコードが書けたんなら、
「Pythonスゲー、しかもLINQはDBに特化していないゼ」と認めるんだけどなぁ ....
0673デフォルトの名無しさん
2011/12/28(水) 23:40:55.28X: filtered_collection = [item for item some_collection if item.property > 10]
O: filtered_collection = [item for item in some_collection if item.property > 10]
0674デフォルトの名無しさん
2011/12/28(水) 23:46:37.01俺はLinqに関してはPythonの話はぜんぜんしてないぞ
何を言いたいのかよくわからん
0675デフォルトの名無しさん
2011/12/28(水) 23:48:40.12http://msdn.microsoft.com/ja-jp/library/dd460688.aspx
0676デフォルトの名無しさん
2011/12/28(水) 23:59:47.76Linqの話をしたいだけなら、スレ違いだろ
スレタイ嫁
0677デフォルトの名無しさん
2011/12/29(木) 00:01:51.180678デフォルトの名無しさん
2011/12/29(木) 00:02:11.430679デフォルトの名無しさん
2011/12/29(木) 00:05:54.03Linqの話を持ち出したのは俺じゃねーよwww
>>632ぐらいから徐々に話が広がってきて>>640あたりで出てきた話
> LINQはデータベース検索という用途(ドメイン)に特化した言語機構ではないの?
こういう誤解に基づいて意味不明なこと書いてるからつっこんだだけだっつーの
0680デフォルトの名無しさん
2011/12/29(木) 00:07:41.77パイプ順に書きたければ書けるし
0681デフォルトの名無しさん
2011/12/29(木) 00:09:41.45あの流れで出てきたんじゃないかと想像するがなんともいえん
0682デフォルトの名無しさん
2011/12/29(木) 00:30:35.72Pythonには関数型として致命的な弱点があるから、メソッドチェーンでは簡潔なコードが書けない
たとえば「(1) Rubyは 条件判定が(文ではなく)式」だから以下のようなコードが書ける
ys = xs.select { |x|
if test
if test_1 then test_1_1 else test_1_2 end
else
if test_2 then test_2_1 else test_2_2 end
end
}
あるいは「(2) Rubyはブロック内で局所宣言が可能」だから上のコードを以下のように書き換えてもいい
ys = xs.select { |x|
cond_1 = if test_1 then test_1_1 else test_1_2 end
cond_2 = if test_2 then test_2_1 else test_2_2 end
if test then cond_1 else cond_2 end
}
関数型言語であれば「(1) 条件判定(if/case)が式」で「(2) 局所宣言(let .. in .. end)が可能」なの当たり前
ところが残念な事に、どちらもPythonには欠落しているから、上の例はストレートにコード化できない
だからPythonではメソッドチェーンは使われないし、「酸っぱい葡萄」に見える
0683デフォルトの名無しさん
2011/12/29(木) 00:33:58.04Forthも変数名いらないよ
0684デフォルトの名無しさん
2011/12/29(木) 00:37:06.68・リスト内包表記はトップダウン思考
・メソッドチェーンはボトムアップ思考
だと思う
頭に浮かんだロジックをすばやくコード化するのはメソッドチェーンが適しているし、
じっくり腰を据えてコード設計するならリスト内包表記のほうが美しい
自分は、たぶんこのスレもRubyコアの中の人も見ているだろうから
そのうちRubyにもリスト内包表記が実装されるんじゃないかと期待しているw
0685デフォルトの名無しさん
2011/12/29(木) 00:41:32.98(ほぼ全てがメソッド呼び出しで処理される均質性が損なわれる)
だから恐らく言語コアには入らない
0686デフォルトの名無しさん
2011/12/29(木) 00:43:42.61Paul Grahamは嫌いだそうな
0687デフォルトの名無しさん
2011/12/29(木) 00:59:51.90Zopeには惨いトラウマがあるし、メソッドチェーンは酸っぱい葡萄だし
0688デフォルトの名無しさん
2011/12/29(木) 01:02:55.92なのでそれに習えばRubyに入れるのもそんな難しくなさそうだがな
0689デフォルトの名無しさん
2011/12/29(木) 01:14:50.49馬鹿には無理
0690デフォルトの名無しさん
2011/12/29(木) 01:19:27.00基地外はひとりでいいよ
0691デフォルトの名無しさん
2011/12/29(木) 01:58:28.95562 デフォルトの名無しさん [sage] 2011/12/29(木) 00:21:13.77 ID: Be:
>>560
(1..1000).map {|v| v * 2}.each {|v| print v} なんかも 1000回のループで済んじゃうの?
563 デフォルトの名無しさん [sage] 2011/12/29(木) 00:27:44.14 ID: Be:
>>559
100個要素があるArrayに対していくらcollectをつなげても、
処理回数もメモリの使い方も100+100+100+...
みたいな増え方しかしないだろ?
>>562
それのループ回数は2000回だろ?
0692デフォルトの名無しさん
2011/12/29(木) 02:38:40.37LLのフレームワークってどれも難易度は似たようなもんなの?
0693デフォルトの名無しさん
2011/12/29(木) 02:40:06.65http://kohada.2ch.net/php/
0694デフォルトの名無しさん
2011/12/29(木) 03:24:03.80開発を簡単にするためのもの。
LL言語で重要なことは生産性だろ。
それが悪いんだったら導入することがない。
0695デフォルトの名無しさん
2011/12/29(木) 08:23:49.57こういうこと?別に書けなくはないじゃん
ys = [ x for x in xs
if (
(test1_1 if test1 else test1_2) if test else
(test2_1 if test2 else test2_2)
)
]
ys = [ x for x in xs
for cond1 in [test1_1 if test1 else test1_2]
for cond2 in [test2_1 if test2 else test2_2]
if (cond1 if test else cond2)]
0696デフォルトの名無しさん
2011/12/29(木) 08:41:20.91まだそんなの弄ってるヤツいるんだっけ?
0697デフォルトの名無しさん
2011/12/29(木) 08:51:03.45そりゃいるだろう
0698デフォルトの名無しさん
2011/12/29(木) 09:05:01.440699デフォルトの名無しさん
2011/12/29(木) 10:14:38.26ウケルw
はやく人間になれよw
0700デフォルトの名無しさん
2011/12/29(木) 10:48:07.31>あるいは「(2) Rubyはブロック内で局所宣言が可能」だから上のコードを以下のように書き換えてもいい
結果は同じかもしれないけど、等価な書き換えじゃないので例が良くないと思う。
cond_1,cond_2 どちらか片方しか評価する必要ないよね?
>>695
下のコードは間違ってるんじゃないかな?cond_1 か cond_2 のリストになるはず。
内包表記内での手続きはあまり向いてないので。Pythonの場合、工夫して出来上がっても
そっちのアプローチは、恐らく読みにくくて効率の悪いコード。
0701デフォルトの名無しさん
2011/12/29(木) 11:32:55.71BASIC:楽しくプログラミングしましょう
俺:BASICかわいいよかわいい
半年後
BASIC:たーのーしーくーぷーろーぐー
俺:ごめん遅いよ……
★19年前
アセンブラ:BASICちゃん遅すぎるよね
俺:アセンブラ可愛いよ可愛い
三日後
アセンブラ:ヒャッハーッ!
★14年前
C&C++:アセンブラちゃんわけわかんないよね
俺:CとC++可愛いよ可愛い
三時間後
C&C++:ヒャッハーッ!
★10年前
Perl:なんでも言ってよね
俺:Perl可愛いよ可愛い
半年後
Perl:あぁぁあああだしいぉわかってェエエエ
俺:何いってんのかわかんないよ……
★3年前〜今
Python:ちゃんとしてればなんでもしてあげる
俺:Python可愛いよ可愛い
RubyはPerlの妹っぽくて怖い
0702デフォルトの名無しさん
2011/12/29(木) 11:36:48.470703デフォルトの名無しさん
2011/12/29(木) 12:09:07.51>>682はよくあるミスだな
if cond then cond(1) else cond(2) end
は
res1=cond(1)
res2=cond(2)
if cond then res1 else res2 end
と同一ではない
$ cat a.rb
def cond(x); puts "cond#{x}"; return x; end
puts "=line="
puts (if true then cond(1) else cond(2) end)
puts "=var="
res1=cond(1)
res2=cond(2)
puts (if true then res1 else res2 end)
$ ruby a.rb
=line=
cond1
1
=var=
cond1
cond2
1
0704デフォルトの名無しさん
2011/12/29(木) 12:56:31.670705デフォルトの名無しさん
2011/12/29(木) 13:24:32.94ttp://www.kyodonews.jp/feature/news05/2011/07/post-2744.html
ttp://www.enecho.meti.go.jp/info/tender/tenddata/1106/110624b/110624b.htm (一番下の3番・仕様書)
もうこの国に対しては不信と絶望感しか残りません。
本当に自己防衛の時代に入ってしまったんですね。。。
0706デフォルトの名無しさん
2011/12/29(木) 13:35:32.530707デフォルトの名無しさん
2011/12/29(木) 13:46:53.27perl唯一の強みだな。
0708デフォルトの名無しさん
2011/12/29(木) 13:49:19.34> 下のコードは間違ってるんじゃないかな?cond_1 か cond_2 のリストになるはず。
なんでそうなる?Pythonのコード読めないのか?せめて実行してみたか?
まあ>>695のようなコードは普通書かないけども。
0709デフォルトの名無しさん
2011/12/29(木) 14:02:40.790710682
2011/12/29(木) 14:21:49.56指摘ありがと、確かにその通りだ
cond_1とcond_2は直和構造(排他)で必ずどちらか一方の評価結果が無駄になるから、例として不適切だった
では、直積構造(組合せ)を使って局所宣言の例題を書き直してみた
ys = xs.map { |x|
h = if x.first_page? then generate_header else nil end
b = generate_body x
f = if x.last_page? then generate_footer else nil end
Document.new h, b, f
}
0711682
2011/12/29(木) 15:05:28.17条件判定が式である言語に限定して、それらの構文を比較してみる
Ruby:
if 条件式 then 式1 else 式2 end
Smalltalk:
条件式 ifTrue: [ 式1 ] ifFalse: [ 式2 ]
Lisp:
( if 条件式 式1 式2 )
ML:
if 条件式 then 式1 else 式2
Haskell:
if 条件式 then 式1 else 式2
Python:
式1 if 条件式 else 式2
普通の言語は「条件式 -> 式1 -> 式2」と左から右へ流れる(それが自然)
それに対して「Pythonだけ」は「式1 <- 条件式 -> 式2」と
左へ右へと行ったり来たりしないとコードが読めない
プログラミング言語界の中で「Pythonだけ」が異端な存在で、可読性の悪い構文が採用されている
これは明らかにPython開発陣の言語設計ミス、あるいは判断ミスだね
0712デフォルトの名無しさん
2011/12/29(木) 15:06:28.81学生プログラマ日本一決定戦(予選は社会人も参加可)
ttp://codevs.jp/howto.html
現在予選開催中
応募締切 2012.1.6 12:00
おもしろいことやっているじゃん。誰か今から参加しろよ。
0713デフォルトの名無しさん
2011/12/29(木) 15:07:12.57馬鹿ですねわかります
0714デフォルトの名無しさん
2011/12/29(木) 15:11:08.00ys = (Document.new(h,b,f) for x in xs
for h in [generate_header() if x.is_first_page else None]
for b in [generate_body(x)]
for f in [generate_footer() if x.is_last_page else None])
0715デフォルトの名無しさん
2011/12/29(木) 15:14:06.33else は知らないが、式修飾子は, Perl にも Ruby にも PHP にもあるでしょ。
まぁでも、使えるからといって、使うと見づらくなるんで、
使わないことにこしたことはないが。
0716デフォルトの名無しさん
2011/12/29(木) 15:20:36.450717デフォルトの名無しさん
2011/12/29(木) 15:21:11.83素直にC言語風の?:使った奴は無理だったのかしら
まあif文と三項演算子に分けずに
if式1個で事足りてる言語が1番シンプルでいいと思う
0718デフォルトの名無しさん
2011/12/29(木) 15:24:12.590719682
2011/12/29(木) 15:25:31.53>>682の条件判定は論理値による二分岐だったけど、多分岐の例を以下に示す
ys = xs.select { |color|
case color
when :green
true
when :yellow
true
when :red
false
else
raise RuntimeError
end
}
おそらくPythonでも if .. else をネストさせれば「別に書けなくはない(>>695)」かもしれないが、
おそらく「カッコだらけ」のスマートさに欠けたコードになる
ちなみに>>711に挙げた言語の中で、Ruby/Lisp/ML/Haskellには多分岐の専用構文が用意されている
(正確にはLispの多分岐は構文では無いが、自然に書けるという意味で仲間に入れてみた)
0720デフォルトの名無しさん
2011/12/29(木) 15:34:27.99別に弱点にはならんよ
0721デフォルトの名無しさん
2011/12/29(木) 15:36:38.17ほかのしょーもない機能はたくさんあるくせに、なんでswitch文がないんだっけ?
0722デフォルトの名無しさん
2011/12/29(木) 15:36:42.29for文は左から右、上から下に読み下せばいいのに内包表記だとそれが崩れる
if文も左から右、上から下に読み下せばいいのに三項演算子だとそれが崩れる
同じキーワードを使った似たような機能なので違和感が伴う
内包表記はF#風な感じにすればよかったし三項演算子はC言語風味にすればよかった
0723デフォルトの名無しさん
2011/12/29(木) 15:41:15.37空気読めない奴だと思われて村八分にされるのが落ちだろ
全自動リールってすごいね俺も今度からそれ導入しよう!とは絶対にならない
日本とはそういう国だ
0724デフォルトの名無しさん
2011/12/29(木) 15:43:31.83given/whenってのがあるよ
0725デフォルトの名無しさん
2011/12/29(木) 15:46:10.96全自動とはそういう事だ
0726デフォルトの名無しさん
2011/12/29(木) 15:51:48.32確かモジュールで多分岐の実装が存在する
つか、それすらuseで何とかなっちゃうのがおかしいがw
0727デフォルトの名無しさん
2011/12/29(木) 15:52:10.77「HAHAHA、こいつifの書く場所間違ってやがるぜ。」って思うだろうな
0728デフォルトの名無しさん
2011/12/29(木) 15:56:15.28ys = (x for x in xs if {'green': True, 'yellow' : True, 'red' : False }[x])
0729デフォルトの名無しさん
2011/12/29(木) 16:08:44.57if .. then .. else .. end があるからほとんど使わないね
可読性が悪くなるから
三項演算子を使うのはワンライナーで書ける単純な判定や、
irbで対話的に入力する(とにかくタイピング数を減らしたい)場合だけ
0730デフォルトの名無しさん
2011/12/29(木) 16:39:05.58generate_(header|body|footer)のインデントが揃ってるから
Rubyで書かれた>>710よりも読みやすいな
0731700
2011/12/29(木) 16:42:03.73ゴメン、中途半端にrubyのコードを読み違えてた。collect/select
読めるけど、未定義の変数が多いので実行はしてない。
----
一応、主張しておくと
プログラマの負担の軽減という点からのPythonの利点は、
慣習に従って書けば、自然と読みやすく(Python処理系にとって)効率の良いコードになる事なので、
(これをやり方を矯正されると捉える人にとってはストレスになるらしいが)
工夫して書けなくもないからとバッドノウハウで応対するのは、
誤解を与えるだけだと思う。
0732デフォルトの名無しさん
2011/12/29(木) 18:43:38.89根拠はあるのか?
ぶっちゃけインデントの話しか聞いたこと無いんだが。
0733デフォルトの名無しさん
2011/12/29(木) 18:47:03.790734デフォルトの名無しさん
2011/12/29(木) 19:21:12.82だがPythonはうんたらかんたらって出てくるけど、
メソッドチェーンの対比として、なにがいいたいのか全然わからない。
メソッドチェーンって、インスタンスメソッドを実行したときにthisを返すだけだろ?
this.hoge().hoge().hoge().hoge();
って書かないなら、
this.hoge();
this.hoge();
this.hoge();
this.hoge();
って書くしかないと思うんだけど。
0735デフォルトの名無しさん
2011/12/29(木) 19:24:44.25thisを返すものよりも、どちらかと言えばリストとかを新規に返すもののほうがチェーンっぽい感じがする
0736デフォルトの名無しさん
2011/12/29(木) 19:36:12.87最近のjsとかにも入ってるし次のバージョンのJavaにすら入る
んでこういうスタイルをなんていうのかわかんないからとりあえずこのスレのみんなはメソッドチェーンって言ってる
ちなみにこれはthisじゃなくて新しいコレクションを作って返す
0737デフォルトの名無しさん
2011/12/29(木) 19:46:19.61thisを返すことを基本としたライブラリであれば、
どんな言語でだってメソッドチェーンはできる。
Pythonは、メソッドチェーンが出来るように
thisを返すことが義務付けられているのか?
それともthisを返すライブラリまで含めてPythonなのか?
それにメソッドチェーンであれば読みやすいという根拠もよくわからない。
俺の意見はVB6のwithはメソッドチェーンより優れた機能だ。
例 VB6のwithをC言語っぽく書いた。
with(obj) {
.hoge();
.hage();
.hige();
}
0738デフォルトの名無しさん
2011/12/29(木) 19:50:36.70「;」をつけるだけでいくらでもつなげられるなんて素晴らしい
具体的にどうすごいのかは他の人に任せる
0739デフォルトの名無しさん
2011/12/29(木) 19:54:57.09みんな同じ意見だろう?
デバッグがしづらくなるだけって
みんな気づいているだろう?
あれ?動かない? どこまで正しく動いているんだよって
思いながら改行入れて変数に・・・とここまで言えば
俺が何やってるかわかるだろ?w
0740デフォルトの名無しさん
2011/12/29(木) 19:55:50.64いかんよね。
0741デフォルトの名無しさん
2011/12/29(木) 20:23:15.235.10からある(´・ω・`)
0742デフォルトの名無しさん
2011/12/29(木) 20:59:08.350743デフォルトの名無しさん
2011/12/29(木) 20:59:33.83>>739
RubyにはObject#tapというメソッドがあってですね。
a = (1..1000).map {|v| v * 2}.tap{|xs| p xs}.select{|i| i % 1000 == 0 }
メソッドチェーンの途中に挟んで p デバッグができる。
デバッガ使ってるなら途中までの式を実行すりゃ良い話だし、別に困らない。
0744デフォルトの名無しさん
2011/12/29(木) 21:02:18.22みんな同じ意見だろう?
デバッグがしづらくなるだけって
みんな気づいているだろう?
あれ?動かない? どこまで正しく動いているんだよって
思いながらtap・・・とここまで言えば
俺が何やってるかわかるだろ?w
0745デフォルトの名無しさん
2011/12/29(木) 22:09:17.70並列コレクションがあって1人前みたいになってくるのかも
0746デフォルトの名無しさん
2011/12/29(木) 23:12:11.410747デフォルトの名無しさん
2011/12/29(木) 23:37:30.210748デフォルトの名無しさん
2011/12/30(金) 00:12:09.95>根拠はあるのか?
科学的根拠はないけど、Python信者は心からそう信じ込んでいるから、あまりそこをつっこまないほうがいいよ。
歴史を見ても、宗教こそがいちばんの火種だから。
あ、ここは火種を歓迎するところだっけか。ごめん。
0749デフォルトの名無しさん
2011/12/30(金) 01:17:17.57744
いわんでもわかる
0750デフォルトの名無しさん
2011/12/30(金) 01:57:27.43左から右へと書くことが多いから、カーソルの移動が比較的少ない
0751デフォルトの名無しさん
2011/12/30(金) 01:58:12.300752デフォルトの名無しさん
2011/12/30(金) 02:05:05.490753デフォルトの名無しさん
2011/12/30(金) 02:14:32.32うん…かなり左を押す回数多いと思う
それか、変数大量化のどっちか
頭に浮かんだ順に書いていくとそうならない?
0754デフォルトの名無しさん
2011/12/30(金) 02:17:50.520755デフォルトの名無しさん
2011/12/30(金) 02:30:50.970756デフォルトの名無しさん
2011/12/30(金) 03:33:43.280757デフォルトの名無しさん
2011/12/30(金) 04:18:49.34ところで左から右に実行されるのが便利なら、関数も逆ポーランド方式みたいにしたほうが良くないかな。
0758デフォルトの名無しさん
2011/12/30(金) 05:28:19.82いやLLの関数って基本1〜2個でしょ
それをいくつも組み合わせるときの問題だってば
0759デフォルトの名無しさん
2011/12/30(金) 05:29:24.68+ いやLLの関数の引数って基本1〜2個でしょ
0760デフォルトの名無しさん
2011/12/30(金) 06:34:16.26代入が右から左なので台無し
一番右を見ないと左辺に代入される値の型すら
分からないので目線の移動が大きく読み難い
0761デフォルトの名無しさん
2011/12/30(金) 06:39:08.70たいへんわかりやすいです
0762デフォルトの名無しさん
2011/12/30(金) 06:43:38.06全部コード付きで論破されたところまでは分かった
0763デフォルトの名無しさん
2011/12/30(金) 07:12:36.91型は問題ではなくて変数名なりを分り易くつけることが
重要なんだと思う
0764デフォルトの名無しさん
2011/12/30(金) 07:32:32.13>>682 は三項演算子を使っていないけど、確か Ruby にもあったよね?
なんでそんなに難解に書くんだ?
0765デフォルトの名無しさん
2011/12/30(金) 07:57:16.68何回言ってんだ
恥ずかしくなってくるw
0766デフォルトの名無しさん
2011/12/30(金) 10:04:41.40内包表記は見た目が整ってて綺麗、最終的な型がわかり易い
いじょ。
0767682
2011/12/30(金) 10:46:39.90[二分岐] Python: >>695(上段), Ruby: >>682(上段)
ys1 = [x | x <- xs1,
if test x then
if test_1 x then test_1_1 x else test_1_2 x
else
if test_2 x then test_2_1 x else test_2_2 x
]
[多分岐] Python: >>728, Ruby: >>719
data Color = Green | Yellow | Red
ys2 = [x | x <- xs2,
case x of
Green -> True
Yellow -> True
Red -> False
]
[直積] Python: >>714, Ruby: >>710
data Option a = None | Some a
ys3 = [fn x | x <- xs3]
where fn x =
let
h = if is_first_page x then generate_header else None
b = generate_body x
f = if is_last_page x then generate_footer else None
in
(h, b, f)
0768682
2011/12/30(金) 10:49:18.74X: [直積] Python: >>714, Ruby: >>710
O: [局所宣言] Python: >>714, Ruby: >>710
0769デフォルトの名無しさん
2011/12/30(金) 11:22:43.21foobar = ho.ge().fu().ga().pi()
.yo()
って書け(れ)ばいいだけじゃね?
0770デフォルトの名無しさん
2011/12/30(金) 11:28:31.92[[x,y] for x in xs for y in xs]
ですぐわかるのは何かの2要素のリストのリストってだけで
xの型がxsの中身の型だってわかるのはx in xsまで読まなきゃだし
yの型がysの中身の型だってわかるのはy in ysまで読まなきゃわかんないけどな
0771デフォルトの名無しさん
2011/12/30(金) 11:34:26.12リスト内包表記ってやつを主張していて、
その実態は、リストリテラルの中にループ文を書いて、
リストの値を設定出来るってことか。
例えばDBからSELETした結果を詰める場合、
コネクションオープンからコネクションクローズまで、
リストリテラル内に書くことになるんだよね?
0772682
2011/12/30(金) 12:03:36.93[二分岐] Python: >>695(上段), Ruby: >>682(上段)
val ys = filter (
fn x =>
if test x then (
if test_1 x then true else false
) else (
if test_2 x then true else false
)
) xs
[多分岐] Python: >>728, Ruby: >>719
datatype Color = Green | Yellow | Red
val ys = filter (
fn x =>
case x of
Green => true
| Yellow => true
| Red => false
) xs
[局所宣言] Python: >>714, Ruby: >>710
datatype 'a Option = None | Some of 'a
val ys = map (
fn x =>
let
val h = if is_first_page x then generate_header else None
val b = generate_body x
val f = if is_last_page x then generate_footer else None
in
(h, b, f)
end
) xs
0773682
2011/12/30(金) 12:06:46.20[誤]
if test x then (
if test_1 x then true else false
) else (
if test_2 x then true else false
)
[正]
if test x then (
if test_1 x then test_1_1 else test_1_2
) else (
if test_2 x then test_2_1 else test_2_2
)
0774デフォルトの名無しさん
2011/12/30(金) 13:13:28.56例 VB6のwithをC言語っぽく書いた。
with(obj) {
.hoge();
.hage();
.hige();
}
0775682
2011/12/30(金) 13:20:00.42Pythonは動的型付け言語だから、リストの中身を開けてみるまでは
その要素のデータ型が何であるかは分からない
Pythonでの内包表記のデバッグは、初心者にとって困難を極めるだろうね
Haskellなら、処理系が型検査してもしもコードに誤りがあれば
期待するデータ型と実際のデータ型をエラーメッセージとして教えてくれるのに....
その点、Rubyのメソッドチェーンのデバッグは楽チンだ
ブロック内でデバッグ文
p hoge if $debug
あるいは型検査
raise TypeError fuga.is_a?(Fuga) if $debug
が自由に書けるからね
0776デフォルトの名無しさん
2011/12/30(金) 13:27:01.39だからPerl6頑張れ、超頑張れ、使わないけど
0777682
2011/12/30(金) 13:41:40.80[誤]
raise TypeError fuga.is_a?(Fuga) if $debug
[正]
if $debug
raise TypeError unless fuga.is_a?(Fuga)
end
0778デフォルトの名無しさん
2011/12/30(金) 13:52:07.71withは同じオブジェクトへのメソッド呼び出しなので、メソッドチェーンとは性質が違う。
それに、ブロックの途中にそのオブジェクトのメソッド呼び出し以外でも書けるwithよりも、流れるようなインタフェイスの方が流れが途切れなくていい。
withはオブジェクトにプロパティが沢山あり、それを設定しないと始まらない言語向きだと思う。
0779デフォルトの名無しさん
2011/12/30(金) 13:52:41.88raise TypeError if $debug unless fuga.is_a?(Fuga)
0780デフォルトの名無しさん
2011/12/30(金) 13:53:32.08> 流れるようなインタフェイスの方が流れが途切れなくていい。
なんで?
0781デフォルトの名無しさん
2011/12/30(金) 13:54:47.200782デフォルトの名無しさん
2011/12/30(金) 13:57:16.88メソッドチェーンって、プロパティ設定以外のことって何かすんの?
0783デフォルトの名無しさん
2011/12/30(金) 14:05:24.710784デフォルトの名無しさん
2011/12/30(金) 14:08:37.330785デフォルトの名無しさん
2011/12/30(金) 14:12:37.06withでも同じことだが、あらたなobjectを返すタイプの処理の連鎖は>>774では
書けないよ
メソッドチェーンはどちらのケースにも対応している
メソッドチェーンより関数合成のほうがいいと思うけどね
0786デフォルトの名無しさん
2011/12/30(金) 14:18:07.16流れている方がいい理由は?
0787デフォルトの名無しさん
2011/12/30(金) 14:21:41.08メソッドチェーンはできない言語ってのはまずなくて、
変数に代入せずに書き続ける書き方だ。
リファクタリングの一つ「中間変数への代入」の逆、
式のインライン化をした結果がメソッドチェーンだ。
0788682
2011/12/30(金) 14:31:02.24直感的にSQLのSELECT文をイメージしたのは良い発想だと思う
SELECT文と同じように、ループで廻してIFで分岐して...といった「手続き的」に手順を書くのではなく、
検索条件を「宣言的」に書けるのが内包表記
プログラマが宣言を書けば、後は言語処理系が自分で考えて最適な手順を実行してくれるから、
(メソッドチェーンよりも)抽象度の高い記述法だと言える
ただし、残念ながらHaskellにしてもPythonにしても、内包表記ではDBに対する検索条件を書けない
SELECT文で得た結果リストを内包表記で(メモリ上で)処理することになる
0789デフォルトの名無しさん
2011/12/30(金) 14:31:56.86a = x.foo()
b = a.bar()
c = b.baz()
っていうのを
c = x.foo().bar().baz()
って書くだけのことやがな
普通はプロパティの設定なんて出来ないよ
ライブラリの作り方とかによっては
メソッドがレシーバをそのまま返すならプロパティ設定とかも出来るけど
Ruby/Tkだとプロパティ設定みたいなのは、レシーバを返すようになってて
button = Tk::Button.new
button.text('ボタン1')
button.width(10)
button.command{exit}
button.pack()
が
button = Tk::Button.new.text('ボタン1').width(10).command{exit}.pack()
って書けるけど、特殊な例ですな
0790デフォルトの名無しさん
2011/12/30(金) 14:36:33.46だいたいその理解であってる……ただし、
> メソッドチェーンはできない言語ってのはまずなくて、
これはいいすぎ
あくまで今現在主流のシングルディスパッチのオブジェクト指向言語界隈の話
0791デフォルトの名無しさん
2011/12/30(金) 14:38:36.27メソッドチェーンができない言語を教えて下さい。
0792デフォルトの名無しさん
2011/12/30(金) 14:40:25.67オブジェクト指向言語以外には普通はメソッドというものが無いので
メソッドチェーンというものもないですね
0793デフォルトの名無しさん
2011/12/30(金) 14:41:39.18すべてメソッドチェーンができるってことでいいですか?
0794デフォルトの名無しさん
2011/12/30(金) 14:44:30.32メソッドチェーンにはならないでしょう
だからシングルディスパッチということになるのですが、CLOSのような例外を
除いて今メジャーなのはシングルディスパッチなので、大体そう理解しておいても
たぶん問題はありません
0795デフォルトの名無しさん
2011/12/30(金) 14:49:46.55大抵はコレクションを連鎖的に操作するようなことを指してるんだろうけど
0796デフォルトの名無しさん
2011/12/30(金) 14:51:34.00それでおk
JavaとかでStringBuilderのappend().append().append()とか気違いみたいに
連打してるコードとかもメソッドチェーン
0797デフォルトの名無しさん
2011/12/30(金) 14:56:15.36演算子チェーンのコレクション操作はそうはあるまいふわはははー
0798デフォルトの名無しさん
2011/12/30(金) 15:00:24.06それはゴミだからどうでもいい
0799デフォルトの名無しさん
2011/12/30(金) 15:19:53.66Ruby使いはメソッドチェーンしたがる(ようなきがする)
RubyとPythonでは配列の連結が
配列のメソッドなのか文字列のメソッドなのかってのあって
それ自体は別にどっちでもいいと思うけど
Rubyだとjoinで文字化するのまで含めてメソッドチェーンで考えるので
日本語の語順のように
1から100までのRangeオブジェクトを作って、それぞれを二乗して、','で連結して文字列にする、ってのがそのまま
(1..100).map{|x| x*x}.join(',')
と書けるんだけど(こういうのを「流れるような」っていうのかな?)
Pythonだとなんか思考パターンが違うような気がする
不慣れなんであれだけどPythonだと
','.join([str(x*x) for x in xrange(1,100+1)])
って書くのかな
Python使いなら、すっと書けるんだろうけれども
0800デフォルトの名無しさん
2011/12/30(金) 15:20:06.290801デフォルトの名無しさん
2011/12/30(金) 15:28:02.90一見判り易く見えるのは良いんだが
バグってるときにどこまで正常なのかが判りにくい
0802デフォルトの名無しさん
2011/12/30(金) 15:35:27.30あれはやり過ぎ感があるが。
0803682
2011/12/31(土) 17:38:00.10Rubyでのデバッグ方法は、概出だよ >>743,775 (>>775は自分のカキコで>>743は別人さん)
とりわけ難しいような話じゃないと思うけど、何が足りないんだろう?
あと、>>775では(動的な)型検査を書いたけど、
最近はデバッグ時に型検査コードを追加するのではなく
「コーディング(コード設計)時に要所要所で型検査する」スタイルへと変わりつつある
どちらかといえば型検査というよりも、型表明(型アサーション)と言ったほうがいいかもしれない
ここの文脈では、この変数はこの型になっているはずだ!というのをあらかじめ明示的に書くという発想
コードは冗長になるけど、型が明示されているから後々の保守性も良くなるという利点もある
コーディングミスに起因する単純なバグの大半はこの型表明で駆除できるから、
後は本質的な上流工程(機能/構造設計)レベルのデバッグに専念できてオヌヌメ
0804デフォルトの名無しさん
2011/12/31(土) 17:48:45.43内包表記だって簡単にデバッグできるだろ
意味分からん
0805682
2011/12/31(土) 18:19:49.37たとえば関数型言語である Standard ML には逐次演算子 ; がある
これは式 f ; g を評価すると(f の値を捨てて) g の値だけを返すという仕様
だから f の部分にデバッグ文を「手軽に」書くことができる
Pythonにも同じような「簡便な」演算子があるのかな?
内包表記の中は式しか書けないはずだから、逐次演算子(に相当するモノ)が必要になるハズ
Pythonには詳しくないんで、教えてください
0806デフォルトの名無しさん
2011/12/31(土) 18:44:54.35式が書ければprintfデバッグには十分すぎる
from __future__ import print_function
ys = [f(x) for x in xs for _ in [debug and print(x)]]
ついでにOcaml版
let ys = [f x | x <- xs; (if debug then Std.print x; true)]
0807デフォルトの名無しさん
2011/12/31(土) 18:46:08.950808682
2011/12/31(土) 19:02:27.96あと、(>>788で書いたけど)内包表記には処理を「宣言的」に書けるから
(「手続き的」に書くメソッドチェーンよりも)抽象度の高い美しいコードになるという利点がある
ただし、この宣言を書けば後は言語処理系が「自分で考えて」最適な手順を実行する方法は
コード設計は(言語処理系にオマカセだから)楽になるものの、
デバッグ時には(プログラマが言語処理系の振る舞いを予測して)適切な箇所にデバッグ文を
入れなければならない、という欠点もある
もちろん処理系の振る舞いは実装仕様として明確になっているはずだから、デバッグできないという意味ではない
こういった宣言的な記述を全面的に用いる言語には、関数型言語 Haskell や論理型言語 Prolog がある
これら言語は、どちらも実行時に(=動的に)評価順序を決定する戦略を採用しているから
コードはコンパクトで美しいけれど、デバッグは大変という特徴(利点&欠点)がある
ただし、Haskellは静的型付け言語であり型エラーを実行前に検出してくれるから、欠点の多くは補える
それに対してPrologは動的型付け言語だから、デバッグは慣れないと難しい
そしてPythonは .... (以下略)
0809682
2011/12/31(土) 19:06:09.42あっそうか、常に true を返す debug式なら and演算子で繋げばいいんだ
言われてみれば単純な話だけど、指摘されるまで気付けなかった
レスありがとう
0810デフォルトの名無しさん
2011/12/31(土) 20:09:13.62xs = [1, 2, 3, 4, 5]
こんなのは外延的な定義だけど、内包的定義にしても
「集合を定義している」という点においてまったく同じ
map filterのチェインと似たようなことができるので比較されてるけど
意味としては全然違うと思う
0811デフォルトの名無しさん
2011/12/31(土) 20:12:19.82processとしてmap filterが必要な場合には、「内包表記で実現する」のではなく
map filterを使うのが自然な形だと思う
map filterはポイントフリーで書けるしね
0812デフォルトの名無しさん
2011/12/31(土) 20:28:33.13> ここの文脈では、この変数はこの型になっているはずだ!というのをあらかじめ明示的に書くという発想
> コードは冗長になるけど、型が明示されているから後々の保守性も良くなるという利点もある
それやるなら静的型付けすればいいんじゃね?
この変数はこの型かもしれないが、同じメソッドを持っていれば
別の型でも動く。それが動的型付けの醍醐味だろう。
0813デフォルトの名無しさん
2011/12/31(土) 20:29:28.69> あと、(>>788で書いたけど)内包表記には処理を「宣言的」に書けるから
> (「手続き的」に書くメソッドチェーンよりも)抽象度の高い美しいコードになるという利点がある
いんや、美しいかどうかは
好みの問題。
0814デフォルトの名無しさん
2011/12/31(土) 20:41:21.02民主党党員名簿 (党員資格/代表選選挙人名簿) ※ 党外秘
1. 青木大姫
2. 秋山慶姫
3. 新井正煕
4. 金村成勲
5. 木下勲鍋
6. 佐井明博
7. 豊田檀君
8. 本山舜臣
1. 安藤重根
2. 池田青天
3. 金子佐鎮
4. 金山淑恵
5. 木子奉昌
6. 田山明雲
7. 平山明河 流石反日朝鮮人だらけの政党なだけはあるなw野田も韓国人疑惑があるくらいだし
0815682
2011/12/31(土) 20:59:27.67まず、>>803で「コーディング(コード設計)時に要所要所で型検査する」と書いているように、
全ての箇所で型表明を入れるわけではない
ここはバグりそうだな..と感じた複雑なロジックの部分に(=要所要所に)入れる
だから、静的型付け言語の良さ(安全性)と動的型付け言語の良さ(柔軟性)をミックスさせた発想
またダックタイピング手法を使う場合は、たとえば
raise MethodResponsibility unless foo.respond_to?(:msg)
みたいなメソッド応答責任に関する表明コードを使うことになる
>>813
確かに美しいか否かの判断は主観(好み)であって客観性は無いよね
ただ、それだとこのバトルスレの意義が問われることになって .... (以下略)
0816デフォルトの名無しさん
2011/12/31(土) 21:43:18.29内包表記は高級なリストリテラルとして便利で簡潔、美しいといってもよい
が、それ以上の用法は、集合の定義としての本来の意味から外れているし
美しいとも思わない
思うに>>626あたりが提示している以下のような式の違和感も、結局その辺に
原因があるんじゃないか?
> sum([ x*x for x in xs if x > 0 ])
Linq等も絡んでSQLって比喩も出てたが、あれも要は関係代数に根差した新たな
データセットの定義だからな、だからSELECTがビューの定義に使われるわけで
Pythonはどうも内包表記に本来の意味を超えた用途を与えてしまっているように
感じるよ
0817デフォルトの名無しさん
2011/12/31(土) 21:52:29.58> 思うに>>626あたりが提示している以下のような式の違和感も、結局その辺に
> 原因があるんじゃないか?
> > sum([ x*x for x in xs if x > 0 ])
この用法のどこが内包表記の本来の意図を超えてるんだよ
普通の集合の定義だろうが
> Pythonはどうも内包表記に本来の意味を超えた用途を与えてしまっているように
> 感じるよ
お前は内包表記が使える言語を何か一つでも使った事があるのかと
0818デフォルトの名無しさん
2011/12/31(土) 21:59:03.72その式にはどこにもxsの定義が無いので、実際にはその式の意図は集合の定義ではなく
以下の計算だと俺には見えるよ
sum . map (\x -> x * x) . filter (> 0)
こっちはポイントフリーだ、xsなど存在しない
0819デフォルトの名無しさん
2011/12/31(土) 22:03:45.80のもそうなんだが、最終的に得たいものがただの数値である、という点からもね
「計算の便法として」内包表記を使っている、という風に見えるわけ
Haskellなら上のようにmapとfilterで書くほうが好ましいでしょ、内包表記には必ず
ポイントがあるからね
0820デフォルトの名無しさん
2011/12/31(土) 22:08:30.26なんかメリットあるのか?
例えばデータベースの読み書きに
応用してみてくれ。
0821デフォルトの名無しさん
2011/12/31(土) 22:14:33.84ポイントをなくすことに、かい?
ポイントフリーな式はそれ自体が関数だ
もちろんデータを適用してもいいが関数としても使える
ポイントがあればそうではないから、関数として使いたい場合はlambda抽象の中に
くるむといったことをしなきゃならない
数学的に見ればポイントとは定義域の中の特定の点だ
ポイントつきの式ではその点に限って観測しているのに対して
ポイントフリーの式では点を限定せず写像を写像として扱っている
0822デフォルトの名無しさん
2011/12/31(土) 22:14:51.99num と num list -> num を混同するなよ
お前が定義してるのは後者だからxsなんて無いに決まってる
0823デフォルトの名無しさん
2011/12/31(土) 22:17:55.32もちろん、xsを最後に適用してもいいよ、末尾にxsを書くか書かないかの
違いだけだし……
重要なのは、ポイントフリースタイルではprocessを再利用可能な写像の形で
抽出できていて、それを適用するもしないも任意だということ
内包表記のコードがそれに比べたら「書き捨て」なのがわかるだろう
0824デフォルトの名無しさん
2011/12/31(土) 22:18:44.52いや、そうではなくて
具体的な応用例を示してくれということだよ。
データベースならほとんどのアプリで使うだろう?
そのデータベースを例にして。
0825デフォルトの名無しさん
2011/12/31(土) 22:20:35.08lambda xs: sum([ x*x for x in xs if x > 0])
なんて書いてるアホがこのスレに居たか?
お前ひとりが勘違いしてハッスルしてるだけだ
0826デフォルトの名無しさん
2011/12/31(土) 22:26:11.97> お前は内包表記が使える言語を何か一つでも使った事があるのかと
こんな風に妙にけんか腰なあなたにもなるべく丁寧に答えてはいるが……
(何が気に障ったのか知らないけど)
0827デフォルトの名無しさん
2011/12/31(土) 22:31:33.37これがアホなら、Pythonではどう書くのが「ただしい」の?
0828デフォルトの名無しさん
2011/12/31(土) 22:31:47.09これがアホなら、Pythonではどう書くのが「ただしい」の?
[]が不要なのはわかるけど
0829デフォルトの名無しさん
2011/12/31(土) 22:45:51.66内包表記の本来の意味とやらが意味不明なだけだ
Haskellで sum [x*x | x <- xs, x > 0] と書くと内包表記の悪用なのか?
ポイントフリー病にかかるのは勝手だが
他人にまで押し付けんなよ
0830デフォルトの名無しさん
2011/12/31(土) 22:51:36.03でも、ほしいのが手続きである場合はそうは書かないでしょ?Haskellなら
Pythonでは、そうした場合にも、>>825に似たものを書くことになると思うよ
だから↓のように書いたわけ
>Pythonはどうも内包表記に本来の意味を超えた用途を与えてしまっているように
>感じるよ
0831デフォルトの名無しさん
2011/12/31(土) 22:58:24.87「抽象度の高い・美しい」という表現に対すて、俺なりの考えを述べただけなので
別に何か特定の「押し付ける」つもりは全く無いよ
(っていうか、そんなこと不可能だろ……)
0832デフォルトの名無しさん
2011/12/31(土) 23:18:41.20引数=入力という観点を持つとポイントフリー病になるんだろうな。
0833デフォルトの名無しさん
2011/12/31(土) 23:31:46.75>別にPythonなんてどうでもいいわい
どうでもいくないわw
スレタイ嫁
0834デフォルトの名無しさん
2011/12/31(土) 23:36:35.32いつの間にか Python vs. Haskell になっている件について
0835デフォルトの名無しさん
2012/01/01(日) 01:08:52.77Scalaが最高の言語なのかもしれないね。
0836デフォルトの名無しさん
2012/01/01(日) 01:12:22.5489 名前:名無しさん@12周年[sage] 投稿日:2011/12/27(火) 18:42:50.71 ID:oPBf/MSP0
12月23日、東京国際フォーラムホールAで大国男児、X−5 、C-REAL、チェ・スジョンらが出演した『K-POP LIVE for X'mas 2011』が開催された。
しかし、ふたを開けてみれば2階はすべてクローズド、1階も後列は空席だらけと、さんざんな結果に終わった。
http://news.infoseek.co.jp/article/cyzowoman_27Dec2011_17759
↓ ↓ ↓
395 名前:山師さん@トレード中[] 投稿日:2011/12/27(火) 15:21:13.95 ID:E5FNgBRR0
K-POP LIVE for X'mas 2011
公演日:2011年12月23日(金)
会場:東京国際フォーラムホールA(収容人数5000人)
出演:大国男児 / X−5 / C-REAL / Yoonji
開演前
http://cdn-ak.f.st-hatena.com/images/fotolife/u/ukiukineko/20111224/20111224221655.jpg
http://cdn-ak.f.st-hatena.com/images/fotolife/u/ukiukineko/20111224/20111224221654.jpg
開演中
http://cdn-ak.f.st-hatena.com/images/fotolife/u/ukiukineko/20111224/20111224222054.jpg
補助金が尽きてガラガーラ テレビは捏造演出装置
0838デフォルトの名無しさん
2012/01/02(月) 17:47:08.17>lambda xs: sum([ x*x for x in xs if x > 0])
>なんて書いてるアホがこのスレに居たか?
ちょっとまってくれ、こう書いたらPython的にはアホなのか?
すごく書きまくってるんだが。
0839デフォルトの名無しさん
2012/01/02(月) 17:51:58.15>別にPythonなんてどうでもいいわい
と逃げてるようだから、単に口が滑ったんだろう
0840デフォルトの名無しさん
2012/01/02(月) 17:55:23.15\x -> sum [y * y | y <- x, y > 0]
と書く方が>>818より短い
0841デフォルトの名無しさん
2012/01/02(月) 21:59:13.14ポイントフリースタイルって一体何のメリットがあるんだ?
ただの難読化に見える
0842デフォルトの名無しさん
2012/01/02(月) 22:29:20.12今思いついたメリットは
変数がなければ∀やλも使わないので∀とλが分からない素人でも読めること
0843デフォルトの名無しさん
2012/01/02(月) 22:37:51.33function(x) { return x.foo().bar().bazz() }
を
bazz . bar . foo
と書くだけだぞ
よぶんなゴミがなくて本当に必要なことしか書いてないからずっと短い
これが難読化だというのはちょっとよくわからないな
0844デフォルトの名無しさん
2012/01/02(月) 22:57:35.90たとえば、これをポイントフリースタイルで書くとどうなるの?
function(x, a, b, c) { return x.foo(a).bar(b).bazz(c) }
0845デフォルトの名無しさん
2012/01/02(月) 23:01:02.40関数的に書くとこうなるかな。
\x -> \a -> \b -> \c -> bazz (bar (foo x a) b) c)
0846デフォルトの名無しさん
2012/01/02(月) 23:09:24.02flipとかfstとか無理やり使ってポイントフリーにするぐらいなら
素直に書いた方がずっといいと思うよ
0847デフォルトの名無しさん
2012/01/02(月) 23:14:30.22え。flip とか fst とか要らないよ。
845 をポイントフリースタイルにすると 843 と同じ bazz . bar . foo になる。
そうやって foo, bar, bazz の型情報が消え去ったプログラムが分かり易いですか?
ということを言いたかったんだけど。
0848デフォルトの名無しさん
2012/01/02(月) 23:46:30.69え、ちょっと待って、意味が分からない……
>>845は
x, a, b, cの型をそれぞれa1, a2, a3, a4とすると、
foo: a1 -> a2 -> a5
bar: a5 -> a3 -> a6
bazz: a6 -> a4 -> a7
のようになっていて、全体としては a1 -> a2 -> a3 -> a4 -> a7 か?
なんでこれが bazz . bar . foo になるんだ?
仮にfoo = (+), bar = (+), bazz = (+) とすると、型がマッチしなくて
bazz . bar . fooは型エラーになると思うが、何か俺勘違いしてる?
0849デフォルトの名無しさん
2012/01/03(火) 01:22:51.92(((bazz.).bar).).foo
が>>845と同じになるんじゃないのかな
0850デフォルトの名無しさん
2012/01/03(火) 08:56:34.47map flip [foo, bar, bazz] と書きたいがHaskellのリストには同じ型しか入らない。
だからLLの方が良い。
0851デフォルトの名無しさん
2012/01/03(火) 12:42:39.32>プログラミングRubyのRubyベタボメっぷりにRubyを使い始めて早10数年、使えば使う程にRubyって駄目だなと痛感する
>Rubyを学習し始めた頃は誰でもRubyは素晴しいと思うのだが、数年も使えばそのどうしようもない互換性のなさにウンザリする
>しかも互換性が無くなることをマズいと思っていない集団がRubyを制作しているのでどうしようもない
>1.4時代のコードが1.6になった途端に互換性がなくなり動かなくなることはあったが、1.6→1.8ではそれが顕著になり、1.9など何のエラーも出さずに前のコードが動く方が珍しいほど
>それどころか1.9に行かずREEが海外ではデファクトになりつつある現状、そして始まるPlain RubyとREEの方言問題
>例えばPassengerもREEの方がうまく動いたり、かと思えば特定のバージョンだとPlainじゃないとまともに動かなかったりと、とても面倒臭い
>
>美しいコードを求める為の副作用、という名の互換性のなさはRuby界全体に蔓延していて
>例えばあれだけもてはやされたRailsも、Rails2とRails3の互換性のなさに誰しも苦労したのは記憶に新しいところ
>誰もが互換性のなさに辟易し、俺ライブラリを量産するため、gemで探すと似たような事をする終わったプロジェクトがわんさか引っかかる
>諸処の小さなプロジェクトだけがそんな現状ならば許せるが、dbiアダプタでさえそんな現状なので
>バージョンが変わるとデータベースにすら接続できなくなったとか、dbiのAPIバージョン変わったのにアダプタ側の更新ないな、
>とか思ってるとアダプタ作者がRubyから足洗ってたとか余裕
0852デフォルトの名無しさん
2012/01/03(火) 12:43:05.47>その美しいコードという名のオナニーの為に一体どれだけの互換性と人的リソースが失われていったことか
>Rubyのコードは美しい、Railsスゲー、ベタボメする人は沢山いたがいつも一過性の人気しか得られないのはそこにあるし
>ベタボメしていた人達もしばらくするとウンザリしてRuby界から消えてしまうのも原因は実はそこにある
>達人プログラマーはRubyをベタボメしなくなったし、Mongrel作者はRailsどころかRubyに見切りをつけちゃったしね
>ああいう熱狂的なRuby信者でもRubyから足を洗っているのを見ると、tDiaryがRubyに見切りつけてPythonで全部書き直したとか言われても驚かないだろう自分がいる
0853デフォルトの名無しさん
2012/01/03(火) 13:23:16.40必要なときに書いて捨てるものだと思うぞ
互換性の意味では、メンテされなくなった1.8系がある意味狙い目かも
0854デフォルトの名無しさん
2012/01/03(火) 13:35:48.38美しいとか美しくないとか「いい加減なこと」をブログに書くということがw
プログラマっておっちょこちょいが多いしな
0855デフォルトの名無しさん
2012/01/03(火) 13:45:56.04宣言的言語は今でも流行ってる。
0856デフォルトの名無しさん
2012/01/03(火) 14:00:10.03ひがとかおごとかは鳥肌が立つ
0857デフォルトの名無しさん
2012/01/03(火) 16:42:58.34このスレへのカキコを避けたのは、このスレの住人だからなのかな?
ここのところ Ruby & Haskell に叩かれっぱなしだからw
Python信者ファイト!!
0858デフォルトの名無しさん
2012/01/04(水) 00:54:13.330859デフォルトの名無しさん
2012/01/04(水) 04:03:26.10お察しください
0860デフォルトの名無しさん
2012/01/04(水) 04:20:05.94・Perl
テキスト処理、高級シェルスクリプト
・Python
汎用スクリプト、簡易ツール作成、テスト/プロトタイプ
・Ruby
Perlの代替、テスト/プロトタイプ
・PHP
Web
0861デフォルトの名無しさん
2012/01/04(水) 05:27:09.990862デフォルトの名無しさん
2012/01/04(水) 08:03:56.350863デフォルトの名無しさん
2012/01/04(水) 14:13:23.530864デフォルトの名無しさん
2012/01/04(水) 14:42:40.10他言語のいいとこ取りで、驚き最小の原則で作られた言語だからな。
実際、俺もRubyを覚えてからJavaを覚えるのに大して時間は掛かっていないからな。
0865デフォルトの名無しさん
2012/01/04(水) 14:55:19.930866デフォルトの名無しさん
2012/01/04(水) 15:34:45.330867デフォルトの名無しさん
2012/01/04(水) 16:03:26.220868デフォルトの名無しさん
2012/01/04(水) 16:17:46.52言語なら分かるが、Rubyが特別に学習コスト低い、という気はしないな
0869デフォルトの名無しさん
2012/01/04(水) 17:58:50.36若い奴ほどnode.jsになだれ込んでる
ruby好きオジサンのちまちました小言なんて誰も聞きたくないということ
0870デフォルトの名無しさん
2012/01/04(水) 19:40:20.60クロージャを使ってクラスを書いたり、Ajaxなコード書いたり、普通にやってるけど、
思っていたより、出来る言語なだけであって、良い言語ではない。
Flexだと、クラスを普通にサポートしていたり、
XMLリテラルがあったりがあったりでいい部分もあったが。
謎の遅延評価でデバッグとか苦労した。
0871デフォルトの名無しさん
2012/01/04(水) 19:44:24.78いや元々の互換性云々の話のことね
0872デフォルトの名無しさん
2012/01/04(水) 20:34:52.67○って無理に推し進めるほど、使い勝手がいいもんじゃないだろ。
○を書いたり、○なコード書いたり、普通にやってるけど、
思っていたより、出来る言語なだけであって、良い言語ではない。
○だと、○を普通にサポートしていたり、
○があったりがあったりでいい部分もあったが。
○でデバッグとか苦労した。
0873デフォルトの名無しさん
2012/01/04(水) 21:20:32.61と言うか、やっと本来の姿に近付きつつある感じ
Perl もそうだけど、本来Webは専門外なんだってば
0874デフォルトの名無しさん
2012/01/04(水) 21:32:05.87どこかで見た気がするんだけど、そうでもないんかい?
GitHubとかHuluとかアメリカ産っぽいサイトもRails使ってるんでしょ?
0875デフォルトの名無しさん
2012/01/04(水) 21:47:02.20スタートアップは Rails 、ということは後で書き直すの?
全然別の人が書き直すわけでもないだろうから、新規参入がないと Rails の利用者は
どんどん減っていくのだろうか。
0876デフォルトの名無しさん
2012/01/04(水) 21:49:56.320877デフォルトの名無しさん
2012/01/04(水) 22:09:48.00どうなんだろうねぇ。
捌ききれなくなって書き直したって話はtwitterしか聞いたことないから
そのレベルにならなきゃ大丈夫だと思ってるんだけど。
その前にそんなレベルのサービス作ってみたいぜ
0878デフォルトの名無しさん
2012/01/04(水) 22:15:30.96開発を始めたに過ぎない。
0879デフォルトの名無しさん
2012/01/04(水) 22:52:15.64置き換わっていくんだろうけどな
そもそも単純なRDBのCRUDアプリを簡単に作れますっていう
志の低いコンセプトって当時の時代背景知らない世代には意味不明だろうw
0880デフォルトの名無しさん
2012/01/04(水) 23:25:02.720881デフォルトの名無しさん
2012/01/05(木) 00:29:01.07EJB
0882デフォルトの名無しさん
2012/01/05(木) 00:43:00.550883デフォルトの名無しさん
2012/01/05(木) 07:07:18.62ゴミの代表格じゃねーか
0884デフォルトの名無しさん
2012/01/05(木) 07:48:48.30ruby大好きオジサンはいつまでたっても子供のまんま
「○○?ゴミじゃねーかワラワラワラワラ」
rails売り出し時のマーケティングをそのまま内面化してるだけw
0885デフォルトの名無しさん
2012/01/05(木) 08:44:36.75EJBって使ってメリットあるの?
0886デフォルトの名無しさん
2012/01/05(木) 08:46:11.81当時の時代背景とか詳しく知りたいなー
0887デフォルトの名無しさん
2012/01/05(木) 08:57:38.85faxで回転寿司されてるような種類の仕事はよくわからないけども
0888デフォルトの名無しさん
2012/01/05(木) 10:15:27.69Androidなら作れるよ。iPhoneはしらん。
0889デフォルトの名無しさん
2012/01/05(木) 10:18:43.830890デフォルトの名無しさん
2012/01/05(木) 13:01:34.380891デフォルトの名無しさん
2012/01/05(木) 22:23:11.07軽い設計に変化してきたからな。
もう少し時間が経てば、純正がEJBで
サードパーティ実装がSpringになるだろうね。
0892デフォルトの名無しさん
2012/01/08(日) 00:26:48.42秀逸なフレームワークがある=秀逸な言語
とは限らないよね。
0893デフォルトの名無しさん
2012/01/08(日) 01:03:04.04XMLにクラス書いたって型安全じゃないし、ソース追うの面倒だし、
DBコネクションの取得をカプセル化とか、ものによってはバグの温床になるし。
ORマッピングとかDAOとかもいらなさすぎ、普通にテンポラリーテーブルとか、完全外部結合とか、分析関数とか使うし。
0894デフォルトの名無しさん
2012/01/08(日) 11:02:09.54構造を担当するものと
処理を担当するものを比べてる時点で
お前何もわかってないだろとしか言えないんだがw
0895デフォルトの名無しさん
2012/01/08(日) 11:04:49.53言語設計が秀逸かどうかには興味ない。
言語は秀逸でも言語外がヘボいと開発しにくくなる。
逆に言語外が充実していれば、言語は多少不足していても
開発は楽になる。
実際の開発ではそういう総合力を見てるんだよ。
0896デフォルトの名無しさん
2012/01/08(日) 11:23:15.290897デフォルトの名無しさん
2012/01/08(日) 11:43:06.56とりあえずお前が嫉妬してるのは分かったよ
0898デフォルトの名無しさん
2012/01/08(日) 12:33:44.760899デフォルトの名無しさん
2012/01/08(日) 12:56:23.080900デフォルトの名無しさん
2012/01/08(日) 13:04:31.340901デフォルトの名無しさん
2012/01/08(日) 14:19:47.30そんなのおっかけてる時間なんてないのが実情
ライブラリ等は妙に自己主張しないで愚直に書かれてるのがいいと思う
定義元参照F3一発でライブラリのソースにアクセスできる仕組みも必要だろう
0902デフォルトの名無しさん
2012/01/08(日) 14:28:27.590903デフォルトの名無しさん
2012/01/08(日) 16:14:18.59”おじさん”
昔の知恵、色々プログラミング知ってる
クラウド!WEB!iphoneアプリ!!みたいにほざいてるクソガキじゃなくて
"おじさん"たちが死んだらどうなるんだろう
なんか凄いソフトとかもでなさそう
大規模なシステムもでなさそう
”おじさん”の方が今の若者より何でも知ってる
”おじさん”が死んだらやばいね
0904デフォルトの名無しさん
2012/01/08(日) 16:15:15.660905デフォルトの名無しさん
2012/01/08(日) 16:16:33.63おじさんが死んでも
第二第三のおじさんが現れるから
問題ない。
0906デフォルトの名無しさん
2012/01/08(日) 16:17:08.940907デフォルトの名無しさん
2012/01/08(日) 16:20:44.67なにそれひょっとして自分(の世代)の事言ってんの?
そうだとしたら一体どういう神経してんだw
0908デフォルトの名無しさん
2012/01/08(日) 16:21:06.90第2期とか3期とかゆとりとか昔の知恵知らなくて 段階的に学べなくてしょぼそう
アセンブラとか
ゲームもゆとりでUnity なんかそういうやつ増えそうC++とかじゃなくて
0909デフォルトの名無しさん
2012/01/08(日) 16:24:10.26あー16ビットCPUを直接みたいな・・・
ごめんwあんなの必要になったら誰でも理解できると思うw
0910デフォルトの名無しさん
2012/01/08(日) 16:24:29.880911デフォルトの名無しさん
2012/01/08(日) 17:48:19.97スキルに関しては世代内格差の広がりが危機的だ
0912デフォルトの名無しさん
2012/01/08(日) 18:24:46.19格付けが機能しなくなっている
0913デフォルトの名無しさん
2012/01/08(日) 18:58:25.82特化してる階層が違うだけじゃね?
0914デフォルトの名無しさん
2012/01/08(日) 22:03:25.06最近の人は計算機科学に加えてソフトウェア工学の知識も求められるから大変だ」とか
昔の事はよく知らんけども、
プログラミング関係の領域自体が一世代前より
広く深くなっているのかもしれない
0915デフォルトの名無しさん
2012/01/08(日) 22:07:41.93アリストテレスやダヴィンチが出てくるような時代じゃないてこったよな
0916デフォルトの名無しさん
2012/01/08(日) 22:11:19.29そんなレベルでプロのプログラマーなのか?と驚愕した
その程度で業務アプリとか作れるのかぁ
関数型言語がどうこうとか、クロージャーがどうのこうとか
そんな知識要らなさそうだなと、思った
自分はアマチュアなので業務とかの知識や経験がさっぱり無いので
業務アプリなんて作れないわけだが
RubyやPythonでスタートアップするぜっ、とかいう企業だと
少数精鋭の凄腕プログラマーがそろってないとやばそうだけど
0917デフォルトの名無しさん
2012/01/08(日) 22:26:14.50> RubyやPythonでスタートアップするぜっ、とかいう企業だと
> 少数精鋭の凄腕プログラマーがそろってないとやばそうだけど
フレームワーク使ったら俺でも簡単にウェブアプリが作れるぜって
企業ばかりだから、少数で技術力も低いのばっかり。
そんな程度でもそこそこ作れてしまうからね。
まさにLL言語ドカタw
だいたい少数精鋭ってのは数がたくさんいて
その中から精鋭を選んで初めて作れる。
もとから少数な企業に少数精鋭なんて無理。
0918デフォルトの名無しさん
2012/01/08(日) 22:33:23.32頭に蛆涌いてるだろ
0919デフォルトの名無しさん
2012/01/08(日) 23:29:17.480920デフォルトの名無しさん
2012/01/08(日) 23:31:14.20それを言ったらあらゆるシステムはすべて動けばそれでいい、じゃん
0921デフォルトの名無しさん
2012/01/08(日) 23:37:31.420922デフォルトの名無しさん
2012/01/08(日) 23:46:02.000923デフォルトの名無しさん
2012/01/09(月) 00:35:03.56出会い系ですねわかります
0924デフォルトの名無しさん
2012/01/09(月) 03:20:24.80まあね
業務システムにしたって、動けば正義が当てはまることは多い
最近は大してスキルのない奴でも偉そうに
保守性がー可読性がーなどとのたまうのがトレンドみたいだがw
0925デフォルトの名無しさん
2012/01/09(月) 09:19:22.97バグが大量に残ってたり、保守性や可読性が低いのは技術的負債っていうんだよ。
0926デフォルトの名無しさん
2012/01/09(月) 09:34:33.34誰でも読めて保守が容易で仕様追加も簡便なつくりの場合、逆に会社が潰れかねん…
0927デフォルトの名無しさん
2012/01/09(月) 09:46:48.09保守運用という名の下に、隠れて負債の返済をやってるって話もあるからな。
それが健全なことだとは思わないが。
0928デフォルトの名無しさん
2012/01/09(月) 10:13:02.81そういうキミは何か成功をおさめたのかい?
動けばいい、が許されるのはプロトタイプだけ。企画や資金繰り、マネタイズばっかりだからTwitterやFacebookを超えるようなサービスが日本から産まれてこない。
自分でプロトタイプも作れないような企画屋はエンジニアより下。
0929デフォルトの名無しさん
2012/01/09(月) 10:16:06.72その『クラウド』『iPhone』『webアプリ』ってのたまってるガキが、世界を変えるかもしれないぜ。
0930デフォルトの名無しさん
2012/01/09(月) 10:26:09.80じゃ『最強のフレームワークはどれよ?』
スレ立てれば?
0931デフォルトの名無しさん
2012/01/09(月) 10:29:01.81FNS歌謡祭やHEY!×3の制作会社
株式会社CELL
東京都千代田区麹町2―2―4麹町YTビル
前バリ・REN4・野田らに政治献金した後藤組のフロント企業
メディアトゥエンテイワン
東京都千代田区麹町2―2―4麹町YTビル
0932デフォルトの名無しさん
2012/01/09(月) 10:29:15.02たいした開発したことないみたいだけど…。
医療系みたいな『人の命にかかわる』システムなんかじゃ、動けばいいなんて考えは許されないよ。
0933デフォルトの名無しさん
2012/01/09(月) 10:30:51.87なにこれ?
0934デフォルトの名無しさん
2012/01/09(月) 10:49:14.42この板でこいつにレスしてるのお前くらいのもんなんだけど…
0935デフォルトの名無しさん
2012/01/09(月) 10:55:17.94>医療系みたいな『人の命にかかわる』システムなんかじゃ、動けばいいなんて考えは許されないよ。
そりゃそうだ
>たいした開発したことないみたいだけど…。
ミッションクリティカルなシステム作るのが偉いみたいな考え、一体どこから出てくるのか不思議
その手のシステムって、ただ厳格なだけで別に技術的に特別高度だというわけではないと思う。
0936デフォルトの名無しさん
2012/01/09(月) 11:40:56.32そんなやり方じゃ社員の
モチベーションはダダ下がりだろ。
先のある話には思えん。
0937デフォルトの名無しさん
2012/01/09(月) 11:51:31.07横レスだけど、『人の命にかかわる』システムの開発には、特別に高度な技術力が要求されるよ
初期リリースで24時間365日連続稼動し、なおかつバグゼロが当然の世界
Webの世界では、ある程度のバグを承知の上で稼働を始め、
それと並行してバグ対策と機能追加を効率的に進めようとする考えが普通
両者では、デベロッパに求められる品質に対する意識とスキル(技術領域)は全く異なる
どちらが「偉い/偉くない」とか「高度だ/高度じゃない」みたいな単純な二元論じゃ語れない
0938デフォルトの名無しさん
2012/01/09(月) 11:59:32.95Webの世界で言えば、ブラウザをIEどころか
マイナーバージョンまで指定するだろう。
OSも指定して、完全に同一の状態でないと保証しない。
じゃないと、完全な動作保証は無理だと思うんだ。
そしてそんなのが許させる世界だと思うんだ。
0939デフォルトの名無しさん
2012/01/09(月) 12:20:39.42なので
>たいした開発したことないみたいだけど…。
こういう物言いはないだろうよ。ってことでは
0940デフォルトの名無しさん
2012/01/09(月) 12:38:30.71まぁ、最初は能率は悪いだろうけど徐々に慣れてやっていけるだろうが、
その逆は…慣れる前に火を噴いて下手すりゃ人間ごと消えるな。
0941デフォルトの名無しさん
2012/01/09(月) 13:08:28.32その「最初」で顧客情報垂れ流して会社ごとあぼんだよ
0942デフォルトの名無しさん
2012/01/09(月) 13:42:49.92あるある。
ネスケ2.0とか指定されたことあった。
0943デフォルトの名無しさん
2012/01/09(月) 13:54:13.33どんだけミッションクリティカルかによるんだけどさ
繋がらなかったら電話とFAXにするから安くしてくれというのもあったがそれで運用としてそれで本当に本当にいいのかそれで
>>936
そんなとこにコストかける理由がないんだよ
だからそれでも「いい」んだ
0944デフォルトの名無しさん
2012/01/09(月) 13:55:16.830945デフォルトの名無しさん
2012/01/09(月) 13:57:02.380946デフォルトの名無しさん
2012/01/09(月) 14:01:03.32なんで作る人が1人しかいない世界を想定してるの
0947デフォルトの名無しさん
2012/01/09(月) 14:03:19.540948デフォルトの名無しさん
2012/01/09(月) 14:06:19.790949デフォルトの名無しさん
2012/01/09(月) 14:08:25.80単に人海戦術でやってるだけだったからなぁ。
それだけ動く金が、すごいことになってたみたいだけど。
0950デフォルトの名無しさん
2012/01/09(月) 14:08:29.23請負で作っている側からすると、どうでもいいんだよな。
0951デフォルトの名無しさん
2012/01/09(月) 14:09:10.85各スレの傾向知らないと対処できんな
0952デフォルトの名無しさん
2012/01/09(月) 14:11:17.28…まあ、PerlとPHPとRubyとPythonのアクティブなスレに常駐してれば、このスレのレスの半分くらいはスルーできるかとは思う
0953デフォルトの名無しさん
2012/01/09(月) 14:15:16.49みたいな信頼性いらない世界で使われる言語だよね。
0954デフォルトの名無しさん
2012/01/09(月) 14:19:10.61どの言語にもありそうなものだが
0955デフォルトの名無しさん
2012/01/09(月) 14:23:45.86作れますってフレームワークができてから
どんどんウェブプログラマの質が下がってるよな。
馬鹿養成フレームワークだと思うわw
0956デフォルトの名無しさん
2012/01/09(月) 14:26:23.70ドカタが使う言語の変遷
0957デフォルトの名無しさん
2012/01/09(月) 14:30:33.470958デフォルトの名無しさん
2012/01/09(月) 14:31:29.38あれ? 面白いなw
0959デフォルトの名無しさん
2012/01/09(月) 15:53:15.50あれじゃ、どこも当面のあいだ移行はしないだろ
0960デフォルトの名無しさん
2012/01/09(月) 16:11:34.730961デフォルトの名無しさん
2012/01/09(月) 17:04:26.920962デフォルトの名無しさん
2012/01/09(月) 17:36:10.04WEBで生きるならこれだけで現役の間は凌げるよ。
0963デフォルトの名無しさん
2012/01/09(月) 17:54:13.590964デフォルトの名無しさん
2012/01/09(月) 17:55:08.33ゆとりはWEB
0965デフォルトの名無しさん
2012/01/09(月) 18:32:19.90おじさん・・・危ういの?
0966デフォルトの名無しさん
2012/01/09(月) 18:34:44.430967デフォルトの名無しさん
2012/01/09(月) 19:35:23.18残念ながら日本の土壌では芽が出るのが難しい。
それからするとRubyはよくここまで大きくなったよ。
0968デフォルトの名無しさん
2012/01/09(月) 19:42:59.430969デフォルトの名無しさん
2012/01/09(月) 20:44:24.38マイナーなカルト系だったけどな
0970デフォルトの名無しさん
2012/01/09(月) 21:06:37.15瑕疵担保責任をずっと抱えるとかさ。
0971デフォルトの名無しさん
2012/01/09(月) 22:14:59.04自動化して手動を切り捨ててしまうのは、互換性を切り捨てるのと同じ
0972デフォルトの名無しさん
2012/01/09(月) 22:47:23.13フレームワークがバカでも使えるように作られてるだけだろ。
0973デフォルトの名無しさん
2012/01/09(月) 22:52:12.79Unity使うやつがバカでも使えてバカがより目立ってるだけだろ
0974デフォルトの名無しさん
2012/01/09(月) 23:04:23.870975デフォルトの名無しさん
2012/01/09(月) 23:06:07.440976デフォルトの名無しさん
2012/01/09(月) 23:17:50.780977デフォルトの名無しさん
2012/01/09(月) 23:18:19.070978デフォルトの名無しさん
2012/01/09(月) 23:28:51.300979デフォルトの名無しさん
2012/01/09(月) 23:29:27.810980デフォルトの名無しさん
2012/01/10(火) 00:46:28.89だからといってインターネットを使うやつがバカとは限らんがな
0981デフォルトの名無しさん
2012/01/11(水) 01:00:08.33R6RS (互換性切り捨て)
0982デフォルトの名無しさん
2012/01/11(水) 22:22:50.27800 自分:名無し募集中。。。[] 投稿日:2012/01/08(日) 22:00:50.04 0
AKBブーム捏造の裏
サウンドスキャンの売り上げでさえほとんどが業者の自社買い他社買いで
資金洗浄した金額がオリコンの枚数×CDの価格って感じかね
http://livedoor.blogimg.jp/dqnplus/imgs/f/f/fff69a26.jpg
0983デフォルトの名無しさん
2012/01/12(木) 02:30:26.86【社会】故障原因はメモリー不足=原発データ収集システム―JNES
http://uni.2ch.net/test/read.cgi/newsplus/1326281467/
0984デフォルトの名無しさん
2012/01/12(木) 13:14:38.80http://toro.2ch.net/test/read.cgi/tech/1326341657/
0985デフォルトの名無しさん
2012/01/12(木) 16:35:44.62乙
ところでこのスレって、LLに限定する必要ある?
限定する意味あんまりないんじゃないかと思った。
0986デフォルトの名無しさん
2012/01/12(木) 16:45:58.280987デフォルトの名無しさん
2012/01/12(木) 19:04:31.130988デフォルトの名無しさん
2012/01/12(木) 19:05:01.62民主党が用意した資金で工作員が2chを荒らしていることもだんだんと知られるようになってきた
レス数が950を超えています。1000を超えると書き込みができなくなります。