개발자를 미치게 하는 10가지 프로그래밍 언어
10. 파이썬
특징 : 고수준의 다목적 프로그래밍 언어로 가독성을 장점으로 내세운다. 컴파일도 가능하지만 스크립팅 언어로 사용되는 경우가 많다.
공통적인 불만 : 블록 구조를 지정하는 데 대괄호나 중괄호 대신 들여쓰기를 사용, 콜론과 밑줄의 과도한 사용, 모듈/변수 이름 충돌.
평가 : “파이썬은 밑줄과 공백의 조합” - David Pollack
피하는 방법 : 구글, 야후, 나사에서 일하지 않는다.
9. 랩뷰
특징 : 랩뷰(LabVIEW: Laboratory Virtual Instrument Engineering Workbench)는 측정 및 제어 시스템에 사용되는 시각적인 데이터 흐름 프로그래밍 언어인 G를 위한 개발 환경이다. 프로그래머는 랩뷰를 사용해서 “와이어”를 통해 기능 노드를 연결하여 실행을 확인한다.
공통적인 불만 : GUI 프로그래밍 방식은 아주 단순한 작업 외의 모든 작업을 극도로 복잡하게 만든다.
평가 : “랩뷰의 추상화는 전혀 새로운 차원의 복잡성으로 귀결되며, 이는 추상화의 목적에 완전히 반하는 것이다.” - hardy263
피하는 방법 : 장비 제어(특히 실험실 장비) 또는 산업 자동화 프로그래밍 관련 직장을 피한다. 또한 아이의 레고 마인드스톰 프로젝트를 돕겠다고 나서지 않는다.
8. 자바스크립트
특징 : 넷스케이프에서 처음 개발한 인터프리트 언어로, 주로 웹 페이지에서 클라이언트 측 스크립팅 언어로 사용된다. 서버 측 웹 스크립팅과 임베디드 스크립팅 언어로도 구현됐다.
공통적인 불만 : 대/소문자 민감성, 브라우저마다 다른 구현, 디버깅 기능의 부재(파이어버그로 해결 가능), 이상한 상속 규칙.
평가 : “유별난 프로토타입 기반 상속, 모듈성의 결여, 그리고 이상한 “this” 처리 방법이 싫다.” - ladimir
피하는 방법 : 웹 개발자로 일하지 않는다.
7. Tcl
특징 : Tcl(Tool Control Language)은 임베디드 명령 언어로 개발되었지만 웹 애플리케이션, 네트워크 관리 및 테스트 자동화와 같은 분야에 사용되는 범용 스크립팅 언어로 발전했다.
공통적인 불만 : 구문이 너무 단순하다. 포인터가 없으므로 참조로 전달할 방법이 없다. 배열이 문자열로 저장된다. 목록 의미론(semantics)에 취약하고, 변수 범위 지정이 혼란스럽다.
평가 : “…오실로스코프와 파워 서플라이를 제어하는 용도로는 충분했지만, 결코 실험실 밖으로 나와서는 안 되는 언어다.” - Monica Anderson
피하는 방법 : 시스코, AOL 또는 CNET이나 기타 AOLserver 또는 OpenACS 플랫폼을 사용하는 곳에 취직하지 않는다.
6. 코볼
특징 : 1959년에 처음 설계되었으며 주로 비즈니스 애플리케이션과 정부 관리 기능을 지원하도록 만들어진 코볼(COBOL: COmmon Business-Oriented Language) 레거시 시스템은 지금도 여전히 널리 사용되고 있다.
공통적인 불만: 극히 장황한 구문(프로그래머가 아닌 사람이 읽을 수 있는 언어를 목적으로 만들어짐), 버전간 비호환성, 코볼 2002 이전에는 객체 지향 프로그래밍과 함수, 포인터를 지원하지 않음
평가 : “코볼은 아름답고 정교한 바로크 양식의, 끔찍한 언어다.” - John Pirie
피하는 방법 : 정부, 금융 서비스 또는 군대에서 일하지 않는다.
5. C++
특징 : C의 확장으로 개발된 중간 수준 언어로, 객체 지향 프로그래밍을 지원한다. 지금도 가장 인기 있는 언어 중 하나이며 광범위한 시스템과 애플리케이션에 사용된다.
공통적인 불만 : 지나치게 많은 기능, 수동 메모리 관리, 느린 컴파일 속도, 프로그래머가 같은 프로그램 내에서 객체 지향과 절차적 코드 사이를 전환할 수 있다는 점.
평가 : “C++를 사용하는 모든 조직은 C++의 하위 집합만 사용한다. 제정신을 가진 사람이라면 C++의 모든 부분을 허용하는 코딩 기준을 둔다는 것은 상상할 수 없기 때문이다.” - cletus
피하는 방법: 어도비, 구글, 또는 게임 업계에서 일하지 않는다.
4. PHP
특징 : 동적으로 HTML 페이지를 생성하기 위해 서버 측 스크립팅에 주로 사용되는 인터프리트 언어다. 또한 많은 운영체제에서 독립형 스크립팅 언어로도 사용할 수 있다.
공통적인 불만 : 많은 함수에 대한 일관성 없는 명명 규칙, 보안 결함, 유니코드에 대한 네이티브 지원 결여, 프레젠테이션 코드(예: HTML, CSS)와 섞이는 경우가 많다는 점.
평가 : “PHP는 최악의 언어지만 계속 사용할 수밖에 없다.” - ojrac
피하는 방법: 웹 기반 작업을 한다면 피할 방법이 별로 없다. 그러나 우선 페이스북에서 일하지 않고 위키미디어, 워드프레스, 줌라, 드루팔과도 거리를 둔다.
3. 자바
특징 : 원래는 인터랙티브 텔레비전용으로 개발된 객체 지향 언어이며 현재 가장 널리 사용되는 프로그래밍 언어 중 하나다. 자바 코드는 바이트코드로 컴파일되며, 바이트코드는 각 플랫폼별 자바 가상 머신에 의해 인터프리트된다. 즉, 자바 프로그램은 “한 번 작성하면 어디서나 실행할 수 있다.”
공통적인 불만 : 구문이 너무 장황하다. 느리다. 함수를 전달하기가 쉽지 않다. API가 필요 이상으로 복잡하다(같은 기능을 다른 언어에서는 더 효율적으로 할 수 있음).
평가 : “가장 선호하지 않는 언어는 지나치게 투박한 자바다. 작업 하나를 완료하는 데 너무 많은 확장과 쓸데없는 노동이 필요하다.” - herb
피하는 방법 : 안드로이드 SDK를 사용하여 앱을 개발하지 않는다.
2. 펄
특징 : 고수준의 다목적 인터프리트 언어로 “스위스 군용 칼”, “인터넷의 강력 접착 테이프”로 통한다. 펄은 CGI 스크립팅부터 시스템 및 네트워크 관리에 이르기까지 모든 분야에 사용된다.
공통적인 불만 : 펄에 대한 가장 큰 비판은 작업을 수행하는 방법이 너무 많다는 것이다. 얼만큼 많은가 하면 사실상 쓰기 전용 언어라는 말이 있을 정도다. 즉, 펄 코드는 읽기가 불가능하다는 뜻이다(따라서 유지 보수도 불가능함).
평가 : “작업을 실행하는 방법이 너무 많아서 다른 사람들이 코드를 읽기가 거의 불가능하며 가장 단순한 구문조차 횡설수설처럼 보인다.” - Ian Peters-Campbell
피하는 방법 : 프로그래머가 되지 않는다.
1. 비주얼 베이직
특징 : 그래픽 사용자 인터페이스를 사용해 윈도우 애플리케이션을 개발하는 데 주로 사용되는 프로그래밍 언어이자 통합 개발 환경이다. 마이크로소프트가 초보자도 쉽게 사용할 수 있는 언어를 목적으로 만든 언어로, 그래픽과 드래그 앤 드롭, 코드 작성을 조합하여 애플리케이션을 구축한다.
공통적인 불만 : 구문이 너무 장황하고 이상하다. 실행하려면 동적 링크 라이브러리가 필요하다. 객체 지향 프로그래밍 지원이 부족하다. 1998년 이후 마이크로소프트의 공식 지원이 없다.
평가 : “어떠한 프로그래밍 규칙에도 맞지 않는 그 아리송한 구문을 이해할 수 없다.” - Checksum
피하는 방법 : 2008년 이전에 만들어진 윈도우 애플리케이션을 사용하는 회사에 취직하지 않는다.