구글이 소스코드 공유사이트 깃허브에서 프로그래밍 언어 스위프트를 '포크(fork)'했다. 스위프트를 만든 애플의 고유 소스코드를 복사해 새로운 소스코드 한 벌을 만들었다는 뜻이다.
이에 애플과 구글의 스위프트 버전별 생태계가 갈라지는 것 아니냐는 우려가 나왔다.
스위프트는 애플이 밀고 있는 맥OS 및 iOS용 프로그래밍 언어다. 애플은 지난 2014년 6월 세계개발자컨퍼런스(WWDC)에서 스위프트를 소개했다. 기존 개발언어 오브젝티브C보다 덜 어렵고, 더 빠르고, 현대적인 기능을 갖췄고, 디버깅하기 쉬운 언어로 소개됐다. [☞관련기사]
스위프트의 급속 확산은 2015년말 소스코드 공개 전후 이뤄졌다. [☞관련기사] 레드몽크의 프로그래밍 언어 인기도 조사에선 2014년 68위에서 2015년 22위까지 치고 올라왔다. [☞관련기사] 이후 티오베인덱스 2017년 3월 집계 기준으론 인기도 10위를 차지했다. [☞관련기사]
유명 개발자 크리스 래트너가 스위프트 개발을 주도한 인물이다. 그는 애플에서 11년간 일하다 애플 개발자 툴 디렉터 역할을 마지막으로 올초 퇴사했다. 테슬라 자율주행 시스템을 개발하는 오토파일럿 팀 담당 부사장으로 이직했다가 [☞관련기사] 현재 구글에서 일한다.
그 창시자를 영입한 구글이 애플의 깃허브 스위프트 프로젝트를 포크했다는 소식은 최근 벤처투자사 Y컴비네이터의 뉴스공유 게시판 '해커뉴스'를 통해 알려졌다. 게시 문구가 "구글이 스위프트를 포크했다(Google forked Swift)"였다. 개발자들의 비상한 관심을 모을만했다. [☞원문보기]
■ 구글이 애플 소스코드 '포크' 소문 확산
포크는 개발자가 하나의 소프트웨어(SW) 소스코드를 통째로 복사해 독립적인 새 SW를 만드는 걸 뜻한다. 예를 들면 애플 사파리 브라우저의 오픈소스 렌더링 엔진 '웹킷'을 포크해 구글 '블링크'가 만들어졌고, 블링크를 품은 크로미엄을 포크해 네이버 '웨일'이 태어났다.
깃허브의 구글 스위프트 웹페이지를 열어 보면 "애플 스위프트에서 포크된(forked from apple/swift) 구글 스위프트"라 표기돼 있다. [☞참조링크] 통용되는 포크의 의미를 염두에 두면 이는 구글이 애플의 것과 별개로 새로운 프로그래밍 언어를 만들기로 했다는 얘기가 된다.
구글처럼 덩치 큰 회사가 애플처럼 역시 덩치 큰 회사의 SW 소스코드를 포크하는 건 일반적인 오픈소스SW 커뮤니티에서 벌어지는 일과 다른 인상을 준다. 원래의 SW와 포크된 결과물이 연관 기술 생태계와 시장 저변을 놓고 경쟁 내지 대립하는 관계에 놓일 수 있어서다.
해커뉴스에 이 소식을 처음 전한 이용자 'eonil'의 생각도 그랬다. 그는 댓글에 "나는 구글 스위프트와 애플 스위프트라는 별개의 두 언어가 생길까 걱정된다"고 썼다.
■구글 "애플 스위프트 기여할 용도"
하지만 이는 오해가 빚은 기우였다. 구글은 오히려 구글은 자신들이 복사한 깃허브 스위프트를 애플의 스위프트 프로젝트에 기여하는 용도로 운영할 뜻을 내비쳤다. 애플 스위프트의 소스코드 개선을 위한 기여 활동을 효율화하기 위해 소스코드를 복사했다는 얘기다.
구글은 스위프트 깃허브 웹페이지를 통해 "이 저장소는 구글 직원이 협업하고 공식 스위프트 저장소에 풀리퀘스트를 수행하기 위해 존재한다"며 "모든 코드 제출(submissions)은 검수를 요청한다 …(중략)… 우리는 이를 위해 깃허브 풀리퀘스트(Pull Request)를 쓴다"고 밝혔다.
풀리퀘스트는 깃허브에서 남이 만든 코드에 수정을 제안하는 기능이다. 다른 사람의 코드를 바꾸려면 그걸 '포크'해 자기 저장소를 만들어야 한다. 여기서 바꾼 코드를 본래 저장소(Master branch)에 풀리퀘스트하면 반영을 위한 검수와 토론을 진행할 수 있다. [☞관련기사]
스위프트 창시자인 크리스 래트너도 "구글에서 스위프트는 (산재된 개선 작업 결과물을) 준비하고 통합할 지점이 필요하다고 보는 직원이 많았고, 우리는 그 지점을 공개적으로 운영하기로 결정했다"고 트위터를 통해 해명했다. [☞원문보기]
또다른 구글 직원이 해커뉴스를 통해 구글이 스위프트를 사용하는 이유 등 배경 설명을 보탰다. 그에 따르면 구글에서 아이폰과 아이패드용 애플리케이션 개발을 돕기 위한 내부 개발툴을 만드는 데 스위프트가 쓰이고 있다.
■미묘한 깃허브 용어 '포크'…부실했던 최초 전달
2가지 요소가 작용해 오해를 키웠다. 우선 eonil이라는 이용자가 해커뉴스에 "애플 스위프트에서 포크된 구글 스위프트"라는 문구를 인용하면서, 그게 프로그래밍 언어 자체가 아니라 '깃허브 소스코드 저장소'를 포크했다는 언급을 빠뜨렸다.
그리고 깃허브 사이트에서 특정 프로젝트 소스코드의 저장소를 가져와 만들었다는 표현을 포크 대신 '클론(clone)'이라는 용어로 나타냈다면 너 나았을 것이란 지적도 있다. 애시당초 깃허브 사이트에서 단순한 복사(copy) 기능을 '포크'라고 부르는 게 오해의 여지를 준 셈이다.
관련기사
- 스위프트, 개발언어 인기 '톱10' 됐다2017.11.17
- 2016년을 달군 SW 개발 언어는?2017.11.17
- 애플, 스위프트 대중화 나섰다2017.11.17
- 달라진 IBM "그냥 오픈소스 쓰세요"2017.11.17
비즈니스인사이더가 지난 15일 이 '해프닝'을 기사화했다. 보도는 "만일 구글이 스위프트를 정말로 포크했다면 그건 거대한 프로그래밍 언어 커뮤니티를 근본적으로 둘로 갈라버리는 일이 되기에, 구글의 해명은 (이런 우려를 했던) 프로그래머들을 안심시킬 것"이라 평했다. [☞원문보기]
스위프트가 구글 플랫폼의 개발자 생태계에 엄청난 변수가 될 뻔한 적이 있긴 있었다. 한때 구글 내부에서 자바와 같은 메인 안드로이드 앱 개발용 언어로 스위프트 채택을 검토했기 때문이다. [☞관련기사] 다만 구글은 그 역할을 최종적으로 코틀린에 부여했다. [☞관련기사]