2014년 6월 3일 화요일

5년 동안 바뀐 것

블로그를 잠시 쉰다고 생각했었는데 5년이란 시간이 정말 빠르게 흘러버렸다. 그 사이 일어났던 꽤 많은 일들을 블로그 주제로 적당한 것으로 국한해서 찾아 보았다.

  • 내가 나이를 5살 더 먹었다. 아...
  • 이용자가 많이 줄었다는 이유로 구글 리더가 작년 이맘때쯤 서비스를 종료했다. 요즘은 사람들이 블로그를 구독해서 보는 것보다 그때그때 검색해서 또는 트위터/페이스북 링크로 방문하는 경우가 많아진 모양이다. Feedly가 대안으로 많이 쓰이고 있지만 2% 부족한 느낌이다.
  • 마이크로소프트가 2012년 야심차게 내놓은 Windows 8이 한껏 욕을 먹고 나서 2013년 8.1을 새로 내놓았다. 아직도 여기저기서 욕을 많이 먹고 있는 중인데 실제로 써보면 의외로 좋다.
  • 10여년만에(!) C++의 최신 표준 C++11이 확정/발표되었다. 언어 문법과 표준 라이브러리에 많은 기능이 추가되면서 지옥에서 온 프로그래밍 언어 같았던 예전보다 훨씬 편하고 강력해졌다.
  • C# 3.0이 4.0을 지나 5.0으로 업데이트되었다. 4.0에서는 동적 타이핑, 5.0에서는 비동기 프로그래밍 구문이 새로 도입되었는데, 이 두가지 기능과 기존의 LINQ가 어우러져 역대 프로그래밍 언어 중 가장 다양한 기능을 제공하면서 쓰기 쉽고 성능까지 좋은 언어가 되었다.
  • .NET이 3.5에서 4.5.x로 업그레이드되었다. 4.0이 C# 4.0, 4.5가 C# 5.0에 대응한다.
  • 마이크로소프트가 자신들의 최신 C#/Visual Basic 컴파일러를 오픈 소스로 공개했다(!). 단지 소스만 공개한 것이 아니라 컴파일러 자체가 다른 앱에 여러가지 API를 제공하는 플랫폼 역할을 한다. 그래서 이름도 .NET Compiler Platform이 되었다.
  • 가상 머신 기반인 .NET 코드를 네이티브 바이너리로 컴파일해주는 .NET Native가 발표되었다. 
  • Java 6이 7을 거쳐 8로 업데이트되었다. 올해 3월에 발표된 버전 8은 함수형 프로그래밍을 위해 람다식을 포함한 여러가지 새 문법을 도입했다.
  • 버전 컨트롤 시스템으로 오래된 CVS를 대체하고 있었던 Subversion이 급속히 퇴조하고 대부분 Git, 나머지는 Mercurial로 대체되었다. Subversion의 스폰서인 아파치 프로젝트 내에서도 Git으로 이전하는 프로젝트가 생겨날 정도니 Subversion는 잔여 수명이 얼마 남지 않은 듯하다. Git, Mercurial과 함께 경쟁구도를 형성하는 듯 했던 Bazaar는 개발이 사실상 중단되었다.
  • Git이 버전 컨트롤의 대세가 되면서 프로젝트 호스팅 서비스인 GitHub도 큰 인기를 얻고 있다. GitHub 의 인기에 눌려 한때 대세였던 SourceForge와 구글 프로젝트 호스팅은 서서히 쇠퇴의 길로 접어들고 있는 듯 하다. 마이크로소프트의 호스팅 서비스인 CodePlex는 이용자가 너무 적어서 내일 당장 서비스 종료 발표가 나도 이상하지 않을 정도.
  • 오픈 소스계의 사실상 표준 컴파일러였던 GCC의 강력한 경쟁자로 LLVM/Clang이 부상했다. C++를 써서 처음부터 깔끔한 구조로 작성한 덕분인지  낡은 구조와 C에 기반한 GCC보다 개발 속도가 빠르다. 생성된 바이너리의 성능도 꾸준히 향상되어 GCC에 준하는 수준으로 올라섰고, FreeBSD는 버전 10부터 기본 컴파일러를 GCC에서 Clang으로 교체했다.
  • OOP의 근본적인 문제를 극복하기 위한 대안으로 함수형 프로그래밍(FP)이 급부상하고 있다. 이제는 C#뿐만 아니라 C++11, Java 8에서도 FP를 언어 기본 문법으로 지원한다. F#같은 함수형 언어는 아예 Visual Studio의 기본 탑재 언어가 되었다.
  • 이름과 달리 별로 간단하지 않은 프로토콜인 SOAP이 퇴조하고 REST가 웹 서비스 아키텍쳐의 사실상 표준으로 굳어졌다.
  • XML 기반의 SOAP이 퇴조함과 더불어 JSON이 XML을 제치고 데이터 전송 포맷의 대세로 굳어지는 중이다. 같은 데이터를 전송할 때 XML보다 JSON이 평균적으로 훨씬 크기가 작고, 눈으로 보기에도 깔끔하다.
  • 전세계 개발자들의 문답 사이트인 Stack Overflow가 완전히 대세로 굳어졌다. 이제 Stack Overflow 없는 프로그래밍이란 거의 상상하기 힘들게 되었다.
  • 한때 컴퓨팅의 패러다임을 완전히 바꿀 것으로 기대를 모았던 HTML5/JavaScript 기반 웹 앱의 인기가 생각보다 금방 시들해졌다. 개발 효율은 안나오고 성능은 떨어지면서 플랫폼 전용 기능 지원에 한계가 있는 등 장점에 비해 단점이 너무 많고 심각하다.
  • 2009년 당시 2.x대 버전이 주류를 이루고 있던 파이썬은 당시에도 3.0이 있었는데 지금은 3.4가 최신 버전으로 큰 변화는 없다.
  • 프로그래밍 관심사가 스마트폰, 가상화 환경, 웹 등으로 바뀌면서 C 기반의 기존 오픈 소스 프로젝트들이 쇠퇴기에 접어 드는 추세다. 
  • 애자일 개발 방법론이 주류가 되다 보니 이제는 애자일이란 용어가 아예 쓰이지도 않는 상황이 되었다. 

