Free Pascal Compiler와 Lazarus IDE의 완전한 동적 패키지 지원을 처음으로 공개하게 되어 기쁨. 여러 자유·오픈소스 소프트웨어 기여자의 노력으로 20년 넘게 걸려 실현한 기능임.
이제 IDE 전체를 다시 빌드하지 않고도 몇 초 만에 컴포넌트, 컨트롤, Lazarus 확장 기능을 만들고 설치할 수 있음. Free Pascal에서도 동적 패키지 라이브러리를 통해 네이티브 Pascal 클래스와 타입을 노출하는 플러그인을 개발하고 배포할 수 있음.
이를 위해 컴파일러, 런타임, Lazarus IDE를 대폭 개선했고, 패키지 작업을 편하게 해주는 IDE 확장도 추가로 제작함. 자세한 내용은 위 링크에서 확인할 수 있음.
Embarcadero의 Delphi가 새 버전마다 나빠지는 와중에 자유·오픈소스 대안이 있어 반가움.
Pascal/Lazarus/Delphi는 개발 과정에서 빠른 반응성과 균형을 참 잘 갖추고 있음.
Delphi 패키지와 비슷한 기능으로 이해하면 될까?
Free Pascal을 정말 좋아함. Claude, Codex, Qwen으로 코드를 작성해 봤지만, 모든 모델이 컴파일되지 않는 코드를 즐겨 만들어 내고는 해결 과정에서 심하게 꼬이는 듯함.
그래도 사람이 빠르게 뚝딱 만들어 제대로 돌아가게 하는 언어로는 내게 여전히 1순위임.
90년대 이후 Pascal로 프로그래밍하지 않았지만, 그 설계 철학과 Turbo Pascal의 빠른 개발 환경은 늘 높이 평가함.
요즘 인기 있는 언어와 개발 방법론, 프레임워크, 특히 JavaScript와 Python 같은 인터프리터 언어 주변 생태계에 점점 실망하고 있어 이번 기회에 살펴보려 함.
정규 릴리스보다 앞서 FPC와 Lazarus에 기능을 추가하고 지원하기 위해 getlazarus.org를 13년째 운영하고 있음. 동적 패키지도 오랫동안 작업해 왔으며, 메인라인에 병합 요청을 보내기까지는 시간이 좀 필요함.
보통 충분한 시간과 피드백을 거치면 이런 기능을 정식 릴리스에 통합하고, getlazarus에서는 다음 기능 개발로 넘어감.
요즘 Pascal을 많이 사용하는지 궁금함. 80년대 전기공학 석사 과정의 여러 수업에서 배웠지만, 실무에서는 직접 사용한 적도 없고 Apple 외에 사용한다는 얘기도 들어본 적이 없음.
그동안 현대적인 프로그래밍 기법을 수용하며 발전했겠지만, 선택할 언어가 많고 교육에서도 거의 다루지 않는 지금 프로젝트에 Pascal을 선택하는 이유는 무엇일까?
지난번 Lazarus를 써봤을 때 Delphi와 비교해 가장 의아했던 FPC의 제약은 변수를 블록 맨 위가 아닌 임의 위치에 선언할 수 없다는 것이었음. 무슨 이유인지 여전히 C89 같은 선언 방식에 머물러 있는데, 생태계가 정체되면 이런 결과가 생기는 것일지도 모르겠음.
그 기능은 Delphi 팀이 클로저 지원을 위해 추가한 것임. 내부적으로 인터페이스를 만들고 로컬 스택 정보를 채워 넣는 구현이라 개인적으로는 엉성하다고 봄.
C#의 람다 함수, 표현식 트리, 특히 개발 도구를 높이 평가하지만, Free Pascal과 Lazarus는 이런 편의성과 네이티브 코드 연동 사이의 절충안으로 만족스러움. libcairo, libxml2, libssl, libsdl, OpenGL 같은 C 라이브러리는 Free Pascal에서 훨씬 쉽고 쾌적하게 쓸 수 있으며, C#이나 Java에서는 다루기가 더 까다로움.