최근 수정 시각 : 2024-10-09 17:18:12

파스칼(프로그래밍 언어)

Pascal에서 넘어옴
프로그래밍 사이트 선정 프로그래밍 언어 순위 목록
{{{#!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 ]
[ 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 ]

}}} ||
프로그래밍 언어 목록 · 분류 · 문법

program Hello;
begin
  writeln ('Hello, world.');
end.
파스칼
Pascal
파일:pascal_logo.png
개발 니클라우스 비르트
최초 공개 1970년 ([age(1970-01-01)]년 전)
1. 개요2. 역사3. 설명4. 점유율과 플랫폼별 지원 상황5. 파스칼로 만들어진 프로그램들6. 개발환경
6.1. 델파이6.2. 라자루스
7. 대한민국내 사용자 커뮤니티8. 여담9. 관련 문서

[clearfix]

1. 개요

진정한 프로그래머는 파스칼을 쓰지 않는다.
Real programmers don't use pascal.
파스칼(Pascal)은 프로그래밍 언어의 한 종류이다. 분류상 C와 비슷한 고급 프로그래밍 언어에 속한다.

2. 역사

1970년에 스위스의 니클라우스 비르트(Niklaus Wirth)가 개발했다. 문법 설계가 깔끔하기 때문에 구조적 프로그래밍의 개념을 구현하고 설명하기에 알맞아서 교육용 언어로 분류된다.

실제로 1990년대 후반까지 미국의 고등학교와 대학에서 프로그래밍 교육을 위해서 가장 널리 사용된 언어였다. 하지만 경쟁 언어라 할 수 있는 C가 90년대 중반부터 대인기를 끌면서 밀리다가 21세기에 들어오면서 C++, Java 시대를 거치면서 존재감이 사라진 언어이다. 전성기 때 대표적이었던 Borland 사의 터보 파스칼(Turbo Pascal)이 사실상의 표준이 되면서 독자적 언어 사양을 늘려나가고, 이 과정에서 파편화가 점점 심해진 것도 나중에 문제가 되었다. 현재 남아있는 파스칼 사용 분야 대부분은 가장 성공했던 델파이(Delphi) 제품과 관련된다.

죽은 언어라고도 하는 이도 있지만 아직 죽지는 않았다. 사실상 언어라는 게 정말로 아예 안 쓰이는 것이 아니면 죽었다고 하기 어렵다. 그리고 그런 말이 나오면 귀신같이 화석들이 뛰쳐나와서 '나 아직도 프로그램 만든다. 안 죽었다!' 라고 하기 때문에 결판이 나지 않는다. 아래에서도 보이지만 Delphi라는 이름으로 아직도 시장에 출시되는 개발 툴도 있으며, 오픈소스 영역에서는 Free Pascal이라는 컴파일러도 출시된다. 웬만한 상용 프로그램의 수준을 능가하는 수준의 공개 프로그램도 활발하며 이를 사용한 Lazarus라는 통합 개발 환경도 지속적으로 개발되고 있다.[1]

컴퓨터 언어의 역사를 소개할 때 나오는 많은 언어들이 실제로 그 언어를 사용해볼 수 있는 컴파일러를 구하고자 할 때 인터넷을 아무리 뒤져도 구할 수 없거나, 구할 수 있어도 매우 조잡한 수준의 옛날옛적의 프로그램밖에 없는 경우도 흔한 현실[2]에서 파스칼 언어는 단 한 번의 검색으로도 꽤 훌륭한 개발환경을 지닌 컴파일러를 무료로 구할 수 있는 언어이다. 아직도 많은 일반 사용자와 팬들이 존재하면서 활동하고 있다는 것이다. 비록 주류 언어에서 밀려난 것은 사실이지만 무수히 많은 컴퓨터 언어 중에서 그래도 자기 자리를 아직도 지키고 있는 언어이다.

Ada라는 언어가 파스칼의 친척 쯤 되는 언어이다. 생긴 것도 비슷하다. 미국 국방부를 위하여 개발된 언어이고 무기제어, 항공우주산업 등에 쓰이고 있다. 영화에도 자주 출연한다.

3. 설명

