[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 23:11 / Filesize : 251 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

初心者のためのプログラミング言語ガイド Part8



1 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:13:54 ]
これからプログラミングを始める初心者の人に言語を薦めるスッドレ

質問者の方へ
どのプログラミング言語を最初に覚えるべきかは
なぜプログラミングを始めたいのか、何を作りたいのかによってまったく変わってきます。
なんとなく、でもかまわないので動機、用途、使っているOSを明記しましょう。

各言語の特徴はこちらを参照
Wikipedia Category:プログラミング言語
ja.wikipedia.org/wiki/Category:%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

Part7 pc11.2ch.net/test/read.cgi/tech/1200807067/
Part6 pc11.2ch.net/test/read.cgi/tech/1193132235/
Part5 pc11.2ch.net/test/read.cgi/tech/1187886538/
Part4 pc11.2ch.net/test/read.cgi/tech/1177285633/
Part3 pc11.2ch.net/test/read.cgi/tech/1152778344/
Part2 pc8.2ch.net/test/read.cgi/tech/1122205164/
Part1 pc8.2ch.net/test/read.cgi/tech/1034505166/



267 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:07:14 ]
>>260
ああ、一通りあるのね
あんたが「PerlでのOOP導入の利点とは、関数名の衝突を避けられること」
なんて微妙なことを書いてるもんだから

268 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:08:06 ]
サイタマンの過去の発言からして
自演は良くあること

269 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 23:15:17 ]
>>267
自分がOOPを使う一番のメリットは、
関数の衝突を避ける事がメインですね。
動的束縛とポリモフィズムの利用や
デザインパターンの技法を使って
オブジェクトを細かくコマンド化したり
細分化する事には余りメリットを感じません。



270 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 23:17:52 ]
まあ、業務用の同じようなものばかり作ってる人にはデザインパターンは
効果的なんでしょうが。。。

271 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:19:44 ]
サイタマンに同調する気はないが、
デザインパターン本を見てまねするのは末期な感じがする。
さすがにそこまでやっちゃうと考える力、判断する力がつかなくなるw

272 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:24:07 ]
デザインパターン的発想ができるようになるってのが重要なわけだぁね。

273 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:30:12 ]
あくまで参考として見ておいたほうがよくて、
やはり自分で設計できるようにしたほうがいいと思うよ。

大規模開発などに携わる場合は、必要な知識かもしれないけど
個人でやる場合は無視したほうがいい。

274 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:33:55 ]
そうかねえ
例えば有名なGoFの23パターンだが、あれを全部とは言わずとも
大体を自力で発見できるかと言われると・・・・・・いくつか自信がない

何よりもまず、有名な手法に名前がつけられているって事が重要
名前さえあれば議論のまな板に乗せられる。伝達できる

275 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:54:10 ]
>>250

いや、やはり同じこと。

if($a == $b){
print '1';
}
print '2';

を間違えて、

if($a == $b){
print '1';
print '2';
}

と書いた場合、Perlのコンパイラはエラーを吐かないだろう。



276 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:56:03 ]
このサイタマンとやらがデザインパターン知ってたら
「ほら、Perlだったらこのパターン作るの簡単ですよ」
みたいな事ばっかり言うんだろうな・・

277 名前:サイタマン ◆mYN3wsz7vE [2008/04/24(木) 00:53:00 ]
>>275
その構文と比較するのはちょっと違います。
何故かと言うと、}の位置で一目で制御文の終了位置が分かるからです。
比較してpytyonではインデントしかありません。
>>276
デザインパターンくらい知ってますが
意味が無いので、使わないだけです。

278 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:54:33 ]
つーか、Rubyじゃ駄目なのか?
perlより格段にマシだと思うんだが

279 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:58:30 ]
>>277
思考の硬直化が見られるな。
デザパタに固執する事とデザパタを無碍にする事は
どちらも似たようなレベル。

280 名前:サイタマン ◆mYN3wsz7vE [2008/04/24(木) 00:58:41 ]
>>278
Rubyの構文自体に不満は無いですが、
遅すぎるのと、まだ枯れていないので、
バグがあるのではないかと言う事、
Perlでは検索して
やりたい事に合うモジュールを
直感的に見つけるられるのですが、
そのモジュールが少ない事がありますね。


Singleton Factory Template
辺りは良く使われてます。
Sladeにも使われてます。

281 名前:サイタマン ◆mYN3wsz7vE [2008/04/24(木) 01:21:51 ]
一応、Templateパターンもどきで書いてみました。

use Test;
my $obj = Test->new();
my $d=$obj->call(1,2);
#結果3
package Test;

sub new {
my $pkg = shift;
bless {},$pkg;
}
sub call{
my $self = shift;
my($a,$b)=@_;
my $c=$self->do_task($a,$b);
$self->do_print($c);
}
sub do_task{
my $self = shift;
my($a,$b)=@_;
my $c=$a+$b;
return $c;
}
sub do_print{
my $self = shift;
my($a)=@_;
print $a;
}
1;

282 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:33:53 ]
$aとか$bとか使う時点でもうダメだな。

