레이블이 컴퓨터 언어인 게시물을 표시합니다. 모든 게시물 표시
레이블이 컴퓨터 언어인 게시물을 표시합니다. 모든 게시물 표시

2026년 2월 1일 일요일

2026년 기준 살아 남은 컴퓨터 언어들

 1. 죽거나 죽어 가는 언어

  • Fortran (포트란) : 1957년 탄생 ~ 2000년대 초반 사망, 60~70년대 과학 계산 언어, 유지 보수로 명맥 유지. 하드웨어를 최대한 활용한 계산 정밀도와 속도는 최고 수준.
  • COBOL (코볼) : 1959년 탄생 ~ 2000년대 초반 사망, 금융 서버, 유지 보수로 명맥 유지
  • BASIC (베이직) : 1964년 탄생 ~ 1990년대 후반 사망, 교육용 → 파이썬으로 대체
  • Pascal (파스칼) : 1970년 탄생 ~ 1990년대 후반 사망, 교육용 → 파이썬으로 대체
  • Objective-C : 1984년 탄생 ~ 2016년 사망, 설명문 강요 → Swift로 대체
  • Perl (펄) : 1987년 탄생 ~ 2010년대 초반 사망, 웹 언어 → 파이썬으로 대체
  • Visual Basic (VB) : 1991년 탄생 ~ 2008년 사망, 윈도우 GUI 개발 대중화, C#으로 대체
  • JScript : 1996년 탄생 ~ 2010년대 중반 사망. MS의 JavaScript 변종. IE 전용 기능(ActiveX 등)으로 웹 표준을 어지럽히고 퇴출
  • Visual J++ : 1996년 탄생 ~ 2004년 사망. MS의 Java 변종으로 소송 패소 퇴출. C#의 선배
  • ActionScript (Flash) : 1998년 탄생 ~ 2010년 사망, 위험한 웹을 만든 원흉으로 퇴출. JavaScript + HTML5로 대체

2. 아직 명이 질긴 언어

  • VBA (Excel용 VB) : 1993년 탄생, 엑셀/오피스 전용 VB, 사무실에선 왕, 파이썬으로 대체 될 시한부 언어.
  • PHP : 1995년 탄생 ~ 2020년경 사망, 웹 70% 점유 → 파이썬으로 대체, 유지 보수로 명맥 유지
  • Ruby (루비) : 1995년 탄생 ~ 2018년 사망, 빠른 웹 → 파이썬으로 대체, 유지 보수로 명맥 유지

3. 생존 언어

  • Assembly (어셈블리어) : 1940년대 후반 ~ 1950년대 초반 탄생, 하드웨어 밀착형, CPU와 함께 딸려 오는 언어 
  • C : 1972년 탄생, 하드웨어 밀착형, CPU와 함께 딸려 오는 언어, O/S 제작 언어
  • SQL : 1974년 탄생, DB와 함께 딸려 오는 표준 언어
  • C++ : 1985년 탄생, 고성능 프로그램 개발 언어, O/S 제작 언어
  • Python (파이썬) : 1991년 탄생, BASIC / FORTRAN / Pascal 대체, 쉬운 문법, AI 언어로 부활
  • Java (자바) : 1995년 탄생, 서버 / 안드로이드 프로그램 언어
  • JavaScript (자바스크립트) : 1995년 탄생, 웹브라우저 언어
  • C# (씨샵) : 2000년 탄생, MS가 미는Java 경쟁 언어, C/C++ 문법 계승한 J++ 후손, Unity 게임 제작 언어로 변신
  • Kotlin (코틀린) : 2011년 탄생, 구글이 미는 안드로이드 Java 대체 언어
  • Swift (스위프트) : 2014년 탄생, 애플이 미는 아이폰 Objective-C 대체 언어

4. 신흥 언어

  • Rust (러스트) : 2010년 탄생, 메모리 관리가 위험한 C/C++ 대체 목적
  • TypeScript (타입스크립트) : 2012년 탄생, 변수 때문에 디버깅이 난감한 JavaScript 보완
  • Go : 2012년 탄생, 서버의 C++의 복잡함 + Java의 무거움 대체 + 쉬운 병렬 처리 목적

