Blaise: Object Pascal에 대한 현대적이고 레거시 없는 접근 방식

The Object Pascal 생태계는 오랫동안 몇몇 거물들에 의해 지배되어 왔습니다. 한쪽에는 강력하지만 독점적이고 Windows 중심적인 환경인 Embarcadero Delphi가 있습니다. 다른 한쪽에는 Free Pascal (FPC)과 Lazarus가 견고한 오픈 소스 대안을 제공하지만, 수십 년간의 진화 과정에서 쌓인 상당한 레거시 부담을 안고 있습니다.

이 분야에 Blaise가 등장했습니다. Blaise는 현대적인 셀프 호스팅(self-hosting) Object Pascal 컴파일러입니다. 기존 시스템을 패치하려는 시도 대신, Blaise는 "zero-legacy" 접근 방식을 목표로 하며, 효율적인 코드 생성을 위해 QBE 백엔드를 타겟팅하면서 언어의 강점을 바닥부터 다시 구축합니다.

The Vision: 짐을 덜어낸 Pascal

Blaise는 Pascal 생태계에 지속되어 온 "성가신 문제들"을 해결하기 위해 설계되었습니다. 많은 개발자에게 Pascal의 매력은 높은 가독성과 가비지 컬렉터(GC)의 오버헤드 없이 성능이 뛰어난 컴파일된 코드를 생성할 수 있는 능력에 있었습니다. 하지만 이를 달성하기 위해 사용할 수 있는 도구들은 종종 구식처럼 느껴졌습니다.

Blaise 프로젝트의 주요 목표는 다음과 같습니다:

  • Eliminating Legacy Cruft: 처음부터 새로 시작함으로써, Blaise는 하위 호환성을 유지하기 위해 오래된 컴파일러들이 감수했던 아키텍처 측면의 타협을 피합니다.
  • Modern Defaults: 이 프로젝트는 UTF-8 문자열 및 인라인 변수 선언과 같은 현대적인 표준을 구현하는 것을 목표로 합니다. 인라인 변수 선언은 모든 변수를 함수 시작 부분에 선언해야 하는 전통적인 Pascal의 요구 사항에 지친 개발자들에게 매우 요청이 많았던 기능입니다.
  • Improved Memory Model: 컴파일러는 메모리 모델을 더욱 직관적으로 만들고 레거시 Object Pascal의 함정에 빠지지 않도록 개선하고자 합니다.

Technical Architecture: QBE 타겟팅

Blaise에서 가장 독특한 기술적 선택 중 하나는 QBE 백엔드를 사용하는 것입니다. 많은 현대적인 언어에서 LLVM은 업계 표준이지만, 종종 무겁고 복잡하다는 비판을 받습니다. QBE는 가벼운 대안으로서, 높은 성능의 머신 코드를 제공하면서도 더 작은 점유율과 더 빠른 컴파일 시간을 제공합니다.

이 선택은 미니멀리즘과 효율성을 중시하는 Blaise의 전반적인 철학에 부합합니다. QBE를 타겟팅함으로써, Blaise는 슬림한 부트스트랩 프로세스를 유지하고 더 관리하기 쉬운 코드베이스를 가질 수 있어 컴파일러를 유지 관리하고 발전시키기가 더 쉬워집니다.

Community Perspectives and Skepticism

새로운 언어 구현체와 마찬가지로, Blaise는 개발자 커뮤니티로부터 다양한 반응을 이끌어냈습니다. 일부 사용자들은 프로젝트의 초기 개발 속도에 대해 회의적인 시각을을 보였으며, 한 댓글 작성자는 빠른 커밋 히스토리를 우려 사항으로 언급했습니다.

하지만 다른 이들은 저자인 Graeme Geldenhuys의 이력을 언급했습니다. 2010년부터 유지 관리되어 온 fpGUI 라이브러리의 제작자인 Geldenhuys는 많은 이들에게 Free Pascal 생태계에 대한 깊은 전문성을 가진 헌신적인 개발자로 인식됩니다. 이러한 경험은 언어를 내부에서부터 현대화하려는 프로젝트를 위한 강력한 토대대를 제공합니다.

The GUI Dilemma

많은 이들에게 Pascal의 주요 매력은 GUI 애플리케이션을 만드는 데 있어 역사적인 강점입니다. 반복되는 논의 주제는 Blaise와 같은 "순수한" 컴파일러가 통합된 IDE나 GUI 프레임워크 없이 이러한 사용자들을 만족시킬 수 있을지 여는 것입니다. Blaise는 컴파일러와 언어 사양에 집중하고 있지만, 커뮤니티는 이것이 궁극적으로 애플리케이션 개발로의 간격을격을 어떻게 메울 것인지 궁금해합니다.

Comparison with Other Ecosystems

흥미롭게도, Blaise의 등장은 다른 현대적인 시스템 언어들과의 비교를를 이끌어냈습니다. 한 관찰자는 Mojo 1.0 beta의 출시와 시기적으로 겹치는 것을 언급하며, Pascal의 가독성과 성능(GC 없이)의 조합이 현대 언어들이 다시 한번 채우려 하는 틈새 시장임을 시사했습니다.

Looking Ahead

Blaise는 Object Pascal이 레거시 제약 사항을 걷어내고 나면 현대적인 시대에도 여전히 유효하다는 것을 증명하려는 대담한 시도입니다. 깔끔한 구현, 가벼운 백엔드, 그리고 현대적인 언어 기능을 제공함으로써, "just Pascal" 경험이 오늘날 어떤 모습일 수 있는지를 보여줍니다.

이 프로젝트가 널리 확산될 수 있을지는 컴파일러를 넘어 지원 생태계를 구축할 수 있는지에 달려 있지만, Pascal의 우려한(elegance) 우아함과 슬림한 툴체인을 효율적으로 사용하는 것을 가중하는(valuing) 사람들에게, Blaise는 주목할 만한 가한한(valuing) 프로젝트입니다.

Sources