Introduction
안녕하세요. 환영해요. 다들 잘 지내고 있길 바라요.
6월은 Exercism에게 큰 달이었어요. Premium 출시와 10주년 기념이 있었거든요.
그리고 Summer of Sexps 기간에 Lisp를 가지고 재미있게 놀았길 바라요.
이제 2023년의 일곱 번째 달, 여섯 번째 테마의 달인 Jurassic July로 넘어가 볼까요.
Jurassic이 무슨 뜻일까요?
음, 이 언어들이 멸종했다는 뜻은 아니에요. 물론 요즘 COBOL로 새 소프트웨어를 작성할 일은 거의 없지만요.
그래도 이들은 가장 오래된 언어들에 속해요. 어떤 것은 60년이 넘었죠.
이 언어들로 엄청난 양의 소프트웨어, 특히 기업용 소프트웨어가 작성되었어요.
모두 대단히 성공한 언어들이에요.
그래서 어떤 언어들이냐면, C, C++, COBOL, Fortran, Visual Basic을 살펴볼 거예요.
이 영상에서는 C와 C++를 다루지 않아요. Mechanical March에서 이미 다뤘거든요. 그 언어들에 관심이 있다면 그 영상을 확인해 봐요. 대신 COBOL, Fortran, Visual Basic은 곧 살펴볼 거예요!
The badges
이번 달에 그 언어들 중 하나로 연습 문제 5개를 완료하면 배지를 받을 수 있어요.
그리고 연간 배지를 받으려면 다음을 완료해야 해요:
- Bob: 문자열과 조건 논리 다루기
- Allergies: 문자열, 숫자, 비트 연산 다루기
- Reverse String: 문자열의 문자 순회하기
- High Scores: 숫자 배열 순회하기
- Armstrong Numbers: 숫자와 루프/반복 다루기
Overviews
Fortran
-
1950년대에 IBM의 John Backus가 IBM 704 메인프레임 컴퓨터를 프로그래밍하기 위해 어셈블리 언어보다 더 실용적인 대안을 개발하려고 시작했어요
-
과학 및 공학 애플리케이션을 만드는 데 적합하도록 설계되었어요 (이름은 Formula Translating System의 줄임말이에요)
-
최초의 고급 프로그래밍 언어예요 (코드 줄 수를 약 20분의 1로 줄여줘요)
-
최초의 최적화 컴파일러이기도 해요 (컴파일러가 손으로 작성한 어셈블리 언어에 버금가는 성능의 코드를 생성할 수 없다면, 고객들은 고급 프로그래밍 언어 사용을 꺼렸어요)
-
정적 타입 언어이자 강타입 언어예요
-
처음에는 명령형 프로그래밍만 지원했지만, 곧 절차적 프로그래밍이 추가되었어요. 이후 확장으로 객체 지향 프로그래밍과 배열 프로그래밍 같은 다른 패러다임도 지원하게 되었어요
-
1966년 Fortran 66으로 처음 표준화되었고, 2018년에 마지막으로 업데이트되었어요!
-
Basic부터 ALGOL까지 많은 언어에 영향을 주었어요. 초기 프로그래밍 언어 연구의 상당수는 Fortran을 개선하려는 목적이었죠
-
여전히 활발히 개발되고 있고 새로운 기능이 추가되지만, 강력한 하위 호환성도 보장해요 (오래된 코드도 대개 여전히 컴파일되고 실행돼요)
-
coarray를 이용한 내장 병렬 처리를 지원해요. coarray는 병렬성을 안전하고 효율적으로 표현하는 방법이에요. 함수를 pure로 표시할 수 있는데, 이는 컴파일러가 병렬 컴퓨팅에 맞게 최적화하는 데 도움이 돼요
-
allocatable 변수를 이용한 안전한 메모리 관리도 지원해요. 여기서는 컴파일러가 메모리 해제를 담당해요.
-
C와의 상호 운용성을 기본으로 지원해요
COBOL
-
1959년 CODASYL 컨소시엄(미국 국방부의 후원을 받았어요!)이 비즈니스 애플리케이션 개발 비용을 낮추기 위해 설계했어요 (이름은 Common Business-Oriented Language의 약자예요)
-
1968년에 표준이 되었고, 최신 개정판은 2014년에 나왔어요
-
IBM COBOL, GnuCOBOL(C로 컴파일돼요), 그리고 JVM과 .NET 런타임 모두에서 실행되는 Micro Focus™ Visual COBOL 등 여러 구현이 있어요
-
정적 타입 언어예요
-
다중 패러다임 언어로, 명령형과 객체 지향 프로그래밍을 지원해요
-
키워드가 많아 장황하지만 문법이 사람이 읽기 아주 쉬워요. 가독성과 유지보수에 유리해요
-
안정적인 명세 덕분에 하위 호환성이 좋아요. 오랜 실전에서 검증되었죠
-
성능이 좋아요 (금융 분야에서 쓰여요)
Visual Basic
-
Microsoft가 .NET 런타임에서 실행되는 Visual Basic의 후속으로 개발했어요 (Visual Basic 2003 이후로 .NET 접미사는 떨어져 나갔어요)
-
첫 버전은 2002년에 출시되었고, 2023년에 언어가 "안정" 상태로 표시되었어요. 이는 새로운 문법이 더 이상 추가되지 않는다는 뜻이지만, 여전히 지원되는 언어예요
-
문법은 대부분 Visual Basic과 공유하지만, 일부 변경되었어요
-
강타입과 약타입을 모두 지원하는 정적 타입 언어예요
-
다중 패러다임 언어로, 주로 객체 지향이지만 명령형과 이벤트 기반 프로그래밍도 지원해요
-
배우기 쉬워요 (Visual Basic은 배우기 쉽도록 설계되었어요)
-
객체 지향 프로그래밍 지원이 뛰어나요
-
검증된 .NET 런타임에서 실행되며, 모든 .NET 라이브러리에 접근할 수 있어요
-
ClickOnce 배포로 쉽게 배포할 수 있어요
Use cases
Fortran
일기 예보, 천문학, 구조 공학 등 고성능 컴퓨팅(슈퍼컴퓨터) 환경에서 쓰여요. CAD 소프트웨어에도 쓰이고, 많은 애플리케이션이 FORTRAN을 기반으로 만들어졌어요. 예를 들어 여러 NumPy 모듈이 FORTRAN 77 라이브러리를 사용해요.
COBOL
금융 분야에서 많이 쓰여요. 많은 금융 시스템이 여전히 상당 부분 COBOL 소프트웨어로 돌아가죠 (추정에 따르면 금융 거래의 약 80%가 COBOL로 처리돼요). 다만 요즘은 대부분 유지보수 위주예요. 많은 비즈니스 애플리케이션에도 쓰이고, Walmart에서 쓰이는 키/값 저장소에도 사용돼요.
Visual Basic
GUI(예: 데이터베이스 인터페이스)와 서버에서 생성되는 웹사이트에 쓰여요. Boeing, Wells Fargo, General Electric 같은 기업이 사용해요.
How do they differ from a programming perspective?
Fortran
처음에는 명령형 프로그래밍만 지원했지만, 곧 절차적 프로그래밍이 추가되었어요. 이후 확장으로 객체 지향 프로그래밍과 배열 프로그래밍 같은 다른 패러다임도 지원하게 되었어요.
COBOL
다중 패러다임 언어로, 명령형과 객체 지향 프로그래밍을 지원해요.
Visual Basic
다중 패러다임 언어로, 주로 객체 지향이지만 명령형과 이벤트 기반 프로그래밍도 지원해요.
Standout features
Fortran
- 성능이에요. Fortran 언어와 그 데이터 타입/자료 구조는 효율적이고 뛰어난 성능을 내도록 설계되었어요. 그래서 슈퍼컴퓨터에서 쓰여요
- 기본적으로 많은 수학 함수를 지원해요
- 배열 프로그래밍은 직접 순회하거나 배열 경계를 지정하지 않고도 배열과 배열의 일부 구간에 연산을 적용할 수 있는 아주 깔끔한 방법이에요
COBOL
- 고정 소수점 연산은 부동소수점 수와 달리 반올림 오류가 없어요. 그래서 금융에 아주 잘 맞아요
- 파일(레코드)을 읽고 쓰는 데 뛰어나요
- 보고서 생성을 기본으로 지원해요 (비즈니스 애플리케이션에서 인기를 끈 또 다른 이유죠)
Visual Basic
- Windows Forms로 GUI 애플리케이션을 만드는 데 뛰어나요. 드래그 앤 드롭 WYSIWYG 편집기를 제공해요
- 리팩터링, 코드 완성 등 수많은 기능을 갖춘 훌륭한 IDE 지원이 있어요
Which to try?
- 과학 계산이나 고성능에 관심이 있다면 Fortran이 훌륭한 선택이에요
- 예전에 비즈니스 애플리케이션이 어떻게 만들어졌는지 느껴보고 싶다면 COBOL이 좋아요
- GUI 애플리케이션을 만들고 싶거나 이미 .NET 플랫폼에 있다면 Visual Basic이 아주 잘 맞아요
- 프로그래밍의 역사에 관심이 있다면 COBOL과 Fortran 트랙을 모두 살펴볼 만해요