質問

大学でfortranの授業があります。とても面白いのでプログラミングを趣味としてはじめたいのですが、プログラミングで何ができるのですか?ゲームを作ったりとかきくけれど、そういうのでなく、日常で役に立つプログラムとか作るんですか?
授業では演習(主に数値計算)を解くのを目標に勉強しますが、趣味で数値計算はあまりやらないでしょう。

また、どの言語がおすすめですか?

通報する

回答 (5件)

面白いですね~~。

>大学でfortranの授業があります。
>授業では演習(主に数値計算)を解くのを目標に勉強します

まあ、Fortranは数値計算用ですからね(笑)。基本バッチ式の「あまり優雅とは言えない」プログラミング言語ですし。
一応、背景知識としては、Fortranってあんまり「工夫が無い」んですよ。だからプログラマで愛用している人って殆どいないでしょ。だからこそ逆に「最適化しやすい」「計算が高速だ」と言う特徴があるんですよね(中でややこしい事してないから、です・笑)。
ですから、基本「書き捨て用」ですよね。それ以上の事は出来なくはないけど、あんまり他の用途には向いてない、って事です。
多分、物理でしょ?物理ならFortranって現役ですからね。あるいは数理統計のバッチプログラム書く場合も使うかもしれません。

>どの言語がおすすめですか?

さて、そうするとどの言語なのか?と言うと「Fortranと丸っきり設計が違う」言語を学んだ方が面白いだろ、って事です。似たような言語って既にありませんし、あってもBASICくらいしか無いですしね。それじゃあツマラないだろ、と。
ある種「古典と言える古典」である(と言うか古典過ぎる、か・笑)Fortranやったんだったら、歴史的な流れに乗ってみても面白いかもしれません。

・Common Lisp
・Pascal
・C言語

辺りが面白いかも、ですね。

Common Lispは世界で2番めに古い「高級言語」(Fortranが一番古い)であるLispの一実装です。実は最初のLispはFortranで実装されていた、と思います(確か、Fortranの拡張言語だったんじゃないかしら?)。
これは世界で最初の「関数型言語」で、手続き型言語であるFortranと設計が丸っきり違います。が、数学的なんで、「数値計算が面白い」と思うんでしたら、別種の「数値計算へのアプローチ」が楽しめると思います。
現時点では結構コンパイラとしても優秀なんで、C++くらいの計算速度は稼げますよ。

Pascalも名前くらいは聞いた事があるでしょうか?これは「構造化プログラミング」と言う方法論を具現化する為に設計されたプログラミング言語の雄、ですね(本当はAlgol、って言語がそれだったんですが、複雑過ぎた為にPascalにお株を奪われてしまいました)。
これも現時点ではそんなにメジャーじゃないんですが、言わば「Fortran型のプログラミング言語への反省点」ってのがたくさん詰まっている、んです。そう言う意味ではFortranと対比しながら勉強するには良い言語なのではないでしょうか?

C言語は有名ですよね。Pascalより登場がちょっと遅いんですが、同じく「構造化プログラミング」と言う「Fortran型のプログラミングへの反省点」がある意味詰まっている言語です。
これを敢えて挙げた一つの理由は……、実は名著ながら難しい、と言われている「プログラミング言語C」

http://www.pro.or.jp/~fuji/computerbooks/c/c.ker …

って本がある(著者はC言語の設計者自身)んですが、これは一つ、対象読者として、明らかに「Fortranプログラマを意識して書かれている」部分があるから、なんです。つまり、いきなりCをはじめて「その本(略称K&Rって言います)」使っても難解だ、ってなるんですが、Fortran経験者だったら「すんなり読める」可能性があるんじゃないのかな、と言う事です。
(これが意味する事は、その書籍が上梓された時点では、割にFortranプログラマが多かった、って事です)

んで、多分、数値計算やってる、って事で、ある種理学部関係の方ですよね?
だったら、次のLive-DVDがお薦めです。

KNOPPIX/Math
http://www.knoppix-math.org/wiki/index.php?KNOPP …