283 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 02:02:21 ]
>>283
java,c,vc,basicくらいしか知らない学生だが
そのプログラムを見る限りperlって直感的に分かりずらいな。

あとsageろ


284 名前:サイタマン ◆mYN3wsz7vE mailto:sage [2008/04/24(木) 02:16:00 ]
まあ、perlは慣れないと難しいかもしれませんね。
ただ、慣れると非常に書き手にとってメリットのある言語です。






285 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 02:33:01 ]
サイタマン独演会になってから初心者が来なくなったなw



286 名前:サイタマン ◆mYN3wsz7vE mailto:sage [2008/04/24(木) 02:38:21 ]
少し自重します・・・

287 名前:デフォルトの名無しさん [2008/04/24(木) 05:47:20 ]
>>283
>>283はsageているじゃん。

288 名前:デフォルトの名無しさん [2008/04/24(木) 05:57:45 ]
3年前にニュース速報でプログラムなら負けない自信があるとほざいているサイタマンが
初心者スレで書き込み&名無しで自画自賛の自演してて笑った



528 名前:埼玉mikky ◆jM/TIxxEd. :2005/04/25(月) 21:49:44 ID:A5d3v8LD ?##
2chはいろんな分野の博識者が多くて為になるなぁ。
おれもPCやプログラムの事なら負けない自信あるけど、
それ以外の専門的な知識がいろいろ手に入るから便利だわ。

↓↓そして3年後↓↓

初心者のためのプログラミング言語ガイド Part8
pc11.2ch.net/test/read.cgi/tech/1208186034/

192 名前:サイタマン ◆mYN3wsz7vE [] 投稿日:2008/04/21(月) 15:12:24
まあまあ、荒れないで下さい。
初心者にもこの程度は作れるよと言いたかっただけなので。


自分で初心者って言い切ってるwwwwwwwwwww
他にもいろいろ初心者スレに出入りwwwwワロス

負けない自信のある人間が初心者スレに出入りしている矛盾!

289 名前:デフォルトの名無しさん [2008/04/24(木) 06:05:50 ]
【頭隠して】虚言病のサイタマン【尻隠さず】
live27.2ch.net/test/read.cgi/market/1188339064/

サイタマン発言まとめスレ
東京kittyに憧れ埼玉kittyというコテを名乗る、その後埼玉mikkyを経て現在サイタマン
ニート歴10年。ニート鈴木という名前でテレビ出演歴あり
株を始めて3年目で100万円を70万に減らす
自称月収200万円のIT企業だが睡眠時間以外は投資一般スレ、
ニュース速報、プログラム板に常駐

特徴は初心者のスレッドにいって別のスレで読んだことをあたかも自分の意見のように
コピペすることだけど、専門家につっこまれたら逃亡する。コテをつけはじめてから
この行動パターンは不変である。自作自演も得意

290 名前:サイタマン ◆mYN3wsz7vE mailto:sage [2008/04/24(木) 06:06:44 ]
ちょおおお
こんなところまで出張しないで

291 名前:デフォルトの名無しさん [2008/04/24(木) 06:15:40 ]
◆ここが変だよサイタマン
・自称年収4000万のIT企業社長のはずなのに起きてる時間は2chの
投資一般、ニュース速報、そして最近はプログラム板に常駐

・数億円ある両親の資産管理会社の社長の設定だったが、いつのまにか祖父の遺産を
相続して数億円は自分のものということになっている

・しかし3年間株をやって初期資金を70万以上入金できない

・MARCH卒といっていたのが最近東京六大学卒に変わってきている

・05年でプログラムは自信があるはずなのに06年にHTMLしかできないことが判明

・05年でプログラムに自信があると言い切っているのに最近初心者スレにだけ出入り


292 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 07:56:29 ]
>>284
敗北宣言ktkr
慣れた言語が書きやすいのはあたりまえだろ。

293 名前:デフォルトの名無しさん [2008/04/24(木) 07:57:59 ]
あほのさいたまんに年金手帳の質問考えてきたんだけど
質問してもいいですか?

294 名前:デフォルトの名無しさん [2008/04/24(木) 07:58:00 ]
つい最近まで1ソースに何万行も書いてたサイタマンはどこいったの

295 名前:キチガイ ◆Z4QrFDzwrY [2008/04/24(木) 08:26:25 ]
>>182
>2chブラウザを作りたい人は質問に答えますよ。
では、サイタマンさんに質問します
はなもげらって何ですか?
知らないはずがないですよねえ?
2chブラウザを作ったんですからねえ
私も2chに自作プログラムで書き込むぐらいのことはやったことがあるんですよ
まさかまさか、SaitamanSpeedとかいう専ブラが実は画面しか作ってなくて、
機能は何も実装してないなんてことはないんですよねえ?



296 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 08:34:56 ]
関数型言語初心者で、ちょっと書けるようにはなったんですが、最近
CとかC++のソースを見なきゃいけない事態になりました。こっちは
まったくやったことありません。

これって何でしょうか、何でこんなにあーでもない、こーでもない
って書き方してるんでしょうかね。あと、一つの変数に何回も
値を代入して、それによって関数の戻り値が変ったりするなど、
すごく分かりにくいです。

