プログラム言語には大きく分けて2つあります。1つはマシン語と呼ばれるコンピュータが理解しやすい言語、もう1つは高級言語と呼ばれる人間が比較的容易に読める言語です。マシン語は各CPUごとに用意されることが多く、ミッションクリティカルで速度優先な処理が必要な場合に利用されますが、大規模プログラムには向かず、また、使える人員も極端に少なくなります。対して高級言語はマシン語ほど速度は出ませんが、マシン語並に処理を細かく記入できること、また、保守を行なうにしても容易に行えることから利用されています。
システム開発で利用される高級言語は主に4つあると言われています。基盤システムによく使われるJava、C#、C、そして、古くから使われているCOBOLです。インターネット関連のシステムによってはPHPやJavascriptも利用されることが多いようです。いずれの言語も大人数での開発に適した開発環境が合わせて提供されており、広くシステム開発で利用されています。
高級言語はCPUごとに用意されることはなく、OSをまたいで利用できることから1つの言語を習得すれば長く使える言語です。ただし、それぞれの言語は記載の自由度がとても高く、人員によるソースコードのレベルの差が激しいことが問題となります。そこで開発プロジェクトによってはコーディング作法および、テスト項目について厳格に定めてレベル維持を図っている場合が増えています