これなら中にFortranも入ってますし、Common Lispも入ってますし、当然PascalもCも「既にある」んで、取っ替え引っ替えして遊べますよ(笑)。中に準備されている「プログラミング言語の数」は、Live-DVDでは最大数を誇るんじゃないのかな、って思います。
他にも数学関連の特殊なアプリケーションもてんこ盛りなんで、多分かなり楽しめると思いますよ。そうやって弄くっているうちに、自然と「何かを作りたくなる」んじゃないかな、とか思います。

現在、Web系の開発をしているが、Webの世界だと、Webブラウザでアクセスし現れるあらゆるもので「プログラミング」は使われている、といっていい。

例えば、このサイト。質問を投稿し、回答する。利用者はそれぞれIDとパスワードでログインすると、自分の投稿や回答が現れる。検索フィールドからテキストを書いて送れば、過去の投稿から検索内容にあったものを探して一覧表示してくれる。これ、すべてサーバの裏側で動いているプログラムが行っている。

Google、Yahoo、YouTube、すべて背後で大掛かりなプログラムが動いている。ちょっとクールなビジュアルのWebサイトは、FlashやJavaScriptのプログラムによって構築されている。もっと身近なところであっても、例えば仲間内で掲示板を設置したいとか、ブログを始めようとかいったとき、それらはすべてプログラムによって動いている。

もちろん、既に出来合いのプログラムが多数流通しているから、それらを利用すればそこそこいい感じのものができあがる。が、それは誰でも利用できるものであって、誰もが作れるレベルでしかない。そこから一歩先んじたいと思えば、自分でプログラムを修正したり追加したり、あるいは一から作り上げたりするしかない。Webの世界では、「既に誰もが使っている既製品だけで十分」という人にはプログラミングなんて必要ないが、そこから一歩踏み出したいと思えば、プログラミングの知識が必要となる。

実務とかいうことだと、まぁ例えばオレは自営業だが、経理や申告はOpenOfficeで自分でマクロを組んで入力以外は自動化してる。これもまぁプログラミングだな。あとは、細々したメモとかは、自宅で開発用に起動してるWebサーバにデータベースでまとめてある。これもまぁ、プログラミングか。あとは、仕事で使う定型的な画像処理だのもグラフィックツールのスクリプトで自動化してあるな。そうした細々したプログラミングは、覚えてないほどあちこちでやってるな。おかげで、同じようなことを繰り返し3度はやらないで済む。2度目をやるときには、それを自動化する処理を書いてしまうからな。

Windows 上で動作するちょっとしたツールを自作したりする程度なら、C# がお勧めです。真面目にやれば本格的なアプリケーションも作れます。

簡単なツールの制作などもできますよ。
世の中様々なソフトウェアがあって、多くの作業はできますが、微妙に自分のしたい操作と異なるようなときに、自分でプログラムが書けると「かゆいところに手が届く」ソフトウェアが作成できます。

なお、数値計算を趣味にしている人は少ないかもしれませんが、私は例えば円周率を求めるプログラムなんかは趣味としても面白いと思います。


今から実用的なプログラム作成を目指されるのであれば、C++やJavaあたりがポピュラーかと思います。

この回答への補足

回答ありがとうございました。
簡単なツールって具体的にはどのようなものですか?

日常でプログラミングをする事自体がないとは思うけど・・・

あえて言うならExcelとかを使うときのマクロを組むぐらいかな?
簡単な奴で結構便利なの作れるし(全ての行を1ピクセルだけ大きくするとか)

でも、あれはVBAだしね。
基本言語としてはC言語だけど、Javaが出来ればいろんな事は出来ると思う。
簡単な処理,計算系ならParlかな?

そもそも、趣味なんて人によって違うから何とも言えない。

この回答へのお礼

回答ありがとうございました。
プログラミングをすること自体は面白く、マスターするとそんなこともできるようになるのか!!という気持ちになれれば、いい趣味になると思いました。
プログラミングに関してまだ知識がなく、趣味にするようなものなのかも分からない感じです^^;

このQ&Aは役に立ちましたか?1 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

このQ&Aを見た人が検索しているワード


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集