トップページ⇒tech
1001コメント301KB

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2008/05/16(金) 21:38:29
これからプログラミングを始める初心者の人に言語を薦めるスッドレ

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

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

Part8 http://pc11.2ch.net/test/read.cgi/tech/1208186034/
Part7 http://pc11.2ch.net/test/read.cgi/tech/1200807067/
Part6 http://pc11.2ch.net/test/read.cgi/tech/1193132235/
Part5 http://pc11.2ch.net/test/read.cgi/tech/1187886538/
Part4 http://pc11.2ch.net/test/read.cgi/tech/1177285633/
Part3 http://pc11.2ch.net/test/read.cgi/tech/1152778344/
Part2 http://pc8.2ch.net/test/read.cgi/tech/1122205164/
Part1 http://pc8.2ch.net/test/read.cgi/tech/1034505166/
08938902008/07/07(月) 20:01:00
俺も関数型好きだけどこればっかりは仕方ないと思ってる。
まあ今アセンブラ>>Cって思ってる人は少ないようにまあ時代の流れかなって思ってる。
0894デフォルトの名無しさん2008/07/07(月) 20:03:43
>>892
まあOCaml使いとかは末尾再帰に異常にこだわるからアセンブラ使い向きかもよ。
関数型の中では実行速度速いし。
末尾再帰じゃないとなぜか安心できないんだよな。
0895デフォルトの名無しさん2008/07/07(月) 20:12:25
>>892
ちょっと話のレベルが違うんだけど、関数型とか論理型言語に入るひとは、
再帰が直感的というか、トレースせずに理解できるひらめきというか、
そんなものがある人はいとも簡単に習得してしまう。そこら辺に恵まれ
ない人は逆に大変苦労する。ということで >>859 が書いたような意味で
再帰をできれば高等学校くらいで叩き込んでくれることを期待している。
0896デフォルトの名無しさん2008/07/07(月) 20:13:58
オナニーは布団の中でやれ
0897デフォルトの名無しさん2008/07/07(月) 20:14:55
再帰ってどんなケースで使うんだろ・・・
0898デフォルトの名無しさん2008/07/07(月) 20:17:36
>>897
データが再帰的構造を持ってるとき使うのでは。
0899デフォルトの名無しさん2008/07/07(月) 20:21:07
どんなケースでも再帰を使うのが関数型言語
09008342008/07/07(月) 20:27:29
亀レスすいません。
とりあえずパワポで時刻表示してVBSを使ってみます。
指南してくださった方、ありがとうございました。
0901デフォルトの名無しさん2008/07/07(月) 20:42:00
>>897
マインスイーパーみたいなのを作るときに、
「このマスがOKならまわりのマスをチェックする」
みたいな、単純には順番が決められないループ処理をしたい場合。

やったことないけど。
0902デフォルトの名無しさん2008/07/07(月) 20:45:04
>>889
Haskellってやつのほうが純粋らしいんでこれやってみます
ありがとうございました
0903デフォルトの名無しさん2008/07/07(月) 20:57:40
純粋ねぇ。そんなことで初心者が選んでいいものかどうか。
0904デフォルトの名無しさん2008/07/07(月) 21:12:00
穢れてる
0905デフォルトの名無しさん2008/07/07(月) 21:36:09
>>901
マリンスイーパー単純にJavaScriptで組んだら再帰深過ぎでエラー出たことあるよ

メニュー階層処理とか再帰で済む規模ならコードも少なく済むんだけどねぇ
0906デフォルトの名無しさん2008/07/07(月) 22:15:01
>>897
このまえVB.NETで、フォームのテキストボックスやらチェックボックスの状態を調べるのに使った。
フォームにグループやらパネルやらがはってると再帰的な構造になる。
0907デフォルトの名無しさん2008/07/07(月) 22:37:10
>>892
高度な最適化すると自動インライン展開ってのもあるよ
Cで言えば関数ポインタで評価されない事がわかってるstaticな関数はインライン化できる可能性があるな
JITありの環境なら定数伝播で副作用が無い事も評価できれば、関数の呼び出し自体が定数化できる
というかJavaVMはこの位やってるんじゃなかったか?
0908デフォルトの名無しさん2008/07/07(月) 22:55:08
まあ末尾再帰以外の再帰は真の再帰じゃないから。
0909デフォルトの名無しさん2008/07/08(火) 00:35:45
なんだか濃ゆ〜い話題だな。
0910デフォルトの名無しさん2008/07/08(火) 01:31:13
>>908
あれ逆じゃないの?kwsk