교육용이라고 해서 진짜 교육을 목적으로 고안된 언어란 뜻은 아니다. 당시의 다른 언어(포트란, 코볼, 베이직)들이 비구조적 언어의 형태를 띤 고문 수준으로 복잡했기 때문에 '이 정도면 프로그래밍의 원리를 가르칠 때 쓰면 좋지'하고 내놓은 식. 문법이 엄격하고 다중으로 해석될 여지가 없어서[3] 프로그래밍 개념을 익히는 데 좋다는 의미 정도이다. 스펙이나 퍼포먼스를 비교해 봐도 C/C++에 뒤지지 않는다. 실제로 지금도 윈도우 기반의 기존 코드가 현장에서 쓰이고 있으며 고대에서는 C와 함께 양대산맥이었다. 매킨토시쪽에서는 오브젝트 파스칼이 상당히 세력있는 객체지향 개발 언어였으며, 포토샵 1.0도 오브젝트 파스칼로 개발되었다. 국내 압축프로그램인 빵집은 파스칼 기반의 델파이로 개발되었다. 2인의 제작자가 개발한 그녀의 기사단도 델파이, 또다른 지식의 성전시리즈도 파스칼로 개발되었다.[4] 애플 시대까지 거슬러 올라가면 위저드리 시리즈 초기작을 비롯한 많은 게임들이 파스칼로 개발되었다. 여담으로, 이는 사실 언어 자체가 특별히 탁월하다기 보다는 볼랜드 사의 터보 파스칼 시리즈가 워낙 품질이 좋아서 그런 것이다. 비주얼 스튜디오가 득세하기 전까진 프로그래밍 언어계에서 볼랜드가 甲이었던 시절이 있었다. 당시에는 C/C++보다 볼랜드 사 파스칼의 컴파일 속도가 매우 빨라서 사람들에게 매력적으로 다가왔다.

파스칼은 C와 마찬가지로 알골계 언어이므로 전체적으로 보면 C과 문법의 스타일이 조금 다른 것을 빼곤 큰 차이점은 없지만 여러 소소한 차이점이 있다. 그 중에서 중요한 문제 한 가지는, 배열이나 문자열 자체가 하나의 타입인 것이 아니고 배열과 문자열의 크기 및 범위까지를 포함해서 타입으로 정의한다는 점이다. 예컨대 Array 1..10 of Integer 와 Array 2..8 of Integer 는 서로 다른 타입이다.[5] 이 때문에 컴파일러에서 배열의 범위 검사 등을 하기가 매우 용이해졌기 때문에 더 높은 안전성을 보장하지만, 임의의 길이의 배열을 변수로 받는 함수 등을 정의할 수 없다는 점은 많은 프로그래머들, 특히 C 등의 언어에 익숙한 프로그래머들이 쉽게 받아들이기 어려운 것이었다. 이 때문에 여러 상업용 컴파일러들이 이를 수정한 문법을 제시하였지만, 이런 부분은 표준이 아니라서 서로 호환되지 않는다.

특히 '문자열을 저장할 때 그 길이를 같이 저장한다'라는 개념은 일명 '파스칼 식 문자열'로 불리며, 문자열의 끝에 특수한 기호를 두어 끝을 표시하는 'C 식 문자열' 과 함께 전산학에서 중요한 떡밥이 되었다. 파스칼 식 문자열은 용량에 있어서 손해를 보고 길이가 수정될 때마다 매번 길이를 계산해서 업데이트해 줘야 하지만 긴 문자열들을 처리할 때 속도상에 이득이 있다. (길이를 구할 때, C 문자열의 경우 무조건 처음부터 훑으면서 처리해야 하는 반면 파스칼 식 문자열은 바로 길이를 얻을 수 있다. 참고로, C++의 std::string도 길이를 같이 저장한다.) 이 때문에 많은 수의 데이터를 빠르게 처리해야 하는 Microsoft Excel에서는 C언어 계열로 만들어졌지만 자체적으로 파스칼 식 문자열 저장 형식을 만들어서 각 '셀'의 정보를 저장한다.

파스칼에서도 포인터를 지원하며 또한 함수와 프로시저를 구분하는데, 리턴값이 있는 것이 함수이며 없는 것이 프로시저이다. 프로시저는 C에서의 void 타입 함수와 유사하다. 파스칼에서는 함수나 프로시저 내부에서 다시 함수나 프로시저를 정의해서 해당 함수/프로시저 내부에서만 사용하도록 할 수 있다. 파스칼 함수의 리턴값은 함수 중간의 어디에서나 할당될 수 있으며, 리턴값을 할당한 후에도 함수는 코드 마지막까지 계속 실행된다. 확장자는 .pas를 쓴다.