5. 대체 언어

  • JavaScript → TypeScript : 변수형을 강제 지정, 코드 작성 중에 오류 감지, TS→JS 변환
  • C/C++ → Rust : 비슷한 문법, 메모리 소유권으로 메모리 누수 원천 차단, 상호 호환
  • Java → Kotlin : 훨씬 간단한 문법, NullPointerException 원천 차단, 상호 호환
  • Objective-C → Swift : 완전히 다른 파이썬 같은 간단한 문법, C++ 성능
  • BASIC / FORTRAN / Pascal → Python : 더 간단한 문법, 더 강력한 능력, 거대 라이브러리
  • Java ↔ C# : 서로 베껴 문법이 비슷한 두 경쟁자는 아직도 여전히 싸우고 있다?
  • C++ & Java → Go : 파이썬 같은 간단한 문법, C++ 성능 + Java 생산성 + 병렬 처리

5. 문법 철학 (수식 같은 C/C++ 스타일 vs 읽기 쉬운 영어 문장 스타일)

  • 1940년대 Assembly : 기계어(숫자)에 대응하는 약어 나열하는 저수준 언어
  • 1957년 Fortran : 읽기 쉬운 문법, 과학 계산용, 천공카드 시절의 유산으로 줄 칸 수에 맞춰 쓰기
  • 1959년 COBOL : 읽기 쉬운 문법, 은행용, 천공카드 시절의 유산으로 줄 칸 수에 맞춰 쓰기
  • 1964년 BASIC : 읽기 쉬운 문법, 교육용, 줄 번호(10, 20, 30...) 붙여 코딩 한 적도 있음
  • 1970년 Pascal : 읽기 쉬운 문법, 교육용, C와 라이벌 문법, 중괄호 대신 단어 사용
  • 1972년 C : 수식처럼 읽기 피곤, 시스템이 망가져도 좋으니 개발자 마음대로 해 봐
  • 1974년 SQL : DB에 영어 문장으로 필요한 걸 질문만 하면 되는 언어
  • 1984년 Objective-C : C 스타일 문법, '대괄호'가 난무하며 설명문을 강요함
  • 1985년 C++ : C 스타일 문법, 객체 개념 추가했는데 너무 복잡함
  • 1987년 Perl : C 스타일 문법, 정규표현식 등 온갖 기호가 섞여 "쓰기 전용 언어"라 불림
  • 1991년 Python : 읽기 좋아야 고치기도 좋지, '들여쓰기'가 중괄호 대신
  • 1991년 Visual Basic (VB) : BASIC 문법 계승, 그리듯이 윈도우즈 프로그램 만들기
  • 1993년 VBA (Excel용 VB) : VB 문법 계승, 사무 자동화 언어의 대명사?
  • 1995년 PHP : C 스타일 문법, HTML 사이에 끼워 쓰기 좋게 설계된 웹의 감초
  • 1995년 Ruby : 영어 문장 스타일, 같은 결과도 여러 방법으로 표현 가능(인간 중심)
  • 1995년 Java : C 스타일 문법 계승, 모든 걸 객체로 만들라고 강요
  • 1995년 JavaScript : Java 스타일 문법 흉내, VB처럼 유연하고 엉성한 웹브라우저 언어
  • 1996년 JScript : JavaScript 문법 모방, MS의 독자적인 기능 추가로 웹 표준과 갈등
  • 1996년 Visual J++ : Java 문법 모방, 법적 분쟁 끝에 사장, C#의 모태가 됨
  • 1998년 ActionScript (Flash) : C 스타일 문법, 화려한 애니메이션 + 인터렉티브 웹 주역
  • 2000년 C# : C/C++ 계승, Java 모방한 MS 만능 언어
  • 2010년 Rust : C/C++ 계승, 안전하지 않으면 컴파일조차 안 시켜준다
  • 2011년 Kotlin : Java의 번거로운 문법 제거, 실수(Null)를 문법적으로 방어
  • 2012년 TypeScript : JavaScript 문법, 변수에 뭐가 들어가는지 명시하라고 강요
  • 2012년 Go : Python 같은 간단한 문법, 간단하게 빨리 성능 좋은 거 만들자
  • 2014년 Swift : Python만큼 읽기 쉬운 문법, 성능은 C++급, 안전하고 빠르게 만들자