真の再帰って、クイックソートやハノイの塔みたいな
スタックなしで末尾再帰(ループ)で書くのが大変そう
なやつのこと?
0911デフォルトの名無しさん2008/07/08(火) 01:56:55
真の再帰はCでもできるな
ループなのかgotoなのか真の再帰なのか、わけがわからなくなるのが気持ちいいらしいぞ
0912デフォルトの名無しさん2008/07/08(火) 07:26:59
>>910
まあ「真の」はネタだ。気にせんでくれ。。。
09138592008/07/08(火) 07:51:59
ちょっと一部誤解もあったようなのですが、自分が再起とポインタが
重要だと言ったのは、初心者はその世界の目標と現実について
まず知る必要があるんじゃないか、と思うからです。

プログラミングでの目標というのは、より「宣言的」になることであって、
これは究極的には数学的な式の集合になる。

一方現実はどうか、と言えば、限られたリソースの具体的な計算機へ
コマンドを発行し、リソースを効率的に使うことが求められる。

再起とポインタというのは、この両極を象徴する重要なポイントだと
思うんですね。逆に、これがきちんと分かっていれば、どんな言語
でも美しく効率的なコードを書く手がかりを得ると思います。
0914デフォルトの名無しさん2008/07/08(火) 07:53:09
お前はまずスレタイを16777216回読むべき
0915デフォルトの名無しさん2008/07/08(火) 08:44:47
>>903
初心者オススメの関数型指南してくれ
0916デフォルトの名無しさん2008/07/08(火) 08:52:45
>>915
Erlang
0917デフォルトの名無しさん2008/07/08(火) 11:25:55
>>915
Scheme
0918デフォルトの名無しさん2008/07/08(火) 11:57:52
>>915
手続き型->宣言型というトレンドに乗ったのがScala
クアッドコア時代に対応して独走するのがErlang
0919デフォルトの名無しさん2008/07/08(火) 13:37:27
>>915
Haskell
0920デフォルトの名無しさん2008/07/08(火) 14:04:09
しね
0921デフォルトの名無しさん2008/07/08(火) 14:24:14
いつまで再帰の話をここでやるつもりなんだ。別スレ立ててやれ、このヴォケ
0922デフォルトの名無しさん2008/07/08(火) 14:25:22
>>915
Lisp
0923デフォルトの名無しさん2008/07/08(火) 14:26:36
スレが溢れるまで繰り返すんじゃないの?
0924デフォルトの名無しさん2008/07/08(火) 17:16:50
ポインタ:機械に好都合な概念
再起:人間に好都合な概念
ってこと?
0925デフォルトの名無しさん2008/07/08(火) 17:42:11
別にポインタは機械に好都合な概念でもないだろ
0926デフォルトの名無しさん2008/07/08(火) 17:46:22
自己破産、民事再生とかが再起だろ
0927デフォルトの名無しさん2008/07/08(火) 18:57:22
それは違う意味で泣けてくる・・・
0928デフォルトの名無しさん2008/07/08(火) 19:59:05
>>915
マジレスすると、OCaml。
0929デフォルトの名無しさん2008/07/08(火) 20:23:01
>>900
VBS??
0930デフォルトの名無しさん2008/07/08(火) 21:42:35
C++ってむずいらしいけどCは?
0931デフォルトの名無しさん2008/07/08(火) 22:33:52
むずいとか言われても、実際に触ってみろとしか言えね。
覚える事はCの方が少ないけど、簡単かって言われると用途次第だから微妙。
使いこなすために覚えるべき内容はC++の方が多いけど、
ならCが簡単かというと――オブジェクト指向(OO)慣れしてる奴は困ったりするだろね。

