프로그래밍 바벨탑 해결

Python 을 Go 로 번역해주는 트랜스컴파일러:

https://github.com/google/grumpy

Python 을 Go 로 트랜스컴파일한다는 것은 무엇을 의미하는가, Python이 최정적으로 네이티브 컴파일 됨을 의미합니다..

저는 어제 이 리포의 별수가 실시간으로 오르는 걸 보았습니다. 오늘은 어제 대비 별표가 많이 늘어났더라구요.

이런 갓 프로젝트를 누가 만들었나 했더니 갓 Google 님이 만들었더라구요.

이게 좀더 성숙해지면 구글은 python 으로 짜여진 유튜브를 네이티브 프로그램으로 서비스 하겠네요.

자 그러면 앞으로 이런 식으로 프로그래밍 바벨탑들이 다 해결 될 것인가?

 


하스스톤 역기획 해 python 코딩하는 알파고:

http://kotaku.com/google-deepmind-is-now-analysing-magic-and-hearthstone-1767628685

프로그래머들을 아예 다 해치울지도..? ㅋㅋㅋ

2016회고: 같은 성형외과 나온 프로그래밍 언어들

내 언어의 경계는 내 세계의 극한이다 — 루트비히 비트겐슈타인 <논리철학 논고> [1] (5.6)

프로그래밍 언어는 빠르게 발전한다 — 적어도 빠르게 변화한다. 한때 유행했던 Delphi 나 한때는 쿨하다고 여겨졌는 Perl 이 오늘날 이토록 사람들로부터 외면 받을 줄은 그때 당시는 상상하기도 어려웠던 것처럼[2]. 2016 년에도 프로그래밍 언어는 1년어치 뉴스를 듬뿍 채울 만큼 착실하게 발전했다. 뜻인즉 프로그래머들의 식후 티타임 화제를 옹근 2016년 한해만큼 제공하기에 충분한 분량을 채울 만큼 확실하고 견고하게 발자국을 내디뎠다는 말이다. 원한다면 프로그래밍 언어 2류 관찰가의 시선을 따라 2016년의 프로그래밍 언어를 회고해보자. (일부 특성들은 사실 2016년에 추가된게 아니다, 엄밀히 따지자면. 하지만 그게 2016년에야 각광받았다면 2016년의 뉴스로 치부할 수도 있을 것이다)

2016 년 “올해의 프로그래밍 언어”

프로그래밍 언어 유행지수를 발표하는 것으로 프로그래밍 커뮤니티에서 유명한 TIOBE 가 곧 2016년 “올해의 프로그래밍 언어” (Programming language of the year 2016) 를 발표할 예정이다. 이 영광을 차지할 언어는 Go 언어가 거의 확정이다 [3]. 원인은 1개 퍼센트 포인트 이상의 유행도 상승을 보여준 프로그래밍 언어가 Go 와 Groovy 밖에 없는데, Groovy는 이미 과거형으로 되었기 때문이다.

Google이라는 명문 출신, C언어의 아버지와 UNIX의 아버지가 만든, 대규모 동시성 프로그래밍을 위해 태어났다는 슬로건, 등등 태그들을 달고, 프로그래밍 언어들이 혈전고투로 어려워하는 와중에 Go 언어는 자기만의 길을 개척해 유행도를 얻고 있다. 또한 컨테이너 프로그램 Docker 가 점점 일반 가정에 까지 들어설 만큼 유행해진 것이 그것의 개발 언어 Go가 나날이 주목받는데 일조를 하는 것 같다.

JetBrains 도 이런 배경에서였는지, Go언어 IDE 프리뷰 버전(현재 이름: Gogland)을 내놓았다. 성숙한 IDE는 Go 생태계의 빠른 성장에도 큰 도움이 될 것 같다.

Async/Await 유행년

2016 년을 감히 Async/Await 의 해라고 부르겠다. 2016 년에 뭐가 가장 핫했냐고 물어본다면 당근 Async/Await 이겠으니. Continue reading

