프로그래밍 언어의 근본적인 결함: 데이터 대 객체 논쟁

2025-08-21
프로그래밍 언어의 근본적인 결함: 데이터 대 객체 논쟁

저자는 기존 프로그래밍 언어들이 데이터와 객체를 다루는 방식에 근본적인 결함을 가지고 있다고 주장합니다. 데이터(예: 정수 1)와 객체(항등성과 가변성을 지닌 엔티티)를 구분해야 한다고 지적합니다. 많은 언어들이 둘을 명확하게 구분하지 못하여 코드 비대화 및 설계상의 문제로 이어집니다. 저자는 이상적인 언어는 개발자가 데이터 또는 객체 표현을 명시적으로 선택하고 적절한 지원을 제공할 수 있어야 한다고 생각합니다. 본 논문에서는 Java와 Haskell을 예로 들어 객체 지향 언어와 함수형 언어의 데이터 및 객체 접근 방식을 비교하고 Erlang의 장점을 분석합니다. 결론적으로 프로그래밍 언어 설계에서 데이터와 객체를 더 명확하게 구분함으로써 효율성과 코드 품질을 향상시켜야 한다고 주장합니다.

더 보기
개발 객체

타입: 소프트웨어 설계의 기반

2025-01-03
타입: 소프트웨어 설계의 기반

소프트웨어 설계는 단순히 함수를 작성하는 것 이상으로, 고차원적인 아키텍처에 관한 것입니다. 이 글에서는 타입이 가장 중요한 요소라고 주장합니다. 타입은 데이터 구조와 함수 인터페이스를 정의하며, 소프트웨어 설계의 이해와 소통에 중요한 역할을 합니다. 동적 타입 언어에서도 타입은 암묵적으로 존재합니다. 우수한 타입 설계는 코드의 가독성, 유지보수성, 신뢰성을 향상시키고, 추상화와 모듈화를 지원합니다. 이 글에서는 정적 타입과 동적 타입의 차이점, 그리고 제네릭 프로그래밍이나 종속 타입과 같은 다양한 타입 시스템이 설계에 미치는 영향을 살펴봅니다.

더 보기