이래저래 콩라인을 타면서 우여곡절이 많았던 언어. 파스칼이 처음 나왔던 시기만 해도 '대세 언어'는 아니었으며, 실무에서 쓰이는 많은 고전 언어들에 밀려 교육용으로 좋고 많이 알려진 언어 중 하나 수준이었다. 고전 전산 개그(?)인 "Real programmers don't use pascal'[6]을 보면 많은 현역 프로그래머들이 파스칼을 '뭐 나쁘진 않은데 진지한 업무현장에서 쓸 만한 건 좀 아니지 엣헴' 하면서 자기 나름대로 선을 긋고 있었음을 알 수 있다.[7] 심지어 C 언어의 아버지 중 하나인 커닝햄은 '내가 가장 좋아하는 언어가 파스칼이 아닌 이유[8]'라는 글까지 썼다. 물론 이런 이야기들은 자동차 동호회의 논쟁처럼 극히 편파적인 말들인 것도 사실이다.[9]

이후 고전 개인능력과시(...) 언어[10]의 시대가 저물어가면서 파스칼 같은 언어가 살아나나 싶었더니만 C가 미친듯이 성장하면서 파스칼은 물론 다른 언어들까지 땅바닥에 처박히게 되며, '좋기는 좋은데 하여간 대세는 안되는 언어'로 지내며 시들시들 고사위기로 접어들게 된다. 이 때문에 국내 파스칼/델파이 커뮤니티를 보면 뭔가 비주류 웹사이트의 스멜을 느끼지 않을 수가 없다. 전체적인 유저 연령대도 높고, 대상도 윈도우 클라이언트 쪽에 고여있다. (델파이를 인수한 엠바카데로에서는 여러 플랫폼 지원을 광고하면서 노력하지만 완성도는 떨어진다.) 주기적으로 델파이가 죽었느냐, 아니 안죽었다, 아직 내 주위에서는 현역이다 등의 화제가 올라오면서 대세에 대한 불안정함을 느낌과 동시에 델파이로 다진 유저들의 입지를 보며 안심하는 일의 반복.

현실적으로는 COBOL과 비슷한 길을 가고 있다. 레거시 시스템이 아직 상당히 여기저기에 남아 있어 일감이 단기간 내에 없어질 일은 없는데다, 현업에 있는 파스칼 개발자들의 업무 자체가 상당히 Lock-in된 환경을 구성하기 때문에 작은 범위에서나마 유지보수의 순환 수요가 끊이지 않기 때문에 정말로 인기가 없는 언어처럼 훅 하고 사라질 일은 없어보이지만, 어디까지나 매우 제한된 곳에서의 생태계이고 인구 저변이 확장될 기미가 거의 없기 때문에 새로 진입할 만한 동기요인은 없다시피하다. 이것은 해외에서도 마찬가지로, 해외 파스칼 포럼도 노땅냄새가 풀풀 풍기는 상황. 의외로 남미나 인도 같은 제3세계 국가에서 '우리나라에 아직 굴러가는게 꽤 있어서 일거리 많아요' 라고 하는 사람이 많다. 마더러시아쪽에서 쓰이는 경우도 많은 듯하고, 미국의 소프트웨어는 왠지 싫어 하는 유럽쪽에서도 쓰이는 듯 하다. 뭐니뭐니 해도 개인 취미용으로 쓰기에는 차고 넘친다.

4. 점유율과 플랫폼별 지원 상황

C나 C++에 밀려서 사라질 듯 했던 파스칼은 객체지향을 받아들이면서 부활했다. C에서 C++이 파생된 것처럼 파스칼에서도 Object Pascal이라는 놈이 파생된 것인데, C++을 따라잡기 위해 OOP 개념을 적극적으로 도입했다.

애플에서 처음 만든 Object-Pascal은 당대의 메이저 컴파일러 제작사인 볼랜드 사가 1989년에 Turbo Pascal 5.5 부터 이것을 지원하기 시작하면서 급부상했다. 의외라고 생각할지 모르지만, 애플은 1980년대 초기부터 애플 Lisa 와 MC68K 계열 CPU가 탑재되던 구형 매킨토시 컴퓨터에서 사용할 프로그래밍 언어의 개발을 진행했으며, 그 산물 중 하나가 바로 이 Object-Pascal 이다.[11]

