意識低い系ドットコム

漫画の感想、IT業界のよもやま話、古銭収集など、雑多な話題を意識低くお届けします

【比較】各プログラミング言語の特徴をかなり適当に説明する

当ブログではアフィリエイト広告を利用しています

こんにちは、意識低い系サラリーマンのKENです。

 

こんな記事を読みました。

igcn.hateblo.jp

 

※2016/1/10 コメントでのご指摘を受け、VB、PHP、Pythonを追加

 

アラフォーになってから、プログラミングに挑戦する。素晴らしいです。僕なんて最近新しいことほとんど始めてません。

 

ただ、上記記事のiGCNさんが「明確な目標はない」と言われていますが、これはちょっと気になりました。

自分の場合は例えばiPhoneアプリを作りたいとか、Webサービスを立ち上げたいとかの明確な目標があるわけではない。目標があれば、それに適した言語を選択すれば良いのだが。転職目的でもないから、求人の多寡なども参考にはならない。

 

というのも、プログラミングは目的無しに漠然と始めるとほとんどの人は途中で飽きて投げ出す可能性が高いです。

 

Webサービスを作るでもスマホアプリを作るでもなんでもいいですが、何か形のある目標を立てたほうが多分上手くいきます。

 

まあ、それはそれとして。プログラミング初心者の方は「どんなプログラミング言語を学べばいいのさ?」というのがまずは気になるポイントかと思います。

 

一応僕もシステムエンジニアの端くれなので、各プログラミング言語の特徴を超ざっくりと説明してみようと思います。

 

かなり意識の低い上に主観的な説明なので何の参考にもならないと思われますが、気にせず説明してみます。

 

プログラミングのオンラインスクールCodeCamp

 

 

 C言語

プログラミングに興味の無い人でも聞いたことある人多いかと。元々はOS*1を記述するために作られた言語なので、機械制御に関する部分をガリガリ書くことが出来る。

 

反面、アプリとかを組むにはちょっと不向き。教育現場で学生に教えることが多い言語だけど、あまり初心者向きではない気がする。これを習得してIT業界に入ると、「組み込み系」という地獄に放り込まれるので要注意。

 

余談だが、入門書として有名な下記本はタイトルが恥ずかしくて書店で買いづらいことで有名。

改訂第5版 ANSI C対応 はじめてのC (Software Technology)

改訂第5版 ANSI C対応 はじめてのC (Software Technology)

 

 

 

Java

15年位前に一時期もてはやされたが、「Javaで組まれたシステムは重い」という不名誉を負わされフェードアウトしかける雰囲気をかもし出したが、GoogleがAndrolidアプリを組むための標準言語に採用したために再び脚光を浴びている言語。Webとも親和性が高い。

 

AndroidアプリやWebサービスを組みたいならこれを覚えるといい。企業からの人気も高いので、これ習得しておくとIT業界に入りやすいけど、IT業界自体はお勧めできない。

 

JavaからはじめようAndroidプログラミング―Android Studio対応版

JavaからはじめようAndroidプログラミング―Android Studio対応版

 

 

 

Objective-C

C言語をベースにオブジェクト指向*2機能を持たせた言語。

 

アップルがiPhoneアプリを組むための言語に採用したために一気に有名になったが、それ以前はかなりマイナーな存在だった。というか、僕は名前すら知らなかった。意識の高いちゃんとしたシステムエンジニアならきっと知っていたかもしれない。

 

iPhoneアプリを組みたい人にはお勧めだが、それ以外の人は覚える必要はほとんどないと思われる。

 

詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS7対応

詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS7対応

 

 

 

JavaScript

Javaと名前が似てるけどまったく別物の言語。ブラウザ上で動作し、動的なコンテンツを作成するために使われる。

 

昔はJavaScriptを利用した不正コード実行、みたいなことがよくあり、「JavaScriptはブラウザの設定でOFFにしとけ」みたいに言われたものだが、いまとなってはJavaScriptが無かったらほとんどのWebサービスはまともに動かない。

 