어찌됐든 그대여 가장 소중한 것을 이 세상에 선사하소사

전에 중국 인터넷 언론 Jiemian 이 Smartisan 사의 OpenSSL 기부를 보도한 글을 번역한 적 있다:

<보이지 않는 전우>

오늘에야 당시 이 글이 중국 테크 업계에 일으켰던 광범위한 논란과 치열했던 논쟁들을 다수 읽게 되었다. 그리고 OpenSSL 하트블리드 사태 당시 해외 커뮤니티와 언론사들에서 일었던 광범위한 논쟁들을 읽게 되었다.

중국내 논란이나 전세계적인 논란이나, 상상 가능한 모든 범위를 커버했던 것 같다. 보도자료의 디테일의 진실성부터 언론의 정신이며 OpenSSL 재단의 재무 상황이며 모금의 어려움이 확대보도됐는지 여부며 유사 프로젝트들과 비교했을 때 OpenSSL 의 영향력이 과대평과됐는지 여부며 OpenSSL 의 문제는 돈인가 관리인가 논쟁이며 OpenSSL 의 코드가 쓰레기인지 여부며 OpenSSL 이 어떻게 영향력 다른 말로 점유율을 얻은것인지며 대형 사이트들 다른말로 큰회사들이 암호학 라이브러리를 선정하는 프로세스가 어떻게 되어있는가며 OpenSSL 이 취약점을 발표한 프로세스며 오픈소스 생태계 대토론이며 소프트웨어경제학과 보안의 관계며 심지어 다양한 버전의 음모론들까지…

결론적으로 리써치한 내용이 훨씬 늘어났고, 견식도 많이 늘었음에도 나는 이 글을 번역했던 것이 (다른 말로 이런 내용의 전파에 크진 않지만 힘을 보탰던 것이) 후회스럽지 않다.

끝내며,

사건 당사자, Smartisan 창업주이자 CEO 인 나영호씨가 대응글에서 인용한, 테레사 수녀가 콜카타 고아원에 써준 시를 재인용한다.

그대가 친절하면
사람들은 그대가 이기적이고 속셈이 음흉하다고 말할 수 있다
어찌됐든
그대여 친절하소사

그대가 성실하고 솔직하다면
사람들은 그대에게 사기치고 등골 빼먹을 수도 있다
어찌됐든
그대여 성실하고 솔직하소사

그대가 다년간 심혈을 쏟아 건설한 물건이
사람들에게 하루밤사이에 파멸당할지도 모른다
어찌됐든
그대여 건설하소사

그대가 오늘 한 선행이
내일이면 사람들에게 잊혀질지도 모른다
어찌됐든
그대여 선행을 하소사

그대가 가장 소중한 것을 이 세상에 바쳤을지언정
그것이 그대로 하여금 감사의 마음을 받게 하기에는 역부족일지도 모른다
어찌됐든
그대여 가장 소중한 것을 이 세상에 선사하소사

사람들은 왕왕 도리를 따지지 않고 비논리적이고 자기중심적이니라
어찌됐든
그대여 그들을 용서하소사

(끝)

아이폰 날씨 어플 리뷰

배경

날씨 어플 보통 야후 날씨 정도는 깔잖아요. 근데 내장 앱, 야후, 네이버 날씨… 에서 리포트한 기온들이 다른거에요. 그래서 어느게 정확한걸까 궁금해지기 시작했고, 또한 이들의 날씨 API 출처도 궁금해지며, 나아가 기상 관련 센서 데이터의 오리지날 출처까지 궁금해졌습니다.

아직은 리써치가 부족해서인지 충분히 많은 정보를 수집하진 못했지만 앱들의 사용 후기부터 적어보겠습니다.

Continue reading

Python 을 사용하는 대기업들 지금은 어떻게 됐을까?

Google

Google 얘기는 빼놓을 수 없다. Python 언어의 발명자 Guido van Rossum 도 구글에 계시기 때문이다.

Google 은 Python 을 좋아하다가, Go 언어를 만들었다.

특히 Python 언어의 플래그쉽같은 존재였던 YouTube, 아직도 Python 인걸로 알고 있다. 하지만 YouTube 의 검색창의 모든 검색은 Go 언어로 구현된 프로그램을 통해 일어난다고 한다. (프록시만 하는지, 구현까지 하는지는 잘 모르겠지만, 구현이야 당연히 구글의 기존 C++ 프로그램이겠지 싶다) [1]

dl.google.com 이 Go 언어로 만들어졌다고 한다. Chrome 의 압축 프록시가 Go 언어로 구현되었다고 한다. [1]

Dropbox

Dropbox 는 빠른 Python 구현인 Pyston 을 개발하다가, 이미 구현된 빠른 Python 인 PyPy 를 만지작거리다가.. 결국 Go 언어로 갈아탔다. [7]

Uber

오래되진 않았지만, 요즘은 Uber 이야말로 핫하다고 할 수 있지 않은가. 성능 크리티클한 부분을 Go 로 만들었다. (Node.js 를 고려하다가 Go 를 선택했다고 함.) [2]

Pinterest

Gevent 로 Python 을 빠르게 하다가 [3], Elixir 로 갈아탔다. [4]

참고로 Pinterest 는 MAU (Monthly Active Users) 가 1 억에 달한다고 한다. [5]

Alexa 에 의하면 Pinterest 는 Netflix.com 보다 트래픽이 많다고 한다. [6]

여담

여담으로 Ruby on Rails 로 시작한걸로 유명한 Twitter 는 Scala 로 갈아탔고, GitHub 은 음 잘 모르겠는데 아직도 Ruby on Rails 인가..?

여담중의 여담으로 Elixir 은 Ruby on Rails 핵심 커미터였던 개발자가 Ruby 로 컨커런시 처리하는 것에 지쳐서 Erlang 으로 돌아선 것이라고 한다.

결론

결론은 반전이다. YouTube 도 Python 으로 만드는데, Python 이 너무 느리게 느껴질 정도로 성공하는 서비스부터 만들고 보자. 그때까지 언어 성능은 별로 중요하지 않다.

Continue reading

오픈소스 네트워크 라이브러리 일람

1. Century

coolspeed 가 만든 Go 언어 네트워크 라이브러리 입니다:
https://github.com/coolspeed/century

이것이 1등입니다. 그냥 말이 필요 없습니다 ( __ __)

2. Skynet

https://github.com/cloudwu/skynet/graphs/contributors

C 언어와 lua 로 된 네트워크 라이브러리.
중국 게임 업계 제일 유명한 스타 개발자인 cloudwu 가 개발한 네트워크 라이브러리 입니다.
아직도 활발하게 개발 중이네요. Pull Request 도 활발하나 봅니다.

천하의 netty 가 github 에서 별표 7000개인데, Skynet 이 무려 4000개.

3. Netty

Java 네트워크 라이브러리.
한국인이 개발하고 (게임 업계 포함하여) 전 세계 개발자들이 추앙하는 네트워크 라이브러리인데  정작 한국에서는 많이 안쓰이는?

https://github.com/netty/netty

4. SuperSocket

C# 네트워크 라이브러리.
중국인이 만들었는데 한국 게임 업계에 많이 쓰이는..

https://supersocket.codeplex.com

5. Boost.ASIO

C++ 슈퍼천재(괴짜)들이 만든거라 워낙 웰메이드. 사용도 쉽고.
언뜻만 보기에도 탑 솔루션인데, C++ 17 표준에 포함된다는게 거의 확정이라 (개인적으로 80%확률일거라 봄) 가장 핫하다고 볼 수 있지 않을까요.

Continue reading