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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/02/27(金) 08:53:41
これからプログラミングを始める初心者の人に言語を薦めるスッドレ

質問者の方へ
どのプログラミング言語を最初に覚えるべきかは
なぜプログラミングを始めたいのか、何を作りたいのかによってまったく変わってきます。
なんとなく、でもかまわないので動機、用途、使っている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

Part13 http://pc11.2ch.net/test/read.cgi/tech/1232286278/
Part12 http://pc11.2ch.net/test/read.cgi/tech/1226761546/
Part11 http://pc11.2ch.net/test/read.cgi/tech/1218282605/
Part10 http://pc11.2ch.net/test/read.cgi/tech/1215717670/
Part9 http://pc11.2ch.net/test/read.cgi/tech/1210941509/
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/

※雑談はプログラマ板でやりましょう。
0202デフォルトの名無しさん2009/03/09(月) 16:48:55
>>198
C#は初心者までで38万人もいないかな?
0203デフォルトの名無しさん2009/03/09(月) 16:52:23
>>196
.NET4.0で入るよ
0204デフォルトの名無しさん2009/03/09(月) 17:02:26
Windows7に搭載されるのは.NET3.5.1(3.5SP1)だから当分は先
でも既に.NET3.5.1はXPやVista向けに自動更新で配布が始まってるから、.NET4.0も普及は早いかもしれない
0205デフォルトの名無しさん2009/03/09(月) 17:22:07
>>203
DLRが入るってだけじゃなくて?
0206デフォルトの名無しさん2009/03/09(月) 18:59:00
>>168
漠然とプログラミングしてみようと思ってるだけなら、
Windows なら C#、そうでなければJavaでいいんじゃない?
0207デフォルトの名無しさん2009/03/09(月) 22:09:21
>>161
どっちも似たようなことをしてるはずなのに、
どうしてそんなに差が出るんだ。技術力?
0208デフォルトの名無しさん2009/03/10(火) 01:18:52
>>207
似たようなことをしていないからだ
0209デフォルトの名無しさん2009/03/10(火) 01:21:57
Javaっていうと、携帯のアプリを思い浮かべるんだが、.net系で携帯用アプリって作れるの?
0210デフォルトの名無しさん2009/03/10(火) 01:32:15
作れるよ。
0211デフォルトの名無しさん2009/03/10(火) 02:36:14
>>207
OS握っているからある意味インチキできる。
0212デフォルトの名無しさん2009/03/10(火) 08:57:07
>>187
初心者にとっては、
ML は難しすぎる。
Haskell はコミュニティが悪すぎる。議論が難しすぎる。
Scheme はプログラムが読みにくい。
0213デフォルトの名無しさん2009/03/10(火) 20:25:33
>>208
じゃあJavaがC#を真似ればいいのに。

>>211
C#のランタイムが秘密APIをコールしてるとかそういう話?
0214デフォルトの名無しさん2009/03/10(火) 21:18:58
単純に言語仕様とJITコンパイラの設計の差だよ。
JavaがいまさらC#を真似るなんて無理。後方互換性を失ってしまう。
0215デフォルトの名無しさん2009/03/10(火) 21:31:41
>>214
言語仕様にそんな差があったっけ?
似たようなものだとおもうけど。
0216デフォルトの名無しさん2009/03/10(火) 21:39:45
コンパイラの性能に影響を及ぼすような言語使用の差があったっけ?という意味ね。
0217デフォルトの名無しさん2009/03/10(火) 21:45:42
>>215
どちらもネイティブコードを吐かない実行環境依存の言語だから、
文法だけを言語仕様と考えるのはナンセンスだと思うが。ランタイム含めての言語仕様と考えたほうが。
コードの見た目は似ていても、実行時の挙動は全然違うからね。CLRはかなり優秀。
0218デフォルトの名無しさん2009/03/10(火) 21:57:56
>>217
それって根性入れてJavaのランタイムとコンパイラを書き直せば
C#程度の速度は出るってことでしょ。だったら技術の差かねえ。
先行した分だけいろいろ捨てられないのは分かるが。
0219デフォルトの名無しさん2009/03/10(火) 22:01:57
>>218
.netってアプリのプロセスが終了してもフレームワークが居すわって、
コンパイル済みのオブジェクトをキャッシュしたままにするんじゃなかったっけ?
0220デフォルトの名無しさん2009/03/10(火) 22:05:21
それはjava
0221デフォルトの名無しさん2009/03/10(火) 22:12:02
まあ.netはOS作っているところが、かなり気合入れて自分のOS用に
作ったものだからね。最近は結構デスクトップでのjavaも頑張っている
みたいだけど。