6. 만능 언어 편집기

  • VS Code : Microsoft 제작, C#, TypeScript, JavaScript와 최고 궁합 ☞ 현재 세계 1위
  • Android Studio : Google 제작, Kotlin, Java와 최고 궁합
  • IntelliJ :  JetBrains 제작, Kotlin, Java와 최고 궁합
  • PyCharm : JetBrains 제작, Python 전용
  • Xcode : Apple 제작, Swift, Objective-C와 최고 궁합
  • Cursor : Anysphere 제작, VS Code 복제품 + AI 자동 코딩 및 조언 ☞ 초보에겐 최고네?

세월이 정말 많이 흐른 거 같네. 몇 년 전에 배운 거 같은데 이미 죽은 언어가 되었다니... 
잘 가라. 너희가 열등해서 없어진 게 아니다. C 스타일 언어는 정말 읽기 피곤해서...
그리고 AI가 도움말도 주고 코딩까지 해 주니 과거의 그 무지막지하게 무겁던 편집기들 다 죽었군.


2015년 6월 15일 월요일

왜곡 불가능 문자 만들기

숫자를 왜곡하면 심각하겠지? 일(一), 이(二), 삼(三)이 왜곡하기 쉬워서 일(壹), 이(貳), 삼(參)으로 쓰던 옛 시대를 생각하면 우습다. 어떤 문자가 획을 추가해서 다른 문자가 되는 경우는 왜곡이 쉽다. 1↔4, 3↔8의 경우도 외곡하기 쉽다. 한글의 어↔이↔아는 1획 차이로 왜곡 가능하다. 

우리가 쓰는 아라비아 숫자는 원래 인도에서 건너간 것이다. 몇 백 년 전에는 중국, 인도가 지금의 미국, 유럽과 같은 위치였단다. 앞으로 몇 십 년 후면 그렇게 될 것이다. 모셔야 할 강대국이 2개 더 늘겠다.

중국과 인도의 수학, 천문학은 농업, 상업에 비례해서 매우 발달했다. 그러니 당연히 숫자의 표현도 발달했다. 엄청 큰 수를 표현할 수도 있고, 큰 수를 계산하기 편한 자릿수 개념도 생겼다. 계산을 돕는 주판도 발달했다. 거기에 비하면 영어, 한국어, 일본어의 숫자 표현은 솔직히 석기 시대 수준이다.


1. 토폴로지(위상학)


● : 점, 덩어리, 교차로 등 고리를 형성하지 못 한 것
○ : 고리, 폐곡선을 형성한 것

글자의 모양에서 고리가 있느냐 없느냐로 구분할 수 있다. 이게 원래는 길 찾기 문제를 풀기 위해 고안한 수학이다. 문자에서 고리 형상이 몇 개 들어 갈 수 있는지 정한다. 0469는 고리 1개, 8은 고리 2개, 12357은 고리가 없다.

이처럼 고리의 개수, 위치 + 교차점의 개수, 위치 + 가로/세로/대각 획으로 조합할 수도 있다. 무수히 많은 조합이 가능하기 때문에 얼마든지 왜곡 불가능한 문자를 쉽게 만들 수 있다. 흔히 볼 수 있는 것이 고리에선 동그라미(OQDBPR), 사각형(口日目田), 삼각형(A) 등이다. 교차점에선 십자(十X)이고, 획 조합에선 TYHEFKVWZNML 등 많다. 1이나 I나 一 같은 1획 문자는 쓰면 안 된다. 열린 곡선 CGS 등은 단순해서 읽기 쉽지만 일본 히라가나 문자처럼 만들면 읽기 정말 힘들어진다.


2. 획 조합


