
1.プログラミング言語の種類
プログラミング言語は、大きく分けて、
機械側に近い「低級言語」と
人間側に近い「高級言語」に分かれます。
1.機械語
機械が直接理解できる言語。人間には理解することが非常に難しい。
いかなる言語で作られても、最終的には機械語に変換して実行することになる。
2.アセンブリ言語
機械語を簡潔に記述することができるプログラミング言語。
英文字などを使い、機械語を少し読みやすくしている。機械語とは親戚関係。
1.C言語
C言語は、オペレーティングシステムも作れるくらい、低レベルでの記述ができる。
使いこなせればかなり自由度が高いが、大量の知識と経験が必要。
2.Java
バイトコードを生成し、、バーチャルマシンと呼ばれる実行環境で機械語に変換されて実行される。
バーチャルマシンが機械の違いを吸収することで、さまざまなプラットホーム(環境)で動作する。
しかし、そのために、動作が遅く、インターフェースもちょっと古く見える。文法は非常にC言語に似ている。
アプレット・サーブレットや実行ファイル等、さまざまな種類がある。オブジェクト指向を取り入れた代表的な言語。
3.Visual Basic
初心者向けの言語だが、生産性は非常に高い。
コントロールをウインドウにぺたぺた貼り付けてデザインし、コードを記述する。
C言語などに比べると、動作が遅い。ランタイムを入れないと動作しないのが問題。
最新の.netでは、.net Frameworkと呼ばれる巨大なコンポーネントを使う。(Javaと同様、様々なプラットホームで動作する)
4.Visual C++
C言語を拡張してオブジェクト指向に対応させた言語で、
GUIプログラミングも比較的容易に行えるが、相変わらず知識と経験が要求される言語である。
Windowsの標準開発環境で最適化性能は高い。
基本的にAPIやMFCを利用してプログラミングを行う。
5.Visual C#
マイクロソフト社が.NET戦略の一環として開発したオブジェクト指向プログラミング言語である。
.net Frameworkを用いたプログラミングに一番適していると言われている。
C++やJavaと良く似た構文や実行機構を持っている。
6.Delphi
Pascalを拡張した精密な言語で記述する。コンパイル速度は非常に速い。Visual Basicといろんな意味で似ている。
最新のバージョンでは、VBと同様、Microsoftの.NetFrameWorkコンポーネント使ってアプリケーションを開発することができる。
若干マイナー。
7.HSP
プラグインと呼ばれる物を使うことによって機能を大きく拡張できる。
最近、HSPで作成されたプログラムが増えてきている。ゲームやスクリーンセーバー製作向き。
1.PHP
動的にHTMLデータを生成することによって、動的なウェブページを実現できる。
サーバサイドで動作する。HTMLに埋め込むことができる。ライブラリが充実している。
2.Perl
インタプリタ方式のプログラミング言語。実用性を重視して作られている。
2.一体どの言語がいいの?
作るものによります。自分の目的に合った言語を選択することが重要だと思います。
プログラミング学習は、一度に複数の言語をやるべきではありません。
たくさんやっても、どれも中途半端になり身につかないからです。
1つの言語を集中的にやって極めることができれば、他の言語でもすぐ応用できます。
3.プログラマに求められるもの
| 問題解決能力 | なんといっても、自分で考えて問題を一つ一つ解決していくことが重要となる。 自分で考えてやらないことには成長できない。 |
|---|---|
| 耐久力 | 肉体的・精神的にかなりの負担が生じることがある。 生活のリズムも狂うことがある。それに耐えうるだけの力は身につけておきたい。 実際に就職して、プログラマになった場合、趣味でやるのとは大きなギャップが出てくる。 自分の得意な(好きな)ことばかりすることは不可能。フリーでしない限り、あまり自由はない。 |
| 向上心・好奇心 | どんどん上を目指してがんばることが重要。 |
| アイデア(創造力) | いくら知識や技術が身についていてもアイデアが浮かばなかったら宝の持ち腐れ。 問題を解決するにはさまざまな方法(アルゴリズム)があり、適切に選択することが大切。 |
| 情報収集 | インターネットや本、資料などから情報を効率的に収集することが必要である。 つまづいたときは必要な情報を収集しましょう。 |
| 知識・技術 | これについては、時間が解決してくれるので問題はない。 |
4.並列プログラミング(番外編)
並列プログラミングとは、複数のプロセッサやクラスタなどを使って処理を高速化させる方法です。
プロセッサが2倍、3倍と増えると比例して性能も2倍、3倍になりそうに思えますが、
実際はそんなに単純ではありません。
プロセッサ間を結ぶ回線の速度や制御方法に大きく影響します。
並列化の恩恵を受けるには、データ(メッセージ)転送のリスク・アルゴリズムの並列化・
デバッグの難しさ(多数のプロセッサを使うのでどこで不都合な動作をしたか特定しにくい)などの問題を解決していく必要があります。
高速な計算が求められる分野(シミュレーションや科学技術計算など)もあり、
「並列プログラミング」は、今後重要になってくるでしょう。
| ■「効率的な検索方法」 | ■「ショートカットキーを覚えよう」 |
| ■(Break Time)「猫」 | ■「デスクトップマスコット」 |
| ■「プログラミング言語」 | ■「メッセージボックスのコピー」 |
| ■ハードディスクの故障率 | ■Wordを使えば、要約は一瞬 |