しかし、やっぱり.netはxpでは若干もっさりするね。内部処理は
早いようだけど、結構パワーを使うGUI周りがもっさりしているみたい。
VISTAだとよくなっているのかな?
0222デフォルトの名無しさん2009/03/10(火) 22:18:37
>>219
じゃなかったっけ
C#のアプリの一回目の起動と二回目の起動じゃかかる時間が違うよね
0223デフォルトの名無しさん2009/03/10(火) 22:56:33
同じ映画を2回見ると、2回目が早く終わってしまうようなものか。
0224デフォルトの名無しさん2009/03/10(火) 23:15:43
一時的にディスクにネイティブイメージをキャッシュするだけで
javaと違って常駐したりはしないんじゃなかったっけ
0225デフォルトの名無しさん2009/03/10(火) 23:21:06
>>220
サーバープロセスと勘違いしてるだろ。
Javaのプロセスはそん行儀の悪いことはしない。
0226デフォルトの名無しさん2009/03/10(火) 23:36:09
>>221
XPではっていうか、単純にパソコンのスペックの問題じゃねーの?
0227デフォルトの名無しさん2009/03/11(水) 00:26:54
確かVISTAは、.netでの描画が改善されているって聞いたような。
でもまあ、確かにVISTA動くスペックなら、軽く感じるだろうね。
0228デフォルトの名無しさん2009/03/11(水) 04:28:06
右クリックメニューにリネームボタン追加する設定編集GUIと本体を作りたいんだけど
0229デフォルトの名無しさん2009/03/11(水) 08:15:23
ていうかOSが勝手にやってることを言語のせいにすんな
0230デフォルトの名無しさん2009/03/12(木) 07:43:34
素人ですが、将来的に社内で使う業務に特化した、Windows用アプリを
作りたいと思います。できあがったソフトを他のPCで使うときに、
ランタイムルーチンとかを入れる手間が少なく(簡単に導入できる)
できる言語はなんですか?
0231デフォルトの名無しさん2009/03/12(木) 07:54:17
>>230
Excel VBA
0232デフォルトの名無しさん2009/03/12(木) 08:04:29
>>230

ネイティブバイナリを吐ける処理系があるものなら何でもいい。

C, C++, Delphi, Haskell, Clean, Schemeなどなど。
0233デフォルトの名無しさん2009/03/12(木) 08:42:28
ドットネットを使うものは全部糞と覚えればいい。
0234デフォルトの名無しさん2009/03/12(木) 09:19:42
初心者のための、が初心者による、にいつのまにか変化してしまったようだ
0235デフォルトの名無しさん2009/03/12(木) 09:22:10
>>234
だよね。
0236デフォルトの名無しさん2009/03/12(木) 11:36:54
質問します。実は"Lisp Scheme Part25"スレに誤爆してしまったのですが、
あらためてこのスレで質問し直します。

組合せ問題、経路問題などの、記号処理問題をリストを使って解決するのに
相応しい言語を教えてください。
環境はできるだけ特定のOSに限定されない方が結構です。
グラフ表示は別の専門家が扱うのでロジック部分のみです。

