* どの言語を学ぶべき? [#o7f2d040]

#contents

** 目的別で考えよう [#f46d3938]
どの言語を学ぶかは、「何をやりたいか」で考えると良いと思います。~
ゲームを作りたいとか、便利なツールを作りたいとか、そういう目標があれば楽しく学べるでしょう。

*** ゲームを作りたい [#a4f553aa]
-人昔前はゲームといえばC/C++という感じでしたが(さらに前はアセンブラ)、&br;
最近はPCの性能も上がり色々な言語が選べるようになってきました。&br;
なので、定番のC/C++以外でのおススメを考えてみました。&br;
しっかり学びたい方は少しくらい大変でもジャンルを問わずC/C++をやりましょう。

--3Dバリバリなゲームを作りたい場合、ほぼC/C++になります。&br;
最近ではC#もライブラリが充実してきています。

--2DならJava、C#、DelphiなどGUIの作りやすい言語や、&br;
ゲームライブラリのある言語(Pythonなど)がオススメです。

--また、ゲーム製作のための言語であるHSPや、&br;
エンジン部分がRubyで記述され、さらにそのコードをいじることが出来るRPGツクールXPに、&br;
高度なカスタマイズ機能を持つアドベンチャーゲーム製作環境吉里吉里/KAGなどもあります。&br;
ゲームがつくりたいだけならこれらの言語、環境もおススメです。&br;
有名どころでは、TypemoonのFate/Stay nightが吉里吉里/KAGで作られていたりします。(といってもアレはかなり改造されてるので吉里吉里とは別モンだとおもった方がいい)

*** GUIツールを作りたい [#da09e157]
-デスクトップで動くちょっとした小物(時計や電卓、システム情報を表示するソフトなど)のような小さめのGUIアプリを作りたい場合、&br;
GUIアプリの製作が簡単なVisual BasicやDelphi、Java、C#、VB.NETなどをオススメします。

-ちょっとした作業を効率よくやりたい
例えば、「nekomimiフォルダの中の全画像に対して、ファイル名の先頭に「neko_」とつけたい」などといった、&br;
日常でのちょっとした作業(でも、画像が100枚あったら大仕事ですよね)をささっとやりたい場合、&br;スクリプト言語であるPerl、Ruby、Pythonがおススメです。
*** ちょっとした作業を効率よくやりたい [#hc7eb69e]
例えば、「nekomimiフォルダの中の全画像に対して、ファイル名の先頭に「neko_」とつけたい」などといった、日常でのちょっとした作業(でも、画像が100枚あったら大仕事ですよね)をささっとやりたい場合、スクリプト言語であるPerl、Ruby、Pythonがおススメです。

*** Web上で動くものを作りたい [#v0b8f0c6]
-掲示板やwikiなどのサービスを作成したい場合、サーバで動くプログラムを作成することになります。&br;
サーバでプログラムを動かすための仕組みとしては、

-CGI
--Perl、Ruby、Pythonなど各種スクリプト言語、C/C++などで記述。拡張子はcgi
--掲示板やアクセス解析など、幅広く使用されている。このWiki自身、PHPで記述されたCGIだったりする

-PHP
--PHPで記述。拡張子はphp
--スクリプト言語のCGIよりも高速で動作する。また、CGIと違いHTMLに埋め込むためソースも読みやすい。幅広く利用されている

-JSP
--Javaで記述。拡張子はjsp
--個人のページではあまり使用されているのを見ないが、企業では良く使われる

-ASP.NET
--.NET言語(主にC#)で記述。Windows系サーバーほぼ限定。拡張子はaspx
--Microsoftのページなどで見れる。それなりに個人利用もあるようだが、やはり企業での使用が中心

などがあります。おススメはPerl、Ruby、Pythonなどを用いたCGIやPHPです。&br;当然、他にHTMLの知識も必要になります。

*** Flashを作りたい [#uff1e9d3]
-Flashアニメや本格的なFlashゲームを作りたい場合、&br;
ActionScript2.0、またはActionScript3.0をオススメします。&br;
AS2であればフリーのツール「ParaFla!」がありますし、&br;
AS3であれば公式で開発環境を無料でDLできるので入りやすいです。&br;
&br;
最新版では、デスクトップアプリも作れるようになりました。

*** とにかくいろいろやりたい [#r5296ba0]
とりあえず、

-コンパイラ系(C/C++、Java、C#など)から一つ
-スクリプト系(Perl、Ruby、Pythonなど)から一つ
-サーバサイドWeb系(CGI、PHP、JSP、ASP.NETなど)から一つ
-クライアントサイドWeb系(HTML、CSS、JavaScript、ActionScript)から一つ

といった感じで身につけていくのはどうでしょうか。コンパイラ系とスクリプト系はどちらからでもかまいません。~
また、関数型言語(Lisp、Ocaml、Haskellなど)の世界に足を突っ込んでみるのも楽しいかもしれません。~
さらにPrologなどの論理型言語と呼ばれるものもあります。

*** プログラミングを楽しみたい [#r545f2bc]
プログラミングを楽しみたい人やプログラミング自体を勉強したいという方は、~
余計なことをあまり考えなくていい[[Ruby]]や[[Python]]といったスクリプト系がいいと思います。~
どちらも、WebのCGIプログラムからGUI、ゲームなどなど色々なものが作れますから、~
実用的にも覚えておいて損はないと思います。

*** スーパープログラマになりたい [#m07e1930]
-スーパープログラマと人々に呼んでもらうためには、「どの言語を使うか」より「何を作るか」の方が重要です。&br;
最近では、DHHという人がそれまで海外ではあまり普及していなかったRubyでRuby On Railsというソフトウェアを作り、一躍時の人となりました。&br;
Ruby On Rails以降、海外でRubyの書籍は一気に10倍以上売れるようになったそうです。&br;
頑張って超格好良いソフトを作ろう!&br;

*** OSたんをつくりたい [#efacf64b]
-アセンブラ!これさえあれば怖いものなし! 

*** 彼女を作りたい [#idfc8477]
-親から受け継いだ日本語…Priceless


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS