요즘 인기있는 컴퓨터 언어들의 랭킹이라는데..

두 개의 랭킹이 있다. 이것은 실무(돈받고 파는 소프트웨어들에서 사용되는) 언어 위주가 아닌가 싶고,

Jan 2021 Programming Language Ratings
1 C 17.38%
2 Java 11.96%
3 Python 11.72%
4 C++ 7.56%
5 C# 3.95%
6 Visual Basic 3.84%
7 JavaScript 2.20%
8 PHP 1.99%
9 R 1.90%
10 Groovy 1.84%
11 Assembly language 1.64%
12 SQL 1.61%
13 Swift 1.43%
14 Go 1.41%
15 Ruby 1.30%
16 MATLAB 1.15%
17 Perl 1.02%
18 Objective-C 1.00%
19 Delphi/Object Pascal 0.79%
20 Classic Visual Basic 0.79%

이것은 컴퓨터 언어를 배우는 사람들의 입장, 또는 개인적인 용도로 사용하는 언어들의 선호도가 아닐까 보여진다.

Rank Language Share
1 Python 30.44 %
2 Java 16.76 %
3 Javascript 8.44 %
4 C# 6.53 %
5 C/C++ 6.33 %
6 PHP 6.05 %
7 R 3.87 %
8 Objective-C 3.71 %
9 Swift 2.14 %
10 TypeScript 1.78 %
11 Matlab 1.74 %
12 Kotlin 1.7 %
13 Go 1.33 %
14 VBA 1.2 %
15 Ruby 1.12 %
16 Rust 1.03 %
17 Scala 0.72 %
18 Visual Basic 0.69 %
19 Lua 0.64 %
20 Ada 0.63 %
21 Dart 0.56 %
22 Abap 0.51 %
23 Perl 0.48 %
24 Julia 0.38 %
25 Groovy 0.37 %
26 Cobol 0.35 %
27 Haskell 0.27 %
28 Delphi 0.26 %

리눅스/MacOS에서 이것 저것 빌드해서 사용하는 입장에서 보면 위의 언어들 중 대부분을 맞이하게 된다. 물론, 이 중에서 ‘이런 언어도 있나?’ ‘이것도 언어라고 할 수 있나?’ 하는 것도 있다. 또 ‘여태 이런 언어를 쓰고 있다니..’ 등등.

사람이란 게 자신이 잘 모르는 대상을 보면 궁금해서 알고 싶은 욕구가 생기는데, 이 많은 언어들 중에서 swift는 꼭 배웠으면 했는데 제대로 손도 못 대 본 것 같다. 괜히 더 쉽게 폰 앱 개발하는 것을 슬쩍 들여다보겠다고 Flutter(Kotlin/Dart)를 쳐다봤었는데 이것 역시 뭔가 좀 다른 세계인 것이 확실하다. 그러니까 나처럼 할배들이 접근하기엔 뭔가 좀 부담스러운 개념을 잔뜩 가지고 있는.

그렇게 보면 이제 뒷방 늙은이가 되어가는 Object-C아니면 swift인 것이다. 3-4년전인가 swift가 나와서 잠시 들여다봤었을 땐 실행 결과물에 따라오는 거대한 런타임에 놀라서 ‘아직 너무 이른가?’하고 말았던 기억도 난다만. 지금은 ObjC보단 swift가 보편적인 것 같다. (그런데 그러려면 아이폰/아이패드를 울며겨자먹기로 들여놓아야 하는 것인가 싶고)

일단은 swift를 올해의 목표 1로 잡기로 했다. Kotlin/Dart 이런 것들도 특별히 구별될 만한 언어인가 (변종 아닌가) 싶은데도 들어가 있고 Groovy도 그렇다. 이 역시도 자바스러운 변종인데 말이다. 또 PHP (난 이게 perl + html아닌 가 했다만)도 열심히 주변과 소통하며 진화하다가 독립된 세력군을 형성하고 있다는 것도 신기한 노릇이다.

말이 신종 언어이지 Java는 뭐랄까 예외상황에 대해 너그러운 C++처럼 보이고 Java와 Javascript를 꼭 구분해야 되는 것인가 싶기도 하고 (그게 그거 아녀?) Cobol이나 Pascal/Basic이 살아있는 것도 신기하고 (물론 C가 살아있는 것도 신기하다고 봐야지 싶다만) 많은 시간이 흘렀지만, 컴퓨터 언어에 있어서는 C/C++ 이후에 뭐 이렇다 할만한 혁신이 없었던 것인가 싶기도 하다.

최근의 C++을 보더라도 융통성이 많이 생기고 라이브러리가 해주는 것들이 많아져서 더 이상 예전처럼 모든 것을 손수 해결해야 하는 그런 언어가 아니다. 물론 python/JS처럼 누군가 만들어놓은 모듈을 바로 바로 편리하게 가져다 쓸 수 있진 않지만.

어쨌든 OS를 새로 가져다놓았을 때 맨땅에서 해딩할 수 있는 언어라 할 만한 것은 여전히 C/C++/Perl이 아닌가 싶다. 아직 리눅스의 최소 기본 패키지에 python이 끼어있는 것은 못 봤다만 사실상 거의 perl처럼 되어가고 있는 흐름인 것은 확실하다.

무슨 이유인지 몰라도 난 python은 별로 인데, 인기가 높은 것은 deep learning을 위한 필수 언어처럼 되어서 그런 것이 아닐까 싶다.