보통 전자 회로에서 숫자를 나타내기 위해 쓰는 7세그먼트는 7획으로 된 숫자 표현이다. 고리는 2개까지 들어갈 수 있다. 이 7획에서 3 또는 4획을 뽑아 Combination조합하는 경우 35개로 가장 많은 문자를 만들 수 있고, 왜곡이 불가능하다. 왜냐하면 한 문자를 다른 문자로 만들 때 기존의 어떤 획을 1개 지워야 하기 때문이다.



획이 7개라고 하면 7비트가 된다. 7비트에서 0은 획이 없고 1은 획이 있는 것이다. 총 128개의 조합이 나오지만 왜곡 가능한 관계를 제외시켜야 하기 때문에 3 또는 4획만 사용한다고 정하면 35개 문자 조합만 가능하다. 이런 2진수 조합 개념은 중국에서 이미 태극 8괘 형태로 나타났던 것이다.

위의 그림 중에서 쓸모 있는 것 10개만 뽑으면 왜곡 불가능한 숫자가 만들어진다. 이 때 점이나 획의 길이 차이만 나는 경우는 같은 것으로 보고 제거한다. 획을 연장시키기만 하면 왜곡이 가능하기 때문이다. 상하가 대칭이라 위아래 위치 차이만 나는 같은 모양도 제거한다.



3. 연속으로 쓸 수 있게


가능하면 1획에 글자를 쓸 수 있으면 좋다. 이건 길을 겹치지 않고 모두 도는 문제와 같다. 그럴 경우 저절로 곡선 문자가 되는데 외우고 판독하기 힘들어진다. 아랍문자, 몽고문자, 일본문자 등이 그러하다. 영어의 소문자가 이런 식으로 필기체에서 나온다. 직선 획을 쓰면 외우고 판독하기는 좋은데 한 글자를 여러 획으로 써야 한다. 중국문자, 한글이 그러하다. 영어의 대문자도 그러한데 알파벳의 원래 형태다. 라틴어는 원래 대문자만 사용했다. B, D는 2획인데 b, d는 1획에 쓴다.

이상의 것을 이용해서 고리의 개수와 위치, 직선의 개수와 위치를 정한 후에 기계적으로 획수 조합을 하고 쓰기 편한 형태만 골라낸다. 수 천 년 걸린 문자 발명을 몇 시간 안에 해 낼 수 있다. 그것도 왜곡 불가능하게 말이다.





아직도 3S(스크린, 스포츠, 섹스), 게임, 전투, 전쟁 좋아한다면 10대의 유치한 정신 상태다. 나도 아직 못 벗어났다. 정치, 경제, 종교, 역사에 관심이 있다면 늙은 정신 상태다. 종교와 정치 현상은 거의 비슷하다. 옛날엔 제정일치 사회였다고 하는데 정말 닮았다. 정치, 종교 문제의 뒤에는 경제 문제가 있다. 항상 돈이 문제다. 이 반복적 얘기들을 닮고 있는 게 역사다. 이공계에서 수학, 물리, 화학과 같은 위치에 있다.

TV, 신문에서 사람들 관심을 끄는 3S 뉴스가 나오면 정치 쪽을 함께 보라고 한다. 예로부터 정치 권력자 개인의 문제가 여러 사람 다치게 하는 전쟁으로까지 가는 일이 많았다. 권력자 개인 문제 → 사회 문제 or 전쟁. 그래서 정치 쪽을 함께 보라고 하는 것이다.

정치 쪽 내용이 그렇게 어려운 것이 아니다. 주로 보수 우익 정당 정치인의 도둑질(뇌물, 청탁, 리베이트, 비리, 커미션), 여자(매춘, 성추행, 성폭행, 불륜) 문제가 나온다. 이거 덮기 위해 엉뚱한 사건으로 관심 돌리기를 하는 것이다. 보수 우익 정당이 무능력하고 (무능하지는 않다. 안 하는 것이다.) 하는 일이 없어도 이미지 관리는 잘 해야 선거에서 이기기 때문이다.