あと、ポインタってありますね。これとか全く意味不明というか、
混乱の元だと思うんですが。何でコーディングしながら、メモリ
の状態を考えないといけないんでしょうか。変数に値がbind
されるだけではなく、アドレスを指し示している変数が存在
する必要が分かりません。

正直、今の作業が終わったらCやC++みたいなのはずっと
やらないで済ましたいんですが、可能なんでしょうか。

297 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 08:39:05 ]
>>296
今はサイタマンを糾弾している最中だ。
質問は禁止している。

298 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 08:52:42 ]
>>296
可能性のお話なら、「可能」だろう

299 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:34:16 ]
>>296
どこぞの表現を借りるなら、C系は「コンピュータがどう動くか」のモデル化を主目的としているのに対し、
関数型言語は「計算というものがどう振る舞うか」のモデル化を主目的としている。
マシン語は使いたくないが、しかしコンピュータの性能をそれなりに高い純度で引き出したい、という場合、
前者を使わないわけにはいかなくなる。

従って、君がCやC++を「やらないで済ます」ことができるかどうかは、たとえば、
君の作るものがコンピュータの性能をどれくらい引き出す必要のあるものか、に依ることになる。
あと、より「社会的な」問題としては、ユーザー人口の少ない言語は処理系のライブラリ、ドキュメント、
相談相手etc、色んな物の少なさで苦労するかもしれないから、それに耐えられるかどうか、なんてのも。

ただちょっと気になったんだけど、「関数型言語初心者」でC/C++を「まったくやったことない」ってことは、
つまり君の質問の「登場人物」のどれについても、まともに理解していない段階なわけだよね?
そういう段階にいるうちは、批判精神は胸の内にしまって、黙々と勉強を続けたほうがいいと思うよ。
それよりも、>>298が仄めかしているように、自分の立ち位置(作りたいものとか、業務内容とか)を
ハッキリ表明して、「こういう状況にあるのだが、CやC++をやらずに済むだろうか?」という適切な質問を書く、
ということができない自分への批判精神を磨くほうが大事だと思う。

300 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:47:50 ]
>>277

Pythonの場合も、インデントで制御文の終了位置が分かる。

>>277の主張は、>>277にとっては「}」のほうが分かりやすいという感慨にのみ立脚している。
だから、「{」〜「}」よりも「    」のほうが分かりやすい人にとっては
無意味。

現実には、Pythonのコードを読みやすいと思っている人は少なくないから、>>277のような
感じ方をする人が多数派だとはいいきれない。

また、仮にインデントが分かりにくかったならば、{〜}言語や(〜)言語やbegin〜end言語で
プログラマーがコンパイラによって必要とされていないインデントを多用してコードを書く理由は
なんだろうか?

Basic系みたいに、

If a = b Then
    Print '1'
EndIf
Print '2'

なんてやれると、これは「{」〜「}」よりも圧倒的に分かりやすい。「}」は
それ自体何の終わりかわからないが、「EndIf」が「If」制御文の終わりであることははっきりして
いる。しかし、Basic系でも実際のコードではインデントが多用されている。

つまり、インデントが一番分かりやすい。

Perlの美徳としてはっきりしているのは、読みやすさではなく、書く場合の労力が
小さいことだろう。

301 名前:296 mailto:sage [2008/04/24(木) 10:06:05 ]
>>299
ちょっと分からないのは、僕等がやろうとしているのは計算処理であって、特定
コンピュータがどう動くかを云々することじゃないって認識なんですが、違う
ということですか?

コンピュータのメモリがどうのって話は、ハード屋とか、コンパイラ作ってる
人とか、OSのコア部分作ってる人たちの分野じゃないのですか?こういう
のはごく限られたその方面のエキスパート達がやればいいんじゃないかと
思います。

一般のプログラマってのは、そういう話とあまり関係なくやりたいことを記述
できればいいと思うんですよね。パフォーマンスがどうとか、そういうのは
コンパイラがやればいいと思っちゃう。そりゃ無理難題をコード化すれば
メモリオーバしちゃうでしょうけど。メモリのアドレスがどうとか考えるのは
やり過ぎじゃないですか?

関数型がマイナーだというのが僕は信じられません。Cなんかと比べて
段違いにわかりやすいと思うのですが。

302 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 10:14:44 ]
>>301
俺らがやろうとしているのは計算処理ではないよ。
コンピュータに計算処理をさせることだ。

303 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 10:16:09 ]
俺はCなどの手続き型言語で挫折して、
Lispを弄ってみた。するとどうだろう。
書き方も構文のあり方も、ルールも違う言語なのかわからんが
コーディングが楽しくなってきた。
そしてHaskellに手を出してみた。面白い。
そのついでに、Pythonに手出してみた。おお、理解できるぞ。
そして今はCに手出してる。

関数型言語の考え方(リスト再帰、cdr再帰、無名関数など)は
かなり有用であると思えた。

304 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 10:25:40 ]
>>301
クルマでも、オートマの方がいいだろって人もいれば、マニュアル車じゃないとダメって人もいるんだよ。

