【Perl,PHP】LL バトルロワイヤル 22【JavaScript,Python】

このエントリーをはてなブックマークに追加
1uy
最強のLL=軽量プログラム言語は、どれよ?

エントリーは、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/
2uy:2012/05/09(水) 01:48:44.81
どんだけ
3デフォルトの名無しさん:2012/05/09(水) 01:50:00.90
最強の動的言語
http://goo.gl/3RBYF

終了
4デフォルトの名無しさん:2012/05/09(水) 14:10:38.37
>>1
>>1のLLという概念は間違っていると前スレで結論でてるのに
スレタイとテンプレそのままで立てんなよ
5デフォルトの名無しさん:2012/05/09(水) 14:21:43.33
>>1 のLightweight Languageの定義は誤り。
Lightweight 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
6デフォルトの名無しさん:2012/05/09(水) 14:37:02.45
一人が暴れてるだけだろw
7デフォルトの名無しさん:2012/05/09(水) 14:49:33.47
>>5
英語版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と表現するのが妥当である。
8デフォルトの名無しさん:2012/05/09(水) 14:50:18.45
>>5
権威好きな方に。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.
9デフォルトの名無しさん:2012/05/09(水) 14:58:57.72
おー、11年前のAIラボでRubyが認知されてたか。感慨深い。
10デフォルトの名無しさん:2012/05/09(水) 15:50:51.15
Lightweight Languageの定義がバラバラなら
スレはScripting Languageか、スクリプト言語にすればいい
11デフォルトの名無しさん:2012/05/09(水) 15:57:17.41
バラバラということにしないと、自我が崩壊しちゃう人がいるようです
12デフォルトの名無しさん:2012/05/09(水) 16:04:19.54
>>11
おまえ英語読めないだろw
どうみてもバラバラだ。

>>8の定義もまた違う。
>>8は、機能とは関係なく、習得が容易なもの、という定義をしてる。
>>1は、クロージャ、正規表現など機能要件を勝手に定義していて論外。
13デフォルトの名無しさん:2012/05/09(水) 16:11:27.45
>>12
英語圏において、>>5のWikipediaが絶対では無いことを示したまで。
しかも、Wikipediaより>>1の認識の方がMIT AI Labの認識に近いというおまけ付き。
悔しかったね。

で、英語圏で認識がバラバラだと、なんでこのスレのタイトルを変えなきゃならないの?
14デフォルトの名無しさん:2012/05/09(水) 16:19:45.05
>>13
なんでって誤った用語広めても意味ないからだろ。
しかもLLとか勝手に略しているしな

>>1の認識の方がMIT AI Labの認識に近いというおまけ付き
だから近くないだろ。
>>8は機能は関係ないって書いてる。
>>1は機能について具体的に言及している。
15デフォルトの名無しさん:2012/05/09(水) 16:28:44.48
>>14
> >>13
> なんでって誤った用語広めても意味ないからだろ。

いや、もう何年も前から広まってるんですが。

> しかもLLとか勝手に略しているしな

MITのLL1というのが見えなかったのかな。

> >>>1の認識の方がMIT AI Labの認識に近いというおまけ付き
> だから近くないだろ。
> >>8は機能は関係ないって書いてる。
> >>1は機能について具体的に言及している。

>>1>>5>>8のうちどれが近いでしょうといったら、>>1>>8と答える人が99.99%だよ(当社推定)。
仮に>>8>>1が違ってたとして、それが何なの?
なんでスレタイ変えなきゃならないの?
16デフォルトの名無しさん:2012/05/09(水) 16:36:29.26
>>14
それとね、リンク先くらい読んでよね。

> 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.
17デフォルトの名無しさん:2012/05/09(水) 16:47:21.42
>>15
>なんでスレタイ変えなきゃならないの?

その定義によって扱う範囲の言語が変わるからに決まってるだろ

>>8の習得が容易、という定義ならJavaやC#は当然含まれる。
18デフォルトの名無しさん:2012/05/09(水) 17:01:27.80
>>17
> その定義によって扱う範囲の言語が変わるからに決まってるだろ

現時点で、このスレが扱う言語が何なのかわかってないのは、多分あなただけですよ。

> >>8の習得が容易、という定義ならJavaやC#は当然含まれる。