Cで無理矢理OOも可能。だけど考慮すべき事が多過ぎるので、煩雑なライブラリに頼らざるを得ないのが実情だね。
CでOOやりたければgnomeのGObjectやAppleのCore Foundation
みたいな、ライブラリの助けを借りるとなんとかなるケースはあるけどね。
Apple嫌いだけどDarwinのCFは悪くない。でもお勧めはGObjectかな。
CoreFoundationは情報少ないので、ソース追える奴にだけ勧めとく。
0932デフォルトの名無しさん2008/07/08(火) 22:42:24
>>930
かなり簡素な言語。ただ、簡素が簡単かと言われると自信がない
少なくともC++よりは覚えることが少ない
0933デフォルトの名無しさん2008/07/08(火) 22:42:45
そしたらC++コンパイラでCやれよ
0934デフォルトの名無しさん2008/07/08(火) 22:45:25
初めてすぐ「Cって難しいよねポインタとか特に」
1冊終えて「C?あぁ、ちょっと勉強すれば使えるようになるよ」
何か作って「C言語とか余裕でしょ。Cが出来ないようじゃ(ry」
いろいろ作って「Cが簡単とかって言ってる奴は素人」

こんな感じじゃないか
0935デフォルトの名無しさん2008/07/08(火) 22:46:23
Cは簡単だ。まずはC完璧にしろ。絶対損しない。
0936デフォルトの名無しさん2008/07/08(火) 22:46:57
Cだけやるのは良くない。 STLのほうが簡単
0937デフォルトの名無しさん2008/07/08(火) 22:52:17
それは無意味な比較
C++をやらないとSTLには手を付けられないのだから

もし次にC++に進むにしても、935が言うようにCを一通りやっといて損はない
JavaやC#に進む道も出てくる
0938デフォルトの名無しさん2008/07/08(火) 22:59:38
C++より以前から、STLは開発されていて、STLの機能を実現する為に
C++は作られたのでは? テンプレートやクラスを知らなくてもSTLは使えるし
動的確保、文字列操作は、Cのやり方を勉強する意味ないと思う
0939デフォルトの名無しさん2008/07/08(火) 23:06:03
オブジェクト指向な言語に慣れた後でも、C言語やっとくべき?
なんかプログラムの設計で混乱しそう
0940デフォルトの名無しさん2008/07/08(火) 23:10:54
あ、それはやっとくべき。
0941デフォルトの名無しさん2008/07/08(火) 23:17:12
C++は現行のと0xとで混乱しないの?
0942デフォルトの名無しさん2008/07/08(火) 23:17:24
>>938
わざわざC++の標準として制定されたライブラリを、
C++と切り離して考える発想がなかった。・・・・・アリ、なのか
0943デフォルトの名無しさん2008/07/08(火) 23:26:23
歴史
STLのアーキテクチャの多くはアレクサンドル・ステパノフという一人の人物の手によって作られた。
1979年に彼はジェネリックプログラミングの初期アイデアを練り始め、そしてソフトウェア開発に革命をもたらす可能性を探究し始めた。

Standard Template Library - Wikipedia
0944デフォルトの名無しさん2008/07/08(火) 23:33:36
ステパノフはジェネリックプログラミングの大きな可能性に気づき、
ゼネラル・エレクトリックのR&D部門の仲間たちに対し、ジェネリックプログラミングが
ソフトウェア開発の広範囲に渡る基礎として研究されるべきだということを説得した。
当時はジェネリックプログラミングを実際にサポートしているプログラミング言語がまだなかった。

初めはAT&Tベル研究所で、後にはヒューレット・パッカード(HP)研究所で、ステパノフはC言語で
(後にC++で)数多くのアーキテクチャとアルゴリズムの実装法を検証した。
マッサーは共同で研究し、さらに1992年にはメン・リー(Meng Lee)がHPのステパノフのプロジェクトに
加入して主要な貢献者の一人となった。

ベル研究所のアンドリュー・コーニグ(Andrew Koenig)がこの動きを察知して、
1993年11月のANSI/ISOのC++標準化委員会にアイデアを提出するように求めるようなことが
もしなければ、この作業は間違いなく、さしあたっては研究プロジェクトとして、
あるいはHPのプロプライエタリなライブラリとして継続されたであろう。
提案は委員会で全面的に賛同を得て、すぐさま1994年3月のミーティングでの
コーニグからの正式なリクエストへとつながった。非常に厳しいスケジュールであったが、
ステパノフとリーはミーティングに先だって事前承認されたドラフト案を提出できた。

委員会は変更と拡張(主要な点を含む)を数点要求し、詳細を詰めるために
委員会の小さなグループがステパノフやリーと打ち合わせた。
特に重要な(コンテナに関する)拡張について、それらを全て実装することにより
一貫性があることを証明することが要求され、ステパノフはマッサーにこの作業を任せた。
この時点で事業全体がコントロール不能になり暴走する可能性が高まっていたが、
ステパノフとリーは果敢に立ち向かい、1994年7月のANSI/ISO委員会で
最終承認を得ることになる提案を提出した。


Standard Template Library - Wikipediaの抜粋
0945デフォルトの名無しさん2008/07/08(火) 23:57:05
wikipediaって信用ならんのだけど、この記事についてはどうなん
0946英語2008/07/09(水) 00:09:15
初心者向けのこのスレがぜんぜん理解できない自分ですが、
皆さんに質問があります。

い 下記の芸能人の名前をイニシャルから検索できるサイトはどの
プログラムを使用してるのでしょうか? 
http://eclips.whoa.jp/ini/index.html
ろ このサイトの製作の難易度はどのくらいでしょうか?
は 書店でPHPとSQLの組み合わせの参考書を見かけますがそれらを
勉強したら作れますか? 

自分は最近始めてのホームページ(http://15000.web.fc2.com/)を作ったばっかりでHTMLすら満足に
かけませんが、動的なものも作れたらいいかなって思っています。

よろしくお願いします。
0947デフォルトの名無しさん2008/07/09(水) 00:41:02
>>945
その部分は、履歴を見ると日本語より少しはましな英語からの翻訳となっている。
まあでも基の英語記事も出典ないから信用できないな。
0948デフォルトの名無しさん2008/07/09(水) 01:33:35
い CGIなので言語は不明。Perlかもね〜
ろ プロなら簡単、初心者なら高難易度(プログラムの経験無しなら激ムズ)
は PHPとSQLで可能(この程度ならSQL不要PHPだけでできる)
0949デフォルトの名無しさん2008/07/09(水) 01:43:18
>>946
CGI、PHPの配布サイトから頂けばOK
0950英語2008/07/09(水) 02:09:09
>948
PHP、SQLでできることがわかりました。ありがとうございます。
それでも、プログラム経験無しなら激ムズですか。

PHPは初心者にも学びやすいと聞きましたがそれでも簡単ではないんですね。
独学が難しいのならLinuxAcademyとかで学んだ方がいいですね。明日説明の
予約を入れたので聞いてきます。
>949
OKとはどういう意味かわかりませんでした。
既成のプログラムを使用するという意味だったのでしょうか?
コメントありがとうございます。
0951デフォルトの名無しさん2008/07/09(水) 02:12:35
>>950
既存プログラムがあるからそれを説明に従って書き換えればOK
0952デフォルトの名無しさん2008/07/09(水) 09:38:14
自分が使っているコンパイラの確認方法ってどうするんですか?
ちなみにborland C++ Compileってのを使ってます

あと、コマンドプロンプトでgcc -vと入力すると、

Using built-in specs.
Target: i386-pc-mingw32
Configured with: ../trunk/configure --prefix=/mingw --enable-languages=c,fortran
--with-gmp=/home/coudert/local --disable-nls --with-ld=/mingw/bin/ld --with-as=
/mingw/bin/as --disable-werror --enable-bootstrap --enable-threads --host=i386-p
c-mingw32 --disable-shared --enable-libgomp
Thread model: win32
gcc version 4.3.0 20061021 (experimental)

と表示されるんですが、この中のgcc version 4.3.0 20061021 がバージョンを表してるんですか?
09539522008/07/09(水) 09:39:27
×コンパイラの確認方法
○コンパイラのバージョンの確認方法
0954デフォルトの名無しさん2008/07/09(水) 10:09:40
bcc -h だったか -? だったかで、コマンド一覧がでなかったかね
0955デフォルトの名無しさん2008/07/09(水) 10:25:28
ていうかbcc32は常時バージョンは表示されてたはず
0956デフォルトの名無しさん2008/07/09(水) 17:35:09
へ〜
0957デフォルトの名無しさん2008/07/09(水) 18:44:01
>>955
どこに表示されてるの?
0958デフォルトの名無しさん2008/07/09(水) 18:50:19
stderrだろ
0959デフォルトの名無しさん2008/07/09(水) 19:26:14
ファイルのプロパティでいんじゃないの?
0960デフォルトの名無しさん2008/07/09(水) 20:11:24
                ‖
           ___  ‖
       /    `ヽ‖
      ,:'      、ゑ
     ,'    ;  i  八、
     |,! 、 ,! |  ,' ,〃ヽ!;、
      |!| l川 l リへ'==二二ト、
     リ川 !| i′  ゙、    ', ',
     lルl ||,レ′   ヽ   ,ノ ,〉
       |川'、  ,,.,.r'"    ,,ン゙
        `T"  ! ,/ '.ノ,/|
         /   ,!´ !゙ヾ{ |
          /   ,'   i ゙ ! ,l゙
      ,r‐'ヽ-、!   ',  l|
      {    `ヽ   !  「゙フ
      ,>┬―/   ;  i,`{
     / /リ川'        ', ゙、
    / ,/            ゙、 ゙、
   ノ  /           ', `、
   \_/   ;          ゙、ヽ、
    l__   !        ___〕 ,、l
       ̄`‐┬―r┬‐r'´ `'‐'′
           |  .! |  |
           |  | .|  |
0961デフォルトの名無しさん2008/07/09(水) 22:24:36
それじゃC言語を基礎から勉強してみます
0962デフォルトの名無しさん2008/07/09(水) 23:07:47
Cは一通り勉強しました。

コンソールだけじゃなくてGUIのアプリを作りたいです。
例えば、wavファイルを再生しながら云々とかです


Cを使い、WINAPIを勉強
C++を勉強し、WINAPIも勉強
C#を勉強し・・

のどれが一番いいですかね?
0963デフォルトの名無しさん2008/07/09(水) 23:10:57
Cでいいんじゃね?
GUI作るんだったらC#の方が楽だけど…
0964デフォルトの名無しさん2008/07/09(水) 23:23:55
時間的な余裕があるならC++を勉強した方がいいんでね?
0965デフォルトの名無しさん2008/07/09(水) 23:26:58
>>963
Cでいいですかね?

>>964
C++はちょっとかじりました

C++ならではの機能 クラス オーバーロード STLとかはあんま使うつもりはないんです

wavファイルの処理をメインとしたプログラムを書くんで、wavの再生とかのほうを重視します
0966デフォルトの名無しさん2008/07/10(木) 00:08:05
んじゃCでいいでしょ。GUI作るのめんどくさいけど。
0967デフォルトの名無しさん2008/07/10(木) 00:10:55
じゃあCで頑張ります。
GUI作るのにいい書籍ありますか?
0968デフォルトの名無しさん2008/07/10(木) 00:23:33
CでGUIって、WinAPI直叩き?
0969デフォルトの名無しさん2008/07/10(木) 00:24:25
>>961=>>962のように見えてワロタ
0970デフォルトの名無しさん2008/07/10(木) 00:26:56
>>968
そうなりますよね
http://www.geocities.jp/ky_webid/win32c/index.html
とか見つけてよさそうだと思ったのでここ参考にしてみます
0971デフォルトの名無しさん2008/07/10(木) 04:50:17
趣味でやるならC/C++一択!
(C++のほうが便利だが結果的にはどっちでも同じことができるのでお好みで)

お勧めする理由:
ネイティブで速度が速い。
Cならプログラムが何をやっているのかを一番忠実にみれる。
できないことがなく、とにかくなんでもできる。
Windowsを理解するのに最も貢献する。
のちのアセンブリ操作や解析でCをやっておくと逆アせコードを読むときに理解しやすい。
他アプリに干渉/カスタマイズ/クラッキングするツールを一番作りやすい。
DirectX系、ゲーム/描写アプリはこれ一択。
低レベルに干渉したい、無駄な挙動が嫌いな実行速度命タイプの人間に向いている言語です。


#色々書いといてなんだけど、速度気にならないならC#やってください。コードもそっちのが綺麗なんで。
0972デフォルトの名無しさん2008/07/10(木) 05:30:00
C++勉強しようと思います
0973デフォルトの名無しさん2008/07/10(木) 07:55:06
C++でGUIならこれあるんじゃねーの?
wxWindows
wxWidgets
0974デフォルトの名無しさん2008/07/10(木) 09:25:21
それ使ってもたいしてかわんないっしょ
0975デフォルトの名無しさん2008/07/10(木) 09:37:51
初心者はやっぱCから入るのが無難
0976デフォルトの名無しさん2008/07/10(木) 09:41:10
ぶっちゃけC極めたら他の言語やる必要なくなってそのままCで一生を(ry
0977デフォルトの名無しさん2008/07/10(木) 11:31:46
まあ、極めりゃな
プログラミング適性があってCのセンスと糊言語思考があって
20歳前後から10年くらい趣味と業務両方で続けてればそれなりになんとかなるんじゃね
0978デフォルトの名無しさん2008/07/10(木) 11:45:27
なんだかんだ言って結局WindowsしかさわらなさそうだけどもWindowsAPI覚えるのは嫌
0979デフォルトの名無しさん2008/07/10(木) 11:50:25
使い方だけ覚えてコピペっしょ
0980デフォルトの名無しさん2008/07/10(木) 12:22:19
少なくともビルゲイツ皇帝様が生きてる間はWindows以外の選択肢ないだろうなぁ
0981デフォルトの名無しさん2008/07/10(木) 17:01:26
みんなめちゃくちゃプログラミングに詳しいっすね。仕事かなんかでプログラミング使ってるんですか?
ちなみに俺は工学系の大学の院生っす
0982デフォルトの名無しさん2008/07/10(木) 17:04:07
Fランクは黙ってろ
0983デフォルトの名無しさん2008/07/10(木) 18:23:55
俺は趣味でやってるだけかな専攻は神経生理学だしw
研究ツール用にC、自分ツール用にC#、Web鯖運用にphp、ゲーム鯖運用したときにpythonを仕方なく覚えた
0984デフォルトの名無しさん2008/07/10(木) 18:56:15
生物関係って、ruby, perl とかパイプ使って繋いでくのが得意な言語
使ってる印象があったんだけど、また分野がすこし違うんだな… > 神経生理学

bioruby とかゲノム解析で使われてるとか何とか
0985デフォルトの名無しさん2008/07/10(木) 19:23:26
>>983
趣味レベルでこんなに詳しいとは・・・
神経生理学とか難しそう><今は生物系もプログラム組んだりするらしいし役に立ちます?
0986デフォルトの名無しさん2008/07/10(木) 19:29:30
C言語を2日で攻略しました。
次に何をやったほうがいいでしょうか?
0987デフォルトの名無しさん2008/07/10(木) 19:31:41
C++を3日で攻略しろ
0988デフォルトの名無しさん2008/07/10(木) 20:06:28
私を1週間で攻略してみせて(ハート
0989デフォルトの名無しさん2008/07/10(木) 22:07:33
Cやったらその後はWindowsから離れてLinuxとかUnixとかに行くという選択肢もあるな。
そんでカーネルとかに興味を持つ。
C意外必要ないから(スクリプトにperlとかは使うが)そこで終了、みたいな。
もちろんGUIはgtkとかを使うからすべてがCで完結。C++や他の言語をやる必要性は結局見いだせなくなるだろう。。
0990デフォルトの名無しさん2008/07/10(木) 22:52:23
つかWindows以外どうせ使わないし
Linux万が一使ったところでWebから落としたソースコンパイルするくらいしかしなそう
0991デフォルトの名無しさん2008/07/11(金) 00:13:27
あまりにも無学
0992デフォルトの名無しさん2008/07/11(金) 00:38:31
初心者なんですが、まずはC言語を勉強するのがいいですか?
レス数が950を超えています。1000を超えると書き込みができなくなります。