0237デフォルトの名無しさん2009/03/12(木) 11:56:30
自分でリストを使って書かないといけないの?
グラフライブラリ使えば?

http://en.wikipedia.org/wiki/Graph_theory の一番最後辺りに列挙されてる。
ライブラリを先に選んだ方がいい。
boost::graph→QuickGraphみたいなポーティングもあるし。
0238デフォルトの名無しさん2009/03/12(木) 16:57:20
.netって糞なの?よく叩かれてるけど。
0239デフォルトの名無しさん2009/03/12(木) 19:22:36
クソじゃないけど初回起動がどうしても遅くなるから、
起動しっぱなしではないけどそこそこの頻度で使うような小物ツールには向かない
ngenやってもネイティブよりは遅くなっちゃう
0240デフォルトの名無しさん2009/03/13(金) 08:39:45
プログラミング言語同士を翻訳するソフトってある?
(CのコードをJavaに翻訳みたいな)
0241デフォルトの名無しさん2009/03/13(金) 09:12:04
>>240

GHCはHaskellのコードをCのコードに変換できる。
0242デフォルトの名無しさん2009/03/13(金) 09:24:19
>>240
P# はPrologをC#
0243デフォルトの名無しさん2009/03/13(金) 09:44:52
>>238
MSのイメージによるものが大きい。どうせネイティブで作ってもMFCやらwinapiやら使うくせにと思うけど。
あとネイティブだとマルチスレッド化されてないことが多いので、パフォーマンス云々は簡単に語れないんじゃないか?
重いと感じた.NETアプリなんてPaint.NETくらいだ
0244デフォルトの名無しさん2009/03/13(金) 14:44:56
cygwinでunixのコマンドを使えるようにしたいのですがどうすればいいんでしょうか?ググってもでてこないのでいいHPとか知っていたら教えてください。
0245デフォルトの名無しさん2009/03/13(金) 15:33:30
>>244
そのコマンドはインストールされてる?
pathは通ってる?
0246デフォルトの名無しさん2009/03/13(金) 15:34:06
cygwin入れたら使えるだろ
インストールの仕方もぐぐったらすぐにでてくる
お前の説明では何がわからないのかがさっぱりわからない
0247デフォルトの名無しさん2009/03/13(金) 20:30:00
>>244
おまいはもう使っている
0248デフォルトの名無しさん2009/03/13(金) 23:43:55
今年から大学1年生になるわけで、先んじてプログラミングを勉強しておきたいという者です。

まず初めにどの言語を学ぶべきかアドバイスが欲しいです。

ExcelVBAは高校の情報授業で極めて基礎的なことを学習済みです。
(簡単な演算、ループ処理など。発展としてモンテカルロ法などの問題解決法を少々。。。)
プログラミングで可能なことと言われて、ゲーム作成、数理問題の解決などしか思い浮かばないので、
目的といわれるとピンと来ないのですが、とりあえず簡単なゲーム作成が出来るのであればそれを目標に
やりたいと思っています。

環境については、現在はXP homeですが近いうちにVistaを1台新調する予定です。
Mac環境を整えるのは可能ですが、出来ればWindowsで学習したいと思っています。

出来れば易→難の流れで次に学ぶ言語まで見通しが立つと助かります。
0249デフォルトの名無しさん2009/03/13(金) 23:44:54
>>248
C#
02502482009/03/13(金) 23:55:43
>>249
VBは蛇足ですか?アプリケーション版と大差ないとは思うけれど。。。
0251デフォルトの名無しさん2009/03/14(土) 00:12:57
>>250
VBはもういらない。ついでにVB.NETもいらないと思う
目標は、とりあえずC/C++でいいかな

Windowsなら : C# → C → C++
PC-UNIXなら : Python → C → C++
0252デフォルトの名無しさん2009/03/14(土) 00:16:12
>>251
その流れだとCがものすごく異彩を放っている気がする。
C#からCとか、苦行だろ。
0253デフォルトの名無しさん2009/03/14(土) 00:18:06
>>250
C#なら今後他の言語に移る時あまり苦労しないはず。
色々な言語の要素がほどほどに入ってるから。