305 名前:296 mailto:sage [2008/04/24(木) 10:52:11 ]
>>302
計算処理をさせるんですけど、Cとかってズラズラと手順を長々と書いてて
面倒じゃないですか?

>>303
Cに戻って感想はいかがでしょうか?やっぱり面倒じゃないでしょうか?

>>304
マニュアル車はどんどん減ってきてますよね。コンピュータ言語も同じような
道を辿るべきじゃないかと思います。



306 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 10:56:27 ]
爆釣ですね。





307 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 11:06:50 ]
>>305
手続き型は、面倒だね。
(setf x 10) とか、式一つ書くだけでそれで終えられる
関数型に比べると、変数の宣言とか
パラメータの型指定とか
{}みたいなブレースとか戻り値とか。
指定するのは面倒くさいw

でも大半のLL言語及びLispなどの言語は
Cで実装されてるので学習中w

308 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 11:08:09 ]
>>305
> コンピュータ言語も同じような道を辿るべきじゃないかと思います。
べきっていうか、現に辿ってるよ。
関数型は残念ながら未だマイナーだけど、いわゆるLLが元気なのは、そういう流れなわけで。

ただ、実行速度を要求される場面というのは、君が思っているほど少なくないし、
従って、一部のエキスパートが何とかすればいい、と言い切るところまでは、少なくともまだ行ってない。
たとえばゲームは、遥か未来ならともかく、しばらくは「その時代のマシンの最高のパフォーマンス」を
引き出すことと戦わなくちゃならないだろうし、
一般人に広く使われるようなGUIアプリの挙動も、「待ち時間をどこまでもゼロに近づける」ことを
あっけらかんと要求される以上、言語の実行速度の問題からはしばらく離れられないだろう。

309 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 11:11:38 ]
>>307
最初の例、変じゃない? 手続き型でも、動的型付け言語なら x = 10; 的な記述で済むでしょ。
あとLLの後ろに「言語」は付けないほうが。

310 名前:296 mailto:sage [2008/04/24(木) 11:31:36 ]
>>307
やはり、Lisp自体の実装レベルになると、Cなどが登場するって
ことですよね。コンパイラレベルというか。そこまでやる気には
ならないんですよ。

>>308
確かにゲームはそうですけど、一般のゲームプログラマってそれを
構成する基本部品のようなものまで自力で実装してるんでしょうか?
その辺のライブラリはやはり一部の人たちの手によって作られる
べきな気がしますが。

例えば、JavaなんかもVMが間に入って解釈するようなことやって
ますけど、広く使われてますよね。実際にCなんかよりずっと遅い
って言われてますし。関数型言語が遅いから広まらないっていう
理由がよく分かりません。Javaよりも遅いってことなんでしょうか?

311 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 11:35:21 ]
>>309
確かにおかしいかも。
(defmacro)をつかったマクロのほうがよかったのかな。
L言語とすべきでした orz

>>310
pythonだとstructモジュール使って
キャストを行わせるとか、Cライクな書き方があったり、
またPython.hを使ってC内部にPythonのlistとかが使えるようになるとか
そういうことが書かれてて、分からないとかなりまずいなあと思ったので、
何となく学習を始めてみた。

312 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 11:55:48 ]
>>310
> 確かにゲームはそうですけど、一般のゲームプログラマって〜
俺がゲームの話をしたのは、「最高のパフォーマンスを引き出すことと戦わなくちゃならない世界」
の例としてなんだから、高い速度が出るよう組まれたライブラリを、高い速度の出る言語から
呼び出さなきゃいけない状況のことを言ってるのはわかるでしょ?
基本部品も、基本部品を使う箇所も、どこも速度で妥協できない、そんな世界ではCやC++の出番になる、
そしてそれは一部のエキスパートの世界というわけではない、という話をしてるんだよ。
「その辺のライブラリはやはり一部の人たちの手によって作られるべきな気がしますが」
って、ライブラリが一部の凄腕の手で高性能を叩き出すよう書かれるべきなのは、関数型言語も同じだってばw

> 関数型言語が遅いから広まらないっていう理由がよく分かりません。
俺が書いてきたのはCやC++の存在理由であって、関数型言語が広まらない理由ではないから、
言ってないことをわかられても困るという意味で、わからなくて正解。
ちなみに、俺が趣味100%で長年ちまちま作ってるマイLispは、C++で書かれてるんだけど、
整数をインクリメントするだけの単純なコードで比較すると、Javaよりは遅いけど、Perlよりは倍くらい速い。
俺程度の人間の実装でこれだから、Lispはそんなに遅い言語ではないね。どうも世間には偏見があるけど。

313 名前:296 mailto:sage [2008/04/24(木) 12:06:10 ]
>>311
なるほど、だけどPythonにポインタみたいなものが登場する
わけではないんですよね?Cで一番気になるのが、ある変数
の中身が一体どうなってんのか分からなくなることなのです。

>>312
ゲーム業界では、末端のプログラマでもCとかで書いちゃって
るんですか。自分はもっとツールみたいなものを操作している
だけなのかと思ってました。凄いというか、大丈夫なんでしょうかね、
そんな末端のプログラマにまかせちゃって。尊敬できます。

