- 更新日 2022.09.07
システム開発の主要言語を解説!業務アプリケーションによく使われている言語は?
システム開発の現場では、プロジェクトに応じて適切な開発言語が使い分けられています。しかし、どのような言語がどのような場合に適切かなど、あまり意識したことがない方も多いのでは?
日本語と英語がまったく違うように、それぞれの開発言語は特徴もルールも違います。当然、どんなシステムを作るのかによって、選ぶ開発言語も変わります。発注側となる企業担当者が開発言語の特徴を把握していれば、自社システム開発プロジェクトの推進に大いに役立つでしょう。
そこで本記事では、業務アプリケーションを中心に、システム開発に使われる主要な開発言語の特徴を解説!最後までご覧いただければ、自社システムに適した言語を把握できるようになります。
※システム開発会社選びにお悩みの方はシステム幹事にご相談ください。専任のアドバイザーがあなたに最適な会社を厳選してご紹介します。相談料・紹介料は一切かかりません。
開発言語・プログラミング言語とは?
Webシステム |
業務システム |
モバイルアプリ |
汎用系業務システム |
Java PHP Ruby Python JavaScript |
Java C/C++ C# Python |
Java JavaScript C# Swift Kotlin |
Java C++ COBOL |
開発言語・プログラミング言語とは、業務アプリケーションやWebサービスなど、システム開発に必須のコンピュータープログラムを記述するために使われる言語のこと。プログラムに記述された文字列(テキスト)やファイルは「ソースコード」と呼ばれ、それぞれのプログラミング言語に応じて記述方法・文法が大きく異なります。
システム開発に欠かせないプログラミング言語には、200種類以上が存在するといわれていますが、世界中で使われている主要言語は20〜30種類程度。そのなかから、作るプログラムの特性に応じて、適切なプログラミング言語が選定されるのです。
ソースコードとバイナリコード
ソースコードの記述されたプログラムは、コンピューターに処理を命令するために欠かせないものです。しかし、コンピューターがソースコードの内容をそのまま理解できるわけではありません。
なぜなら、コンピューターが理解できるのは「0」と「1」の羅列である機械語・マシン語と呼ばれる「バイナリコード」だけだからです。たとえば、弊社の社名「ユーティル」をマシン語で表現した場合のバイナリコードは以下の通り。
11100011 10000011 10100110 11100011 10000011 10111100 11100011 10000011 10000110 11100011 10000010 10100011 11100011 10000011 10101011 |
つまりプログラミング言語とは、人間が理解できる文法(ソースコード)でプログラムを記述するために開発された言語のこと。そして同時に、ソースコードをコンピューターが理解できる言語(バイナリコード)に変換する環境を整える役割を持っているのです。
プログラミング言語には「コンパイラ型」と「インタプリタ型」があり、エンジニア以外の方は理解しなくて大丈夫です。ただし、この後の言語の違いにも出てきますので、簡単にご紹介します。
コンパイラ型
コンパイラ型とは、プログラムに記述されたソースコードすべてを、一括でマシン語であるバイナリコード、もしくは中間言語に変換するタイプのプログラミング言語のこと。「一括翻訳型」とも呼ばれており、外国語から日本語に翻訳されたテキストを読むことを想像してもらえればわかりやすいでしょう。
すでにマシン語に翻訳されたプログラムをコンピューターが処理するため、実行速度が速いことがコンパイラ型の特徴。
複雑かつ大規模なアプリケーションを高速で実行できるメリットがあります。
一方、ソースコードをバイナリコードに変換してから処理する必要のあるコンパイラ型は、プログラムの実行までにやや時間と手間がかかるデメリットが。代表的なコンパイラ型プログラミング言語としては、「C/C++」「Java」「Go」などが挙げられます。
インタプリタ型
インタプリタ型とは、プログラムに記述されたソースコードを、一行ずつバイナリコードに変換しながら処理を実行していくタイプのプログラミング言語のこと。「逐次翻訳型」とも呼ばれており、こちらは通訳者を介した同時通訳というイメージが当てはまるでしょう。
あらかじめバイナリコードを生成する必要のないインタプリタ型は、プログラムの処理をすぐ実行できる点がメリット。逆に、一行ずつの翻訳が必要なインタプリタ型は、コンピューターの処理待ちが発生するため、実行速度が遅くなりがちなデメリットもあります。大規模システムの開発にはあまり向いていません。
ただし、近年ではインタプリタ型でも、事前コンパイル(バイナリコードへの変換)できるプログラミング言語も登場しており、単純な分類は難しくなる傾向にあります。代表的なインタプリタ型プログラミング言語としては、「Python」「JavaScript」「Ruby」などが挙げられます。
システム開発プログラミングの違い
システム開発とは、企業の業務効率を改善するITシステムや、ネットショップなどインターネットを通じて情報を処理するシステムを開発することです。
プログラミングはシステム開発の工程の一部であり、システムを稼働させるための言語を入力する作業を指します。
システム開発でよく使われる開発言語【種類別】
Webシステム |
業務システム |
モバイルアプリ |
汎用系業務システム |
Java PHP Ruby Python JavaScript |
Java C/C++ C# Python |
Java JavaScript C# Swift Kotlin |
Java C++ COBOL |
それでは、分類が難しくなるほど多様化の進むそれぞれのプログラミング言語は、どのようなシステム開発で使われるケースが多いのか?「Webアプリケーション・サービス」「モバイルアプリ」「業務アプリケーション」「汎用系業務システム」の4つに絞って解説していきましょう。
Webアプリケーション・サービス
Webアプリケーション・サービスとは、Google、YouTube、食べログなど、Webブラウザを操作端末に利用する、Web技術を活用したアプリケーション・サービスのこと。今もっとも需要の高い、Webアプリ・サービス。サーバにあるプログラム本体を開発するサーバサイド、ブラウザのインターフェースを開発するクライアントサイドに分けられます。
クライアントサイドでは、ホームページ制作でおなじみの「HTML」「CSS」や「JavaScript」が使われます。サーバサイド開発で使われる代表的なプログラミング言語には「Java」「PHP」「Ruby」「Python」などが挙げられます。
モバイルアプリ
モバイルアプリとは、iOS / Androidを使用するスマートフォン・タブレット向けアプリケーションのこと。多数存在するBtoC向けアプリ・サービスのほか、社内業務システムなどの操作端末用として開発される場合も。Webアプリ・サービスと似ていますが、端末専用のアプリ開発という点で大きく異なります。
開発言語としては「Java」「C#」のほかに「JavaScript」などが活用されてきましたが、近年ではiOS向けの「Swift」、Android向けの「Kotlin」の採用が増えているようです。Webアプリ・サービスとは異なり、JavaScript以外はコンパイラ型であることが特徴です。
業務アプリケーション
業務アプリケーションとは、基幹システムや在庫管理システムなどの企業向けシステムのこと。パッケージなどの業務ソフトウェア開発も業務アプリケーション開発に含まれるといえるでしょう。スタンドアローン(外部接続などをせず単独で機能)のアプリケーションもありますが、端末をサーバに接続して活用するクライアントサーバシステムが多数派。
業務アプリケーションには、クライアントサイド・サーバサイドのどちらにも柔軟に対応できる「Java」「C/C++」「C#」などのコンパイラ型プログラミング言語が活用されています。「VB(Visual Basic)」が活用されるケースもあり、近年では機械学習にも強い「Python」が業務アプリケーションに採用される例も増えています。
関連記事:在庫管理システムとは?種類・メリット・導入ポイント・おすすめのツールや開発会社を紹介!
汎用系業務システム
汎用系業務システムとは、国税・年金などの行政機関や、銀行・証券などの金融機関で活用される基幹システムのこと。メインフレームとも呼ばれるNEC、IBM、富士通などの専用コンピューターのことを汎用機と呼びます。
「Java」「C++」などの言語が使われる場合もありますが、ほとんどの汎用系業務システムは「COBOL」で開発されています。汎用系は一般的なクライアントサーバシステムへのリプレイスが困難なため、運用・保守で今後もCOBOLが活用されていくと見られますが、新規開発案件はほとんどありません。
関連記事:システム運用とは?開発との関係・保守との違い・重要性・作業内容を解説!
※ここまで読んで、どの言語で依頼すべきか迷っている方はシステム幹事にご相談ください。専任のアドバイザーがあなたに最適な会社を厳選してご紹介します。
システム開発の各言語の特徴
Webアプリやモバイルアプリも含め、業務アプリケーション・システム開発で使われる主要な開発言語の特徴を一つひとつ簡単に解説していきましょう。
Java
開発言語のタイプ |
コンパイラ型 |
言語の特徴 |
・マルチプラットフォーム ・汎用性、堅牢性、セキュリティ性が高い ・実行速度が高速 |
Javaは、1995年にサンマイクロシステムズがリリースした、オブジェクト指向※のプログラミング言語・コンピューティングプラットフォームです。Java仮想マシン(JVM)上で動作するJavaは、JVMが動作するコンピューターであれば環境を選ばずに動作する「マルチプラットフォーム」を実現していることが最大の特徴。
※オブジェクト指向:データや物理対象そのものに重点を置く考え方。
Javaは、未使用メモリを消去できるガベージコレクション機能を併用した、コンパイラ型ならではの実行速度を持ちます。そのため、高速な処理が必要な大規模システムに最適。
Web・モバイルアプリ、業務システム、組み込み系などに活用できる汎用性の高さ、堅牢性・セキュリティ性の高さを持つのも大規模システムに向いている理由。TwitterがJavaで開発されているほか、Googleの3大プログラミング言語のひとつにも挙げられています。
C/C++
開発言語のタイプ |
コンパイラ型 |
言語の特徴 |
・実行速度が高速 ・汎用性が高い ・コンピューター拡張機器の制御が容易 |
C言語は、1972年にAT&Tベル研究所で開発されたプログラミング言語で、そのC言語にオブジェクト指向を加えて発展・拡張させたプログラミング言語がC++です。コンパイラ型ならではの高速性、どんなシステム開発にも活用できる汎用性、両者が混在できるC/C++の互換性の高さもあり、根強い人気を誇っています。
CPU(中央処理装置)に適したコンパイラを作ればどんなプログラムでも作れることが、高い汎用性の秘密。マイコン向けのプログラムもC/C++で記述できます。
特に近年では、C++の存在感が高まる傾向にあります。業務システムの新規開発はもちろん、C言語で書かれたプログラムをC++で書き直す、Rubyで書かれたプログラムをC++で書き直して高速化するなどに活用されています。
関連記事:C++開発のおすすめシステム開発会社をプロが厳選!
C#
開発言語のタイプ |
コンパイラ型 |
言語の特徴 |
・マルチプラットフォーム ・汎用性・堅牢性・高速性に優れる ・Javaよりも豊富な機能 |
C#は、2000年にMicrosoftによって開発・リリースされたオブジェクト指向のプログラミング言語です。名称からC言語の発展系をイメージするかもしれませんが、C系でありながらC/C++との互換性はなく、仮想マシンを必要とするなど、どちらかといえばJavaに近い言語。.NET Framework、Visual Studio.NETなどが仮想マシンとして活用されます。
C系の堅牢性を受け継ぎながら、仮想マシンを活用するコンパイラ型ならではの高速性・OSを選ばないマルチプラットフォーム・高い汎用性を併せ持つのがC#の特徴。Javaよりも機能が豊富なことから、業務アプリケーション・システム開発で幅広く使われています。また、Unityとの相性のよさからモバイルアプリ分野でもC#の活用が広がる傾向にあるといえるでしょう。
Python
開発言語のタイプ |
インタプリタ型 |
言語の特徴 |
・ソースコードがシンプルで可読性が高い ・汎用性が高い ・開発に有用な豊富なライブラリ・フレームワーク |
Pythonは、1991年にオランダ人プログラマーのGuido van Rossum氏によって開発・リリースされた、オブジェクト指向のプログラミング言語です。シンプルでわかりやすい文法を持つため、だれが書いても読みやすいソースコードを記述できることが特徴。システム開発をサポートするライブラリ・フレームワークが多数登場したことで、急速に注目されるようになっています。
なかでも、計算処理・ニューラルネットワーク関数の「TensorFlow」、ディープラーニングの「PyTorch」など、AI / ビッグデータ向けライブラリは、Pythonが注目されるようになった最大の要因。Webサービス開発向けの「Django」「Bottle」など、幅広い開発に活用できる汎用性の高さもPython人気の秘密です。
関連記事:Pythonのシステム開発に強い会社をプロが厳選!
JavaScript
開発言語のタイプ |
インタプリタ型 |
言語の特徴 |
・Webサイト・アプリのクライアントサイドに必須の言語 ・サーバサイドの開発にも活用可能 ・豊富なライブラリ・フレームワーク |
JavaScriptは、1995年にリリースされたオブジェクト指向のプログラミング言語。ブラウザで有名なNetscape Navigatorに実装されたLiveScriptを起源に持ち、近年ではWebサイトのクライアントサイドだけでなく、サーバサイド開発にも活用できるプログラミング言語へと進化しています。
主要なブラウザすべてが対応しているため、開発時に実行環境を整える必要がなく、手軽にWebアプリのクライアントサイドを開発できることがJavaScriptの特徴。ライブラリ・フレームワークが豊富に用意されているため、モバイルアプリ開発にも幅広く活用されています。「Node.js」を活用したサーバサイド開発も可能ですが、どちらかといえば、メインの言語にJavaScriptを組み合わせた活用方法が主流です。
関連記事:JavaScript開発でおすすめのシステム開発会社をプロが厳選
PHP
開発言語のタイプ |
インタプリタ型 |
言語の特徴 |
・Webアプリ・サービスのサーバサイド開発向け言語 ・ソースコードがシンプルで可読性が高い ・データベースへのアクセスが容易 |
PHPは、1995年に「The PHP Group」によって開発・リリースされたオープンソースのプログラミング言語です。もともと「Personal Home Page Tools(PHP Tools)」として開発されていたことからもわかるように、主に動的なホームページ、Webアプリケーションのサーバサイド開発に使われるプログラミング言語です。
ソースコードの文法がシンプルで学習しやすい、データベース連携が簡単という特徴を持つPHPは、Webサーバから動作させるスクリプト言語として幅広く活用されています。一方、記述の自由度が高いため、セキュリティに気を配る必要がある、大規模システムには向かないという性格も。CMSとして名高いWordPress、EC-CUBEなどは、PHPでプログラムが書かれています。
Ruby
開発言語のタイプ |
インタプリタ型 |
言語の特徴 |
・開発効率を高められるシンプルな文法 ・汎用性が高い ・Ruby on Railsによる容易なWebアプリケーション開発 |
Rubyは、1995年にまつもとゆきひろ氏によって開発・リリースされた、日本発のオブジェクト指向プログラミング言語です。シンプルな文法でソースコードの記述量を減らせる特徴を持つRubyは、コードの再利用・流用が簡単なことと相まって効率的でスピーディーなシステム開発が可能。Webサービスのバックエンド開発のほか、モバイルアプリ、WebAPI、データベースを組み合わせた基幹システム開発などに使える汎用性の高さも魅力です。
特に、シリコンバレーで開発されたWebアプリケーションフレームワーク「Ruby on Rails」との組み合わせは強力。Shopifyやクラウドワークスなどに活用されています。ただし、インタプリタ型の宿命ともいえる実行速度の遅さがあるのもRubyの特徴。大規模なシステム開発にはあまり向いているとはいえません。
COBOL
開発言語のタイプ |
コンパイラ型 |
言語の特徴 |
・計算処理・バッチ処理・帳票などの事務処理に最適 ・信頼性・保守性が高い ・英語に近い可読性の高いソースコード |
COBOLは、1959年に国際標準化されたアメリカ発のプログラミング言語です。大規模な電子計算処理を目的に開発され、一般事務員でも扱えるよう英語に近い構文を持つことが特徴。計算処理・バッチ処理(ひとまとまりのデータを一括して処理する方式)・帳票などの事務処理に適した機能を豊富に持ち、2002年にはオブジェクト指向が追加されるなど、言語規格の拡張は現在でも続けられています。
COBOLが真価を発揮するのはなんといっても計算処理。世界中のATMトランザクション(複数の処理をまとめて行うこと)のほとんど、商用トランザクションの8割がCOBOLだといえば、その信頼性が実感できるでしょう。COBOLから派生したOPENCOBOL、UNIX-COBOLなどのオープン系言語もありますが、ソースコードが冗長になることから新たに学ぶ技術者が少ないという課題も抱えています。
※ここまで読んで、どの言語で依頼すべきか迷っている方はシステム幹事にご相談ください。専任のアドバイザーがあなたに最適な会社を厳選してご紹介します。
言語の選定の際に考慮すること
基準 |
選定ポイント |
言語の特性 |
実行速度、汎用性、信頼性など |
開発環境 |
コンパイラ・テキストエディタなど 一元管理できるソフトウェアの有無 |
データベース接続 |
主要なデータベースエンジンへの対応状況 サポート環境の有無など |
エンジニア |
言語を習得しているエンジニアの人数 言語の習得の難易度など |
生産性 |
開発環境やフレームワークの有無も含めた システム開発の速度など |
言語の特性
プログラミング言語には固有の特性があります。実行速度、汎用性、信頼性に関してはコンパイラ型が有利である場合が一般的です。しかし、事前コンパイルが可能なインタプリタ型があるのは先述した通り。単純な分類で考えるのではなく、プログラミング言語個々の特性に着目することが重要です。
開発環境
開発言語を使ってプログラムを作成するには、ソフトウェア・ハードウェアが必要。最低限、テキストエディタとターミナルがあればソースコードは書けますが、必要なソフトウェアをまとめた統合開発環境(IDE)が用意されているプログラミング言語もあります。開発効率を高めるためにも、各言語の開発環境もチェックしておきたいポイントです。
データベース接続
データベースはシステム開発に欠かせない存在ですが、開発するシステムに応じて適切なデータベースは異なります。データベースありきで考えるべきではありませんが、採用候補となる開発言語のデータベース対応状況、相性問題をチェックしておくといいでしょう。
エンジニア
必ずしも習得の難易度とリンクしませんが、プログラミング言語によって扱えるエンジニアの数は大きく異なります。RやGoなどの稀少言語は、対応できるエンジニアの数が少ないため人件費も高く、必要な人材を集められない場合も。特性が似ている開発言語で迷ったら、エンジニア数の多いメジャーな言語を選定するのも一つの方法です。
生産性
コンパイラ型は、複雑で大規模なシステムを高速に実行させるために最適ですが、ソースコードの記述が多くなる、実行テストに時間がかかる傾向があります。中規模までのシステム開発であれば、比較的開発効率の高いインタプリタ型を採用する方がいいかもしれません。もちろん、生産性を飛躍的に向上できるライブラリ・フレームワークが揃っているかもチェックポイントです。
システム開発の言語まとめ
本記事では、業務アプリケーションを中心に、システム開発に使われる主要な開発言語の特徴を解説してきました。
エンジニアではない企業担当者の方なら、開発言語・プログラミング言語と聞いただけで身構えてしまうかもしれません。
しかし、言語にはどんな種類があって、どのような言語が開発したいシステムに向いているかを知っておけば、開発会社と意思の疎通をする際に活かせることでしょう。
ぜひ本記事の内容を、理想のシステム開発にお役立てください。
システム開発会社選びにお悩みの方はシステム幹事にご相談ください。専任のコンサルタントが要件を丁寧にヒアリングし、あなたに最適な会社をご紹介します。
相談料などは一切かかりませんので、お気軽にお問い合わせください。
コンサルタントのご紹介
岩田
専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。
この記事を書いた人

梓澤 昌敏
専門分野: 音楽・映像制作、オウンドメディア、ビジネス
音楽・映像制作の現場を経て、スタジオ構築側の業界へ。マネージャー・コンサルタントとして制作現場の構築に携わる一方、自社オウンドメディアの立ち上げを含むマーケティングも担当してきました。現在アメリカ在住。作曲を含む音楽制作も提供しています。
このライターの記事一覧