프로그래밍 사이트 선정 프로그래밍 언어 순위 목록 | ||||
{{{#!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
}}} ||
프로그래밍 언어 목록 · 분류 · 문법 |
-- Hello world example -- with Ada.Text_IO; use Ada.Text_IO; procedure Hello is begin Put_Line ("Hello, world!"); end Hello;
1. 개요
에이다(Ada)는 프로그래밍 언어이다.이름의 유래는 세계 최초의 프로그래머로 여겨지는 에이다 러브레이스 백작부인에서 따왔다.[1]
1978년에 당시 존재하던 언어들이 맘에 안 들었던 미국 국방부에서는 프로그래밍 언어 설계를 공모했고, 거기에 뽑힌 것이 바로 CII 허니웰 벌의 진 이히비하가 이끄는 팀에서 개발한 Ada이다. 1983년 ANSI/MIL-STD-1815A[2]로 지정되어 미국 국방부의 표준 프로그래밍 언어가 되었다.
Ada의 목적은 기존 프로그래밍 언어들의 장점을 뽑아 미국 국방부에서 사용되던 수백 개의 프로그래밍 언어를 대신하기 위해 만들어진 것이었다. 물론 목적 달성에는 실패했다. 10개의 표준을 대체하기 위한 새로운 표준을 만들어봤자 표준이 11개가 될 뿐.
ANSI/MIL-STD-1815A는 1993년 개정판 없이 취소되었으며, 현재의 Ada 언어 표준은 ISO/IEC 8652로 지정되어 관리중이다.
2. 특징
설계방침 자체가 어떤 프로그램이라도 기술할 수 있도록 하였기 때문에 언어 사양이 엄청나게 대규모인 것이 특징이며 특히 대규모 프로그램의 개발과 유지보수가 용이하게 되도록 만들어졌다는 평가가 있다. 실제로 언어 설계를 보면 C언어보다 안정적이면서 여러 가지를 고민한 흔적이 많이 보인다. 문제는 이걸 컴파일러로 구현하는 게 결코 쉽지 않았다는 것이다.[3]물론 C++과 비교했을때 언어 사양이 특별히 더 방대한 정도는 아니며, C++과 마찬가지로 언어의 모든 기능이 개발에 다 쓰이는것도 아니다. 오래된 언어이다 보니 최근의 언어였다면 라이브러리로 제공될 기능이 문법으로 제공되는 정도의 차이가 있다.
코드의 Writability보다 Readability를 중요시한다. Ada 언어의 주 사용처가 군사용 무기체계의 내장형(임베디드) SW의 구현이기 때문이다. 무기체계는 한번 도입되면 짧게는 10여년에서 길게는 수십년까지도 유지보수 해야 하기 때문.
F-22 항공기 항전장비의 소프트웨어를 비롯하여 미국에서 개발되는 많은 군용 소프트웨어에 Ada가 사용된다. 또한 MIT항공공학 전공자들이 제일 처음으로 배우는 과목 중에 하나이다. 하지만 지나치게 제한적인 용도로 인해 인력풀이 작기 때문에 최근에는 군용 소프트웨어도 대부분 C++로 대체되는 형편이다.
3. Ada 개발환경
- AdaMULTI: Green Hills Software사에서 개발한 상용 Ada 개발환경( IDE 및 컴파일러). 항공 업계의 소프트웨어 개발에 널리 쓰인다.
- FSF GNAT: GCC 컴파일러 툴셋의 일부를 구성하는 Ada 언어 컴파일러 구현체.
- GNAT Studio Community Edition: GNAT 기반의 IDE.
- TDM-GCC: Microsoft Windows용 GCC 컴파일러 배포판. (Ada 포함)
- http://www.getadanow.com: GNAT 가이드
- SciTools Understand: Ada 코드 분석을 지원하는 상용 IDE. 개발보다는 코드 분석과 유지보수에 초점을 두고 있다.
4. 여담
- 같은 이름을 쓰는 암호화폐 에이다(암호화폐)의 블록체인인 카르다노는 에이다로 프로그래밍되지 않았다. 카르다노를 프로그래밍한 언어는 하스켈이다.
- F-35 개발과정에서 개발자들이 미 국방부의 지정 개발언어인 Ada에 적응하지 못해 C++으로 전환하기 시작한 것이 재앙의 시작이 되었다는 의견도 있다.
[1]
그 이유로 '에이다' 라고 읽는다.
[2]
표준 번호도 나름 의미가 있는데, 바로
에이다 러브레이스 백작부인이 태어난 연도이다.
[3]
첫 버전인 Ada 83은 성능상의 문제가 있었다.