왜 그동안의 함수식 언어 홍보는 잘못됐는가?

그렇다. 함수식 프로그래밍과 그것을 포함하는 “선언식 프로그래밍” [1] 은 그동안 이른바 산업 프로그래밍과 산업 프로그래밍 언어의 혁신요소들의 주요 원천 중 하나였다[2]. 하지만 그동안의 함수식 언어 홍보에서는 중요한 오류들을 범했다.

예를 들어 함수식 에반젤리스트들은 아래와 같은 광고어들을 내세웠었다.

“함수식 언어에서 변수는 값이 바뀔 수 없어요. 그리고 이게 좋아요. 버그를 막아주니까.”

이걸 듣는 사람들의 반응은 아마도 당장 발이 묶인 느낌일 것이다. 그래서 “그러면 코딩을 어떻게 해요?” 라고 묻는다면, 이런 대답이 올 것이다. “변수 변경이 정말 필요할 때는 변경할 수도 있어요. 그리고 함수식 프로그래밍에서는 꼬리 재귀를 사용하지요.” 그러면서 아마도 계승(factorial)이나 피보나치 예제를 주머니에서 꺼낼 것이다.

이렇게 되면 프로그래머는 아마도 고개를 갸우뚱 하며 (말은 하지 않고) 생각할 것이다.

“그렇게 되면 어차피 명령식에서랑 똑같이 변하는 변수를 사용하지 않을까? 과연 참고 변수를 변하지 않게 사용할 수 있을까?”

“그리고 나는 일할 때 매일 계승을 짜진 않는단 말야..흠..”

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

600억 값어치 해킹으로 이더리움(Ethereum) 가격 폭락

비트코인 유사한 인터넷 가상 화페 이더리움(Ethereum)의 가격이 해킹 사건으로 폭락했다.

이더리움 단위당 가격은 최고기록 $21.5 달러로부터 불과 몇시간 내에 $15 달러까지 곤두박질 쳤다. 바로 $5천만 달러 값어치의 해킹 절도 사건 때문이었다. [1]

gettyimages-149818149.jpg

이더리움 개발자들은 이 해커가 절도한 가상화페의 사용을 방지하는 핫픽스(fork)를 제안하고 있는 중이다.

이더리움은 비트코인과 유사한 탈중앙화 화페이다. 비트코인과 다른 점이라면 그것의 블락체인 위에서 화페 외에도 탈중앙화 조직이란 기능과 Smart Contracts 기능을 제공할 수 있다는 점이다.

이상은 최대한 간단한 소개성 기사이고, 기술적으로 보다 정확이 말하자면 Ethereum 블락체인 (네트워크) 자체는 그 어떤 취약점도 발견되지 않았다.

취약점이 발견되어 이용당한 것은 이더리움 플랫폼 위의 애플리케이션(DApp, aka, Decentralized App) The DAO 이다. 본 블로그에서는 일전에 <크라우드펀딩의 새로운 역사> 란 제목으로 해당 프로젝트를 소개한 적이 있다.

hour_cryptocompare_index_eth_usd_168_11466160967350

The top graph shows the value of ether in US dollars, while the second shows the volume of transactions on the network over time. — CryptoCompare

Continue reading

요즘 쿨한 프로그램은 다 Go 로 짠다며? Ethereum & IPFS 소개

첫번째로 소개할 놈은 Ethereum 이다.

자 Bitcoin 얘기는 다 빼고..

Ethereum 프로젝트는 이더리움을 (발음은 사실 무음 자음 (청자음) 으로 /이시리움/ 에 가깝지만)

The World Computer 이라고 소개한다.

프로그래머 커뮤니티에 대한 소개글에 알맞는 소개는 아래와 같은 형태가 되겠다:

자 역시 HLLVM (High-Level Language Virtual Language) 얘기 역지 집어치우고 최대한 간단하게 소개하자면:

얘는 전 세계적으로 싱크되는 가상 머신이다. 바이트코드는 인스트럭션 수에 따라 돈을 내야 한다.

장점은 뭐냐? 말 그대로 월드 컴퓨터라는 점. (SUN 의 옛날 드립을 생각해보자: The Internet is a computer.)

단점은 뭐냐? 비싸다.

그럼 누가 이런 컴퓨터를 쓸 것인가? 아직 자세히는 아무도 모른다. 커뮤니티는 이 “월드 컴퓨터”의 장점이 전세계적 싱크인 ‘권위성’ 인 만큼, 소유권 등록 (이를테면 지적 소유권 등록) 등 지리적, 정치적 경계를 넘는 범세계적인 정보 등록에 사용될 포텐을 크게 보고 있다.

Continue reading

크라우드펀딩의 새로운 역사

역대 크라우드펀딩 최대 액수 랭킹이 요 위키피다아 페이지에 나와있다. 액수가 계속 변해서 글쓰는 시점의 스샷을 첨부한다:

crowdfund_projects

The DAO, 이틀전에야 처음으로 들어본 이름이다. 오래도록 crypto-currency 쪽 소식을 주시안하고 있는 동안 언제 이렇게 세상이 변했는지 모르겠다. 해당 위키피디아 페이지의 정확성을 의심중이다. 다들 아시다 싶이 위키피디아가 백프로 정확한건 아니라서.

여기에 기술된게 사실이라면, 크라우드펀딩 역사상 모집자금 규모 1위와 6위가 모두 Ethereum 관련이다. 이더륨 프로젝트는 Bitcoin 네트워크를 통해 이루었고 이 무슨 듣보잡 TheDAO 는 이더륨 네트워크에서 이루었다고 한다.

이 소식의 자극 때문인지 한동안 주춤하던 이더륨 시총이 빌리언 달러에 도달했다:

ethereum_capacity

출처: coinmarketcap.com

자 그러면 DAO 란 무엇인가?

Continue reading