VB(.NET)とC#はよく似てるけど
VB系の構文にしがみつくのは時期的に損だと思う
02542482009/03/14(土) 00:27:52
議論までしてもらえるとはありがたい。いや、決して皮肉でなくw
C#の位置づけがよくわからないが、いろんなスレ見てるとC/C++との上下関係議論が
頻出してて、ウィキではC/C++の改良版となってるから、結局新しいけど優れているかは
各人の意見によるってことでおk?
VBはとりあえずやめます。
0255デフォルトの名無しさん2009/03/14(土) 00:29:44
どれか極めれば、あとは単語がちょっと違うだけの
英語・フランス語状態じゃないの?
0256デフォルトの名無しさん2009/03/14(土) 00:34:57
大学のサイトで興味ある授業の講義要綱でも見て
そこで使われてる言語でも勉強したらいいんじゃないか
0257デフォルトの名無しさん2009/03/14(土) 00:36:30
大学だと、初期C言語(アルゴのみのツマラン奴)をやらされるよな

多分、あれでみんなリタイヤして行くんだと思う
0258デフォルトの名無しさん2009/03/14(土) 00:48:42
>>257
そう言って、高校の勉強もリタイアしたから、そんなつまんない大学に行くはめになったんじゃないの?
02592482009/03/14(土) 00:52:02
たしかCとJavaをやると聞いた。
とりあえずC#やってみようと思うんだが、入門書1冊とりあえず買うべき?

0260デフォルトの名無しさん2009/03/14(土) 00:54:25
perl と php だけは止めとけ
0261デフォルトの名無しさん2009/03/14(土) 00:55:24
>>259
学校でCとJavaをやるなら、C#じゃなくてJavaでいいんじゃないの。
0262デフォルトの名無しさん2009/03/14(土) 01:00:20
>>259
C#でおk

1.入門
Amazon.co.jp: プログラムを作ろう! Microsoft Visual C♯2008 Express Edition 入門 (マイクロソフト公式解説書) (DVD付) (マイクロソフト公式解説書 Microsoft Visual Studi): 池谷 京子: 本
http://www.amazon.co.jp/dp/4891005831/

2.その後
Amazon.co.jp: C#クックブック 第3版: Jay Hilyard, Stephen Teilhet, 鈴木 幸敏: 本
http://www.amazon.co.jp/dp/4873113741/
02632482009/03/14(土) 01:03:04
>>261
鈍足授業ではないだろうけどあまり期待はしてないから、学校の授業は考えずに
とにかく他の言語への移行が楽だったり、取っ掛かりに適した言語がやりたいと思うです。
学校考慮しないとどうやらC#って意見が多いからそうしたいと思います。
0264デフォルトの名無しさん2009/03/14(土) 01:06:43
>>262
入門者にオライリーのクックブック勧めるとかお前中身読んだのかと
0265デフォルトの名無しさん2009/03/14(土) 01:09:16
>>264
だから「その後」と書いてあるだろうが。
0266デフォルトの名無しさん2009/03/14(土) 01:11:25
二冊の間の断絶が凄まじいなw
02672482009/03/14(土) 01:16:10
>>262
トンクス。なにやら賛否飛び交ってるがとりあえず1冊目やってみる。
0268デフォルトの名無しさん2009/03/14(土) 01:22:47
>>258
なんかさ、HITACHIの出向だか知らんけど
企業の人が来て教えてくれるんだ。

