【Perl,PHP】LL バトルロワイヤル 22【JavaScript,Python】
レス数が1000を超えています。これ以上書き込みはできません。
0001uy
2012/05/09(水) 00:31:27.68エントリーは、Perl、PHP、Python、JavaScript・・・
さあ、死ぬまで語りやがれ!!!
■LLとは?
軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、
コードの作成や修正が容易と見なされるプログラミング言語のことを指す。
ここでいう「軽さ」はプログラマの負担の軽重を指し、
実行速度に優れているという意味ではない。
現在の水準では
・インタプリタ
・動的型
・正規表現
・クロージャ
などを利用できるものがLLと呼ばれることが多い。(Wikipediaより)
前スレ
【Perl,PHP】LLバトルロワイヤル21【Ruby,Python】
http://toro.2ch.net/test/read.cgi/tech/1330003774/
0002uy
2012/05/09(水) 01:48:44.810003デフォルトの名無しさん
2012/05/09(水) 01:50:00.90http://goo.gl/3RBYF
終了
0004デフォルトの名無しさん
2012/05/09(水) 14:10:38.37>>1のLLという概念は間違っていると前スレで結論でてるのに
スレタイとテンプレそのままで立てんなよ
0005デフォルトの名無しさん
2012/05/09(水) 14:21:43.33Lightweight Languageの意味とは、メモリ使用量の少ない言語のことであり、
プログラマの負担は一切関係がない。
C言語はLightweight Languageの一例。
以下英語Wikiより引用
http://en.wikipedia.org/wiki/Lightweight_programming_language
A lightweight programming language is one that is designed to have
very small memory footprint, is easy to implement (important when
porting a language), and/or has minimalist syntax and features.
Examples of lightweight languages
C may be said to be lightweight, as its hardware assumptions are
minimal (it is used to program microcontrollers, for example)
Lua is embedded in many applications, like games, to provide
runtime scripting capabilities
Forth
Io
Squirrel
newLisp
0006デフォルトの名無しさん
2012/05/09(水) 14:37:02.450007デフォルトの名無しさん
2012/05/09(水) 14:49:33.47英語版Wikipediaも誰かが勝手に書いたものなのに、100%信じちゃうの?
http://ja.wikipedia.org/wiki/%E8%BB%BD%E9%87%8F%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
> 英語版Wikipediaによれば、Lightweight programming languageは計算機リソースを多くは消費しないという
> 意味で軽量(Lightweight)であり、C言語などが例としてあげられている。つまり、プログラマ負担の軽い言語を
> 意味しない。また、1997年に書かれたLightweight Languages as Software Engineering Toolsでは、
> プログラミング言語内で補助的に使われる、正規表現やSQL、GLSLを、Lightweight Languagesと呼んでいる。
> よって、日本における軽量プログラミング言語と欧米におけるLightweight programming languageは、
> その「軽量」の意味においてまったく異なるものであるため注意が必要である。
> 英語でPerlやJavaScript、PHPを指し示す場合は、Scripting languageと表現するのが妥当である。
0008デフォルトの名無しさん
2012/05/09(水) 14:50:18.45権威好きな方に。MITだよー。このワークショップは(4年連続)LL4まであったみたいね。
http://ll1.ai.mit.edu/cfp.html
> LL1: Lightweight Languages Workshop
> MIT Artificial Intelligence Lab, Cambridge MA
> Saturday, November 17, 2001
> Call for Participation
> We use the term "lightweight languages" to describe some of the common features
> of these new languages. The term "lightweight" refers not to actual functionality,
> but to the idea that these languages are easy to acquire, learn, and use.
> Examples that would fall into this category include Perl, Python, Ruby, Scheme (and scsh), and Curl.
0009デフォルトの名無しさん
2012/05/09(水) 14:58:57.720010デフォルトの名無しさん
2012/05/09(水) 15:50:51.15スレはScripting Languageか、スクリプト言語にすればいい
0011デフォルトの名無しさん
2012/05/09(水) 15:57:17.410012デフォルトの名無しさん
2012/05/09(水) 16:04:19.54おまえ英語読めないだろw
どうみてもバラバラだ。
>>8の定義もまた違う。
>>8は、機能とは関係なく、習得が容易なもの、という定義をしてる。
>>1は、クロージャ、正規表現など機能要件を勝手に定義していて論外。
0013デフォルトの名無しさん
2012/05/09(水) 16:11:27.45英語圏において、>>5のWikipediaが絶対では無いことを示したまで。
しかも、Wikipediaより>>1の認識の方がMIT AI Labの認識に近いというおまけ付き。
悔しかったね。
で、英語圏で認識がバラバラだと、なんでこのスレのタイトルを変えなきゃならないの?
0014デフォルトの名無しさん
2012/05/09(水) 16:19:45.05なんでって誤った用語広めても意味ないからだろ。
しかもLLとか勝手に略しているしな
>>>1の認識の方がMIT AI Labの認識に近いというおまけ付き
だから近くないだろ。
>>8は機能は関係ないって書いてる。
>>1は機能について具体的に言及している。
0015デフォルトの名無しさん
2012/05/09(水) 16:28:44.48> >>13
> なんでって誤った用語広めても意味ないからだろ。
いや、もう何年も前から広まってるんですが。
> しかもLLとか勝手に略しているしな
MITのLL1というのが見えなかったのかな。
> >>>1の認識の方がMIT AI Labの認識に近いというおまけ付き
> だから近くないだろ。
> >>8は機能は関係ないって書いてる。
> >>1は機能について具体的に言及している。
>>1と>>5と>>8のうちどれが近いでしょうといったら、>>1と>>8と答える人が99.99%だよ(当社推定)。
仮に>>8と>>1が違ってたとして、それが何なの?
なんでスレタイ変えなきゃならないの?
0016デフォルトの名無しさん
2012/05/09(水) 16:36:29.26それとね、リンク先くらい読んでよね。
> Many of the most widely used languages to emerge in the last five years have come, not from
> the academic programming language research community, but from industry. Examples include
> Perl, Python, Ruby, and Rebol. These languages have borrowed heavily from academic research,
> sporting features such as garbage collection and closures, but they also experiment with many
> novel ideas, such as first class environments and keyword-free syntax. In the meantime,
> academic research has made substantial progress in formally addressing issues such as safety,
> correctness, and also the implementation of seemingly expensive features such as closures
> and dynamic dispatch. Lightweight languages have proven to be the most effective vector
> for getting innovative language features into the hands of working programmers.
0017デフォルトの名無しさん
2012/05/09(水) 16:47:21.42>なんでスレタイ変えなきゃならないの?
その定義によって扱う範囲の言語が変わるからに決まってるだろ
>>8の習得が容易、という定義ならJavaやC#は当然含まれる。
0018デフォルトの名無しさん
2012/05/09(水) 17:01:27.80> その定義によって扱う範囲の言語が変わるからに決まってるだろ
現時点で、このスレが扱う言語が何なのかわかってないのは、多分あなただけですよ。
> >>8の習得が容易、という定義ならJavaやC#は当然含まれる。
何度も言うけど、>>8は>>5の認識が英語圏で100%正しいというわけではないことの傍証です。
まぁそれは置いといて、LL1にJavaが含まれないのは、http://ll1.ai.mit.edu/cfp.html読んだら
普通わかりますね。CFP読んで、さぁJavaの話しようとか(今ならC#も)誰も思いませんよ。
JavaやC#のことを語りたいなら、専用スレがあるので、そちらでどうぞ。
"LL"とJavaやC#の比較をこのスレでしたいのならどうぞ。
住民に受け入れられるかどうかは知りませんが。
0019デフォルトの名無しさん
2012/05/09(水) 17:04:29.720020デフォルトの名無しさん
2012/05/09(水) 17:07:48.460021デフォルトの名無しさん
2012/05/09(水) 18:07:51.100022デフォルトの名無しさん
2012/05/09(水) 19:38:50.20ただし共通認識となるかどうかは別問題です
0023デフォルトの名無しさん
2012/05/09(水) 22:17:26.63JavaScript ☆☆☆☆☆ クライアントサイドで動く唯一のLL 糞言語仕様ではあるが将来性はピカイチ
Python ☆☆☆☆☆ numpy,scipyに底支えされる計算科学系分野における絶大なシェア
可読性が高くアルゴリズム教科書への高頻度採用 LLの王様になることが確実
PHP ☆☆☆ web土方御用達言語としてのシェアはJavascriptの躍進で下落する事が予想される
Ruby ☆☆ Railsの影響力低下、またPythonの躍進によりシェア伸び悩み
Perl ☆ 歴史的な役割を終えた言語 今後Perlで開発継続することがリスクとなって採用企業の足枷となる
0024デフォルトの名無しさん
2012/05/09(水) 22:17:55.02言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0025デフォルトの名無しさん
2012/05/09(水) 22:18:21.02│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0026デフォルトの名無しさん
2012/05/09(水) 22:23:45.730027デフォルトの名無しさん
2012/05/09(水) 22:27:56.220028デフォルトの名無しさん
2012/05/09(水) 23:16:54.490029デフォルトの名無しさん
2012/05/10(木) 02:39:03.38│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0030デフォルトの名無しさん
2012/05/10(木) 02:50:31.80http://hirata-create.cocolog-nifty.com/
0031デフォルトの名無しさん
2012/05/10(木) 20:19:42.210032デフォルトの名無しさん
2012/05/10(木) 21:39:02.350033デフォルトの名無しさん
2012/05/11(金) 08:46:56.00まあ実際そうだから仕方ないw
0034デフォルトの名無しさん
2012/05/11(金) 09:53:21.22それって、WinBinderと何が違うの?
0035デフォルトの名無しさん
2012/05/11(金) 10:03:14.93sed 's/ワルプルギスの夜/ソーシャルゲームバブルの崩壊/g'
0036デフォルトの名無しさん
2012/05/11(金) 10:19:51.680037uy
2012/05/11(金) 10:39:40.240038デフォルトの名無しさん
2012/05/11(金) 12:06:36.03uy ならやれる! 一週間以内にきっと見せてくれる!!
0039uy
2012/05/11(金) 13:18:23.490040デフォルトの名無しさん
2012/05/11(金) 13:29:11.28そしてそれを超える実力をPHPさんは3日で示してくれる!!
0041デフォルトの名無しさん
2012/05/11(金) 18:34:11.92r'::::::::::::::::::::;;:;;:;;:ッ、:::::::::::)
\ レ''''jrTf" lミ::::::::く すまない
| 〈ミ:::::::::ノ
\ |、_ ャー‐__二ゞ ヾ::∠ uy 好きのホモ以外
`` ゞ:}  ̄'互.ヾ }:j んL
l/ """"´` )ノ∧ 帰ってくれないか
=-- / l (ノ |
== `弋"__,....._ ! ! Y⌒Y⌒Y⌒
゙、`ー‐' ,' \
''"´ ゙、 ̄ / ,' \
/ ヽ__/::;' ,' ノ `ヽ
// ヾ_,'∠..,,__
// // /´
0042デフォルトの名無しさん
2012/05/11(金) 19:34:35.990043デフォルトの名無しさん
2012/05/11(金) 19:36:39.240044デフォルトの名無しさん
2012/05/11(金) 19:52:33.570045デフォルトの名無しさん
2012/05/11(金) 20:06:26.020046デフォルトの名無しさん
2012/05/11(金) 21:26:22.660047デフォルトの名無しさん
2012/05/11(金) 22:25:23.840048デフォルトの名無しさん
2012/05/11(金) 22:26:29.66PHP 5.4.0 以降では、コードを再利用するための「トレイト」という仕組みが導入されました。
トレイトは、PHP のような単一継承言語でコードを再利用するための仕組みのひとつです。
トレイトは、単一継承の制約を減らすために作られたもので、 いくつかのメソッド群を異なるクラス階層にある
独立したクラスで再利用できるようにします。 トレイトとクラスを組み合わせた構文は複雑さを軽減させてくれ、
多重継承や Mixin に関連するありがちな問題を回避することもできます。
トレイトはクラスと似ていますが、トレイトは単にいくつかの機能をまとめるためだけのものです。
トレイト自身のインスタンスを作成することはできません。 昔ながらの継承に機能を加えて、
振る舞いを水平方向で構成できるようになります。 つまり、継承しなくてもクラスのメンバーに追加できるようになります。
例1 トレイトの例
<?php
trait ezcReflectionReturnInfo {
function getReturnType() { /*1*/ }
function getReturnDescription() { /*2*/ }
}
class ezcReflectionMethod extends ReflectionMethod {
use ezcReflectionReturnInfo;
/* ... */
}
class ezcReflectionFunction extends ReflectionFunction {
use ezcReflectionReturnInfo;
/* ... */
}
?>
0049デフォルトの名無しさん
2012/05/11(金) 22:36:44.850050デフォルトの名無しさん
2012/05/11(金) 22:42:01.370051デフォルトの名無しさん
2012/05/11(金) 22:42:37.630052デフォルトの名無しさん
2012/05/12(土) 02:14:19.99New「うん」
New「perlもpythonも死んじゃった」
ESR「意外な展開ではないよ」
ESR「予兆は随分前からあった」
ESR「例えば君は、ソフトウェアに対して引け目を感じたりするかい?」
New「同じだって言いたいの?」
ESR「FLOSSがどういうプロセスで、君たちのローカル端末に並ぶのか」
New「あっ…やめてよ!」
ESR「僕たちはね、ハッカーの小国史以前から君たちのプロジェクトに干渉してきた」
New「…ッ?」
ESR「数え切れないほど大勢のプログラマが、GPLと契約し、希望を叶え、そして絶望に身を委ねていった」
New「ハッ」
New「どうでもいいって言うの?みんなあなたのせいで死んだようなものなのに」
ESR「そうやって過去に流された全ての涙を礎にして、今の君たちのLAMP環境は成り立っているんだよ」
New「もうやめて…!みんな、みんな信じてたの。信じてたのに裏切られたの」
ESR「はあ」
ESR「それを正しく認識するなら、どうして今更、たかだか数人のNewbieだけを特別視できるんだい?」
New「ずっとコミュニティを見守りながら、あなたは何も感じなかったの?
みんながどんなに辛かったか、わかってあげようとしなかったの?」
ESR「それが僕たちに理解できたなら、わざわざこんなスレまで来なくても済んだんだけどね」
ESR「DOS窓の世界では、FLOSSという現象は、極めて稀な精神疾患でしかなかった」
ESR「だから君たちnewbieを発見した時は驚いたよ」
ESR「全てのプログラマが無料奉仕でプロジェクトにコミットする世界なんて、想像だにしなかったからね」
New「もしも…あなたたちがこの星に来てなかったら」
ESR「君たちは今でも、ラインエディタでbasicを叩いてたんじゃないかな」
0053デフォルトの名無しさん
2012/05/12(土) 09:17:25.15なにもIT業界、システム開発に限った話しじゃない
0054デフォルトの名無しさん
2012/05/12(土) 18:33:18.93apacheは起動している
調べまくったがわからんぞー!
0055デフォルトの名無しさん
2012/05/12(土) 18:35:06.81教えてエロい人!
0056デフォルトの名無しさん
2012/05/12(土) 18:37:47.81PHPをやめればすべて解決
0057デフォルトの名無しさん
2012/05/12(土) 18:42:26.83これ使ってみたら [ HC-LocalServer for PHP ]
http://hirata-create.cocolog-nifty.com/blog/HC-LocalServer.html
0058デフォルトの名無しさん
2012/05/12(土) 19:08:37.03ダウンロードしたけど、iniファイルとか定義ファイルしか入ってないんだけど…
0059デフォルトの名無しさん
2012/05/12(土) 19:10:34.180060デフォルトの名無しさん
2012/05/12(土) 19:16:04.90ガチで分かってないでPHP進めてるボケがいるのだろう
0061デフォルトの名無しさん
2012/05/12(土) 20:41:35.630062デフォルトの名無しさん
2012/05/12(土) 21:30:56.310063uy
2012/05/12(土) 21:32:57.700064デフォルトの名無しさん
2012/05/12(土) 21:38:12.09r'::::::::::::::::::::;;:;;:;;:ッ、:::::::::::)
\ レ''''jrTf" lミ::::::::く すまない
| 〈ミ:::::::::ノ
\ |、_ ャー‐__二ゞ ヾ::∠ uy 好きのホモ以外
`` ゞ:}  ̄'互.ヾ }:j んL
l/ """"´` )ノ∧ 帰ってくれないか
=-- / l (ノ |
== `弋"__,....._ ! ! Y⌒Y⌒Y⌒
゙、`ー‐' ,' \
''"´ ゙、 ̄ / ,' \
/ ヽ__/::;' ,' ノ `ヽ
// ヾ_,'∠..,,__
// // /´
0065デフォルトの名無しさん
2012/05/13(日) 02:32:50.24C系、JAVA、PHP、Python、Perl、Ruby、Javascript 多すぎる こんなにいらない
C、JAVA、Javascriptは替えがきかないので固定としてもPHP、Python、Perl、Rubyのは二つでいい
個人的にはPython、Rubyであってほしいけど、実際はPHPとPythonになるんだろうな
Rubyの言語仕様は素晴らしいと思うけども、計算機科学研究者コミュニティをバックボーンとしたPythonの開発リソースが大き過ぎて段々と勝負にならなくなってきてる
0066デフォルトの名無しさん
2012/05/13(日) 04:53:14.94マイナーバージョンアップでガラッと仕様を変えるし
仕様が素晴らしいなどと言うなら最初から新しい方の仕様にしておけよ
0067デフォルトの名無しさん
2012/05/13(日) 06:42:28.910068uy
2012/05/13(日) 09:42:11.210069デフォルトの名無しさん
2012/05/13(日) 09:44:31.080070デフォルトの名無しさん
2012/05/13(日) 11:38:19.630071デフォルトの名無しさん
2012/05/13(日) 12:04:12.44「何でブラウザにrubyが載ってないんだ」って喚かさせとけば、
javascriptの大体になるのも夢ではないじゃないか?
どーせ、googleやマイクロソフトはウェブ上の
テキストをマイニングしてんだろうから、
嘘でも100万回ほど呟いていたら実現すると思うぞ
0072デフォルトの名無しさん
2012/05/13(日) 12:12:31.78学生ならc++とscheme以外は触らない方が良いと思うぞ
言語と、その周辺のライブラリを覚えるのは本当に時間の無駄
0073デフォルトの名無しさん
2012/05/13(日) 12:13:23.74マイニングしてるなら、メトロが不評なの分かってるだろうに
0074デフォルトの名無しさん
2012/05/13(日) 12:13:27.77作ろうとすると、もっと時間の無駄。
0075デフォルトの名無しさん
2012/05/13(日) 12:16:54.450076デフォルトの名無しさん
2012/05/13(日) 12:19:23.720077デフォルトの名無しさん
2012/05/13(日) 12:19:44.35それでどうやってウェブアプリ作るんだ?
0078デフォルトの名無しさん
2012/05/13(日) 12:21:08.570079デフォルトの名無しさん
2012/05/13(日) 12:44:22.23ウェブアプリなんて供給過多になるだろ.適当な会社に入ってからで十分だ.
学生中は10〜20年後にも通用する基礎を忘れないよう体に刻み込んどけって.
低レイヤもボトルネックも人生の中で気にしないならjavascriptとscheme
0080デフォルトの名無しさん
2012/05/13(日) 13:19:09.55あと、言語の勉強するのならSchemeもかな〜。
他はご自由に。
0081デフォルトの名無しさん
2012/05/13(日) 13:25:19.71言語ってか再起とポインタとコンパイラ、インタプリタ.
あと、お前がアカポスの教授職なら死ね
0082デフォルトの名無しさん
2012/05/13(日) 13:27:14.370083uy
2012/05/13(日) 13:37:27.94時代遅れだと気づけ
C言語は基礎だけやらせてそれは1,2ヶ月で終了
そこからはC#.NETとRubyでいい
Lispは大学生に教えても意味ない
処理系つくったったww とかいって何も理解していないのに勘違いして終わるだけ
0084デフォルトの名無しさん
2012/05/13(日) 13:41:25.82どうせすぐに仕様がガラッと変わるだろ
0085uy
2012/05/13(日) 13:48:46.31一番効率のいい道具黙って使え
仕事では仕事で必要になる言語さっさと覚えろ
0086デフォルトの名無しさん
2012/05/13(日) 13:51:12.17LLバトロワスレだよ?たった1言語だけが生きのこるまで潰しあうスレだよ?
0087デフォルトの名無しさん
2012/05/13(日) 14:42:34.31Cなんて仕様が策定されても処理系が中々準拠しないじゃん。
C99とかC11とかさ。
0088デフォルトの名無しさん
2012/05/13(日) 15:18:07.93凡人は低レベルなこともやっとかないとメモリやI/O、計算量なんかで勘が働かないよ。
0089デフォルトの名無しさん
2012/05/13(日) 20:29:23.45「私、ポトペタお絵描きのIT土方です!」って自己紹介してるようなもんだな
0090デフォルトの名無しさん
2012/05/13(日) 21:01:21.20情報科学とかそういう世界とは遠い所にいる人
0091デフォルトの名無しさん
2012/05/14(月) 05:41:27.70専門卒でITドカタにもなれなかったuyになんて失礼なこと言うんだ。あやまれ。
そのうえまともに絵も描けないんだぞ。まったく失礼にもほどがある。ぷんぷん。
0092デフォルトの名無しさん
2012/05/14(月) 05:58:20.48C++の洋書を買ったら組みこみスクリプトの章があって
BoostはPython、SWIGはRubyと扱いが半々だった
ほんとメジャーになったものだとつくづく思う
0093デフォルトの名無しさん
2012/05/15(火) 00:43:46.971 ドリランド
2 ドリフの大爆笑
「コナン」と言えば
1 名探偵
2 未来少年
「だんぺい」と言えば
1 ドッジ弾平
2 丹下 段平
年代が判りそうなキーワードでした〜
(岡口つい参照)
あなたが主に使用する言語と一緒にお答えドンッ!
0094デフォルトの名無しさん
2012/05/15(火) 05:35:23.97スクリプト言語
台本
スコアと言えば
得点
楽譜
パールと言えば
Perl
Pearl
0095デフォルトの名無しさん
2012/05/15(火) 17:25:55.25彼女はけげんな顔でこう答えたでしょう。
「そうね、スクリプトは俳優に渡すものよ。プログラムは、観衆に渡すもの」。
Adaは聡明な淑女でした。
0096デフォルトの名無しさん
2012/05/15(火) 18:01:20.61「そうね、プログラムは監督があつらえるもの。スクリプトは俳優に読ませるもの。」
0097デフォルトの名無しさん
2012/05/15(火) 18:20:40.230098デフォルトの名無しさん
2012/05/15(火) 18:27:43.05プログラムは監督が誰に読ませるもの?
俳優に読ませるスクリプトは誰があつらえるもの?
0099デフォルトの名無しさん
2012/05/15(火) 18:32:36.77やめろ
0100デフォルトの名無しさん
2012/05/15(火) 18:33:01.350101デフォルトの名無しさん
2012/05/15(火) 18:34:16.300102デフォルトの名無しさん
2012/05/15(火) 18:35:11.58一番すごい言語は?
Ada
0103デフォルトの名無しさん
2012/05/15(火) 18:37:49.260104デフォルトの名無しさん
2012/05/15(火) 18:40:29.800105デフォルトの名無しさん
2012/05/15(火) 19:28:03.21「そうね、プログラムは監督があつらえるもの。
監督がプログラムをもとに、こなれたスクリプトを作るの。
そしてスクリプトを俳優に読ませるの。」
長いでしょ。
だから>>96の二文で終わらせたの。
0106デフォルトの名無しさん
2012/05/15(火) 20:03:41.170107デフォルトの名無しさん
2012/05/15(火) 20:11:29.73元が英文でそれを翻訳したものとでも言いたいのか?
0108デフォルトの名無しさん
2012/05/15(火) 20:16:46.450109デフォルトの名無しさん
2012/05/15(火) 20:20:11.43ウマいこと言ってるわけでもないし
何のおもしろみもない
0110デフォルトの名無しさん
2012/05/15(火) 20:24:29.55おれは今2chの煽りをほんのちょっぴりだが体験した
い…いや…体験したというよりはまったく理解を超えていたのだが……
,. -‐'''''""¨¨¨ヽ
(.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ!
|i i| }! }} //|
|l、{ j} /,,ィ//| 『面白いことを思いついた、これは絶賛間違いなしと
i|:!ヾ、_ノ/ u {:}//ヘ 思って書き込んだらいつのまにか煽られていた』
|リ u' } ,ノ _,!V,ハ |
/´fト、_{ル{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが
/' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも何をされたのかわからなかった…
,゙ / )ヽ iLレ u' | | ヾlトハ〉
|/_/ ハ !ニ⊇ '/:} V:::::ヽ 頭がどうにかなりそうだった…
// 二二二7'T'' /u' __ /:::::::/`ヽ
/'´r -―一ァ‐゙T´ '"´ /::::/-‐ \ ドリランドだとかステマだとか
/ // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ そんなチャチなもんじゃあ 断じてねえ
ノ ' / ノ:::::`ー-、___/:::::// ヽ }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ もっと恐ろしいものの片鱗を味わったぜ…
011195
2012/05/15(火) 20:32:56.29を呼んで、
http://blog.livedoor.jp/dankogai/archives/50967006.html
を思い出して、それで……。
011294
2012/05/15(火) 20:47:31.85Suppose you went back to Ada Lovelace and asked her the difference between a script and a program.
She'd probably look at you funny, then say something like:
Well, a script is what you give the actors, but a program is what you give the audience.
That Ada was one sharp lady...
>>95は原文にある程度忠実
>>96は原文と意味合いが異なる
>>105は蛇足
0113デフォルトの名無しさん
2012/05/15(火) 21:04:02.72原文に間違いがあるなんて当然のことなんだから、
意味の間違いがあれば正して訳せばいい。
意訳できない奴が直訳して恥かいたってだけでしょ。
下手な訳のみを乗せられるよりは原文のみを載せてくれた方がいい。
0114デフォルトの名無しさん
2012/05/15(火) 21:08:10.250115デフォルトの名無しさん
2012/05/15(火) 22:06:21.940116デフォルトの名無しさん
2012/05/15(火) 22:15:48.11その原文の意図を汲み取るのが重要
>>105は本当に原文が意図するところなのか?
0117デフォルトの名無しさん
2012/05/15(火) 22:27:01.31原文の意図が間違っていると言いたい
原文は意図していることを意図できていないにもかかららず、
説明できていると思っているんだろうな。
>>95の説明じゃAdaって聡明じゃない。
stupid
0118デフォルトの名無しさん
2012/05/15(火) 22:35:58.55意訳してるつもりで大外ししてる。ちゃんと読め。
0119デフォルトの名無しさん
2012/05/15(火) 23:12:22.17頭の悪い奴が書いた英語の原文を意訳するつもりなんかないよ
>>95の日本語ではAdaは聡明じゃないし、>>112の英語の原文でも聡明じゃないし。
まあ、>>112の英文の訳として>>95の日本語訳は適切だと思うよ。
0120デフォルトの名無しさん
2012/05/15(火) 23:14:25.740121デフォルトの名無しさん
2012/05/15(火) 23:20:04.560122デフォルトの名無しさん
2012/05/16(水) 01:28:39.320123デフォルトの名無しさん
2012/05/16(水) 01:34:13.44ぶっちゃけ、酒の席でのオヤジギャクと変わらんw
0124デフォルトの名無しさん
2012/05/16(水) 02:56:12.350125デフォルトの名無しさん
2012/05/16(水) 04:04:59.88とくに文字列のパターンマッチ能力に優れている
動的データの処理に優れている
OSとの連携に強い(OSのコマンド、GUIツールキット)
インタプリタ型である
(スクリプト言語に共通する特徴)
スクリプト言語のいろは|Cマガジン2000年10月号
0126デフォルトの名無しさん
2012/05/16(水) 04:10:37.180127デフォルトの名無しさん
2012/05/16(水) 04:14:04.03翻訳より言い訳に力を入れているようだが
0128デフォルトの名無しさん
2012/05/16(水) 08:03:59.46年々レベル下がってるじゃねーか死ね
0129デフォルトの名無しさん
2012/05/16(水) 08:11:15.460130デフォルトの名無しさん
2012/05/16(水) 08:34:08.72書いてるのみると還暦の魔法少女ぐらい厳しいものを感じるよね
0131デフォルトの名無しさん
2012/05/16(水) 08:36:11.560132デフォルトの名無しさん
2012/05/16(水) 20:23:27.30Pythonで同様の黒魔術って(可読性重視の文化は別として)できるものなんだろうか?
教えてエロイひと
0133デフォルトの名無しさん
2012/05/16(水) 22:07:39.69Railsの黒魔術ってなにをいってるの?
自動でいろいろ作ってくれることを指してる?
なんでメタプログラミングの話がでてくるのかさっぱりわからない。
CoC 設定より規約 (Convention over Configuration)になってるから
自動でいろいろ作ってくれるだけでしょ
Railsに影響を受けたFrameworkはたくさん出てるんだから、
Ruby系でも、PHP系でも、Python系でも、Java系でも
使いやすいの選べばいいんじゃないかな
Python系のDjango人気あるようだよ。Railsより高速だし。
Frameworkネタは専門スレのがいいっぽい
ここはWebアプリ関係ない人が多いようだから。
0134デフォルトの名無しさん
2012/05/16(水) 22:12:54.55【Python】Python Webフレームワーク総合スレ
http://kohada.2ch.net/test/read.cgi/php/1329996601/
【RoR】Ruby on Rails Part14
http://kohada.2ch.net/test/read.cgi/php/1329492840/
【PHP】PHPフレームワーク総合スレ15
http://kohada.2ch.net/test/read.cgi/php/1292118428/
0135デフォルトの名無しさん
2012/05/16(水) 23:22:38.41「Railsの黒魔術」で検索した結果。一般にどういうことを指しているか。
http://www.slideshare.net/tmtm/ruby-3424591
メソッドが実行時に生成される。クラスが実行時に生成される。
パース時ではなく実行時オープンクラス、既存のクラスを変更できる。
特異メソッド。演算子もメソッド。クラスもオブジェクト
メソッドも動的に生成。定数の動的取得
文字列からメソッド呼び出し。
クラスが継承された時に実行されるメソッド
メソッドが存在しない時に実行されるメソッド
メソッドが追加/削除された時に実行されるメソッド
クラスの祖先を調べる
オブジェクトにメソッドがあるか?
世間一般にはこういうことを黒魔術と呼びます。
さて、世間の常識で話を進めましょうか?
0136デフォルトの名無しさん
2012/05/16(水) 23:23:51.200137デフォルトの名無しさん
2012/05/16(水) 23:36:20.94Rubyでのいわゆる黒魔術は
eval系メソッドとリフレクション(の組み合わせ)を指すことが多い
これら自体は割とどんなスクリプト言語でも使える
0138デフォルトの名無しさん
2012/05/16(水) 23:38:14.68DSLとかリフレクションが強力ってのじゃないの?
Pythonもわりとなんでもできるけど
隠れた仕組みで標準じゃない動作をさせたりするのは違和感がある。個人的に。
そういうのは明示的にアノテーションでなんとかさせたい。
0139デフォルトの名無しさん
2012/05/17(木) 00:32:35.51そのslideは、「Ruby」についてのものだろう?
132は「Railsの黒魔術」といっていたんだぞ?
RubyとRailsをごっちゃにしてる人にコピペされても。
0140デフォルトの名無しさん
2012/05/17(木) 00:40:56.70ちゃんと読め。
Railsで使われてる黒魔術だ。
RailsがRubyで書かれてるんだから
黒魔術のコードがRubyになるのは当たり前。
0141デフォルトの名無しさん
2012/05/17(木) 00:52:31.54あれの、動的にアクセッサができるって意味ないよな。
静的でいいじゃんって思う。
たとえば、カラム名nameってのがあったとして、find_by_nameが
動的に作られるって言うけどさ、その場合、find_by_nameを
使ったコードがすでに書いてあるわけだろ?
実行する前からnameってカラムがありますってわかってるわけじゃん?
nameってカラムがあるのがわかってるから、find_by_nameを呼び出しますって
コードに書くわけじゃん?
実行前にわかってる、つまり静的でいいよね?
0142デフォルトの名無しさん
2012/05/17(木) 01:07:42.60できることよりコードが多めjava
0143デフォルトの名無しさん
2012/05/17(木) 01:14:00.06間違ったからって強引な屁理屈こねるのはやめろw
現状、Rubyが実質Railsくらいにしか使われてないから、
Ruby=Railsな印象があるのは認めるけど、あくまで別物。
RubyはRuby。言語。
RailsはRails。フレームワーク。
黒魔術なんて誰が言い出したのかしらんがアホっぽいね。
ソースみればなにやってるか、どうなってるか理屈わかるのに
なにが魔術なんだか
0144デフォルトの名無しさん
2012/05/17(木) 01:14:52.71Rubyは実行時に決まることが多いので、それに合わせた方が問題が少ない。
DB叩いてみないと name というカラムが本当にあるかはわからない。
SQLiteのインメモリデータベースのように、テーブルやカラムも実行時に作成している場合もあるからね。
あるいは、ビューを実行時に作って使い捨てたりとか。
それに、find_by_nameも自分で定義したメソッドかも知れないし、
他のライブラリが定義したメソッドかも知れない。
ActiveRecordの場合は、DBが情報持っているのだから、
アプリ側で静的な定義をすることで同じ情報を二重に持っている必要はないよねという考えでもある。
0145デフォルトの名無しさん
2012/05/17(木) 01:15:55.19データベースに接続するのは実行時だから
カラム名やらを静的には把握できないでしょ
脳内で分かってるのはプログラマだけ
0146デフォルトの名無しさん
2012/05/17(木) 01:53:59.07いや、だからさ、何が便利なわけ?
コード上に、find_by_name()書くでしょ?
これはもうファイルに保存されてるよね?
DB叩いてみてフィールドがなければこのコードはエラー起きるよね?
それは動的も静的も変わりないよね?
何か間違ってる?
0147デフォルトの名無しさん
2012/05/17(木) 02:34:44.79find_by_name("tom")
find.where(:name => "tom")
上の方がよくない?
あと昔はwhereが無くてもっと長く書かないといけなかった
0148デフォルトの名無しさん
2012/05/17(木) 02:37:39.230149デフォルトの名無しさん
2012/05/17(木) 02:47:57.96conditions時代だよ
0150デフォルトの名無しさん
2012/05/17(木) 03:21:37.08だから、find_by_nameを静的に作ればいいだけでしょ?
コードジェネレータをコンパイル時に自動実行するだけ。
0151デフォルトの名無しさん
2012/05/17(木) 03:22:42.57静的でできることだよね。ってこと。
0152デフォルトの名無しさん
2012/05/17(木) 04:05:47.05>>134
0153デフォルトの名無しさん
2012/05/17(木) 06:38:02.72Rubyは黒歴史
0154デフォルトの名無しさん
2012/05/17(木) 09:13:27.45rubyは黒歴史
pythonは理想郷
schemeは宗教
javascriptはルネサンス
0155デフォルトの名無しさん
2012/05/17(木) 10:19:53.17kwsk
0156デフォルトの名無しさん
2012/05/17(木) 10:43:44.630157uy
2012/05/17(木) 12:09:35.46世間一般でそれを「黒魔術」と呼ぶのは言語側がその機能を提供してないから
黒魔術によって優秀な()プログラマが、勝手に機能を作っちゃうって事だろ
その時に書かれたコードや、内部の動作は黒魔術だけど
constants
ancestors
variables
methods
define_method
など、メソッド呼び出すだけで、他言語では黒魔術使わない限りできないような事が最初から出来るようになっているならば
黒魔術とはいわず優れた処理系というべき
method_missingをPHPで実装して使ったら黒魔術だけど、
Rubyでmethod_missingを使うのは別に黒魔術ではないと思う
つうか毎日使ってたら魔術()とか思わないし、慣れればただの自分の技術
0158デフォルトの名無しさん
2012/05/17(木) 12:12:55.480159デフォルトの名無しさん
2012/05/17(木) 12:54:57.31黒魔術と呼んで抑制することは悪くないとは思う。
モンキーパッチと呼ぶのも同じように思ってる。
0160デフォルトの名無しさん
2012/05/17(木) 13:00:24.550161デフォルトの名無しさん
2012/05/17(木) 13:06:29.29あまり動的な変更をやり過ぎると把握し辛くなるね
組み込みクラスの挙動とか弄ったりされると
Ruby使いでも注意深く読まないと挙動が読めなくなる
0162uy
2012/05/17(木) 14:23:24.77ヤバイと思う事は出来てもやらないのが、Rubyでソースコードをかける最低ラインだと思う
module Kernel
def print *h
puts "うぇwっうぇww"
end
end
print "test message"
0163デフォルトの名無しさん
2012/05/17(木) 14:43:45.490164デフォルトの名無しさん
2012/05/17(木) 18:05:11.67一人で作って永久にお前がメンテするなら良いけどな。
Perlユーザーに多いんだよな、糞読みにくいコードをドヤ顔で書く奴。
俺がPythonを推すのは、こういう輩が絶滅して欲しいから。
自分の書いたコードを黒魔術、とか自慢げにいう奴は一生一人で誰にも迷惑をかけずに作ってろ。
0165デフォルトの名無しさん
2012/05/17(木) 19:00:17.24逆にPythonのinspect.getargspec(?)のような、メソッドの引数を調べるメソッドは、
Rubyにはないのかな
0166デフォルトの名無しさん
2012/05/17(木) 19:04:24.54まるで「Pythonじゃどうやっても読みやすいコードしか書けない」みたいな言い方だが
本当にそうなのか?
0167デフォルトの名無しさん
2012/05/17(木) 19:21:21.62そこまでの拘束力はないけど、そういう風習・土壌があるから書かない。
PerlでもRubyでも冗長に書けば見通しよくできるけど逆に変態扱いされる。
0168デフォルトの名無しさん
2012/05/17(木) 20:07:57.26>>165
こんなのがあるらしい
>>> def foo(a, b, c); end
>>> method(:foo).arity #=> 3
0169デフォルトの名無しさん
2012/05/17(木) 20:19:45.270170デフォルトの名無しさん
2012/05/17(木) 20:31:28.35>>> method(:bar).parameters
=> [[:req, :x], [:req, :y], [:rest, :z], [:block, :r]]
おお、ほんとだ
0171デフォルトの名無しさん
2012/05/17(木) 21:26:59.96thnx
Method#parametersは1.9.2からみたいですね
1.8.7では駄目でした
0172デフォルトの名無しさん
2012/05/17(木) 21:29:49.260173uy
2012/05/17(木) 22:24:40.98$nn ||= (
puts "1回だけ処理したい"
true )
p i
end
そんな事より、こんな風にループのブロックに入ったときに
最初の1回だけ処理するっていうのを簡単に書ける言語ってないの?
0174デフォルトの名無しさん
2012/05/17(木) 22:33:15.020175デフォルトの名無しさん
2012/05/17(木) 22:35:56.13最初の1回は必ず実行するループは、
Do - While 系のループとしてよく見るけどな
Rubyにはないの?どんな言語にもありそうだけど。
そもそも回数が未定のループでforを使うほうが変じゃないの。
forは基本的に、回数がわかっている時に使うものだと教えられた。
http://ufcpp.net/study/csharp/st_loop.html
ここの、[do-while 文]、のところのようなやつ。
Javaにも同様のあったはず
do
繰り返したい文 // 条件式が真の間繰り返される
while(条件式);
do-while 文は while 文と異なり、最低1回は文が実行されます。
つまり、while 文は条件式の評価を行ってから文を実行するのに対し、
do-while 文は文を実行してから条件式を評価します。
0176デフォルトの名無しさん
2012/05/17(木) 22:41:30.30そうじゃなくて、uyが言いたいのは
最初の一度だけ代入、みたいな処理だと思う
Ruby の ||= の動作ちゃんと解ってりゃ
同等のものが if で簡単に書けるのは当たり前の話なんだが…
0177デフォルトの名無しさん
2012/05/17(木) 22:49:24.85ふーむ
0178デフォルトの名無しさん
2012/05/17(木) 22:51:21.370179デフォルトの名無しさん
2012/05/17(木) 23:34:14.91for (i = 0, puts("hoge\n"); i < 10; i++) {
}
0180デフォルトの名無しさん
2012/05/17(木) 23:37:02.080181uy
2012/05/17(木) 23:59:59.32ちょっと違う
>>179
それじゃダメなんだ
イテレータというか { } のブロック内でやりたい時がある
>>177
なんか英語だけど俺と同じことで悩んでる奴らかそれ
0182uy
2012/05/18(金) 00:22:51.09def uy_each
c = yield self.first
if c.class == Proc
self.each do |m|
c.call m
end
else
self[1..-1].each do |m|
yield m
end
end
end
end
[5,6,7].uy_each {|o|
p o
->o{
p o
}}
["5","6","7"].uy_each {|o|
p o
}
英語サイトに人に感化されてこんなのを考えてみた
0183デフォルトの名無しさん
2012/05/18(金) 07:00:22.30PHPでいいじゃん
0184デフォルトの名無しさん
2012/05/18(金) 08:06:34.230185デフォルトの名無しさん
2012/05/18(金) 09:59:57.70Microsoft OfficeのExcelとかAccessが同じような内容の関数が別名で
それぞれ覚え直さないといけないというのに絶望したよ。PHPにはそれを感じる。
あと、バージョンによって挙動が異なる関数とかもめんどくせぇ。
PHPがそれなりにWeb開発言語として有用だった事は認めるが
いい加減役目は終わらせるべきだと思うね。
0186uy
2012/05/18(金) 10:13:57.68http://www.php.net/manual/ja/class.recursivefilteriterator.php
こんな言語でよく頑張るなと感心する
PHPでプログラミングできるって才能じゃね
0187デフォルトの名無しさん
2012/05/18(金) 10:20:57.13PowerPointは買収だった気がする
0188デフォルトの名無しさん
2012/05/18(金) 12:11:39.81それにしても酷い実装だなぁ、これw
0189デフォルトの名無しさん
2012/05/18(金) 12:24:51.69移行には適当なトランスレータでも作ってさ
言語の便利な機能は良いけれど,それサバンナでも同じこと言えるの?
0190デフォルトの名無しさん
2012/05/18(金) 12:42:23.840191デフォルトの名無しさん
2012/05/18(金) 13:49:59.250192デフォルトの名無しさん
2012/05/18(金) 14:23:49.050193デフォルトの名無しさん
2012/05/18(金) 20:14:48.76PHPにeach系のイテレータないのかと思ってみてみたが、
「foreach ループを終えた後でも、 $value は配列の最後の要素を参照したままとなります。
unset() でその参照を解除しておくようにしましょう。 」
と警告がかいてあった。
ありえなくないか?
簡単にかけるからイテレータがあるのに、unsetしろ、とかwww
http://www.php.net/manual/ja/control-structures.foreach.php
Webにしか使えないしPHPはほんとウンコだな
スクリプト言語ならPythonかRuby。
0194デフォルトの名無しさん
2012/05/18(金) 21:06:55.930195デフォルトの名無しさん
2012/05/18(金) 21:09:21.08それから、イテレータから(例外みたいな大道具なしで)サクっと抜け出す機能は、
後付けするのが難しい。JSでもそんなわけで結局イテレータが使えないことが
よくある。
0196デフォルトの名無しさん
2012/05/18(金) 21:38:33.690197デフォルトの名無しさん
2012/05/18(金) 22:16:32.350198デフォルトの名無しさん
2012/05/18(金) 22:51:50.24ブロックスコープとかあまり関係ない。
$a = new MyObject();
unset($a); ← こうしないと$aは解放されないってだけ。
普通はfunctionの中で使う。
もちろんローカル変数は関数が
終わったら解放される。
言い換えるとグローバル変数は使うなってだけ。
0199デフォルトの名無しさん
2012/05/19(土) 02:22:06.31イテレータ周りはrubyが本当に優秀だなと思う
イテレータが入れ子になっても可読性落ちないよね
0200デフォルトの名無しさん
2012/05/19(土) 02:49:38.50aaa.to_i とか aaa.each do ~~ とか あとifの後置なんかもそうだよね
オブジェクトファースト記法とか勝手に命名してる
適当で横着な書き方をしてもそれなりに綺麗なコードになるのは凄いと思う
Rubyの書きやすさに慣れちゃうとPythonですら書いててたまにイラッとくるし、
JSやらPerlぐらい汚いとアルコールでイライラを抑えないととてもじゃないけどやっていけないレベル
PHP?キーボード20個ぐらいオジャンにしたわセミコロンとかうぜーよ意味ないだろあれ
0201デフォルトの名無しさん
2012/05/19(土) 02:56:04.96あれの支援を受けた受刑者が出所後に採用された会社でPHPやらされて、
破綻した言語仕様に発狂して飲み屋で暴れて塀に逆戻りっていうエピソードもまんざら冗談じゃないなって思ったよ
まあそれくらいRuby凄いってことですわ
ほんと半端ないっすよRuby
0202デフォルトの名無しさん
2012/05/19(土) 02:59:44.060203デフォルトの名無しさん
2012/05/19(土) 06:15:45.68それは問題じゃない
要素への参照を受け取る時は気をつけないとハマるぞと警告している
foreach ($list as &$item) {} # $list = array(1, 2, 3);
$item = 99; # $list = array(1, 2, 99);
0204デフォルトの名無しさん
2012/05/19(土) 09:51:03.80それ見事にはまったことあるわ。
スコープのウンコさと参照のウンコさの合わせ技。
自分がやったのは単純な代入じゃなくてこんなんだった:
foreach ($list as &$item) { ... }
...
foreach ($list as $item) { ... }
0205デフォルトの名無しさん
2012/05/19(土) 10:15:01.96for(i=0; i<10; i++) {
if(・・・) break;
}
if(i == 10) {
printf("全部終わった");
} else {
printf("途中で終了");
}
これみたいなもんだろ?
変数がどこで宣言されてるか、考えましょうってだけの話じゃんか。
0206デフォルトの名無しさん
2012/05/19(土) 10:17:04.63> 要素への参照を受け取る時は気をつけないとハマるぞと警告している
ん? unsetの話だろ。
お前の話だと、
$list = unset か array(1, 2, unset) になるぞ。
0207デフォルトの名無しさん
2012/05/19(土) 10:55:44.770208デフォルトの名無しさん
2012/05/19(土) 11:12:27.2860%の人間はプログラミングの素質がない
http://cpplover.blogspot.jp/2012/05/60.html
0209デフォルトの名無しさん
2012/05/19(土) 11:21:35.02弊社のエブサービスが死んでしまって糞客に文句垂れられるかもしれんが、
そんなことはない、ログに残っていないで突っぱねよう
信頼、安全、安心のmongrelでございます、お客様。
やっちまっただよ 徹夜明けでの自宅での仕事はミスが多いね
来月からは会社で仕事しよう
0210デフォルトの名無しさん
2012/05/19(土) 11:22:24.630211デフォルトの名無しさん
2012/05/19(土) 11:22:46.850212デフォルトの名無しさん
2012/05/19(土) 11:30:09.70>>209
よくわからないけどとりあえずエブ鯖板にタレコミにいってくるお
0213デフォルトの名無しさん
2012/05/19(土) 11:31:36.51ごちゃごちゃ言う前に鯖起動しなおしたの?
0214デフォルトの名無しさん
2012/05/19(土) 11:37:55.63自分の頭で考えられない奴、論理を自分の都合で変える奴は
プログラマに向かないっつー話。
0215デフォルトの名無しさん
2012/05/19(土) 12:27:10.15くだらないブログをうのみにしないいで
自分の頭で考えましょう。
0216デフォルトの名無しさん
2012/05/19(土) 12:33:00.350217デフォルトの名無しさん
2012/05/19(土) 12:34:57.970219デフォルトの名無しさん
2012/05/19(土) 13:47:22.54ブログをコピーしなくても、なぜか同じ考えに到達できる人もいるよ
コピーしないと空白になる人やコピーしないとランダムになる人にはそれが分からない
0220uy
2012/05/20(日) 13:07:45.79require 'tk'
require 'sdl'
music = nil
SDL.init(SDL::INIT_AUDIO)
SDL::Mixer.open
etr=TkEntry.new
etr.pack
btnSet=TkButton.new
btnSet.text = "File Select"
btnSet.command{ etr.value = Tk.getOpenFile
music = SDL::Mixer::Music.load( etr.value ) }
btnSet.pack
root = TkRoot.new { title 'sound_player' }
sstr = %w!再生 停止 一時停止 再開 終了!
sfunc = [
lambda do SDL::Mixer.play_music(music,1) end ,# 再生
lambda do SDL::Mixer.halt_music end , # 停止
lambda do SDL::Mixer.pauseMusic end , # 一時停止
lambda do SDL::Mixer.resumeMusic end , # 一時停止を再開
lambda do exit end
]
sstr.each_with_index do | str , i |
button = TkButton.new
button.text = str
button.command = proc { sfunc[i].call }
button.pack 'side'=>'left'
end
Tk.mainloop
0221デフォルトの名無しさん
2012/05/20(日) 18:48:21.690222デフォルトの名無しさん
2012/05/20(日) 19:05:05.170223uy
2012/05/20(日) 20:02:33.74他言語使いの奴が>>220を他言語でさらに短く実装する流れにならないのはなんで?
このスレ何がしたいの?
0224デフォルトの名無しさん
2012/05/20(日) 20:26:56.76突然>>220貼ってもみなさんポカーンでしょ
0225デフォルトの名無しさん
2012/05/20(日) 21:10:07.870226デフォルトの名無しさん
2012/05/20(日) 22:29:20.72生まれて初めてモテた。
始めは罰ゲームでもしてんのかと思って拒絶していたら、
毎日花を一輪くれるようになった。 1ヶ月くらい続いて、
ちょっと本気かもしれないと思い始め、一緒に食事に行っ
たりした。
前から告白されていたのをずっと断ってたけれど、次に言
われたら受け入れようと思った。
食事の帰りに雨が降って、生まれて初めて男性を家に入れた。
「若いのにすごいね〜、持ち家なんて」
と言われたので、
「いいえ、両親から相続したんですけど、相続税のほうが高くて、
一生借金返済生活なんですよw」 と言った。
すると彼はやおら生まれてからの生い立ちを話し始めた。
物心つかない頃に両親に捨てられたらしい。里子として
今の里親のところに幼児院から出されたんだって。
彼の話を聞いていて私も涙が出てきて一緒に泣いた。
彼がひとしきり話した後、私も今までの想いが溢れ出
てきて彼に全部話しちゃった。お父さんお母さんに会え
なくなったと認めるのは辛すぎていつもいつも町に繰り出し
ては色々な人に迷子になってしまった私のお父さんお母さんが
今どこにいるか知る人を探したの。でも誰も知ってるわけないよね。
もうこの世にはいないんだもの。まさか墓前に立てば会いに行け
るなんて少女に教えるわけないよね。言えないよね。
すると彼は私の話しに同情してくれて男泣きに泣いたの。
私と彼はもうお互いに大号泣。
ウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!!
省略されました。続きを読むには私と彼のために泣いて下さい。
0227デフォルトの名無しさん
2012/05/20(日) 23:31:53.180228デフォルトの名無しさん
2012/05/21(月) 02:56:36.420229デフォルトの名無しさん
2012/05/21(月) 03:29:36.880230デフォルトの名無しさん
2012/05/21(月) 17:15:55.54use utf8;
use File::Spec::Functions qw(splitpath);
use Tk;
use SDL ':all';
use SDL::Mixer;
use SDL::Mixer::Music;
SDL::init(SDL_INIT_AUDIO);
SDL::Mixer::init(MIX_INIT_MP3 | MIX_INIT_FLAC | MIX_INIT_OGG);
SDL::Mixer::open_audio(44100, AUDIO_S16, 2, 4096) and die SDL::get_error();
my $music;
my $top = MainWindow->new;
foreach(
[選択 => sub{
my $file = $top->getOpenFile() or return;
$top->title((splitpath $file)[2]);
$music = SDL::Mixer::Music::load_MUS($file);
}],
[再生 => sub{ SDL::Mixer::Music::play_music($music, 0) }],
[停止 => sub{ SDL::Mixer::Music::halt_music() }],
[一時停止 => sub{ SDL::Mixer::Music::pause_music() }],
[再開 => sub{ SDL::Mixer::Music::resume_music() }],
[終了 => sub{ SDL::quit(); exit }],
){
$top->Button(-text => $_->[0], -command => $_->[1])->pack(-side => 'left');
}
MainLoop();
0231デフォルトの名無しさん
2012/05/21(月) 21:53:08.990232デフォルトの名無しさん
2012/05/21(月) 23:39:32.79(ql:quickload :ltk)
(ql:quickload :lispbuilder-sdl)
(ql:quickload :lispbuilder-sdl-mixer)
(defpackage mixer
(:use :anaphora :cl :ltk :sdl-mixer))
(in-package :mixer)
(with-ltk ()
(loop with music
for (text . command)
in `(("選択" . ,(lambda ()
(awhen (get-open-file)
(setf music (load-music it)))))
("再生" . ,(lambda ()
(when music
(play-music music))))
("停止" . ,#'halt-music)
("一時停止" . ,#'pause-music)
("再開" . ,#'resume-music)
("終了" . ,(lambda ()
(when music
(free music))
(close-audio)
(setf *exit-mainloop* t))))
do (pack (make-instance 'button :text text :command command) :side :left))
(sdl:with-init (sdl:sdl-init-audio)
(open-audio)
(mainloop)))
SDL-Mixerの終了方法がイマイチかもしれない。
0233デフォルトの名無しさん
2012/05/22(火) 00:15:53.91import pygame.mixer as mixer
import Tkinter as Tk
from tkFileDialog import askopenfilename
def playmusic():
mixer.music.load(entry.get())
mixer.music.play()
def quitplayer():
mixer.music.stop()
mixer.quit()
root.quit()
def setfilename(filename):
entry.delete(0, Tk.END)
entry.insert(0, filename)
root = Tk.Tk()
filename = None
frame = Tk.Frame(root)
frame.pack()
entry = Tk.Entry(frame)
entry.pack()
Tk.Button(frame, text="選択", command=lambda: setfilename(askopenfilename())).pack()
for txt, cmd in (("再生", playmusic), ("停止", mixer.music.stop),
("一時停止", mixer.music.pause), ("再開", mixer.music.unpause),
("終了", quitplayer)):
Tk.Button(frame, text=txt, command=cmd).pack(side=Tk.LEFT)
mixer.init()
root.mainloop()
0234デフォルトの名無しさん
2012/05/22(火) 00:18:45.00lambdaに一行しか書けないせいでplaymusicが関数定義になってしまったりと
もうちょっとうまいこと書けないのだろうかと思った。書きなおし歓迎
0235デフォルトの名無しさん
2012/05/22(火) 12:45:51.830236デフォルトの名無しさん
2012/05/22(火) 12:46:19.39短くて読み難いコードはいらんけど
0237デフォルトの名無しさん
2012/05/22(火) 12:51:29.75MPC-HC
Winamp
Foobar2000
けっこうあるぞ、分かれてるやつ…
0238デフォルトの名無しさん
2012/05/22(火) 13:16:54.45一時停止中に一時停止を押す
でどんな動作をするか想像が付かない
0239デフォルトの名無しさん
2012/05/22(火) 13:21:39.69いまのは知らないけど昔の家電はそんなだし。
0240デフォルトの名無しさん
2012/05/22(火) 16:26:53.57Winampとfoobar2000では再生中に再生を押すと曲を最初から再生し直す
後は特に意味なし
0241デフォルトの名無しさん
2012/05/22(火) 16:44:21.04|←(左向き三角) のようなボタンの方が自然かもな
0242デフォルトの名無しさん
2012/05/23(水) 08:16:12.45PythonのGuidoさんのことって履歴くらいしか知らない...
Guidoさんってどんな性格の方なんでしょうか?
優しい/気性が激しい、とか人間らしい情報をもっと知りたい
0243デフォルトの名無しさん
2012/05/23(水) 08:39:07.450244デフォルトの名無しさん
2012/05/23(水) 11:24:27.25取り繕っている人柄だけで判断すると痛い目みるぞ
0245デフォルトの名無しさん
2012/05/23(水) 11:55:43.05頭の中が、そして人となりが
透けて見えますね
0246デフォルトの名無しさん
2012/05/23(水) 15:04:46.990247デフォルトの名無しさん
2012/05/24(木) 08:27:02.92別にmatzの人格は誰も良いとは言って無いんだぞ?
むしろ >>242 も「人間らしい」と書いてるように
悪い面のよく目立つ人物だと言うのはRuby使いからも知られてるのよ
0248デフォルトの名無しさん
2012/05/24(木) 11:55:18.97なんでこんなに読解力の低い人間が多いのだろう
0249デフォルトの名無しさん
2012/05/24(木) 11:58:58.220250デフォルトの名無しさん
2012/05/24(木) 12:54:36.940251デフォルトの名無しさん
2012/05/24(木) 16:41:07.240252デフォルトの名無しさん
2012/05/24(木) 17:57:21.230253デフォルトの名無しさん
2012/05/24(木) 18:08:45.66言語仕様がクソだし、
低速なWebアプリしか作れない
Rubyも実質的に低速Webアプリ専用といっていい。
Rails風フレームワークが多数ある今、あえてはじめる意味も小さいと思う
Javaか、C#を覚えるのが一番効率がいい。
クライアントアプリ、高速なWebアプリ、SmartPhoneアプリなんでも作れる。
0254デフォルトの名無しさん
2012/05/24(木) 18:51:55.520255デフォルトの名無しさん
2012/05/24(木) 19:02:45.55そんなもののためにわざわざ別の言語覚えるのは非効率。
スクリプト言語は、遅いからWebアプリぐらいしか
実質的に使い道がないってこと。
0256デフォルトの名無しさん
2012/05/24(木) 19:12:04.41使い分けなんだよな、言語は
0257デフォルトの名無しさん
2012/05/24(木) 19:13:53.09それ、このスレじゃ禁句
0258デフォルトの名無しさん
2012/05/24(木) 19:14:19.30意外と少ないんだけどなぁ
0259デフォルトの名無しさん
2012/05/24(木) 19:14:25.560260デフォルトの名無しさん
2012/05/24(木) 19:22:38.17あれは書いてて快感が
0261デフォルトの名無しさん
2012/05/24(木) 19:48:33.25素のJavaScriptの酷さから解放された快感があるね
でも読む側は…
C#のLINQとか拡張メソッド、メソッドチェーンを使いだしたとき、"きもてぃー"って感じた
俺の場合は。
0262uy
2012/05/24(木) 20:35:27.27each_with_index.map
each_with_index.inject は天才だと思った
0263デフォルトの名無しさん
2012/05/24(木) 20:37:56.34たいていのことはなんでもできちゃって、しかも速い言語(C#やJava)が
あればスクリプト言語なんて不要だよ
スクリプト言語では実現できないことはたくさんあるが、
スクリプト言語じゃないとできない開発なんてほぼない
0264デフォルトの名無しさん
2012/05/24(木) 20:59:11.850265デフォルトの名無しさん
2012/05/24(木) 21:18:46.51まずコンパイルの手間が無くソースをそのまま実行できるのは
スクリプト言語の大きな利点
たとえばC/C++インタプリタのCINTみたいのもあるけど、
これは例外的な扱いだろな
こんな基本的な事に気が付かないなんて、
WindowsのGUIしかしらないお子様だろ
0266デフォルトの名無しさん
2012/05/24(木) 21:30:07.190267デフォルトの名無しさん
2012/05/24(木) 21:34:15.74速度が遅いからアプリ開発に使いものにならない
高速なdebugができない
実行時に初めてエラーがでるなど、スクリプト言語は開発効率が悪い
0268デフォルトの名無しさん
2012/05/24(木) 21:37:28.84267にかいたが、コンパイルなんてのはそれなりのPCで
SSD構成であればすぐ終わる。
スクリプト言語では、デバッグの効率が悪いから、
コンパイルにかかる時間よりはるかに多くの時間を失う。
タイピングしてる時間よりも、デバッグに費やしている時間のほうが
はるかに長い。
これに気がつかないことこそお子様だよ
0269デフォルトの名無しさん
2012/05/24(木) 22:19:12.76お子様が大好き
0270uy
2012/05/24(木) 23:46:45.18自分バカですとか言ってるようなもんだよね・・・
「動的言語での開発じゃ周りがついてこない」ならわかるけどw
0271uy
2012/05/24(木) 23:54:13.33本当に動的言語での開発で、速度がネックになってどうしようもならなった事あんの?
たとえばどこで?
0272デフォルトの名無しさん
2012/05/25(金) 00:15:34.22他人(過去の自分)の書いたコードを修正する時かな。
メソッド名とかを変更しようと思っても
影響範囲がどこまで有るか人間が調べないとわからない。
同じ名前だけど違うメソッドとか有るので検索した結果を
一つ一つ調べて修正するまでが遅い。開発のネックになるよ。
静的型付け言語だと、メソッド名を選んで一つ変更すれば
プロジェクト全体の変更が自動で行われる。確実に速いね。
0273デフォルトの名無しさん
2012/05/25(金) 00:23:00.12さっそくRuby信者が登場w
トラフィックがどうしようもならなくなってから考えるのは低レベル。
それよりずっと前にレスポンスが悪い状態になってる。
TwitterがRuby捨てたのも有名な話。
FacebookなんてPHPで始めてしまったために全部開発しなおしになった。
そういう事例があるから、海外の最近のインターネットサービスの企業は、
最初からスクリプト言語を避けてる。
スケーラビリティを考えて、最初からJava, C#, Scalaで作る。
いまやRailsに影響受けたフレームワークが多数あるから、開発生産性も悪くない。
日本はあいかわらずPHPばっかり
せっかくJava選んでもStrust1とか化石フレームワークつかってたりな
日本は、言語もフレームワークも時代遅れ。
0274デフォルトの名無しさん
2012/05/25(金) 00:35:54.34Ruby厨もなにもここスクリプト言語同士でやりあうところなのに
コードも書けないのにドヤ顔でそこいらのブログに書いてあることをつらつら並べられてもつまらん
0275デフォルトの名無しさん
2012/05/25(金) 00:53:32.00暗号化処理で
あと枝狩りとかオセロゲームで
0276デフォルトの名無しさん
2012/05/25(金) 01:04:17.57ここでスクリプト言語の争いやってるってことは、
このスレのほとんどのやつはスクリプト言語しか使えないってこと。
JavaやC#はまったく知らないひとが大半だろう。
そこらのブログに書いてある?
URLあげてみてくれ
0277デフォルトの名無しさん
2012/05/25(金) 01:06:23.980278デフォルトの名無しさん
2012/05/25(金) 01:09:30.03フロントはどこも変わらず
Twitter=Rails
Facebook=PHP
Amazon=Perl
だろ。
バックは書き換えられてるだろうな。
フロントPHPちょっとJavascriptがっつり、バックJavaとか多くね。
0279デフォルトの名無しさん
2012/05/25(金) 01:10:06.970280デフォルトの名無しさん
2012/05/25(金) 01:17:56.330281デフォルトの名無しさん
2012/05/25(金) 01:19:14.11TwitterもFacebookもRubyやPHPをこの世から消滅させろとか言ってないのに
0282デフォルトの名無しさん
2012/05/25(金) 01:33:38.42>>280
Objective-Cは速いし、化ける可能性あるな
まだ定番のWeb appilication frameworkがないようだけど
スクリプト言語より将来性ありそうだ
SmartPhoneまで扱える汎用性を考えたら、
Java, Objective-C, C#.net, VB.netとかだな
>>278
FacebookのPHPは独自ツールでコンパイルされてると聞いた。
実質的にC言語だと思う。
>>279
PHP大好きの楽天はもっさり。ページ移動に3秒とかざら。
CyberAgentはAmebaでMongoDB(NoSQL)使ったり、新しい技術使ってるイメージ。
Mixi, グリーとかなに使ってるんだろ。
0283uy
2012/05/25(金) 01:55:52.41実行速度のことを言ったんだけど、
メソッド名の変更は、動的言語では正しく置き換えるのは厳しいな
でも別にそれ古いメソッドも残して、古いほうよばれたらデバッグ時に警告でるようにすればいいだけじゃね
0284uy
2012/05/25(金) 02:06:17.74暗号化のロジック部分だけ静的言語でかけばいいんじゃない
オセロは重くなる箇所なんてねーだろ
AIにしたって定石パターン拾ってくるだけ
枝狩りって何のこと言ってるのか
0285デフォルトの名無しさん
2012/05/25(金) 02:13:15.46あなたはRuby以外で、どの言語つかったことあるの?
リファクタリングは、タイプセーフな言語のが効率よくできるのは確かだよ
型の記述なんて1個2秒くらいなんだからStaticで書いたほうが
結局、時間の節約になるんだよ。
仕様変更あっても、IDEでさくさく直せる。
>古いほうよばれたらデバッグ時に警告でるようにすればいいだけじゃね
「コンパイルが不要」ってスクリプト言語のお決まりのセールストークだけど、
型宣言をさぼると、そうやって他のところでしわ寄せが来る。
その分、テストプログラムの作成やらで時間がとられる。
0286デフォルトの名無しさん
2012/05/25(金) 02:22:23.30未完
0287デフォルトの名無しさん
2012/05/25(金) 02:53:39.89だから否定するなっての。しかもここはスクリプト言語スレなんだからC#もJavaもスレ違いだ。
0288デフォルトの名無しさん
2012/05/25(金) 02:54:54.80動的言語は遅いってことになるんじゃないの?
で、反論できなくなれば、そこのロジック部分だけ静的言語
で書けばいいんじゃないって言い続ければ動的言語は遅いってことにならないなw
あほかw
AIとかそんな単純じゃねーよ
だったらお前が書いてみろよ
大体その定石だって作るのは静的言語だろうが
静的言語の成果物を元にしないと動的言語の方で
十分高速なものを作れないんだったら、
やっぱり動的言語は遅いの
0289デフォルトの名無しさん
2012/05/25(金) 03:14:20.71データ層の重さと比較したら誤差。
成功した会社はデータ層を、金が集まったら適当な言語・技術で書き直してる。
データ層以外は思ったより、そのまま使っている会社が多い。
どんな言語で開発しようと、当あたって金ができたら、考えればよい。
むしろ超重量級で開発してメジャーになったが
スケールできなくてコケたものなどがあったら教えてほしい。
0290デフォルトの名無しさん
2012/05/25(金) 03:32:42.46> でも別にそれ古いメソッドも残して、古いほうよばれたらデバッグ時に警告でるようにすればいいだけじゃね
警告でたあと、どっちみち変更しないといけないじゃん。
なんで、そんな面倒なことしなくちゃならんの?
あ、動的言語だからか。
0291デフォルトの名無しさん
2012/05/25(金) 03:35:42.18テストを書いたって、エラーが起きたことが分かるだけで
何が原因でエラーになったかはわからんのだよ。
エラーの原因を調査するのにも時間が掛かる。
それにテストってのはエラーがあることは証明できるが
エラーがないことの証明はできないんだよ。
テストってのを本当に知っていれば分かるはずだよね?
なんでテスト万能だと思ってるの?
テスト書くにも時間が掛かる。省けるテストは省きましょう。
0292uy
2012/05/25(金) 03:46:04.73ruby以外で使ってるのはC++
でも他言語の構文も概念もおおよそは把握してるよ
そのメソッド名変更の件については一考する
動的言語が考えなければいけない箇所だ
>>288
はい?オセロごときのAIが単純じゃないって、寝ぼけてんの?
まぁゲームアルゴリズム何にもわからん子がAIなんて書いたら
大変な事になるんだろうけど
携帯アプリでもオセロや将棋が動いている所を見ると、それほど重い処理はいらないように見えるよね
>で、反論できなくなれば、そこのロジック部分だけ静的言語
>で書けばいいんじゃないって言い続ければ動的言語は遅いってことにならないなw
すげー勘違いだな、
動的言語を使ってても、全てのメソッドやクラスを静的言語で部分実装できるものではない
動的言語のソースコードから静的言語でネイティブに吐き出せる部分は限られてくるし、
下手に吐き出すと余計に遅くなる事もある、
暗号化について完全に吐き出せる箇所だから、遅くなるんだったら静的言語で書けって言ってんだよ
どういう暗号化のアルゴリズムを描いたら、動的言語で処理が追いつかなくなるのか知らんけど
ろくでもないソースコードかいているんじゃなければいいな
0293uy
2012/05/25(金) 03:54:41.18動的言語遅いとか言ってる奴は
普通のプログラマからしたら考えられないくらいの遅いコードを書くから
今まで高速な言語のおかげでそのゴミカスアルゴリズムが、影響を及ぼす事はなかったけど
ちょっと速度制限のある動的言語でソース書かせると、そこら辺が如実に表れてしまうのではないか
ふむ、まともなアルゴリズムがかけないのならば仕方がない
動的言語への移行を推奨していくのも難しいところだな
0294285
2012/05/25(金) 04:08:13.25必要な場所は、テストコードは書いてるよ
静的なら凡ミスは全部コンパイラ、IDEが指摘してくれるが、
動的だとコンパイラ、IDEでエラー拾えないから、テストの時間が長くかかる
>>289
書き直すのは時間もコストもかかるから、最初からある程度高速な言語で
やろうって企業も増えてる。
JavaもC#も、最初の学習コストは少し高いかもしれないが、開発生産性は
決して低くないよ。
上に書いたようにリファクタリング、デバッグの時間が大幅に短くなるから。
>スケールできなくてコケたものなどがあったら教えてほしい。
スケールできなくてこけるような企業は、有名になってないw
0295デフォルトの名無しさん
2012/05/25(金) 04:10:37.83ベンチマークの結果から
動的言語が遅いのは明らかだよ。
その遅さが問題になるかどうかは、何に使うかで決まる。
アクセス数1日に1万人のサイトを1台のサーバーで運用とかいうような
小さな規模では問題にならないだろう。
だが1台のサーバーで100人、1000人以上を収納するような
ウェブサービスなら問題が発生する。
遅くても問題無いというのは、単に君が小さな規模のものしか作ってないだけの話。
アルゴリズムは同じ人が作るんだから言語が違っても
同じ物が出来るんだから、まともなアルゴリズムが書けないとか
関係ない話。まともだろうがまともじゃなかろうが
同じアルゴリズムで速度に差が出る。
0296デフォルトの名無しさん
2012/05/25(金) 04:19:29.96静的型付け言語だと、動的型付け言語に比べて修正のコストが大幅に低い。
コードの量よりも、修正の際の調査のほうが時間かかるからね。
静的型付け言語のコードが冗長といっても決まり文句みたいなものだから
コードの行数がコードリーディングの負担になることはないし。
0297デフォルトの名無しさん
2012/05/25(金) 07:05:03.77言ってる奴って、実はコード全く書けないから
5分くらいで書ける簡単なお題出すと
追っ払えるよ、マジおすすめ
静的型付け言語の方が効率良いはずなのに、5分で書けるコードが
一日待っても二日待っても出てこないw
え?俺等が5分でやる仕事に何日もかかるの?みたいな
0298デフォルトの名無しさん
2012/05/25(金) 07:11:05.090299デフォルトの名無しさん
2012/05/25(金) 07:24:56.72コーディング
静的 > 動的
リファクタ
動的 > 静的
デバッグ
動的 > 静的 (コンパイル時間とか考慮すると微妙?)
一人でちゃちゃっと作る小規模なのは静的で、多人数で大規模なのは動的でって感じなっちゃう?
0300デフォルトの名無しさん
2012/05/25(金) 07:32:14.53おい、静的と動的が全部逆になってねーか?
0301デフォルトの名無しさん
2012/05/25(金) 07:34:56.86マジだ…死にたい
コーディング
動的 > 静的
リファクタ
静的 > 動的
デバッグ
静的 > 動的 (コンパイル時間とか考慮すると微妙?)
0302デフォルトの名無しさん
2012/05/25(金) 08:12:24.43それは追い払ってるんじゃなくてHaskellを呼び寄せてるんだぜ。
JavaをHaskellに変更するコストは、PerlをCに変更するコストよりも大きい。
0303デフォルトの名無しさん
2012/05/25(金) 08:20:53.600304デフォルトの名無しさん
2012/05/25(金) 08:24:39.82反論してくるかとおもったが、静的の効率のよい面を支持してくれる人もいるようだなw
>>301
C# (Visual Studio)は差分でビルドできるからコンパイル時間は気にならないな。
一瞬で終わるし
0305デフォルトの名無しさん
2012/05/25(金) 08:28:45.77そんな一瞬でコンパイルの終わるC#使いのあなたに>>220
TkやSDLでなくても.NETでおkよ
0306デフォルトの名無しさん
2012/05/25(金) 08:37:18.150307デフォルトの名無しさん
2012/05/25(金) 08:45:45.64えとね。静的型付けの方が開発効率がいいというのは
多人数で行う中小規模の開発の話なんだ。
トラックのほうが速く多くのものを運ぶことが出来るでしょ?
でも小さな手荷物を近くのコンビニまで運ぶのなら
手で運んだほうが速いんだよ。
5分でここに書けるコードと、
実際のコードでは極端に差があるってのは
わかるよね。
0308デフォルトの名無しさん
2012/05/25(金) 08:48:38.04ああそうか。あぼんしてる人もいるのね
>>230,232,233のRuby実装
0309デフォルトの名無しさん
2012/05/25(金) 09:37:03.05携帯とかじゃなくてPC用のオセロゲームを考えていたんだけど
こっちはまあいいや。
静的言語の成果物を元にしないと動的言語の方で
十分高速なものを作れないんだったら、
やっぱり動的言語は遅いの
0310デフォルトの名無しさん
2012/05/25(金) 09:44:53.11すべて保持するわけにはいかないからね
で、探索も全解探索だと、時間がかかりすぎて実用的じゃないから、適切な深さで探索の枝を打ち切る
数手を探索する程度でもそれなりに強い
0311デフォルトの名無しさん
2012/05/25(金) 10:57:03.16静的型推論付き>動的>静的型推論なし
かなあと思う、単純な型なら推論なしでもいいが
ジェネリクスやテンプレート、高階関数(関数ポインタ)などを複数含む型になると
流石に思考の妨げになってしまう印象
0312デフォルトの名無しさん
2012/05/25(金) 11:04:09.140313デフォルトの名無しさん
2012/05/25(金) 11:09:58.240314デフォルトの名無しさん
2012/05/25(金) 11:32:24.900315デフォルトの名無しさん
2012/05/25(金) 12:03:36.310316uy
2012/05/25(金) 12:52:56.00>同じ物が出来るんだから、まともなアルゴリズムが書けないとか
>関係ない話。まともだろうがまともじゃなかろうが
動的言語であろう許容範囲内の速度が出ればいいわけで
それを出せない場合において初めて静的言語の導入を考えるんだろが
あと、同じ物は出来ないだろ
静的言語でかかれたソースコードを動的言語でそっくりに書き直す事は出来るだろうが、
それじゃ動的言語を使う意味が薄すぎる
ちなみにその逆は出来ないと考えたほうがいいよ
0317uy
2012/05/25(金) 13:00:15.96だ〜か〜ら、オセロのどこが複雑なんだよって
PC版オセロとかいっても
どうしてもAIが遅いとかいって勘違いをして処理速度を考えるなら
オセロ程度なら全ての譜面の状態をオンメモリで記録したとしても
10MBいかねーんじゃねーの?事前計算のAIにしとけばAIの処理速度なんて0だろがアホか
将棋や麻雀でそれは厳しいだけでオセロごときじゃ余裕
次からは将棋や麻雀を例にだしておけ
それと、まだ勘違いしてんの?
動的言語っていうのは、「静的言語で作られたライブラリを使いやすくする為の機構」だと思えよ
標準ライブラリとかRubygemsがすべてrubyだけでかかれてるとか思ってるのか・・・
0318uy
2012/05/25(金) 13:04:04.00RubyをアンチしてPython使うぜみたいな奴ならわかるけど
動的言語を全批判とかwお話にならないわ
0319uy
2012/05/25(金) 13:18:16.42そこら辺のゲームで実行速度が問題になることはないような気がしてきた
この話は忘れたまえ、パズルゲーとボードゲーは動的言語で書ける
0320デフォルトの名無しさん
2012/05/25(金) 13:36:23.17オセロにしても将棋にしても
すべての盤面を記憶してるわけでもないし、
毎回全解探索してるわけでもないだろ?
全解探索せずに探索を打ち切ること=枝刈り
動的言語で書ける・書けないという話はしないが
全パターンが10MBで収まるとかオセロをナメすぎ
0322uy
2012/05/25(金) 13:50:52.71強さモード3つあって
20kb程度で動くオセロのアプリあるけど
どうやって動いてるんだろうな
0323デフォルトの名無しさん
2012/05/25(金) 13:53:08.25オセロは8*8=64マスあるが各マスに対してコマ無し/白/黒の3通りのパターンがあるから
盤面の状態は3^64パターン。(無効なパターンもあるけど)
で1パターンについて何bit使って打つ手を表すか知らんが
適当にコレ*無効パターンの割合=1で打ち消しあうとしよう
すると必要な容量は3^64bits = 4 * 10^23 MB。ほんと10MBとか何寝ぼけたこと言ってるんだよって話
0324デフォルトの名無しさん
2012/05/25(金) 13:54:22.85型という観点からPrologを見ると、実は無限のバリエーションで
データを授受できる。ところが実際のPrologプログラミングでは
構造体はリストだけで、ほとんどの引数にはスカラー型データが
くる。これはPrologプログラマがPrologをRDBであると意識して
いるからだと思う。一応は、整数、実数、文字列の区別があるが
Prolog教科書の索引に型という項がないことからも分かるよう
に、全く型について意識されることはないのがむしろ特長。
0325uy
2012/05/25(金) 13:55:28.10そんなレベルのアルゴリズム思い浮かべてるから
10MBという大容量があっても足りなくなるんだろ
ドカタはおそろしい
0326デフォルトの名無しさん
2012/05/25(金) 14:00:01.38オセロ程度なら全ての譜面の状態をオンメモリで記録したとしても10MBいかねーんじゃねーの?
なんて低レベルな発想が思い浮かぶだなんてこれだからドカタは恐ろしい
0327デフォルトの名無しさん
2012/05/25(金) 14:00:26.61すべて局面が10MBに収まるなら
誰かがフリーソフトの一部として配布するだろう?
実際はそんなものはない。
最も有名なオセロソフトWZebraにも、
ある程度盤面のデータ(book)が入ってるが、
それでも探索の深さをちょっと増やすだけで
コンピュータが1手打つまで結構待たされる。
自分で体験してみろ。
http://www.radagast.se/othello/download.html
0328uy
2012/05/25(金) 14:02:00.63ワロタwwwww
言ってるそばから
まずは隣接しているコマ同士の譜面の全パターンの抽出
で、その中から「ゲームルール上」ありえる譜面のみを抜き出す
で、全部を抜き出せばおそらく俺のアバウトな計算では10MB程度と、でた。
あとはさぁ、譜面を回転させることによって4分の1には簡単に出来るんだから
せめて
3**64 / 4 はやっとけよ
この程度も一瞬でひらめかないレベルなんか
0329デフォルトの名無しさん
2012/05/25(金) 14:06:59.820330uy
2012/05/25(金) 14:07:47.29また古いもの持ち出してきたな
お前の中ではゼブラが最強なんだろう
よかったな
0331デフォルトの名無しさん
2012/05/25(金) 14:13:46.390332uy
2012/05/25(金) 14:13:59.13流石に、ドカタだな
ゲーム機や、PCスペックが今よりもはるかに低い大昔から
動かせてた種類ゲームだというのに
ドカタは10MBもあって作れないのか
3**64の譜面を記憶させないとダメなのか・・・w
つれると思ったよそこ、絶対それ考えてると思った
低脳の発想は読みやすい
0333デフォルトの名無しさん
2012/05/25(金) 14:16:56.68・序盤の定石を記憶
・以降は数手先読み
このくらいの処理なら容量食わないしそれなりに強い
0334uy
2012/05/25(金) 14:24:59.290335デフォルトの名無しさん
2012/05/25(金) 14:26:38.080336uy
2012/05/25(金) 14:29:37.82┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │○│●│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │●│○│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
0337デフォルトの名無しさん
2012/05/25(金) 14:30:49.79┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │●│●│●│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │●│○│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
0338デフォルトの名無しさん
2012/05/25(金) 14:32:21.10オセロの話は全て俺が間違ってた
> 動的言語っていうのは、「静的言語で作られたライブラリを使いや
> すくする為の機構」だと思えよ
だから、こう思うのは、「動的言語の実行速度が遅い」ためだろーが
話がずれてきてるだろーが、馬鹿が理解するのは無理か
> あと、「動的言語は遅い!」とかいってる奴も
> 本当に動的言語での開発で、速度がネックになってどうしようもならなった事あんの?
0339デフォルトの名無しさん
2012/05/25(金) 14:34:17.22┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │●│●│●│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │●│●│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │●│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
0340デフォルトの名無しさん
2012/05/25(金) 14:34:58.20その譜面データベースのURLを示すか、ありうる譜面が何通りあるかを書くくらいしろ
0341デフォルトの名無しさん
2012/05/25(金) 14:47:15.94C, C++なんて一番めんどくさい言語だろ
あれは嫌いになって当然だ
「使ってる」じゃなくて「使っていた、学習していた」だろう?
>そのメソッド名変更の件については一考する
>動的言語が考えなければいけない箇所だ
C# + VisualStudioでは、メソッド名の変更は
一箇所変更して、「名前の変更」をクリックするだけで全部置き換わる。
しかも一瞬で。
こういうの考慮すると、開発生産性はスクリプト言語の完敗だよ
多少、タイプ文字が少ないからといって開発生産性が高いと
思い込んでる人はわかってないなぁ、と思うわ
0342デフォルトの名無しさん
2012/05/25(金) 14:48:22.650343デフォルトの名無しさん
2012/05/25(金) 14:49:42.850344デフォルトの名無しさん
2012/05/25(金) 14:50:09.79ふ〜んw
0345デフォルトの名無しさん
2012/05/25(金) 14:51:46.800346デフォルトの名無しさん
2012/05/25(金) 14:55:23.670347デフォルトの名無しさん
2012/05/25(金) 14:56:06.17eval("greet('hi')")
とか考えると無理なような気もするけど
世の中には頭いい人がいるからなんとかなったりして
0348デフォルトの名無しさん
2012/05/25(金) 14:57:11.130349デフォルトの名無しさん
2012/05/25(金) 15:07:59.95お前がかかわるプロジェクトで、そこまでスケーラビリティを考える必要なんて無いだろ
0350デフォルトの名無しさん
2012/05/25(金) 15:11:45.89何も考えずに書いちゃったけど一般的に変数の型が実行時に決まらないことにはどうにもならないね
0351uy
2012/05/25(金) 15:34:24.80そもそも動的言語を採用するなら最初から静的言語との併用が大前提
動的言語で開発っていったのに静的言語使ってずるいーw とかそういうレベルなの?
両方使うに決まってるだろ
>>341
速度の事を考えるときと、WinAPIを使うときにC++を使う
つうか、C#.NETのほうがいいことは分かってるけど、こちら側になれてると移行するのが面倒くさい
0352uy
2012/05/25(金) 15:37:32.73こんなソースばっかりだよ
def search_down_all_test sym = /(.*)/ , o = self
o.task.each.inject(Hash.new) do | stack , ( key , value ) |
stack.merge! value.search_down_all_test sym unless value.task.empty?
next stack unless key =~ sym
stack.merge({ key => value })
end
end
0353デフォルトの名無しさん
2012/05/25(金) 15:38:17.83Rubyを中間言語やバイナリにコンパイルできるものが、過去にいくつかあった気がするが
それらは今どうなってるの?
0354デフォルトの名無しさん
2012/05/25(金) 15:38:48.210355デフォルトの名無しさん
2012/05/25(金) 15:54:02.32本当に必要な箇所でしか()使わないという徹底振りがすごいな
0356デフォルトの名無しさん
2012/05/25(金) 15:57:03.82おまえら本当にこんなんで、Webあぷぷをこさえるおつもりか。
http://mew.org/~kazu/material/2012-yesod.pdf
0357デフォルトの名無しさん
2012/05/25(金) 15:59:52.11PrologとC++/Cで関数/述語を互いに呼び出したり出来るよ
0358デフォルトの名無しさん
2012/05/25(金) 16:38:23.860359デフォルトの名無しさん
2012/05/25(金) 19:57:56.35RubyとPythonを使い始めたら滅多にC#を使わなくなってしまった
0360デフォルトの名無しさん
2012/05/25(金) 20:34:33.26Mix-inとか早く他言語でも実装されたらいいのに
こうすりゃできるぜとかじゃなくて、使いやすい形での実装を求む
0361デフォルトの名無しさん
2012/05/25(金) 20:57:42.38その場合、mix-inより自由度がある分、使用にはRubyと比べて注意が必要か。
0362デフォルトの名無しさん
2012/05/25(金) 21:08:08.99オブジェクト自身へのextendは厳しい
0363デフォルトの名無しさん
2012/05/25(金) 21:08:18.75従業員代表は認められませんでした。
管理監督者の適否まで判断されませんでした。
付加金は認められませんでした。
時間給の計算方法は
月給÷(所定労働日数×7時間)
でした。
30時間分の残業代込みとの主張は認められませんでした。
今回とは全く別件のことで、
「裁量労働相談室」の担当者の名前をちょっと知りたく思っています。
実際のメール等、何かあれば全部下さい。
現在でも特に何もありませんよね。
安全安心です。
日本国内在住です。住所は米子市のままです。
今回は郵便などでも問題ありません。
本日から一週間(6月1日)が目安です。
また、お願いします。
一日千秋の思いで待ってますから。。。
(´・ω・`)ショボーン
(´・ω:;.:...
0364デフォルトの名無しさん
2012/05/25(金) 21:21:42.12違いはどう解釈すればいいのかね
0365デフォルトの名無しさん
2012/05/25(金) 22:53:52.24PHPはオブジェクト指向言語の代表格なのでPHPを先に学習すると
JavaとかC#とか簡単に覚えられるし、これからはPHPの高い信頼性を
生かして他の言語で作られたシステム、特に銀行系のシステムが
PHPに置き換えられていくと会社の先輩から聞きました。
0366デフォルトの名無しさん
2012/05/25(金) 23:04:26.93interface継承がない動的型付け言語がmixinにこだわるのは分からなくもない
静的型付け言語で似たようなことを狙う奴は空気読めない
0367デフォルトの名無しさん
2012/05/25(金) 23:05:25.37釣りだろうけど、いいかげんにしろw
クソ設計で有名なPHPはWebにしか使えないだろw
基幹業務に低速なスクリプト言語なぞ使わない
JavaやC#使うことがあってもPHPはありえん
0368デフォルトの名無しさん
2012/05/25(金) 23:14:46.74静的型付け言語であっても、実装を共有してかつ型を合わせたいけど
ダイヤモンド継承みたいな複雑な事態は避けたい場合には
現状では、制限された多重継承としてmixinかtraitを使うしかないんじゃないの
Rubyでmixinが実際に多用された結果、
有効だけどいくつかのケースで問題がある事が分かったらしく
最近はオープンクラス問題を含めて解決策が検討されてるっぽいが
0369デフォルトの名無しさん
2012/05/25(金) 23:23:40.05あってのことだからな。
きちんと設計できてれば多重継承なんて必要ない。
Rubyは劣化版オブジェクト指向言語だな
0370デフォルトの名無しさん
2012/05/25(金) 23:23:42.90http://kohada.2ch.net/test/read.cgi/php/1337172256/247n-
0371デフォルトの名無しさん
2012/05/25(金) 23:31:20.83has-a で実装を共有して is-a で型を合わせる
has-a を禁止されたら多重継承を使うしかないが、現状では禁止されていない
0372デフォルトの名無しさん
2012/05/25(金) 23:50:59.95おや?
Java8で実装を伴ったInterfaceが書けるようになるのはどうしてかな?
0373デフォルトの名無しさん
2012/05/26(土) 00:07:18.720374デフォルトの名無しさん
2012/05/26(土) 00:43:42.53それが煩雑だっていう面もあるんじゃない
デザインパターンで言うと、Template MethodよりStrategyのほうが
移譲を使っていて柔軟性はあるけど……っていうような?ちょっと違うかも
0375デフォルトの名無しさん
2012/05/26(土) 01:04:43.17> PHPを覚えると金融機関のシステムやクラウドサービスが作れるようになりますか?
金融機関ならCOBOLでしょう?
PHPだとFacebookを作れますよ。
0376デフォルトの名無しさん
2012/05/26(土) 01:07:45.36>Java8で実装を伴ったInterfaceが書けるようになるのはどうしてかな?
ですよねー
0377デフォルトの名無しさん
2012/05/26(土) 01:15:19.02FacebookのPHPは嘘
コンパイルされてる別物だから実行速度が違う
0378デフォルトの名無しさん
2012/05/26(土) 01:17:03.98C言語をコンパイルすると機械語になるけど
機械語を覚えるわけじゃないでしょ?
覚えるのはC言語だよね。
PHPをコンパイルすると○○になるけど
○○を覚えるわけじゃないでしょ?
覚えるのはPHPだよね。
0379デフォルトの名無しさん
2012/05/26(土) 01:20:01.60FacebookのPHPコンパイラ使ったことあって言ってるの?
0380デフォルトの名無しさん
2012/05/26(土) 01:23:15.12>FacebookのPHPは嘘
>コンパイルされてる別物だから実行速度が違う
その理屈でいくと、内部でJITコンパイルしている処理系は全部別モノということになる。
つまりおまえの理屈がおかしい。
0381デフォルトの名無しさん
2012/05/26(土) 01:27:26.00使ったこと有る
使ったこと無い
この2つ答えに対する君のレスを
2つ書いて下さい。
0382デフォルトの名無しさん
2012/05/26(土) 01:28:35.65何の関係がるんだろうか?
0383デフォルトの名無しさん
2012/05/26(土) 01:29:12.77あんなトラフィックのサイトはスクリプト言語で動かないってのw
これだからこのスレの住人はwww
0384デフォルトの名無しさん
2012/05/26(土) 01:31:35.81人口無能にレスつけてる気分になったのでもういいです
0385デフォルトの名無しさん
2012/05/26(土) 01:37:59.550386デフォルトの名無しさん
2012/05/26(土) 01:41:25.99無知は恥ずかしいよ。
0387デフォルトの名無しさん
2012/05/26(土) 01:44:16.67型付けが静的か動的か、あるいはスクリプト言語かってのは別の概念
例えばJavaは一般的に仮想マシンで実行される静的型付け言語
Common Lispはコンパイラ付きの動的型付け言語(+オプションで型指定できる)
組み合わせは割となんでもある
0388デフォルトの名無しさん
2012/05/26(土) 01:44:49.12遅くても問題ない速度で動けば
使える言語なのだって。
0389デフォルトの名無しさん
2012/05/26(土) 02:00:26.12問題ないと思ってるのは自分だけ
少しでも早くhttpのレスポンスを返すことにプライドを持つべきだろ
タイムアウトしなければいいとかいう低次元すぎる
>>386
wikipediaなんて99%以上のリクエストがただの参照で
データ更新してない。
個人ごとに違うデータ見せる必要がないから、たいていキャッシュから返せる。
こんなサイトは、簡単にスケールアウトできる。
0390デフォルトの名無しさん
2012/05/26(土) 02:01:25.15PHPなんですよね?
0391デフォルトの名無しさん
2012/05/26(土) 02:02:24.39いやFacebookの開発言語は普通にPHPだよ。独自開発したPHP処理系を使っているというだけで、言語はPHPそのもの。
0392uy
2012/05/26(土) 02:06:16.210393デフォルトの名無しさん
2012/05/26(土) 02:08:24.040394デフォルトの名無しさん
2012/05/26(土) 03:02:17.630395デフォルトの名無しさん
2012/05/26(土) 03:03:48.730396デフォルトの名無しさん
2012/05/26(土) 03:19:33.350397デフォルトの名無しさん
2012/05/26(土) 04:20:54.920398デフォルトの名無しさん
2012/05/26(土) 05:30:03.760399396
2012/05/26(土) 07:31:51.570400デフォルトの名無しさん
2012/05/26(土) 07:41:46.15夜はまだ始まったばかりだ
0401デフォルトの名無しさん
2012/05/26(土) 08:29:41.340402デフォルトの名無しさん
2012/05/26(土) 11:29:09.47> >>388
> 問題ないと思ってるのは自分だけ
>
> 少しでも早くhttpのレスポンスを返すことにプライドを持つべきだろ
> タイムアウトしなければいいとかいう低次元すぎる
>
> >>386
> wikipediaなんて99%以上のリクエストがただの参照で
> データ更新してない。
> 個人ごとに違うデータ見せる必要がないから、たいていキャッシュから返せる。
> こんなサイトは、簡単にスケールアウトできる。
つまり、簡単にウェブサイトを作れるPHPが優れてるって事だよな?
だいたい、速度を言い始めたら、スクリプト言語がJavaやC#に勝てるわけないんだし。どんぐりの背比べだ。
0403デフォルトの名無しさん
2012/05/26(土) 11:39:53.620404デフォルトの名無しさん
2012/05/26(土) 11:40:23.380405デフォルトの名無しさん
2012/05/26(土) 12:01:43.06ウィキペディアといえば、マージソートの記事、書き換わってるな。
0406デフォルトの名無しさん
2012/05/26(土) 12:19:14.750407デフォルトの名無しさん
2012/05/26(土) 12:20:20.520408デフォルトの名無しさん
2012/05/26(土) 12:27:40.93402の後半理解できなかったか
やっぱりスクリプト言語厨は頭悪いなw
ほぼ静的なコンテンツ用のサイトは、簡単にスケールアウトできるし
その場合は言語などほとんど関係ないってことだ。
wikiの場合、ほとんどのユーザがログインしないで使うだろ。
ほとんどは、検索ワードに対する内容をただ返しているだけ。
一方、Facebookなどは情報の更新が多く、さらに個人ごとに
まったく違う情報を表示させる必要がある。
こういうサイトのスケールアウトはwikiのように簡単にはいかない。
あらゆる高速化の手段使ってる。
>簡単にウェブサイトを作れるPHPが優れてるって事だよな?
違う。高機能なサイト、高トラフィックのサイト、レスポンスの速いサイトを
つくろうとするとスクリプト言語だと逆にたいへんになる。
もしくは不可能になる。
スクリプト言語は覚えることが多少少ない代わりに、
他の面で苦労する羽目になる。
0409デフォルトの名無しさん
2012/05/26(土) 12:41:09.280410デフォルトの名無しさん
2012/05/26(土) 12:54:53.040411デフォルトの名無しさん
2012/05/26(土) 12:57:20.810412デフォルトの名無しさん
2012/05/26(土) 13:04:53.310413デフォルトの名無しさん
2012/05/26(土) 13:28:47.90数万台サーバを扱ってて、数千台まで減らせるのだったら考えるだろうけど。
0414デフォルトの名無しさん
2012/05/26(土) 13:28:54.36商品のURLは本と洋書に限定。デベロッパキーが必要なAPIの利用は不可
以下に利用例を示す
$ cat urls
http://www.amazon.co.jp/Seven-Databases-Weeks-Modern-Movement/dp/1934356921
http://www.amazon.co.jp/The-Just-Bento-Cookbook-Everyday/dp/1568363931/
http://www.amazon.co.jp/dp/4822234630/
$ ./amazon urls
Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement [ペーパーバック]
ただいま予約受付中です。 在庫状況について この商品は、Amazon.co.jp が販売、発送します。
ギフトラッピングを利用できます。
The Just Bento Cookbook: Everyday Lunches to Go [ペーパーバック]
在庫あり。 在庫状況について この商品は、Amazon.co.jp が販売、発送します。
ギフトラッピングを利用できます。20点在庫あり。ご注文はお早めに。2012/5/27 日曜日 にお届けします!
まつもとゆきひろ コードの未来 [単行本]
在庫あり。 在庫状況について この商品は、Amazon.co.jp が販売、発送します。
ギフトラッピングを利用できます。2012/5/27 日曜日 にお届けします!
0415デフォルトの名無しさん
2012/05/26(土) 13:31:30.15だから、その通りの事を>>402で書いてるだろう。
0416デフォルトの名無しさん
2012/05/26(土) 13:39:55.74Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement [ペーパーバック]
ただいま予約受付中です。 在庫状況について この商品は、Amazon.co.jp が販売、発送します。
ギフトラッピングを利用できます。
The Just Bento Cookbook: Everyday Lunches to Go [ペーパーバック]
在庫あり。 在庫状況について この商品は、Amazon.co.jp が販売、発送します。
ギフトラッピングを利用できます。20点在庫あり。ご注文はお早めに。2012/5/27 日曜日 にお届けします!
まつもとゆきひろ コードの未来 [単行本]
在庫あり。 在庫状況について この商品は、Amazon.co.jp が販売、発送します。
ギフトラッピングを利用できます。2012/5/27 日曜日 にお届けします!
EOF;
0417デフォルトの名無しさん
2012/05/26(土) 13:48:22.590418デフォルトの名無しさん
2012/05/26(土) 13:51:01.24Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement [ペーパーバック]
ただいま予約受付中です。 在庫状況について この商品は、Amazon.co.jp が販売、発送します。
ギフトラッピングを利用できます。
The Just Bento Cookbook: Everyday Lunches to Go [ペーパーバック]
在庫あり。 在庫状況について この商品は、Amazon.co.jp が販売、発送します。
ギフトラッピングを利用できます。20点在庫あり。ご注文はお早めに。2012/5/27 日曜日 にお届けします!
まつもとゆきひろ コードの未来 [単行本]
在庫あり。 在庫状況について この商品は、Amazon.co.jp が販売、発送します。
ギフトラッピングを利用できます。2012/5/27 日曜日 にお届けします!
EOF
0419デフォルトの名無しさん
2012/05/26(土) 13:51:29.190420uy
2012/05/26(土) 14:15:11.91未だにPHP推す奴がいるのか
0421デフォルトの名無しさん
2012/05/26(土) 14:23:30.30未だにモッサリ動作のRuby推す奴がいるのか
0422uy
2012/05/26(土) 15:33:10.570423デフォルトの名無しさん
2012/05/26(土) 15:58:55.450424デフォルトの名無しさん
2012/05/26(土) 16:15:29.39str = ""
10000.times do
str += "a"
end
みたいな事をやってRubyは遅いとブログに書いてるのいたな
0425デフォルトの名無しさん
2012/05/26(土) 16:38:16.920426デフォルトの名無しさん
2012/05/26(土) 18:08:28.92facebookのPHPコンパイラはせいぜい2〜3倍程度の性能向上らしいよ?
それとは別にJIT方式のPHP実行環境を開発中で、将来は全面的にそっちへ移行予定だとか
性能的にも現PHPコンパイラのレベルまでは到達可能だと予想してるらしい
facebookはスクリプト言語の効率的な開発サイクルを重視してるっぽいね
0427デフォルトの名無しさん
2012/05/26(土) 18:23:55.23取り入れられるかもしれないね。
0428デフォルトの名無しさん
2012/05/26(土) 18:32:44.95スクリプト PHP
静的コンパイル C++
動的コンパイル C#
0429デフォルトの名無しさん
2012/05/26(土) 18:41:21.760430デフォルトの名無しさん
2012/05/26(土) 19:06:50.010431デフォルトの名無しさん
2012/05/26(土) 19:17:59.770432デフォルトの名無しさん
2012/05/26(土) 19:31:19.070433uy
2012/05/26(土) 19:35:26.74rubyの話になると途端に動的言語の問題を指摘してくる奴いるけどw
これの意味するところは、PHPやPerlでは動的言語の問題が解消されてるとかいう話ではなく
話に混ざれるフィールドにすら辿り着いていない事を意味する
勘違いしないようにね
0434デフォルトの名無しさん
2012/05/26(土) 19:35:38.70このように、PHPを使ってるかSlacaを使ってるかはどうでも良くて
「Railsを捨てた」ことが重要なのですな
0435デフォルトの名無しさん
2012/05/26(土) 19:38:24.78え? 普通に出てきてるけど?
節穴?
0436デフォルトの名無しさん
2012/05/26(土) 19:41:25.56動的言語の話が出てこないからな。
ぶっちゃけ動的言語的に劣ってるのだろう?
0437デフォルトの名無しさん
2012/05/26(土) 19:49:15.390438デフォルトの名無しさん
2012/05/26(土) 19:54:53.770439デフォルトの名無しさん
2012/05/26(土) 23:54:47.99ブラウザ上で動けばいいだけなんだから
JavaScriptで大規模開発は出来ない!
とか大声あげていわれる事もなくて幸せそうでいいな
0440デフォルトの名無しさん
2012/05/26(土) 23:55:49.53知らないクセに、よく言えたものだ。呆れる。
0441デフォルトの名無しさん
2012/05/27(日) 00:31:53.940442デフォルトの名無しさん
2012/05/27(日) 01:12:52.04JavaScriptだってサーバーで動かせられるんだからねっ!
0443デフォルトの名無しさん
2012/05/27(日) 03:06:07.880444デフォルトの名無しさん
2012/05/27(日) 03:15:30.03そこそこ使える
0445デフォルトの名無しさん
2012/05/27(日) 05:23:45.930446デフォルトの名無しさん
2012/05/27(日) 05:44:04.49LLLLくらいか
0447デフォルトの名無しさん
2012/05/27(日) 10:09:21.120448デフォルトの名無しさん
2012/05/27(日) 10:47:28.200449デフォルトの名無しさん
2012/05/27(日) 10:53:39.630450デフォルトの名無しさん
2012/05/27(日) 11:22:16.46ちょっと長くなってしまったので2レス
# coding: utf-8
require 'httpclient'
require 'nokogiri'
urls = File.readlines(ARGV[0] || "urls").find_all do |line|
line.start_with? "http"
end
urls.map!(&chomp)
MAX_CON = 2
$num_con = 0
mutex = Mutex.new
cli = HTTPClient.new
0451デフォルトの名無しさん
2012/05/27(日) 11:23:13.71threads = urls.map do |url|
Thread.new do
passed = false
loop do
mutex.synchronize do
if $num_con < MAX_CON
$num_con += 1
passed = true
end
end
passed ? break : sleep(0.1)
end
html = cli.get(url).body
root = Nokogiri::HTML.parse(html)
title = root.at_css('title')
divs = root.css('div[class="buying"][style]')
mutex.synchronize do
puts title.text.strip if title
puts divs[1].text.strip if divs[1]
puts divs[2].text.strip if divs[2]
puts
$num_con -= 1
end
end
end
threads.each(&:join)
0452デフォルトの名無しさん
2012/05/27(日) 11:59:14.650453デフォルトの名無しさん
2012/05/27(日) 12:59:52.88それだけで言語としての位置づけが大きく変わるとは思えん
0454デフォルトの名無しさん
2012/05/27(日) 13:34:50.67use feature qw(say);
use URI;
use Web::Scraper;
use open qw(:encoding(utf-8) :std);
my $amazon_stock = scraper {
process q{//span[@id='btAsinTitle']}, title => 'TEXT';
process q{//form[@id='handleBuy']/table[3]/tr}, 'detail[]' => 'TEXT';
};
while(<>){
chomp;
$_ or next;
my $stock = $amazon_stock->scrape(URI->new($_));
length and say for($stock->{title}, @{$stock->{detail}}[1..3]);
say '';
}
0455デフォルトの名無しさん
2012/05/27(日) 19:50:37.41お手本にさせてもらいました >>454
# coding: utf-8
require 'httpclient'
require 'nokogiri'
cli = HTTPClient.new
ARGF.each do |line|
line.chomp!
next if line.empty?
html = cli.get(line).body
root = Nokogiri::HTML.parse(html)
title = root.at_css("span#btAsinTitle")
details = root.xpath("//form[@id='handleBuy']/table[3]/tr")
# details = root.css("form#handleBuy > table:nth-child(3) > tr") # FIXME
[title, details[1], details[2]].compact.each do |e|
text = e.text.strip
puts text unless text.empty?
end
puts
end
0456デフォルトの名無しさん
2012/05/27(日) 19:54:21.900457デフォルトの名無しさん
2012/05/27(日) 20:01:05.830458デフォルトの名無しさん
2012/05/27(日) 20:05:37.11>このように、PHPを使ってるかSlacaを使ってるかはどうでも良くて
>「Railsを捨てた」ことが重要なのですな
まさにその通り。
RailsすててSinatraにしたら4倍速くなってびびった。
TwitterはRailsすててScalaにしたら3倍速くなったそうだけど、なぜ3倍にしか速くなってないのか不思議。10倍くらい速くなってもおかしくないんだが。
0459デフォルトの名無しさん
2012/05/28(月) 00:51:52.19http://en.wikipedia.org/wiki/Perl6#A_type_system
Perl 6 offers a hybrid typing system whereby the programmer
may choose to use Static Typing, Dynamic Typing or mix the two.
Static, Dynamic typingどっちでも好きなほう使えると書いてあるな
Dynamicも使えるなら実行時パフォーマンスも期待できないな
それ以前にPerl6は2000年から開発はじまって
まだ正式リリースされてない時点で摘んでる。
後方互換性の問題引きずって開発が進まないんだろうな
やっぱりスクリプト言語、将来性なさすぎるな
遅いし、開発生産性低いし
0460デフォルトの名無しさん
2012/05/28(月) 08:50:18.9410年たってもそうなってないけど言い続けるとかw
0461デフォルトの名無しさん
2012/05/28(月) 11:48:32.05大体LL嫌ってる奴は、LLを使いこなす頭もないやつか
全くの未経験者
0462デフォルトの名無しさん
2012/05/28(月) 11:54:34.86それができない人は、まあ、単に煽って反応をもらいたいだけなのだろうから、無理に反応することもない
とか言うとこのスレの意義がなくなるのでみんな煽れ反応しろ
0463デフォルトの名無しさん
2012/05/28(月) 11:59:00.840464デフォルトの名無しさん
2012/05/28(月) 12:17:53.36お前P2Pスレに入り浸っているだろw
0465デフォルトの名無しさん
2012/05/28(月) 17:42:09.13プログラマの大多数は1つしか言語を使えない、あるいは1つも使いこなせていない
だからこそ2つ目の言語を覚えたり、移行するまでに何年もかかるんだよ
0466デフォルトの名無しさん
2012/05/28(月) 18:36:49.270467デフォルトの名無しさん
2012/05/28(月) 18:43:14.450468デフォルトの名無しさん
2012/05/28(月) 18:45:04.70ブロックが begin end じゃなくて { } だ、というだけで(最近は逆が普通か)拒絶反応を
示すとかそういうレベルで。
0469デフォルトの名無しさん
2012/05/29(火) 01:01:21.09うんうん。ちょっと書き方が違うだけで
効率がいいとか言う奴もいるよな。
0470デフォルトの名無しさん
2012/05/29(火) 03:11:45.22$arr = なんとかなんとか
foreach( $arr , $i ) {
}
よりは
arr.each{|i| }
だろう
reject select map inject each_with_index あたりの処理を書いたときに差がとてつもない出る
0471デフォルトの名無しさん
2012/05/29(火) 05:13:04.610472デフォルトの名無しさん
2012/05/29(火) 05:15:58.52君は知らないかも知れないが、
Perlではループと高階関数を使い分けられるんだ。
0473デフォルトの名無しさん
2012/05/29(火) 06:29:15.13PHPのこといってた
0474デフォルトの名無しさん
2012/05/29(火) 06:49:35.01foreach( $arr as $i ) {
}
で、もちろん高階関数もある。
0475デフォルトの名無しさん
2012/05/29(火) 07:28:35.41高階関数とは違うだろ。
0476デフォルトの名無しさん
2012/05/29(火) 09:22:18.16PHPは第一級関数持ってるから、
array_reduce(array(3, 4, 5), function($v, $c){ return $v + $c; }, 0);
みたいに書けるよ。
0477デフォルトの名無しさん
2012/05/29(火) 11:42:48.05特にRubyは醜いな
0478デフォルトの名無しさん
2012/05/29(火) 12:39:40.04ここでアセンブラとか言い出すバカがたまにいるけどJavaはお前の脳みそよりは考えて最適化するんだよヴォケ
0479デフォルトの名無しさん
2012/05/29(火) 12:55:21.260480デフォルトの名無しさん
2012/05/29(火) 13:05:32.22用途以前にもっさりすぎてWindowsで開発も実行も不可ww
Ruby信者「Rubyはエレガントだ(キリッ)」
その遅さなんとかしてからエレガントとかいえwww
0481デフォルトの名無しさん
2012/05/29(火) 13:13:41.50汚い文法をコロコロ変えて開発者を振り回す
0482デフォルトの名無しさん
2012/05/29(火) 13:15:39.62?
そこの事はいってないわ
シンタックスのことを言ってるんだけど
PHPでrubyのdelete_ifはどうやってかくの?
0483デフォルトの名無しさん
2012/05/29(火) 13:17:19.22スレチ
0484デフォルトの名無しさん
2012/05/29(火) 13:43:19.47統合開発環境なんていらないよ
テキストエディタでコード書いてターミナルから実行するだけ
そのお手軽さがスクリプト言語の持ち味
0485デフォルトの名無しさん
2012/05/29(火) 13:50:36.88こう言うのが高じて「メモ帳以外で書くの禁止!」とかになるんだな
危ない傾向だと思う
0486デフォルトの名無しさん
2012/05/29(火) 13:55:07.80それは腕があれば作れるってだけの話で
別に誰もお前にやれとはいってない
汎用は聞くし何でも出来るからって、技術力見せ付ける奴が多いから
>>480こういう勘違いが出てくるのかな
JAVAでかいてもrubyでかいても速度が間に合うときにrubyをつかわない意味って?
0487デフォルトの名無しさん
2012/05/29(火) 13:56:36.40あれで書けって言われたら嫌だ
使うとすればサクラエディタ、EmEditor、秀丸、xyzzy、vimとかそんなの
0488デフォルトの名無しさん
2012/05/29(火) 13:58:34.261行〜20行程度で作成が一瞬で終わるようなスクリプトじゃね
「一応」多機能なクラスが用意されてるから
腕があるなら大規模開発もやれるっていうだけで
別にお前にやれとか誰も言ってないよ
昔perlやってた奴らがクラス使ってたとは思わない
0489デフォルトの名無しさん
2012/05/29(火) 14:47:28.92Rubyなんて実質Rails専用言語だろう?
Webサイトのアクセス増えたら、レスポンスタイム悪化するだろう。
スケーラビリティにも大きく影響する
Rails風フレームワークが多数ある今、Rubyをやる意味がわからない。
Javaはコードがちょっと冗長になるが、C#なら短いコードで高速なプログラムがかける。
Intellisense、IDEのおかげで高速なコーディングとデバッグもできる。
Webアプリなら、ASP.net MVC + C#.net + Visual Studio 11が最強
ASP.net MVCはLinux上でも使えるんだが、知らない情弱が多すぎる
0490デフォルトの名無しさん
2012/05/29(火) 14:54:55.12http://engawa.2ch.net/test/read.cgi/linux/1338094841/
0491デフォルトの名無しさん
2012/05/29(火) 14:59:51.190492デフォルトの名無しさん
2012/05/29(火) 15:11:08.26大昔から使われてきたperlの立ち位置にrubyが入るだけ
それ以外はオマケ。
perlのシェア乗っ取っただけじゃ収まりきらないからRailsってフレームワークが出来たり、
PHPやJAVAのシェアまで若干奪ったりが出来てるんだよ
>Javaはコードがちょっと冗長になるが、C#なら短いコードで高速なプログラムがかける。
あとここLLスレなんで、
「短いコード」ってので勝負したらC#がLLに勝てる分けないんだから
0493デフォルトの名無しさん
2012/05/29(火) 15:16:22.65C# JAVA はスレチ
0494デフォルトの名無しさん
2012/05/29(火) 15:21:01.21お客さんが玄関から入ってきたと思ったら、
1階には見向きもせずにさっさと2階に上がっていく
0495デフォルトの名無しさん
2012/05/29(火) 15:45:13.250496デフォルトの名無しさん
2012/05/29(火) 15:47:32.23世間一般の認識ではRuby=Rails専用言語、だぞ
Rubyは遅すぎてアプリ開発には使えない
後方互換性が醜いから、インストールスクリプトなどにも使えない
完全にRails専用言語
スクリプト言語で存在意義あるのは、ブラウザで動くJavaScriptだけ
>>491
VSも無料で使えるんだからベンダ依存もなにもないだろ
SharpDevelopとかもあるしな
JavaもMySQLも、Oracleが所有してるわけだが、ベンダ依存とかいって使わないのか?w
0497デフォルトの名無しさん
2012/05/29(火) 15:52:53.14RDBについては変更が比較的容易だからリストとはならない
0498デフォルトの名無しさん
2012/05/29(火) 15:53:25.870499デフォルトの名無しさん
2012/05/29(火) 16:02:44.88> スクリプト言語で存在意義あるのは、ブラウザで動くJavaScriptだけ
ls -l `find . -name '*.log' -newerct '1 week ago' -print` | sort -rnk5 | head -n5
みたいなワンライナー書いたりしないの?
こんなのエディタに保存するまでもなくターミナルに直打ちするけど
同じことをJavaやC#でやるなんて想像もつかないな
0500デフォルトの名無しさん
2012/05/29(火) 16:06:39.88横からだけどそれってshellを繋いでいるから違うと思うよ。
0501デフォルトの名無しさん
2012/05/29(火) 16:08:58.40シェルスクリプトって100回壁に書いてからやりなおし
0502デフォルトの名無しさん
2012/05/29(火) 16:09:13.810503デフォルトの名無しさん
2012/05/29(火) 16:19:17.20LLの定義がいいかげんという流れがあったから俺はあえて、
スクリプト言語、scripting language(s)の単語を使ってる。
動作がもっさりだから、軽量言語と呼ぶことに違和感もある。
>>499はただのUNIX,Linuxのコマンドのパイプ処理だろ。
こんなのをスクリプト言語などというやつはいない。
ファイルに保存して実行したら「シェルスクリプト」と呼ばれるが
スクリプト言語、とはいわない。
0504デフォルトの名無しさん
2012/05/29(火) 16:23:13.64うんにゃ、複数の処理をまとめて書いたらそれはプログラム
0505デフォルトの名無しさん
2012/05/29(火) 16:28:24.500506デフォルトの名無しさん
2012/05/29(火) 16:33:17.35Perl, PHP, JavaScript, Pythonなど汎用的なスクリプト言語と
コマンドの呼びだしに特化されているシェルスクリプトでは性質が大きく異なる
>>499を外部コマンドを使わずに書き直せっていうのはお題になりそう
0507デフォルトの名無しさん
2012/05/29(火) 16:43:10.43世間一般って何のこといってんの?
普通にruby情報をググったとしてもRails以外の情報の方がわんさか出てくると思うけど
ruby使ってない奴の認識のように思う
0508デフォルトの名無しさん
2012/05/29(火) 16:54:40.25Rubyが流行ったのは、Railsが出てからなんてのは常識なんだが・・w
0509デフォルトの名無しさん
2012/05/29(火) 17:14:49.160510デフォルトの名無しさん
2012/05/29(火) 17:26:43.51中間の出力結果をいちいち一時ファイルに書き出して、それを次のコマンドに渡してる
0511デフォルトの名無しさん
2012/05/29(火) 18:01:23.30それは仕方ない
パイプ処理ができなかった時代の名残
0512デフォルトの名無しさん
2012/05/29(火) 18:04:14.390513デフォルトの名無しさん
2012/05/29(火) 18:28:02.59片方だけしか知らない人は仕方なくそれだけ使って、排他して自分を慰めていればいい
0514デフォルトの名無しさん
2012/05/29(火) 18:30:25.510515デフォルトの名無しさん
2012/05/29(火) 18:31:48.440516デフォルトの名無しさん
2012/05/29(火) 18:34:19.870517デフォルトの名無しさん
2012/05/29(火) 18:42:58.01両方使えたらRubyなんか使わないだろ
デメリットしかないんだから
0518uy
2012/05/29(火) 19:16:54.62C#.NETとRubyが今のところ、最高の選択肢だと思うよ
俺は社畜アプリもGUIも作らないから、C++とRubyだけども
プログラミングするなら動的と静的で1個ずつ、2言語使えよって話だよ低脳
何のために、他言語からrubyスクリプト呼び出せるようにdll公開されてたり、
rubyinlineとかが作られてると思ってんだよ、使い分けて連携しろアホか
0519uy
2012/05/29(火) 19:24:41.04いい加減C#,JAVAはスレチだときづけ
0520デフォルトの名無しさん
2012/05/29(火) 19:30:52.450521デフォルトの名無しさん
2012/05/29(火) 19:47:57.38頑張れよPython
0522デフォルトの名無しさん
2012/05/29(火) 20:06:43.05C#とrubyとか用途の全く異なる言語を挙げられても困りますし
0523デフォルトの名無しさん
2012/05/29(火) 20:38:02.35気に入ったプロジェクトがあればPull Requestを送り、
Haskellを勉強し、Pythonのブログを書いていたとしても
俺は依然として無職だし、
Windowsでメモ帳でPHPを書いていても仕事は貰える!!
0524デフォルトの名無しさん
2012/05/29(火) 20:42:20.86モッサリRubyはPythonやPHPの半分のパフォーマンスも出ないから
http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=yarv&lang2=python3
http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=yarv&lang2=php
0525デフォルトの名無しさん
2012/05/29(火) 20:49:53.160526デフォルトの名無しさん
2012/05/29(火) 21:01:39.02羨ましい限りだ。
0527デフォルトの名無しさん
2012/05/29(火) 21:21:41.58首を切られた無職Javaプログラマだよ。
0528デフォルトの名無しさん
2012/05/29(火) 21:46:05.25頑張ってくれよ
0529デフォルトの名無しさん
2012/05/29(火) 22:10:56.56俺はそのためだけにPythonを選んだんだぞ
0530デフォルトの名無しさん
2012/05/29(火) 22:28:49.730531デフォルトの名無しさん
2012/05/29(火) 22:51:47.780533デフォルトの名無しさん
2012/05/29(火) 23:11:07.35分かってるんならこれに答えてやれよ
> すべての譜面が10MBに収まるという話に説得力がない
> その譜面データベースのURLを示すか、ありうる譜面が何通りあるかを書くくらいしろ
0534デフォルトの名無しさん
2012/05/29(火) 23:16:55.290535デフォルトの名無しさん
2012/05/29(火) 23:32:17.75異なると思うんだけど、クライアント間をどうやって区別してるんだ?
ソケットごとに割り当ててるのかなと思ったけど、それじゃHTTPのセッションごと
に違うクライアントと識別されちゃうよね?
アホな質問だとは思うけどエロいひと教えて!
0536デフォルトの名無しさん
2012/05/29(火) 23:34:53.37インデント、改行、コメントを適切に使って読みやすいコードを
書くこともできない人はチーム開発では迷惑
0537uy
2012/05/29(火) 23:49:48.98>>338
>>536
>チーム開発では迷惑
でっていう
def search_up_all sym = /(.*)/ , o = self
o.search_up_all_test(sym).merge({ o.sym => o })
end
def search_up_all_test sym = /(.*)/ , o = self
o.up ? o.up.search_up_all_test(sym).merge( (o.up.sym=~sym) ? { o.up.sym => o.up } : Hash.new ) : Hash.new
end
0538デフォルトの名無しさん
2012/05/30(水) 00:02:47.660539デフォルトの名無しさん
2012/05/30(水) 00:14:56.81おもちゃで楽しみながら仕事にもなる。
0540デフォルトの名無しさん
2012/05/30(水) 00:51:35.97最近のよいWebあぷぷはRails製が多いんだよな・・・
Redmineもそうだし。最近のお気に入りもRails製あぷぷ。
http://goo.gl/x1tj9
Djangoは凄くよさそうなのに、秀逸あぷぷはなんでこんなに少ないんだろう。
0541デフォルトの名無しさん
2012/05/30(水) 01:21:49.25勢いとかに根拠を求めるほうが妥当じゃないのかと思う
0542デフォルトの名無しさん
2012/05/30(水) 01:39:50.20自分の会社が作った言語を表に出して金儲けしようとしてる層
0543デフォルトの名無しさん
2012/05/30(水) 09:02:50.17突っ込んだプログラミングするわけじゃないし。
0544デフォルトの名無しさん
2012/05/30(水) 12:30:56.67言語はどうでもいいとか、スクリプト言語厨らしい低レベルな発言だな
0545デフォルトの名無しさん
2012/05/30(水) 13:04:25.51Perl,PHP,Python,Rubyの基本部分は、どれも変わらん。
0546デフォルトの名無しさん
2012/05/30(水) 13:06:39.560547デフォルトの名無しさん
2012/05/30(水) 13:11:40.68どれも変わらないとかwww
どうやら軽量なのは言語じゃなくて
スクリプト言語厨の脳みそみたいだなww
0548デフォルトの名無しさん
2012/05/30(水) 13:18:52.04イテレータが大量に最初から用意されてんのに
なにが変わらないと思ったんだろう
0549デフォルトの名無しさん
2012/05/30(水) 13:22:19.52同等の機能を持つから。
PythonでRuby風にかけば、Pythonicじゃないと言われるだろうけど。
0550デフォルトの名無しさん
2012/05/30(水) 14:37:23.72C言語で何でも出来るって言ってるようなものって感じがする
書式が重要だから
forでもかける処理をforeachで書いたりするんだろ
たとえばC++のテンプレートは#defineで書き直せるけど
C言語でテンプレートプログラミングやってる奴なんていないだろ
同等の機能が言語に存在していたとしても整理されてなければ使えないんだよ
0551デフォルトの名無しさん
2012/05/30(水) 14:40:22.83ファイル単位で修正かけられるんなら、2.3年後の保守とかでも楽そうに見えるんだけど。
Javaだとビルド環境とか整えるだけでメンドイイメージが
0552デフォルトの名無しさん
2012/05/30(水) 15:18:02.47JAVAと関わってる時点で期待しないほうがいい
MSのC#.NETがjavaの2番煎じのはずだったのに一瞬で追い抜いて行ったし
MSのやってる事とかぶってるものはやっぱり淘汰される運命にあるよ
0553デフォルトの名無しさん
2012/05/30(水) 15:22:15.02forは単なるループなので、foreachのイテレータとは少し意味が違うでしょう。
Perlで同じforが使えたとしても。
ぶっちゃけ、さんざん過去スレでやったから、今更な部分でもあるんですよ。
0554デフォルトの名無しさん
2012/05/30(水) 15:30:45.96スクリプト言語に比べたら、Scalaはずっと速いしはるかに将来性あると思う
Javaと親和性も高い
ただ、型推論とかやるからコンパイルがc#とかより時間がかかるのが弱点らしい
関数言語とかも取り入れている分、難しいイメージを
持たれて敬遠されているかも知れない
海外ではWebサービス企業では採用事例が増えてるらしい。
言語自体は評価は高いから、あとは
使いやすいフレームワークが出てくるかどうかがポイントじゃないか?
0555デフォルトの名無しさん
2012/05/30(水) 15:38:21.98で実際foreachはforでかけるだろ、かいたことない?あっそう
書式が違えば同等の機能ではなく別物だよ
0556デフォルトの名無しさん
2012/05/30(水) 15:42:17.81スクリプト言語(動的)とは、用途が違う
それと「Javaと親和性も高い」のがScalaネックなんだろ・・・
どうせ数年後にはC#の次をMSが出してくるよ
C#にも型推論くらいあるわけで
知ってる奴からすればScalaでやってる事なんて今更でしかない
0557デフォルトの名無しさん
2012/05/30(水) 15:55:53.63こんなのがいいのか?
普通に打ち忘れするわ
0558デフォルトの名無しさん
2012/05/30(水) 16:01:05.72C#3.0から型推論っぽいのがあるな
Scalaのそれと機能的に同じレベルかどうかまでは知らないが。
C#は全部なくして次を作らなければならないほど弱点があるとも思えない。
現時点で一番いろんな用途に使える言語なのも事実だし
C#は、バージョンアップで機能追加が続くんじゃないか
0559デフォルトの名無しさん
2012/05/30(水) 16:21:27.48MSの衰退と道連れで第二のDelphiになりそうな気がしてる
0560デフォルトの名無しさん
2012/05/30(水) 16:51:38.65勘定系じゃなくて、営業店システムの話じゃないの?ほんとにPHPが使われるようになるのか知らんが。
ちなみに俺が昔、某銀行の営業店システムをやったときは、全画面がJavaアプレットだったよ。
0561デフォルトの名無しさん
2012/05/30(水) 16:51:56.370562デフォルトの名無しさん
2012/05/30(水) 17:32:09.15http://t.co/4vuIDDHn
0563デフォルトの名無しさん
2012/05/30(水) 20:07:24.710564デフォルトの名無しさん
2012/05/30(水) 20:09:39.220565デフォルトの名無しさん
2012/05/30(水) 20:16:33.56それ、uyとの会話のすれ違いが多いので却下
0566デフォルトの名無しさん
2012/05/30(水) 20:23:36.240567デフォルトの名無しさん
2012/05/30(水) 20:33:57.650568デフォルトの名無しさん
2012/05/30(水) 22:49:29.340569デフォルトの名無しさん
2012/05/30(水) 22:53:59.470570デフォルトの名無しさん
2012/05/30(水) 23:01:03.94開発陣が暇なんだろうか
0571デフォルトの名無しさん
2012/05/30(水) 23:02:51.390572デフォルトの名無しさん
2012/05/30(水) 23:24:14.720573デフォルトの名無しさん
2012/05/30(水) 23:28:25.99NT系列はちゃんと複数プロセスが同時に動いてパイプでデータを流してますよ
>perl -e "print qq!$_\n! for 0..10000000"|ruby -e "ARGF.each{|e| puts e.chomp.to_i*2}"|wc
10000001 10000001 94444455
テンポラリディレクトリに94444455バイトの一時ファイルが出来たりはしません
0574デフォルトの名無しさん
2012/05/31(木) 10:06:10.28言語に対するプログラマ同士の共通認識が高まるのではないか
その点に関していえば、c++とjavascriptは完璧だ
QtとQMLなんて最高だ.パーフェクトだ.
0575デフォルトの名無しさん
2012/05/31(木) 10:11:06.360576デフォルトの名無しさん
2012/05/31(木) 10:38:33.81長いこと保守する必要があるものを動的言語で書くのもマゾヒスト
世界中どこも彼処も変態だらけで、そして我々は、その変態たちを崇拝している
0577デフォルトの名無しさん
2012/05/31(木) 11:07:41.05自称常識人は理解されないとキレたりするから疲れる
0578デフォルトの名無しさん
2012/05/31(木) 12:35:28.120579デフォルトの名無しさん
2012/05/31(木) 12:38:49.310580デフォルトの名無しさん
2012/05/31(木) 13:59:05.690581デフォルトの名無しさん
2012/05/31(木) 20:49:16.92http://jsx.github.com/
0582uy
2012/06/01(金) 05:18:27.71絵描き界隈とプログラミング界隈を見ていて思う事は
絵描き界隈というのは、暖かく冷たいものがある
プログラミング界隈は、けなしあいつつも情報交換を"とりあえず"は行い、
「お前そっち歩いていくと死ぬぞwwwwバカwwwww」とかいって、
お互いの位置と方向性を確認しあう事は出来る
絵の世界で、それはない。「個性だ」の一言で、全てが終わるから
間違いも、愚鈍さも、優しく放置されていく
俺も放置されていた側だったけど、ようやくわかってしまった 最後に、俺は天才ではない ただ人の、3、4兆倍生きてるだけだ
0583デフォルトの名無しさん
2012/06/01(金) 05:36:35.660584デフォルトの名無しさん
2012/06/01(金) 10:05:26.13ペチュニアの鉢植えが落ちていくとき、その心に浮かんだ思いはこれだけだった
ーまいったな、またか。
0585デフォルトの名無しさん
2012/06/01(金) 20:08:01.870586デフォルトの名無しさん
2012/06/01(金) 20:13:46.150587デフォルトの名無しさん
2012/06/01(金) 22:24:49.280588デフォルトの名無しさん
2012/06/02(土) 01:09:29.120589デフォルトの名無しさん
2012/06/02(土) 01:57:06.00iPhogeって何?
iPhogeって何?
0590デフォルトの名無しさん
2012/06/02(土) 03:06:06.69ずいぶん前からプログラミング界隈?でも優しく放置されてたじゃねーかw
ソース得意げにだすたんびに「あぁこういう病気のヒトだね」ってみんな言うし。
突っ込むのはネタか同じ病気の奴。このへんはきっと絵と変わらんだろ?
0591デフォルトの名無しさん
2012/06/02(土) 08:06:23.19iPhogeって何?
iPhogeって何?
0592デフォルトの名無しさん
2012/06/02(土) 09:44:26.360593デフォルトの名無しさん
2012/06/02(土) 09:48:27.890594デフォルトの名無しさん
2012/06/02(土) 09:55:02.34http://toro.2ch.net/kitchen/
0595デフォルトの名無しさん
2012/06/02(土) 10:18:24.64中国製のパチモン商品
0596デフォルトの名無しさん
2012/06/02(土) 10:54:05.76それは昔の話じゃないかな?
今だと、PHPとかRubyから初めて、CやJavaはまったく使った事ない人って多いと思うよ。それで、型とかスコープとか意識しないで書く人が多いと思う。
0597デフォルトの名無しさん
2012/06/02(土) 10:58:46.33Ruby1.8系に依存するのもPython2系に依存するのも同じ事じゃないですか?
0598デフォルトの名無しさん
2012/06/02(土) 11:02:32.14Python2系と違ってそのまま動くことも珍しくないし
0599デフォルトの名無しさん
2012/06/02(土) 11:03:55.950600デフォルトの名無しさん
2012/06/02(土) 11:05:51.36以前からVBとかから入る人も居たな
てか、動的言語は動的言語で型はちゃんと意識するんだが…
0601デフォルトの名無しさん
2012/06/02(土) 11:10:28.850602デフォルトの名無しさん
2012/06/02(土) 11:35:12.62昔のBASICなんかもそうだったし
0603デフォルトの名無しさん
2012/06/02(土) 11:37:14.57いきなりGUIとかマゾとしか思えない
0604デフォルトの名無しさん
2012/06/02(土) 11:39:43.34いや、計算とか文字列の加工みたいな
目的があってプログラミング始めるならそれでいいけど
特に目的もなく「プログラミングやってみたい」人には
GUIとか描画のがモチベーション保ちやすいのよ
0605デフォルトの名無しさん
2012/06/02(土) 11:42:46.06C#とかでいいんじゃない。windows限定だけど。
0606デフォルトの名無しさん
2012/06/02(土) 11:50:55.250607デフォルトの名無しさん
2012/06/02(土) 11:51:12.51なるほど。>>602とあわせてなんとなくわかった
ガワが出来あがっていくことに手応えを感じる初心者は結構いそうだしね
REPLとIDE両方渡してみてどっちが面白いか聞いてみるのはアリか
0608デフォルトの名無しさん
2012/06/02(土) 11:58:47.870609デフォルトの名無しさん
2012/06/02(土) 12:02:41.140610デフォルトの名無しさん
2012/06/02(土) 12:06:03.76http://hirata-create.cocolog-nifty.com/
0611デフォルトの名無しさん
2012/06/02(土) 12:27:15.54C#はWindows限定じゃない
.オープンソースの.NET実装、Mono使うとLinuxでも動く
デスクトップアプリ、高速なWebアプリスマートフォンアプリ、なんでもOK。
変換ツール使うと、AndroidもiPhoneアプリも作れる
超高速なレスポンスが要求されるシステムはC/C++で書く必要があるが
それ以外はC#で全部いける。
0612デフォルトの名無しさん
2012/06/02(土) 12:36:49.730613デフォルトの名無しさん
2012/06/02(土) 12:45:34.83むしろ全力で成功を回避しろという正しい戦略かもしれん。
バカが寄り付いた結果、正しい修正だが利用者には負担になる、といった修正が
できなくなった結果腐ってしまったものが、歴史的に見て結構ある。
0614デフォルトの名無しさん
2012/06/02(土) 14:05:38.85C#なんだからMonoに限定する必要がない。
Windows版Ruby専用スレ、みたいなもんだ。
伸びるわけがない。
0615uy
2012/06/02(土) 15:41:21.94なんでその程度を自分で書こうとしないんだよ
自分でやれ
>>590
何もわかってないんだな
「絵」には間違いがない
ゆえに誰も間違っていると言えない
正しいといえば、それは個性になってしまう
プログラム界隈ではどうみてもお前らが放置されてる側じゃねーか
いつまでOO(笑)やってんだよ
「え?マジ?OOでITはこれからやっていくの??w」って感じてる奴は結構いると思うよ
なんかしらねーけどOOでしか使えないライブラリ、OOでしか適用されない最適化、
そんないらねーもんばっかり開発してどうすんだよ、本気でOOでやっていくつもりなのかよ
0616デフォルトの名無しさん
2012/06/02(土) 16:05:40.080617デフォルトの名無しさん
2012/06/02(土) 16:35:10.190618デフォルトの名無しさん
2012/06/02(土) 17:29:40.270619デフォルトの名無しさん
2012/06/02(土) 18:47:43.28y 野郎
0620uy
2012/06/02(土) 20:08:15.850621デフォルトの名無しさん
2012/06/02(土) 21:24:36.65NGに放り込んだから存在自体忘れてたわw
0622デフォルトの名無しさん
2012/06/04(月) 05:03:39.91http://toro.2ch.net/test/read.cgi/tech/1335211372/
スクリプト言語はやっぱりウンコだな
0623デフォルトの名無しさん
2012/06/04(月) 07:59:18.36本来なら対象にしないような規模のプログラムにまで
スクリプト言語が使われるようになってしまった
Javaがあまりにもウンコすぎたから
0624デフォルトの名無しさん
2012/06/04(月) 10:00:11.640625デフォルトの名無しさん
2012/06/04(月) 11:14:47.33リスト表記の [X|Xs] だけ、どこかに取り入れられないかな
0626デフォルトの名無しさん
2012/06/04(月) 12:54:47.120627uy
2012/06/06(水) 02:09:13.590628デフォルトの名無しさん
2012/06/06(水) 06:42:51.300629デフォルトの名無しさん
2012/06/06(水) 08:33:02.70みんな関数型言語に移行しました。
0630uy
2012/06/07(木) 11:12:25.39関数型プログラミングでかいていって副作用が存在しないなら
確かにLispはマクロで別次元の効率出せるじゃん
これを使わない理由って、一般人に扱えないから以外に答えがない
ほんとプログラミングってとっくのとうに終わってんな
目の前のことだけ見ていたほうがいいよ
0631デフォルトの名無しさん
2012/06/07(木) 19:00:43.040632デフォルトの名無しさん
2012/06/07(木) 19:17:27.480633uy
2012/06/08(金) 04:49:43.210634uy
2012/06/08(金) 10:26:25.90n = [0,1,2,3,4]
p n
p n.rotate
p n.reverse.rotate.reverse
p n.rotate(-1)
0635デフォルトの名無しさん
2012/06/08(金) 18:47:16.01だったら来るなよ
0636uy
2012/06/09(土) 01:21:05.84[0,0,0,2,2,1,0,2,1,2,0,]
を
[0,0,1,1,1,1,0,2,1,2,0,]
にしたい
これさえ出来ればあとは、縦軸はtranspose、斜め軸はrotate無双で全部やれる
drop_whileで簡潔にかけそうな気がしたが気のせいだった冗長した
0637デフォルトの名無しさん
2012/06/09(土) 01:26:16.06じゃあ俺はアルゴリズム担当、
お前はオセロを2PプレイやCPU対戦やネットワーク対戦
でも対応可能になるような設計を頼むわ。
0638デフォルトの名無しさん
2012/06/09(土) 02:02:56.150639uy
2012/06/09(土) 02:27:59.24x = 2
b=a[x..-1].each_with_index.drop_while do |n,i|
next true if i == 0
n == 2
end[0][-1]
p a
a[x..b+1] = [1]*b
p a
# [0, 0, 1, 2, 2, 1, 0, 2, 1, 2, 0]
# [0, 0, 1, 1, 1, 1, 0, 2, 1, 2, 0]
こんなんかいたわけだけど、どう見ても普通にかいたほうが行数収まるんだよな
drop_while の存在意義
秋田
0640デフォルトの名無しさん
2012/06/09(土) 02:30:07.50そんな小さい話どうでもよくね?
0641デフォルトの名無しさん
2012/06/09(土) 02:42:01.61静的型付けのC++なら、この程度の関数は何も気にせずに使えるけど、
http://ideone.com/xcxjC
動的型付けのJavaScriptだと、この程度の関数でも気をつけて使わないと駄目な代物になる事。
http://ideone.com/lbcaB
0642uy
2012/06/09(土) 02:50:30.52オセロの処理の意味的にはまさにdrop_whileなんだけど
上手いコードが思いつかない
0643デフォルトの名無しさん
2012/06/09(土) 03:02:13.00足し算の結果がINT_MAXを超えたらどうなるの?
0644uy
2012/06/09(土) 03:10:42.69a=[0,0,1,2,2,1,0,2,1,2,0,]
p a
x = 2
a[x..(b=a[x..-1].each_with_index.drop_while { |n,i| i != 0 || n == 2 }[0][-1])+1] = [1]*b
p a
もういいや
0645デフォルトの名無しさん
2012/06/09(土) 10:57:38.65どちらも数値か否かを気にしなければ使えないと思うが…
C++だったら関数を使うとき、何も考えずにいきなりカンで引数書くの?んなことないでしょ?
どちらにしたって、まず関数の引数ぐらい調べるじゃん
0646デフォルトの名無しさん
2012/06/09(土) 12:33:15.600647uy
2012/06/09(土) 12:46:53.38def sum a , b
raise unless [ Fixnum , Float ].include? a.class
raise unless [ Fixnum , Float ].include? b.class
return a + b
rescue
puts "err"
# exit
end
p sum 4 , 5
p sum 4 , "5"
src=DATA.read.each_line.inject "" do | src , m |
next src << m unless m =~ /def/
src << "def sum2 a , b\n"
b=m.scan(/(\[.*?\]):([a-z].*?)\s/).map do | kata , var |
" raise unless #{ kata }.include? #{var}.class\n"
end.join
src << b
end
puts
puts src
eval src
p sum2 2 , 3
p sum2 2 , "3"
__END__
def sum2 [ Fixnum , Float ]:a , [ Fixnum , Float ]:b
return a + b
end
0648uy
2012/06/09(土) 13:04:51.640649デフォルトの名無しさん
2012/06/09(土) 13:31:58.16違う。
型チェックを実行前に行える機能だ。
大体さ、obj.foo() なんてコード書いたら
このオブジェクトはfoo()を持っていなきゃ落ちるって
もうコードを書いた時点で判明しているんだから
実行前にコンピュータでチェックすべきことだよ。
0650デフォルトの名無しさん
2012/06/09(土) 13:39:38.12objに何が入ってるか実行時にしかわからないのに
どうやって実行前にfooを持っているかチェックするん
思いつきで言ってるんじゃなかったら具体的な方法よろ
0651デフォルトの名無しさん
2012/06/09(土) 13:44:16.54いや人間はわかってるだろ。
objにはfoo()というメソッドを持っているものしか入らないって。
だからそういうふうにコードを書いているわけで。
だったら、objはfoo()を持っているとどこかに
定義しておけばチェックが可能で些細なミスを減らせるし。
その動きから用意に推測可能だが、foo()を修正するときに
使っている場所を的確に調べることも可能になる。
0652デフォルトの名無しさん
2012/06/09(土) 13:51:59.21if rand(2) == 0
obj = IHaveFoo.new()
else
obj = IDontHaveFoo.new()
obj.foo()
0653デフォルトの名無しさん
2012/06/09(土) 13:54:35.60何が言いたいのかさっぱりわからないけど、
その場合に実行しないとわからない言語と
実行する前にチェックしてくれる言語なら
後者のほうがいいよね?
0654デフォルトの名無しさん
2012/06/09(土) 13:59:04.86難しいと思うだろうけど、
ルールはすごく単純
・ルール1
objという変数は、foo()というメソッドを持ったものしか入れられない
・ルール2
IHaveFoo.newの定義にfoo()というメソッドを持ったものしか戻り値に使用できない。
これだけ書いておけば、あとは推論で
実行前にすべてチェックできるようになるんだよ。
0655デフォルトの名無しさん
2012/06/09(土) 14:04:48.95evalはどうするの?
もしクラス定義が単なる文字列に埋めこまれていたとすれば
実行前にチェックするのは難しいのでは
0656デフォルトの名無しさん
2012/06/09(土) 14:11:09.05evalは基本的に代替方法が存在するので、そっちを使う。
どうしても必要なところだけ諦めれば良い。
クラス定義も単なる文字列として書かないようにする。
DBなどからクラス定義を生成したい場合でも、
実行時にやらずとも、実行前(実行開始時)にクラス定義を書いたソースコードを
生成するようにすればいいだけ。どうしても必要な時ってのは少ないはずだ。
実行時にわからないことを少なくするってのが原則。
誰もなくせとは言っていない。
実行時にわからないことが、少なければそれだけ注意を払うコストは減る。
0657デフォルトの名無しさん
2012/06/09(土) 14:29:02.04積極的にやるかどうかはあるけど、動的型付けの方が便利な場合もあるし。
まぁ、型チェックがしっかりしてればどちらでもいいけど。
0658デフォルトの名無しさん
2012/06/09(土) 14:30:03.83小さいスクリプトなんてのは実行前にわからない事だらけなんだ。
小さいから書き捨てもする。小さいからぱっと見ればすべてが分かる。
だからそんなのまで静的がどうとか言ったりはしない。
ただ大規模(何人もの人が何ヶ月もかかって作るもの)で動的言語はねーよ。
コードのほんの数行(全体の0.01%ぐらい?)を見せられて、
ここに変なオブジェクトが入る可能性はありますか?
ここを変更するときに影響が及びそうな部分はどこですか?
聞かれてもすぐには答えられんでしょ。
0659デフォルトの名無しさん
2012/06/09(土) 14:31:13.92(人間がやる)「型チェックがしっかりしている。」ということを
客観的に証明できる方法があればいいんだけどね。
0660デフォルトの名無しさん
2012/06/09(土) 14:45:05.07型を意識してプログラムするけど、チェックは
機械がするものじゃない?
0661デフォルトの名無しさん
2012/06/09(土) 15:04:42.16それは言い方の問題だね。
型チェックに関するコードを書くことを
人間がやる型チェックって言っただけ。
0662デフォルトの名無しさん
2012/06/09(土) 15:42:04.770663デフォルトの名無しさん
2012/06/09(土) 15:52:48.81現在の対応状況としてはこんな感じかな。
http://ja.wikipedia.org/wiki/%E5%9E%8B%E6%8E%A8%E8%AB%96
型推論を持つ言語としてはHaskell、ML、Vala、C#、Scala、Objective Caml、D言語、
Concurrent Clean、C++11などがある。Javaでも導入が検討されている。
静的型付け関数型言語のほとんどが型推論の機能を持っている。
0664デフォルトの名無しさん
2012/06/09(土) 17:11:41.06俺が考えてることを推論して適切にやってくれ
0665デフォルトの名無しさん
2012/06/09(土) 17:51:14.780666デフォルトの名無しさん
2012/06/09(土) 19:17:53.490667uy
2012/06/10(日) 02:54:06.92>型チェックを実行前に行える機能
ある程度は実行前にチェックできるけど動的言語って時点で100%のチェックは出来ない
それでもあったほうがいいんだろうけどな
でもそれなら、「この変数は型チェックできていません」みたいなログ出力も必要になってくる
ノウハウが足りない
>>647 のように、型をソースコード中に沢山かいていけば、
限りなく100%に近い型チェックはいずれできるようになる、でもそれなら最初から実行前型チェックできる静的言語使えって話
結局動的言語内での「型チェック」は単なるシンタックスシュガーのひとつ
ソースコード中に型情報をかいていけばエラーは減らせるが
この方向性に進むのは間違いだと書いてから気づいた
静的言語よりも性能の悪いチェックが出来ないというマイナス点の補強は
ソースコード内において補強するのではなく、全てはIDEやコンパイラなどの外部ツールに任せる
言語シンタックスは、安全性を高めるのではなく
静的言語よりも優位な動的なコード生成のプラス点を伸ばすべき
0668uy
2012/06/10(日) 02:55:30.37静的言語よりも性能の悪いチェックしか出来ない
0669デフォルトの名無しさん
2012/06/10(日) 03:11:14.85あんまり使わん機能だそれはw
コードジェネレータで十分。
0670uy
2012/06/10(日) 07:05:06.700671デフォルトの名無しさん
2012/06/10(日) 16:20:26.79ユニークな手法だったらそれだけで論文一本になってしまう
たぶん、動的型付けの発想からすると
健全性とかはどうでもいいから、一部の矛盾が見つかれば十分のはずではあるが
そういう研究あるのかなあ
0672デフォルトの名無しさん
2012/06/10(日) 16:57:57.500673デフォルトの名無しさん
2012/06/10(日) 17:04:09.31たしかに動的型付け言語そのものは理論/実装とも普及している技術だ
ただし、>>671が指摘しているのは、
「動的型付け言語の(部分的な)型推論」だろ?
これは学術的にもホットな話題だと思うけどね
まあ、型推論(あるいは型理論)を知らなければ、
そういった反応になるのはしかたないのかもしれんが....
0674uy
2012/06/10(日) 18:11:56.23それらを組み合わせる形でプログラミングするしかない気がする
大規模な開発はやらずに、大半をライブラリに頼って小規模になるように作るとか
静的型付け言語の問題点として言うなら、一度書いたソースをリファクタリングする時に
困難になる事、一度長々とソースを書いてしまったら、
あとからFuncA,FuncB,FuncCでひとつにまとめられる(かもしれない)としても、
実際そのリファクタリングを静的言語じゃやらないだろ
引数の型や数を1個1個、書き換えていくのが面倒で、勝手に脳内で「出来ない」という事にされているかもしれない
動的言語のソースコードがやけに短くなるのは型情報がどこにもないからリファクタリングの手間が少ないので
やろうかなって気になるから結構な割合でリファクタリングが成されて行数が抑えられる
動的言語では数行〜数十行なプログラムを静的言語では数百行とかになってしまうのは
ライブラリの充実度のほかに、リファクタリングを楽に行えるか行えないかの違いがあると思う
実際アルゴリズムを思考してるときなんかは、コンパイル時の型エラーとか邪魔でしかない
アルゴリズム思考中は、途中でエラー落ちしてもいいから動いて欲しい時の方が多い
だから静的言語は、アルゴリズムが推敲されず単純な式でかいていくしかない上に、あとからのリファクタリングも困難で
大規模(笑)な開発にしなくてもいいものまで、大規模(笑)にしてしまっている
とりあえずゲーム開発に関してだけは自信を持っていえるがたとえ大規模であろうと動的言語の方が格段に良い
つうかまともなゲーム開発であればC++でゲームかいててもスクリプトの導入くらいは1000年前からしてたはずだけどな
0675デフォルトの名無しさん
2012/06/10(日) 18:15:35.48713 自分:デフォルトの名無しさん[sage] 投稿日:2012/02/24(金) 03:31:48.38
POPLにRubyを題材にした型推論手法の論文が出ててびっくりした
本当にメジャーな言語になったんだなあ
Dynamic inference of static types for ruby
http://dl.acm.org/citation.cfm?id=1926385.1926437
0676デフォルトの名無しさん
2012/06/10(日) 18:38:10.970677デフォルトの名無しさん
2012/06/10(日) 19:14:20.040678デフォルトの名無しさん
2012/06/10(日) 19:20:33.15> 実際アルゴリズムを思考してるときなんかは、コンパイル時の型エラーとか邪魔でしかない
> アルゴリズム思考中は、途中でエラー落ちしてもいいから動いて欲しい時の方が多い
思考してる時になんで動かすんだよ?
途中で落ちたら、そこで考えが中断されるじゃん。
eclipseを使った場合はこう。
コンパイルは不要。書いている時にミスがあれば該当箇所が赤くなるだけ。
そっちの方がアルゴリズム思考は楽だ。
0679デフォルトの名無しさん
2012/06/10(日) 19:25:06.38> 動的型付け言語の(部分的な)型推論は非常に難易度が高い
> ユニークな手法だったらそれだけで論文一本になってしまう
動的型付け言語だと、型が実行時にしかわからないものなので、
推論は出来ない。難易度が高い。ではなくできないんよ。
推論ってのはなにもない所から何かを見つけ出すのではなく、
aならばb、bならばcという事実から、aならばcというようなルールを見つけ出すこと。
似たようなものに、実行時の値から型を推論し、型に応じて最適な形にコンパイルする技術はある。
だけどこれだって、実行前にわかるわけじゃない。
静的な型推論は、所詮静的言語のためにある技術。
0680デフォルトの名無しさん
2012/06/10(日) 19:35:12.54http://www.jetbrains.com/ruby/
> On-the-fly code analysis throughout the project tree with type inference
> and quick-fixes
でも使ってる人を知らないし使おうとも思わないなあ
0681デフォルトの名無しさん
2012/06/10(日) 19:36:19.07> 静的型付け言語の問題点として言うなら、一度書いたソースをリファクタリングする時に
> 困難になる事、一度長々とソースを書いてしまったら、
> あとからFuncA,FuncB,FuncCでひとつにまとめられる(かもしれない)としても、
> 実際そのリファクタリングを静的言語じゃやらないだろ
なんで? よくやるよ。どうやら君の知らない世界らしいねw
まず、「メソッドの抽出」 これはコードの一部分をメソッドに分ける機能だがなんと!
FuncA、FuncB、FuncCが意味的に同じであれば(変数名が違っていたとしても)
一つにまとまってくれる。
君が思ってであろう難しい作業は、静的型付け言語なら、範囲を選択してコマンドを一つ叩くだけで終わりだ。
一度書いたソースをリファクタリングするのに、静的型付け言語はものすごくやりやすくなるんだよ。
信じられない?
http://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-refactoring/
> このリファクタリングが役立つのは、大きすぎるメソッドを複数のブロックに分割し、
> そのそれぞれを独立したメソッドにする場合です。また、多数のメソッドで同じコードが何度も
> 使用されている場合にも役立ちます。再利用されているコード・ブロックのいずれか 1 つを選択してリファクタリングすると、
> Eclipse がそのコード・ブロックが使われている 【他の箇所】 も探し出して、新規メソッドへの呼び出しに置き換えてくれます。
0682デフォルトの名無しさん
2012/06/10(日) 19:39:36.00それを超えると急に難しくなる系は受託開発に向いてないと思う
0683デフォルトの名無しさん
2012/06/10(日) 19:41:53.58部分的な、という所の意味を正確にしないと
出来るも出来ないも言えない
例えばPythonにはこんなのもある
http://www.unixuser.org/~euske/python/pyntch/
実際に動かしてみれば動的型付けであっても
型推論で分かることが多いと気付くはず
0684デフォルトの名無しさん
2012/06/10(日) 19:51:30.88それは、処理対象に間違ったコードが含まれていた場合。
例えば文字列を渡すべき関数に変なオブジェクトを
渡しているコードがあった場合に、
間違った推論をするのか、それとも推論の結果から
コードがおかしいことを指摘をしてくれるのか
どっちなんだい?
0685683
2012/06/10(日) 19:52:09.08例えばこんなコードがあるとするだろ
class F(object):
def __init__(self):
self.x = 0
def add(self, x):
return self.x + x
def foo():
x = F()
bar(x)
def bar(x):
print(x.add('0'))
すると、数と文字列を加算しようとする型エラーが静的に見つかる
まあ、個人的にはここまでするなら静的型言語使えって言いたいけどな
0686デフォルトの名無しさん
2012/06/10(日) 19:55:39.32出来ないと言う人は固有名詞が出てこない
具体的に何をやろうとしているのか分かってないから出来ない
0687デフォルトの名無しさん
2012/06/10(日) 19:57:23.100688デフォルトの名無しさん
2012/06/10(日) 19:59:38.55Pythonって文字に+メソッドって追加できないの?
+は数値にしか用いられない記号であれば、
その程度は出来そうだね。
でもメソッドはどうなんだろう。
Rubyみたいに、どんなオブジェクトでも+を使えるようになっていたら、
オブジェクトではなく、特定のインスタンスだけに、メソッドが追加できるような
言語は、激しくリファクタリングと相性が悪いだろうね。
0689デフォルトの名無しさん
2012/06/10(日) 20:03:18.13Pythonの+は__add__メソッドを呼び出してる
だけだから追加できるよ
ていうか文字列と文字列は+で連結できる
0690デフォルトの名無しさん
2012/06/10(日) 20:10:04.44「動的型付け言語」というよりはむしろ「オブジェクト指向言語」じゃないか
0691デフォルトの名無しさん
2012/06/10(日) 20:19:52.32Rubyの問題ってことか。
0692デフォルトの名無しさん
2012/06/10(日) 20:30:43.45Rubyだけじゃないだろ。
型が実行時までわからなければ、コンパイラ、IDEが
できることは相当少なくなる。
これが開発の生産性を相当落としている
0693デフォルトの名無しさん
2012/06/10(日) 20:32:53.43生産性落としてるってふだんLLなに使ってるの?
0694デフォルトの名無しさん
2012/06/10(日) 20:34:13.78他の同じコードが全部まとまるなんて
羨ましすぎるよ。
汚いコードはこれで綺麗にできる。
0695デフォルトの名無しさん
2012/06/10(日) 20:39:46.84自己否定しやすい言語が本当に正しい言語なのかという疑問がある
0696デフォルトの名無しさん
2012/06/10(日) 20:43:30.26屁理屈だなw
0697デフォルトの名無しさん
2012/06/10(日) 20:54:59.40いまは小さなメソッドでコードを構成するのが主流だし
0698デフォルトの名無しさん
2012/06/10(日) 20:58:24.60頭が悪いの?
0699デフォルトの名無しさん
2012/06/10(日) 21:22:37.56スクリプト言語はやむをえずJavaScriptを使っているくらい。
もちろん、Webアプリのクライアントサイド用途。
あとは、開発生産性がいい、C# + Visual studio。
パフォーマンスが大事なごく一部のみCを使う場合もある。
スクリプトはデバッグがめんどくさいし勘弁して欲しい
0700デフォルトの名無しさん
2012/06/10(日) 21:43:56.720701デフォルトの名無しさん
2012/06/10(日) 21:49:01.13それ以上ならスクリプトはありえない。
0702デフォルトの名無しさん
2012/06/10(日) 22:02:46.24デバッガありの開発に慣れてるとスクリプト言語のデバックは
やりづらく感じるよね。
スクリプト言語はスクリプト言語の良さがあるけど、やっぱり最後は
C言語かなと思う。
C#はほとんど使ったこと無いからよくわからんが
そんなにいいもんなのか?
0703デフォルトの名無しさん
2012/06/10(日) 22:19:47.410704デフォルトの名無しさん
2012/06/10(日) 22:22:17.93コード書いてる時間やアルゴリズム考えてる時間よりも
型を考えてる時間のが長いように感じてしまう。
いいじゃん解ってんだから、聞かないでよ。と思っちゃう。
0705デフォルトの名無しさん
2012/06/10(日) 22:23:08.210706デフォルトの名無しさん
2012/06/10(日) 22:28:03.16すべてintとしてコード書けばいいだけじゃないか。
0707デフォルトの名無しさん
2012/06/10(日) 22:30:12.43それじゃ構造体使えないじゃないか…
0708デフォルトの名無しさん
2012/06/10(日) 22:35:50.700709デフォルトの名無しさん
2012/06/10(日) 22:39:24.220710デフォルトの名無しさん
2012/06/10(日) 22:40:24.38参照型を使うならJavaでもRubyでも使えるが、遅い
0711デフォルトの名無しさん
2012/06/10(日) 22:43:16.640712デフォルトの名無しさん
2012/06/10(日) 22:51:41.260713デフォルトの名無しさん
2012/06/10(日) 23:16:09.540714デフォルトの名無しさん
2012/06/11(月) 00:22:14.36変数が全部参照型ってことじゃね
0715デフォルトの名無しさん
2012/06/11(月) 00:25:07.22C++のコードを編集したりとか、ちょっとした計算に
たまにヒマ潰しにゲーム書いては捨てたり
この板の質問や宿題のスレ覗いて面白そうな題材を探しては書いてみたり
0716デフォルトの名無しさん
2012/06/11(月) 00:26:18.09Rubyではしていることもあるし、していないこともある
0717デフォルトの名無しさん
2012/06/11(月) 02:00:24.540718uy
2012/06/11(月) 03:00:46.74誰がIDEの機能を紹介しろっつった?
その程度の作業をリファクタリングとは俺の中で呼んでいない
アルゴリズムの根本を変えて
メソッドの引数も型も全てが変わっていくとき
静的言語では「それは出来ない事」と、されているよ
君の知らない世界では、出来ないと思われてた事までやってるんだよ
それが静的言語が動的言語から明らかに劣っているもののひとつ
結果として、動的言語では出来るリファクタリングのいくつかを行えないから静的言語で書くとソースコード量が膨大になる
0719uy
2012/06/11(月) 03:07:39.05>> あとからFuncA,FuncB,FuncCでひとつにまとめられる(かもしれない)としても、
ってかいてるのに
>FuncA、FuncB、FuncCが意味的に同じであれば(変数名が違っていたとしても)
>一つにまとまってくれる。
全然、話がズレてるのな
意味的に同じメソッドを2つも3つも定義してコーディングしちゃうようなゴミカスコードを機械的にリファクタリングじゃなくて
俺は
FuncA,FuncB,FuncC を、「プログラマ自身がアルゴリズムを考えなおせばまとめられるかもしれない」と言ったんだ
IDEがアルゴリズム考えてくれるのかね
結論からいえば静的言語でこのリファクタリングは100%行わない
型情報を書き直す手間がかかりすぎるから
0720デフォルトの名無しさん
2012/06/11(月) 04:11:50.33> その程度の作業をリファクタリングとは俺の中で呼んでいない
↓
>>674でuyが言ったこと
> あとからFuncA,FuncB,FuncCでひとつにまとめられる(かもしれない)としても、
> 実際そのリファクタリングを静的言語じゃやらないだろ
自分でリファクタリングといっておきながら
それを気付かれないように、訂正w
いや、バレバレだからw
0721デフォルトの名無しさん
2012/06/11(月) 04:37:48.23お前はやらないんだろうが、例えばLinuxなんか、
静的言語でリファクタリングしてるだろう。
なんで静的言語だとリファクタリングしないと思ってるわけ?
有名なリファクタリング本の一つ、「リファクタリング―プログラムの体質改善テクニック」は
Javaを題材にしている。
お前は世間が狭すぎるよ。
IDEがアルゴリズム考えない。動的言語でもアルゴリズムは考えないだろう。
はい、そこに差は全くありません(笑)
型情報を書き直す手間? それは動的言語のほうが手間がかかるだろう。
例えばメソッドが一個減ったとする。さあ、他にこのメソッドを使っている所を探せ!
メソッド名がgetだったりしたら大変だ。・・・動的言語なら。
静的言語ならすごく簡単。なにせ一つ型情報を書き換えたら、関連コード全て自動で洗い出し、
ある程度は自動的に書き換えも行なってくれる。
そんなかんなでアルゴリズムを整理していけば、結果として似たようなコードが出来る。
そこでまたリファクタリングブラウザの登場だ。変数名違うけど本当に同じ?
なんてこと考えずに自動でやってくれる。
そしてもちろんテストコードを実行すれば、リファクタリング完了。
あ、テストコードの修正も忘れずに、動的言語は大変だw
0722デフォルトの名無しさん
2012/06/11(月) 04:40:53.68もう一人増えたら手に負えない
0723デフォルトの名無しさん
2012/06/11(月) 04:43:27.600724デフォルトの名無しさん
2012/06/11(月) 04:52:00.94すべて静的言語でも
できる。
0725デフォルトの名無しさん
2012/06/11(月) 05:35:52.70すべてアセンブラでも
できるよな?
0726デフォルトの名無しさん
2012/06/11(月) 05:44:45.22かなり無理があるが
すべて静的言語でも
できる。
0727デフォルトの名無しさん
2012/06/11(月) 05:59:21.60静的言語で日常的に行われてる上に
動的言語よりも簡単に行える。
0728デフォルトの名無しさん
2012/06/11(月) 07:47:35.46役に立たないゴミも簡単にクビにできないので、
そういうゴミには使いもしないコードの変数名関数名を
延々とリネームする作業をさせます。
こんなことが動的言語にできますか?
0729デフォルトの名無しさん
2012/06/11(月) 07:53:32.88関数名が衝突したりした結果として、挙動に重大な問題が生じた場合
そもそも変更後のコードはスモークテストすら通らないだろう
0730デフォルトの名無しさん
2012/06/11(月) 08:29:44.86そのうち指示に従うゴミと従わない人間しかいなくなる
ゴミは静的言語を使い続け、人間は動的言語を使うようになる
0732デフォルトの名無しさん
2012/06/11(月) 11:53:53.85何故?
0733デフォルトの名無しさん
2012/06/11(月) 12:21:22.240734デフォルトの名無しさん
2012/06/11(月) 13:00:12.67お前にとってのリファクタリングが
どういうものか分かったよw
つまりね、お前素人すぎじゃん。
0735デフォルトの名無しさん
2012/06/11(月) 13:04:12.620736uy
2012/06/11(月) 13:32:37.01効率のいい技術を流布するというのは
めぐりめぐってIT企業の寿命と収入を減らす行為となる
誰にでもすぐ覚えられる言語を流布したら本が売れなくなる
質の良いフリーウェアが増えまくったら、シェアウェアが売れなくなる
小中学生のうちからプログラミング覚えられたら、教育機関の生徒数が減る
けれどもプログラマ()というのは効率のいいものを使おうとする
面白いよね面白い
0737デフォルトの名無しさん
2012/06/11(月) 13:44:07.45ロボット生産をすればするほど人は必要なくなる。
それと同じだよ。
今頃そのことに気づいたのかい?
0738uy
2012/06/11(月) 14:06:07.13そうじゃなければ効率的手法を流布したりしない
プログラミングっていうのは、ゴミみたいなコミュ障を量産するものだと思うよ
だから世の中からさっさとプログラマを撲滅しようと、俺はそれをひとつの趣味にして生きてる
0739デフォルトの名無しさん
2012/06/11(月) 14:19:18.12撲滅しろ。
0740uy
2012/06/11(月) 14:46:36.35趣味PGは歓迎でございます
0741デフォルトの名無しさん
2012/06/11(月) 16:35:35.040742デフォルトの名無しさん
2012/06/11(月) 16:36:10.02それがPG
0743デフォルトの名無しさん
2012/06/11(月) 17:02:39.02print map(lambda x: x*2, filter(lambda x: x>2 and x<5, [1,2,3,4,5]))
■Ruby
puts [1,2,3,4,5].select{|i| i > 2 and i < 5}.map{|i| i*2}
■C#
new{}{ 1,2,3,4,5 }.Where(x => 2 < x && x < 5).Select(x => x*2);
■Haskell
print [x*2| x <-[1,2,3,4,5], x > 2, x < 5]
0744デフォルトの名無しさん
2012/06/11(月) 17:07:03.57捨てていいよ
0745デフォルトの名無しさん
2012/06/11(月) 17:09:50.74Pythonの優勝だよ!やったね!
0746デフォルトの名無しさん
2012/06/11(月) 17:11:53.18・僕にとっての Haskell は Better C++ あるいは Better Python なのさ
・Haskell を使えない C++er とか…(失笑
・とりあえず Python は劣化 Haskell ってイメージ
・まぁ正直 C++ 使うくらいなら Haskell 使ったほうがいいよねぶっちゃけ。
C++ より速くて、Perl より簡潔で、
Python よりきちんとしていて、Ruby より柔軟で、
C# より型が充実していて、Java より頑強で、
PHP とは何の共通点もない
言語を作ろうとした結果に出来たものは Haskell だったんだね。
0747デフォルトの名無しさん
2012/06/11(月) 18:51:13.88解析しにくいコードを見ただけで発狂する人がいない
0748デフォルトの名無しさん
2012/06/11(月) 18:57:55.830749デフォルトの名無しさん
2012/06/11(月) 23:16:58.190750デフォルトの名無しさん
2012/06/12(火) 02:21:28.64phpinfo()を表示させてもpdoの項目が全く表示されません
どうすればいいですか?
一応php.iniでは以下の部分のコメントアウトを外しました
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
0751デフォルトの名無しさん
2012/06/12(火) 02:46:14.57せいかい PythonかRubyを使う
0752デフォルトの名無しさん
2012/06/12(火) 03:03:06.78WindowsのPHP 5.2ではextension=php_pdo.dllが必要っぽいけど
WebProg板で聞いたほうがいいんじゃないか
0753uy
2012/06/12(火) 04:42:42.87n=(1..5).select do |i|
(3..4) === i
end.each_with_object(2).map &:*
p n
0755デフォルトの名無しさん
2012/06/12(火) 07:02:14.63手間が省ける
0757デフォルトの名無しさん
2012/06/12(火) 07:37:26.03print[x*2|x<-[1..5],x>2,x<5]
0758デフォルトの名無しさん
2012/06/12(火) 07:40:51.670759デフォルトの名無しさん
2012/06/12(火) 07:46:09.380760デフォルトの名無しさん
2012/06/12(火) 07:50:49.79ていうかC#だけ出力してないじゃん
0761デフォルトの名無しさん
2012/06/12(火) 08:48:21.79Ruby意味不明だな、:*ってなんだよ・・・
0762デフォルトの名無しさん
2012/06/12(火) 08:53:09.66全くこれだから計算機科学の教養がない奴は。
0763uy
2012/06/12(火) 08:55:53.69本気をだしたrubyに勝てるとか勘違いされても困るというか
0764デフォルトの名無しさん
2012/06/12(火) 08:58:07.180765デフォルトの名無しさん
2012/06/12(火) 09:34:54.630766デフォルトの名無しさん
2012/06/12(火) 11:41:57.390767デフォルトの名無しさん
2012/06/12(火) 16:17:24.440768デフォルトの名無しさん
2012/06/12(火) 17:18:43.77(0..5)に変えただけで条件部のコードも変更する必要がある
0769デフォルトの名無しさん
2012/06/12(火) 17:22:39.16Haskellの一人勝ち。
0770デフォルトの名無しさん
2012/06/12(火) 17:34:54.50今のところRubyの圧勝だろキモさでは。
0772デフォルトの名無しさん
2012/06/12(火) 17:45:41.30Haskell以外は見るに堪えない。
0773uy
2012/06/12(火) 18:09:12.71何も考えずに使える記号片っ端から使って実装した言語って感じ
0774デフォルトの名無しさん
2012/06/12(火) 19:09:24.10暇だったらやってみよっ
0775デフォルトの名無しさん
2012/06/12(火) 23:57:27.61+:(((>&2)*.(<&5)) a) # a=:1+i.5
リファレンス見ながら、書いてみた
もっと短く出来るのかも知れないけど、俺には無理だ。
0776デフォルトの名無しさん
2012/06/13(水) 01:04:58.73foreach( ... )
{
if( ... ){ continue; }
....
}
形式が一番読みやすい。
0777デフォルトの名無しさん
2012/06/13(水) 01:15:42.78じゃあそれで>>743を書いてみてくれ
0778デフォルトの名無しさん
2012/06/13(水) 01:22:27.24(print (loop for x in '(1 2 3 4 5) if (< 2 x 5) collect (* x 2)))
R
print((function(){x<-c(1,2,3,4,5);x[2<x&x<5]*2})())
0779デフォルトの名無しさん
2012/06/13(水) 02:08:42.95(print (for [x [1,2,3,4,5] :when (< 2 x 5)] (* x 2)))
0780デフォルトの名無しさん
2012/06/13(水) 02:30:06.53冗長すぎて異様に浮きそうだな
0781デフォルトの名無しさん
2012/06/13(水) 02:49:48.69+:(5&>#])(2&<#])(1+i.5)
0782デフォルトの名無しさん
2012/06/13(水) 02:59:34.85(1 to: 5) select: [:x | x between: 3 and: 4] thenCollect: [:x | x * 2]
0783デフォルトの名無しさん
2012/06/13(水) 03:00:57.69使って書きなおしたぐらいじゃないのか?
new{}{ 1,2,3,4,5 }.Where( new Filter<Int>(){public bool apply(Int x) {return 2 < x && x < 5;}} ).Select( new Function<Int>(){public Int apply(Int x) {return x*2;}} );
まあこんなメソッドはないけれど概ねあってると思う
0784デフォルトの名無しさん
2012/06/13(水) 03:01:12.00Cでもこの程度だしな。
0785デフォルトの名無しさん
2012/06/13(水) 03:06:28.36new{}{ 1,2,3,4,5 }.Where(x -> 2 < x && x < 5).Select( x-> x*2);
0786デフォルトの名無しさん
2012/06/13(水) 03:24:02.020787デフォルトの名無しさん
2012/06/13(水) 03:30:01.34言語仕様的に可能だろうってこと。
あと配列の宣言は知らない。
0788デフォルトの名無しさん
2012/06/13(水) 05:11:22.55こういうのが苦手なのはPrologだろう。引数で戻していくから。
0789デフォルトの名無しさん
2012/06/13(水) 06:05:55.300790デフォルトの名無しさん
2012/06/13(水) 06:22:33.520791デフォルトの名無しさん
2012/06/13(水) 08:08:31.88printはp, mapはm, filterはf, selectはsに置き換えれば
どの言語も短くなるな
バカじゃねーの
0792デフォルトの名無しさん
2012/06/13(水) 08:50:24.52f = filter
と書くだけで置き換えられる言語と
引数や型を明示する言語と
あと、全てのファイルを検索して置換する言語もあるのかな
0793デフォルトの名無しさん
2012/06/13(水) 09:04:51.44mはPerlの正規表現、pはRubyの関数と紛らわしいぞ
0794デフォルトの名無しさん
2012/06/13(水) 09:06:28.12オンメモリデータベース言語だよ。
0795デフォルトの名無しさん
2012/06/13(水) 12:23:01.771..5 -lt 5 -gt 2 | % { $_ * 2 }
0797デフォルトの名無しさん
2012/06/13(水) 12:49:18.10>>781
何この変態言語
0798デフォルトの名無しさん
2012/06/13(水) 13:21:08.470799uy
2012/06/13(水) 13:38:51.240800デフォルトの名無しさん
2012/06/13(水) 13:59:03.320801デフォルトの名無しさん
2012/06/13(水) 14:01:31.07このスレって有意義な議論が何もないな。いかに変態的に書けるかを考えてるだけで
実用上の話はない。プログラミングに向いてない奴らのドヤ顔スレ
0802uy
2012/06/13(水) 14:17:01.36IDE補完があれば文字数が長くても良いなんていう勘違いしてんのかね
こういう考えの奴が本気で効率が出ると勘違いしてJAVAみたいな言語作っちゃったんだと思う
0803デフォルトの名無しさん
2012/06/13(水) 14:29:28.66http://nojiriko.asia/prolog/index.html 言語の問題というより・・
0804uy
2012/06/13(水) 15:17:46.53カレントディレクトリで
Dir["**/*"].each {|n| File.unlink n } でいいかね
0805デフォルトの名無しさん
2012/06/13(水) 15:21:04.070806デフォルトの名無しさん
2012/06/13(水) 15:22:18.550807デフォルトの名無しさん
2012/06/13(水) 18:55:49.31もちろん書き捨てならなんでもいいけど
0808デフォルトの名無しさん
2012/06/13(水) 19:03:04.560809デフォルトの名無しさん
2012/06/13(水) 19:05:32.430810デフォルトの名無しさん
2012/06/13(水) 19:11:20.82読めない奴はプログラミングに向いてないみたいな大量のコード
後者はコストとリスクが高くてリターンが低い
0811デフォルトの名無しさん
2012/06/13(水) 19:41:10.950812デフォルトの名無しさん
2012/06/13(水) 19:54:16.450813デフォルトの名無しさん
2012/06/13(水) 19:55:20.700814デフォルトの名無しさん
2012/06/13(水) 20:11:08.420815デフォルトの名無しさん
2012/06/13(水) 20:29:51.900816デフォルトの名無しさん
2012/06/13(水) 20:34:29.63そう考えると、可読性を強制してくるPythonか。。。
0817デフォルトの名無しさん
2012/06/13(水) 21:16:49.86最低限C言語用に作られたライブラリをそのまま読み込める必要がある。
C言語とメモリレイアウトをコンパチにするとLLの利点が無くなるし、
かといってマーシャリングは大変だ。
どちらにしてもCのヘッダ、それもwindows.hみたいなMSコンパイラ依存な
ヘッダとlibを読み込めるようにする必要がある。
やってられん。
0818デフォルトの名無しさん
2012/06/13(水) 21:47:54.79Cのヘッダに対応するってことは、結局C言語をフルでサポートするってことになる。
文法をC互換にすると、統一感は出るが、
C言語由来の構文はシンプルで、LLで新たに追加した構文がむしろ冗長な表現になったり、
LLのうまみが損なわれて、狙いがまるで分からなくなる。
かといって、"C"{ }の中身はC言語と解釈、とかやって、Cを封じ込めることで自言語の構文を守っても、
それはそれでカオスになってLLっぽくないし、もっと気軽に外部のライブラリを呼び出したい。
そもそも、文法がカオスになってもかまわないのなら、
C++で連想配列使ってLLっぽくプログラミングしてもかまわないわけで。
0819デフォルトの名無しさん
2012/06/13(水) 21:54:40.540820デフォルトの名無しさん
2012/06/13(水) 22:40:31.77新たに言語を作ればいいじゃない
0821デフォルトの名無しさん
2012/06/13(水) 23:04:18.800822デフォルトの名無しさん
2012/06/13(水) 23:05:26.540823デフォルトの名無しさん
2012/06/13(水) 23:15:00.670824デフォルトの名無しさん
2012/06/13(水) 23:39:28.61英語なんて、しゃべるのはさすがにしんどいが、技術書読む程度なら計算機工学を
専攻してる人なら、読み書きはなんら不自由なくできるだろ
0825デフォルトの名無しさん
2012/06/13(水) 23:45:48.81文字数が少なければ良いワケではないが
リスト処理系の関数は単なるループよりも
処理の本質を表してて分かりやすいと思うよ
0826デフォルトの名無しさん
2012/06/13(水) 23:52:53.67マクロはcpp通したら駄目かな?
0827デフォルトの名無しさん
2012/06/13(水) 23:54:05.46階乗の本質を表していて分かりやすい
0828デフォルトの名無しさん
2012/06/14(木) 00:06:17.180829uy
2012/06/14(木) 05:02:23.54そのままで動くっていうのが大事なんだろうな
Cのライブラリをラップしてrubyで使えるようにするっていうんじゃなくて
そういう意味ではCにほぼ互換性を持ったC++は、今までのプログラム言語歴史の中でもかなり凄い
つうか文法以前に型サイズとかの問題が発生するから動的言語内でCそのまま動かすのはきつすぎな気がする
ライブラリ側をなんとかdll化して読み込んだ方が現実的
0830デフォルトの名無しさん
2012/06/14(木) 11:37:31.51Haskellってiota相当もいちいち手書きしないといけないのか。だっせー言語な。
0831デフォルトの名無しさん
2012/06/14(木) 11:53:01.87いや、そのレスはHaskellディスるためのものだと思うが…
0832デフォルトの名無しさん
2012/06/14(木) 13:14:02.17>そういう意味ではCにほぼ互換性を持ったC++は、今までのプログラム言語歴史の中でもかなり凄い
今でこそ独立したC++処理系は存在するけど、C++が登場した当時は
(Ratforと同様な)Cコンパイラ向けのプリプロセッサという位置付けだった
歴史さえ知っていれば、C++のC互換性はさほど驚くような話ではない
0833デフォルトの名無しさん
2012/06/14(木) 13:21:10.24どっちみち、アセンブリ言語や機械語に変換してるから同じようなものだが
0834デフォルトの名無しさん
2012/06/14(木) 14:06:56.63ポイントフリー厨かよ
fact n = foldl (*) 1 [1..n]
0835デフォルトの名無しさん
2012/06/14(木) 19:15:36.63scanはfoldとiotaとfactの本質を表している
0836デフォルトの名無しさん
2012/06/14(木) 21:29:26.15> つうか文法以前に型サイズとかの問題が発生するから動的言語内でCそのまま動かすのはきつすぎな気がする
Objective-CはSmalltalk内にCが書けるようなもんらしいよ。
0837デフォルトの名無しさん
2012/06/14(木) 22:03:15.320838デフォルトの名無しさん
2012/06/14(木) 22:05:21.53いや、それは逆で、C内にSmalltalkが書けるのがObjective-Cだ
これもC++と同様にCコンパイラのプリプロセッサとして実現されていたから、
Cとの親和性が高いのも当然の話になる
>>818
>そもそも、文法がカオスになってもかまわないのなら、
>C++で連想配列使ってLLっぽくプログラミングしてもかまわないわけで。
そういう意味では、C/C++インタプリタであるCINTという処理系をLLとして使うことを検討すべし
CINTの設計目標の一つには「コンパイラとの透過的な接続性」がある
具体的にはCINTの付属ツールであるmakecintコマンドがC++ヘッダを解析して、
完全な(CINTインタプリタとCライブラリ間の)接続コードを自動生成してくれる
それどころか、C/C++コード内に他のインタプリタ(たとえばRuby)のコードを埋め込む拡張構文もある
あと、このスレ向きの話題としては、対話環境での活用を強く意識した独自のクラスライブラリがあり、
CINTの設計者は、これを利用したプログラミングスタイルを「C++スクリプト」と命名している
0839デフォルトの名無しさん
2012/06/14(木) 22:26:42.54wktk
0840デフォルトの名無しさん
2012/06/14(木) 23:26:15.33http://wired.jp/2012/06/13/berkeley-programming-languages
マイノリティがドヤ顔してるアカデミック()な言語は糞だってことだ
0841デフォルトの名無しさん
2012/06/15(金) 00:46:11.020842デフォルトの名無しさん
2012/06/15(金) 04:01:23.72好きな場所で好きな言語を自在に混ぜられるようにしたらいいじゃない
0843uy
2012/06/15(金) 06:26:51.00歴史は知らんけど
過去の言語との互換性を持って、次の言語を作るというスタイルに
他の言語も続いていれば今頃こんな事にはなってなかった
0844デフォルトの名無しさん
2012/06/15(金) 08:30:00.770845Perl忍者 ◆M5ZWRnXOj6
2012/06/15(金) 08:51:51.440847デフォルトの名無しさん
2012/06/15(金) 12:57:04.310848uy
2012/06/15(金) 14:55:48.800849デフォルトの名無しさん
2012/06/15(金) 15:04:42.970850デフォルトの名無しさん
2012/06/15(金) 15:05:06.960851デフォルトの名無しさん
2012/06/15(金) 15:05:23.410852デフォルトの名無しさん
2012/06/15(金) 15:06:55.560853uy
2012/06/15(金) 15:19:28.270854デフォルトの名無しさん
2012/06/15(金) 18:15:34.60C言語と互換性があることには、
何の関係もないわな。
たとえPascalのコンパイラをC言語へのトランスレータとして実装したとしても、
PascalがC言語互換になるわけではないしな。
0855デフォルトの名無しさん
2012/06/15(金) 18:42:14.05トランスレータとプリプロセッサの違いが分からないのねw
0856デフォルトの名無しさん
2012/06/15(金) 18:55:35.67PascalをC言語にトランスレートしてからwindows.hをインクルードしたいという話だから
PascalでOKだ
スクリプト言語は逆に、C言語の関数をスクリプトの関数に変える
例えばC言語のmain関数がシェルスクリプトのコマンドになる
べつにmainの型を宣言したヘッダファイルをいちいち読む必要はない
0857デフォルトの名無しさん
2012/06/15(金) 20:00:47.88Cで出来なくなったのは残念だった
0858デフォルトの名無しさん
2012/06/15(金) 20:18:56.51>PascalでOKだ
トランスレート後にヘッダ読み込む方法は、LL的にはまずいだろ。
0859デフォルトの名無しさん
2012/06/15(金) 20:24:10.840860デフォルトの名無しさん
2012/06/15(金) 20:24:25.78>>例えばC言語のmain関数がシェルスクリプトのコマンドになる
>>べつにmainの型を宣言したヘッダファイルをいちいち読む必要はない
これも変なこといってるよな。
型が分からなきゃ、やり取りできんよ。
0861デフォルトの名無しさん
2012/06/15(金) 20:30:15.160862デフォルトの名無しさん
2012/06/15(金) 20:30:22.75>べつにmainの型を宣言したヘッダファイルをいちいち読む必要はない
mainの型が規格で取り決めてあって分かりきってるから読み込む必要がないってだけで。
DLL内の任意の関数を呼び出したいのなら、型がわからんことには、
スクリプト言語側でのマーシャリング等々のサポートは出来ん。
0863デフォルトの名無しさん
2012/06/15(金) 20:36:17.14まあドヤ顔で黙っているよりは、変なことでも言った方が良いわな
0864デフォルトの名無しさん
2012/06/15(金) 20:42:18.100865デフォルトの名無しさん
2012/06/15(金) 21:14:32.63もちろん普通に使うよ。
0866デフォルトの名無しさん
2012/06/15(金) 22:04:17.39任意の関数を呼び出したいっていうのはある意味で嘘なんだよな
何を呼び出したいのか分からないからそう言っているだけで
0867デフォルトの名無しさん
2012/06/15(金) 23:25:56.96自分の呼び出したい関数名ぐらい分かるだろ。
0868デフォルトの名無しさん
2012/06/15(金) 23:32:27.93エクスポートされてる関数の一覧は取得できるだろう
だが、引数や戻り値の型は知りようがない
0869デフォルトの名無しさん
2012/06/16(土) 00:07:07.25>>866の言い回しはおかしくないか?
何を呼び出したいのかは分かってるけど、引数の型がわからないってだけで。
0870デフォルトの名無しさん
2012/06/16(土) 00:40:46.47契約の結果がどうなろうと、何を呼び出したかったのか最初から知っていたと言えるか?
0871uy
2012/06/16(土) 06:22:32.64つうか本当に取り出しにくいとかじゃなくて情報はいってないの?
0872デフォルトの名無しさん
2012/06/16(土) 06:43:45.09外から分かるのは関数名のみ
C++のように(dll外から見える)関数名に引数の情報を含める言語もある
0873デフォルトの名無しさん
2012/06/16(土) 06:50:33.00関数のエントリポイント付近を逆アセンブルして、引数の個数や型を推定する
関数名しか分からないならこういう手順
0874デフォルトの名無しさん
2012/06/16(土) 07:09:21.480875uy
2012/06/16(土) 07:58:10.62やっぱり情報はいってるんじゃん
それならスクリプト言語側がそれやればいいだけじゃん
手抜きしてましたって事?
引数情報や型情報なんて入ってなくとも
引数サイズ、戻り値サイズだけはどこかにあるはずだし
もし情報欠損している場所があるとすれば引数の個数だと思われる
char a , char b , という引数が 1バイトの引数2個って情報ではなく、ただの2バイトを引数にとるとかいう情報しか入ってない可能性とか
どうしても引数情報とってこれないケースとかそこら辺しか思い浮かばない
0876uy
2012/06/16(土) 08:01:47.51アセンブラレベルで考えたらそれは無い気がしてきた
取り出しにくいだけで情報は入ってるじゃん
誰かやれば良いだけじゃん
0877デフォルトの名無しさん
2012/06/16(土) 08:05:51.01手抜きというか、コンパイル時にチェック済みだから実行時にはチェックしないって事
0878uy
2012/06/16(土) 08:09:39.10そっちじゃなく
スクリプト言語側からdll読み込んで関数名指定した時に
引数や戻り値を手動で書かなくちゃいけない上に
サイズや個数を間違ってもスクリプトの処理系がエラー出さないのが手抜きって話
0879デフォルトの名無しさん
2012/06/16(土) 08:31:59.65C/C++は配列の長さを手動で書くし、長さを間違ってもエラーが出てこないケースもある
それと同じ感覚で関数を扱うことも不可能ではない
そういうのに慣れている奴以外はdllを読むべきではない
0880uy
2012/06/16(土) 08:59:46.51引数と戻り値の抽出が本当に出来ないのか、できるのかって話
結論としてはできる で終わった
0881デフォルトの名無しさん
2012/06/16(土) 10:04:19.93推定は出来るが、その推定を違えたら何が起こるか解らんから
他言語としてはやるべきではない
ブラウザの文字化けなら標準グチャグチャだけで済むし
その場でユーザが対応すれば済むが
言語側でそんなことして暴走や処理系停止したらマズいだろ
0882デフォルトの名無しさん
2012/06/16(土) 10:05:10.310883uy
2012/06/16(土) 10:58:20.26誰かが正確に動作するもの作ればいいだけじゃん
つうか
dll関数の引数や個数を間違えたら暴走すんの?
例えばどんなソースで暴走すんの?????
例外でないで暴走したら処理系のバグだと思うよそれ
そもそも引数の型や数を間違えたら処理系は停止しなきゃダメなのに何いってんの?初心者?
0884デフォルトの名無しさん
2012/06/16(土) 11:06:03.25…マシン語やったことある?
0885uy
2012/06/16(土) 11:21:45.27例外出さずにスクリプトの処理系が暴走したらバグだから
やれるなら暴走する間違ったdllの使い方をかいてみろって
暴走とは何のことをいっているんだよ
基本的にOS側が例外を出す前に処理系が感知して実行止めるわけで、
処理系がとめきれずにOSのエラーメッセージでたらバグだよ
0886uy
2012/06/16(土) 11:24:55.050887デフォルトの名無しさん
2012/06/16(土) 11:56:03.20その仕様を満たしていれば、暴走する関数を呼び出したいと思ったら呼び出せるよ
バグではなく仕様
0888デフォルトの名無しさん
2012/06/16(土) 12:18:54.74$ python2
>>> from ctypes import *
>>> libc = CDLL("libc.so.6")
>>> libc.printf("%s", 1)
zsh: segmentation fault python2
----
require 'dl'
require 'dl/func'
libc = DL.dlopen('/lib/libc.so.6')
cfunc = DL::CFunc.new(libc['printf'], DL::TYPE_INT, 'printf')
myprintf = DL::Function.new(cfunc, [DL::TYPE_VOIDP])
# myprintf.call("hello\n") # ok
myprintf.call(1)
$ ruby segv.rb
zsh: segmentation fault python2
...
/usr/lib/ruby/1.9.1/dl/func.rb:55: [BUG] Segmentation fault
0889デフォルトの名無しさん
2012/06/16(土) 12:21:31.06変な引数わたしたらこうなるのは当然であってバグではないので念の為
$ ruby segv.rb
/usr/lib/ruby/1.9.1/dl/func.rb:55: [BUG] Segmentation fault
...
zsh: abort ruby segv.rb
0890デフォルトの名無しさん
2012/06/16(土) 12:47:19.53>引数情報や型情報なんて入ってなくとも
>引数サイズ、戻り値サイズだけはどこかにあるはずだし
どこにも入ってないよ。というか、どこかには情報量としてはあるんだけど、
どういった形で表現されているかは、実際に実行してみて、どういう動作になるか見てみないと分からない。
引数サイズやスタックポインタ周りの動作も含めて、その関数の実行結果の一部だから。
実行せずに実行結果を得ることは出来ないから、スクリプト言語側からそれらを得ることも出来ない。
uyには難しすぎるかな。
>関数のエントリポイント付近を逆アセンブルして、引数の個数や型を推定する
と言ってる人もいるけど、実際にはこんなこと出来ない。
引数の個数も型もわからない。
0891デフォルトの名無しさん
2012/06/16(土) 12:48:40.47関数のエントリポイント付近を逆アセンブルして、
引数の個数や型を推定できるよ。
たとえば可変引数の場合、
入れた数だけPOPすればいい
0892デフォルトの名無しさん
2012/06/16(土) 12:53:28.65低脳は黙っててください。
0893デフォルトの名無しさん
2012/06/16(土) 13:05:09.90通常のDLLの仕様のせいだ。Linuxのsoも同じか。
これがもし、netのDLLとかなら話は別だけど
DLL(so)からはどんな情報を渡すべきか知ることが出来ない。
しかしライブラリ内部では、渡された情報が
正しいことを前提にコードが書いてある。
これじゃ落ちるのは当たり前だ。
でもRubyのせいじゃなかった。良かった。
0894デフォルトの名無しさん
2012/06/16(土) 13:06:28.57クラスを渡すかきっちり決まってるからな。
動的言語ではオブジェクトを引数にして
呼び出すのは不可能。
0895デフォルトの名無しさん
2012/06/16(土) 13:10:40.58知らないだろう?w
0896デフォルトの名無しさん
2012/06/16(土) 13:12:56.64そんなもん、ヘッダファイルに書いておいて
コンパイル時に参照すればいいだけじゃん。
0897デフォルトの名無しさん
2012/06/16(土) 13:14:56.55C言語呼び出し規則の
ライブラリだろうが。
.NET用のDLLだってあるし、
C言語呼び出しなら、Windows以外だって同じだ。
0898デフォルトの名無しさん
2012/06/16(土) 13:15:33.55Windowsのことしか知らんからw
0899デフォルトの名無しさん
2012/06/16(土) 15:11:54.34WindowsのDLLを覗いたこともないんだろ
関数名だけのものが大半で、
(C++式の)引数の情報も持った(人間には読みにくい)関数名のものはごく一部
引数の型や個数も分からずに適当にDLL内の関数を呼んだら
不正な処理で終了するものも多い
アドレスを渡すべきところに変な整数を渡したりしたら、な
0900デフォルトの名無しさん
2012/06/16(土) 16:31:31.03あてずっぽうで適当な引数で試すのも変態そのもの
0901デフォルトの名無しさん
2012/06/16(土) 17:41:17.69「Cでプログラミングするには人生は短すぎる」の結果がこれだよ
0902デフォルトの名無しさん
2012/06/16(土) 18:35:46.350903デフォルトの名無しさん
2012/06/16(土) 19:00:39.450904デフォルトの名無しさん
2012/06/16(土) 19:15:44.500905uy
2012/06/16(土) 20:38:36.04出来る可能性はあるけど
失敗するリスクが怖いのと絶対に出来なそうな仕様のDLLもあるので、やらないって事?
何この退屈な話題
0906デフォルトの名無しさん
2012/06/16(土) 20:46:51.580907デフォルトの名無しさん
2012/06/16(土) 20:57:22.54DLLの仕組みすら分かってないからなw
0908デフォルトの名無しさん
2012/06/16(土) 21:00:12.84度が過ぎると馬鹿が増長する。
0909デフォルトの名無しさん
2012/06/16(土) 21:02:19.880910デフォルトの名無しさん
2012/06/16(土) 21:04:32.130911デフォルトの名無しさん
2012/06/16(土) 21:09:47.980912デフォルトの名無しさん
2012/06/16(土) 21:10:45.870913デフォルトの名無しさん
2012/06/16(土) 21:30:57.870914デフォルトの名無しさん
2012/06/16(土) 21:33:35.850915デフォルトの名無しさん
2012/06/16(土) 22:03:44.94名前欄にuyって入れるの忘れてるぞw
0916デフォルトの名無しさん
2012/06/16(土) 23:12:14.10uyはその遥かに下
0917デフォルトの名無しさん
2012/06/17(日) 08:36:38.70と言うかz軸を間違えてる感じ
0918デフォルトの名無しさん
2012/06/17(日) 08:50:30.360919uy
2012/06/17(日) 15:07:59.900920デフォルトの名無しさん
2012/06/17(日) 16:50:43.410921uy
2012/06/17(日) 17:43:51.13技術ではない
殆どのネトゲではキー、マウスメッセージをまともに受け取らないが
簡単な抜け道が1つだけある
0922デフォルトの名無しさん
2012/06/17(日) 17:56:00.53そして入力ハードウェアを作ればいいのだ。
0923デフォルトの名無しさん
2012/06/17(日) 18:11:04.450924デフォルトの名無しさん
2012/06/17(日) 18:27:35.600925uy
2012/06/17(日) 18:41:42.47WinAPIを使用する処理はC++でかいて
それをrubyから使うのが俺様のプログラミングの日常風景
0926デフォルトの名無しさん
2012/06/17(日) 19:13:18.770927デフォルトの名無しさん
2012/06/17(日) 19:46:15.750928デフォルトの名無しさん
2012/06/17(日) 19:55:29.81uyにはDLLの関数を直接呼ぶのも無理なんだろうな
0929uy
2012/06/17(日) 19:56:12.18標準ライブラリは全部知ってるが、
WinAPIとRuby/DLで出来る事に差があることを知らなかっただけだよ
0930デフォルトの名無しさん
2012/06/17(日) 21:44:06.09昔のライブラリは全部同じ。
Windows以外であっても。
つまり、常識的な知識
0931デフォルトの名無しさん
2012/06/17(日) 21:46:33.22C言語系のライブラリというか、
ELFフォーマットやオブジェクトファイルや
リンカやそういった、ネイティブコードに
関する一般的な話だ。
0932デフォルトの名無しさん
2012/06/17(日) 22:03:34.040933デフォルトの名無しさん
2012/06/17(日) 22:10:38.460935uy
2012/06/17(日) 22:30:45.290936デフォルトの名無しさん
2012/06/17(日) 23:41:35.110937デフォルトの名無しさん
2012/06/17(日) 23:43:21.190938デフォルトの名無しさん
2012/06/17(日) 23:52:51.48uyが見当違いで的外れなこと書いてて
面白かった
0939デフォルトの名無しさん
2012/06/17(日) 23:53:09.71ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32]
require 'Win32API'
func = Win32API.new('user32', 'MessageBoxA', %w(P P P I), 'I')
func.Call(0, 'Hello', 'MessageBox Test', 0) # ok
func.Call(0, 'Hello', 1, 0) # SEGV
ここらへんはRuby/DLもRuby/Win32APIも大差ないね
0940デフォルトの名無しさん
2012/06/18(月) 00:36:55.85uyことウンコ野郎() の作ったプログラムと、そのソースコードがみたいんですけど
uyことウンコ野郎() の作ったプログラムと、そのソースコードがみたいんですけど
0942uy
2012/06/18(月) 02:16:40.40何時かにも言ったけど
きたねーおっさんが下ネタいっても、きたねえだけだからな
お前らは外見も思考もゴミなんだから、品くらいもてよ
0943デフォルトの名無しさん
2012/06/18(月) 04:15:17.58お前の人生ももう詰みだよ
0944デフォルトの名無しさん
2012/06/18(月) 05:38:47.890945デフォルトの名無しさん
2012/06/18(月) 06:19:10.250946デフォルトの名無しさん
2012/06/18(月) 08:15:30.82ちんこもuyもどっちもアホや
0947デフォルトの名無しさん
2012/06/18(月) 08:59:08.19│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0948uy
2012/06/18(月) 12:04:05.26お前らが俺よりも下だと認識させられた瞬間に精神崩壊するきっかけを増やすだけだというのに
ずいぶんと元気だな
急にスレがつまらなくなった
0949デフォルトの名無しさん
2012/06/18(月) 12:44:22.70uyが一番下ってみんな思ってるんだろうなw
0950uy
2012/06/18(月) 15:32:01.710951uy
2012/06/18(月) 16:52:14.060952デフォルトの名無しさん
2012/06/18(月) 16:58:43.290953Perl忍者 ◆M5ZWRnXOj6
2012/06/18(月) 19:56:00.460954デフォルトの名無しさん
2012/06/18(月) 20:15:04.86他の分野では自分が勝ってるものもあるだろうし、別にいいけど。
0955デフォルトの名無しさん
2012/06/18(月) 20:17:00.20drop_whileがどーのこーの言ってたようだけど
んなもん使うやついるのかよ
0956デフォルトの名無しさん
2012/06/18(月) 20:20:33.430957デフォルトの名無しさん
2012/06/18(月) 20:34:07.8210MBに収まるとかいう、オセロの最善手DBも公開できないカス
すべての手を10MBに収められるものなら収めてみろ
0958デフォルトの名無しさん
2012/06/18(月) 21:26:58.090959デフォルトの名無しさん
2012/06/18(月) 21:41:55.290960uy
2012/06/18(月) 21:46:53.60面倒くさいからやないし
オセロみたいなこういうプログラムは
データ圧縮しようと思えば極限まで圧縮できるし類のプログラムだと思ってるし
総当りで調べる必要もない
回転によって4分の1になる
上下、左右対称によって4分の1になる
反転させた上下左右対称で4分の1になる
あとは行と列ごとに逆順にして計算していけば数百〜数千の1になるはず
この時点で
2^64 - 4*4*4*数百〜数千
あとは、オセロの基盤を4つに分けて
4マス四方のブロックに見立ててにあれこれやっていけば一気に小さくなる
おそらく仕上げで、さらに2マス四方であれこれやって、おそらく最終的には2マスの列と行の並びで何とかなる
そこまでやれば10MBくらいじゃねーの? ってだけで俺がやるつもりはないから死ね
0961デフォルトの名無しさん
2012/06/18(月) 21:51:02.13uyに能力がないからできないだけ
0962デフォルトの名無しさん
2012/06/18(月) 21:55:05.030963デフォルトの名無しさん
2012/06/18(月) 22:02:30.02http://toro.2ch.net/test/read.cgi/tech/1330003774/
0964デフォルトの名無しさん
2012/06/19(火) 01:05:59.410965デフォルトの名無しさん
2012/06/19(火) 08:15:08.80は?
過去スレ貼って何したいの?
0966デフォルトの名無しさん
2012/06/19(火) 08:47:18.51無知を晒してしまったから
時間を戻したいんだろ
0967デフォルトの名無しさん
2012/06/19(火) 20:05:34.10そんなに好きなの?
0968uy
2012/06/19(火) 20:33:50.700969uy
2012/06/19(火) 20:33:59.47そして心を保った
しかし、職場にでて回りを見てみればuy以下の奴らばかり
ああuyってマシなほうだったんだな
あれ、俺はどうしてあんな職場にいるんだろう
ん、俺も周りからみたらあいつらと同じなのか
低スキルのあいつらと何も変わらない
ああ俺もuyより遥かに下だったんだな
uyさんごめんなさい ← 今ここ
0970デフォルトの名無しさん
2012/06/19(火) 20:46:46.560971uy
2012/06/19(火) 21:30:59.900972uy
2012/06/19(火) 21:54:03.400973デフォルトの名無しさん
2012/06/19(火) 22:06:37.230974デフォルトの名無しさん
2012/06/19(火) 23:42:12.250975uy
2012/06/20(水) 00:56:19.12お前らのような下級ゴミカスとは格が違う
0976デフォルトの名無しさん
2012/06/20(水) 01:53:04.380977デフォルトの名無しさん
2012/06/20(水) 02:25:02.880978デフォルトの名無しさん
2012/06/20(水) 02:26:05.79uyってなんだろうと思ったら、Ruby かよ
LLなんて、よく使うのはJavaScript、構文が綺麗なのはRubyでFAだろ
あんま議論する余地ないよな
そもそも、普段は Java ばかりだろ
0979デフォルトの名無しさん
2012/06/20(水) 02:33:54.350980デフォルトの名無しさん
2012/06/20(水) 08:20:46.62Lispのは構文は綺麗だが、意味のほうを「泥団子」と評した人がいたが、
Rubyは構文が泥団子的。
0981デフォルトの名無しさん
2012/06/20(水) 09:23:01.790982uy
2012/06/20(水) 09:26:10.79お前らのような下級ゴミカスとは格が違う
0983デフォルトの名無しさん
2012/06/20(水) 09:36:03.12の応酬
0984uy
2012/06/20(水) 10:57:43.960985uy
2012/06/20(水) 11:05:50.760986デフォルトの名無しさん
2012/06/20(水) 11:49:29.73上の方でDLLのことをもっと調べれとか出てなかったかい?
0987uy
2012/06/20(水) 11:58:02.70n.to_s.chars.to_a.reverse.each_slice(3).map(&:reverse).zip(["byte","k","m","g","t","p"].each_with_object(["_"].zip)).reverse.join
end
p f (2**64) / (62*4)
#"74p_382t_032g_555m_280k_450byte_"
p f (2**64) / (32*2) / (32*2)
#"4p_503t_599g_627m_370k_496byte_"
p f (2**64) / (16**4) + 2**16
#"281t_474g_976m_776k_192byte_"
p f (2**64) / (8**8) + 2**32
#"1t_103g_806m_595k_072byte_"
暇だからまた少しオセロのデータ圧縮を考えてみた
これは軌跡を記録していく形4ビット→16個の状態を表せる(オセロは8*8)
で、それをああやって、こうしていった結果
1tbとなったさらに>>960 とあわせる事により、>>960で1万分の1程度にはなる計算なので
この時点で1GBは下回った
0988デフォルトの名無しさん
2012/06/20(水) 12:05:00.950989uy
2012/06/20(水) 12:41:01.340990デフォルトの名無しさん
2012/06/20(水) 15:14:03.140991デフォルトの名無しさん
2012/06/20(水) 15:49:43.490992uy
2012/06/20(水) 16:12:30.57ハァ?>>639
つうかある程度のコード圧縮にdrop_whileは有用だとしても
最終的に限りなく小さいソースコードを書こうとしたら
イテレータでオブジェクトを削って値を返すのではなく
単一ループ中に全てをやらないとダメだった
配列対象の正規表現がほしい
いやむしろそれならオセロの基盤を配列で管理するのではなく文字列で管理して正規表現使って裏返す手があったか
0993uy
2012/06/20(水) 16:21:06.30p a
a.sub!(/(3.*2)/){ "2"*$1.size }
p a
上手くいきすぎワロタ
0994デフォルトの名無しさん
2012/06/20(水) 16:34:34.740995デフォルトの名無しさん
2012/06/20(水) 17:08:50.19縦や斜めのことを忘れてる件
transposeと言ってたがコストを考えたら結局自前で8方向に走査した方が安い
0996デフォルトの名無しさん
2012/06/20(水) 17:15:42.27殺されている。
日頃従順に人間に従っていた温和な牛たちも、順番を待って並ばされている時に
そこではじめて自分の運命に気付くのだろう、日頃聞かないような悲痛な甲高い
鳴き声を絶えず出し続けている。俺は今でもその鳴き声が耳を離れない。
人間は斯くも残酷な行為を毎日何千、何万という動物達に行っているのだ。
せめてその肉を頂く時には少しぐらい感謝の気持ちをもってもいいだろう。
【屠殺場の怖さは異常】
ttp://2.ldblog.jp/archives/1058482.html
0997デフォルトの名無しさん
2012/06/20(水) 17:16:39.140998uy
2012/06/20(水) 18:21:39.978方向走査ワロタwwwwwwwwwwwwwwwwww
どんなクズでも
縦、横くらいは同一メソッドで処理できるだろ
斜め裏返しには壁がある
0999uy
2012/06/20(水) 18:27:37.97[
"0",
"00",
"000",
"0000",
"00000",
"000000",
"0000000",
"00000000", ]
同じ裏返しメソッドに与えるだけだが
普通にかくとデータ抽出部分と、データ修正したものを元のオセロマップに適用する部分で冗長する
1000uy
2012/06/20(水) 18:28:41.1310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。