5년 동안 바뀔 것들

다음 5년간에는 또 무슨 변화가 있을지 재미 삼아 한번 예측해 본다.
  • 내가 나이를 5살 더 먹을 것이다. 아...
  • 구글 크롬은 여전히 짜증나는 한글 입력 버그가 있을 것이다.
  • Windows 9는 여전히 인기가 없는데 왜냐하면 모든 사람들이 7만 쓰고 있을 것이기 때문이다. Windows 11 쯤이 되어야 사람들이 서서히 9로 갈아탈 준비를 하게 된다.
  • 리눅스는 여전히 한글 입력과 표시가 제대로 안될 것이다. "우분투에서 한글 입력이 안되는데 어떻게 해야 하나요?" "페도라로 갈아 타세요." "페도라에서 한글 표시가 제대로 안되는데 어떻게 해야 하나요?" "데비안으로 갈아 타세요." "데비안인데 앱이 안깔려요." "우분투로 갈아 타세요."
  • XML을 더 이상 빌드 스크립트로도 쓰지 않게 될 것이다. 스크립트 언어가 아닌 XML을 어떻게든 스크립트 언어로 써보려던 AntMSBuild같은 무리한 시도는 종언을 고하게 된다.
  • HTML5 기반의 웹 앱은 다시 한번 반짝했다가 이내 꺼질 것이다. 웹 앱과 비슷한 개념으로 네트워크 컴퓨팅이란 게 있었는데 나올 때마다 망한 대표적 기술이다. 이런 기술들이 안되는 이유는 기본적으로 Subversion이 퇴조하고 Git이 대세가 된 이유와 같다.
  • Java는 C#의 카피캣 행보를 이어나갈 것이다. 하지만 C#의 우아함까지 베끼는 데는 실패한다.
  • C#은 그 강력한 기능에도 불구하고 Java의 아성을 뛰어넘는 데에는 실패한다.
  • GitHub는 구글이나 마이크로소프트 둘 중 한군데서(아니면 또다른 돈많은 회사?) 거액으로 사들일 것이다. SourceForge는 명맥만 유지하고 CodePlex는 서비스를 접을 것이다.
  • C, C++, Objective-C 등 낡은 스타일의 언어가 상당 부분 쇠퇴할 것이다. 기존 코드 베이스는 계속 명맥을 유지하겠지만 신규 프로젝트를 이들 언어로 개발하는 경우는 급격히 감소한다. 사실 이런 언어들은 21세기와 별로 어울리지 않는다.

댓글 없음:

댓글 쓰기

댓글을 입력하세요. 링크를 걸려면 <a href="">..</a> 태그를 쓰면 됩니다. <b>와 <i> 태그도 사용 가능합니다.

게시한지 14일이 지난 글에는 댓글이 등록되지 않습니다. 날짜를 반드시 확인해 주세요.