まぁテストは満点クレタからいいけどw
0269デフォルトの名無しさん2009/03/14(土) 01:24:05
>>267
なんだかんだ言っても工学というより職人の世界だからな。
人を育てるメソッドは未熟な感じ。
0270デフォルトの名無しさん2009/03/14(土) 01:29:59
>>252
Windowsなら : C# → C(ポインタ) → C++(苦行) →  ↓
PC-UNIXなら : Python → C(ポインタ) → C++(苦行) → そして悟りへ
02712482009/03/14(土) 01:36:08
やる気出てきた!明日からバリバリC#はじめます。
0272デフォルトの名無しさん2009/03/14(土) 01:53:16
ゲーム作成にはJAVA向いていないの?
0273デフォルトの名無しさん2009/03/14(土) 01:56:18
そんなことはない
0274デフォルトの名無しさん2009/03/14(土) 02:37:18
>>252
横からだけど、
C++やる為にはどうしてもポインタを避けて通れないし、
Cのメモリ管理・データ管理のルールを引き継ぐから
前知識としてCをやっとく必要があると思う。

ちなみに、初心者にポインタとアドレスを切り離して教えるのやめようぜ。
違うってのは言いたいことはわかるんだけど、データ的には実態同じじゃん。
あれ、別物として教えるからみんな混乱するんだよ。

# アドレスの概念ない奴にCのポインタは理解できねぇのに、
# 初心者はアドレスの概念なんかもってねぇ。


>>261
こちらも横からで悪いけど、学校でやる言語に関わらず、
指導員がつくならJavaの方が良いと思うのだけど、
中級者未満の人の独学だとC#の方が無難だと思う。

理由としては、初心者に一番大切な入力系のクラスの
使い方がC#の方が簡単だから。
CUIを作る時の面倒さはどちらも同じ程度に難しいけど、
GUIを作る時の敷居はC#の方が低い。

初心者、特に独学者にとっては「とにかく動かして試せる」
ってのは重要なポイントだから。


# ほんと、Java馬鹿だよな。
# OO原理主義なんかに走らずにデルファイのクロージャの機構でもパクっとけば、
# デスクトップでの普及もねらえたのに。
0275デフォルトの名無しさん2009/03/14(土) 02:42:59
もうだめかもわからんね
0276デフォルトの名無しさん2009/03/14(土) 02:46:48
動くものと動かないものに分けてください。
*++p = hoge;
*(++p) = hoge;
++*p = hoge;
++(*p) = hoge;
++p[0] = hoge;
(++p)[0] = hoge;
++(p[0]) = hoge;
0277デフォルトの名無しさん2009/03/14(土) 03:58:24
>>276
全部動きません。
0278デフォルトの名無しさん2009/03/14(土) 10:38:27
分からないって素直に言えないんですねw
0279デフォルトの名無しさん2009/03/14(土) 10:40:03
分からない
0280デフォルトの名無しさん2009/03/14(土) 10:44:50
>>274
そういう主張はよくみるが、
C++の一部としてポインタを学べばいいのであって
わざわざCに分離して学ぶことないんじゃないか?
0281デフォルトの名無しさん2009/03/14(土) 10:48:21
細かいところ違うし、わざわざCから始める必要ないよな。
Cから始めろと言う奴は、大抵C++03とC99の違うところ知らない。
0282デフォルトの名無しさん2009/03/14(土) 10:51:21
個人的な趣味でやるならC++だけでも問題ないだろうけど
そうでないならCとの互換性を保つための書き方も必要になるから
いずれCも勉強することになる。
0283デフォルトの名無しさん2009/03/14(土) 11:24:08
>>282
> そうでないならCとの互換性を保つための書き方も必要になるから

そりゃ環境によるだろ。
0284デフォルトの名無しさん2009/03/14(土) 12:08:12
趣味なら環境を選んだり変えたり出来るって意味かと
0285デフォルトの名無しさん2009/03/14(土) 13:05:25
仕事でも
> Cとの互換性を保つための書き方も必要になるから
なんてことは言えないだろ。
0286デフォルトの名無しさん2009/03/14(土) 13:20:41
>>255
ラテン系とゲルマン系の言語は違うだろう?
0287デフォルトの名無しさん2009/03/14(土) 13:24:20
インド・ヨーロッパ語族とかそういうレベルの話じゃ?
0288デフォルトの名無しさん2009/03/14(土) 16:30:15
ラテン系とゲルマン系は違うね
英語知ってたらフランス語はなせるようになるとは思えん
ドイチュ語でもかなり違うのに
0289デフォルトの名無しさん2009/03/14(土) 18:24:56
Windowsで未経験だけどとりあえず何かプログラミング勉強してみたいって人にはPowerShellを推す