Javaより遅いってなると、今のプログラム業界ではいまいち
使い道無いんですかね。そのMyLispはスクリプト言語ですか?
コンパイラ作って最適化してもダメなんですかね。

314 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:10:56 ]
>>313
> Javaより遅いってなると、今のプログラム業界ではいまいち使い道無いんですかね。
なんでそうなるの?

ところで君、関数型言語の初心者で、CとC++については、今回いじる以前は未経験だったんだよね?
つまり、どの言語をどのくらい経験してる人なん?

315 名前:311 mailto:sage [2008/04/24(木) 12:11:55 ]
Cで書くといっても、ライブラリ全く使わないなんてことはあり得ないから、
よほどコマンドラインに特化したアプリ(viやらwcやら)じゃなければ
見た感じPythonと変わらないよ。



316 名前:296 mailto:sage [2008/04/24(木) 12:17:07 ]
>>314
SchemeとHaskellを勉強中です。その他は概要をちょっと
聞いたことがあるぐらいですね。

今のところ、関数型がマイナなのは速度の問題だ、と仰って
いたと思うので、率直な疑問を書いただけです。

317 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:17:16 ]
>>313
ちなみにCommon Lispは大抵の処理系がネイティブ吐けるし、
速度が出るように書かれたコードをコンパイルすれば、Javaよりずっと速いよ。
C/C++よりは遅いけど。

ただし、そこまで速度を重視したCommon Lispコードというのは、
関数型言語特有の書きやすさとか美しさとかからは、いー感じに離れてしまっている。

318 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:23:40 ]
>>316
>>308で「いわゆるLLが元気」って書いた。LLがJavaより遅いことには、>>312でPerlの例を出してる。
なのになんで
> Javaより遅いってなると、今のプログラム業界ではいまいち使い道無いんですかね。
になっちゃうの? って話。

> 今のところ、関数型がマイナなのは速度の問題だ、と仰っていたと思うので、
いや、>>312で「俺が書いてきたのはCやC++の存在理由であって、関数型言語が広まらない理由ではない」
って書いてるのに、なんで次の>>313で「関数型がマイナなのは速度の問題だ、と仰っていた」前提の
レスを書くんだよ?
せめて人が書いたことは踏まえてくれよ。

> SchemeとHaskellを勉強中です。その他は概要をちょっと
つまり、まだ何かソフトウェアを「作り上げた」経験は無い、ってこと?

319 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:32:42 ]
>>296
おもしろく読ませてもらったお礼に、関係ない話を書きます。
ある中堅企業が、Workstationを入れて、C/C++でシステムを
開発していました。それを見習った傘下の企業が同じシステムを
入れてLispではるかに気の利いたアプリを量産しました。
中小企業ってすばらしいですね。それとも、この企業には
4GBのメモリーは不要で512MBのWindowsXPにするべき
だと思いますか。



320 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:42:25 ]
>>301
 用途に応じて使用言語を変えるのが正解。HDDのデフラグやりたきゃCやC++、AIならLisp。

>>305
 CやC++で手順をずらずら書くのは面倒なんだが、クソなアルゴリズムでも意外に速いことが
多い。

>>310
 LispはCよりも古くからあるから、LispでLispを実装することもできるはず。
 JavaのGUIの立ち上がりなどは見るからにもさーりだが、単純なことを反復させるのに
Javaはそう遅くない。

321 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:42:45 ]
ジャパン語でおk

322 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:51:17 ]
Lispって言語というより式だから、
うまく言ってたらパスカルの計算機が発明されていた
時代に合ってもおかしくなかったような気がするわ

323 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:56:06 ]
演算も逆ポーランド記法みたいなもんだな
いかにも計算機にとって処理が得意そうなフォーマットなのに、何で遅いんだろ

324 名前:323 mailto:sage [2008/04/24(木) 12:59:05 ]
Lispが遅いっていう認識がそもそも誤り?教えてエライ人

325 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 13:01:52 ]
何とくらべて遅いのか、どういうコード・アルゴリズムで遅いのか
とか全く書いてないから意味が無い。



326 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 13:03:35 ]
>>324
Lispで実装されたLispは遅い。
Cで実装されたLispは実行速度はC並みに早い。

モノによるんじゃないか?
SBCLとかCLISPとか色々あるから。

327 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 13:17:18 ]
「一般のプログラマ」ってのが何を指しているのか分からないけど、
一般にはソフトウェアってのは工業製品もしくはその部品だ。
よって、その立場に開発環境も縛られることが多い。

家電や組み込み機器のソフトウェアを、C+アセンブラで書けばメモリ16MB・
200MHzのCPUでいけるけど、Javaで書けばメモリ64MB・300MHzのCPUが必要、
そのために1台あたりの製造コストは1200円上がる。3年で100万セット製造
するので、12億円のコスト増。

なんてときに、ソフトウェアの開発のしやすさの都合なんかが顧みられる
ことは、ほぼありえないよ。それによってOEM受注のコンペに負ける
かもしれないしね。

328 名前:296 mailto:sage [2008/04/24(木) 13:20:24 ]
>>318
CやC++が存在しているのはパフォーマンスがよいからですよね。
だけど、コンパイラや必要部分だけの実装で使うだけでよいならば、
その他の領域では不要だということですね。