Turbo C/C++에 이은 쓸만한 언어로 취급받던 Object Pascal은 Borland Delphi[12]로 탄생하며 시장에 충격을 주었다. 초창기에는 비주얼 베이직을 가볍게 쌈싸먹는 생산성과 기능 지원, 효과적인 컴파일을 통해 얻은 C++과 거의 맞먹는 성능으로 국내에서도 많이들 사용했다. 당시 MS 비주얼 C++의 MFC는 기껏 해야 열 몇 개, 성능을 상당히 희생하고 직관적인 시각적 다이얼로그 편집을 추구한 비주얼 베이직이 몇 십 개 정도의 드래그-드롭 컨트롤을 가지고 있었던 데 반해, 델파이는 시작부터 윈도우 API의 거의 모든 기능과 어지간한 표준 라이브러리를 망라한 백 몇 십 개의 컴포넌트를 가지고 있었다. 이게 단순히 GUI 컴포넌트만 이러한 형태로 존재하는 것이 아닌, 네트웍 소켓 등의 눈에 보이지 않는 것들도 죄다 컨트롤로 때려박아 넣어서 말 그대로 마우스로 드래그 앤 드롭을 한 다음, 설정 창에서 파라미터를 조금 고쳐주고 이벤트 핸들러 등에 코드를 적어주는 식으로 프로그래밍이 가능한 본격적인 객체 지향 언어였다. 거기에 Turbo Pascal 시절부터 보여줬던 사기급의 빛과 같은 컴파일 속도 또한 Delphi도 그대로 가지고 있었다. 정보처리기사 실기 시험을 직접 프로그램을 작성하여 코드를 제출했던 2005년 이전 시험방식에서 사용 언어로 Delphi를 지원할 정도로 사용자가 많았다. 현재는 마이크로소프트의 물량공세에 사용자가 많이 줄었지만, 아직도 FA나 증권사 쪽에서는 독보적인 점유율을 가지고 있다. 델파이의 뛰어난 고속 개발 환경(Rapid Application Development Environment)는 C++ Builder를 통해 계승되었고, 볼랜드 사가 망한 이후엔 그 개발자(Anders Hejlsberg)가 MS에 스카웃되어 현재 C#에서 그 개념을 찾아볼 수 있다.

파스칼과 델파이도 오픈소스로 제작된 것이 있다. Free Pascal, Lazarus가 그것이다. 파스칼의 호환성을 훌륭하게 재현했으나[13][14], 아무것도 안하는 Hello World 류 프로그램의 실행파일 크기가 Free Pascal 은 2 MB, Lazarus 는 22 MB라는 무식한 용량을 자랑한다.[15] 그래도 꽤 잘 만들어놔서 파스칼과 델파이를 공부하는 용도로 전혀 손색이 없을 정도를 넘어 정식 프로그램개발에도 충분할 정도이다. 더구나 윈도우, 리눅스(x86, ARM), OS X(x86, PPC) 등의 다양한 플랫폼을 지원한다. 동일한 소스코드로 컴파일하여도 다양한 플랫폼의 애플리케이션을 얻을 수 있는 것이다.

파스칼에서 파생된 언어로는 Modula, Modula-2, Oberon 등이 있다.

TIOBE의 장기적 변화에 의하면 파스칼은 2015년 기준 13위에서 2020년 242위로 떡락해 버렸다... 다만 델파이/오브젝트 파스칼이 29위에 올라 있는 것을 보면 오리지널 파스칼과 델파이/오브젝트 파스칼의 구별 과정에서 이렇게 된 듯 하다.

5. 파스칼로 만들어진 프로그램들

  • 파일 매니저 프로그램으로 유명한 토탈 커맨더(Total Commander)가 x86은 Delphi, x64는 Lazarus로 개발되고 있다.[16][17]
  • DAW FL Studio 역시 델파이로 개발되며 계속 업데이트되고 있다. 다만 이 때문에 유저들의 원성에도 불구하고 64비트나 타 플랫폼 지원(대표적으로 OS X, Android나 iOS 등의 모바일 플랫폼)이 상당히 늦어지기도 했다. C++ 같은 언어와는 달리 델파이 컴파일러나 라이브러리가 해당 플랫폼들을 지원하기 전까지 아무런 손을 쓸 수가 없었기 때문이다.
  • 빵집이 파스칼로 개발되었다.
  • Cheat Engine이 파스칼로 만들어졌다.[18]
  • Skype(윈도우용)도 파스칼로 만들어졌다.
  • 도스시절 국내를 평정한 도스셸 프로그램 Mdir이 파스칼로 만들어졌다.[19] 국내 한정으로 시대를 통틀어서 파스칼로 만들어진 프로그램 중에 가장 영향력 있는 프로그램이다.
  • 애플 II 시절, 위저드리도 파스칼로 만들었다고 한다.[20]
  • PLC에서도 사용한다. 국제 표준인 IEC 61131-3은 PLC 프로그래밍을 위한 5가지 언어 표준인데, 그 5가지 중 1가지인 ST언어는 파스칼 기반의 언어이다.

