페이스북이 'Hack'이라는 새로운 프로그래밍 언어를 오픈소스로 공개했다.
Hack은 빠르게 코드를 작성할 수 있고 PHP와 유사하며 HHVM* 을 위해 만들었다. 1년동안 회사내에서 사용해왔다고 한다.
프로그래밍적으로 이것은 C같은 정적으로 타입이 고정된 언어와 PHP같은 동적으로 타입이 정해지는 언어를 합치기 위해 개발했다.
정적인 프로그램 언어를 작성할때 프로그램이 동작하기 전에 에러를 알려주지만,
더 근대적인, 동적인 타입의 언어는 프로그램이 크래시나기 전까지 모른다.
페이스북은 PHP를 사용했지만, Hack 팀의 매니저인 Bryan O'Sullivan은
많은 개발자들과 함께 다양한 프로젝트를 하면서 프로그램을 돌리기 전에 에러를 잡는 것의 이점이 이해가기 시작했다고 한다.
그것은 개발자들이 코드짜는 것을 빠르게 했고, 페이스북같은 큰 규모의 코드를 운영할때 더 빠르게 코딩하는 것에 중요하게 작용했다.
이런 동적으로 타입이 정해지는 언어가 에러를 잡는 것 등을 희생하여 빠르게 개발하도록 하는 것과,
정적으로 타입이 정해진 언어가 좀더 안전한 결과를 낼 수 있는 것의 두마리 토끼를 다 잡으려고 했다고 블로그에 밝혔다.
* 출처 : http://gigaom.com/2014/03/20/facebook-unveils-hack-a-new-programming-language-for-writing-code-faster/
* 페이스북 블로그 : https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/
임의 역주
* HHVM : HipHop Virtual Machine. PHP 를 바이트코드로 변환하여 돌리는 가상머신. 자바의 JIT방식으로 컴파일한다고 함.
그래서 1년 동안 이모냥이...
후자가 타입에 유연하긴 하지만, 타입이 잘못되는지 올바르게 되었는지는 해당 코드부분이 실행되어야지만 알 수 있는 한계가 있죠.
그냥 static, dynamic이 아니라요.
#CLiOS
C.Kit
차라리 스칼라나 파이썬이 더 나아 보입니다만..
그래서 에디터에서 실시간으로 에러를 안알려줍니다. 실행을 해봐야 에러가 있는지 알수가 있죠.
그런데 컴파일 언어 같은경우 (자바포함) 컴파일을 하므로 그전에 에디터에서 문법검사를 어느정도 실시간으로 해주죠..
근데 이렇게 하려면 PHP 같은 편한 문법 (사전에 변수선언 같은거 전혀 안하고.. 문법의 자유로움) 을 어느정도 희생을 해야 되요. 그 희생을 최대한 줄여서 그걸 두마리 토끼를 다잡게 만들었다고 하는거고요. 그걸 에디터에서 리얼타임으로 알려 주게끔 만들었다는 거예요.
보통 자바나 C처럼 말이죠.
근데 PHP 10년 넘게 사용한 사람으로서 솔직히 뻘짓인거 같긴 한데.. 페이스북같이 대형 코드를 돌린 전례가 별로 없으니 지들 쓰려고 만들만도 하겠네요.
근데 또 함정인건 결국 중요한 에러는 돌려봐야 나오는거죠.
동적, 정적이라는 것은 변수의 type 이 컴파일 타임에 고정되는지 여부를 구분합니다. (인터프리터 언어라면 아예 고려 대상이 안될 수도 있겠습니다만...)
JS 나 예전의 AS 와 같은 언어들이 개발의 편의를 위해 형 검사를 실행 시간에 했었습니다만, 대규모 개발에서는 약점이 될 수 있습니다.
특히 요즘처럼 문서 없이 개발하는 방법론이 대세라면 소스코드가 커뮤니케이션의 역할도 해줘야 하는데, 암묵적 정의에 대한 전달에서 오류가 확산될 가능성도 큽니다.
실행 과정에서는 어떻게 될지 모르겠습니다만, 의의 자체는 좋다고 봅니다.
@ 문법 오류는 작성 시에 에디터에서 걸러집니다. 요즘 에디터들이 워낙 좋아서 말입죠...
인터프리터는 아무리 에디터가 좋아져도 에디터나 실시간으로 알려주지 못하는 에러가 많을수 밖에 없다는 거죠. 일례로 PHP 에서 뱉는 Fatal error 같은건 구조의 한계상 에디터에서 알려줄수가 없어요. 꼭 실행해봐야 알수 있죠. 반면에 컴파일 언어류는 그 정도는 다 걸러내죠. 인터프리터에선 사전정의가 안되있는건 일단 ignore 이니까요.
아무튼 페북같이 수백명 개발자 달라붙어서 하는곳에서나 조금 의의가 있다는 정도 겠네요. 의의가 있다는데는 동의 합니다.
그나저나 국내에서 php는 대우를 못받는데.. 미국에서 서비스 개발시 아직 많이 사랑받네요 음
전세계적으로 php 는 51% CMS(PHP) 28% .NET 17% JAVA 3% 라고 MS tech days 에서 발표했었죠 절대다수가 PHP 더라고말이죠
with ClienS
php도 생각외로 많이 쓰이고 또한 해외에서도. net 그리 많지 않아요..
그러나 php의 경우 어느정도 규모의 서비스에는 좋지만(이것도 요새는 루비 등에 밀리지 않을지..)
엔터프라이즈 서비스의 경우 한계가 있다 생각이 들기 때문에 사실 그대로 고수해 간다는게 과연 현명한 일인가 싶긴하네요..
저도 궁금해져서 구글링을
해봤습니다
http://w3techs.com/technologies/details/pl-aspnet/all/all
http://w3techs.com/technologies/history_overview/programming_language
위에 w3techs 발표자료군요 신뢰도는 모르겠으나 도메인단위로 사용하는 서버사이드랭귀지를 체크한 통계인듯합니다
with ClienS
스택오버플로 등의 사이트들의 검색 인입량으로 통계를 뽑고 있는것으로 알고 있습니다..
거기서는 c, java, objectC 그리고 others라고 나오는것으로 알고 있습니다..
물론 서버사이드 랭귀지로가면 순위가 좀 바뀌겠지만(상기 결과는 전체이니)
그렇다해도 구글링이나 다른 기술관련 검색사이트에서 검색해서 나오는 결과들을 보더라도 저런수치는 좀 이해가 안돼네요..
from CV
http://www.mypy-lang.org/
ㅠ..
Clien for iOS