つまり、CやC++は通常のアプリ作成には基本的に不要だという
ことでしょうか。自分はああいうものが一般プログラマの使用言語
として蔓延ってる状況が全く理解不能なのです。関数型言語の
ほうが遥に労力が減るし、間違いも起きにくいと思うんですよね。

ちなみに自分は小さな練習程度のアプリぐらいしか組んだことは
ありません。大きなシステムみたいなものの開発は未体験です。

329 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 13:26:18 ]
Cが受け入れられたのは機械語を否定しなかったから
C++が受け入れられたのはCを否定しなかったから
使ったことないけど、Luaなどはそういう空気を読めている

で、問題は、C/C++を否定する言語が受け入れられるかどうかだと思う

330 名前:296 mailto:sage [2008/04/24(木) 13:26:50 ]
>>319
これは要するにメモリや計算速度が贅沢に使えるんだからLispでも
いいじゃないか?ってことでしょうか。

自分もそう思うんですよね。Javaも詳しくは知りませんが、登場したとき
同じようなことが言われていたそうですね。Cよりもずっと遅いけど、
マシンが早くなれば問題無いんだと。

CやC++なんかでちょっとくらい速度が早くなったって、関係無いアプリが
多いんじゃないかと思うんですが。だけど、関数型言語って何故かマイナ
だとされちゃってますね。凄く不思議ですよ。

331 名前:296 mailto:sage [2008/04/24(木) 13:36:31 ]
>>329
そこが理解できない。

何で人間が機械語を分からないといけないんでしょうか?そんなの
分からなくて当然でしょ。人間が何したいかを書けば、勝手に機械語に
変換できればいいわけで、それはコンパイラとかの役目ですよね。

コンパイラやOS作るんじゃないのにどうしてそんな低レベルなことを
知らないといかんのか?ってのが分からない。

332 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 14:00:18 ]
コンパイラ・OS・ゲーム・組み込み機器・・・と切り捨てていって、
最終的に何が残るのかな?
Webアプリも遅くてイライラすることが多いし

333 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 14:16:38 ]
296の疑問ってのは、機械に任せれば自動でできることを、なぜ人間がやるのか、
という一般的な疑問だよね。一次二次産業一般にあてはまる疑問。
これは哲学や社会科学の問題ではないだろうか。

・人間がやったほうが安いから。
・人間がやったほうが精度が高いから。
・機械に任せちゃうと人間の仕事を奪うから。というか、そもそも社会とは
効率を指向して成り立っているわけではないから。

とか。

334 名前:296 mailto:sage [2008/04/24(木) 14:25:39 ]
>>332
いや、無数の個別用途のアプリがあるじゃないですか。今ではそれは
Web系が多いのかも知れませんが。

>>333
面白い例えですね。仰る通りかも知れません。横で工業用ロボットが
バンバン処理している作業を、わざわざ間違いが出やすい手作業で
やってる気分、これがCやC++でポインタとかいじってコード書いてる
時の私の感覚ですよ。

335 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 14:27:32 ]
>>331
知らなくて良いと思うよ
Cを使う分野もあるし、使わない分野もある
でもまぁ、他が同等なら、より速いソフトウェアの方がより良いソフトウェアだろうな


Cがアプリケーション開発に「向かない」、というのは良いんじゃないかね
リッチー自身、Limbo作ってるし
でも誰もCを使わない日が来るかと言うと…
どう頑張っても低レベルな層は残るから、低レベル・高レベルどちらにも使える便利な言語はそうそう無くならないだろうな



336 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 14:40:45 ]
・実行速度は速ければ速いほどいい
・使用メモリは少なければ少ないほどいい
・プログラマの数は多ければ多いほどいいし、給料は安い方がいい
・過去のコードは可能な限り再利用したい
・何十年間蓄積してきたノウハウは、無駄にしたくない
・Cには30年以上実績があるのに対して、今流行りの言語はいつ
すたれるか分からんし、処理系実装の選択の余地が少ないリスクがある。
・CはどのCPUにも実装されるが、今時の高級言語は処理系自体の
ポータビリティに問題がある。

趣味のプログラマは、こんなことに縛られる理由がないのは確か。

337 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 14:43:58 ]
>>336
COBOLはもうすぐ50年

338 名前:296 mailto:sage [2008/04/24(木) 15:00:01 ]
>>336
いや、ですから工業機械がやってる作業を手作業でやる。
これも同じでしょ?過去の人々の経験的なノウハウを生かす
とかよりも、制限があるけど、機械入れちゃって限定した作業
を自動でやらせたほうがいいわけですよ。

プログラミングの仕事は効率上げて確実性を高めることが大事
ですよね。「俺たちCプログラマには代々続いてきた伝統的な
ノウハウがある」なんてこと言われても困るわけですよ。

339 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 15:17:40 ]
関数型は全く知らないけど、どの辺がよいの?
生産性という観点でも。
エンドプログラミングがCじゃなくなってpythonで効率的に作ったら問題あり?

340 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 15:22:46 ]
よくわからんけど、機械は自動で制御用のコード書いてくれるの?