6. 개발환경

6.1. 델파이

#!syntax cpp
procedure button1Click(Sender : TObject)
begin
  showmessage('Hello, World!');
end

Delphi는 Object Pascal 컴파일러와 RAD (Rapid Application Development)를 위한 IDE( 통합 개발 환경)로 이루어져 있으며, Embarcadero Technologies에서 개발과 유지 보수를 하고 있다. desktop, mobile, web, and console software를 개발할 수 있다고 하지만 VCL 컴퍼넌트를 중심으로 한 Windows용 개발과 FMX component를 중심으로 한 mobile 개발이 주요 대상이다.

고대에는 델파이의 IDE는 델파이로 개발하였다. 흔히 '델파이는 델파이로 만들어졌다'고 하는데 이것을 두고 하는 말이다.[21] 물론 그것도 델파이 7까지의 이야기이고, 현재 매년마다 출시하는 델파이 XE 시리즈의 IDE는 닷넷을 기반으로 하고 있다.

구관이 명관이듯이 델파이 7이 출시된지 20년도 넘었지만[22], 높은 안정성, 빠른 컴파일 속도, 낮은 하드웨어 필요 사양 덕분에 2024년 현재에도 현역으로 잘 사용된다. 가볍게 실행되는 win32용 단일 실행화일을 빠르게 개발할 수 있다는 장점도 빼 놓을 수 없다.[23] 물론 Delphi 7의 설치후 기본 상태에서는 Delphi가 자랑하는 VCL로 구성하는 GUI가 XP시절에 머물며, 유니코드를 지원하지 않아 한국어가 아닌 다른 언어권의 요즘 Windows에서 운용할 때는 문제가 있을 수도 있다. 그러나 Delphi답게 사용자들이 만들어 공개한 유니코드를 지원하는 VCL들이 많으며, 이를 설치하여 사용하면 된다.[24] 이러한 사용자의 기여가 가능한 이유에는 잘 설계된 VCL이란 라이브러리와 VCL의 모든 코드가 포함되어 있어 버그 및 개선이 제 3자에 의해 지속적으로 이루어졌기 때문일 것이다. 그러나 compiler의 한계는 넘어 설 수 없다. 예를 들면 x64지원이 안되어 win32지원에 머물러 있거나, 최근의 Delphi에서 지원되는 확장 기능등은 지원할 수 없다.[25][26]

아쉽게도 델파이 7과 비교하여, 현대의 델파이는 버그가 많고 기능이 불완전하다는 평을 받고 있다. 매년마다 출시하는 델파이 XE 시리즈의 IDE는 닷넷을 기반으로 한다. XE 개발 당시 닷넷 개발까지 고려하여 IDE를 설계했기 때문이라고 하는데, 결과적으로 IDE가 매우 무겁고 고쳐지지 않는 버그가 끊이지 않는 등 상당한 문제가 있다. 경쟁 제품이라고 볼 수 있는 비주얼 스튜디오와 비교하면 부족한 점이 많아 전면적인 개선이 필요하지만, 개발사가 경영 문제로 여러 번 인수, 합병을 거치고 모바일 플랫폼 위주의 전략을 펼치다보니 버그는 고치지 않고 새 기능이 추가된 듯 보이게 하여 구독권만 팔고 있냐는 비아냥을 듣고 있기는 하다.

6.2. 라자루스

Object Pascal이 컴파일러이며 델파이가 개발환경인 것 처럼, Free Pascal이 컴파일러이며 Lazarus가 개발환경이다. 자세한 설명은 생략한다. 가장 큰 장점은 윈도우, 맥, 리눅스를 지원하는 크로스 플랫폼 소프트웨어를 단일 코드로 개발할 수 있다는 것이다.