シェルだから覚えたことの実用性/即効性に優れてる
シェルだけど豊富なオブジェクト・型を扱えて、かつ最初から意識する必要はない
制御構文がまとも(C言語系列風という意味で)で、演算子が便利
タブ補完が有効で、PowerGUI・PowerShell PlusなどIDEも存在する
0290デフォルトの名無しさん2009/03/14(土) 18:43:14
>>289
で、それどんなことが出来て、何が作れるの?

個人的には、そんなつまらないことから始めないで、C#でアプリやゲームでも作ってみればいいと思うよ
Linuxならシェルスクリプトもいいかもしれないが、今ならPythonあたりから始めることを勧めるよ
0291デフォルトの名無しさん2009/03/14(土) 18:45:13
あらゆる自動化ができます
デバッガ使いこなせるならツクール製ゲームの自動レベル上げとか
powershellじゃないけどWSH使ってやってました
0292デフォルトの名無しさん2009/03/14(土) 18:48:00
>>290
そういう目標がない人向けに言ったつもりなんだが・・・
0293デフォルトの名無しさん2009/03/14(土) 18:57:47
スクリプト言語を使って以前は手動でやってた作業を悉く自動化するのは
割と強烈なモチベになるから飽きの防止にはいいだろう
なにせ単にPCを使って何かするだけでプログラミングの目的ができるんだからな
0294デフォルトの名無しさん2009/03/14(土) 19:08:39
>>290

Powershellなら.NETのライブラリが使え、パイプラインでオブジェクトを渡せる。Linuxの
シェルスクリプトが良い選択肢ならば、Powershellは確実に良い選択肢だろう。
0295デフォルトの名無しさん2009/03/14(土) 20:26:03
ぶっちゃけそんなWindows限定のドメスティック言語より、
Iron Python, Iron Rubyをお勧めします。
PythonならGoogle Appあたりも書けるようになるし。
0296デフォルトの名無しさん2009/03/14(土) 20:30:39
おれも、Iron Pythonはいいと思う。
Powershellができることは、全部できるでしょ。
その上、その気になればSilverlightのアプリケーションだって書けるし。

Iron Rubyはまだちょっと初心者向けじゃないんじゃないかなあ。
0297デフォルトの名無しさん2009/03/14(土) 20:34:54
WindowsプログラミングならVisual C# Expressで決まりだろ。
コーディングもデバグも容易。

PowerShellで開発ってどうするつもり?メモ帳でコード書けって言うの?
初心者にそれをやらせると。

冗談はよしてくれ。
0298デフォルトの名無しさん2009/03/14(土) 20:51:21
開発なんて大それたものから始めなくても、2、3文字のコマンド実行するだけからはじめられる簡便さはシェルにしかないと思う
>>297
IDEはあるってば>>289
0299デフォルトの名無しさん2009/03/14(土) 20:54:53
初心者が継続するには、言語仕様の細かい優劣よりも
ライブラリや書籍の充実とかシェアが重要だと思う。
0300デフォルトの名無しさん2009/03/14(土) 22:04:00
>>297
初心者なら尚更スクリプト書くのにIDEなんていらないじゃん
エディタ+コマンドプロンプトで十分
スクリプト言語なんてPrintデバッグで足りるし
0301デフォルトの名無しさん2009/03/14(土) 22:05:31
やねうらお先生流二分法プリントスタブですね!
■ このスレッドは過去ログ倉庫に格納されています