민주(의회) vs 독재(왕정)
분배(공유) vs 독점(사유)
과학(진화) vs 종교(창조)

바른 정치란 다른 것 없다. 좌측의 것만 선택하면 된다. 공산주의자들도 좌측을 선택했는데 문제는 독재다. 김일성과 박정희는 같은 독재자로 알고 있는데, 독재를 먼저 시작한 것은 남한 이승만, 북한 김일성 때부터이다. 박정희 때는 노골적인 독재였고, 북한도 박정희의 권유로 공식적 독재로 넘어간다. 함께 각자 남북을 해 먹자는 거지.

투표를 하라고 했을 때 가지 않으면 반대표를 던진 것이고, 투표하러 가서 반대표를 던지다 걸리면 역시 반동분자이니, 남북 노인들은 좀비처럼 투표하러 가는 것이다. 그래서 아직도 남한은 북한처럼 친일 독재 잔당의 1당 독재이다. 재미있는 것은 일본도 마찬가지라는 것이다. 정권이 안 바뀐다. 2차 대전 때의 군부 독재 잔당의 1당 독재이다.

2015년 5월 18일 월요일

컴퓨터 프로그램 할 때 사용하지 말아야 할 문자

글꼴 때문에 헛갈리는 문자들이 있다. 이런 문자들은 오타가 아닌 오타를 만들기 때문에 프로그램 할 때는 사용하지 않는 것이 좋다.

  • 영문 대문자 I(아이), 영문 소문자 l(엘)은 숫자 1과 헛갈린다.
  • 영문 대문자 O(오우), 영문 소문자 o는 숫자 0과 헛갈린다.
  • 흔히 정수를 표현할 때 사용하는 영문 소문자 i와 j는 헛갈린다.


간단하게 임시로 사용하고 버리는 한 문자 길이의 정수 변수 이름에는 다음과 같은 것을 사용하는 것이 좋다. 흔히 수학 공식이나 반복문에서 첨자로 사용하는 것들이다.

영문자 (i, j, k), (l, m, n), (o, p, q) 대신 (a, b, c) 또는 (x, y, z)

글꼴에 따라 I, l, 1과 O, o, 0을 명확하게 구분해 주는 것도 있다. 글꼴은 San-Serif와 Serif로 나뉘는데 인쇄할 때는 Serif (명조체와 비슷한 꼴)를 쓰고, 모니터 화면에선 San-Serif (Serif가 없는 직선 꼴)을 사용한다. 해상도 차이로 보기 편하기 때문인데 문제는 San-Serif 형태에선 I, l, 1과 O, o, 0의 구분이 어려운 글꼴이 많다.



언론에서 자유와 평등 중에 하나를 선택하라는 식으로 선동을 많이 한다. 이들이 말하는 자유는 민주주의, 평등은 공산주의를 상징한다. 그런데 이런 저런 혁명에서 누가 자유 대신 평등, 평등 대신 자유를 외쳤겠는가? 당신 같으면 엉덩이 대신 가슴 큰 여자, 가슴 대신 엉덩이 큰 여자를 원하겠는가? 정상적인 인간이라면 엉덩이와 가슴 큰 여자를 원할 것이다. 

자유와 평등은 함께 가는 전차의 양쪽 바퀴와 같다. 대체로 자유로운 사회가 더 평등하고, 평등한 사회가 더 자유롭다. 자유와 평등이란 왕족, 귀족이 있던 신분제 사회에서의 탈출을 말하는 것이기 때문에 이 둘은 같은 것이다. 지금은 왕정 대신 독재가 있고, 귀족 대신 부자가 있으니 현대의 자유와 평등이란 민주주의와 복지주의를 말한다.

이 시대는 돈 없으면 자유가 없어! 돈이 바로 신분이고 권력이야! 그러니 자유와 평등을 얻고 싶으면 공정한, 공평한 사회를 만들란 말이지. 세계적 대부자 치고 사기, 도둑질, 투기, 매점매석 없이 부자 된 자가 없다. 절대 친일독재잔당에 투표하지 말고, 친일선동언론의 말을 믿지 말라.