7. 대한민국내 사용자 커뮤니티

2000년대 초반에 비하여 위세가 많이 줄어 들었지만, 아직 몇몇 사용자 모임은 활발히(?) 활동하고 있다.

8. 여담

Borland Delphi 2007의 경우 C#과도 연동할 수 있게 되는 등 마이크로소프트의 공세 속에서도 꿋꿋이 살아남으면서도 대세를 따라가는 모습을 보이고 있다. 다만 2009부터 C# 지원이 중단되었는데, C# 개발자는 전부 MS의 개발툴을 사용하기 때문이다. 엠바카데로(구 볼랜드)에서는 델파이에 대한 애착이 커서, C++ Builder보다 델파이에 더 지원 노력을 기울인다는 인상을 받게 된다.

전통적으로 델파이와 C++ 빌더의 IDE, 그리고 델파이 컴파일러는 델파이로 제작한다. 그리고 희한하게도, 차기 윈도우 지원이 MS의 개발툴보다도 훨씬 빠르다. 예를 들면 오피스 2007이 나오기 전 리본 인터페이스를 지원한다든가, 윈도우 7 스펙이 나오자 마자 터치 스크린 및 멀티 마우스 포인터 지원을 추가하는 등. 메이저 컴파일러 시장에서 빠르게 신기술을 지원하는 축에 속한다. 델파이 XE2 에서는 64비트를 지원하는 김에 추가로 OS X 리눅스, iOS, 안드로이드까지 지원한다.

델파이는 신기술 지원 추가에 열성적인 반면, 그 기능 자체의 완성도와 사후지원이 미비하다. 새로운 버전이 매년 판매되는데, 해당 버전에서 기능들이 추가되어도 이러저러한 버그가 많아 문제가 있는 경우가 많고 몇 단계의 버전을 거치면서 수정이 되어야 비로소 안정적이 되거나, 혹은 지원이 부실한 채 남겨지는 일이 많다. 마케팅용 스펙 추가에 급급하다는 이야기가 관련 커뮤니티에서 나온다. 우선순위에 대한 불만의 예는 2009 버전이 되어서야 비로소 유니코드가 기본 사용되었다는 점 등이 있다. 매년 새로운 버전이 나오고 업그레이드하려면 비용을 지불해야 하는데 그만한 당위성이 뚜렷하지 못해 구 버전에 남아있는 사용자들이 많다 (델파이 사용자들 상당수가 레거시 코드 이용자라는 점도 있다)

볼랜드에서 Delphi 핵심 개발자였던 앤더슨 헤즐버그가 마이크로소프트로 이직하고서 만든 언어가 유명한 C#이다. 그래서 그런지 C#을 포함한 닷넷 프레임워크의 개발환경이나 개발방법을 보면 Delphi와 매우 유사한 것을 느낄 수 있다.

현재 사용되고 있는 프로그래밍 언어 중에서 네이티브 코드를 만들어내는 언어를 선택한다고 하면 C/C++를 제외하면 Free Pascal, Delphi가 두 번째로 올 수 있다. Java, C#, Python, PHP, Visual Basic, Ruby 등등 모두가 가상머신 또는 런타임 환경이 필요한 언어이다. 다만, Go Rust의 등장으로 네이티브 코드를 생성하는 언어 중에서도 예전만 못한 실정이다.

여담으로, Scala를 만든 Martin Odersky 교수는 바로 이 파스칼을 만든 Niklaus Wirth 교수의 지도로 박사학위를 받았다. Niklaus Wirth는 취리히 연방 공과대학교의 교수로 재직했고, Martin Odersky는 EPFL의 교수로 있으며, 이 두 학교는 유럽의 MIT라 불리는 스위스 연방 공과대학(ETH Domain)을 이루고 있다.

9. 관련 문서


