キュアセブン技術ブログ

考えたこと,学んだことを書きます

プログラミング言語いろいろ

プログラミング言語にどのようなものがあるのか。わたしはプログラミングを初めて1年の初心者、C言語を理解しながら授業受けただけでそれ以外の知識はなかった。今更ながら調べてみた。

 

約200種類のプログラミング言語

 たくさんあるみたい。膨大な言語のうち、腹黒なわたしはプログラミング言語別年収ランキングを見てその上位からどんな言語があるのか、そして何ができるのかを調べていこうと思う。

 まずアメリカと日本のプログラマの年収の差がありすぎることに驚きだ。なんでこんなに違うの・・。プログラマは残業なんて当たり前、すごくつらい仕事だと聞いたりするけど、それは日本で働いているから?就活ガイドなるものをいろいろ見たところ仕事場がおしゃれでやる気が出るように配慮されている。それも素敵だけど給料増やしてほしいってのもあるだろうな。頑張れ日本のプログラマ

 

日本のランキング

 まず日本の年収ランキングから見ていこう。

  1. Python
  2. Ruby
  3. Perl
  4. Objective C
  5. JavaScript

以上のような結果になった。

 どれも以前さらっと偉大な先輩から聞いた言語だ。名前だけはわかる。内容を詳しく見ていこう。

 1位のPythonは直訳するとニシキヘビ、画像検索したら鳥肌が立つ。ライト級*1に位置づけられる。記述方法が複数PerlRubyに対してやり方が1つなのが特徴。みためはあっさり。数学系のライブラリが充実。Pythonを使った仕事は日本では少ないとあるが年収ランク1位とはどういうことだろう。

 2位のRubyもライト級。日本製の言語であり説明が日本語で書かれていることが多くありとっつきやすそう。米ランキングで後述のRailsの基盤になっている言語でRailsを学ぶ前提として学ぶ必要がありそう。

 3位はPerl。1~3位がライト級であった。Perlは昔からあるライト級の言語で、今から学ぶならPythonRubyかなという感じ。古くからあるプログラムのメンテナンスには必要になるのでさっと知っておくのはいいかも。古い分モジュールは多い。

 4位はObjective Cである。アップル信者の言語。Cにオブジェクト*2指向*3を組み込んだ言語。オブジェクトという概念がイマイチピンとこないので助けてほしい。IPhoneアプリを作りたいならObjective C。Cは一通り学んだしとっつきやすそう?

オブジェクトとは (object): - IT用語辞典バイナリ

 5位はJavaScript。Web業界に必須アイテム。これは次年度前半で学校が授業で取り扱ってくれるようなのでこれからお付き合いしていく言語である。ブラウザ上で動く。

 

アメリカのランキング

 米ランキングは異なる。

  1. Ruby on Rails
  2. Objective C
  3. Python
  4. Java
  5. C++

以上のようになった。

 Ruby on Railsを調べたところ、言語ではない、フレームワーク(枠組み)であると言われた。テンプレートという印象だ。Rubyがそれの元になっている言語。Rubyを学んだあとに枠組みを知る感じがよさそうだ。

 Javaは一度コードを書けば広い範囲で長期間利用できる言語で、コード量が多くディレクトリ構造が複雑なんだそう。それ聞いただけで気が進まない。オカタイ言語。

 C++はCでできることをいろんな仕様を付加することでできた言語。CでやることはC++でやったほうがプログラミングは容易?なんだと思う。Cは学んだので付加概念を学べば習得できそう。

 

現状と今後

 今はコンピュータが動く仕組みを理解するためにわざわざ重い言語Cを習った段階なんだなと分かった。上述したが春からわたしはJavaScriptを勉強する。そしてちょうど2年後には選択科目としてPHP*4を半年かけて受終わっているらしい。

 ライトな言語を知っておきたい。ライトというくらいだからサラリと複数取得できればいいのだが。まずはニシキヘビ退治からかなー

 プログラムして何を作りたいか?特に今浮かぶほしいソフトが思いつかないがiPhoneのアプリはちょっと作ってみたい気持ちがあるのでObjective Cはいるなあ。Cを習ったしオブジェクト指向がどういう意味かから学んでマスターしたいところ。

 あとはレポート作成時魅力的なLaTeXの使い方もマスターしたい。

 

 

調べた単語まとめ

 

訂正箇所

 Objective CとJavaScriptが脳内で混同していた。アップル信者はObjective C。

*1:ライト級:Python,Ruby ヘビー級:C++,Java

*2:ユーザの操作対象のアイテムをコンピュータ上に再現したもの

*3:オブジェクトの組み合わせとしてプログラムを記述する方法

*4:PHPはHTMLの中に組み込んで動的なページにする役割。求人は多い。がすぐ学べるので使える人が多い。