번역] 프로그래밍 언어들의 이름을 지은 방법
원문: How programming languages got their names
필 칼튼 (Phil Karlton) 은 컴퓨터 과학 (Computer Science) 에서 어려운 것이 딱 두 가지가 있다고 말했다. “캐시 무효화 (cache invalidation) 과 이름 짓기” 가 그것들이며, 후자 때문에 기술 분야에 이상하지만 멋진 이름들이 생겨났다. 이 글에서 일반적인 프로그래밍 언어의 이름을 살펴보고 왜 그 이름들이 선택 되었고, 어디서 왔는지 알아보자.
Perl
펄은 1987년 미국인 개발자 래리 월 (Larry Wall) 이 만들었다. 그는 처음에 펄 (Pearl) 이라는 긍정적인 연관이 있는 짧고 기억하기 쉬운 단어라고 생각해서 채택했다. 하지만 이미 그 이름의 언어가 존재했기 때문에 철자를 Perl 로 바꿨다. Perl 로 만든 배크로님 (철자에 맞춰서 약어를 만든 것) 은 Practical Extraction and Reporting Language (실용적인 추출 및 보고 언어) 가 있다. pearl 이라는 단어는 ‘구슬’ 또는 ‘가치있는 것’ 을 의미하는 옛날 프랑스어 perle 와 양다리처럼 생긴 연체동물까지 아우르는 ‘다리’ 라는 뜻의 라틴어 perna 에서 왔다.
Ruby
Dev.to 를 만드는데 사용한 언어인 루비 (Ruby) 는 1990년대에 일본인 개발자 유키히로 “마츠” 마츠모토가 개발했다. 펄에 영향을 받아서 그는 보석으로 이름을 짓고 싶어 했고, 때마침 그의 동료의 탄생석이자 6월의 탄생석인 진주 (펄; pearl) 의 다음달인 7월의 탄생석인 루비를 택했다. ruby 라는 단어는 ‘붉은색’ 이라는 뜻의 라틴어 rubeus 에서 온 ‘붉은 보석’ 이라는 뜻의 옛날 프랑스어 rubi 에 그 기원을 둔다.
Python
네덜란드 프로그래머 귀도 반 뤼섬 (Guido van Rossum) 은 1991년 파이썬을 만들었고, 몬티 파이썬의 플라잉 서커스 (Month Python’s Flying Circus) 라는 영국 텔레비전 코미디쇼에서 이름을 따왔는데, 때마침 그 쇼의 대본을 읽고 있었기 때문이다. 그는 “짧고, 특별하고 조금은 신비로운” 이름을 원했다. python 이라는 이름은 아폴로 신이 죽인 거대한 해양생물인 고대 그리스의 Puthón 에서 따왔다. 이 단어는 19세기 초반부터 먹이를 단단히 죄는 거대하고 단단한 몸을 가지되 독이 없는 다양한 종류의 뱀을 일컫는 말로 사용되었다.
Java
자바는 1990년대에 제임스 고슬링 (James Gosling) 이 선 마이크로시스템즈 (Sun Microsystems) 에서 일할 때 만들었다. 그 프로젝트는 원래 ‘Oak’ 라고 불렸었는데, 카페인을 엄청나게 소비한 브레인스토밍 시간을 가진 뒤 ‘Java’ 라는 이름이 생겼다 (비록 ‘Silk’ 로 정해질 뻔하긴 했지만). 인도네시아어로 Java 또는 Jawa 는 강하고 진하고 달콤한 커피를 생산하는 큰 섬의 이름이다. 이 단어는 1800년대부터 미국에서 커피를 뜻하는 말로 쓰이고 있다.
Kotlin
2011년 젯브레인즈(JetBrains) 가 발표한 언어인 코틀린은 러시아의 코틀린 섬 (Kotlin Island) 에서 이름을 따왔다. 개발팀은 Java 처럼 섬의 이름을 따서 이름을 짓고 싶었다. 비록 섬 이름이 아니라 커피이기는 하지만! 코틀린 (러시아어로는 Котлин) 은 스웨덴 땅이었으며, 핀란드인들에게는 ‘여우섬’ 이라는 뜻의 Kettusaari 로, 스웨덴인들에게는 Ketlingen 로 불렸고, 이 이름은 아마도 가마솥을 의미하는 독일어 kettel 에서 왔을 수 있다. 1703년 표트르 대제가 그 섬의 통제권을 획득하고 Kotling 으로 이름을 바꿨고 이후에 Kotlin 으로 줄였다.
Swift
애플이 자신들이 개발한 언어의 이름을 Swift 라고 지은 명확한 이유는 없지만 Quora 에 누군가가 물었듯이 테일러 스위프트 (Taylor Swift) 에서 온 것은 절대 아니다. 내 생각에는 애플이 뭔가 빠르다는 인상을 주기 위한 게 아닌가 싶다. swift 는 ‘굉장히 빠른 속력 또는 속도로 움직임’ 이라는 뜻이며, 이는 선사시대로 올라가 ‘쓸어다니며 움직임’ 이라는 뜻의 swipt- 까지 거슬러 올라간다. 17세기부터 제비처럼 생긴 새들이 swift 로 알려졌으며, 이 프로그래밍 언어의 로고로도 사용하고 있다.
Bash
Bash 는 개발자 스테판 본 (Stephen Bourne) 의 이름을 딴 Bourne Shell 이 “새로 태어났다 (born again)” 는 말장난인 Bourne-again Shell 을 줄여서 만든 것이다.
C
C 라는 이름은 굉장히 쉽게 지어졌는데, B 라는 프로그래밍 언어 다음에 나왔기 때문이다. C 는 C++ 와 C# 과 같은 언어들로 확장되었다.
Clojure
개발자는 ‘c’ (C#), ‘l’ (Lisp), 그리고 ‘j’ (Java) 를 포함했으면 했고, ‘closure’ 와 비슷한 말장난이기도 하다.
R
R 은 최초의 두 개발자 (Ross Ihaka 와 Robert Gentleman) 의 이름에서 따오기도 했고, 이전에 있던 언어인 S 의 다음 글자라서 R 로 정한 것도 있다.
Scala
Scala 는 ‘scalable’ 과 ‘language’ 의 앞글자를 따서 만들었다. 이 단어는 이탈리아어로 ‘stairway’ (계단) 을 의미하기도 하고, Scala 가 사용자들이 더 나은 언어로 나아갈 수 있도록 도와주기도 한다.
SQL
처음에는 “Structured English Query Language” (SEQUEL; 구조화된 영문 질의 언어) 로 불렸고, “sequal” 이라고 발음했다. 이후에 SQL 로 줄여서 부르기 시작했다.
TypeScript
JavaScript 에서 아쉬웠던 것 때문에 개발 되어서 비슷한 이름으로 지었다.
You can follow me on Twitter at @TheStrangeRoots for Tweets about the origin of different words used in technology.
트위터에서 @TheStrangeRoots 를 팔로우 하면 IT 분야의 보다 다양한 언어의 기원에 대한 트윗을 볼 수 있다.
2022
Back to top ↑2020
모수, 큰 수의 법칙, 그리고 중심극한정리
모수, 큰 수의 법칙, 그리고 중심극한정리에 대하여
번역] 내가 COVID19 데이터를 시각화하지 않는 이유
그리고 여러분들도 (아마도) 하지 않아야 하는 이유
사내 스터디에 대한 회고
회사 서비스의 추천 시스템을 개선하기 위해 팀 내에서 (아직까진 두 명이긴 하지만) 지난 두 달 동안 스터디를 진행했습니다. 얼마 전 두 번째 스터디가 끝났고 이에 대한 회고를 해보려고 합니다.
번역] 데이터의 어두운 면 - 개인정보 (Dark Side of Data:Privacy)
원문: Dark Side of Data: Privacy by Emre Rencberoglu
번역] 초보자를 위한 RStudio 의 프로젝트 와 작업 디렉토리
원문: RStudio Projects and Working Directories: A Beginner’s Guide by Martin Chan
번역] 몇 가지 추천 시스템에 대한 개괄
원문: An Overview of Several Recommendation Systems
번역] Tidy Tuesday 이벤트에 대한 소개
원문: TidyTuesday GitHub Repository
번역] 프로그래밍 언어들의 이름을 지은 방법
원문: How programming languages got their names
2019
번역] 회의를 덜 끔찍하게 만드는 방법
원문: How to Make Meetings Less Terrible 팟캐스트: How to Make Meetings Less Terrible (Ep. 389)
R 에서 networkD3 를 이용해서 샌키 다이어그램(Sankey Diagram) 그리기
생키 다이어그램 (Sankey Diagram) 은 흐름(Flow) 다이어그램의 한 종류로써 그 화살표의 너비로 흐름의 양을 비율적으로 보여준다.
번역] 2016년 모든 데이터 사이언티스트가 알아야할 10+2 가지 데이터 사이언스 방법론
2년 전 일본어로 책을 내긴 했지만 대부분의 독자들이 이 책을 읽을 수는 없을 것 같았다.
번역] 29가지 통계 개념 - 회귀분석의 가정과 조건들
회귀분석을 실행하기 위해 필요한 가정과 조건들에 대해 알아보자.
번역] 29가지 통계 개념 - 정규성 가정
통계적 검정과 회귀분석에서 자주 사용되는 정규성 가정과 정규성 검정에 대해 알아보자.
29가지 통계 개념 - 독립성 가정
여러 통계 검정과 모형에서 사용되는 독립성 가정에 대해 알아보자.
29가지 통계 개념 - ARMA 모형
시계열 모형 중 ARMA 모형에대해 알아보자.
29가지 통계 개념 - 통계학에서의 넓이에 대한 원칙
시각화에서 주의할 점인 넓이를 표시하는 원칙에 대해 알아보자.
29가지 통계 개념 - 평균으로부터 양쪽으로 떨어진 z-값 사이의 넓이
평균 양쪽의 z-값들 사이의 넓이를 구하는 방법에 대해 알아보자.
29가지 통계 개념 - 분산분석(Analysis of Variance)
분산분석의 개념과 방법에 대해 알아보자.
29가지 통계 개념 - 공분산분석(Analysis of Covariance)
분산분석(ANOVA; ANalysis Of VAriance) 와 회귀분석의 개념을 섞은 공분산분석(ANCOVA; ANalysis of COVAriance)에 대해 알아보자. 이 글을 이해하기 위해서는 아래의 글을 먼저 읽는 것이 좋다.
29가지 통계 개념 - Akaike’s Information Criterion(AIC)의 정의와 공식
Akaike’s Information Criterion 의 정의와 이를 구하는 방법에 대해 알아보자.
29가지 통계 개념 - 수정된 R제곱 무엇에 사용하는 것인가?
수정된 R제곱과 그 용도에 대해서 알아보자.
29가지 통계 개념- 정확도와 정밀도(Accuracy and Precision)
통계 용어 중 정확도(Accuracy)와 정밀도(Precision) 에 대해서 알아보자.
29가지 통계 개념 - 절대 오차와 평균 절대 오차(MAE)
절대 오차와 평균 절대 오차에 대해서 알아보자.
통계학도감 - 5장 가설 검정
가설 검정이란 무엇이며, 가설 검정의 다양한 방법에 대해 알아보자.
통계학도감 - 9장 회귀분석
회귀분석이란 무엇이며, 회귀분석 과정에서 사용하는 용어와 다양한 방법에 대해 알아보자.
GitHub Pages Jekyll Blog 에 MathJax 추가하기 (Adding MathJax to a GitHub Pages Jekyll Blog)
이 글은 MathJax 를 GitHub Pages Jekyll blog 에 추가하는 방법을 다룬다. 이탤릭체로 된 부분은 본문에는 없고 제가 따라하면서 고치거나 추가한 부분이니 참고하세요. 절차
29가지 통계 개념 - 통계학에서의 10% 조건이란 무엇인가?
모집단과 표본집단을 이용하는 경우 통계학에서 말하는 10% 조건이 무엇인지에 대해 알아보자.
GitHub 블로그에 Jupyter notebook 올리는 방법
여러분의 GitHub 블로그에 Jupyter notebook 을 바꿔서 올릴 수 있도록 도와줄 글이다. 직접 바꾸는 방법은 1회성 글들을 위해서 추가했고, 변환 과정과 파일 이동, 그리고 여러분의 블로그에 올리는 것까지 한 번에 할 수 있는 자동화 bash 를 만드는 자세한 방법...
29가지 통계 개념 - 통계학에서의 68, 95, 99.7의 법칙(68 95 99.7 Rule in Statistics)
68 95 99.7의 법칙이란 무엇인가?
29가지 통계 개념 - ADF(Augmented Dicky Fuller) 검정
단위근 검정 방법 중 하나인 Augmented Dickey Fuller 검정에 대해 알아보자.
쉽게 풀어 쓴 29가지 통계 개념(29 Statistical Concepts Explained in Simple English)
이 자료는 데이터 과학과 관련된 특정 주제에 대한 연재물이며, 다룰 주제는 다음과 같다. 회귀분석, 군집화, 신경망, 딥러닝, 의사결정나무, 앙상블, 상관관계, 파이썬, R, 텐서플로우, SVM, 데이터 축소, 피쳐 선택, 실험 계획법, 교차검증, 모델 피팅 등. 이 글을 계속 받...