[1] 단, 파스칼 옛 유저들이 자랑스러워하는 '빠른 컴파일 속도'는 구 볼랜드 사의 델파이 IDE에 한정되고 있어서, Lazarus는 상당히 느린 편이다. [2] 즉, 이 경우는 개발한 사람에게서도 버림받은 것이다. [3] 요즘 보면 이해가 안 가지만 예전에는 언어 스펙만 보고 그대로 만들다 보면 귀에 걸면 귀걸이 코에 걸면 코걸이로 어떻게 작동할 지 하나로 집어야 하는 언어들도 많았다. [4] 정확히는 1편인 또다른 지식의 성전이 파스칼로 제작되었다가 이후 C언어로 포팅되어 재배포되었으며, 이후 작품들은 C언어로 제작되었다. [5] 파스칼에서는 배열의 인덱스 첫 번째가 0으로 고정되어 있지 않고 사용자가 임의로 지정할 수 있다. [6] 무려 1983년 등장했다! [7] 이 글에 따르면 파스칼이나 ADA는 분홍겅쥬들이나 쓰는 기집애 언어다(...) 이 와중에 C는 '쓰기 나름으로 좋을 것 같다' 라는 호평을 해 준다. [8] 여기에서 지적된 많은 문제점들은 이후에 이래저래 보완 수정되기는 했다. [9] 그런데 위의 글에서 진짜 프로그래머가 쓰는 언어는 무엇이냐 하면 어셈블리어나 16진수 기계어, 포트란 등이라고 하는 것이다! [10] 어셈블리어로 남들이 못 알아보게 복잡하게 프로그래밍해야지 천재처럼 취급받는 암흑시대가 있었다. [11] 하지만 볼랜드가 이 Object Pascal을 도입한 후에는 자기맘대로 진화를 거듭하였기 때문에 지금의 Delphi의 언어는 Object Pascal이라고 불리기는 하지만 그 Object Pascal하고는 아득히 먼 언어가 되었다. 볼랜드(망하기 전)에서도 Delphi 언어라고 불러달라고 했을 정도이다. [12] 현재는 개발 툴 부분이 분사되어 엠바카데로에 인수되었다. 따라서 엠바카데로/코드기어 브랜드를 사용한다. [13] 문서에도 나오지만 Lazarus는 Delphi 6을 목표로하여 개발되었다. 따라서 델파이와 많은 부분에서 서로 소스레벨에서 호환된다. 하지만 Free Pascal 컴파일러를 사용하고 있고 VCL을 클론한 LCL의 효율에 문제가 있어서 컴파일속도는 델파이보다 많이 느린 편이다. [14] LCL이 느린 이유는 근본적으로 멀티플랫폼용으로 개발되었기 때문에다. 즉 VCL처럼 Windows만을 위한 것이 아니라 Linux, Mac OS를 모두 지원하도록 만들어야 하기 때문에 여러 가지 제약이 많을 수밖에 없다. [15] 프로젝트 옵션에서 debug info 포함을 해제하면 각각 30kb, 1MB 내외의 정상적인 크기가 된다. 디버깅 정보를 다른 툴처럼 별도의 파일로 만들지 않고 실행파일에 포함시키기 때문이다. [16] https://en.wikipedia.org/wiki/Total_Commander [17] 원래 Delphi로 개발되어 유니코드 지원이나 x64 지원 등이 다소 지연되었다. [18] https://github.com/cheat-engine/cheat-engine [19] 순정 배포판을 설치해서 처음 실행시켜서 처음 경로 열기를 하면, 터보 파스칼의 경로가 이전에 사용한 경로로 입력된 창이 뜨기 때문에 터보 파스칼로 컴파일 되었음을 알 수 있다. [20] 매뉴얼에 따르면 파스칼을 이용해 14,000여줄의 코드로 만들었다고 한다. [21] 현대 C++ 컴파일러들이 C++로 만들어지는 것에 대해 대응되는 발언이다. [22] 2002년 8월에 출시되었다. 개발환경이 매우 가볍다는 것과 한창 프로그래밍 붐이 일던 IT, 벤처 시기에 출시된 꽤 완성도 있는 개발툴이란 점도 중요하다. [23] 닷넷이 필요하다거나, 무거운 DLL을 덕지 덕지 붙이지 않고, 작고 귀엽고 빠른 단일 실행 화일을 얻을 수있다. 실행화일만 만들어지면 XP에서 부터 windows 11까지 실행된다. [24] 예를 들면 Tnt Delphi UNICODE Controls Project [25] 한때 토탈 커맨더가 Delphi 7을 마개조하여 사용하고 있다는 카더라 설이 있었다. 그래서 토탈 커맨더의 x64 지원이 늦어졌다고... [26] Delphi 7을 마개조하여 공개하고 있는 사람들도 있으나, Delphi는 Borland사의 상품이므로 구하여 사용하는 것은 저작권에 위배될 수 있어서 사용하지 않는 것이 좋다. (delphi 7.2라던가...)