ゲームで学ぶJavaScript入門 HTML5&CSSも身につく!

ゲームで学ぶJavaScript入門 HTML5&CSSも身につく!

 

 

 

Ruby

日本人が開発したプログラミング言語。Webと親和性が高いので、Webサービスの開発などに向く。Twitterも最初の頃はRubyで組まれていた・・・はず。確か。

 

Ruby on Railsというフレームワーク*3が超便利。

 

プログラミング言語 Ruby

プログラミング言語 Ruby

  • 作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/01/26
  • メディア: 大型本
  • 購入: 21人 クリック: 356回
  • この商品を含むブログ (129件) を見る
 

 

 

C#

C言語をベースにマイクロソフトが開発したオブジェクト指向言語。Javaをパクって参考に作られており、完成度は高い。お手軽にWindowsアプリを組みたいならこれ。

 

.NETフレームワークが便利すぎる。いわばC#はステインメン、.NETフレームワークはデンドロビウムのようなもの*4

 

基礎からわかる C#

基礎からわかる C#

 

 

 

Perl

テキスト処理に定評のある言語。たいていのWebサーバーにPerl実行環境がインストールされているので、Web上で動作するアプリをお手軽に組める。

 

Webアプリ用の言語、というと最近ではRubyとかPythonとかがもてはやされているけど、Perlだってまだまだ捨てたもんじゃない。昔からあるので情報も豊富で、初心者は学びやすい。

 

ゼロからわかる Perl言語超入門

ゼロからわかる Perl言語超入門

 

 

 

HSP(Hot Soup Processor)

小難しい理屈はいいから、とにかく簡単に何か作ってみたい、という人にはこれ。昔のBASICのような感覚で組める。ちょっとしたゲームやツール作りに最適。

 

HSPでつくる簡単3Dゲーム (I・O BOOKS)

HSPでつくる簡単3Dゲーム (I・O BOOKS)

 

 

 

Visual Basic(VB)

マイクロソフトが開発した言語。直感的に扱いやすいため初心者向きと言われるが、業務系システムを中心に仕事でもバリバリ使える。

 

昔は扱いやすさの反面この言語で開発したシステムは動作がもっさりしていたが、.NETになることにより生まれ変わった。でも.NET以降にプログラミング習う人ならVBではなくC#でいい気がする。

 

Excelとかに組み込まれたVB*5もあり、これを習得すると仕事の効率アップを図れるだけでなく、あまりプログラムに詳しい人がいない職場だとかなりドヤ顔ができると僕の中で評判。

わかりすぎるVisual Basic 2013の教科書 (SCC Books 374)

わかりすぎるVisual Basic 2013の教科書 (SCC Books 374)

 
入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス)

入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス)

 

 

 

Python

Googleが標準のスクリプト言語に採用したこともあり、近年注目を浴びつつある言語。シンプルな構文で生産性が高い。

 

Webアプリ開発やAIの機械学習など分野でも注目を集めていて、今一番ホットな言語と言っても過言ではないかも。

 

 

 

 

PHP:Hypertext Preprocessor

HTML*6の中に組みこんで動的なページにすることを主任務とするプログラミング言語。ようするにWebアプリとかWebサービスとか組むのに向いているということ。

 

HTMLの中に組み込んでガリガリ書けるおかげで非常に扱いやすいけど、ちゃんと考えて書かないとそのソースは1週間後自分でも見返したくないものへと変貌する。まあ、このあたりは他の言語でも同じようなことが言えるけど(笑)

 

C言語っぽい構文で比較的習得しやすいけど、一時期PHPで書かれたコードはセキュリティ面が不安視されていた。最近は少しずつ改善されている模様。

 

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~

 

 

 

 

今回はこのあたりで。

 

 

*1:オペレーティングシステムのこと。Windows10とか。

*2:オブジェクト指向とはなんぞや、とは一言では説明できないので興味ある人はググってください

*3:プログラムの骨組み

*4:ガンダムネタ

*5:Visual Basic for Applications、略してVBAといいます

*6:Webページ等を記述するための言語