341 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 15:24:18 ]
>>339
とりあえずクロージャが使えれば他はあまり気にしなくていいよ

342 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 15:37:15 ]
>>340
典型的な書生論を展開中の296に、そういう現実的な話は見えません。

てか、「機械に任せればいいじゃん」というのは関数型言語だって同じなんだが、
何故か「Cで書くものは機械にだってやらせられるが、関数型言語で書くものは人間にしか書けない」
という前提で話が展開してる不思議。

343 名前:296 mailto:sage [2008/04/24(木) 16:20:18 ]
>>339
Cと比較した場合、一番自分が感じたのは代入に対する考え方です。
関数の中で何度も中身が入れ替わる変数や、自分の関数の外側で
定義されている変数がこれまた中身がその時々で変る。

こんな状態でよく確実な計算結果を求めるプログラムを書けるもの
だなあって感心しますよ。自分は自信が無い。関数型だからそういう
代入が禁止されてるとは限りませんが、基本的に危険だと感じつつ
それを行うし、殆どの場合には不要なのです。

>>340>>342
具体的なコンピュータのメモリの状態とか考えながらプログラミング
するってのがクレイジーだと思うわけです。CPUとメモリがどうやって
連携して、効率よく計算するか。こんなのコンパイラが考えりゃ
いいでしょ、ってことなんですが。

344 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 16:45:48 ]
殆どの場合、って、いったいどれだけの場合を経験したんだろ。

345 名前:デフォルトの名無しさん [2008/04/24(木) 17:15:36 ]
専門学校に通う関係で、自宅でも学習がしたくプログラミングの環境を
整えたいのですが、不明な点がありますのでご教授お願いします。


Java言語とC++言語の両方を学びたいのですが、マイクロソフトの
「Visual Studio 2005 (アカデミーパック)」は両方の言語を学べる
みたいなのですが、本当ですか?
もしそうならアマゾンですぐに購入したいのですが。



346 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:27:48 ]
>何でこんなにあーでもない、こーでもない
>って書き方してるんでしょうかね。
>あと、一つの変数に何回も
>値を代入して、それによって関数の戻り値が変ったりするなど、
>すごく分かりにくいです。

そりゃコード書いた人の書き方の問題

>変数に値がbindされるだけではなく、アドレスを
>指し示している変数が存在する必要が分かりません。

実行時に動的に自分自身のコードを書き換える時
など使い道は多いよ。
JAVAやC#などのJITだって、ポインタの賜物。

347 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:29:28 ]
>>345
Amazonの商品説明読め。

348 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:33:35 ]
>>345
まずは、JDKとEclipseをインストール、無料。EclipseとJavaのインストール
や使い方が載った入門書を買ってくるといいよ。
Javaについては、マイクロソフトのツールは無視して。Javaとは似て非なる
物だし、MSはもうJava開発をサポートする気は全然なさそうだから。

で、とりあえずC++のほうはいったん忘れて、Javaの勉強して。
そして、C++に手を出すときは、覚えなきゃいけない言語の概念は
あんまりない(まあポインタとかSTLとか面食らう可能性はあるが)ので、
クラスライブラリの使い方中心に学ぶことになると思う。たぶん
MFC(Microsoft Foundation Class)なので、その場合はVC++のアカデミック
買えばいいけど、専門学校のカリキュラム確認してからのほうがいいよ。

349 名前:サイタマン ◆mYN3wsz7vE mailto:sage [2008/04/24(木) 17:40:05 ]
>キチガイさん

2chへの書き込み時に
hana=mogera
と言うパラメタを付けてpostしてますよ。


350 名前:サイタマン ◆mYN3wsz7vE mailto:sage [2008/04/24(木) 17:43:48 ]
C言語の理解とアプリ作成技術はなにも関係ないですよ。
自分はwebサーバーやpopサーバー、SMTPサーバーなどを作った事もあるのですが、
それが何か役に立つかと言うと、何も役に立たないです。

351 名前:デフォルトの名無しさん [2008/04/24(木) 17:44:29 ]
>>348
アドバイスありがとうございます。


Javaについては、
グーグル検索した結果エクリプスは無料で配布されているみたいですね。
学校側からJava関連の書籍を渡されましたので、それを見本に言語の
勉強をしたいとおもいます。


C++については、
実は、2chで質問を投稿する前にネットで検索して、ボーランドの無料の
コンパイラと、きときと様が開発したCpadを落としたんですよ。
でも、落としてインストはまでは実行できたのにコンパイルするとエラーが
でてしまい有料のソフトを購入したほうが無難だと思い購入に関する
質問をさせていただきました。
また、専門学校の方でJavaと平行してプログラミングの実習をしているので
今からC++のソフトを購入して復習していきたいと思うので、やはり
C++開発ソフトは購入しておきたいです。
C++の開発ソフトで何かお勧めあるのでしょうか?


以上です。
長文と汚い文章でごめんなさい。
本当に困っているので、お力おかしください。

352 名前:デフォルトの名無しさん [2008/04/24(木) 17:48:51 ]
>>324
最近Lispを勉強し始めた人は、インタプリタから入る事が多いようだから
Lisp = インタプリタ言語 = 遅い、と勘違いするのも無理はない。