何度も言うけど、>>8>>5の認識が英語圏で100%正しいというわけではないことの傍証です。
まぁそれは置いといて、LL1にJavaが含まれないのは、http://ll1.ai.mit.edu/cfp.html読んだら
普通わかりますね。CFP読んで、さぁJavaの話しようとか(今ならC#も)誰も思いませんよ。

JavaやC#のことを語りたいなら、専用スレがあるので、そちらでどうぞ。
"LL"とJavaやC#の比較をこのスレでしたいのならどうぞ。
住民に受け入れられるかどうかは知りませんが。
19デフォルトの名無しさん:2012/05/09(水) 17:04:29.72
つか、日本におけるLLの定義が気にくわないのなら、wikpedia書き換えてこい
20デフォルトの名無しさん:2012/05/09(水) 17:07:48.46
お前ら前スレ埋めてからこっちこい
21デフォルトの名無しさん:2012/05/09(水) 18:07:51.10
ということで、たった1つの言語が生きのこるまで潰しあいましょう。
22デフォルトの名無しさん:2012/05/09(水) 19:38:50.20
あなたがLLだと思ったものがLLです
ただし共通認識となるかどうかは別問題です
23デフォルトの名無しさん:2012/05/09(水) 22:17:26.63
将来性の指標
JavaScript ☆☆☆☆☆ クライアントサイドで動く唯一のLL 糞言語仕様ではあるが将来性はピカイチ

Python ☆☆☆☆☆ numpy,scipyに底支えされる計算科学系分野における絶大なシェア
    可読性が高くアルゴリズム教科書への高頻度採用 LLの王様になることが確実

PHP ☆☆☆ web土方御用達言語としてのシェアはJavascriptの躍進で下落する事が予想される
Ruby ☆☆ Railsの影響力低下、またPythonの躍進によりシェア伸び悩み
Perl ☆ 歴史的な役割を終えた言語 今後Perlで開発継続することがリスクとなって採用企業の足枷となる
24デフォルトの名無しさん:2012/05/09(水) 22:17:55.02
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

                  京都大学霊長類研究所
25デフォルトの名無しさん:2012/05/09(水) 22:18:21.02
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
26デフォルトの名無しさん:2012/05/09(水) 22:23:45.73
Rubyは糞が作った糞のための糞仕様の言語
27デフォルトの名無しさん:2012/05/09(水) 22:27:56.22
Matz: ぼくが作ったさいきょうのげんご
28デフォルトの名無しさん:2012/05/09(水) 23:16:54.49
>>1
29デフォルトの名無しさん:2012/05/10(木) 02:39:03.38
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
30デフォルトの名無しさん:2012/05/10(木) 02:50:31.80
平凡な趣味グラマでもここまで出来る!≪PHPの圧倒的実現力≫
http://hirata-create.cocolog-nifty.com/
31デフォルトの名無しさん:2012/05/10(木) 20:19:42.21
糞スレ
32デフォルトの名無しさん:2012/05/10(木) 21:39:02.35
前スレ埋めてからな
33デフォルトの名無しさん:2012/05/11(金) 08:46:56.00
>>27
まあ実際そうだから仕方ないw
34デフォルトの名無しさん:2012/05/11(金) 09:53:21.22
>>30
それって、WinBinderと何が違うの?
35デフォルトの名無しさん:2012/05/11(金) 10:03:14.93
echo "一週間後、この街にワルプルギスの夜が来るわ" | \
sed 's/ワルプルギスの夜/ソーシャルゲームバブルの崩壊/g'
36デフォルトの名無しさん:2012/05/11(金) 10:19:51.68
gいらんやろ
37uy:2012/05/11(金) 10:39:40.24
WWWWWWWWWWWWWWWWWWWWWWWWWWPHPWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
38デフォルトの名無しさん:2012/05/11(金) 12:06:36.03
見せてやれよ uy ! PHPの連中に本物の汎用言語の実力を、得意のRubyで!!!
uy ならやれる! 一週間以内にきっと見せてくれる!!
39uy:2012/05/11(金) 13:18:23.49
"Hello, world!".display
40デフォルトの名無しさん:2012/05/11(金) 13:29:11.28
>>38
そしてそれを超える実力をPHPさんは3日で示してくれる!!
41デフォルトの名無しさん:2012/05/11(金) 18:34:11.92
\\ /:::::::::::::::::::::::::::::::::::く 
  r'::::::::::::::::::::;;:;;:;;:ッ、:::::::::::) 
\ レ''''jrTf"    lミ::::::::く  すまない
   |        〈ミ:::::::::ノ
\ |、_ ャー‐__二ゞ ヾ::∠   uy 好きのホモ以外
`` ゞ:}   ̄'互.ヾ  }:j んL 
   l/   """"´`    )ノ∧  帰ってくれないか
=-- /           l  (ノ |
== `弋"__,....._     !  !   Y⌒Y⌒Y⌒
     ゙、`ー‐'     ,'       \
''"´    ゙、 ̄    / ,'         \
/     ヽ__/::;' ,' ノ       `ヽ
  //      ヾ_,'∠..,,__
// //   /´
42デフォルトの名無しさん:2012/05/11(金) 19:34:35.99
そして誰もいなくなった
43デフォルトの名無しさん:2012/05/11(金) 19:36:39.24
uy は女なんだけど…
44デフォルトの名無しさん:2012/05/11(金) 19:52:33.57
uyは33歳170cm97kgだと聞いたけど…
45デフォルトの名無しさん:2012/05/11(金) 20:06:26.02
uyはB90 W60 H30だと聞いたけど…
46デフォルトの名無しさん:2012/05/11(金) 21:26:22.66
uyは元は零落貴族の令嬢と聞いたけど・・・
47デフォルトの名無しさん:2012/05/11(金) 22:25:23.84
PHP最強だろw
48デフォルトの名無しさん:2012/05/11(金) 22:26:29.66

PHP 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;
/* ... */
}
?>
49デフォルトの名無しさん:2012/05/11(金) 22:36:44.85
トイレ プークスクスwww
50デフォルトの名無しさん:2012/05/11(金) 22:42:01.37
トイレット?
51デフォルトの名無しさん:2012/05/11(金) 22:42:37.63
機能拡張する前に脆弱性をどうにかしろよ
52デフォルトの名無しさん:2012/05/12(土) 02:14:19.99
New「ん…」
New「うん」
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を叩いてたんじゃないかな」
53デフォルトの名無しさん:2012/05/12(土) 09:17:25.15
個人事業主、SOHOなどに好まれてしまう手軽な環境は過剰な価格競争に陥った末に滅びる
なにもIT業界、システム開発に限った話しじゃない
54デフォルトの名無しさん:2012/05/12(土) 18:33:18.93
twitterでbot作りたくてPHP始めたが、ブラウザからphpinfo結果表示されん
apacheは起動している
調べまくったがわからんぞー!
55デフォルトの名無しさん:2012/05/12(土) 18:35:06.81
あ、OSはVistaでPHP5.2.17、httpd2.2.22ね
教えてエロい人!
56デフォルトの名無しさん:2012/05/12(土) 18:37:47.81
PHPはポンコツ言語だから、
PHPをやめればすべて解決
57デフォルトの名無しさん:2012/05/12(土) 18:42:26.83
>>55
これ使ってみたら [ HC-LocalServer for PHP ]
http://hirata-create.cocolog-nifty.com/blog/HC-LocalServer.html
58デフォルトの名無しさん:2012/05/12(土) 19:08:37.03
>>57
ダウンロードしたけど、iniファイルとか定義ファイルしか入ってないんだけど…
59デフォルトの名無しさん:2012/05/12(土) 19:10:34.18
あ、解凍した時にNorton先生が削除してた
60デフォルトの名無しさん:2012/05/12(土) 19:16:04.90
わかってPHP進めてるボケと

ガチで分かってないでPHP進めてるボケがいるのだろう
61デフォルトの名無しさん:2012/05/12(土) 20:41:35.63
趣味で公開しなければPHPでもいいんじゃない
62デフォルトの名無しさん:2012/05/12(土) 21:30:56.31
ま、uy がもうじきRubyでスゲーの出すから待ってろ
63uy:2012/05/12(土) 21:32:57.70
"うんこぶりぶり".display
64デフォルトの名無しさん:2012/05/12(土) 21:38:12.09
\\ /:::::::::::::::::::::::::::::::::::く 
  r'::::::::::::::::::::;;:;;:;;:ッ、:::::::::::) 
\ レ''''jrTf"    lミ::::::::く  すまない
   |        〈ミ:::::::::ノ
\ |、_ ャー‐__二ゞ ヾ::∠   uy 好きのホモ以外
`` ゞ:}   ̄'互.ヾ  }:j んL 
   l/   """"´`    )ノ∧  帰ってくれないか
=-- /           l  (ノ |
== `弋"__,....._     !  !   Y⌒Y⌒Y⌒
     ゙、`ー‐'     ,'       \
''"´    ゙、 ̄    / ,'         \
/     ヽ__/::;' ,' ノ       `ヽ
  //      ヾ_,'∠..,,__
// //   /´
65デフォルトの名無しさん:2012/05/13(日) 02:32:50.24
言語の多様性はおおいに結構だけど、開発リソースが分散してweb全体の進化の妨げになってるという考え方もある
C系、JAVA、PHP、Python、Perl、Ruby、Javascript 多すぎる こんなにいらない

C、JAVA、Javascriptは替えがきかないので固定としてもPHP、Python、Perl、Rubyのは二つでいい
個人的にはPython、Rubyであってほしいけど、実際はPHPとPythonになるんだろうな

Rubyの言語仕様は素晴らしいと思うけども、計算機科学研究者コミュニティをバックボーンとしたPythonの開発リソースが大き過ぎて段々と勝負にならなくなってきてる
66デフォルトの名無しさん:2012/05/13(日) 04:53:14.94
rubyは糞仕様
マイナーバージョンアップでガラッと仕様を変えるし
仕様が素晴らしいなどと言うなら最初から新しい方の仕様にしておけよ
67デフォルトの名無しさん:2012/05/13(日) 06:42:28.91
マイナーだろうとメジャーだろうと数年単位で仕様変える言語は糞
68uy:2012/05/13(日) 09:42:11.21
いやなら使うな
69デフォルトの名無しさん:2012/05/13(日) 09:44:31.08
Ruby信者は例外なく変態
70デフォルトの名無しさん:2012/05/13(日) 11:38:19.63
今時整数単位の変動だけがメジャーバージョンアップだと思ってる人って…
71デフォルトの名無しさん:2012/05/13(日) 12:04:12.44
サクラを仕込んで、stack overflowかredditあたりで
「何でブラウザにrubyが載ってないんだ」って喚かさせとけば、
javascriptの大体になるのも夢ではないじゃないか?
どーせ、googleやマイクロソフトはウェブ上の
テキストをマイニングしてんだろうから、
嘘でも100万回ほど呟いていたら実現すると思うぞ
72デフォルトの名無しさん:2012/05/13(日) 12:12:31.78
>>65
学生ならc++とscheme以外は触らない方が良いと思うぞ
言語と、その周辺のライブラリを覚えるのは本当に時間の無駄
73デフォルトの名無しさん:2012/05/13(日) 12:13:23.74
そんなことより、マイクロソフトはメトロとやらを断念してほしい
マイニングしてるなら、メトロが不評なの分かってるだろうに
74デフォルトの名無しさん:2012/05/13(日) 12:13:27.77
だが、言語とその周辺ライブラリを使わないで
作ろうとすると、もっと時間の無駄。
75デフォルトの名無しさん:2012/05/13(日) 12:16:54.45
ライブラリなんてSDLとGLUTだけで十分だって
76デフォルトの名無しさん:2012/05/13(日) 12:19:23.72
偏りすぎw
77デフォルトの名無しさん:2012/05/13(日) 12:19:44.35
>>75
それでどうやってウェブアプリ作るんだ?
78デフォルトの名無しさん:2012/05/13(日) 12:21:08.57
jQueryは必須
79デフォルトの名無しさん:2012/05/13(日) 12:44:22.23
>>77
ウェブアプリなんて供給過多になるだろ.適当な会社に入ってからで十分だ.
学生中は10〜20年後にも通用する基礎を忘れないよう体に刻み込んどけって.
低レイヤもボトルネックも人生の中で気にしないならjavascriptとscheme
80デフォルトの名無しさん:2012/05/13(日) 13:19:09.55
学生が勉強するのでひとつ選ぶならC言語だな〜。
あと、言語の勉強するのならSchemeもかな〜。

他はご自由に。
81デフォルトの名無しさん:2012/05/13(日) 13:25:19.71
>>80
言語ってか再起とポインタとコンパイラ、インタプリタ.
あと、お前がアカポスの教授職なら死ね
82デフォルトの名無しさん:2012/05/13(日) 13:27:14.37
再帰だろハゲが
83uy:2012/05/13(日) 13:37:27.94
なんで今の時代にC言語とかいってんだよバカか
時代遅れだと気づけ

C言語は基礎だけやらせてそれは1,2ヶ月で終了
そこからはC#.NETとRubyでいい
Lispは大学生に教えても意味ない
処理系つくったったww とかいって何も理解していないのに勘違いして終わるだけ
84デフォルトの名無しさん:2012/05/13(日) 13:41:25.82
Rubyなんか覚えてどうすんだよ
どうせすぐに仕様がガラッと変わるだろ
85uy:2012/05/13(日) 13:48:46.31
そもそもなんで、1個か2個しかプログラム言語覚えちゃいけないことになってんだよ

一番効率のいい道具黙って使え

仕事では仕事で必要になる言語さっさと覚えろ
86デフォルトの名無しさん:2012/05/13(日) 13:51:12.17
お前ここを何スレだと思ってんの?
LLバトロワスレだよ?たった1言語だけが生きのこるまで潰しあうスレだよ?
87デフォルトの名無しさん:2012/05/13(日) 14:42:34.31
>>84
Cなんて仕様が策定されても処理系が中々準拠しないじゃん。
C99とかC11とかさ。
88デフォルトの名無しさん:2012/05/13(日) 15:18:07.93
たいていのOSや重量級アプリがCで書かれてるし、Cやっとくなんて最低限じゃん。
凡人は低レベルなこともやっとかないとメモリやI/O、計算量なんかで勘が働かないよ。
89デフォルトの名無しさん:2012/05/13(日) 20:29:23.45
>>83
「私、ポトペタお絵描きのIT土方です!」って自己紹介してるようなもんだな
90デフォルトの名無しさん:2012/05/13(日) 21:01:21.20
実際彼はそうなんだから仕方ない
情報科学とかそういう世界とは遠い所にいる人
91デフォルトの名無しさん:2012/05/14(月) 05:41:27.70
>89
専門卒でITドカタにもなれなかったuyになんて失礼なこと言うんだ。あやまれ。
そのうえまともに絵も描けないんだぞ。まったく失礼にもほどがある。ぷんぷん。
92デフォルトの名無しさん:2012/05/14(月) 05:58:20.48
絵をまったく書けない大多数のプログラマを代表して謝罪を要求する

C++の洋書を買ったら組みこみスクリプトの章があって
BoostはPython、SWIGはRubyと扱いが半々だった
ほんとメジャーになったものだとつくづく思う
93デフォルトの名無しさん:2012/05/15(火) 00:43:46.97
「どっど」と言えば
 1 ドリランド
 2 ドリフの大爆笑

「コナン」と言えば
 1 名探偵
 2 未来少年

「だんぺい」と言えば
 1  ドッジ弾平
 2 丹下 段平

年代が判りそうなキーワードでした〜
(岡口つい参照)
あなたが主に使用する言語と一緒にお答えドンッ!
94デフォルトの名無しさん:2012/05/15(火) 05:35:23.97
スクリプトと言えば
スクリプト言語
台本

スコアと言えば
得点
楽譜

パールと言えば
Perl
Pearl
95デフォルトの名無しさん:2012/05/15(火) 17:25:55.25
もし過去にさかのぼってAda Lovelaceにスクリプトとプログラムの違いについて尋ねたら、
彼女はけげんな顔でこう答えたでしょう。
「そうね、スクリプトは俳優に渡すものよ。プログラムは、観衆に渡すもの」。
Adaは聡明な淑女でした。
96デフォルトの名無しさん:2012/05/15(火) 18:01:20.61
下手糞

「そうね、プログラムは監督があつらえるもの。スクリプトは俳優に読ませるもの。」
97デフォルトの名無しさん:2012/05/15(火) 18:20:40.23
恩を仇で返すやつ
98デフォルトの名無しさん:2012/05/15(火) 18:27:43.05
「そうね、プログラムは監督があつらえるもの。スクリプトは俳優に読ませるもの。」

プログラムは監督が誰に読ませるもの?
俳優に読ませるスクリプトは誰があつらえるもの?
99デフォルトの名無しさん:2012/05/15(火) 18:32:36.77
糞つまらん

やめろ
100デフォルトの名無しさん:2012/05/15(火) 18:33:01.35
変な文章を書く奴はプログラマ失格
101デフォルトの名無しさん:2012/05/15(火) 18:34:16.30
102デフォルトの名無しさん:2012/05/15(火) 18:35:11.58
AとBとC

一番すごい言語は?

Ada
103デフォルトの名無しさん:2012/05/15(火) 18:37:49.26
帝都高速度交通Ada
104デフォルトの名無しさん:2012/05/15(火) 18:40:29.80
ん?
105デフォルトの名無しさん:2012/05/15(火) 19:28:03.21
>>98 一部助詞を修正してるけど、どうぞ。
「そうね、プログラムは監督があつらえるもの。
監督がプログラムをもとに、こなれたスクリプトを作るの。
そしてスクリプトを俳優に読ませるの。」

長いでしょ。
だから>>96の二文で終わらせたの。
106デフォルトの名無しさん:2012/05/15(火) 20:03:41.17
107デフォルトの名無しさん:2012/05/15(火) 20:11:29.73
めんどくさいな
元が英文でそれを翻訳したものとでも言いたいのか?
108デフォルトの名無しさん:2012/05/15(火) 20:16:46.45
英語なんて読まんけど、>>95の日本語がおかしいでFA
109デフォルトの名無しさん:2012/05/15(火) 20:20:11.43
>>95
ウマいこと言ってるわけでもないし
何のおもしろみもない
110デフォルトの名無しさん: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´ '"´ /::::/-‐  \    ドリランドだとかステマだとか
   / //   广¨´  /'   /:::::/´ ̄`ヽ ⌒ヽ    そんなチャチなもんじゃあ 断じてねえ
  ノ ' /  ノ:::::`ー-、___/::::://       ヽ  }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::...       イ  もっと恐ろしいものの片鱗を味わったぜ…
11195:2012/05/15(火) 20:32:56.29
>>94
を呼んで、
http://blog.livedoor.jp/dankogai/archives/50967006.html
を思い出して、それで……。
11294:2012/05/15(火) 20:47:31.85
>>106のこの部分だな
Suppose 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は蛇足
113デフォルトの名無しさん:2012/05/15(火) 21:04:02.72
原文に忠実な直訳がいいなら機械にでもやらせておけばいい。
原文に間違いがあるなんて当然のことなんだから、
意味の間違いがあれば正して訳せばいい。

意訳できない奴が直訳して恥かいたってだけでしょ。
下手な訳のみを乗せられるよりは原文のみを載せてくれた方がいい。
114デフォルトの名無しさん:2012/05/15(火) 21:08:10.25
dankogaiが悪い
115デフォルトの名無しさん:2012/05/15(火) 22:06:21.94
くだらなすぎ
116デフォルトの名無しさん:2012/05/15(火) 22:15:48.11
原文が間違ってたとしても
その原文の意図を汲み取るのが重要

>>105は本当に原文が意図するところなのか?
117デフォルトの名無しさん:2012/05/15(火) 22:27:01.31
>>116
原文の意図が間違っていると言いたい
原文は意図していることを意図できていないにもかかららず、
説明できていると思っているんだろうな。

>>95の説明じゃAdaって聡明じゃない。
stupid
118デフォルトの名無しさん:2012/05/15(火) 22:35:58.55
96はめちゃくちゃ。
意訳してるつもりで大外ししてる。ちゃんと読め。
119デフォルトの名無しさん:2012/05/15(火) 23:12:22.17
だから原文がおかしいって言ってるだろ。
頭の悪い奴が書いた英語の原文を意訳するつもりなんかないよ

>>95の日本語ではAdaは聡明じゃないし、>>112の英語の原文でも聡明じゃないし。
まあ、>>112の英文の訳として>>95の日本語訳は適切だと思うよ。
120デフォルトの名無しさん:2012/05/15(火) 23:14:25.74
書いた人はLarry Wall御大でございます
121デフォルトの名無しさん:2012/05/15(火) 23:20:04.56
119が聡明じゃないのは間違いない。
122デフォルトの名無しさん:2012/05/16(水) 01:28:39.32
切り取り方が変なだけで原文はおかしくない
123デフォルトの名無しさん:2012/05/16(水) 01:34:13.44
スクリプトは俳優に渡すもの、プログラムは観衆に渡すもの


ぶっちゃけ、酒の席でのオヤジギャクと変わらんw
124デフォルトの名無しさん:2012/05/16(水) 02:56:12.35
>>105とその後の言い訳のデタラメっぷりはひどいな
125デフォルトの名無しさん:2012/05/16(水) 04:04:59.88
文字列の処理が容易である
とくに文字列のパターンマッチ能力に優れている
動的データの処理に優れている
OSとの連携に強い(OSのコマンド、GUIツールキット)
インタプリタ型である
(スクリプト言語に共通する特徴)

スクリプト言語のいろは|Cマガジン2000年10月号
126デフォルトの名無しさん:2012/05/16(水) 04:10:37.18
awk タンが微妙になってしまうお
127デフォルトの名無しさん:2012/05/16(水) 04:14:04.03
参考訳を貼るけどそもそも原文がおかしい、とか最初から書いておけばよかったろ?

翻訳より言い訳に力を入れているようだが
128デフォルトの名無しさん:2012/05/16(水) 08:03:59.46
なんでこのレベルの奴がこの板にいるんだよ
年々レベル下がってるじゃねーか死ね
129デフォルトの名無しさん:2012/05/16(水) 08:11:15.46
じゃあハイレベルなネタを提供してやれよ
130デフォルトの名無しさん:2012/05/16(水) 08:34:08.72
良い年こいたオヤジが言語どーこーの本気で下らない記事を
書いてるのみると還暦の魔法少女ぐらい厳しいものを感じるよね
131デフォルトの名無しさん:2012/05/16(水) 08:36:11.56
おまえの脳味噌の、ものごとを評価する能力が厳しいんだろw
132デフォルトの名無しさん:2012/05/16(水) 20:23:27.30
Railsの黒魔術って、メタプログラミングに強いRubyならではのものなの?
Pythonで同様の黒魔術って(可読性重視の文化は別として)できるものなんだろうか?

教えてエロイひと
133デフォルトの名無しさん:2012/05/16(水) 22:07:39.69
>>132
Railsの黒魔術ってなにをいってるの?
自動でいろいろ作ってくれることを指してる?
なんでメタプログラミングの話がでてくるのかさっぱりわからない。
CoC 設定より規約 (Convention over Configuration)になってるから
自動でいろいろ作ってくれるだけでしょ

Railsに影響を受けたFrameworkはたくさん出てるんだから、
Ruby系でも、PHP系でも、Python系でも、Java系でも
使いやすいの選べばいいんじゃないかな
Python系のDjango人気あるようだよ。Railsより高速だし。

Frameworkネタは専門スレのがいいっぽい
ここはWebアプリ関係ない人が多いようだから。
134デフォルトの名無しさん: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/
135デフォルトの名無しさん:2012/05/16(水) 23:22:38.41
>>133
「Railsの黒魔術」で検索した結果。一般にどういうことを指しているか。

http://www.slideshare.net/tmtm/ruby-3424591
メソッドが実行時に生成される。クラスが実行時に生成される。
パース時ではなく実行時オープンクラス、既存のクラスを変更できる。
特異メソッド。演算子もメソッド。クラスもオブジェクト
メソッドも動的に生成。定数の動的取得
文字列からメソッド呼び出し。
クラスが継承された時に実行されるメソッド
メソッドが存在しない時に実行されるメソッド
メソッドが追加/削除された時に実行されるメソッド
クラスの祖先を調べる
オブジェクトにメソッドがあるか?

世間一般にはこういうことを黒魔術と呼びます。
さて、世間の常識で話を進めましょうか?
136デフォルトの名無しさん:2012/05/16(水) 23:23:51.20
ふしゅるるる
137デフォルトの名無しさん:2012/05/16(水) 23:36:20.94
>>132
Rubyでのいわゆる黒魔術は
eval系メソッドとリフレクション(の組み合わせ)を指すことが多い
これら自体は割とどんなスクリプト言語でも使える
138デフォルトの名無しさん:2012/05/16(水) 23:38:14.68
>>133
DSLとかリフレクションが強力ってのじゃないの?

Pythonもわりとなんでもできるけど
隠れた仕組みで標準じゃない動作をさせたりするのは違和感がある。個人的に。
そういうのは明示的にアノテーションでなんとかさせたい。
139デフォルトの名無しさん:2012/05/17(木) 00:32:35.51
>>135
そのslideは、「Ruby」についてのものだろう?
132は「Railsの黒魔術」といっていたんだぞ?

RubyとRailsをごっちゃにしてる人にコピペされても。
140デフォルトの名無しさん:2012/05/17(木) 00:40:56.70
>>139
ちゃんと読め。
Railsで使われてる黒魔術だ。

RailsがRubyで書かれてるんだから
黒魔術のコードがRubyになるのは当たり前。
141デフォルトの名無しさん:2012/05/17(木) 00:52:31.54
Railsの黒魔術というとActiveRecordだけど、
あれの、動的にアクセッサができるって意味ないよな。

静的でいいじゃんって思う。

たとえば、カラム名nameってのがあったとして、find_by_nameが
動的に作られるって言うけどさ、その場合、find_by_nameを
使ったコードがすでに書いてあるわけだろ?

実行する前からnameってカラムがありますってわかってるわけじゃん?
nameってカラムがあるのがわかってるから、find_by_nameを呼び出しますって
コードに書くわけじゃん?

実行前にわかってる、つまり静的でいいよね?
142デフォルトの名無しさん:2012/05/17(木) 01:07:42.60
できることよりコードが少なめruby
できることよりコードが多めjava
143デフォルトの名無しさん:2012/05/17(木) 01:14:00.06
>>140
間違ったからって強引な屁理屈こねるのはやめろw

現状、Rubyが実質Railsくらいにしか使われてないから、
Ruby=Railsな印象があるのは認めるけど、あくまで別物。
RubyはRuby。言語。
RailsはRails。フレームワーク。

黒魔術なんて誰が言い出したのかしらんがアホっぽいね。
ソースみればなにやってるか、どうなってるか理屈わかるのに
なにが魔術なんだか
144デフォルトの名無しさん:2012/05/17(木) 01:14:52.71
>>141
Rubyは実行時に決まることが多いので、それに合わせた方が問題が少ない。

DB叩いてみないと name というカラムが本当にあるかはわからない。
SQLiteのインメモリデータベースのように、テーブルやカラムも実行時に作成している場合もあるからね。
あるいは、ビューを実行時に作って使い捨てたりとか。

それに、find_by_nameも自分で定義したメソッドかも知れないし、
他のライブラリが定義したメソッドかも知れない。

ActiveRecordの場合は、DBが情報持っているのだから、
アプリ側で静的な定義をすることで同じ情報を二重に持っている必要はないよねという考えでもある。
145デフォルトの名無しさん:2012/05/17(木) 01:15:55.19
>>141
データベースに接続するのは実行時だから
カラム名やらを静的には把握できないでしょ
脳内で分かってるのはプログラマだけ
146デフォルトの名無しさん:2012/05/17(木) 01:53:59.07
>>144 >>145
いや、だからさ、何が便利なわけ?

コード上に、find_by_name()書くでしょ?
これはもうファイルに保存されてるよね?

DB叩いてみてフィールドがなければこのコードはエラー起きるよね?

それは動的も静的も変わりないよね?

何か間違ってる?
147デフォルトの名無しさん:2012/05/17(木) 02:34:44.79
無くなってもそんなに困らないけどあった方がスムーズに書ける機能だとは思うな
find_by_name("tom")
find.where(:name => "tom")
上の方がよくない?
あと昔はwhereが無くてもっと長く書かないといけなかった
148デフォルトの名無しさん:2012/05/17(木) 02:37:39.23
もっと長く書いてみて
149デフォルトの名無しさん:2012/05/17(木) 02:47:57.96
スマホなんで勘弁してくれ
conditions時代だよ
150デフォルトの名無しさん:2012/05/17(木) 03:21:37.08
>>147
だから、find_by_nameを静的に作ればいいだけでしょ?
コードジェネレータをコンパイル時に自動実行するだけ。
151デフォルトの名無しさん:2012/05/17(木) 03:22:42.57
俺が言いたいのは、DBのアクセッサ生成は
静的でできることだよね。ってこと。
152デフォルトの名無しさん:2012/05/17(木) 04:05:47.05
Railsの話題はRailsスレへ。
>>134
153デフォルトの名無しさん:2012/05/17(木) 06:38:02.72
結論
 Rubyは黒歴史
154デフォルトの名無しさん:2012/05/17(木) 09:13:27.45
perlは前世
rubyは黒歴史
pythonは理想郷
schemeは宗教
javascriptはルネサンス
155デフォルトの名無しさん:2012/05/17(木) 10:19:53.17
>pythonは理想郷
kwsk
156デフォルトの名無しさん:2012/05/17(木) 10:43:44.63
インデント強制から何故かfateのタイトルを思い出したので
157uy:2012/05/17(木) 12:09:35.46
>>135
世間一般でそれを「黒魔術」と呼ぶのは言語側がその機能を提供してないから
黒魔術によって優秀な()プログラマが、勝手に機能を作っちゃうって事だろ
その時に書かれたコードや、内部の動作は黒魔術だけど

constants
ancestors
variables
methods
define_method

など、メソッド呼び出すだけで、他言語では黒魔術使わない限りできないような事が最初から出来るようになっているならば
黒魔術とはいわず優れた処理系というべき

method_missingをPHPで実装して使ったら黒魔術だけど、
Rubyでmethod_missingを使うのは別に黒魔術ではないと思う
つうか毎日使ってたら魔術()とか思わないし、慣れればただの自分の技術
158デフォルトの名無しさん:2012/05/17(木) 12:12:55.48
魔法も魔術も毎日使うよ
159デフォルトの名無しさん:2012/05/17(木) 12:54:57.31
method_missingをよく分かって使うのは結構なんだが、乱用は良くないから
黒魔術と呼んで抑制することは悪くないとは思う。
モンキーパッチと呼ぶのも同じように思ってる。
160デフォルトの名無しさん:2012/05/17(木) 13:00:24.55
黒魔術と言うからには何か害があるのか?
161デフォルトの名無しさん:2012/05/17(木) 13:06:29.29
>>160
あまり動的な変更をやり過ぎると把握し辛くなるね
組み込みクラスの挙動とか弄ったりされると
Ruby使いでも注意深く読まないと挙動が読めなくなる
162uy:2012/05/17(木) 14:23:24.77
常識的に考えて(AA略)
ヤバイと思う事は出来てもやらないのが、Rubyでソースコードをかける最低ラインだと思う
module Kernel
   def print *h
      puts "うぇwっうぇww"
   end
end

print "test message"
163デフォルトの名無しさん:2012/05/17(木) 14:43:45.49
インタプリタ言語でありながら解読されにくいプログラムを書けるってこと
164デフォルトの名無しさん:2012/05/17(木) 18:05:11.67
糞読みにくいコードを書いて悦に入ってる奴は死ねってことなら同意。
一人で作って永久にお前がメンテするなら良いけどな。

Perlユーザーに多いんだよな、糞読みにくいコードをドヤ顔で書く奴。
俺がPythonを推すのは、こういう輩が絶滅して欲しいから。

自分の書いたコードを黒魔術、とか自慢げにいう奴は一生一人で誰にも迷惑をかけずに作ってろ。
165デフォルトの名無しさん:2012/05/17(木) 19:00:17.24
>>157 にあるいくつかのメソッドで、Pythonにはないメソッドはどれだろう

逆にPythonのinspect.getargspec(?)のような、メソッドの引数を調べるメソッドは、
Rubyにはないのかな
166デフォルトの名無しさん:2012/05/17(木) 19:04:24.54
>>164
まるで「Pythonじゃどうやっても読みやすいコードしか書けない」みたいな言い方だが
本当にそうなのか?
167デフォルトの名無しさん:2012/05/17(木) 19:21:21.62
>>166
そこまでの拘束力はないけど、そういう風習・土壌があるから書かない。
PerlでもRubyでも冗長に書けば見通しよくできるけど逆に変態扱いされる。
168デフォルトの名無しさん:2012/05/17(木) 20:07:57.26
Perlはもう数年前から読みやすいコードを書こうって方向にシフトしてるじゃない

>>165
こんなのがあるらしい
>>> def foo(a, b, c); end
>>> method(:foo).arity #=> 3
169デフォルトの名無しさん:2012/05/17(木) 20:19:45.27
Method#parametersの方がいいかも
170デフォルトの名無しさん:2012/05/17(木) 20:31:28.35
>>> def bar(x, y, *z, &r); end
>>> method(:bar).parameters
=> [[:req, :x], [:req, :y], [:rest, :z], [:block, :r]]

おお、ほんとだ
171デフォルトの名無しさん:2012/05/17(木) 21:26:59.96
>>168 >>169
thnx

Method#parametersは1.9.2からみたいですね
1.8.7では駄目でした
172デフォルトの名無しさん:2012/05/17(木) 21:29:49.26
Rubyはカス言語だなあ
173uy:2012/05/17(木) 22:24:40.98
for i in "a".."c"
  $nn ||= (
    puts "1回だけ処理したい"
    true )
  p i
end


そんな事より、こんな風にループのブロックに入ったときに
最初の1回だけ処理するっていうのを簡単に書ける言語ってないの?

174デフォルトの名無しさん:2012/05/17(木) 22:33:15.02
breakで抜ければいいんじゃないか
175デフォルトの名無しさん:2012/05/17(木) 22:35:56.13
>>173
最初の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 文は文を実行してから条件式を評価します。
176デフォルトの名無しさん:2012/05/17(木) 22:41:30.30
>>175
そうじゃなくて、uyが言いたいのは
最初の一度だけ代入、みたいな処理だと思う

Ruby の ||= の動作ちゃんと解ってりゃ
同等のものが if で簡単に書けるのは当たり前の話なんだが…
177デフォルトの名無しさん:2012/05/17(木) 22:49:24.85
178デフォルトの名無しさん:2012/05/17(木) 22:51:21.37
lispのloopなら
179デフォルトの名無しさん:2012/05/17(木) 23:34:14.91
C言語

for (i = 0, puts("hoge\n"); i < 10; i++) {
}
180デフォルトの名無しさん:2012/05/17(木) 23:37:02.08
putsなのに\nを指定してるあたりプロだな
181uy:2012/05/17(木) 23:59:59.32
>>175
ちょっと違う

>>179
それじゃダメなんだ
イテレータというか { } のブロック内でやりたい時がある

>>177
なんか英語だけど俺と同じことで悩んでる奴らかそれ
182uy:2012/05/18(金) 00:22:51.09
class Array
  def 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
}

英語サイトに人に感化されてこんなのを考えてみた
183デフォルトの名無しさん:2012/05/18(金) 07:00:22.30
なんで、どの言語も変な癖を入れるんだろ
PHPでいいじゃん
184デフォルトの名無しさん:2012/05/18(金) 08:06:34.23
PHPに癖がないとでも?
185デフォルトの名無しさん:2012/05/18(金) 09:59:57.70
PHPは関数の名前に一貫性がないあたり、癖があるとおもうけどな。

Microsoft OfficeのExcelとかAccessが同じような内容の関数が別名で
それぞれ覚え直さないといけないというのに絶望したよ。PHPにはそれを感じる。

あと、バージョンによって挙動が異なる関数とかもめんどくせぇ。

PHPがそれなりにWeb開発言語として有用だった事は認めるが
いい加減役目は終わらせるべきだと思うね。
186uy:2012/05/18(金) 10:13:57.68
名前の一貫性とかの前に
http://www.php.net/manual/ja/class.recursivefilteriterator.php
こんな言語でよく頑張るなと感心する

PHPでプログラミングできるって才能じゃね
187デフォルトの名無しさん:2012/05/18(金) 10:20:57.13
AccessはMSが他社から買収したんだっけ?
PowerPointは買収だった気がする
188デフォルトの名無しさん:2012/05/18(金) 12:11:39.81
PHPerはイテレータなんて難しい概念は理解出来ないからおk
それにしても酷い実装だなぁ、これw
189デフォルトの名無しさん:2012/05/18(金) 12:24:51.69
後方互換性を切り捨てて命名規則に一貫性が出ないものか
移行には適当なトランスレータでも作ってさ
言語の便利な機能は良いけれど,それサバンナでも同じこと言えるの?
190デフォルトの名無しさん:2012/05/18(金) 12:42:23.84
PHPはイテレータはおろか、SPLを使ってる奴なんて、全世界で1000人もいないと思うぞ
191デフォルトの名無しさん:2012/05/18(金) 13:49:59.25
ぺちぱ
192デフォルトの名無しさん:2012/05/18(金) 14:23:49.05
Visioも買ってきたものだね
193デフォルトの名無しさん:2012/05/18(金) 20:14:48.76
>>186
PHPにeach系のイテレータないのかと思ってみてみたが、

「foreach ループを終えた後でも、 $value は配列の最後の要素を参照したままとなります。
unset() でその参照を解除しておくようにしましょう。 」
と警告がかいてあった。

ありえなくないか?
簡単にかけるからイテレータがあるのに、unsetしろ、とかwww

http://www.php.net/manual/ja/control-structures.foreach.php

Webにしか使えないしPHPはほんとウンコだな
スクリプト言語ならPythonかRuby。
194デフォルトの名無しさん:2012/05/18(金) 21:06:55.93
ブロックスコープないんだねぇ。。。
195デフォルトの名無しさん:2012/05/18(金) 21:09:21.08
JSもブロックスコープないな。

それから、イテレータから(例外みたいな大道具なしで)サクっと抜け出す機能は、
後付けするのが難しい。JSでもそんなわけで結局イテレータが使えないことが
よくある。
196デフォルトの名無しさん:2012/05/18(金) 21:38:33.69
Ruby最強か
197デフォルトの名無しさん:2012/05/18(金) 22:16:32.35
えっ
198デフォルトの名無しさん:2012/05/18(金) 22:51:50.24
>>193
ブロックスコープとかあまり関係ない。

$a = new MyObject();
unset($a); ← こうしないと$aは解放されないってだけ。


普通はfunctionの中で使う。
もちろんローカル変数は関数が
終わったら解放される。

言い換えるとグローバル変数は使うなってだけ。
199デフォルトの名無しさん:2012/05/19(土) 02:22:06.31
最近はpythonばっかりでほとんどruby使わなくなったけど
イテレータ周りはrubyが本当に優秀だなと思う
イテレータが入れ子になっても可読性落ちないよね
200デフォルトの名無しさん:2012/05/19(土) 02:49:38.50
Rubyは処理したいオブジェクトを何でも先に書いちゃうのが直感的でわかりやすい
aaa.to_i とか aaa.each do ~~  とか あとifの後置なんかもそうだよね
オブジェクトファースト記法とか勝手に命名してる
適当で横着な書き方をしてもそれなりに綺麗なコードになるのは凄いと思う

Rubyの書きやすさに慣れちゃうとPythonですら書いててたまにイラッとくるし、
JSやらPerlぐらい汚いとアルコールでイライラを抑えないととてもじゃないけどやっていけないレベル
PHP?キーボード20個ぐらいオジャンにしたわセミコロンとかうぜーよ意味ないだろあれ
201デフォルトの名無しさん:2012/05/19(土) 02:56:04.96
受刑者にRuby覚えさせて出所後の社会復帰を助けるっていうプロジェクトあったじゃん
あれの支援を受けた受刑者が出所後に採用された会社でPHPやらされて、
破綻した言語仕様に発狂して飲み屋で暴れて塀に逆戻りっていうエピソードもまんざら冗談じゃないなって思ったよ

まあそれくらいRuby凄いってことですわ
ほんと半端ないっすよRuby
202デフォルトの名無しさん:2012/05/19(土) 02:59:44.06
まさか……自己紹介……
203デフォルトの名無しさん:2012/05/19(土) 06:15:45.68
>>198
それは問題じゃない
要素への参照を受け取る時は気をつけないとハマるぞと警告している

foreach ($list as &$item) {} # $list = array(1, 2, 3);
$item = 99; # $list = array(1, 2, 99);
204デフォルトの名無しさん:2012/05/19(土) 09:51:03.80
>>203
それ見事にはまったことあるわ。
スコープのウンコさと参照のウンコさの合わせ技。


自分がやったのは単純な代入じゃなくてこんなんだった:
foreach ($list as &$item) { ... }
...
foreach ($list as $item) { ... }
205デフォルトの名無しさん:2012/05/19(土) 10:15:01.96
int i;
for(i=0; i<10; i++) {
 if(・・・) break;
}

if(i == 10) {
 printf("全部終わった");
} else {
 printf("途中で終了");
}

これみたいなもんだろ?
変数がどこで宣言されてるか、考えましょうってだけの話じゃんか。
206デフォルトの名無しさん:2012/05/19(土) 10:17:04.63
>>203
> 要素への参照を受け取る時は気をつけないとハマるぞと警告している

ん? unsetの話だろ。

お前の話だと、
$list = unset か array(1, 2, unset) になるぞ。
207デフォルトの名無しさん:2012/05/19(土) 10:55:44.77
phpにunsetなんて値はねえよ
208デフォルトの名無しさん:2012/05/19(土) 11:12:27.28
>>201
60%の人間はプログラミングの素質がない
http://cpplover.blogspot.jp/2012/05/60.html
209デフォルトの名無しさん:2012/05/19(土) 11:21:35.02
やべーmongrel殺しちまった
弊社のエブサービスが死んでしまって糞客に文句垂れられるかもしれんが、
そんなことはない、ログに残っていないで突っぱねよう
信頼、安全、安心のmongrelでございます、お客様。
やっちまっただよ 徹夜明けでの自宅での仕事はミスが多いね
来月からは会社で仕事しよう
210デフォルトの名無しさん:2012/05/19(土) 11:22:24.63
読んでみたけど何を言わんとしてるのかサッパリわからなかった
211デフォルトの名無しさん:2012/05/19(土) 11:22:46.85
>>208
212デフォルトの名無しさん:2012/05/19(土) 11:30:09.70
プログラミングは一を聞いて十を知る人向けのものだってことだろう

>>209
よくわからないけどとりあえずエブ鯖板にタレコミにいってくるお
213デフォルトの名無しさん:2012/05/19(土) 11:31:36.51
>>209
ごちゃごちゃ言う前に鯖起動しなおしたの?
214デフォルトの名無しさん:2012/05/19(土) 11:37:55.63
>>210
自分の頭で考えられない奴、論理を自分の都合で変える奴は
プログラマに向かないっつー話。
215デフォルトの名無しさん:2012/05/19(土) 12:27:10.15
>>214
くだらないブログをうのみにしないいで
自分の頭で考えましょう。
216デフォルトの名無しさん:2012/05/19(土) 12:33:00.35
このスレの頭でっかち君たちのほとんどが60%の方に当てはまったんだろうな
217デフォルトの名無しさん:2012/05/19(土) 12:34:57.97
とういうふうに、論理を自分に都合よく変えてみた。
218214:2012/05/19(土) 13:24:20.38
>>215
プログラミング初めて30年近いから、
適正とかどうでも良いいやって感じ。
219デフォルトの名無しさん:2012/05/19(土) 13:47:22.54
>>215
ブログをコピーしなくても、なぜか同じ考えに到達できる人もいるよ
コピーしないと空白になる人やコピーしないとランダムになる人にはそれが分からない
220uy:2012/05/20(日) 13:07:45.79
ソース整理してたら昔ruby-tk-sdlで作ったサウンドプレイヤーでてきたので貼り
require '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
221デフォルトの名無しさん:2012/05/20(日) 18:48:21.69
なにがしたいの?
222デフォルトの名無しさん:2012/05/20(日) 19:05:05.17
gistでやれ
223uy:2012/05/20(日) 20:02:33.74
このスレでソースあげないで何すんの?
他言語使いの奴が>>220を他言語でさらに短く実装する流れにならないのはなんで?
このスレ何がしたいの?
224デフォルトの名無しさん:2012/05/20(日) 20:26:56.76
お題なら他の言語を使ってる人でも答えやすくしてからでないと
突然>>220貼ってもみなさんポカーンでしょ
225デフォルトの名無しさん:2012/05/20(日) 21:10:07.87
>>220のソースコードの著作権は2chに帰属することとなりました
226デフォルトの名無しさん:2012/05/20(日) 22:29:20.72
24歳、彼氏イナイ歴24年。

生まれて初めてモテた。
始めは罰ゲームでもしてんのかと思って拒絶していたら、
毎日花を一輪くれるようになった。 1ヶ月くらい続いて、
ちょっと本気かもしれないと思い始め、一緒に食事に行っ
たりした。
前から告白されていたのをずっと断ってたけれど、次に言
われたら受け入れようと思った。
食事の帰りに雨が降って、生まれて初めて男性を家に入れた。
「若いのにすごいね〜、持ち家なんて」
と言われたので、
「いいえ、両親から相続したんですけど、相続税のほうが高くて、
一生借金返済生活なんですよw」 と言った。

すると彼はやおら生まれてからの生い立ちを話し始めた。
物心つかない頃に両親に捨てられたらしい。里子として
今の里親のところに幼児院から出されたんだって。
彼の話を聞いていて私も涙が出てきて一緒に泣いた。
彼がひとしきり話した後、私も今までの想いが溢れ出
てきて彼に全部話しちゃった。お父さんお母さんに会え
なくなったと認めるのは辛すぎていつもいつも町に繰り出し
ては色々な人に迷子になってしまった私のお父さんお母さんが
今どこにいるか知る人を探したの。でも誰も知ってるわけないよね。
もうこの世にはいないんだもの。まさか墓前に立てば会いに行け
るなんて少女に教えるわけないよね。言えないよね。

すると彼は私の話しに同情してくれて男泣きに泣いたの。
私と彼はもうお互いに大号泣。
ウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!!
省略されました。続きを読むには私と彼のために泣いて下さい。
227デフォルトの名無しさん:2012/05/20(日) 23:31:53.18
ハッスルハッスル
228デフォルトの名無しさん:2012/05/21(月) 02:56:36.42
Lispが無いとか(笑
229デフォルトの名無しさん:2012/05/21(月) 03:29:36.88
イテレーターなら、C#の方が良いだろ。
230デフォルトの名無しさん:2012/05/21(月) 17:15:55.54
>>220 短くできるできないの前に、参加できる言語が限定されるだろ、これ。
use 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();
231デフォルトの名無しさん:2012/05/21(月) 21:53:08.99
ハッシュキーのベアワードや$_のおかげでRubyより綺麗という気がしなくもない
232デフォルトの名無しさん:2012/05/21(月) 23:39:32.79
(ql:quickload :anaphora)
(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の終了方法がイマイチかもしれない。
233デフォルトの名無しさん:2012/05/22(火) 00:15:53.91
# coding: utf-8
import 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()
234デフォルトの名無しさん:2012/05/22(火) 00:18:45.00
packがNoneを返すせいでframe = Tk.Frame(root); frame.pack()と二行分けになったり
lambdaに一行しか書けないせいでplaymusicが関数定義になってしまったりと
もうちょっとうまいこと書けないのだろうかと思った。書きなおし歓迎
235デフォルトの名無しさん:2012/05/22(火) 12:45:51.83
再生と一時停止ってふつートグルじゃないのか?
236デフォルトの名無しさん:2012/05/22(火) 12:46:19.39
タプルで書けるしょ
短くて読み難いコードはいらんけど
237デフォルトの名無しさん:2012/05/22(火) 12:51:29.75
>>235
MPC-HC
Winamp
Foobar2000
けっこうあるぞ、分かれてるやつ…
238デフォルトの名無しさん:2012/05/22(火) 13:16:54.45
再生中に再生を押す
一時停止中に一時停止を押す
でどんな動作をするか想像が付かない
239デフォルトの名無しさん:2012/05/22(火) 13:21:39.69
機能的にはトグルだけど、UI上独立してる方が認識しやすいとか誤操作防止にはなるかもね。
いまのは知らないけど昔の家電はそんなだし。
240デフォルトの名無しさん:2012/05/22(火) 16:26:53.57
>>238
Winampとfoobar2000では再生中に再生を押すと曲を最初から再生し直す
後は特に意味なし
241デフォルトの名無しさん:2012/05/22(火) 16:44:21.04
最初から再生し直すって知ってたら分かるけど、
|←(左向き三角) のようなボタンの方が自然かもな
242デフォルトの名無しさん:2012/05/23(水) 08:16:12.45
Rubyのまつもとさんは日本人だから人柄が少しは伝わってくるけど、
PythonのGuidoさんのことって履歴くらいしか知らない...

Guidoさんってどんな性格の方なんでしょうか?

優しい/気性が激しい、とか人間らしい情報をもっと知りたい
243デフォルトの名無しさん:2012/05/23(水) 08:39:07.45
LLよろず本の流れか
244デフォルトの名無しさん:2012/05/23(水) 11:24:27.25
人間には表と裏があることを理解しようね
取り繕っている人柄だけで判断すると痛い目みるぞ
245デフォルトの名無しさん:2012/05/23(水) 11:55:43.05
Rubyの糞のような文法を見れば
頭の中が、そして人となりが
透けて見えますね
246デフォルトの名無しさん:2012/05/23(水) 15:04:46.99
お前のレスに人となりが透けて見える
247デフォルトの名無しさん:2012/05/24(木) 08:27:02.92
>>245
別にmatzの人格は誰も良いとは言って無いんだぞ?
むしろ >>242 も「人間らしい」と書いてるように
悪い面のよく目立つ人物だと言うのはRuby使いからも知られてるのよ
248デフォルトの名無しさん:2012/05/24(木) 11:55:18.97
>>247
なんでこんなに読解力の低い人間が多いのだろう
249デフォルトの名無しさん:2012/05/24(木) 11:58:58.22
人格がいいと言ってるのを否定したくて>>245を書いたんじゃないと思うよ
250デフォルトの名無しさん:2012/05/24(木) 12:54:36.94
オレオレ仕様が糞ってこと?
251デフォルトの名無しさん:2012/05/24(木) 16:41:07.24
ラリー:祈りのオチャメな人、ホイド:唯物史観・功利主義者、まっず:イケけてるモルモン人
252デフォルトの名無しさん:2012/05/24(木) 17:57:21.23
おまいらが何と言おうと勝手だが、俺はもうPHPの入門書買ってしまった。よってPHPの文句は言うなよ。
253デフォルトの名無しさん:2012/05/24(木) 18:08:45.66
PHP, Perlでプログラミング始めるのはお勧めできない。
言語仕様がクソだし、
低速なWebアプリしか作れない

Rubyも実質的に低速Webアプリ専用といっていい。
Rails風フレームワークが多数ある今、あえてはじめる意味も小さいと思う

Javaか、C#を覚えるのが一番効率がいい。
クライアントアプリ、高速なWebアプリ、SmartPhoneアプリなんでも作れる。
254デフォルトの名無しさん:2012/05/24(木) 18:51:55.52
Perl はそもそもWeb用言語じゃないですし…
255デフォルトの名無しさん:2012/05/24(木) 19:02:45.55
システム管理用のスクリプトなんてニッチな用途だし
そんなもののためにわざわざ別の言語覚えるのは非効率。

スクリプト言語は、遅いからWebアプリぐらいしか
実質的に使い道がないってこと。
256デフォルトの名無しさん:2012/05/24(木) 19:12:04.41
何でもその言語で作るんじゃなくて
使い分けなんだよな、言語は
257デフォルトの名無しさん:2012/05/24(木) 19:13:53.09
>>256
それ、このスレじゃ禁句
258デフォルトの名無しさん:2012/05/24(木) 19:14:19.30
普通のアプリを結構作ってるが、スクリプト言語で遅いと感じられる事って
意外と少ないんだけどなぁ
259デフォルトの名無しさん:2012/05/24(木) 19:14:25.56
書いててきもてぃーって言語はないの?
260デフォルトの名無しさん:2012/05/24(木) 19:22:38.17
JavaScriptのjQuery
あれは書いてて快感が
261デフォルトの名無しさん:2012/05/24(木) 19:48:33.25
>>260
素のJavaScriptの酷さから解放された快感があるね
でも読む側は…

C#のLINQとか拡張メソッド、メソッドチェーンを使いだしたとき、"きもてぃー"って感じた
俺の場合は。
262uy:2012/05/24(木) 20:35:27.27
rubyの
each_with_index.map
each_with_index.inject は天才だと思った
263デフォルトの名無しさん:2012/05/24(木) 20:37:56.34
>>256
たいていのことはなんでもできちゃって、しかも速い言語(C#やJava)が
あればスクリプト言語なんて不要だよ

スクリプト言語では実現できないことはたくさんあるが、
スクリプト言語じゃないとできない開発なんてほぼない
264デフォルトの名無しさん:2012/05/24(木) 20:59:11.85
たくさんの実現できないこと詳しく
265デフォルトの名無しさん:2012/05/24(木) 21:18:46.51
>>263
まずコンパイルの手間が無くソースをそのまま実行できるのは
スクリプト言語の大きな利点
たとえばC/C++インタプリタのCINTみたいのもあるけど、
これは例外的な扱いだろな

こんな基本的な事に気が付かないなんて、
WindowsのGUIしかしらないお子様だろ
266デフォルトの名無しさん:2012/05/24(木) 21:30:07.19
JSなしでは生きられない
267デフォルトの名無しさん:2012/05/24(木) 21:34:15.74
>>264
速度が遅いからアプリ開発に使いものにならない

高速なdebugができない

実行時に初めてエラーがでるなど、スクリプト言語は開発効率が悪い
268デフォルトの名無しさん:2012/05/24(木) 21:37:28.84
>>265
267にかいたが、コンパイルなんてのはそれなりのPCで
SSD構成であればすぐ終わる。

スクリプト言語では、デバッグの効率が悪いから、
コンパイルにかかる時間よりはるかに多くの時間を失う。

タイピングしてる時間よりも、デバッグに費やしている時間のほうが
はるかに長い。
これに気がつかないことこそお子様だよ
269デフォルトの名無しさん:2012/05/24(木) 22:19:12.76
JSが大好き
お子様が大好き
270uy:2012/05/24(木) 23:46:45.18
「動的言語が使い物にならない!」なんて、言っちゃうのは
自分バカですとか言ってるようなもんだよね・・・

「動的言語での開発じゃ周りがついてこない」ならわかるけどw
271uy:2012/05/24(木) 23:54:13.33
あと、「動的言語は遅い!」とかいってる奴も
本当に動的言語での開発で、速度がネックになってどうしようもならなった事あんの?
たとえばどこで?
272デフォルトの名無しさん:2012/05/25(金) 00:15:34.22
>>271
他人(過去の自分)の書いたコードを修正する時かな。

メソッド名とかを変更しようと思っても
影響範囲がどこまで有るか人間が調べないとわからない。

同じ名前だけど違うメソッドとか有るので検索した結果を
一つ一つ調べて修正するまでが遅い。開発のネックになるよ。

静的型付け言語だと、メソッド名を選んで一つ変更すれば
プロジェクト全体の変更が自動で行われる。確実に速いね。
273デフォルトの名無しさん:2012/05/25(金) 00:23:00.12
>>270
さっそくRuby信者が登場w

トラフィックがどうしようもならなくなってから考えるのは低レベル。
それよりずっと前にレスポンスが悪い状態になってる。

TwitterがRuby捨てたのも有名な話。
FacebookなんてPHPで始めてしまったために全部開発しなおしになった。

そういう事例があるから、海外の最近のインターネットサービスの企業は、
最初からスクリプト言語を避けてる。
スケーラビリティを考えて、最初からJava, C#, Scalaで作る。
いまやRailsに影響受けたフレームワークが多数あるから、開発生産性も悪くない。

日本はあいかわらずPHPばっかり
せっかくJava選んでもStrust1とか化石フレームワークつかってたりな
日本は、言語もフレームワークも時代遅れ。
274デフォルトの名無しさん:2012/05/25(金) 00:35:54.34
>>273
Ruby厨もなにもここスクリプト言語同士でやりあうところなのに
コードも書けないのにドヤ顔でそこいらのブログに書いてあることをつらつら並べられてもつまらん
275デフォルトの名無しさん:2012/05/25(金) 00:53:32.00
>>271
暗号化処理で
あと枝狩りとかオセロゲームで
276デフォルトの名無しさん:2012/05/25(金) 01:04:17.57
>>274
ここでスクリプト言語の争いやってるってことは、
このスレのほとんどのやつはスクリプト言語しか使えないってこと。
JavaやC#はまったく知らないひとが大半だろう。


そこらのブログに書いてある?
URLあげてみてくれ
277デフォルトの名無しさん:2012/05/25(金) 01:06:23.98
日本自体がオワコン
278デフォルトの名無しさん:2012/05/25(金) 01:09:30.03
フロントは動的でおけ。バックは静的か動的でも超軽め。
フロントはどこも変わらず
Twitter=Rails
Facebook=PHP
Amazon=Perl
だろ。
バックは書き換えられてるだろうな。

フロントPHPちょっとJavascriptがっつり、バックJavaとか多くね。
279デフォルトの名無しさん:2012/05/25(金) 01:10:06.97
IT関連で日本に世界的な企業なんて無いしな。
280デフォルトの名無しさん:2012/05/25(金) 01:17:56.33
むしろJavaを避けてObjective-Cで作れば面白いかもしれないよ
281デフォルトの名無しさん:2012/05/25(金) 01:19:14.11
>>273
TwitterもFacebookもRubyやPHPをこの世から消滅させろとか言ってないのに
282デフォルトの名無しさん: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, グリーとかなに使ってるんだろ。
283uy:2012/05/25(金) 01:55:52.41
>>272
実行速度のことを言ったんだけど、

メソッド名の変更は、動的言語では正しく置き換えるのは厳しいな
でも別にそれ古いメソッドも残して、古いほうよばれたらデバッグ時に警告でるようにすればいいだけじゃね
284uy:2012/05/25(金) 02:06:17.74
>>275
暗号化のロジック部分だけ静的言語でかけばいいんじゃない

オセロは重くなる箇所なんてねーだろ
AIにしたって定石パターン拾ってくるだけ
枝狩りって何のこと言ってるのか
285デフォルトの名無しさん:2012/05/25(金) 02:13:15.46
>>283
あなたはRuby以外で、どの言語つかったことあるの?

リファクタリングは、タイプセーフな言語のが効率よくできるのは確かだよ
型の記述なんて1個2秒くらいなんだからStaticで書いたほうが
結局、時間の節約になるんだよ。
仕様変更あっても、IDEでさくさく直せる。

>古いほうよばれたらデバッグ時に警告でるようにすればいいだけじゃね

「コンパイルが不要」ってスクリプト言語のお決まりのセールストークだけど、
型宣言をさぼると、そうやって他のところでしわ寄せが来る。
その分、テストプログラムの作成やらで時間がとられる。
286デフォルトの名無しさん:2012/05/25(金) 02:22:23.30
〜実録 テストを書かないJavaプログラマ〜

未完
287デフォルトの名無しさん:2012/05/25(金) 02:53:39.89
>253
だから否定するなっての。しかもここはスクリプト言語スレなんだからC#もJavaもスレ違いだ。
288デフォルトの名無しさん:2012/05/25(金) 02:54:54.80
>>284
動的言語は遅いってことになるんじゃないの?
で、反論できなくなれば、そこのロジック部分だけ静的言語
で書けばいいんじゃないって言い続ければ動的言語は遅いってことにならないなw
あほかw

AIとかそんな単純じゃねーよ
だったらお前が書いてみろよ
大体その定石だって作るのは静的言語だろうが

静的言語の成果物を元にしないと動的言語の方で
十分高速なものを作れないんだったら、
やっぱり動的言語は遅いの
289デフォルトの名無しさん:2012/05/25(金) 03:14:20.71
LLの(軽|重)量級のフレームワークのどれを計測しても
データ層の重さと比較したら誤差。
成功した会社はデータ層を、金が集まったら適当な言語・技術で書き直してる。
データ層以外は思ったより、そのまま使っている会社が多い。
どんな言語で開発しようと、当あたって金ができたら、考えればよい。
むしろ超重量級で開発してメジャーになったが
スケールできなくてコケたものなどがあったら教えてほしい。
290デフォルトの名無しさん:2012/05/25(金) 03:32:42.46
>>283
> でも別にそれ古いメソッドも残して、古いほうよばれたらデバッグ時に警告でるようにすればいいだけじゃね

警告でたあと、どっちみち変更しないといけないじゃん。

なんで、そんな面倒なことしなくちゃならんの?

あ、動的言語だからか。
291デフォルトの名無しさん:2012/05/25(金) 03:35:42.18
>>286
テストを書いたって、エラーが起きたことが分かるだけで
何が原因でエラーになったかはわからんのだよ。
エラーの原因を調査するのにも時間が掛かる。

それにテストってのはエラーがあることは証明できるが
エラーがないことの証明はできないんだよ。

テストってのを本当に知っていれば分かるはずだよね?
なんでテスト万能だと思ってるの?
テスト書くにも時間が掛かる。省けるテストは省きましょう。
292uy:2012/05/25(金) 03:46:04.73
>>285
ruby以外で使ってるのはC++
でも他言語の構文も概念もおおよそは把握してるよ
そのメソッド名変更の件については一考する
動的言語が考えなければいけない箇所だ


>>288
はい?オセロごときのAIが単純じゃないって、寝ぼけてんの?
まぁゲームアルゴリズム何にもわからん子がAIなんて書いたら
大変な事になるんだろうけど
携帯アプリでもオセロや将棋が動いている所を見ると、それほど重い処理はいらないように見えるよね

>で、反論できなくなれば、そこのロジック部分だけ静的言語
>で書けばいいんじゃないって言い続ければ動的言語は遅いってことにならないなw
すげー勘違いだな、
動的言語を使ってても、全てのメソッドやクラスを静的言語で部分実装できるものではない
動的言語のソースコードから静的言語でネイティブに吐き出せる部分は限られてくるし、
下手に吐き出すと余計に遅くなる事もある、
暗号化について完全に吐き出せる箇所だから、遅くなるんだったら静的言語で書けって言ってんだよ
どういう暗号化のアルゴリズムを描いたら、動的言語で処理が追いつかなくなるのか知らんけど
ろくでもないソースコードかいているんじゃなければいいな
293uy:2012/05/25(金) 03:54:41.18
やっぱ俺が思うに
動的言語遅いとか言ってる奴は

普通のプログラマからしたら考えられないくらいの遅いコードを書くから
今まで高速な言語のおかげでそのゴミカスアルゴリズムが、影響を及ぼす事はなかったけど
ちょっと速度制限のある動的言語でソース書かせると、そこら辺が如実に表れてしまうのではないか

ふむ、まともなアルゴリズムがかけないのならば仕方がない
動的言語への移行を推奨していくのも難しいところだな
294285:2012/05/25(金) 04:08:13.25
>>286
必要な場所は、テストコードは書いてるよ
静的なら凡ミスは全部コンパイラ、IDEが指摘してくれるが、
動的だとコンパイラ、IDEでエラー拾えないから、テストの時間が長くかかる

>>289
書き直すのは時間もコストもかかるから、最初からある程度高速な言語で
やろうって企業も増えてる。
JavaもC#も、最初の学習コストは少し高いかもしれないが、開発生産性は
決して低くないよ。
上に書いたようにリファクタリング、デバッグの時間が大幅に短くなるから。


>スケールできなくてコケたものなどがあったら教えてほしい。

スケールできなくてこけるような企業は、有名になってないw
295デフォルトの名無しさん:2012/05/25(金) 04:10:37.83
>>293
ベンチマークの結果から
動的言語が遅いのは明らかだよ。
その遅さが問題になるかどうかは、何に使うかで決まる。

アクセス数1日に1万人のサイトを1台のサーバーで運用とかいうような
小さな規模では問題にならないだろう。

だが1台のサーバーで100人、1000人以上を収納するような
ウェブサービスなら問題が発生する。
遅くても問題無いというのは、単に君が小さな規模のものしか作ってないだけの話。

アルゴリズムは同じ人が作るんだから言語が違っても
同じ物が出来るんだから、まともなアルゴリズムが書けないとか
関係ない話。まともだろうがまともじゃなかろうが
同じアルゴリズムで速度に差が出る。
296デフォルトの名無しさん:2012/05/25(金) 04:19:29.96
やっぱり動作速度よりも開発速度のほうが重要だよな。

静的型付け言語だと、動的型付け言語に比べて修正のコストが大幅に低い。
コードの量よりも、修正の際の調査のほうが時間かかるからね。

静的型付け言語のコードが冗長といっても決まり文句みたいなものだから
コードの行数がコードリーディングの負担になることはないし。
297デフォルトの名無しさん:2012/05/25(金) 07:05:03.77
ここで静的型付け言語の方が開発効率良いって
言ってる奴って、実はコード全く書けないから
5分くらいで書ける簡単なお題出すと
追っ払えるよ、マジおすすめ

静的型付け言語の方が効率良いはずなのに、5分で書けるコードが
一日待っても二日待っても出てこないw
え?俺等が5分でやる仕事に何日もかかるの?みたいな
298デフォルトの名無しさん:2012/05/25(金) 07:11:05.09
考えた特定のアルゴリズムを実装しやすい言語がある
299デフォルトの名無しさん:2012/05/25(金) 07:24:56.72
開発効率は結局のところ動的と静的でどっちがいいのか

コーディング
静的 > 動的

リファクタ
動的 > 静的

デバッグ
動的 > 静的 (コンパイル時間とか考慮すると微妙?)


一人でちゃちゃっと作る小規模なのは静的で、多人数で大規模なのは動的でって感じなっちゃう?
300デフォルトの名無しさん:2012/05/25(金) 07:32:14.53
>>299
おい、静的と動的が全部逆になってねーか?
301デフォルトの名無しさん:2012/05/25(金) 07:34:56.86
>>300
マジだ…死にたい


コーディング
動的 > 静的

リファクタ
静的 > 動的

デバッグ
静的 > 動的 (コンパイル時間とか考慮すると微妙?)
302デフォルトの名無しさん:2012/05/25(金) 08:12:24.43
>>297
それは追い払ってるんじゃなくてHaskellを呼び寄せてるんだぜ。

JavaをHaskellに変更するコストは、PerlをCに変更するコストよりも大きい。
303デフォルトの名無しさん:2012/05/25(金) 08:20:53.60
Haskellで>>220はちょっと見てみたかったな
304デフォルトの名無しさん:2012/05/25(金) 08:24:39.82
こんなスレタイだから、俺の「スクリプト言語不要論」に全員が思いっきり
反論してくるかとおもったが、静的の効率のよい面を支持してくれる人もいるようだなw

>>301
C# (Visual Studio)は差分でビルドできるからコンパイル時間は気にならないな。
一瞬で終わるし
305デフォルトの名無しさん:2012/05/25(金) 08:28:45.77
>>304
そんな一瞬でコンパイルの終わるC#使いのあなたに>>220
TkやSDLでなくても.NETでおkよ
306デフォルトの名無しさん:2012/05/25(金) 08:37:18.15
220あぽんされててわろす
307デフォルトの名無しさん:2012/05/25(金) 08:45:45.64
>>297
えとね。静的型付けの方が開発効率がいいというのは
多人数で行う中小規模の開発の話なんだ。

トラックのほうが速く多くのものを運ぶことが出来るでしょ?
でも小さな手荷物を近くのコンビニまで運ぶのなら
手で運んだほうが速いんだよ。

5分でここに書けるコードと、
実際のコードでは極端に差があるってのは
わかるよね。
308デフォルトの名無しさん:2012/05/25(金) 08:48:38.04
>>306
ああそうか。あぼんしてる人もいるのね
>>230,232,233のRuby実装
309デフォルトの名無しさん:2012/05/25(金) 09:37:03.05
>>292
携帯とかじゃなくてPC用のオセロゲームを考えていたんだけど
こっちはまあいいや。

静的言語の成果物を元にしないと動的言語の方で
十分高速なものを作れないんだったら、
やっぱり動的言語は遅いの
310デフォルトの名無しさん:2012/05/25(金) 09:44:53.11
定石データベースに一致しない盤面の場合は、勝利の期待値を探索することになる
すべて保持するわけにはいかないからね
で、探索も全解探索だと、時間がかかりすぎて実用的じゃないから、適切な深さで探索の枝を打ち切る
数手を探索する程度でもそれなりに強い
311デフォルトの名無しさん:2012/05/25(金) 10:57:03.16
俺の個人的な意見としてだけど

静的型推論付き>動的>静的型推論なし

かなあと思う、単純な型なら推論なしでもいいが
ジェネリクスやテンプレート、高階関数(関数ポインタ)などを複数含む型になると
流石に思考の妨げになってしまう印象
312デフォルトの名無しさん:2012/05/25(金) 11:04:09.14
Prolog言語はどれに分類されますか
313デフォルトの名無しさん:2012/05/25(金) 11:09:58.24
あれは根本的なところが違うからなんとも…
314デフォルトの名無しさん:2012/05/25(金) 11:32:24.90
強いて言えば関数型
315デフォルトの名無しさん:2012/05/25(金) 12:03:36.31
Prologは「論理型」という別パラダイムに分類するのが定石
316uy:2012/05/25(金) 12:52:56.00
>>295
>同じ物が出来るんだから、まともなアルゴリズムが書けないとか
>関係ない話。まともだろうがまともじゃなかろうが

動的言語であろう許容範囲内の速度が出ればいいわけで
それを出せない場合において初めて静的言語の導入を考えるんだろが

あと、同じ物は出来ないだろ
静的言語でかかれたソースコードを動的言語でそっくりに書き直す事は出来るだろうが、
それじゃ動的言語を使う意味が薄すぎる
ちなみにその逆は出来ないと考えたほうがいいよ
317uy:2012/05/25(金) 13:00:15.96
>>309
だ〜か〜ら、オセロのどこが複雑なんだよって

PC版オセロとかいっても
どうしてもAIが遅いとかいって勘違いをして処理速度を考えるなら
オセロ程度なら全ての譜面の状態をオンメモリで記録したとしても
10MBいかねーんじゃねーの?事前計算のAIにしとけばAIの処理速度なんて0だろがアホか
将棋や麻雀でそれは厳しいだけでオセロごときじゃ余裕
次からは将棋や麻雀を例にだしておけ


それと、まだ勘違いしてんの?
動的言語っていうのは、「静的言語で作られたライブラリを使いやすくする為の機構」だと思えよ
標準ライブラリとかRubygemsがすべてrubyだけでかかれてるとか思ってるのか・・・
318uy:2012/05/25(金) 13:04:04.00
ソースコードの書きやすさを捨ててまで、プログラミングをする価値って何?
RubyをアンチしてPython使うぜみたいな奴ならわかるけど
動的言語を全批判とかwお話にならないわ
319uy:2012/05/25(金) 13:18:16.42
つうか、思ったけど将棋や麻雀にしても
そこら辺のゲームで実行速度が問題になることはないような気がしてきた
この話は忘れたまえ、パズルゲーとボードゲーは動的言語で書ける
320デフォルトの名無しさん:2012/05/25(金) 13:36:23.17
>>310も言っているが、
オセロにしても将棋にしても
すべての盤面を記憶してるわけでもないし、
毎回全解探索してるわけでもないだろ?
全解探索せずに探索を打ち切ること=枝刈り

動的言語で書ける・書けないという話はしないが
全パターンが10MBで収まるとかオセロをナメすぎ
321uy:2012/05/25(金) 13:46:05.10
>>320
>全パターンが10MBで収まるとかオセロをナメすぎ
本当に?
322uy:2012/05/25(金) 13:50:52.71
俺の携帯アプリに
強さモード3つあって

20kb程度で動くオセロのアプリあるけど
どうやって動いてるんだろうな
323デフォルトの名無しさん:2012/05/25(金) 13:53:08.25
ちょっと考えただけでそんなのすぐ分かるだろw
オセロは8*8=64マスあるが各マスに対してコマ無し/白/黒の3通りのパターンがあるから
盤面の状態は3^64パターン。(無効なパターンもあるけど)
で1パターンについて何bit使って打つ手を表すか知らんが
適当にコレ*無効パターンの割合=1で打ち消しあうとしよう
すると必要な容量は3^64bits = 4 * 10^23 MB。ほんと10MBとか何寝ぼけたこと言ってるんだよって話
324デフォルトの名無しさん:2012/05/25(金) 13:54:22.85
>>312
型という観点からPrologを見ると、実は無限のバリエーションで
データを授受できる。ところが実際のPrologプログラミングでは
構造体はリストだけで、ほとんどの引数にはスカラー型データが
くる。これはPrologプログラマがPrologをRDBであると意識して
いるからだと思う。一応は、整数、実数、文字列の区別があるが
Prolog教科書の索引に型という項がないことからも分かるよう
に、全く型について意識されることはないのがむしろ特長。
325uy:2012/05/25(金) 13:55:28.10
どうせ3**64の譜面を全記憶とかw
そんなレベルのアルゴリズム思い浮かべてるから
10MBという大容量があっても足りなくなるんだろ
ドカタはおそろしい
326デフォルトの名無しさん:2012/05/25(金) 14:00:01.38
まったくだなー
オセロ程度なら全ての譜面の状態をオンメモリで記録したとしても10MBいかねーんじゃねーの?
なんて低レベルな発想が思い浮かぶだなんてこれだからドカタは恐ろしい
327デフォルトの名無しさん:2012/05/25(金) 14:00:26.61
オセロのソフトウェアはたくさんあるが、
すべて局面が10MBに収まるなら
誰かがフリーソフトの一部として配布するだろう?
実際はそんなものはない。

最も有名なオセロソフトWZebraにも、
ある程度盤面のデータ(book)が入ってるが、
それでも探索の深さをちょっと増やすだけで
コンピュータが1手打つまで結構待たされる。
自分で体験してみろ。
http://www.radagast.se/othello/download.html
328uy:2012/05/25(金) 14:02:00.63
>>323
ワロタwwwww
言ってるそばから

まずは隣接しているコマ同士の譜面の全パターンの抽出
で、その中から「ゲームルール上」ありえる譜面のみを抜き出す
で、全部を抜き出せばおそらく俺のアバウトな計算では10MB程度と、でた。


あとはさぁ、譜面を回転させることによって4分の1には簡単に出来るんだから
せめて
3**64 / 4 はやっとけよ

この程度も一瞬でひらめかないレベルなんか
329デフォルトの名無しさん:2012/05/25(金) 14:06:59.82
探索の枝の話も分からないようだから言っても無駄か
330uy:2012/05/25(金) 14:07:47.29
ゼブラってw
また古いもの持ち出してきたな

お前の中ではゼブラが最強なんだろう
よかったな
331デフォルトの名無しさん:2012/05/25(金) 14:13:46.39
ドヤ顔で1/4くらいなら簡単にできるとか面白いやつだなーほんと
332uy:2012/05/25(金) 14:13:59.13
10MBも与えてるのにオセロつくれませーん とか
流石に、ドカタだな

ゲーム機や、PCスペックが今よりもはるかに低い大昔から
動かせてた種類ゲームだというのに
ドカタは10MBもあって作れないのか

3**64の譜面を記憶させないとダメなのか・・・w

つれると思ったよそこ、絶対それ考えてると思った
低脳の発想は読みやすい
333デフォルトの名無しさん:2012/05/25(金) 14:16:56.68
>>322
・序盤の定石を記憶
・以降は数手先読み
このくらいの処理なら容量食わないしそれなりに強い
334uy:2012/05/25(金) 14:24:59.29
それがどうした
335デフォルトの名無しさん:2012/05/25(金) 14:26:38.08
ルール上起こりうる譜面をすべて記憶してるとでも思ってるんだろ?
336uy:2012/05/25(金) 14:29:37.82

┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
337デフォルトの名無しさん:2012/05/25(金) 14:30:49.79
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│●│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
338デフォルトの名無しさん:2012/05/25(金) 14:32:21.10
>>317
オセロの話は全て俺が間違ってた

> 動的言語っていうのは、「静的言語で作られたライブラリを使いや
> すくする為の機構」だと思えよ

だから、こう思うのは、「動的言語の実行速度が遅い」ためだろーが
話がずれてきてるだろーが、馬鹿が理解するのは無理か

> あと、「動的言語は遅い!」とかいってる奴も
> 本当に動的言語での開発で、速度がネックになってどうしようもならなった事あんの?
339デフォルトの名無しさん:2012/05/25(金) 14:34:17.22
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│●│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
340デフォルトの名無しさん:2012/05/25(金) 14:34:58.20
すべての譜面が10MBに収まるという話に説得力がない
その譜面データベースのURLを示すか、ありうる譜面が何通りあるかを書くくらいしろ
341デフォルトの名無しさん:2012/05/25(金) 14:47:15.94
>>292
C, C++なんて一番めんどくさい言語だろ
あれは嫌いになって当然だ
「使ってる」じゃなくて「使っていた、学習していた」だろう?

>そのメソッド名変更の件については一考する
>動的言語が考えなければいけない箇所だ

C# + VisualStudioでは、メソッド名の変更は
一箇所変更して、「名前の変更」をクリックするだけで全部置き換わる。
しかも一瞬で。

こういうの考慮すると、開発生産性はスクリプト言語の完敗だよ
多少、タイプ文字が少ないからといって開発生産性が高いと
思い込んでる人はわかってないなぁ、と思うわ
342デフォルトの名無しさん:2012/05/25(金) 14:48:22.65
自演うざい
343デフォルトの名無しさん:2012/05/25(金) 14:49:42.85
自演呼ばわりうざい
344デフォルトの名無しさん:2012/05/25(金) 14:50:09.79
>>341
ふ〜んw
345デフォルトの名無しさん:2012/05/25(金) 14:51:46.80
スクリプト言語用のIDEでメソッド名変更が簡単にできてもいいんじゃないの?
346デフォルトの名無しさん:2012/05/25(金) 14:55:23.67
で、uy君は何かを探索するプログラム書いたことあんの?
347デフォルトの名無しさん:2012/05/25(金) 14:56:06.17
def greet(s): ...
eval("greet('hi')")

とか考えると無理なような気もするけど
世の中には頭いい人がいるからなんとかなったりして
348デフォルトの名無しさん:2012/05/25(金) 14:57:11.13
ネックはevalだけか?
349デフォルトの名無しさん:2012/05/25(金) 15:07:59.95
>>273
お前がかかわるプロジェクトで、そこまでスケーラビリティを考える必要なんて無いだろ
350デフォルトの名無しさん:2012/05/25(金) 15:11:45.89
>>348
何も考えずに書いちゃったけど一般的に変数の型が実行時に決まらないことにはどうにもならないね
351uy:2012/05/25(金) 15:34:24.80
>>338
そもそも動的言語を採用するなら最初から静的言語との併用が大前提
動的言語で開発っていったのに静的言語使ってずるいーw とかそういうレベルなの?
両方使うに決まってるだろ


>>341
速度の事を考えるときと、WinAPIを使うときにC++を使う
つうか、C#.NETのほうがいいことは分かってるけど、こちら側になれてると移行するのが面倒くさい
352uy:2012/05/25(金) 15:37:32.73
>>346
こんなソースばっかりだよ
  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
353デフォルトの名無しさん:2012/05/25(金) 15:38:17.83
あれ?
Rubyを中間言語やバイナリにコンパイルできるものが、過去にいくつかあった気がするが
それらは今どうなってるの?
354デフォルトの名無しさん:2012/05/25(金) 15:38:48.21
stack.merge!でくらっときた
355デフォルトの名無しさん:2012/05/25(金) 15:54:02.32
>>352
本当に必要な箇所でしか()使わないという徹底振りがすごいな
356デフォルトの名無しさん:2012/05/25(金) 15:57:03.82
PrologでHaskellでも、ちょっとしたイケてるRailsアプリを真似ることすら難しい気がするのだが。
おまえら本当にこんなんで、Webあぷぷをこさえるおつもりか。
http://mew.org/~kazu/material/2012-yesod.pdf
357デフォルトの名無しさん:2012/05/25(金) 15:59:52.11
Prologもコンパイルできたり
PrologとC++/Cで関数/述語を互いに呼び出したり出来るよ
358デフォルトの名無しさん:2012/05/25(金) 16:38:23.86
ふーん、ゲームの探索プログラムを書いたこともないのに適当に語ってるのか
359デフォルトの名無しさん:2012/05/25(金) 19:57:56.35
昔C#ばっかり使ってたころはスクリプト言語をバカにしてたけど、
RubyとPythonを使い始めたら滅多にC#を使わなくなってしまった
360デフォルトの名無しさん:2012/05/25(金) 20:34:33.26
rubyはmoduleが便利だな
Mix-inとか早く他言語でも実装されたらいいのに
こうすりゃできるぜとかじゃなくて、使いやすい形での実装を求む
361デフォルトの名無しさん:2012/05/25(金) 20:57:42.38
mix-inは機能を制限した多重継承だから、多重継承できる言語ならどれでも模倣はできるはず。
その場合、mix-inより自由度がある分、使用にはRubyと比べて注意が必要か。
362デフォルトの名無しさん:2012/05/25(金) 21:08:08.99
クラスへのMix-inなら多重継承で真似できるけど
オブジェクト自身へのextendは厳しい
363デフォルトの名無しさん:2012/05/25(金) 21:08:18.75
専門業務型裁量労働制は否定されました。
従業員代表は認められませんでした。
管理監督者の適否まで判断されませんでした。
付加金は認められませんでした。

時間給の計算方法は
月給÷(所定労働日数×7時間)
でした。
30時間分の残業代込みとの主張は認められませんでした。

今回とは全く別件のことで、
「裁量労働相談室」の担当者の名前をちょっと知りたく思っています。
実際のメール等、何かあれば全部下さい。
現在でも特に何もありませんよね。
安全安心です。

日本国内在住です。住所は米子市のままです。
今回は郵便などでも問題ありません。
本日から一週間(6月1日)が目安です。

また、お願いします。
一日千秋の思いで待ってますから。。。
(´・ω・`)ショボーン
(´・ω:;.:...
364デフォルトの名無しさん:2012/05/25(金) 21:21:42.12
mixinとtraitは似たようなことを狙っている印象があるが
違いはどう解釈すればいいのかね
365デフォルトの名無しさん:2012/05/25(金) 22:53:52.24
PHPを覚えると金融機関のシステムやクラウドサービスが作れるようになりますか?
PHPはオブジェクト指向言語の代表格なのでPHPを先に学習すると
JavaとかC#とか簡単に覚えられるし、これからはPHPの高い信頼性を
生かして他の言語で作られたシステム、特に銀行系のシステムが
PHPに置き換えられていくと会社の先輩から聞きました。
366デフォルトの名無しさん:2012/05/25(金) 23:04:26.93
>>364
interface継承がない動的型付け言語がmixinにこだわるのは分からなくもない
静的型付け言語で似たようなことを狙う奴は空気読めない
367デフォルトの名無しさん:2012/05/25(金) 23:05:25.37
>>365
釣りだろうけど、いいかげんにしろw
クソ設計で有名なPHPはWebにしか使えないだろw

基幹業務に低速なスクリプト言語なぞ使わない
JavaやC#使うことがあってもPHPはありえん
368デフォルトの名無しさん:2012/05/25(金) 23:14:46.74
>>366
静的型付け言語であっても、実装を共有してかつ型を合わせたいけど
ダイヤモンド継承みたいな複雑な事態は避けたい場合には
現状では、制限された多重継承としてmixinかtraitを使うしかないんじゃないの

Rubyでmixinが実際に多用された結果、
有効だけどいくつかのケースで問題がある事が分かったらしく
最近はオープンクラス問題を含めて解決策が検討されてるっぽいが
369デフォルトの名無しさん:2012/05/25(金) 23:23:40.05
JavaもC#も多重継承を禁止してるのはちゃんと理由が
あってのことだからな。
きちんと設計できてれば多重継承なんて必要ない。

Rubyは劣化版オブジェクト指向言語だな
370デフォルトの名無しさん:2012/05/25(金) 23:23:42.90
【PHP】下らねぇ質問はID出して書き込みやがれ 119
http://kohada.2ch.net/test/read.cgi/php/1337172256/247n-
371デフォルトの名無しさん:2012/05/25(金) 23:31:20.83
>>368
has-a で実装を共有して is-a で型を合わせる
has-a を禁止されたら多重継承を使うしかないが、現状では禁止されていない
372デフォルトの名無しさん:2012/05/25(金) 23:50:59.95
>>369
おや?
Java8で実装を伴ったInterfaceが書けるようになるのはどうしてかな?
373デフォルトの名無しさん:2012/05/26(土) 00:07:18.72
頭がJDK 1.0.2で止まってるんだろう
374デフォルトの名無しさん:2012/05/26(土) 00:43:42.53
>>371
それが煩雑だっていう面もあるんじゃない
デザインパターンで言うと、Template MethodよりStrategyのほうが
移譲を使っていて柔軟性はあるけど……っていうような?ちょっと違うかも
375デフォルトの名無しさん:2012/05/26(土) 01:04:43.17
>>365
> PHPを覚えると金融機関のシステムやクラウドサービスが作れるようになりますか?

金融機関ならCOBOLでしょう?

PHPだとFacebookを作れますよ。
376デフォルトの名無しさん:2012/05/26(土) 01:07:45.36
>>372
>Java8で実装を伴ったInterfaceが書けるようになるのはどうしてかな?

ですよねー
377デフォルトの名無しさん:2012/05/26(土) 01:15:19.02
>>375
FacebookのPHPは嘘
コンパイルされてる別物だから実行速度が違う
378デフォルトの名無しさん:2012/05/26(土) 01:17:03.98
ん? コンパイルすればいいだけだよね。

C言語をコンパイルすると機械語になるけど
機械語を覚えるわけじゃないでしょ?
覚えるのはC言語だよね。

PHPをコンパイルすると○○になるけど
○○を覚えるわけじゃないでしょ?
覚えるのはPHPだよね。
379デフォルトの名無しさん:2012/05/26(土) 01:20:01.60
>>378
FacebookのPHPコンパイラ使ったことあって言ってるの?
380デフォルトの名無しさん:2012/05/26(土) 01:23:15.12
>>377
>FacebookのPHPは嘘
>コンパイルされてる別物だから実行速度が違う
その理屈でいくと、内部でJITコンパイルしている処理系は全部別モノということになる。
つまりおまえの理屈がおかしい。
381デフォルトの名無しさん:2012/05/26(土) 01:27:26.00
>>379
使ったこと有る
使ったこと無い

この2つ答えに対する君のレスを
2つ書いて下さい。
382デフォルトの名無しさん:2012/05/26(土) 01:28:35.65
使ったことのある無しが
何の関係がるんだろうか?
383デフォルトの名無しさん:2012/05/26(土) 01:29:12.77
FacebookのPHPはスクリプト言語じゃない
あんなトラフィックのサイトはスクリプト言語で動かないってのw

これだからこのスレの住人はwww
384デフォルトの名無しさん:2012/05/26(土) 01:31:35.81
>>381
人口無能にレスつけてる気分になったのでもういいです
385デフォルトの名無しさん:2012/05/26(土) 01:37:59.55
馬鹿には無理
386デフォルトの名無しさん:2012/05/26(土) 01:41:25.99
wikipediaもphpだったよな。

無知は恥ずかしいよ。
387デフォルトの名無しさん:2012/05/26(土) 01:44:16.67
言語処理系がプログラムをコンパイルして実行するかどうかと
型付けが静的か動的か、あるいはスクリプト言語かってのは別の概念

例えばJavaは一般的に仮想マシンで実行される静的型付け言語
Common Lispはコンパイラ付きの動的型付け言語(+オプションで型指定できる)
組み合わせは割となんでもある
388デフォルトの名無しさん:2012/05/26(土) 01:44:49.12
uyが言ってただろ
遅くても問題ない速度で動けば
使える言語なのだって。
389デフォルトの名無しさん:2012/05/26(土) 02:00:26.12
>>388
問題ないと思ってるのは自分だけ

少しでも早くhttpのレスポンスを返すことにプライドを持つべきだろ
タイムアウトしなければいいとかいう低次元すぎる

>>386
wikipediaなんて99%以上のリクエストがただの参照で
データ更新してない。
個人ごとに違うデータ見せる必要がないから、たいていキャッシュから返せる。
こんなサイトは、簡単にスケールアウトできる。
390デフォルトの名無しさん:2012/05/26(土) 02:01:25.15
えー、はい。それで
PHPなんですよね?
391デフォルトの名無しさん:2012/05/26(土) 02:02:24.39
>>383
いやFacebookの開発言語は普通にPHPだよ。独自開発したPHP処理系を使っているというだけで、言語はPHPそのもの。
392uy:2012/05/26(土) 02:06:16.21
あああああLispやりたい
393デフォルトの名無しさん:2012/05/26(土) 02:08:24.04
LISPは解散しました
394デフォルトの名無しさん:2012/05/26(土) 03:02:17.63
時代はPrologだ
395デフォルトの名無しさん:2012/05/26(土) 03:03:48.73
Lispは検索ノイズを増やしただけだった。
396デフォルトの名無しさん:2012/05/26(土) 03:19:33.35
ぶっちゃけ、記号でぐぐった時の結果の如何が、シギルの是非の明暗を決めてるよな。
397デフォルトの名無しさん:2012/05/26(土) 04:20:54.92
自演うぜー
398デフォルトの名無しさん:2012/05/26(土) 05:30:03.76
検索エンジンが記号も検索できるようにしてくれれば一番いいのに
399396:2012/05/26(土) 07:31:51.57
GuidoがGoogleに居るということ。
400デフォルトの名無しさん:2012/05/26(土) 07:41:46.15
だが残念ながらRubyの人も多数送りこまれているのでした
夜はまだ始まったばかりだ
401デフォルトの名無しさん:2012/05/26(土) 08:29:41.34
Hoogleみたいな検索ページを、各言語で作ればいいだけの話。
402デフォルトの名無しさん:2012/05/26(土) 11:29:09.47
>>389
> >>388
> 問題ないと思ってるのは自分だけ
>
> 少しでも早くhttpのレスポンスを返すことにプライドを持つべきだろ
> タイムアウトしなければいいとかいう低次元すぎる
>
> >>386
> wikipediaなんて99%以上のリクエストがただの参照で
> データ更新してない。
> 個人ごとに違うデータ見せる必要がないから、たいていキャッシュから返せる。
> こんなサイトは、簡単にスケールアウトできる。

つまり、簡単にウェブサイトを作れるPHPが優れてるって事だよな?
だいたい、速度を言い始めたら、スクリプト言語がJavaやC#に勝てるわけないんだし。どんぐりの背比べだ。
403デフォルトの名無しさん:2012/05/26(土) 11:39:53.62
頭の悪い言語仕様やライブラリに耐えられるなら好きにすればいいと思うよ
404デフォルトの名無しさん:2012/05/26(土) 11:40:23.38
JavaやC#なら何もキャッシュしなくても、キャッシュバリバリ使ってるスクリプト言語にすら余裕で勝てる
405デフォルトの名無しさん:2012/05/26(土) 12:01:43.06
バカな設計を正当化してどうするのw

ウィキペディアといえば、マージソートの記事、書き換わってるな。
406デフォルトの名無しさん:2012/05/26(土) 12:19:14.75
なんでHaskellなんだ
407デフォルトの名無しさん:2012/05/26(土) 12:20:20.52
408デフォルトの名無しさん:2012/05/26(土) 12:27:40.93
>>402
402の後半理解できなかったか
やっぱりスクリプト言語厨は頭悪いなw

ほぼ静的なコンテンツ用のサイトは、簡単にスケールアウトできるし
その場合は言語などほとんど関係ないってことだ。
wikiの場合、ほとんどのユーザがログインしないで使うだろ。
ほとんどは、検索ワードに対する内容をただ返しているだけ。

一方、Facebookなどは情報の更新が多く、さらに個人ごとに
まったく違う情報を表示させる必要がある。
こういうサイトのスケールアウトはwikiのように簡単にはいかない。
あらゆる高速化の手段使ってる。

>簡単にウェブサイトを作れるPHPが優れてるって事だよな?

違う。高機能なサイト、高トラフィックのサイト、レスポンスの速いサイトを
つくろうとするとスクリプト言語だと逆にたいへんになる。
もしくは不可能になる。

スクリプト言語は覚えることが多少少ない代わりに、
他の面で苦労する羽目になる。
409デフォルトの名無しさん:2012/05/26(土) 12:41:09.28
全体から見たらたった10%の、高速化が重要な部分が、あたかも全てであるかのように語る技術
410デフォルトの名無しさん:2012/05/26(土) 12:54:53.04
全体から見たらたった10%の、高速化が重要な部分が、あたかも全てであるかのように語るプログラムもPHPで書けますか?
411デフォルトの名無しさん:2012/05/26(土) 12:57:20.81
馬鹿には無理
412デフォルトの名無しさん:2012/05/26(土) 13:04:53.31
print "語りたい内容";
413デフォルトの名無しさん:2012/05/26(土) 13:28:47.90
フロントエンドだったら、単純にサーバ増やせばスケールするしなあ。
数万台サーバを扱ってて、数千台まで減らせるのだったら考えるだろうけど。
414デフォルトの名無しさん:2012/05/26(土) 13:28:54.36
お題。Amazonの在庫チェックスクリプトを書きなさい
商品の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 日曜日 にお届けします!
415デフォルトの名無しさん:2012/05/26(土) 13:31:30.15
>>408
だから、その通りの事を>>402で書いてるだろう。
416デフォルトの名無しさん:2012/05/26(土) 13:39:55.74
print <<<EOF
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 日曜日 にお届けします!
EOF;
417デフォルトの名無しさん:2012/05/26(土) 13:48:22.59
このスレでPHPの回答見たの初めてかもしれない
418デフォルトの名無しさん:2012/05/26(土) 13:51:01.24
perl <<EOF;
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 日曜日 にお届けします!
EOF
419デフォルトの名無しさん:2012/05/26(土) 13:51:29.19
print orz
420uy:2012/05/26(土) 14:15:11.91
すげえ
未だにPHP推す奴がいるのか
421デフォルトの名無しさん:2012/05/26(土) 14:23:30.30
すげえ
未だにモッサリ動作のRuby推す奴がいるのか
422uy:2012/05/26(土) 15:33:10.57
マジレスするとperl6よりは起動は2,3倍速い
423デフォルトの名無しさん:2012/05/26(土) 15:58:55.45
起動が速いだけとかw
424デフォルトの名無しさん:2012/05/26(土) 16:15:29.39
そういえば、正確なコード忘れたけど
str = ""
10000.times do
 str += "a"
end
みたいな事をやってRubyは遅いとブログに書いてるのいたな
425デフォルトの名無しさん:2012/05/26(土) 16:38:16.92
システムトレイに常駐しておいてクイック起動気取りとかなw
426デフォルトの名無しさん:2012/05/26(土) 18:08:28.92
>>408
facebookのPHPコンパイラはせいぜい2〜3倍程度の性能向上らしいよ?
それとは別にJIT方式のPHP実行環境を開発中で、将来は全面的にそっちへ移行予定だとか
性能的にも現PHPコンパイラのレベルまでは到達可能だと予想してるらしい
facebookはスクリプト言語の効率的な開発サイクルを重視してるっぽいね
427デフォルトの名無しさん:2012/05/26(土) 18:23:55.23
で、それがPHP公式に
取り入れられるかもしれないね。
428デフォルトの名無しさん:2012/05/26(土) 18:32:44.95
この対応と同等。

スクリプト PHP  
静的コンパイル C++
動的コンパイル C#
429デフォルトの名無しさん:2012/05/26(土) 18:41:21.76
FacebookはPHPを選んでしまって失敗だった
430デフォルトの名無しさん:2012/05/26(土) 19:06:50.01
昔むかしStage6はRuby on RailsではダメでPHPか何かで作り直したよね?
431デフォルトの名無しさん:2012/05/26(土) 19:17:59.77
TwitterはRuby on RailsじゃだめでScalaだったかな。
432デフォルトの名無しさん:2012/05/26(土) 19:31:19.07
Ruby on Railsは使い物にならないんだな
433uy:2012/05/26(土) 19:35:26.74
そもそもPHPやPerlの話をしてるときって、動的言語の問題点を挙げてきたりはしないよね
rubyの話になると途端に動的言語の問題を指摘してくる奴いるけどw

これの意味するところは、PHPやPerlでは動的言語の問題が解消されてるとかいう話ではなく
話に混ざれるフィールドにすら辿り着いていない事を意味する
勘違いしないようにね
434デフォルトの名無しさん:2012/05/26(土) 19:35:38.70
>>430-432
このように、PHPを使ってるかSlacaを使ってるかはどうでも良くて
「Railsを捨てた」ことが重要なのですな
435デフォルトの名無しさん:2012/05/26(土) 19:38:24.78
> そもそもPHPやPerlの話をしてるときって、動的言語の問題点を挙げてきたりはしないよね

え? 普通に出てきてるけど?
節穴?
436デフォルトの名無しさん:2012/05/26(土) 19:41:25.56
そもそもPHPやPerlの話で
動的言語の話が出てこないからな。
ぶっちゃけ動的言語的に劣ってるのだろう?
437デフォルトの名無しさん:2012/05/26(土) 19:49:15.39
酷い自演
438デフォルトの名無しさん:2012/05/26(土) 19:54:53.77
こんな板で自演呼ばわりすること自体頭がおかしい
439デフォルトの名無しさん:2012/05/26(土) 23:54:47.99
JavaScriptはいいよな
ブラウザ上で動けばいいだけなんだから

JavaScriptで大規模開発は出来ない!
とか大声あげていわれる事もなくて幸せそうでいいな
440デフォルトの名無しさん:2012/05/26(土) 23:55:49.53
>>436
知らないクセに、よく言えたものだ。呆れる。
441デフォルトの名無しさん:2012/05/27(日) 00:31:53.94
必死すぎる
442デフォルトの名無しさん:2012/05/27(日) 01:12:52.04
>>439
JavaScriptだってサーバーで動かせられるんだからねっ!
443デフォルトの名無しさん:2012/05/27(日) 03:06:07.88
あんなものつかってるやつはばかです
444デフォルトの名無しさん:2012/05/27(日) 03:15:30.03
秀丸マクロで遊んでみた
そこそこ使える
445デフォルトの名無しさん:2012/05/27(日) 05:23:45.93
秀丸マクロもLL
446デフォルトの名無しさん:2012/05/27(日) 05:44:04.49
貧弱だから
LLLLくらいか
447デフォルトの名無しさん:2012/05/27(日) 10:09:21.12
448デフォルトの名無しさん:2012/05/27(日) 10:47:28.20
試しにクリックしたらブラウザが落ちた
449デフォルトの名無しさん:2012/05/27(日) 10:53:39.63
ただの雑談掲示板だったよ
450デフォルトの名無しさん:2012/05/27(日) 11:22:16.46
>>414
ちょっと長くなってしまったので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
451デフォルトの名無しさん:2012/05/27(日) 11:23:13.71
>>450の続き

threads = 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)
452デフォルトの名無しさん:2012/05/27(日) 11:59:14.65
Perl6は静的型付けだから、もうLLの範疇にないかもな。
453デフォルトの名無しさん:2012/05/27(日) 12:59:52.88
単に実行時型チェックの仕組みが導入されただけじゃないの?
それだけで言語としての位置づけが大きく変わるとは思えん
454デフォルトの名無しさん:2012/05/27(日) 13:34:50.67
>>414
use 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 '';
}
455デフォルトの名無しさん:2012/05/27(日) 19:50:37.41
>>450書きなおし
お手本にさせてもらいました >>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
456デフォルトの名無しさん:2012/05/27(日) 19:54:21.90
こんなくだらないネタに一生懸命なことで
457デフォルトの名無しさん:2012/05/27(日) 20:01:05.83
値打ちのわからない者には何の役にもたたないということ。
458デフォルトの名無しさん:2012/05/27(日) 20:05:37.11
>>434
>このように、PHPを使ってるかSlacaを使ってるかはどうでも良くて
>「Railsを捨てた」ことが重要なのですな

まさにその通り。
RailsすててSinatraにしたら4倍速くなってびびった。
TwitterはRailsすててScalaにしたら3倍速くなったそうだけど、なぜ3倍にしか速くなってないのか不思議。10倍くらい速くなってもおかしくないんだが。
459デフォルトの名無しさん:2012/05/28(月) 00:51:52.19
>>452-453
http://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年から開発はじまって
まだ正式リリースされてない時点で摘んでる。
後方互換性の問題引きずって開発が進まないんだろうな


やっぱりスクリプト言語、将来性なさすぎるな
遅いし、開発生産性低いし
460デフォルトの名無しさん:2012/05/28(月) 08:50:18.94
10年前からそう言いつづけてるよなおまえらw
10年たってもそうなってないけど言い続けるとかw
461デフォルトの名無しさん:2012/05/28(月) 11:48:32.05
一度LLの便利さになれたら静的言語とか触りたくなくなるんだよね
大体LL嫌ってる奴は、LLを使いこなす頭もないやつか
全くの未経験者
462デフォルトの名無しさん:2012/05/28(月) 11:54:34.86
静的言語を使い倒している人ほど、動的言語のメリットをよく理解でき、おそらくは目的によってきちんと使い倒す
それができない人は、まあ、単に煽って反応をもらいたいだけなのだろうから、無理に反応することもない

とか言うとこのスレの意義がなくなるのでみんな煽れ反応しろ
463デフォルトの名無しさん:2012/05/28(月) 11:59:00.84
ここは番号飛んでない
464デフォルトの名無しさん:2012/05/28(月) 12:17:53.36
>>463
お前P2Pスレに入り浸っているだろw
465デフォルトの名無しさん:2012/05/28(月) 17:42:09.13
プログラミングの入門は大体が静的言語からで
プログラマの大多数は1つしか言語を使えない、あるいは1つも使いこなせていない
だからこそ2つ目の言語を覚えたり、移行するまでに何年もかかるんだよ
466デフォルトの名無しさん:2012/05/28(月) 18:36:49.27
馬鹿には無理
467デフォルトの名無しさん:2012/05/28(月) 18:43:14.45
1つの言語さえ使いこなせないとか毛も生えてない素人かよ
468デフォルトの名無しさん:2012/05/28(月) 18:45:04.70
結構いるんだよそういう奴が。

ブロックが begin end じゃなくて { } だ、というだけで(最近は逆が普通か)拒絶反応を
示すとかそういうレベルで。
469デフォルトの名無しさん:2012/05/29(火) 01:01:21.09
>>468
うんうん。ちょっと書き方が違うだけで
効率がいいとか言う奴もいるよな。
470デフォルトの名無しさん:2012/05/29(火) 03:11:45.22
流石に
$arr = なんとかなんとか
foreach( $arr , $i ) {
}

よりは
arr.each{|i| }
だろう
reject select map inject each_with_index あたりの処理を書いたときに差がとてつもない出る
471デフォルトの名無しさん:2012/05/29(火) 05:13:04.61
でもfor修飾子と$_には負けたと思った
472デフォルトの名無しさん:2012/05/29(火) 05:15:58.52
>>470
君は知らないかも知れないが、
Perlではループと高階関数を使い分けられるんだ。
473デフォルトの名無しさん:2012/05/29(火) 06:29:15.13
いや
PHPのこといってた
474デフォルトの名無しさん:2012/05/29(火) 06:49:35.01
PHPなら
foreach( $arr as $i ) {
}
で、もちろん高階関数もある。
475デフォルトの名無しさん:2012/05/29(火) 07:28:35.41
手続きを間接参照できる、というだけで(C言語でいう関数を指すポインタ)、
高階関数とは違うだろ。
476デフォルトの名無しさん:2012/05/29(火) 09:22:18.16
>>475
PHPは第一級関数持ってるから、
array_reduce(array(3, 4, 5), function($v, $c){ return $v + $c; }, 0);
みたいに書けるよ。
477デフォルトの名無しさん:2012/05/29(火) 11:42:48.05
多少短くかけても遅ければ意味がない
特にRubyは醜いな
478デフォルトの名無しさん:2012/05/29(火) 12:39:40.04
Javaで100行ぐらいかけて速いものが書けるならそれが一番だ
ここでアセンブラとか言い出すバカがたまにいるけどJavaはお前の脳みそよりは考えて最適化するんだよヴォケ
479デフォルトの名無しさん:2012/05/29(火) 12:55:21.26
速いか遅いかなんて要件を満たすかが大事なんで用途次第
480デフォルトの名無しさん:2012/05/29(火) 13:05:32.22
RubyなんてWindowsでは1人で使う開発環境でも遅すぎて使えないからなw
用途以前にもっさりすぎてWindowsで開発も実行も不可ww

Ruby信者「Rubyはエレガントだ(キリッ)」

その遅さなんとかしてからエレガントとかいえwww
481デフォルトの名無しさん:2012/05/29(火) 13:13:41.50
美しい言語を作りたくてRubyを作ったのか知らんが、
汚い文法をコロコロ変えて開発者を振り回す
482デフォルトの名無しさん:2012/05/29(火) 13:15:39.62
>>474


そこの事はいってないわ
シンタックスのことを言ってるんだけど
PHPでrubyのdelete_ifはどうやってかくの?
483デフォルトの名無しさん:2012/05/29(火) 13:17:19.22
>>478
スレチ
484デフォルトの名無しさん:2012/05/29(火) 13:43:19.47
>>480
統合開発環境なんていらないよ
テキストエディタでコード書いてターミナルから実行するだけ
そのお手軽さがスクリプト言語の持ち味
485デフォルトの名無しさん:2012/05/29(火) 13:50:36.88
>>484
こう言うのが高じて「メモ帳以外で書くの禁止!」とかになるんだな
危ない傾向だと思う
486デフォルトの名無しさん:2012/05/29(火) 13:55:07.80
サバイバルナイフみたいな小さな刃物で料理作ろうとしてる奴がいるんだよね

それは腕があれば作れるってだけの話で
別に誰もお前にやれとはいってない
汎用は聞くし何でも出来るからって、技術力見せ付ける奴が多いから
>>480こういう勘違いが出てくるのかな

JAVAでかいてもrubyでかいても速度が間に合うときにrubyをつかわない意味って?
487デフォルトの名無しさん:2012/05/29(火) 13:56:36.40
メモ帳はプログラマ向けのテキストエディタじゃないからね
あれで書けって言われたら嫌だ
使うとすればサクラエディタ、EmEditor、秀丸、xyzzy、vimとかそんなの
488デフォルトの名無しさん:2012/05/29(火) 13:58:34.26
そろそろrubyが一番生きる部分って
1行〜20行程度で作成が一瞬で終わるようなスクリプトじゃね

「一応」多機能なクラスが用意されてるから
腕があるなら大規模開発もやれるっていうだけで
別にお前にやれとか誰も言ってないよ

昔perlやってた奴らがクラス使ってたとは思わない
489デフォルトの名無しさん:2012/05/29(火) 14:47:28.92
>>486
Rubyなんて実質Rails専用言語だろう?
Webサイトのアクセス増えたら、レスポンスタイム悪化するだろう。
スケーラビリティにも大きく影響する
Rails風フレームワークが多数ある今、Rubyをやる意味がわからない。

Javaはコードがちょっと冗長になるが、C#なら短いコードで高速なプログラムがかける。
Intellisense、IDEのおかげで高速なコーディングとデバッグもできる。

Webアプリなら、ASP.net MVC + C#.net + Visual Studio 11が最強
ASP.net MVCはLinux上でも使えるんだが、知らない情弱が多すぎる
490デフォルトの名無しさん:2012/05/29(火) 14:54:55.12
どうしてUbuntuは衰退したのか?
http://engawa.2ch.net/test/read.cgi/linux/1338094841/
491デフォルトの名無しさん:2012/05/29(火) 14:59:51.19
今時ベンダ依存したくないよ
492デフォルトの名無しさん:2012/05/29(火) 15:11:08.26
Rails専用言語って認識がまず間違いじゃねーの
大昔から使われてきたperlの立ち位置にrubyが入るだけ
それ以外はオマケ。
perlのシェア乗っ取っただけじゃ収まりきらないからRailsってフレームワークが出来たり、
PHPやJAVAのシェアまで若干奪ったりが出来てるんだよ

>Javaはコードがちょっと冗長になるが、C#なら短いコードで高速なプログラムがかける。
あとここLLスレなんで、
「短いコード」ってので勝負したらC#がLLに勝てる分けないんだから
493デフォルトの名無しさん:2012/05/29(火) 15:16:22.65
低スキルの相手バカらしくなってきた
C# JAVA はスレチ
494デフォルトの名無しさん:2012/05/29(火) 15:21:01.21
RubyはRailsに乗っ取られてスッカラカン

お客さんが玄関から入ってきたと思ったら、
1階には見向きもせずにさっさと2階に上がっていく
495デフォルトの名無しさん:2012/05/29(火) 15:45:13.25
Rails来襲以降昔からのお客さんはライブラリが増えてホクホクですお
496デフォルトの名無しさん:2012/05/29(火) 15:47:32.23
>>492
世間一般の認識ではRuby=Rails専用言語、だぞ

Rubyは遅すぎてアプリ開発には使えない
後方互換性が醜いから、インストールスクリプトなどにも使えない
完全にRails専用言語

スクリプト言語で存在意義あるのは、ブラウザで動くJavaScriptだけ

>>491
VSも無料で使えるんだからベンダ依存もなにもないだろ
SharpDevelopとかもあるしな

JavaもMySQLも、Oracleが所有してるわけだが、ベンダ依存とかいって使わないのか?w
497デフォルトの名無しさん:2012/05/29(火) 15:52:53.14
もちろんjavaもベンダ依存ですよ
RDBについては変更が比較的容易だからリストとはならない
498デフォルトの名無しさん:2012/05/29(火) 15:53:25.87
ごめんリストじゃなくリスク
499デフォルトの名無しさん:2012/05/29(火) 16:02:44.88
>>496
> スクリプト言語で存在意義あるのは、ブラウザで動くJavaScriptだけ

ls -l `find . -name '*.log' -newerct '1 week ago' -print` | sort -rnk5 | head -n5

みたいなワンライナー書いたりしないの?
こんなのエディタに保存するまでもなくターミナルに直打ちするけど
同じことをJavaやC#でやるなんて想像もつかないな
500デフォルトの名無しさん:2012/05/29(火) 16:06:39.88
>>499
横からだけどそれってshellを繋いでいるから違うと思うよ。
501デフォルトの名無しさん:2012/05/29(火) 16:08:58.40
>>500
シェルスクリプトって100回壁に書いてからやりなおし
502デフォルトの名無しさん:2012/05/29(火) 16:09:13.81
シェルスクリプトもスクリプト言語でしょ
503デフォルトの名無しさん:2012/05/29(火) 16:19:17.20
>>499
LLの定義がいいかげんという流れがあったから俺はあえて、
スクリプト言語、scripting language(s)の単語を使ってる。
動作がもっさりだから、軽量言語と呼ぶことに違和感もある。


>>499はただのUNIX,Linuxのコマンドのパイプ処理だろ。
こんなのをスクリプト言語などというやつはいない。

ファイルに保存して実行したら「シェルスクリプト」と呼ばれるが
スクリプト言語、とはいわない。
504デフォルトの名無しさん:2012/05/29(火) 16:23:13.64
>>503
うんにゃ、複数の処理をまとめて書いたらそれはプログラム
505デフォルトの名無しさん:2012/05/29(火) 16:28:24.50
定義にそこまで拘り持ってるなんて///
506デフォルトの名無しさん:2012/05/29(火) 16:33:17.35
「このスレで言うところの」スクリプト言語であるかと言われれば違うと思う
Perl, PHP, JavaScript, Pythonなど汎用的なスクリプト言語と
コマンドの呼びだしに特化されているシェルスクリプトでは性質が大きく異なる

>>499を外部コマンドを使わずに書き直せっていうのはお題になりそう
507デフォルトの名無しさん:2012/05/29(火) 16:43:10.43
>>496
世間一般って何のこといってんの?
普通にruby情報をググったとしてもRails以外の情報の方がわんさか出てくると思うけど

ruby使ってない奴の認識のように思う
508デフォルトの名無しさん:2012/05/29(火) 16:54:40.25
>>507
Rubyが流行ったのは、Railsが出てからなんてのは常識なんだが・・w
509デフォルトの名無しさん:2012/05/29(火) 17:14:49.16
それはおまえがそう定義しただけだろw
510デフォルトの名無しさん:2012/05/29(火) 17:26:43.51
コマンドプロンプトでパイプ処理すると
中間の出力結果をいちいち一時ファイルに書き出して、それを次のコマンドに渡してる
511デフォルトの名無しさん:2012/05/29(火) 18:01:23.30
>>510
それは仕方ない
パイプ処理ができなかった時代の名残
512デフォルトの名無しさん:2012/05/29(火) 18:04:14.39
MS-DOSの残念仕様だからしょうがない
513デフォルトの名無しさん:2012/05/29(火) 18:28:02.59
C#とRuby両方を使えて、用途によって使い分けすればよい
片方だけしか知らない人は仕方なくそれだけ使って、排他して自分を慰めていればいい
514デフォルトの名無しさん:2012/05/29(火) 18:30:25.51
C#使えてRuby使えないってことはないだろうからきっと両方使えな…
515デフォルトの名無しさん:2012/05/29(火) 18:31:48.44
CとLLでOK
516デフォルトの名無しさん:2012/05/29(火) 18:34:19.87
Ruby.net
517デフォルトの名無しさん:2012/05/29(火) 18:42:58.01
>>513
両方使えたらRubyなんか使わないだろ
デメリットしかないんだから
518uy:2012/05/29(火) 19:16:54.62
俺も,
C#.NETとRubyが今のところ、最高の選択肢だと思うよ
俺は社畜アプリもGUIも作らないから、C++とRubyだけども
プログラミングするなら動的と静的で1個ずつ、2言語使えよって話だよ低脳

何のために、他言語からrubyスクリプト呼び出せるようにdll公開されてたり、
rubyinlineとかが作られてると思ってんだよ、使い分けて連携しろアホか
519uy:2012/05/29(火) 19:24:41.04
ruby叩きがあまりにも必死
いい加減C#,JAVAはスレチだときづけ
520デフォルトの名無しさん:2012/05/29(火) 19:30:52.45
上段は俺も思うが存在自体がスレチなuyが言うなよ
521デフォルトの名無しさん:2012/05/29(火) 19:47:57.38
低速なのはどの動的言語でも同じなのに、Rubyだけ叩かれるってことはどういうことだろ
頑張れよPython
522デフォルトの名無しさん:2012/05/29(火) 20:06:43.05
endになれる事の出来なかった奴だろ
C#とrubyとか用途の全く異なる言語を挙げられても困りますし
523デフォルトの名無しさん:2012/05/29(火) 20:38:02.35
UbuntuでVimを愛し、Githubでソースを公開し、
気に入ったプロジェクトがあればPull Requestを送り、
Haskellを勉強し、Pythonのブログを書いていたとしても
俺は依然として無職だし、
Windowsでメモ帳でPHPを書いていても仕事は貰える!!
524デフォルトの名無しさん:2012/05/29(火) 20:42:20.86
525デフォルトの名無しさん:2012/05/29(火) 20:49:53.16
これだけが心の支え、って感じになってきたな
526デフォルトの名無しさん:2012/05/29(火) 21:01:39.02
Ruby叩いてる奴ってRubyで仕事してるのか?
羨ましい限りだ。
527デフォルトの名無しさん:2012/05/29(火) 21:21:41.58
Ruby叩いてる奴はRailsの所為でJavaの仕事が減って
首を切られた無職Javaプログラマだよ。
528デフォルトの名無しさん:2012/05/29(火) 21:46:05.25
応援してるよPython
頑張ってくれよ
529デフォルトの名無しさん:2012/05/29(火) 22:10:56.56
Rubyをこの世から葬り去ってくれ
俺はそのためだけにPythonを選んだんだぞ
530デフォルトの名無しさん:2012/05/29(火) 22:28:49.73
少なくとも日本でPythonが流行るわけないじゃん
531デフォルトの名無しさん:2012/05/29(火) 22:51:47.78
思い出したが、uyは何も分かってないくせに探索を語るな
532uy:2012/05/29(火) 22:58:46.70
>>531
>>352

このソースが探索に見えないならしねば
533デフォルトの名無しさん:2012/05/29(火) 23:11:07.35
>>532
分かってるんならこれに答えてやれよ

> すべての譜面が10MBに収まるという話に説得力がない
> その譜面データベースのURLを示すか、ありうる譜面が何通りあるかを書くくらいしろ
534デフォルトの名無しさん:2012/05/29(火) 23:16:55.29
その話題つまらんからヤメテ
535デフォルトの名無しさん:2012/05/29(火) 23:32:17.75
PHP初心者なんだが、PHPの$_SERVER配列の中の値って各クライアントごとに
異なると思うんだけど、クライアント間をどうやって区別してるんだ?

ソケットごとに割り当ててるのかなと思ったけど、それじゃHTTPのセッションごと
に違うクライアントと識別されちゃうよね?

アホな質問だとは思うけどエロいひと教えて!
536デフォルトの名無しさん:2012/05/29(火) 23:34:53.37
>>352 みたいなコード汚らしいし読みにくい
インデント、改行、コメントを適切に使って読みやすいコードを
書くこともできない人はチーム開発では迷惑
537uy:2012/05/29(火) 23:49:48.98
>>533
>>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
538デフォルトの名無しさん:2012/05/30(水) 00:02:47.66
Rubyは趣味のプログラムを書くためのおもちゃってこと
539デフォルトの名無しさん:2012/05/30(水) 00:14:56.81
そのおもちゃでアメリカのスタートアップはウェブサービスをたくさん作ってるわけで。
おもちゃで楽しみながら仕事にもなる。
540デフォルトの名無しさん:2012/05/30(水) 00:51:35.97
なんだかんだで、今までPerlで、これからもPerlでトホホと思うのだけれど
最近のよいWebあぷぷはRails製が多いんだよな・・・
Redmineもそうだし。最近のお気に入りもRails製あぷぷ。
http://goo.gl/x1tj9
Djangoは凄くよさそうなのに、秀逸あぷぷはなんでこんなに少ないんだろう。
541デフォルトの名無しさん:2012/05/30(水) 01:21:49.25
多少の技術的差異よりも、なんかこうエコシステムの回転具合とか
勢いとかに根拠を求めるほうが妥当じゃないのかと思う
542デフォルトの名無しさん:2012/05/30(水) 01:39:50.20
効率のいい言語を表に出すよりも
自分の会社が作った言語を表に出して金儲けしようとしてる層
543デフォルトの名無しさん:2012/05/30(水) 09:02:50.17
フレームワークを使うなら、フレームワークの性能と機能を重視で、言語はどうでもいいだろ。
突っ込んだプログラミングするわけじゃないし。
544デフォルトの名無しさん:2012/05/30(水) 12:30:56.67
543
言語はどうでもいいとか、スクリプト言語厨らしい低レベルな発言だな
545デフォルトの名無しさん:2012/05/30(水) 13:04:25.51
>>544
Perl,PHP,Python,Rubyの基本部分は、どれも変わらん。
546デフォルトの名無しさん:2012/05/30(水) 13:06:39.56
なんで知ったかぶるの
547デフォルトの名無しさん:2012/05/30(水) 13:11:40.68
>>545
どれも変わらないとかwww

どうやら軽量なのは言語じゃなくて
スクリプト言語厨の脳みそみたいだなww
548デフォルトの名無しさん:2012/05/30(水) 13:18:52.04
少なくともrubyでやってれば他言語で当たり前に存在するfor文を殆ど書く機会がなくなるくらいには
イテレータが大量に最初から用意されてんのに
なにが変わらないと思ったんだろう
549デフォルトの名無しさん:2012/05/30(水) 13:22:19.52
>>548
同等の機能を持つから。
PythonでRuby風にかけば、Pythonicじゃないと言われるだろうけど。
550デフォルトの名無しさん:2012/05/30(水) 14:37:23.72
いやそれは
C言語で何でも出来るって言ってるようなものって感じがする
書式が重要だから
forでもかける処理をforeachで書いたりするんだろ

たとえばC++のテンプレートは#defineで書き直せるけど
C言語でテンプレートプログラミングやってる奴なんていないだろ

同等の機能が言語に存在していたとしても整理されてなければ使えないんだよ
551デフォルトの名無しさん:2012/05/30(水) 14:40:22.83
Scalaってどうなん?
ファイル単位で修正かけられるんなら、2.3年後の保守とかでも楽そうに見えるんだけど。
Javaだとビルド環境とか整えるだけでメンドイイメージが
552デフォルトの名無しさん:2012/05/30(水) 15:18:02.47
Scalaの言語自体はいいけど
JAVAと関わってる時点で期待しないほうがいい
MSのC#.NETがjavaの2番煎じのはずだったのに一瞬で追い抜いて行ったし
MSのやってる事とかぶってるものはやっぱり淘汰される運命にあるよ
553デフォルトの名無しさん:2012/05/30(水) 15:22:15.02
>>550
forは単なるループなので、foreachのイテレータとは少し意味が違うでしょう。
Perlで同じforが使えたとしても。

ぶっちゃけ、さんざん過去スレでやったから、今更な部分でもあるんですよ。
554デフォルトの名無しさん:2012/05/30(水) 15:30:45.96
>>551
スクリプト言語に比べたら、Scalaはずっと速いしはるかに将来性あると思う
Javaと親和性も高い

ただ、型推論とかやるからコンパイルがc#とかより時間がかかるのが弱点らしい

関数言語とかも取り入れている分、難しいイメージを
持たれて敬遠されているかも知れない

海外ではWebサービス企業では採用事例が増えてるらしい。
言語自体は評価は高いから、あとは
使いやすいフレームワークが出てくるかどうかがポイントじゃないか?
555デフォルトの名無しさん:2012/05/30(水) 15:38:21.98
foreachでかけるものはforでもかけるって話をおまえが振ってきたように見えた>>549
で実際foreachはforでかけるだろ、かいたことない?あっそう
書式が違えば同等の機能ではなく別物だよ
556デフォルトの名無しさん:2012/05/30(水) 15:42:17.81
>>554
スクリプト言語(動的)とは、用途が違う
それと「Javaと親和性も高い」のがScalaネックなんだろ・・・
どうせ数年後にはC#の次をMSが出してくるよ
C#にも型推論くらいあるわけで
知ってる奴からすればScalaでやってる事なんて今更でしかない
557デフォルトの名無しさん:2012/05/30(水) 15:55:53.63
Scalaって変な場所に : とか = あるんだけど
こんなのがいいのか?
普通に打ち忘れするわ
558デフォルトの名無しさん:2012/05/30(水) 16:01:05.72
>>556
C#3.0から型推論っぽいのがあるな
Scalaのそれと機能的に同じレベルかどうかまでは知らないが。

C#は全部なくして次を作らなければならないほど弱点があるとも思えない。
現時点で一番いろんな用途に使える言語なのも事実だし
C#は、バージョンアップで機能追加が続くんじゃないか
559デフォルトの名無しさん:2012/05/30(水) 16:21:27.48
C# 3.0の型推論は var hoge = new Hoge(...); って書ける程度だったような
MSの衰退と道連れで第二のDelphiになりそうな気がしてる
560デフォルトの名無しさん:2012/05/30(水) 16:51:38.65
>>367
勘定系じゃなくて、営業店システムの話じゃないの?ほんとにPHPが使われるようになるのか知らんが。
ちなみに俺が昔、某銀行の営業店システムをやったときは、全画面がJavaアプレットだったよ。
561デフォルトの名無しさん:2012/05/30(水) 16:51:56.37
でもF#の型推論はScalaよりずっと上
562デフォルトの名無しさん:2012/05/30(水) 17:32:09.15
これお前らだろ?
http://t.co/4vuIDDHn
563デフォルトの名無しさん:2012/05/30(水) 20:07:24.71
最近すれ違いが多いね
564デフォルトの名無しさん:2012/05/30(水) 20:09:39.22
オセロの探索の話に戻そうぜ
565デフォルトの名無しさん:2012/05/30(水) 20:16:33.56
>>564
それ、uyとの会話のすれ違いが多いので却下
566デフォルトの名無しさん:2012/05/30(水) 20:23:36.24
オセロ中島を探索するプログラムをRubyで書いてくれよ
567デフォルトの名無しさん:2012/05/30(水) 20:33:57.65
なぜRubyなんだ
568デフォルトの名無しさん:2012/05/30(水) 22:49:29.34
暇だったらかく
569デフォルトの名無しさん:2012/05/30(水) 22:53:59.47
そりゃF#みたいなMLとなんちゃって関数型のScalaを比較したらいけない
570デフォルトの名無しさん:2012/05/30(水) 23:01:03.94
MSって使い道のわからないものをたまにリリースするよな
開発陣が暇なんだろうか
571デフォルトの名無しさん:2012/05/30(水) 23:02:51.39
マイクロソフト サーフェス
572デフォルトの名無しさん:2012/05/30(水) 23:24:14.72
みんなD言語をやるんだ
573デフォルトの名無しさん:2012/05/30(水) 23:28:25.99
>>510
NT系列はちゃんと複数プロセスが同時に動いてパイプでデータを流してますよ

>perl -e "print qq!$_\n! for 0..10000000"|ruby -e "ARGF.each{|e| puts e.chomp.to_i*2}"|wc
10000001 10000001 94444455

テンポラリディレクトリに94444455バイトの一時ファイルが出来たりはしません
574デフォルトの名無しさん:2012/05/31(木) 10:06:10.28
言語は糞であれば糞であるほど、オライリーからの書籍が売れ、
言語に対するプログラマ同士の共通認識が高まるのではないか
その点に関していえば、c++とjavascriptは完璧だ
QtとQMLなんて最高だ.パーフェクトだ.
575デフォルトの名無しさん:2012/05/31(木) 10:11:06.36
C++とQtはAddison Wesleyの得意分野でOreillyはとりあえず出してる程度だから関係ないよ
576デフォルトの名無しさん:2012/05/31(木) 10:38:33.81
気持ち悪いアルゴリズムを静的言語で書くのはマゾヒスト
長いこと保守する必要があるものを動的言語で書くのもマゾヒスト
世界中どこも彼処も変態だらけで、そして我々は、その変態たちを崇拝している
577デフォルトの名無しさん:2012/05/31(木) 11:07:41.05
変態を理解する義務はないから楽なんだよな
自称常識人は理解されないとキレたりするから疲れる
578デフォルトの名無しさん:2012/05/31(木) 12:35:28.12
Ruby使いは変態
579デフォルトの名無しさん:2012/05/31(木) 12:38:49.31
昔はそういうふうに見られて楽しかった
580デフォルトの名無しさん:2012/05/31(木) 13:59:05.69
Java使いはドM
581デフォルトの名無しさん:2012/05/31(木) 20:49:16.92
これはどうよ?
http://jsx.github.com/
582uy:2012/06/01(金) 05:18:27.71
俺様はしばらく来れなくなる

絵描き界隈とプログラミング界隈を見ていて思う事は
絵描き界隈というのは、暖かく冷たいものがある
プログラミング界隈は、けなしあいつつも情報交換を"とりあえず"は行い、
「お前そっち歩いていくと死ぬぞwwwwバカwwwww」とかいって、
お互いの位置と方向性を確認しあう事は出来る
絵の世界で、それはない。「個性だ」の一言で、全てが終わるから
間違いも、愚鈍さも、優しく放置されていく
俺も放置されていた側だったけど、ようやくわかってしまった  最後に、俺は天才ではない ただ人の、3、4兆倍生きてるだけだ
583デフォルトの名無しさん:2012/06/01(金) 05:36:35.66
オセロの盤面の起こり得る配置が何通りあるか書いてから消えろよ
584デフォルトの名無しさん:2012/06/01(金) 10:05:26.13
>>581
ペチュニアの鉢植えが落ちていくとき、その心に浮かんだ思いはこれだけだった
ーまいったな、またか。
585デフォルトの名無しさん:2012/06/01(金) 20:08:01.87
Mac厨とかiPhoge厨ってキチガイだよね
586デフォルトの名無しさん:2012/06/01(金) 20:13:46.15
iPhogeと書くやつ=キチガイ
587デフォルトの名無しさん:2012/06/01(金) 22:24:49.28
iPhoge
588デフォルトの名無しさん:2012/06/02(土) 01:09:29.12
謎の打鍵だな
589デフォルトの名無しさん:2012/06/02(土) 01:57:06.00
iPhogeって何?
iPhogeって何?
iPhogeって何?
590デフォルトの名無しさん:2012/06/02(土) 03:06:06.69
>582
ずいぶん前からプログラミング界隈?でも優しく放置されてたじゃねーかw
ソース得意げにだすたんびに「あぁこういう病気のヒトだね」ってみんな言うし。
突っ込むのはネタか同じ病気の奴。このへんはきっと絵と変わらんだろ?
591デフォルトの名無しさん:2012/06/02(土) 08:06:23.19
iPhogeって何?
iPhogeって何?
iPhogeって何?
592デフォルトの名無しさん:2012/06/02(土) 09:44:26.36
ガキは帰れ
593デフォルトの名無しさん:2012/06/02(土) 09:48:27.89
iPhogeのご本人登場ですか
594デフォルトの名無しさん:2012/06/02(土) 09:55:02.34
595デフォルトの名無しさん:2012/06/02(土) 10:18:24.64
>>591
中国製のパチモン商品
596デフォルトの名無しさん:2012/06/02(土) 10:54:05.76
>>465
それは昔の話じゃないかな?
今だと、PHPとかRubyから初めて、CやJavaはまったく使った事ない人って多いと思うよ。それで、型とかスコープとか意識しないで書く人が多いと思う。
597デフォルトの名無しさん:2012/06/02(土) 10:58:46.33
>>491
Ruby1.8系に依存するのもPython2系に依存するのも同じ事じゃないですか?
598デフォルトの名無しさん:2012/06/02(土) 11:02:32.14
Rubyは意外と1.9にさっくり移行した感があるが
Python2系と違ってそのまま動くことも珍しくないし
599デフォルトの名無しさん:2012/06/02(土) 11:03:55.95
Scalaって恐ろしくコード読みにくいよな。
600デフォルトの名無しさん:2012/06/02(土) 11:05:51.36
>>596
以前からVBとかから入る人も居たな
てか、動的言語は動的言語で型はちゃんと意識するんだが…
601デフォルトの名無しさん:2012/06/02(土) 11:10:28.85
GUIアプリを作れる言語からの方が入りやすい、というのもあるかな
602デフォルトの名無しさん:2012/06/02(土) 11:35:12.62
GUIアプリっつーか、見た目に楽に反映できる言語は入りやすいよね
昔のBASICなんかもそうだったし
603デフォルトの名無しさん:2012/06/02(土) 11:37:14.57
REPLのほうがよっぽどコードが見た目にすぐ反映されると思うけどなあ
いきなりGUIとかマゾとしか思えない
604デフォルトの名無しさん:2012/06/02(土) 11:39:43.34
>>603
いや、計算とか文字列の加工みたいな
目的があってプログラミング始めるならそれでいいけど
特に目的もなく「プログラミングやってみたい」人には
GUIとか描画のがモチベーション保ちやすいのよ
605デフォルトの名無しさん:2012/06/02(土) 11:42:46.06
GUIが一番面倒くさいんだがなぁ。
C#とかでいいんじゃない。windows限定だけど。
606デフォルトの名無しさん:2012/06/02(土) 11:50:55.25
描画とUIは別だから、コマンドラインで入力して別のウィンドウで描画すればいいのに
607デフォルトの名無しさん:2012/06/02(土) 11:51:12.51
>>604
なるほど。>>602とあわせてなんとなくわかった
ガワが出来あがっていくことに手応えを感じる初心者は結構いそうだしね

REPLとIDE両方渡してみてどっちが面白いか聞いてみるのはアリか
608デフォルトの名無しさん:2012/06/02(土) 11:58:47.87
入りやすいじゃなくて手応えを感じたいんだな
609デフォルトの名無しさん:2012/06/02(土) 12:02:41.14
画面にコントロールを貼り付けるだけでもワクワクしたものよ
610デフォルトの名無しさん:2012/06/02(土) 12:06:03.76
初心者にはうってつけだな

http://hirata-create.cocolog-nifty.com/
611デフォルトの名無しさん:2012/06/02(土) 12:27:15.54
>>605
C#はWindows限定じゃない
.オープンソースの.NET実装、Mono使うとLinuxでも動く

デスクトップアプリ、高速なWebアプリスマートフォンアプリ、なんでもOK。
変換ツール使うと、AndroidもiPhoneアプリも作れる

超高速なレスポンスが要求されるシステムはC/C++で書く必要があるが
それ以外はC#で全部いける。
612デフォルトの名無しさん:2012/06/02(土) 12:36:49.73
そんな夢のような環境のわりにはMonoスレ伸びてないね
613デフォルトの名無しさん:2012/06/02(土) 12:45:34.83
バカが寄り付くフェーズに、まだなってないからな。

むしろ全力で成功を回避しろという正しい戦略かもしれん。
バカが寄り付いた結果、正しい修正だが利用者には負担になる、といった修正が
できなくなった結果腐ってしまったものが、歴史的に見て結構ある。
614デフォルトの名無しさん:2012/06/02(土) 14:05:38.85
>>612
C#なんだからMonoに限定する必要がない。

Windows版Ruby専用スレ、みたいなもんだ。
伸びるわけがない。
615uy:2012/06/02(土) 15:41:21.94
>>583
なんでその程度を自分で書こうとしないんだよ
自分でやれ

>>590
何もわかってないんだな
「絵」には間違いがない
ゆえに誰も間違っていると言えない
正しいといえば、それは個性になってしまう

プログラム界隈ではどうみてもお前らが放置されてる側じゃねーか
いつまでOO(笑)やってんだよ
「え?マジ?OOでITはこれからやっていくの??w」って感じてる奴は結構いると思うよ
なんかしらねーけどOOでしか使えないライブラリ、OOでしか適用されない最適化、
そんないらねーもんばっかり開発してどうすんだよ、本気でOOでやっていくつもりなのかよ
616デフォルトの名無しさん:2012/06/02(土) 16:05:40.08
ほら出てきたw
617デフォルトの名無しさん:2012/06/02(土) 16:35:10.19
誰が「絵」の話してるの?
618デフォルトの名無しさん:2012/06/02(土) 17:29:40.27
uyはその程度のこともできないのか
619デフォルトの名無しさん:2012/06/02(土) 18:47:43.28
u うんこ
y 野郎
620uy:2012/06/02(土) 20:08:15.85
uyをNGしてないバカが沢山いるな
621デフォルトの名無しさん:2012/06/02(土) 21:24:36.65
また、便所虫が騒いでんのか。
NGに放り込んだから存在自体忘れてたわw
622デフォルトの名無しさん:2012/06/04(月) 05:03:39.91
動的言語の問題点、大規模開発でテスト工数が増大
http://toro.2ch.net/test/read.cgi/tech/1335211372/

スクリプト言語はやっぱりウンコだな
623デフォルトの名無しさん:2012/06/04(月) 07:59:18.36
Javaがあまりにもウンコすぎたから
本来なら対象にしないような規模のプログラムにまで
スクリプト言語が使われるようになってしまった


Javaがあまりにもウンコすぎたから
624デフォルトの名無しさん:2012/06/04(月) 10:00:11.64
RubyはJavaを凌駕するウンコ
625デフォルトの名無しさん:2012/06/04(月) 11:14:47.33
数年前の関数型ブームは何だったんだ
リスト表記の [X|Xs] だけ、どこかに取り入れられないかな
626デフォルトの名無しさん:2012/06/04(月) 12:54:47.12
Pythonがあるじゃないか
627uy:2012/06/06(水) 02:09:13.59
俺がいないとスレすすまねーじゃん
628デフォルトの名無しさん:2012/06/06(水) 06:42:51.30
消えろカス
629デフォルトの名無しさん:2012/06/06(水) 08:33:02.70
関数型パラダイムをガッツリ使いたいなら、関数型言語を使えばいいと気が付いて、
みんな関数型言語に移行しました。
630uy:2012/06/07(木) 11:12:25.39
副作用とマクロについて思ったけど
関数型プログラミングでかいていって副作用が存在しないなら
確かにLispはマクロで別次元の効率出せるじゃん
これを使わない理由って、一般人に扱えないから以外に答えがない
ほんとプログラミングってとっくのとうに終わってんな
目の前のことだけ見ていたほうがいいよ
631デフォルトの名無しさん:2012/06/07(木) 19:00:43.04
来れなくなるんじゃなかったのか?
632デフォルトの名無しさん:2012/06/07(木) 19:17:27.48
uy=ウンコ野郎は消えろ
633uy:2012/06/08(金) 04:49:43.21
ゴミみたいなスレだな
634uy:2012/06/08(金) 10:26:25.90
メモ
n = [0,1,2,3,4]
p n
p n.rotate
p n.reverse.rotate.reverse
p n.rotate(-1)

635デフォルトの名無しさん:2012/06/08(金) 18:47:16.01
>>633
だったら来るなよ
636uy: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で簡潔にかけそうな気がしたが気のせいだった冗長した
637デフォルトの名無しさん:2012/06/09(土) 01:26:16.06
>>636
じゃあ俺はアルゴリズム担当、
お前はオセロを2PプレイやCPU対戦やネットワーク対戦
でも対応可能になるような設計を頼むわ。
638デフォルトの名無しさん:2012/06/09(土) 02:02:56.15
オセロの話は他行けよ!
639uy:2012/06/09(土) 02:27:59.24
a=[0,0,1,2,2,1,0,2,1,2,0,]
x = 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 の存在意義
秋田
640デフォルトの名無しさん:2012/06/09(土) 02:30:07.50
>>639
そんな小さい話どうでもよくね?
641デフォルトの名無しさん:2012/06/09(土) 02:42:01.61
動的型付け言語の一番の問題は・・・

静的型付けのC++なら、この程度の関数は何も気にせずに使えるけど、
http://ideone.com/xcxjC

動的型付けのJavaScriptだと、この程度の関数でも気をつけて使わないと駄目な代物になる事。
http://ideone.com/lbcaB
642uy:2012/06/09(土) 02:50:30.52
drop_whileを使いたいんだよ
オセロの処理の意味的にはまさにdrop_whileなんだけど
上手いコードが思いつかない
643デフォルトの名無しさん:2012/06/09(土) 03:02:13.00
>>641
足し算の結果がINT_MAXを超えたらどうなるの?
644uy:2012/06/09(土) 03:10:42.69
コピペにまじれす
a=[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

もういいや
645デフォルトの名無しさん:2012/06/09(土) 10:57:38.65
>>641
どちらも数値か否かを気にしなければ使えないと思うが…
C++だったら関数を使うとき、何も考えずにいきなりカンで引数書くの?んなことないでしょ?
どちらにしたって、まず関数の引数ぐらい調べるじゃん
646デフォルトの名無しさん:2012/06/09(土) 12:33:15.60
unko野郎の頭が悪いのは良く分かった
647uy:2012/06/09(土) 12:46:53.38
動的言語に足りないのは「型チェックの記述を簡潔に書く構文」だろ、型チェックは必要
def 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
648uy:2012/06/09(土) 13:04:51.64
やっぱいらね
649デフォルトの名無しさん:2012/06/09(土) 13:31:58.16
> 動的言語に足りないのは「型チェックの記述を簡潔に書く構文」だろ、型チェックは必要
違う。

型チェックを実行前に行える機能だ。

大体さ、obj.foo() なんてコード書いたら
このオブジェクトはfoo()を持っていなきゃ落ちるって
もうコードを書いた時点で判明しているんだから
実行前にコンピュータでチェックすべきことだよ。
650デフォルトの名無しさん:2012/06/09(土) 13:39:38.12
>>649
objに何が入ってるか実行時にしかわからないのに
どうやって実行前にfooを持っているかチェックするん
思いつきで言ってるんじゃなかったら具体的な方法よろ
651デフォルトの名無しさん:2012/06/09(土) 13:44:16.54
> objに何が入ってるか実行時にしかわからないのに

いや人間はわかってるだろ。
objにはfoo()というメソッドを持っているものしか入らないって。
だからそういうふうにコードを書いているわけで。

だったら、objはfoo()を持っているとどこかに
定義しておけばチェックが可能で些細なミスを減らせるし。

その動きから用意に推測可能だが、foo()を修正するときに
使っている場所を的確に調べることも可能になる。
652デフォルトの名無しさん:2012/06/09(土) 13:51:59.21
>>651
if rand(2) == 0
obj = IHaveFoo.new()
else
obj = IDontHaveFoo.new()

obj.foo()
653デフォルトの名無しさん:2012/06/09(土) 13:54:35.60
>>652
何が言いたいのかさっぱりわからないけど、

その場合に実行しないとわからない言語と
実行する前にチェックしてくれる言語なら
後者のほうがいいよね?
654デフォルトの名無しさん:2012/06/09(土) 13:59:04.86
>>652
難しいと思うだろうけど、
ルールはすごく単純

・ルール1
objという変数は、foo()というメソッドを持ったものしか入れられない

・ルール2
IHaveFoo.newの定義にfoo()というメソッドを持ったものしか戻り値に使用できない。

これだけ書いておけば、あとは推論で
実行前にすべてチェックできるようになるんだよ。
655デフォルトの名無しさん:2012/06/09(土) 14:04:48.95
>>654
evalはどうするの?
もしクラス定義が単なる文字列に埋めこまれていたとすれば
実行前にチェックするのは難しいのでは
656デフォルトの名無しさん:2012/06/09(土) 14:11:09.05
>>655
evalは基本的に代替方法が存在するので、そっちを使う。
どうしても必要なところだけ諦めれば良い。

クラス定義も単なる文字列として書かないようにする。
DBなどからクラス定義を生成したい場合でも、
実行時にやらずとも、実行前(実行開始時)にクラス定義を書いたソースコードを
生成するようにすればいいだけ。どうしても必要な時ってのは少ないはずだ。


実行時にわからないことを少なくするってのが原則。
誰もなくせとは言っていない。
実行時にわからないことが、少なければそれだけ注意を払うコストは減る。
657デフォルトの名無しさん:2012/06/09(土) 14:29:02.04
まぁ、実行時の入力以外は全部型チェックできるわな。
積極的にやるかどうかはあるけど、動的型付けの方が便利な場合もあるし。

まぁ、型チェックがしっかりしてればどちらでもいいけど。
658デフォルトの名無しさん:2012/06/09(土) 14:30:03.83
実行前にわからないことをなくせというがね。
小さいスクリプトなんてのは実行前にわからない事だらけなんだ。
小さいから書き捨てもする。小さいからぱっと見ればすべてが分かる。

だからそんなのまで静的がどうとか言ったりはしない。
ただ大規模(何人もの人が何ヶ月もかかって作るもの)で動的言語はねーよ。

コードのほんの数行(全体の0.01%ぐらい?)を見せられて、
ここに変なオブジェクトが入る可能性はありますか?
ここを変更するときに影響が及びそうな部分はどこですか?
聞かれてもすぐには答えられんでしょ。
659デフォルトの名無しさん:2012/06/09(土) 14:31:13.92
> まぁ、型チェックがしっかりしてればどちらでもいいけど。

(人間がやる)「型チェックがしっかりしている。」ということを
客観的に証明できる方法があればいいんだけどね。
660デフォルトの名無しさん:2012/06/09(土) 14:45:05.07
人間は型チェックなんてしないよ。
型を意識してプログラムするけど、チェックは
機械がするものじゃない?
661デフォルトの名無しさん:2012/06/09(土) 15:04:42.16
>>660
それは言い方の問題だね。

型チェックに関するコードを書くことを
人間がやる型チェックって言っただけ。
662デフォルトの名無しさん:2012/06/09(土) 15:42:04.77
静的でも型推論があれば楽なんだけど、面倒なことにメジャーな静的言語ほどそうじゃないんよね
663デフォルトの名無しさん: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でも導入が検討されている。
静的型付け関数型言語のほとんどが型推論の機能を持っている。
664デフォルトの名無しさん:2012/06/09(土) 17:11:41.06
型推論とか細かいこと言わずに
俺が考えてることを推論して適切にやってくれ
665デフォルトの名無しさん:2012/06/09(土) 17:51:14.78
・・・オマエなんちゅーエロイ事考えてんだよ。このド変態!
666デフォルトの名無しさん:2012/06/09(土) 19:17:53.49
おお!見事に型に嵌った推論だね
667uy:2012/06/10(日) 02:54:06.92
>>649
>型チェックを実行前に行える機能
ある程度は実行前にチェックできるけど動的言語って時点で100%のチェックは出来ない
それでもあったほうがいいんだろうけどな
でもそれなら、「この変数は型チェックできていません」みたいなログ出力も必要になってくる
ノウハウが足りない

>>647 のように、型をソースコード中に沢山かいていけば、
限りなく100%に近い型チェックはいずれできるようになる、でもそれなら最初から実行前型チェックできる静的言語使えって話
結局動的言語内での「型チェック」は単なるシンタックスシュガーのひとつ
ソースコード中に型情報をかいていけばエラーは減らせるが
この方向性に進むのは間違いだと書いてから気づいた

静的言語よりも性能の悪いチェックが出来ないというマイナス点の補強は
ソースコード内において補強するのではなく、全てはIDEやコンパイラなどの外部ツールに任せる
言語シンタックスは、安全性を高めるのではなく
静的言語よりも優位な動的なコード生成のプラス点を伸ばすべき
668uy:2012/06/10(日) 02:55:30.37
>静的言語よりも性能の悪いチェックが出来ない
静的言語よりも性能の悪いチェックしか出来ない
669デフォルトの名無しさん:2012/06/10(日) 03:11:14.85
> 動的なコード生成

あんまり使わん機能だそれはw
コードジェネレータで十分。
670uy:2012/06/10(日) 07:05:06.70
何いってんだコイツ
671デフォルトの名無しさん:2012/06/10(日) 16:20:26.79
動的型付け言語の(部分的な)型推論は非常に難易度が高い
ユニークな手法だったらそれだけで論文一本になってしまう

たぶん、動的型付けの発想からすると
健全性とかはどうでもいいから、一部の矛盾が見つかれば十分のはずではあるが
そういう研究あるのかなあ
672デフォルトの名無しさん:2012/06/10(日) 16:57:57.50
「動的型付け言語」のような大雑把な集団が論文になってしまうという発想が分からない
673デフォルトの名無しさん:2012/06/10(日) 17:04:09.31
>>672
たしかに動的型付け言語そのものは理論/実装とも普及している技術だ
ただし、>>671が指摘しているのは、
「動的型付け言語の(部分的な)型推論」だろ?
これは学術的にもホットな話題だと思うけどね

まあ、型推論(あるいは型理論)を知らなければ、
そういった反応になるのはしかたないのかもしれんが....
674uy:2012/06/10(日) 18:11:56.23
実際もう安全だと分かったソースコード(ライブラリ)を増やして
それらを組み合わせる形でプログラミングするしかない気がする
大規模な開発はやらずに、大半をライブラリに頼って小規模になるように作るとか

静的型付け言語の問題点として言うなら、一度書いたソースをリファクタリングする時に
困難になる事、一度長々とソースを書いてしまったら、
あとからFuncA,FuncB,FuncCでひとつにまとめられる(かもしれない)としても、
実際そのリファクタリングを静的言語じゃやらないだろ
引数の型や数を1個1個、書き換えていくのが面倒で、勝手に脳内で「出来ない」という事にされているかもしれない
動的言語のソースコードがやけに短くなるのは型情報がどこにもないからリファクタリングの手間が少ないので
やろうかなって気になるから結構な割合でリファクタリングが成されて行数が抑えられる
動的言語では数行〜数十行なプログラムを静的言語では数百行とかになってしまうのは
ライブラリの充実度のほかに、リファクタリングを楽に行えるか行えないかの違いがあると思う

実際アルゴリズムを思考してるときなんかは、コンパイル時の型エラーとか邪魔でしかない
アルゴリズム思考中は、途中でエラー落ちしてもいいから動いて欲しい時の方が多い
だから静的言語は、アルゴリズムが推敲されず単純な式でかいていくしかない上に、あとからのリファクタリングも困難で
大規模(笑)な開発にしなくてもいいものまで、大規模(笑)にしてしまっている
とりあえずゲーム開発に関してだけは自信を持っていえるがたとえ大規模であろうと動的言語の方が格段に良い
つうかまともなゲーム開発であればC++でゲームかいててもスクリプトの導入くらいは1000年前からしてたはずだけどな
675デフォルトの名無しさん:2012/06/10(日) 18:15:35.48
以前にRubyスレでちょっとだけ話題になってた

713 自分:デフォルトの名無しさん[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
676デフォルトの名無しさん:2012/06/10(日) 18:38:10.97
RubyはISOの規格があるが「動的型付け言語」の規格はない、という意味だよ
677デフォルトの名無しさん:2012/06/10(日) 19:14:20.04
規格もないものに未来を託したくない
678デフォルトの名無しさん:2012/06/10(日) 19:20:33.15
>>674
> 実際アルゴリズムを思考してるときなんかは、コンパイル時の型エラーとか邪魔でしかない
> アルゴリズム思考中は、途中でエラー落ちしてもいいから動いて欲しい時の方が多い

思考してる時になんで動かすんだよ?
途中で落ちたら、そこで考えが中断されるじゃん。

eclipseを使った場合はこう。
コンパイルは不要。書いている時にミスがあれば該当箇所が赤くなるだけ。
そっちの方がアルゴリズム思考は楽だ。
679デフォルトの名無しさん:2012/06/10(日) 19:25:06.38
>>671
> 動的型付け言語の(部分的な)型推論は非常に難易度が高い
> ユニークな手法だったらそれだけで論文一本になってしまう

動的型付け言語だと、型が実行時にしかわからないものなので、
推論は出来ない。難易度が高い。ではなくできないんよ。
推論ってのはなにもない所から何かを見つけ出すのではなく、
aならばb、bならばcという事実から、aならばcというようなルールを見つけ出すこと。

似たようなものに、実行時の値から型を推論し、型に応じて最適な形にコンパイルする技術はある。
だけどこれだって、実行前にわかるわけじゃない。

静的な型推論は、所詮静的言語のためにある技術。

680デフォルトの名無しさん:2012/06/10(日) 19:35:12.54
そういう類いのことをRubyでやってるところもあるみたいなんだけどね

http://www.jetbrains.com/ruby/
> On-the-fly code analysis throughout the project tree with type inference
> and quick-fixes

でも使ってる人を知らないし使おうとも思わないなあ
681デフォルトの名無しさん:2012/06/10(日) 19:36:19.07
>>674
> 静的型付け言語の問題点として言うなら、一度書いたソースをリファクタリングする時に
> 困難になる事、一度長々とソースを書いてしまったら、
> あとからFuncA,FuncB,FuncCでひとつにまとめられる(かもしれない)としても、
> 実際そのリファクタリングを静的言語じゃやらないだろ

なんで? よくやるよ。どうやら君の知らない世界らしいねw

まず、「メソッドの抽出」 これはコードの一部分をメソッドに分ける機能だがなんと!
FuncA、FuncB、FuncCが意味的に同じであれば(変数名が違っていたとしても)
一つにまとまってくれる。

君が思ってであろう難しい作業は、静的型付け言語なら、範囲を選択してコマンドを一つ叩くだけで終わりだ。

一度書いたソースをリファクタリングするのに、静的型付け言語はものすごくやりやすくなるんだよ。

信じられない?
http://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-refactoring/
> このリファクタリングが役立つのは、大きすぎるメソッドを複数のブロックに分割し、
> そのそれぞれを独立したメソッドにする場合です。また、多数のメソッドで同じコードが何度も
> 使用されている場合にも役立ちます。再利用されているコード・ブロックのいずれか 1 つを選択してリファクタリングすると、
> Eclipse がそのコード・ブロックが使われている   【他の箇所】   も探し出して、新規メソッドへの呼び出しに置き換えてくれます。
682デフォルトの名無しさん:2012/06/10(日) 19:39:36.00
Railsに限らず、決められたとおりに作れば楽だけれども、
それを超えると急に難しくなる系は受託開発に向いてないと思う
683デフォルトの名無しさん:2012/06/10(日) 19:41:53.58
>>679
部分的な、という所の意味を正確にしないと
出来るも出来ないも言えない


例えばPythonにはこんなのもある
http://www.unixuser.org/~euske/python/pyntch/
実際に動かしてみれば動的型付けであっても
型推論で分かることが多いと気付くはず
684デフォルトの名無しさん:2012/06/10(日) 19:51:30.88
>>683
それは、処理対象に間違ったコードが含まれていた場合。
例えば文字列を渡すべき関数に変なオブジェクトを
渡しているコードがあった場合に、

間違った推論をするのか、それとも推論の結果から
コードがおかしいことを指摘をしてくれるのか
どっちなんだい?
685683:2012/06/10(日) 19:52:09.08
>>684
例えばこんなコードがあるとするだろ

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'))


すると、数と文字列を加算しようとする型エラーが静的に見つかる

まあ、個人的にはここまでするなら静的型言語使えって言いたいけどな
686デフォルトの名無しさん:2012/06/10(日) 19:55:39.32
出来たと言う人はPythonで出来たとかRubyで出来たとか言うが
出来ないと言う人は固有名詞が出てこない
具体的に何をやろうとしているのか分かってないから出来ない
687デフォルトの名無しさん:2012/06/10(日) 19:57:23.10
出来ないものに名前が必要なのか?
688デフォルトの名無しさん:2012/06/10(日) 19:59:38.55
>>685
Pythonって文字に+メソッドって追加できないの?

+は数値にしか用いられない記号であれば、
その程度は出来そうだね。

でもメソッドはどうなんだろう。

Rubyみたいに、どんなオブジェクトでも+を使えるようになっていたら、
オブジェクトではなく、特定のインスタンスだけに、メソッドが追加できるような
言語は、激しくリファクタリングと相性が悪いだろうね。
689デフォルトの名無しさん:2012/06/10(日) 20:03:18.13
>>688
Pythonの+は__add__メソッドを呼び出してる
だけだから追加できるよ
ていうか文字列と文字列は+で連結できる
690デフォルトの名無しさん:2012/06/10(日) 20:10:04.44
オーバーライドかオーバーロードがある言語は型推論できないのか
「動的型付け言語」というよりはむしろ「オブジェクト指向言語」じゃないか
691デフォルトの名無しさん:2012/06/10(日) 20:19:52.32
リファクタリングしにくいのは
Rubyの問題ってことか。
692デフォルトの名無しさん:2012/06/10(日) 20:30:43.45
>>691
Rubyだけじゃないだろ。
型が実行時までわからなければ、コンパイラ、IDEが
できることは相当少なくなる。

これが開発の生産性を相当落としている
693デフォルトの名無しさん:2012/06/10(日) 20:32:53.43
>>692
生産性落としてるってふだんLLなに使ってるの?
694デフォルトの名無しさん:2012/06/10(日) 20:34:13.78
範囲選択してコマンド実行するだけで
他の同じコードが全部まとまるなんて
羨ましすぎるよ。
汚いコードはこれで綺麗にできる。
695デフォルトの名無しさん:2012/06/10(日) 20:39:46.84
リファクタリングは、自分で書いたコードを自分で否定する側面もあるんで
自己否定しやすい言語が本当に正しい言語なのかという疑問がある
696デフォルトの名無しさん:2012/06/10(日) 20:43:30.26
>>695
屁理屈だなw
697デフォルトの名無しさん:2012/06/10(日) 20:54:59.40
リファクタリングに昔ほどの意義はないって気はするな
いまは小さなメソッドでコードを構成するのが主流だし
698デフォルトの名無しさん:2012/06/10(日) 20:58:24.60
>>697
頭が悪いの?
699デフォルトの名無しさん:2012/06/10(日) 21:22:37.56
>>693
スクリプト言語はやむをえずJavaScriptを使っているくらい。
もちろん、Webアプリのクライアントサイド用途。

あとは、開発生産性がいい、C# + Visual studio。
パフォーマンスが大事なごく一部のみCを使う場合もある。

スクリプトはデバッグがめんどくさいし勘弁して欲しい
700デフォルトの名無しさん:2012/06/10(日) 21:43:56.72
雑用スクリプトはあまり書かなそうだな。そりゃ嫌いにもなるか
701デフォルトの名無しさん:2012/06/10(日) 21:49:01.13
コードの行数で100行以下で終わる処理ならスクリプト。
それ以上ならスクリプトはありえない。
702デフォルトの名無しさん:2012/06/10(日) 22:02:46.24
>>699
デバッガありの開発に慣れてるとスクリプト言語のデバックは
やりづらく感じるよね。

スクリプト言語はスクリプト言語の良さがあるけど、やっぱり最後は
C言語かなと思う。

C#はほとんど使ったこと無いからよくわからんが
そんなにいいもんなのか?
703デフォルトの名無しさん:2012/06/10(日) 22:19:47.41
デバッガの無いスクリプト言語を使ってるんですね
704デフォルトの名無しさん:2012/06/10(日) 22:22:17.93
俺はC言語はやだなあ。
コード書いてる時間やアルゴリズム考えてる時間よりも
型を考えてる時間のが長いように感じてしまう。
いいじゃん解ってんだから、聞かないでよ。と思っちゃう。
705デフォルトの名無しさん:2012/06/10(日) 22:23:08.21
テストも書いてなさそう
706デフォルトの名無しさん:2012/06/10(日) 22:28:03.16
>>704
すべてintとしてコード書けばいいだけじゃないか。
707デフォルトの名無しさん:2012/06/10(日) 22:30:12.43
>>706
それじゃ構造体使えないじゃないか…
708デフォルトの名無しさん:2012/06/10(日) 22:35:50.70
じゃあ、defineで任意の型を使えるようにすれば良い
709デフォルトの名無しさん:2012/06/10(日) 22:39:24.22
C言語に#なしのdefineってあったっけ
710デフォルトの名無しさん:2012/06/10(日) 22:40:24.38
ある意味、C言語は参照型を殆ど使わない型を考える専用の言語だ
参照型を使うならJavaでもRubyでも使えるが、遅い
711デフォルトの名無しさん:2012/06/10(日) 22:43:16.64
Rubyに参照型なんてあったか?
712デフォルトの名無しさん:2012/06/10(日) 22:51:41.26
みんなLLで何作ってんの?
713デフォルトの名無しさん:2012/06/10(日) 23:16:09.54
ゲーム「電脳コイル放課後探偵局」の自動化スクリプトをゴリゴリ書いた
714デフォルトの名無しさん:2012/06/11(月) 00:22:14.36
>>711
変数が全部参照型ってことじゃね
715デフォルトの名無しさん:2012/06/11(月) 00:25:07.22
>>712
C++のコードを編集したりとか、ちょっとした計算に
たまにヒマ潰しにゲーム書いては捨てたり
この板の質問や宿題のスレ覗いて面白そうな題材を探しては書いてみたり
716デフォルトの名無しさん:2012/06/11(月) 00:26:18.09
実装上、ボックス化しているか?という意味なら
Rubyではしていることもあるし、していないこともある
717デフォルトの名無しさん:2012/06/11(月) 02:00:24.54
>>711は C++の&のことを想定してるのかな。
718uy:2012/06/11(月) 03:00:46.74
>>681
誰がIDEの機能を紹介しろっつった?
その程度の作業をリファクタリングとは俺の中で呼んでいない
アルゴリズムの根本を変えて
メソッドの引数も型も全てが変わっていくとき
静的言語では「それは出来ない事」と、されているよ
君の知らない世界では、出来ないと思われてた事までやってるんだよ

それが静的言語が動的言語から明らかに劣っているもののひとつ
結果として、動的言語では出来るリファクタリングのいくつかを行えないから静的言語で書くとソースコード量が膨大になる
719uy:2012/06/11(月) 03:07:39.05
そもそもさぁ・・・

>> あとからFuncA,FuncB,FuncCでひとつにまとめられる(かもしれない)としても、
ってかいてるのに

>FuncA、FuncB、FuncCが意味的に同じであれば(変数名が違っていたとしても)
>一つにまとまってくれる。


全然、話がズレてるのな
意味的に同じメソッドを2つも3つも定義してコーディングしちゃうようなゴミカスコードを機械的にリファクタリングじゃなくて
俺は
FuncA,FuncB,FuncC を、「プログラマ自身がアルゴリズムを考えなおせばまとめられるかもしれない」と言ったんだ

IDEがアルゴリズム考えてくれるのかね
結論からいえば静的言語でこのリファクタリングは100%行わない
型情報を書き直す手間がかかりすぎるから
720デフォルトの名無しさん:2012/06/11(月) 04:11:50.33
>>718

> その程度の作業をリファクタリングとは俺の中で呼んでいない



>>674でuyが言ったこと
> あとからFuncA,FuncB,FuncCでひとつにまとめられる(かもしれない)としても、
> 実際そのリファクタリングを静的言語じゃやらないだろ


自分でリファクタリングといっておきながら
それを気付かれないように、訂正w

いや、バレバレだからw
721デフォルトの名無しさん:2012/06/11(月) 04:37:48.23
>>719
お前はやらないんだろうが、例えばLinuxなんか、
静的言語でリファクタリングしてるだろう。

なんで静的言語だとリファクタリングしないと思ってるわけ?
有名なリファクタリング本の一つ、「リファクタリング―プログラムの体質改善テクニック」は
Javaを題材にしている。

お前は世間が狭すぎるよ。

IDEがアルゴリズム考えない。動的言語でもアルゴリズムは考えないだろう。
はい、そこに差は全くありません(笑)

型情報を書き直す手間? それは動的言語のほうが手間がかかるだろう。
例えばメソッドが一個減ったとする。さあ、他にこのメソッドを使っている所を探せ!
メソッド名がgetだったりしたら大変だ。・・・動的言語なら。

静的言語ならすごく簡単。なにせ一つ型情報を書き換えたら、関連コード全て自動で洗い出し、
ある程度は自動的に書き換えも行なってくれる。

そんなかんなでアルゴリズムを整理していけば、結果として似たようなコードが出来る。
そこでまたリファクタリングブラウザの登場だ。変数名違うけど本当に同じ?
なんてこと考えずに自動でやってくれる。

そしてもちろんテストコードを実行すれば、リファクタリング完了。
あ、テストコードの修正も忘れずに、動的言語は大変だw
722デフォルトの名無しさん:2012/06/11(月) 04:40:53.68
頭おかしいのがuyだけならともかく
もう一人増えたら手に負えない
723デフォルトの名無しさん:2012/06/11(月) 04:43:27.60
3行以内にまとめろ
724デフォルトの名無しさん:2012/06/11(月) 04:52:00.94
動的言語で出来ることは
すべて静的言語でも
できる。
725デフォルトの名無しさん:2012/06/11(月) 05:35:52.70
静的言語で出来ることは
すべてアセンブラでも
できるよな?
726デフォルトの名無しさん:2012/06/11(月) 05:44:45.22
動的言語で出来ることは
かなり無理があるが
すべて静的言語でも
できる。
727デフォルトの名無しさん:2012/06/11(月) 05:59:21.60
リファクタリングに関しては
静的言語で日常的に行われてる上に
動的言語よりも簡単に行える。
728デフォルトの名無しさん:2012/06/11(月) 07:47:35.46
大規模ドカタ開発の現場では
役に立たないゴミも簡単にクビにできないので、
そういうゴミには使いもしないコードの変数名関数名を
延々とリネームする作業をさせます。

こんなことが動的言語にできますか?
729デフォルトの名無しさん:2012/06/11(月) 07:53:32.88
無駄な作業が必要だというなら言語に関わらず、いくらでも作れる
関数名が衝突したりした結果として、挙動に重大な問題が生じた場合
そもそも変更後のコードはスモークテストすら通らないだろう
730デフォルトの名無しさん:2012/06/11(月) 08:29:44.86
指示通りに動いても役に立たないような状況が続くと
そのうち指示に従うゴミと従わない人間しかいなくなる
ゴミは静的言語を使い続け、人間は動的言語を使うようになる
731uy:2012/06/11(月) 08:50:09.24
>>721
そもそもさぁ
スレチ
732デフォルトの名無しさん:2012/06/11(月) 11:53:53.85
ポインタがない言語にぬるぽガールのは
何故?
733デフォルトの名無しさん:2012/06/11(月) 12:21:22.24
undefinedが長い (9文字) から
734デフォルトの名無しさん:2012/06/11(月) 13:00:12.67
>>728
お前にとってのリファクタリングが
どういうものか分かったよw

つまりね、お前素人すぎじゃん。
735デフォルトの名無しさん:2012/06/11(月) 13:04:12.62
12文字もあるじゃん(10文字)
736uy:2012/06/11(月) 13:32:37.01
効率的なプログラミングをすればするほどプログラマの数はいらなくなる
効率のいい技術を流布するというのは
めぐりめぐってIT企業の寿命と収入を減らす行為となる
誰にでもすぐ覚えられる言語を流布したら本が売れなくなる
質の良いフリーウェアが増えまくったら、シェアウェアが売れなくなる
小中学生のうちからプログラミング覚えられたら、教育機関の生徒数が減る

けれどもプログラマ()というのは効率のいいものを使おうとする
面白いよね面白い
737デフォルトの名無しさん:2012/06/11(月) 13:44:07.45
> 効率的なプログラミングをすればするほどプログラマの数はいらなくなる

ロボット生産をすればするほど人は必要なくなる。

それと同じだよ。

今頃そのことに気づいたのかい?
738uy:2012/06/11(月) 14:06:07.13
ずっと前から気づいてる
そうじゃなければ効率的手法を流布したりしない
プログラミングっていうのは、ゴミみたいなコミュ障を量産するものだと思うよ
だから世の中からさっさとプログラマを撲滅しようと、俺はそれをひとつの趣味にして生きてる
739デフォルトの名無しさん:2012/06/11(月) 14:19:18.12
じゃあ、言い出しっぺのuyから
撲滅しろ。
740uy:2012/06/11(月) 14:46:36.35
撲滅したいのは社畜プログラマーですよ

趣味PGは歓迎でございます
741デフォルトの名無しさん:2012/06/11(月) 16:35:35.04
PHPの本買ったけど、まだ1ページも読んでいない。
742デフォルトの名無しさん:2012/06/11(月) 16:36:10.02
手間を省くために手間をかける
それがPG
743デフォルトの名無しさん:2012/06/11(月) 17:02:39.02
■Python
print 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]
744デフォルトの名無しさん:2012/06/11(月) 17:07:03.57
>>741
捨てていいよ
745デフォルトの名無しさん:2012/06/11(月) 17:09:50.74
[n * 2 for n in [1,2,3,4,5] if 2 < n < 5]
Pythonの優勝だよ!やったね!
746デフォルトの名無しさん:2012/06/11(月) 17:11:53.18
■Haskell は Better C++ あるいは Better Python なのさ

・僕にとっての Haskell は Better C++ あるいは Better Python なのさ
・Haskell を使えない C++er とか…(失笑
・とりあえず Python は劣化 Haskell ってイメージ
・まぁ正直 C++ 使うくらいなら Haskell 使ったほうがいいよねぶっちゃけ。

C++ より速くて、Perl より簡潔で、
Python よりきちんとしていて、Ruby より柔軟で、
C# より型が充実していて、Java より頑強で、
PHP とは何の共通点もない

言語を作ろうとした結果に出来たものは Haskell だったんだね。
747デフォルトの名無しさん:2012/06/11(月) 18:51:13.88
C++とHaskellの良いところは
解析しにくいコードを見ただけで発狂する人がいない
748デフォルトの名無しさん:2012/06/11(月) 18:57:55.83
ちょっと小難しいコードを人が書いてるのを見るとimport thisを持ちだして発狂する人ならたまにいる
749デフォルトの名無しさん:2012/06/11(月) 23:16:58.19
最近初心者にPHPを勧める人減ったな
750デフォルトの名無しさん:2012/06/12(火) 02:21:28.64
php5.2でpdoを使いたいんですが
phpinfo()を表示させてもpdoの項目が全く表示されません
どうすればいいですか?

一応php.iniでは以下の部分のコメントアウトを外しました
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
751デフォルトの名無しさん:2012/06/12(火) 02:46:14.57
>>750
せいかい PythonかRubyを使う
752デフォルトの名無しさん:2012/06/12(火) 03:03:06.78
>>750
WindowsのPHP 5.2ではextension=php_pdo.dllが必要っぽいけど
WebProg板で聞いたほうがいいんじゃないか
753uy:2012/06/12(火) 04:42:42.87
>>743
n=(1..5).select do |i|
  (3..4) === i
end.each_with_object(2).map &:*
p n
754uy:2012/06/12(火) 05:21:22.37
>>743
p (1..5).select { |i| (3..4) === i }.map(&2.method(:*))
755デフォルトの名無しさん:2012/06/12(火) 07:02:14.63
XAMPPを使っとけ
手間が省ける
756uy:2012/06/12(火) 07:27:25.99
>>743
p ([*1..5]&[*3..4]).map &2.method(:*)

またRubyが勝ってしまったか
757デフォルトの名無しさん:2012/06/12(火) 07:37:26.03
Haskellのほうが短いけど?

print[x*2|x<-[1..5],x>2,x<5]
758デフォルトの名無しさん:2012/06/12(火) 07:40:51.67
どっちも読みにくい
759デフォルトの名無しさん:2012/06/12(火) 07:46:09.38
Haskellはちゃんとスペース入れたら一番読み易い
760デフォルトの名無しさん:2012/06/12(火) 07:50:49.79
>>743ではC#だけ飛び抜けて汚い
ていうかC#だけ出力してないじゃん
761デフォルトの名無しさん:2012/06/12(火) 08:48:21.79
>>756
Ruby意味不明だな、:*ってなんだよ・・・
762デフォルトの名無しさん:2012/06/12(火) 08:53:09.66
*1..5 のほうをキモいというのはわかるが、:* はただのシンボルじゃん。
全くこれだから計算機科学の教養がない奴は。
763uy:2012/06/12(火) 08:55:53.69
p (1..5).map{|i|i*2}[2,2]
本気をだしたrubyに勝てるとか勘違いされても困るというか
764デフォルトの名無しさん:2012/06/12(火) 08:58:07.18
読めない
765デフォルトの名無しさん:2012/06/12(火) 09:34:54.63
単に知らないってだけだろ
766デフォルトの名無しさん:2012/06/12(火) 11:41:57.39
つまりシンボルロックに陥ってる
767デフォルトの名無しさん:2012/06/12(火) 16:17:24.44
age
768デフォルトの名無しさん:2012/06/12(火) 17:18:43.77
範囲(1..5)と条件2<x<5が密結合したセンスのないコードだな
(0..5)に変えただけで条件部のコードも変更する必要がある
769デフォルトの名無しさん:2012/06/12(火) 17:22:39.16
>>743
Haskellの一人勝ち。
770デフォルトの名無しさん:2012/06/12(火) 17:34:54.50
え?コードのキモさを競ってるんじゃないの?
今のところRubyの圧勝だろキモさでは。
771769:2012/06/12(火) 17:41:42.05
>>770
あ、そう。それは失礼致しました。
772デフォルトの名無しさん:2012/06/12(火) 17:45:41.30
改めて。
Haskell以外は見るに堪えない。
773uy:2012/06/12(火) 18:09:12.71
Haskellは記号の使い方がおかしいんだよ
何も考えずに使える記号片っ端から使って実装した言語って感じ
774デフォルトの名無しさん:2012/06/12(火) 19:09:24.10
Haskellも興味あるけど、情報量と普及度がねぇ・・・

暇だったらやってみよっ
775デフォルトの名無しさん:2012/06/12(火) 23:57:27.61
J
+:(((>&2)*.(<&5)) a) # a=:1+i.5
リファレンス見ながら、書いてみた
もっと短く出来るのかも知れないけど、俺には無理だ。
776デフォルトの名無しさん:2012/06/13(水) 01:04:58.73
正直、
foreach( ... )
{
  if( ... ){ continue; }
  ....
}
形式が一番読みやすい。
777デフォルトの名無しさん:2012/06/13(水) 01:15:42.78
>>776
じゃあそれで>>743を書いてみてくれ
778デフォルトの名無しさん:2012/06/13(水) 01:22:27.24
Common Lisp
(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})())
779デフォルトの名無しさん:2012/06/13(水) 02:08:42.95
Clojure
(print (for [x [1,2,3,4,5] :when (< 2 x 5)] (* x 2)))
780デフォルトの名無しさん:2012/06/13(水) 02:30:06.53
この中にJavaとか混ぜたら
冗長すぎて異様に浮きそうだな
781デフォルトの名無しさん:2012/06/13(水) 02:49:48.69
>>775
+:(5&>#])(2&<#])(1+i.5)
782デフォルトの名無しさん:2012/06/13(水) 02:59:34.85
Squeak Smalltalk
(1 to: 5) select: [:x | x between: 3 and: 4] thenCollect: [:x | x * 2]
783デフォルトの名無しさん:2012/06/13(水) 03:00:57.69
C#のコードを無名クラスを
使って書きなおしたぐらいじゃないのか?

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;}} );

まあこんなメソッドはないけれど概ねあってると思う
784デフォルトの名無しさん:2012/06/13(水) 03:01:12.00
for( const char *s="12345"; *s; ++s ) if( '2'<*s&&*s<'5' ) printf( "%d", (*s-'0')*2 );
Cでもこの程度だしな。
785デフォルトの名無しさん:2012/06/13(水) 03:06:28.36
ちなみにJava8だとこうかけるっぽい。

new{}{ 1,2,3,4,5 }.Where(x -> 2 < x && x < 5).Select( x-> x*2);
786デフォルトの名無しさん:2012/06/13(水) 03:24:02.02
LINQ丸パクリ?
787デフォルトの名無しさん:2012/06/13(水) 03:30:01.34
メソッド名は違うよ。
言語仕様的に可能だろうってこと。
あと配列の宣言は知らない。
788デフォルトの名無しさん:2012/06/13(水) 05:11:22.55
>>780
こういうのが苦手なのはPrologだろう。引数で戻していくから。
789デフォルトの名無しさん:2012/06/13(水) 06:05:55.30
Prologってたまに名前あがるけど何に使ってる言語なの
790デフォルトの名無しさん:2012/06/13(水) 06:22:33.52
C/W 恋のバックトラック(カラオケ)
791デフォルトの名無しさん:2012/06/13(水) 08:08:31.88
言語仕様的に可能って話なら
printはp, mapはm, filterはf, selectはsに置き換えれば
どの言語も短くなるな

バカじゃねーの
792デフォルトの名無しさん:2012/06/13(水) 08:50:24.52
>>791
f = filter
と書くだけで置き換えられる言語と
引数や型を明示する言語と
あと、全てのファイルを検索して置換する言語もあるのかな
793デフォルトの名無しさん:2012/06/13(水) 09:04:51.44
>>791
mはPerlの正規表現、pはRubyの関数と紛らわしいぞ
794デフォルトの名無しさん:2012/06/13(水) 09:06:28.12
>>789
オンメモリデータベース言語だよ。
795デフォルトの名無しさん:2012/06/13(水) 12:23:01.77
PowerShell
1..5 -lt 5 -gt 2 | % { $_ * 2 }
796775:2012/06/13(水) 12:38:59.82
>>781
おー凄い、ありがとう
797デフォルトの名無しさん:2012/06/13(水) 12:49:18.10
>>775
>>781
何この変態言語
798デフォルトの名無しさん:2012/06/13(水) 13:21:08.47
変態関数htmlspecialchars
799uy:2012/06/13(水) 13:38:51.24
Esoteric programming language
800デフォルトの名無しさん:2012/06/13(水) 13:59:03.32
?- assert(mul(X,Y,Z):-Z is X*Y), sublist(between(3,4),[1,2,3,4,5],Xs),maplist(mul(2),Xs,Ys).
801デフォルトの名無しさん:2012/06/13(水) 14:01:31.07
文字数が少なければ良いとでも思ってるのかな
このスレって有意義な議論が何もないな。いかに変態的に書けるかを考えてるだけで
実用上の話はない。プログラミングに向いてない奴らのドヤ顔スレ
802uy:2012/06/13(水) 14:17:01.36
文字数が少なければ良いに決まっているのに
IDE補完があれば文字数が長くても良いなんていう勘違いしてんのかね

こういう考えの奴が本気で効率が出ると勘違いしてJAVAみたいな言語作っちゃったんだと思う
803デフォルトの名無しさん:2012/06/13(水) 14:29:28.66
>>802
http://nojiriko.asia/prolog/index.html 言語の問題というより・・
804uy:2012/06/13(水) 15:17:46.53
良く分からないけど
カレントディレクトリで
Dir["**/*"].each {|n| File.unlink n } でいいかね
805デフォルトの名無しさん:2012/06/13(水) 15:21:04.07
見えないレスに安価打つなよ
806デフォルトの名無しさん:2012/06/13(水) 15:22:18.55
ルート?
807デフォルトの名無しさん:2012/06/13(水) 18:55:49.31
でも人が書いたドヤ1行ライナーみたいなコードは保守したくないだろ?
もちろん書き捨てならなんでもいいけど
808デフォルトの名無しさん:2012/06/13(水) 19:03:04.56
確かに小飼弾wの書いたスクリプトは保守したくないな
809デフォルトの名無しさん:2012/06/13(水) 19:05:32.43
ライブラリも使いたくない
810デフォルトの名無しさん:2012/06/13(水) 19:11:20.82
読めなくても仕方ないみたいな数行のコードと
読めない奴はプログラミングに向いてないみたいな大量のコード
後者はコストとリスクが高くてリターンが低い
811デフォルトの名無しさん:2012/06/13(水) 19:41:10.95
中間がいい
812デフォルトの名無しさん:2012/06/13(水) 19:54:16.45
ドヤライナー
813デフォルトの名無しさん:2012/06/13(水) 19:55:20.70
大阪あたりで走ってそう
814デフォルトの名無しさん:2012/06/13(水) 20:11:08.42
パンツの裏側に貼ってそう
815デフォルトの名無しさん:2012/06/13(水) 20:29:51.90
あっそう
816デフォルトの名無しさん:2012/06/13(水) 20:34:29.63
数ヵ月後の自分を含めて読みやすいのがいいね

そう考えると、可読性を強制してくるPythonか。。。
817デフォルトの名無しさん:2012/06/13(水) 21:16:49.86
LLを作るのは簡単なんだが、実用的な物にするには、
最低限C言語用に作られたライブラリをそのまま読み込める必要がある。
C言語とメモリレイアウトをコンパチにするとLLの利点が無くなるし、
かといってマーシャリングは大変だ。
どちらにしてもCのヘッダ、それもwindows.hみたいなMSコンパイラ依存な
ヘッダとlibを読み込めるようにする必要がある。
やってられん。
818デフォルトの名無しさん:2012/06/13(水) 21:47:54.79
しかもCはヘッダファイルにマクロが入ってたりするから最悪。
Cのヘッダに対応するってことは、結局C言語をフルでサポートするってことになる。
文法をC互換にすると、統一感は出るが、
C言語由来の構文はシンプルで、LLで新たに追加した構文がむしろ冗長な表現になったり、
LLのうまみが損なわれて、狙いがまるで分からなくなる。
かといって、"C"{ }の中身はC言語と解釈、とかやって、Cを封じ込めることで自言語の構文を守っても、
それはそれでカオスになってLLっぽくないし、もっと気軽に外部のライブラリを呼び出したい。
そもそも、文法がカオスになってもかまわないのなら、
C++で連想配列使ってLLっぽくプログラミングしてもかまわないわけで。
819デフォルトの名無しさん:2012/06/13(水) 21:54:40.54
???
820デフォルトの名無しさん:2012/06/13(水) 22:40:31.77
既存の言語に不満があるなら、
新たに言語を作ればいいじゃない
821デフォルトの名無しさん:2012/06/13(水) 23:04:18.80
英語読めないくせになんで英語レスを要求すんの
822デフォルトの名無しさん:2012/06/13(水) 23:05:26.54
図書スレから誤爆った
823デフォルトの名無しさん:2012/06/13(水) 23:15:00.67
興味深いからどこのスレか知りたい
824デフォルトの名無しさん:2012/06/13(水) 23:39:28.61
120 名前:デフォルトの名無しさん[] 投稿日:2012/06/13(水) 22:38:25.06
英語なんて、しゃべるのはさすがにしんどいが、技術書読む程度なら計算機工学を
専攻してる人なら、読み書きはなんら不自由なくできるだろ
825デフォルトの名無しさん:2012/06/13(水) 23:45:48.81
>>801
文字数が少なければ良いワケではないが
リスト処理系の関数は単なるループよりも
処理の本質を表してて分かりやすいと思うよ
826デフォルトの名無しさん:2012/06/13(水) 23:52:53.67
>>818
マクロはcpp通したら駄目かな?
827デフォルトの名無しさん:2012/06/13(水) 23:54:05.46
fact = foldr (*) 1 . unfold (== 0) id pred

階乗の本質を表していて分かりやすい
828デフォルトの名無しさん:2012/06/14(木) 00:06:17.18
パイソンのリスト内包が一番分かりやすいよ
829uy:2012/06/14(木) 05:02:23.54
>>817,818
そのままで動くっていうのが大事なんだろうな
Cのライブラリをラップしてrubyで使えるようにするっていうんじゃなくて

そういう意味ではCにほぼ互換性を持ったC++は、今までのプログラム言語歴史の中でもかなり凄い
つうか文法以前に型サイズとかの問題が発生するから動的言語内でCそのまま動かすのはきつすぎな気がする
ライブラリ側をなんとかdll化して読み込んだ方が現実的
830デフォルトの名無しさん:2012/06/14(木) 11:37:31.51
>>827
Haskellってiota相当もいちいち手書きしないといけないのか。だっせー言語な。
831デフォルトの名無しさん:2012/06/14(木) 11:53:01.87
>>830
いや、そのレスはHaskellディスるためのものだと思うが…
832デフォルトの名無しさん:2012/06/14(木) 13:14:02.17
>>829
>そういう意味ではCにほぼ互換性を持ったC++は、今までのプログラム言語歴史の中でもかなり凄い

今でこそ独立したC++処理系は存在するけど、C++が登場した当時は
(Ratforと同様な)Cコンパイラ向けのプリプロセッサという位置付けだった
歴史さえ知っていれば、C++のC互換性はさほど驚くような話ではない
833デフォルトの名無しさん:2012/06/14(木) 13:21:10.24
実際C++ソースをCに変換してた
どっちみち、アセンブリ言語や機械語に変換してるから同じようなものだが
834デフォルトの名無しさん:2012/06/14(木) 14:06:56.63
>>827
ポイントフリー厨かよ

fact n = foldl (*) 1 [1..n]
835デフォルトの名無しさん:2012/06/14(木) 19:15:36.63
fact = (!!) $ scanl (*) 1 $ scanl (+) 1 $ repeat 1
scanはfoldとiotaとfactの本質を表している
836デフォルトの名無しさん:2012/06/14(木) 21:29:26.15
>>829
> つうか文法以前に型サイズとかの問題が発生するから動的言語内でCそのまま動かすのはきつすぎな気がする
Objective-CはSmalltalk内にCが書けるようなもんらしいよ。
837デフォルトの名無しさん:2012/06/14(木) 22:03:15.32
逆だ、逆。Cの中でSmalltalkモドキが書けるようにしてる。
838デフォルトの名無しさん:2012/06/14(木) 22:05:21.53
>>836
いや、それは逆で、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++スクリプト」と命名している
839デフォルトの名無しさん:2012/06/14(木) 22:26:42.54
このスレで最強の新言語を作るんだよな
wktk
840デフォルトの名無しさん:2012/06/14(木) 23:26:15.33
なにがプログラミング言語の存亡を分けるのか
http://wired.jp/2012/06/13/berkeley-programming-languages

マイノリティがドヤ顔してるアカデミック()な言語は糞だってことだ
841デフォルトの名無しさん:2012/06/15(金) 00:46:11.02
libclang使え
842デフォルトの名無しさん:2012/06/15(金) 04:01:23.72
フレームワークを共通にして
好きな場所で好きな言語を自在に混ぜられるようにしたらいいじゃない
843uy:2012/06/15(金) 06:26:51.00
>>832
歴史は知らんけど
過去の言語との互換性を持って、次の言語を作るというスタイルに
他の言語も続いていれば今頃こんな事にはなってなかった
844デフォルトの名無しさん:2012/06/15(金) 08:30:00.77
歴史を知らないなら語るなクズ
845Perl忍者 ◆M5ZWRnXOj6 :2012/06/15(金) 08:51:51.44
賢者は歴史に学び、愚か者は経験に学ぶ
846uy:2012/06/15(金) 12:54:53.67
>>844
じゃあそういう「歴史」がC++にあったというソースを示せ

出せないならお前はゴミだ
847デフォルトの名無しさん:2012/06/15(金) 12:57:04.31
教えてくださいお願いします、だろ?
848uy:2012/06/15(金) 14:55:48.80
後3レスいないソース出しとけよ
849デフォルトの名無しさん:2012/06/15(金) 15:04:42.97
850デフォルトの名無しさん:2012/06/15(金) 15:05:06.96
851デフォルトの名無しさん:2012/06/15(金) 15:05:23.41
852デフォルトの名無しさん:2012/06/15(金) 15:06:55.56
uyはまず日本語を勉強しろ
853uy:2012/06/15(金) 15:19:28.27
print *"uyはまず日本語を勉強しろ".chars.to_s.split(//).shuffle.each_slice(4).map{|n| [n,">>852sinekasu"] }
854デフォルトの名無しさん:2012/06/15(金) 18:15:34.60
C言語へのトランスレータであるとこと、
C言語と互換性があることには、
何の関係もないわな。
たとえPascalのコンパイラをC言語へのトランスレータとして実装したとしても、
PascalがC言語互換になるわけではないしな。
855デフォルトの名無しさん:2012/06/15(金) 18:42:14.05
>>854
トランスレータとプリプロセッサの違いが分からないのねw
856デフォルトの名無しさん:2012/06/15(金) 18:55:35.67
>>854
PascalをC言語にトランスレートしてからwindows.hをインクルードしたいという話だから
PascalでOKだ

スクリプト言語は逆に、C言語の関数をスクリプトの関数に変える
例えばC言語のmain関数がシェルスクリプトのコマンドになる
べつにmainの型を宣言したヘッダファイルをいちいち読む必要はない
857デフォルトの名無しさん:2012/06/15(金) 20:00:47.88
Pascalは関数内関数定義出来たのに
Cで出来なくなったのは残念だった
858デフォルトの名無しさん:2012/06/15(金) 20:18:56.51
>PascalをC言語にトランスレートしてからwindows.hをインクルードしたいという話だから
>PascalでOKだ

トランスレート後にヘッダ読み込む方法は、LL的にはまずいだろ。
859デフォルトの名無しさん:2012/06/15(金) 20:24:10.84
だから逆の方法があると言っただろ
860デフォルトの名無しさん:2012/06/15(金) 20:24:25.78
>>スクリプト言語は逆に、C言語の関数をスクリプトの関数に変える
>>例えばC言語のmain関数がシェルスクリプトのコマンドになる
>>べつにmainの型を宣言したヘッダファイルをいちいち読む必要はない

これも変なこといってるよな。
型が分からなきゃ、やり取りできんよ。
861デフォルトの名無しさん:2012/06/15(金) 20:30:15.16
フレームワークを作って、その上であらゆる言語を交ぜ書きできるようにしろ
862デフォルトの名無しさん:2012/06/15(金) 20:30:22.75
だいたい、main関数だって型有るしな。

>べつにmainの型を宣言したヘッダファイルをいちいち読む必要はない

mainの型が規格で取り決めてあって分かりきってるから読み込む必要がないってだけで。
DLL内の任意の関数を呼び出したいのなら、型がわからんことには、
スクリプト言語側でのマーシャリング等々のサポートは出来ん。
863デフォルトの名無しさん:2012/06/15(金) 20:36:17.14
>>860
まあドヤ顔で黙っているよりは、変なことでも言った方が良いわな
864デフォルトの名無しさん:2012/06/15(金) 20:42:18.10
普通に使うけどそんなに変か?
865デフォルトの名無しさん:2012/06/15(金) 21:14:32.63
>>864
もちろん普通に使うよ。
866デフォルトの名無しさん:2012/06/15(金) 22:04:17.39
>>862
任意の関数を呼び出したいっていうのはある意味で嘘なんだよな
何を呼び出したいのか分からないからそう言っているだけで
867デフォルトの名無しさん:2012/06/15(金) 23:25:56.96
何言ってんだ?
自分の呼び出したい関数名ぐらい分かるだろ。
868デフォルトの名無しさん:2012/06/15(金) 23:32:27.93
何かDLLを与えられたら
エクスポートされてる関数の一覧は取得できるだろう
だが、引数や戻り値の型は知りようがない
869デフォルトの名無しさん:2012/06/16(土) 00:07:07.25
だからヘッダ食わせるしかないって話だろ?
>>866の言い回しはおかしくないか?
何を呼び出したいのかは分かってるけど、引数の型がわからないってだけで。
870デフォルトの名無しさん:2012/06/16(土) 00:40:46.47
任意の関数を呼び出せる契約をしたとする
契約の結果がどうなろうと、何を呼び出したかったのか最初から知っていたと言えるか?
871uy:2012/06/16(土) 06:22:32.64
引数と戻り値情報をちゃんと含めてない拡張子dllの仕様がバカすぎワロタなわけで
つうか本当に取り出しにくいとかじゃなくて情報はいってないの?
872デフォルトの名無しさん:2012/06/16(土) 06:43:45.09
何も知らない馬鹿か
外から分かるのは関数名のみ
C++のように(dll外から見える)関数名に引数の情報を含める言語もある
873デフォルトの名無しさん:2012/06/16(土) 06:50:33.00
DLLに埋まってる文字列からどの言語から作られたDLLか知る
関数のエントリポイント付近を逆アセンブルして、引数の個数や型を推定する

関数名しか分からないならこういう手順
874デフォルトの名無しさん:2012/06/16(土) 07:09:21.48
このスレどうなってんの?
875uy:2012/06/16(土) 07:58:10.62
>>872,873
やっぱり情報はいってるんじゃん
それならスクリプト言語側がそれやればいいだけじゃん
手抜きしてましたって事?

引数情報や型情報なんて入ってなくとも
引数サイズ、戻り値サイズだけはどこかにあるはずだし

もし情報欠損している場所があるとすれば引数の個数だと思われる
char a , char b , という引数が 1バイトの引数2個って情報ではなく、ただの2バイトを引数にとるとかいう情報しか入ってない可能性とか
どうしても引数情報とってこれないケースとかそこら辺しか思い浮かばない
876uy:2012/06/16(土) 08:01:47.51
>情報欠損している場所が
アセンブラレベルで考えたらそれは無い気がしてきた

取り出しにくいだけで情報は入ってるじゃん
誰かやれば良いだけじゃん
877デフォルトの名無しさん:2012/06/16(土) 08:05:51.01
>>875
手抜きというか、コンパイル時にチェック済みだから実行時にはチェックしないって事
878uy:2012/06/16(土) 08:09:39.10
>>877
そっちじゃなく
スクリプト言語側からdll読み込んで関数名指定した時に
引数や戻り値を手動で書かなくちゃいけない上に
サイズや個数を間違ってもスクリプトの処理系がエラー出さないのが手抜きって話
879デフォルトの名無しさん:2012/06/16(土) 08:31:59.65
>>878
C/C++は配列の長さを手動で書くし、長さを間違ってもエラーが出てこないケースもある
それと同じ感覚で関数を扱うことも不可能ではない
そういうのに慣れている奴以外はdllを読むべきではない
880uy:2012/06/16(土) 08:59:46.51
不可能とか慣れとかいう話してないから

引数と戻り値の抽出が本当に出来ないのか、できるのかって話
結論としてはできる で終わった
881デフォルトの名無しさん:2012/06/16(土) 10:04:19.93
>>880
推定は出来るが、その推定を違えたら何が起こるか解らんから
他言語としてはやるべきではない

ブラウザの文字化けなら標準グチャグチャだけで済むし
その場でユーザが対応すれば済むが
言語側でそんなことして暴走や処理系停止したらマズいだろ
882デフォルトの名無しさん:2012/06/16(土) 10:05:10.31
s/標準/表示/
883uy:2012/06/16(土) 10:58:20.26
だから何。
誰かが正確に動作するもの作ればいいだけじゃん

つうか
dll関数の引数や個数を間違えたら暴走すんの?
例えばどんなソースで暴走すんの?????
例外でないで暴走したら処理系のバグだと思うよそれ

そもそも引数の型や数を間違えたら処理系は停止しなきゃダメなのに何いってんの?初心者?
884デフォルトの名無しさん:2012/06/16(土) 11:06:03.25
>>883
…マシン語やったことある?
885uy:2012/06/16(土) 11:21:45.27
おまえがな

例外出さずにスクリプトの処理系が暴走したらバグだから
やれるなら暴走する間違ったdllの使い方をかいてみろって

暴走とは何のことをいっているんだよ
基本的にOS側が例外を出す前に処理系が感知して実行止めるわけで、
処理系がとめきれずにOSのエラーメッセージでたらバグだよ
886uy:2012/06/16(土) 11:24:55.05
はー初心者
887デフォルトの名無しさん:2012/06/16(土) 11:56:03.20
任意の関数を呼び出したいんだろ?
その仕様を満たしていれば、暴走する関数を呼び出したいと思ったら呼び出せるよ
バグではなく仕様
888デフォルトの名無しさん:2012/06/16(土) 12:18:54.74
SEGV起こすためだけに書いたのでライブラリの使い方まちがってるかもだけど

$ 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
889デフォルトの名無しさん: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
890デフォルトの名無しさん:2012/06/16(土) 12:47:19.53
>>875
>引数情報や型情報なんて入ってなくとも
>引数サイズ、戻り値サイズだけはどこかにあるはずだし

どこにも入ってないよ。というか、どこかには情報量としてはあるんだけど、
どういった形で表現されているかは、実際に実行してみて、どういう動作になるか見てみないと分からない。
引数サイズやスタックポインタ周りの動作も含めて、その関数の実行結果の一部だから。
実行せずに実行結果を得ることは出来ないから、スクリプト言語側からそれらを得ることも出来ない。
uyには難しすぎるかな。

>関数のエントリポイント付近を逆アセンブルして、引数の個数や型を推定する
と言ってる人もいるけど、実際にはこんなこと出来ない。
引数の個数も型もわからない。
891デフォルトの名無しさん:2012/06/16(土) 12:48:40.47

関数のエントリポイント付近を逆アセンブルして、
引数の個数や型を推定できるよ。
たとえば可変引数の場合、
入れた数だけPOPすればいい
892デフォルトの名無しさん:2012/06/16(土) 12:53:28.65
無理です。個数も型もわかりません。
低脳は黙っててください。
893デフォルトの名無しさん:2012/06/16(土) 13:05:09.90
わかった。Rubyのせいじゃない。
通常のDLLの仕様のせいだ。Linuxのsoも同じか。

これがもし、netのDLLとかなら話は別だけど
DLL(so)からはどんな情報を渡すべきか知ることが出来ない。
しかしライブラリ内部では、渡された情報が
正しいことを前提にコードが書いてある。

これじゃ落ちるのは当たり前だ。
でもRubyのせいじゃなかった。良かった。
894デフォルトの名無しさん:2012/06/16(土) 13:06:28.57
DLLにはどんなメソッドを持った
クラスを渡すかきっちり決まってるからな。

動的言語ではオブジェクトを引数にして
呼び出すのは不可能。
895デフォルトの名無しさん:2012/06/16(土) 13:10:40.58
DLLといえばPASCALだな。
知らないだろう?w
896デフォルトの名無しさん:2012/06/16(土) 13:12:56.64
DLLの引数の情報をDLL自体に入れておく理由がわからん
そんなもん、ヘッダファイルに書いておいて
コンパイル時に参照すればいいだけじゃん。
897デフォルトの名無しさん:2012/06/16(土) 13:14:56.55
何も考えなしにDLLって言ってるけど、
C言語呼び出し規則の
ライブラリだろうが。

.NET用のDLLだってあるし、
C言語呼び出しなら、Windows以外だって同じだ。
898デフォルトの名無しさん:2012/06/16(土) 13:15:33.55
ま、ここの連中(特にuで始まってyで終わる人w)は
Windowsのことしか知らんからw
899デフォルトの名無しさん:2012/06/16(土) 15:11:54.34
uyは大馬鹿だな
WindowsのDLLを覗いたこともないんだろ

関数名だけのものが大半で、
(C++式の)引数の情報も持った(人間には読みにくい)関数名のものはごく一部

引数の型や個数も分からずに適当にDLL内の関数を呼んだら
不正な処理で終了するものも多い
アドレスを渡すべきところに変な整数を渡したりしたら、な
900デフォルトの名無しさん:2012/06/16(土) 16:31:31.03
逆アセンブルして推定するあたりがもう変態だし
あてずっぽうで適当な引数で試すのも変態そのもの
901デフォルトの名無しさん:2012/06/16(土) 17:41:17.69
ソースとヘッダがない、またはC言語自体が使えない環境で、独自の進化を遂げた生物

「Cでプログラミングするには人生は短すぎる」の結果がこれだよ
902デフォルトの名無しさん:2012/06/16(土) 18:35:46.35
もう出来ないでいいよ
903デフォルトの名無しさん:2012/06/16(土) 19:00:39.45
なんて言うか、包丁で指切って包丁作った人のせいにしてるようなもんだね。
904デフォルトの名無しさん:2012/06/16(土) 19:15:44.50
「下手の道具調べ」な連中w
905uy:2012/06/16(土) 20:38:36.04
まとめると
出来る可能性はあるけど
失敗するリスクが怖いのと絶対に出来なそうな仕様のDLLもあるので、やらないって事?
何この退屈な話題
906デフォルトの名無しさん:2012/06/16(土) 20:46:51.58
つかそのお前が言ってる処理系がナニするもんで、ナニをしないかがわかってねぇだろ?って単純な話。
907デフォルトの名無しさん:2012/06/16(土) 20:57:22.54
結論:uyには無理

DLLの仕組みすら分かってないからなw
908デフォルトの名無しさん:2012/06/16(土) 21:00:12.84
世の中にはフールプルーフって言葉もあるからな。
度が過ぎると馬鹿が増長する。
909デフォルトの名無しさん:2012/06/16(土) 21:02:19.88
まとめすら完全な見当違いとかアフォすぎるw
910デフォルトの名無しさん:2012/06/16(土) 21:04:32.13
失敗するのはこわくないが、人にすすめてそいつが失敗するのは見たくない
911デフォルトの名無しさん:2012/06/16(土) 21:09:47.98
LLには馬鹿を惹きつける何かがある。
912デフォルトの名無しさん:2012/06/16(土) 21:10:45.87
uyは自分で試して失敗したこともないクズ
913デフォルトの名無しさん:2012/06/16(土) 21:30:57.87
デニス・リッチー死去のスレでのuyのマジキチっぷりを見てドン引きするしかなかった
914デフォルトの名無しさん:2012/06/16(土) 21:33:35.85
プログラマは社会の底辺だしな。馬鹿が多いのは仕方ない。
915デフォルトの名無しさん:2012/06/16(土) 22:03:44.94
>>914
名前欄にuyって入れるの忘れてるぞw
916デフォルトの名無しさん:2012/06/16(土) 23:12:14.10
プログラマが底辺で、
uyはその遥かに下
917デフォルトの名無しさん:2012/06/17(日) 08:36:38.70
>>916
と言うかz軸を間違えてる感じ
918デフォルトの名無しさん:2012/06/17(日) 08:50:30.36
uyは自分が上だと思い込んでる
919uy:2012/06/17(日) 15:07:59.90
ネトゲのBOT作れる
920デフォルトの名無しさん:2012/06/17(日) 16:50:43.41
DLLの仕組みも分かってないし、オセロの探索もできないくせに?
921uy:2012/06/17(日) 17:43:51.13
ハック、クラックは情報を拾えるかどうかが鍵
技術ではない
殆どのネトゲではキー、マウスメッセージをまともに受け取らないが
簡単な抜け道が1つだけある
922デフォルトの名無しさん:2012/06/17(日) 17:56:00.53
画像をカメラで撮影して解析。
そして入力ハードウェアを作ればいいのだ。
923デフォルトの名無しさん:2012/06/17(日) 18:11:04.45

924デフォルトの名無しさん:2012/06/17(日) 18:27:35.60
BOTも糞Rubyで?
925uy:2012/06/17(日) 18:41:42.47
RubyとC++/WinAPI
WinAPIを使用する処理はC++でかいて
それをrubyから使うのが俺様のプログラミングの日常風景
926デフォルトの名無しさん:2012/06/17(日) 19:13:18.77
uyのことを議論するスレ?
927デフォルトの名無しさん:2012/06/17(日) 19:46:15.75
Ruby/DLも知らんかったくせにw
928デフォルトの名無しさん:2012/06/17(日) 19:55:29.81
DLLの仕組みも全く知らなかったから、
uyにはDLLの関数を直接呼ぶのも無理なんだろうな
929uy:2012/06/17(日) 19:56:12.18
よくそんな昔の投稿覚えてるな
標準ライブラリは全部知ってるが、
WinAPIとRuby/DLで出来る事に差があることを知らなかっただけだよ
930デフォルトの名無しさん:2012/06/17(日) 21:44:06.09
WinAPIは関係ない。
昔のライブラリは全部同じ。
Windows以外であっても。

つまり、常識的な知識
931デフォルトの名無しさん:2012/06/17(日) 21:46:33.22
昔のライブラリというか、
C言語系のライブラリというか、
ELFフォーマットやオブジェクトファイルや
リンカやそういった、ネイティブコードに
関する一般的な話だ。
932デフォルトの名無しさん:2012/06/17(日) 22:03:34.04
uyはRubyばかり使ってるから知識が薄っぺらい
933デフォルトの名無しさん:2012/06/17(日) 22:10:38.46
まあ、この有様を見て、rubyを使うやつが減ってくれるなら嬉しい限りじゃないか
934uy:2012/06/17(日) 22:27:14.97
>>930
何の話してんだか意味不明だけど

rubyのWinAPI.new の話な
935uy:2012/06/17(日) 22:30:45.29
俺は927にしかレスしていないし927にしか話は通じないはずのレス
936デフォルトの名無しさん:2012/06/17(日) 23:41:35.11
薄っぺらい奴
937デフォルトの名無しさん:2012/06/17(日) 23:43:21.19
薄っぺらいつーかなんも分かってない
938デフォルトの名無しさん:2012/06/17(日) 23:52:51.48
DLLのエントリポイントの話は
uyが見当違いで的外れなこと書いてて
面白かった
939デフォルトの名無しさん:2012/06/17(日) 23:53:09.71
927ではないのだけど
ruby 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も大差ないね
940デフォルトの名無しさん:2012/06/18(月) 00:36:55.85
uyことウンコ野郎() の作ったプログラムと、そのソースコードがみたいんですけど
uyことウンコ野郎() の作ったプログラムと、そのソースコードがみたいんですけど
uyことウンコ野郎() の作ったプログラムと、そのソースコードがみたいんですけど
941uy:2012/06/18(月) 02:09:06.46
>>939
俺はWin32API.newでやってたらdoubleの引数で詰んだ
942uy:2012/06/18(月) 02:16:40.40
>>940
何時かにも言ったけど
きたねーおっさんが下ネタいっても、きたねえだけだからな

お前らは外見も思考もゴミなんだから、品くらいもてよ
943デフォルトの名無しさん:2012/06/18(月) 04:15:17.58
>>941
お前の人生ももう詰みだよ
944デフォルトの名無しさん:2012/06/18(月) 05:38:47.89
uy自体が罪でゴミ
945デフォルトの名無しさん:2012/06/18(月) 06:19:10.25
uyは底辺であるプログラマより遥かに低レベルなんだから早く底辺まで追いつけよ
946デフォルトの名無しさん:2012/06/18(月) 08:15:30.82
ttp://twitter.com/#!/akiradeveloper
ちんこもuyもどっちもアホや
947デフォルトの名無しさん:2012/06/18(月) 08:59:08.19
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
948uy:2012/06/18(月) 12:04:05.26
俺のことを無理してキリッとしながら底辺と言えば言うほど
お前らが俺よりも下だと認識させられた瞬間に精神崩壊するきっかけを増やすだけだというのに
ずいぶんと元気だな
急にスレがつまらなくなった
949デフォルトの名無しさん:2012/06/18(月) 12:44:22.70
だれも精神崩壊してない所を見ると、

uyが一番下ってみんな思ってるんだろうなw
950uy:2012/06/18(月) 15:32:01.71
ゴミ
951uy:2012/06/18(月) 16:52:14.06
俺は取るに足らないゴミだ
952デフォルトの名無しさん:2012/06/18(月) 16:58:43.29
953Perl忍者 ◆M5ZWRnXOj6 :2012/06/18(月) 19:56:00.46
uyってどうあがいてもsora_hに勝てないだろ
954デフォルトの名無しさん:2012/06/18(月) 20:15:04.86
プログラミングは趣味でちょこちょこやっているだけなので、自分はuyにも負けるなあ。
他の分野では自分が勝ってるものもあるだろうし、別にいいけど。
955デフォルトの名無しさん:2012/06/18(月) 20:17:00.20
てかオセロはどうなった?
drop_whileがどーのこーの言ってたようだけど
んなもん使うやついるのかよ
956デフォルトの名無しさん:2012/06/18(月) 20:20:33.43
あいも変わらず・・・
957デフォルトの名無しさん:2012/06/18(月) 20:34:07.82
uyはオセロの盤面が何通りあるか計算できないし、
10MBに収まるとかいう、オセロの最善手DBも公開できないカス

すべての手を10MBに収められるものなら収めてみろ
958デフォルトの名無しさん:2012/06/18(月) 21:26:58.09
959デフォルトの名無しさん:2012/06/18(月) 21:41:55.29
日本語でおk
960uy:2012/06/18(月) 21:46:53.60
俺には解けないって事でいいよ
面倒くさいからやないし

オセロみたいなこういうプログラムは
データ圧縮しようと思えば極限まで圧縮できるし類のプログラムだと思ってるし
総当りで調べる必要もない

回転によって4分の1になる
上下、左右対称によって4分の1になる
反転させた上下左右対称で4分の1になる
あとは行と列ごとに逆順にして計算していけば数百〜数千の1になるはず
この時点で
2^64 - 4*4*4*数百〜数千
あとは、オセロの基盤を4つに分けて
4マス四方のブロックに見立ててにあれこれやっていけば一気に小さくなる
おそらく仕上げで、さらに2マス四方であれこれやって、おそらく最終的には2マスの列と行の並びで何とかなる

そこまでやれば10MBくらいじゃねーの? ってだけで俺がやるつもりはないから死ね
961デフォルトの名無しさん:2012/06/18(月) 21:51:02.13
何の根拠もない

uyに能力がないからできないだけ
962デフォルトの名無しさん:2012/06/18(月) 21:55:05.03
unkonow
963デフォルトの名無しさん:2012/06/18(月) 22:02:30.02
964デフォルトの名無しさん:2012/06/19(火) 01:05:59.41
ume
965デフォルトの名無しさん:2012/06/19(火) 08:15:08.80
>>963
は?
過去スレ貼って何したいの?
966デフォルトの名無しさん:2012/06/19(火) 08:47:18.51
uyが間違ったことを書いて
無知を晒してしまったから
時間を戻したいんだろ
967デフォルトの名無しさん:2012/06/19(火) 20:05:34.10
なんでもuyにこじつけるね

そんなに好きなの?
968uy:2012/06/19(火) 20:33:50.70
はぁ?
969uy:2012/06/19(火) 20:33:59.47
お前らがuyを下に見たとする
そして心を保った
しかし、職場にでて回りを見てみればuy以下の奴らばかり
ああuyってマシなほうだったんだな
あれ、俺はどうしてあんな職場にいるんだろう
ん、俺も周りからみたらあいつらと同じなのか
低スキルのあいつらと何も変わらない
ああ俺もuyより遥かに下だったんだな
uyさんごめんなさい   ← 今ここ
970デフォルトの名無しさん:2012/06/19(火) 20:46:46.56
という書き込みをみて嘲笑する ← いまここ
971uy:2012/06/19(火) 21:30:59.90
お前らが言うように、俺は確かにゴミカスだ
972uy:2012/06/19(火) 21:54:03.40
sassato ume
973デフォルトの名無しさん:2012/06/19(火) 22:06:37.23
本当にuyが哀れに思えてきた
974デフォルトの名無しさん:2012/06/19(火) 23:42:12.25
ssss
975uy:2012/06/20(水) 00:56:19.12
俺はゴミカスだがエリートゴミカスだ
お前らのような下級ゴミカスとは格が違う
976デフォルトの名無しさん:2012/06/20(水) 01:53:04.38
ssss
977デフォルトの名無しさん:2012/06/20(水) 02:25:02.88
これが目糞鼻糞を笑うってやつか
978デフォルトの名無しさん:2012/06/20(水) 02:26:05.79
久しぶりに次スレ検索したら、既に次スレに976件のレスまで……
uyってなんだろうと思ったら、Ruby かよ
LLなんて、よく使うのはJavaScript、構文が綺麗なのはRubyでFAだろ
あんま議論する余地ないよな
そもそも、普段は Java ばかりだろ
979デフォルトの名無しさん:2012/06/20(水) 02:33:54.35
何その狭い世界観
980デフォルトの名無しさん:2012/06/20(水) 08:20:46.62
Rubyの構文は綺麗じゃないだろ。
Lispのは構文は綺麗だが、意味のほうを「泥団子」と評した人がいたが、
Rubyは構文が泥団子的。
981デフォルトの名無しさん:2012/06/20(水) 09:23:01.79
とりあえずuyって子はもっと基礎的なとこから勉強した方がいいと思うよ
982uy:2012/06/20(水) 09:26:10.79
俺はゴミカスだがエリートゴミカスだ
お前らのような下級ゴミカスとは格が違う
983デフォルトの名無しさん:2012/06/20(水) 09:36:03.12
結局のところ何をすればいいのか全く分からないアドバイス
の応酬
984uy:2012/06/20(水) 10:57:43.96
umero
985uy:2012/06/20(水) 11:05:50.76
ume
986デフォルトの名無しさん:2012/06/20(水) 11:49:29.73
>>983
上の方でDLLのことをもっと調べれとか出てなかったかい?
987uy:2012/06/20(水) 11:58:02.70
def f n
  n.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は下回った
988デフォルトの名無しさん:2012/06/20(水) 12:05:00.95
ダサい
989uy:2012/06/20(水) 12:41:01.34
でっていう
990デフォルトの名無しさん:2012/06/20(水) 15:14:03.14
991デフォルトの名無しさん:2012/06/20(水) 15:49:43.49
992uy:2012/06/20(水) 16:12:30.57
>>955
ハァ?>>639

つうかある程度のコード圧縮にdrop_whileは有用だとしても
最終的に限りなく小さいソースコードを書こうとしたら
イテレータでオブジェクトを削って値を返すのではなく
単一ループ中に全てをやらないとダメだった
配列対象の正規表現がほしい
いやむしろそれならオセロの基盤を配列で管理するのではなく文字列で管理して正規表現使って裏返す手があったか
993uy:2012/06/20(水) 16:21:06.30
a="003111200"
p a

a.sub!(/(3.*2)/){ "2"*$1.size }
p a

上手くいきすぎワロタ
994デフォルトの名無しさん:2012/06/20(水) 16:34:34.74
Cでは文字列と配列が実質同じだ
995デフォルトの名無しさん:2012/06/20(水) 17:08:50.19
正規表現ねぇ…
縦や斜めのことを忘れてる件
transposeと言ってたがコストを考えたら結局自前で8方向に走査した方が安い
996デフォルトの名無しさん:2012/06/20(水) 17:15:42.27
俺は牛の屠殺場を見たことがあるが、そこでは牛達が銃で眉間を撃ち抜かれて
殺されている。
日頃従順に人間に従っていた温和な牛たちも、順番を待って並ばされている時に
そこではじめて自分の運命に気付くのだろう、日頃聞かないような悲痛な甲高い
鳴き声を絶えず出し続けている。俺は今でもその鳴き声が耳を離れない。
人間は斯くも残酷な行為を毎日何千、何万という動物達に行っているのだ。
せめてその肉を頂く時には少しぐらい感謝の気持ちをもってもいいだろう。

【屠殺場の怖さは異常】
ttp://2.ldblog.jp/archives/1058482.html
997デフォルトの名無しさん:2012/06/20(水) 17:16:39.14
uyは1×64のオセロでもやってるんだろw
998uy:2012/06/20(水) 18:21:39.97
>>995
8方向走査ワロタwwwwwwwwwwwwwwwwww
どんなクズでも
縦、横くらいは同一メソッドで処理できるだろ
斜め裏返しには壁がある
999uy:2012/06/20(水) 18:27:37.97
斜めの裏返しをするには、まず斜めに抽出してこういう形のデータを作って
[
"0",
"00",
"000",
"0000",
"00000",
"000000",
"0000000",
"00000000", ]
同じ裏返しメソッドに与えるだけだが
普通にかくとデータ抽出部分と、データ修正したものを元のオセロマップに適用する部分で冗長する
1000uy:2012/06/20(水) 18:28:41.13
全員しね
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。