프로그래밍 사이트 선정 프로그래밍 언어 순위 목록 | ||||
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all" {{{#!wiki style="display: inline-table; min-width: 25%; min-height: 2em;" {{{#!folding [ IEEE Spectrum 2024 ] {{{#!wiki style="margin: -5px 0" |
<rowcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 | 직업 부문 상위 10개 프로그래밍 언어 | ||
1 | Python | 1 | SQL | |
2 | Java | 2 | Python | |
3 | JavaScript | 3 | Java | |
4 | C++ | 4 | TypeScript | |
5 | TypeScript | 5 | SAS | |
6 | SQL | 6 | JavaScript | |
7 | C# | 7 | C# | |
8 | Go | 8 | HTML | |
9 | C | 9 | Shell | |
10 | HTML | 10 | C++ |
}}}
}}}
- [ Stack Overflow 2024 ]
- ||<tablewidth=100%><width=9999><-4><bgcolor=#FFA500><tablebgcolor=#fff,#222> 2024년 Stackoverflow 설문조사 기준 인기 상위 25개 프로그래밍 언어 ||
1 JavaScript 14 Rust 2 HTML, CSS 15 Kotlin 3 Python 16 Lua 4 SQL 17 Dart 5 TypeScript 18 어셈블리어 6 Bash 19 Ruby 7 Java 20 Swift 8 C# 21 R 9 C++ 22 Visual Basic 10 C 23 MATLAB 11 PHP 24 VBA 12 PowerShell 25 Groovy 13 Go
- [ TIOBE 2024 ]
- ||<tablewidth=100%><width=9999><-4><bgcolor=deepskyblue><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 MATLAB 2 C++ 12 Delphi / Object Pascal 3 C 13 PHP 4 Java 14 Rust 5 C# 15 Ruby 6 JavaScript 16 Swift 7 SQL 17 Assembly language 8 Visual Basic 18 Kotlin 9 Go 19 R 10 Fortran 20 Scratch {{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 21위 ~ 50위 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"21 COBOL 36 Scala 22 Classic Visual Basic 37 Transact-SQL 23 LISP 38 PL/SQL 24 Prolog 39 ABAP 25 Perl 40 Solidity 26 (Visual) FoxPro 41 GAMS 27 SAS 42 PowerShell 28 Haskell 43 TypeScript 29 Dart 44 Logo 30 Ada 45 Wolfram 31 D 46 Awk 32 Julia 47 RPG 33 Objective-C 48 ML 34 VBScript 49 Bash 35 Lua 50 Elixir
- [ PYPL 2024 ]
- ||<tablewidth=100%><width=9999><-4><bgcolor=green><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 Objective-C 2 Java 12 Go 3 JavaScript 13 Kotlin 4 C# 14 MATLAB 5 C/ C++ 15 PowerShell 6 R 16 VBA 7 PHP 17 Dart 8 TypeScript 18 Ruby 9 Swift 19 Ada 10 Rust 20 Lua
}}} ||
프로그래밍 언어 목록 · 분류 · 문법 |
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, World' STOP RUN.
1. 개요
코볼(COmmon Business-Oriented Language)은 3세대 프로그래밍 언어로, 1959년에 처음으로 나왔다. 이후 여러 번 규격이 개정되어 현재는 객체 지향도 지원한다. 개념이 상당히 오래 묵기는 했지만 처음부터 일반인도 쓸 수 있도록 만들었기에 배우기 어렵지 않은 편이다.2. 목적
미 해군이 개발에 참여하는 등 일반 업무에서 사용할 목적으로 만들어졌다. 실제로 미국 정부에서 사용하였다. 비슷한 시기에 나온 포트란과는 상반된 목적이다. 따라서 보고서 작성이나 회계 계산 등을 잘 지원한다. 예를 들어 센트(1/100달러) 계산에 오차가 없다. 문법도 일반 영어 문장과 매우 흡사하다. 그 이유 중 하나는 '관리자들도 프로그램을 읽고, 슈퍼마켓 점원들도 프로그램을 수정할 수 있는' 쉬운 프로그래밍을 위한 것이었다. 물론 될 리가 없었지만.... 사실 코더 입장에서는 그리 좋지는 않다. 키보드를 더 많이 쳐야 하기 때문이다.(농담이 아니다! 그나마 키보드면 차라리 낫다. 천공 카드를 썼을 때는 대략....) 예를 들어, 사칙 연산을 수행할 때도 보통 프로그래밍 언어는 그냥 z=x+y;( BASIC에서는 세미콜론을 안 붙임[1]) 이런 식으로 쓰지만 코볼에서는 아래와 같이 써야 한다.#!syntax markdown
MOVE X TO Z.
ADD Y TO Z.
연산 하나하나마다 ADD, SUBTRACT, MULTIPLY, DIVIDE로 일일이 지정해 주어야 한다.
#!syntax markdown
COMPUTE Z=X+Y.
3. 유지 보수 문제
역사가 오래되어서 매우매우 많은 양의 프로그램이 코볼로 만들어졌고, 아직도 상당히 많은 양의 코볼로 작성된 프로그램들이 돌아가고 있다.금융 관련 분야는 전산화가 가장 먼저 이루어진 분야인지라, 금융 관련 프로그램 중 상당수가 코볼로 작성되었으며 이 중 많은 코드가 현재도 현역으로 뛰고 있다. 1999년 조사 결과 맨해튼에서는 10억 줄 분량의 코볼 프로그램이 돌아간다고 한다. 특히 미국과 유럽의 경우 ATM 및 신용카드 관련 코드 중 상당 부분이 코볼이다.[2] 현장에서는 시스템이 문제없이 잘 돌아가고 있으면 굳이 다 갈아치우려는 모험을 잘 하지 않으므로 기존 프로그램을 필요한 부분만 고치거나 해서 그대로 쓰기도 한다. 코드가 오래된 것 자체는 문제가 아니지만 이제는 이를 이해하고 관리할 프로그래머가 별로 없다는 것은 문제가 될 수 있다.
물론 신규 프로젝트에서는 다른 언어들에 밀려서 안 쓰인다. 현재 코볼의 사무 처리 능력은 거의 데이터베이스 프로그램들이 대체했다. 그러다 보니 대학이나 학원 같은 데서 코볼을 배워서 나오는 개발자가 있을 턱이 없다 보니 그런 쪽 업계는 일자전승으로 내려오는 암살권마냥 도제식으로 개발자를 키운다는 도시 전설 같은 얘기도 개발자들 사이에서 돌아다닌다. 실제로 2000년대에 시스템 유지 보수 1개월 차가 코볼을 손대봤다는 사례가 존재한다.
3.1. 2000년 문제
해당 문제가 한창 화제가 됐을 때 기존 코볼 프로그램을 검증하고 수정하느라 잠시 코볼 프로그래머의 인기가 오르기도 한 적이 있다. 이 시기에는 워낙 해야 할 작업이 방대하다 보니 인력이 부족해 이미 퇴직한 노인 프로그래머들을 비싼 돈을 부르고 다시 불러다 작업을 한 경우도 많았다. 이후에도 현역 코볼 프로그래머들이 있다. 메인프레임같이 한번 들여놓으면 수십 년씩 굴려대는 컴퓨터는 소스 코드도 그 시절에 짜 놓은 걸 그대로 쓴다. 이 녀석을 유지 보수 업무를 하려면 어쨌든 코볼 개발자가 필요한 것이다.3.2. 코로나바이러스감염증-19 사태
2020년 미국에서 코로나바이러스감염증-19 사태로 메인프레임에서 돌아가던 실업 수당 등의 관련 프로그램 등을 수정해야 되는 상황인데 코볼 프로그래머가 없어서 문제가 되었다.[3]4. 기타
- 1980~1990년대 초반에는 컴퓨터 학원에서도 BASIC 다음에 많이 가르치기도 했다. 지금 생각해 보면 뻘짓이었지만[4]. 2000년대 초반 고등학교에서 제6차 교육과정의 프로그래밍Ⅱ 단원 중에 코볼도 있었다. 물론 그 단원은 전혀 배우지 않고 쪽수만 차지하는 잉여 단원으로 취급되었다. 그 당시의 교사들 중에서도 코볼에 대해 잘 아는 사람은 거의 없었을 것이다. 사실 고등학교 과정에서 배우던(그리고 2020년대에 더 확대된) 코딩 교육은 그걸 실제로 써먹으라는 것이 아니라 수학적 사고력 증진 차원이이라고 봐야 한다.
- 여담으로 코볼의 창시자인 그레이스 호퍼(Grace Hopper)는 프로그램 역사에서 두 번째로 유명한 여성 프로그래머이자 최고령 여성 제독이기도 했다. 1983년에 해군 준장으로 진급해서 1986년에 퇴역했다. 그녀의 107년째 생일을 기리는 구글 두들이 12월 9일 구글 메인을 장식했다. 참고로 첫 번째로 유명한 여성 프로그래머는 세계 최초의 프로그래머인 에이다 러브레이스 백작 부인이다.
- SAP라는 ERP 패키지의 주 언어가 ABAP(Advanced Business Application Programming)인데, COBOL 기반으로 만들어졌다. 비즈니스 언어인지라 익히기 쉬운 언어다. 다만, 실제 업무랑 바로 직결되는지라 업무파악하고 코딩이 들어가야 한다.
- K-9 자주곡사포의 사통 체계도 코볼로 작성되어 있다고 한다.
5. 관련 문서
[1]
BASIC에서는 COMPUTE에 해당하는 명령문으로 LET가 있다. 그런데 LET Z=X+Y라고 쓰나 그냥 Z=X+Y라고 쓰나 똑같다.
[2]
https://www.reuters.com/article/us-usa-banks-cobol/banks-scramble-to-fix-old-systems-as-it-cowboys-ride-into-sunset-idUSKBN17C0D8
[3]
https://youtu.be/LJ9TXkh9Xhk
[4]
1990년대를 기점으로 프로그래밍 언어의 대세는 C로 넘어가서 베이직과 코볼은 신규 프로그래밍에는 거의 쓰이지 않았다. 그나마 베이직은
마이크로소프트가 꽤나 밀어줘서
Visual Basic,
VBA 등으로 쓰임새가 있지만 코볼은 오래된 프로그램 유지 보수 이외에는 거의 쓰이지 않는다. 대한민국에서 코볼 프로그램을 유지 보수 할 일 자체도 희박하고.