初期のLispはコンパイラ研究分野でもトップレベルだった。
昔のSF映画「TRON」はLispマシンで作成されている。
その後PCの性能が向上したおかげで、インタプリタでも実用的
な時間で動かせるようになった。


353 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:55:17 ]
>>351
MFCは使ってる?使ってなくて、まだ言語の学習の段階だったら、
www.microsoft.com/japan/msdn/vstudio/express/feature/2008/
これで充分。無料。

354 名前:デフォルトの名無しさん [2008/04/24(木) 18:01:17 ]
>>353

おお!!
無料で学習環境が用意できるんですか?
助かります。
一人暮らしで、お金も無い状態で周りに教えてくれる人も
いなかったので、本当に助かりました!


アドバイスくれた方々、本当に助かりました。
頑張って勉強します!!

355 名前:サイタマン ◆mYN3wsz7vE mailto:sage [2008/04/24(木) 18:09:39 ]
C#のほうが、VB.netより簡単なのに
なんで、MSの説明でVB.netが入門者向けになってるんだろうか・・・
C系言語やってる人間からすると、VB.netは難しい。。。



356 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:16:23 ]
>C系言語やってる人間からすると
CやってるならMSの言う所の初心者じゃねーだろw

357 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:30:27 ]
逆もしかりだろ、VB人口は無視できない
というかC#とVB.NETは見てくれのわずかな違いなんだから、適当におぼえろよ。
概念が違うとか本質的違うとかそんなのないだろ

358 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 19:09:54 ]
>>341>>343
>自分の関数の外側で定義されている変数がこれまた中身がその時々で変る。
クロージャってそう言うものじゃないの?

359 名前:キチガイ ◆Z4QrFDzwrY mailto:sage [2008/04/24(木) 19:28:55 ]
>>355
VBもC#も.Net Frameworkなんだから似たようなもんだ
同じC++でも、C++.net2005とC++.net2008ではマネージドとC++/CLIって違いがある
つーか、たかだか言語なんてよほど古いものや変わったものでなければ
言語習得と同時進行で開発できる
俺はある会社が作ったVBライクな言語を仕事で使ってる
マイナー言語すぎて書籍とかあるわけねーですよ
小さい会社なんで1つ1つの開発に時間かけてらんないからね

360 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 19:41:01 ]
>>358
関数の外側の変数を参照できるだけでもいい。代入できるかどうかは別問題。

361 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:25:17 ]
>>359
おいおい、自信満々で嘘教えちゃいかんぞ

vs2002 vs2003 ・・・ C++マネージ拡張
vs2005 vs2008 ・・・ C++/CLI

とりあえず、どっちも使った事がないという事は理解した。知らない事は書くな。

362 名前:キチガイ ◆Z4QrFDzwrY mailto:sage [2008/04/24(木) 20:56:18 ]
考えてみれば2005はないが、2003なら使ったことがある
マネージドなのに変数宣言で*つけてなくてコンパイルエラー出してたさ
C++もしばらく使ってなくて勘違いした

363 名前:サイタマン ◆mYN3wsz7vE mailto:sage [2008/04/24(木) 21:47:13 ]
>>359
やっぱり、作りながら勉強するのがいいんですかね・・・
自分の場合、めんどくさがり屋なので、
とりあえず一番Perlに慣れてるし、記述量も少ないし
クライアントアプリも
Webアプリケーションもリファレンスやモジュールの量が多くて、
手っ取り早く適当な物を直感的に作れれるのでPerl使ってるんですが、

突き詰めていくと、かっこいいデザインのGUI作るにはC#のほうがいいし、
HTML埋め込めて使えてDWのようなデザイン一体型IDEが揃ってるPHPのほうが
かっこいいデザイン作れるし、
スピード重視だとC++がいいし、

でも、少しの事で言語変えるのは面倒だし、結局Perlでいいやみたいな考えになっちゃいます。







364 名前:サイタマン ◆mYN3wsz7vE mailto:sage [2008/04/24(木) 21:53:22 ]
JavaもPerlに似て八方美人と言うか、
とりあえず、何をするにも困らないですけど、
突き詰めていくと中途半端というか・・・

365 名前:サイタマン ◆mYN3wsz7vE mailto:sage [2008/04/24(木) 21:59:30 ]
開発効率
Perl>>Java
保守性
Java>>Perl
小規模開発
Perl>>Java
大規模開発
Java>>Perl
みたいな。。。






366 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:11:30 ]
一つの言語をきわめてしまうぐらい好きなら、
それでかまわないと思ってる。

367 名前:キチガイ ◆Z4QrFDzwrY mailto:sage [2008/04/24(木) 22:18:13 ]
うるせえよ
サイタマンはJavaに貼り付けにされましたっていうか、
サイタマンはPerlを採用しましたって見えるな
Hって呼んでやろうか
Perlなら俺も少しの間だが使っていた時期があるが
CP932ってなんだよUTF-8対応しろよ、とかで使いにくいんだよ
Perlはもうメジャーな言語じゃないだろが
もう2度とPerlを使うことは無い






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef