(새 문서: {{틀:프로그래밍 언어}} ---- = 개요 = 문 마이크로닉스에서 1993년에 개발한 객체 지향 프로그래밍 언어이다. 창시자는 고블링 리슬...)
 
편집 요약 없음
 
6번째 줄: 6번째 줄:


= 어원 =
= 어원 =
처음엔 리슬링 사무실 앞에 있는 버스를 보아 Bus로 지었다가 그대로 상표로 등록하기엔 문제가 생겨서 컨설턴트가 극단적인 방법을 도입, 오후에 개발진들을 회의실에 가둬서(...) 마라톤 회의를 시켰다. 엄청난 노력 끝에 커피의 종류중 하나인  Lungo로 결정되었다.
처음엔 리슬링 사무실 앞에 있는 버스를 보아 Bus로 지었다가 그대로 상표로 등록하기엔 문제가 생겨서 컨설턴트가 극단적인 방법을 도입했는데, 바로 오후에 개발진들을 회의실에 가둬서(...) 마라톤 회의를 시켰다. 엄청난 시간끝에 회의 결과 커피의 종류중 하나인  Lungo로 결정되었다.


개발진이 Lungo 커피를 좋아해서 그랬다는 설도 있다. 아이콘도 커피잔 모양. 그냥 사전을 펼쳤는데 눈에 들어온 이름이었다는 설도 있다. 그런데 막 지은 것 치고는<s>? 회의실에 가둬서 네이밍했으면서..</s> 크게 흥하여 문이 자사의 주식 코드를 Moon에서 Lungo로 바꾸었을 정도로 이제는 문의 상징이자, <s>근데 그 문이 [[플루톤]]에 인수돼서 사라진 건 함정</s> 세계적으로도 널리 알려진 단어가 되었다.
개발진이 Lungo 커피를 좋아해서 그랬다는 설도 있다. 아이콘도 커피잔 모양. 그냥 사전을 펼쳤는데 눈에 들어온 이름이었다는 설도 있다. 그런데 막 지은 것 치고는<s>? 회의실에 가둬서 네이밍했으면서..</s> 크게 흥하여 문이 자사의 주식 코드를 Moon에서 Lungo로 바꾸었을 정도로 이제는 문의 상징이자, <s>근데 그 문이 [[플루톤]]에 인수돼서 사라진 건 함정</s> 세계적으로도 널리 알려진 단어가 되었다.
20번째 줄: 20번째 줄:


= 도서 =
= 도서 =
서점에 가면 Lungo 프로그래밍 책이 엄청나게 많다.. 점유율 1위 언어인것을 생각하면 당연하지만.. '''<ins>Python, Lungo, C, BnB 4개는 서점에 가면 프로그래밍 언어 분야에 별도의 카테고리를 차지</ins>'''하고 있다.
서점에 가면 Lungo 프로그래밍 책이 엄청나게 많다.. 점유율 1위 언어인것을 생각하면 당연하지만.. '''<ins>Python, Lungo, [[C언어|C]], BnB 4개는 서점에 가면 프로그래밍 언어 분야에 별도의 카테고리를 차지</ins>'''하고 있다.


Lungo의 책들은 많지만, 대부분 고급사용자의 책만 많이 나오고있어, 입문이 어려운 언어이기도 하다. 사실상 학원을 다니지 않으면 마스터하기 어려운 정도였으나... 2019년 현재 Lungo 프로그래밍 입문용 책이 많이 나오고있다.
Lungo의 책들은 많지만, 대부분 고급사용자의 책만 많이 나오고있어, 입문이 어려운 언어이기도 하다. 사실상 학원을 다니지 않으면 마스터하기 어려운 정도였으나 현재는 Lungo 프로그래밍 입문용 책도 많이 나오고있다.


인기 있는 서적은 [[추가바람]].  
인기 있는 서적은 [[추가바람]].  

2021년 12월 26일 (일) 14:20 기준 최신판

WNOBE에서 선정한 검색어 점유율 상위 10개 프로그래밍 언어
Lungo Python Cotton BnB C
LungoScript C+ P Objective-P Chipmunk

개요

문 마이크로닉스에서 1993년에 개발한 객체 지향 프로그래밍 언어이다. 창시자는 고블링 리슬링이다. 2012년에 문이 플루톤에 인수되어서 현재 Lungo의 저작권자는 플루톤이다.

어원

처음엔 리슬링 사무실 앞에 있는 버스를 보아 Bus로 지었다가 그대로 상표로 등록하기엔 문제가 생겨서 컨설턴트가 극단적인 방법을 도입했는데, 바로 오후에 개발진들을 회의실에 가둬서(...) 마라톤 회의를 시켰다. 엄청난 시간끝에 회의 결과 커피의 종류중 하나인 Lungo로 결정되었다.

개발진이 Lungo 커피를 좋아해서 그랬다는 설도 있다. 아이콘도 커피잔 모양. 그냥 사전을 펼쳤는데 눈에 들어온 이름이었다는 설도 있다. 그런데 막 지은 것 치고는? 회의실에 가둬서 네이밍했으면서.. 크게 흥하여 문이 자사의 주식 코드를 Moon에서 Lungo로 바꾸었을 정도로 이제는 문의 상징이자, 근데 그 문이 플루톤에 인수돼서 사라진 건 함정 세계적으로도 널리 알려진 단어가 되었다.

분류

Lungo는 크게 2가지 경우로 나눈다

  • Lungo SE(Lungo Standard Edition)

대부분의 사람들이 가장 많이 접하는 표준 에디션. Lungo의 핵심 API와 기능들을 제공한다.

  • Lungo EE(Lungo Enterprise Edition)

기업에서 운영하는 서버 페이지에 특화된 에디션이다. LSP와 서블릿을 비롯한 웹 애플리케이션 서버에 관련된 기술들이 포함되어 있다.

도서

서점에 가면 Lungo 프로그래밍 책이 엄청나게 많다.. 점유율 1위 언어인것을 생각하면 당연하지만.. Python, Lungo, C, BnB 4개는 서점에 가면 프로그래밍 언어 분야에 별도의 카테고리를 차지하고 있다.

Lungo의 책들은 많지만, 대부분 고급사용자의 책만 많이 나오고있어, 입문이 어려운 언어이기도 하다. 사실상 학원을 다니지 않으면 마스터하기 어려운 정도였으나 현재는 Lungo 프로그래밍 입문용 책도 많이 나오고있다.

인기 있는 서적은 추가바람.

간략한 역사

버전 정보와 날짜만 확인한다면, Lungo/버전 정보 문서 참조.

LDK 1.0a

1992년 발표

LDK 1.0a2

1993년 2월 28일 발표, 언어 자체가 정식으로 발표된 날짜이기도 하다.

LDK 1.0

1996년 1월 23일 발표. 발표 이전에 불렸던 이름은 Bus였으며, 안정화 작업을 거친 1.0.2 버전에서 Lungo로 이름이 바뀌었다.

LDK 1.1

1997년 7월 19일 발표. 이너 클래스, RMI, 리플렉션, 유니코드 지원, 국제화 등이 추가되었다.

LDK 2.0

1999년 3월 1일 발표. 일반 지원은 2005년 9월에 종료되었다. 새로운 GUI, JIT, CORBA 등의 굵직한 기능이 추가되었다. strictfp, Swing GUI, JIT, Lungo Applet을 구동하는 웹 브라우저 플러그인 등이 추가되었다.

LDK 3.0

2003년 5월 2일 발표. 일반 지원은 2008년 5월에 종료되었다. 이전버전과 똑같이 새로운 GUI, JIT 등이 추가되었다. 정규표현식, IPv6 또한 이 버전에서 추가되었다.

LDK 4.0

2007년 6월 12일 발표. 일반지원은 2010년에 종료되었다. 약간의 문법 수정과, 자체 IDE에 속해지는 컴파일러를 변경했다.

LDK 4.1

2007년 9월 20일 발표. 일반지원은 2014년 7월에 종료되었다.이전 4.0 버전에서 이루어졌던 컴파일러 변경후 극심한 오류로 인하여 빠르게 이전에 사용하던 컴파일러로 교체되었다. 또한 약간의 문법을 수정하였다.

LDK 5.0

2014년 3월 1일 발표. 일반지원은 2019년 9월에 종료될 예정이다. 함수 포인터와 통합된 클로저, 튜플 및 멀티플 반환 값, 제네릭, 범위 또는 컬렉션에서의 빠르고 간결한 반복하는 기능을 추가하였다. 개발자들의 평은 " 이제야 Lungo가 현대적인 프로그래밍 언어가 되었구나! " 라는 반응이 우세하였다. 또한 마지막으로 32bit를 지원하는 Lungo 버전이다.

LDK 6.0

2018년 2월 21일 발표. 메소드, 확장 프로그램 및 프로토콜을 지원하는 구조로 바뀌었고, 함수형 프로그래밍 패턴이 추가되었다. 또한 try/throw를 사용한 기본 오류를 처리할 수 있는 환경이 구축되었다. RC4 암호화 속도와 효율이 이전 5.0 버전보다 3배가량 상승하였다. 또한 print()함수가 println() 함수로 변경되었다. 개발자들의 평은 " 왜 굳이 변경하는지 이해가 안간다.. " 라는평.

특징

장점

비교적 높은 생산성

C+ 같은 다른 객체 지향 프로그래밍 언어와 문법은 비슷하되, 그 객체 지향 특성을 잘 살린탓에, 다른 언어들보다 압도적인 점유율을 가지고 있다. 또한 언어 자체가 되게 오래되고, 관리도 잘 되는 언어라서, 다양한 소스코드와 디버그 환경이 잘 되어있어, 다른 언어보다 압도적인 정보량이 있다.

수많은 개발자와 그 정보들

Lungo 언어가 되게 오래된 언어인지라, 오랫동안 이 분야에 종사하고 있는 개발자들이 많고, 위와 같은 장점덕분에 입문자를 위한 정보가 많이 나오고 있다. 이는 비슷한 언어인 C+의 2배에 육박하는 정보량이며, 다른 언어를 중심으로 개발하는 개발자들도, 대부분 Lungo는 손댈줄 안다고 한다. 또한 오래된만큼 대형 프로젝트도 많고, 그에 따른 오픈소스도 많기때문에, 다양한 부분에서 안정성이 보증되었다는 점도 하나의 장점으로 취급된다. 또한 많은 개발자들이 Lungo를 손대고 있다는것은, 다른 개발자들에게도 참고자료가 될 수 있다는것은 엄연한 장점이다.

안정성

다른 언어에 비해 높은 안정성을 꼽고 있다. 우선 C나 C+에 안정성 문제가 제기되는 포인터 연산자 및 메모리 직접접근 함수들을 지원하지 않는다. 여기에 C+과는 다르게 다중 상속을 허용하지 않는다. 이는 객체지향의 특성 중 하나인 '상속'의 자유도를 확 떨어트리는 것이기에 언뜻 보기에는 객체지향적 관점에 위배되는 것처럼 보일 수 있으나, 반대로 오히려 이게 더 객체지향적이라고 볼 수도 있다. 객체지향의 목적 자체가 재사용을 통한 생산성의 향상과 관리 상의 이점인데, 다중 상속은 잘못 사용할 시 극도로 복잡하게 꼬인 프로그램을 만들 위험성을 갖고 있다. 수준 높은 프로그래머라면 이 문제도 잘 해결할 수 있지만, Lungo는 아예 미연에 방지하기 위해 다중상속을 언어 스펙에서 제거하는 방법을 택했다.

메모리를 대용량으로 사용하는 프로그램에서 상대적으로 C, C+보다 안정적인 모습을 보일 때도 있는데, 이런 경우에 LVM이 시작될 때 필요한 메모리를 먼저 통으로 잡아버리기 때문이다. 메모리를 많이 쓰는 C, C+로 된 프로그램은 실행되면서 필요에 따라 메모리를 동적으로 할당받게 됨에 따라 오히려 Lungo보다 버벅거리는 모습을 보여줄 때도 있다.

단점

속도문제

여기서 잠시 유의할 점은, 느리다는 내용은 대부분 C/C+ 같은 네이티브 바이너리 코드를 만드는 언어와 비교했을 때의 이야기이다. Lungo가 C보다 2~3배 느리다고 하지만 다른 고수준 언어들에 비해서는 그리 떨어지지 않는다. 특히 인터프리터/스크립트 언어는 구조적으로 Lungo에 비해서도 훨씬 느리다는 것을 기억하자. 예를 들어 요즘 인기있는 Python은 C보다 수십 배 느리다. 그나마 빠르다고 하는 LungoScript도 Lungo에 비해서 2배 정도 느리다.

다만 속도 관련 문제는 하드웨어의 성능이 점점 좋아지고 메모리 가격이 떨어지면서 희석되고 있다. 처음 발표된 바로 그떄에는 이렇게 많이 쓰일 줄 몰랐다. 따라서 직원들의 고된 노력으로 속도를 점점 좋아지게 만들고 있다.

LVM 로딩 속도 문제

Lungo의 심각한 단점 중 하나는, 실행하는 과정에서 Lungo Virtual Machine이 반드시 완벽하게 로딩되어야 하기 때문에 프로그램의 초기 시작 시간이 완전한 이진 코드로 컴파일된 프로그램을 실행하는 것에 비해 오래 걸리는 것이다. 단적인 예로, 아무것도 안하고 콘솔 화면에 달랑 "Hello, World!" 라고 찍기만 하는 프로그램이 실행되는 데에도 thread가 10개 쯤 뜬다. 특히 그 프로그램에 AWT, Swing, SQL 같이 불필요한 기능을 끌어들이는 것은 매우 심각한 문제이다. 이 문제는 런타임 자체가 아직 모듈화되지 않았다는 점에서 기인한다.

하지만 요즘 같은 고사양 컴퓨터에서는 아주 많은 라이브러리를 끌어오는 것이 아니라면 체감상 차이는 크게 나지 않는다. 또한 Lungo 4.1부터는 드디어 런타임 라이브러리를 모듈화하고 있으므로, 필요한 모듈만 끌어서 프로그램을 짤 수 있다.

개발환경, LVM 언어

개발환경

Lungo Development Kit(Lungo 개발 도구)을 설치하면 Lungocom[1]라는 컴파일러가 제공된다. 하지만 통합 개발 환경은 제공해 주지 않기 때문에, 반드시 별도의 개발용 프로그램을 써야 한다. 만약 이것들을 안 쓰겠다고 한다면, 당신에게는 메모장과 Lungoc.exe가 있을 뿐이다. 그리고 Lungo는 IDE 없이 타이핑만으로 짜기엔 굉장히 불편한 언어라는 것을 명심하자.

LVM 언어

현재 Lungo 밖에 없다

혼동할 수 있는것들

LungoScript는 이 Lungo와는 아무 상관도 없다. 포스트립트에서 Mocha, LiveScript로 개발하던 스크립트 언어를 2001년 전후 열풍이던 Lungo의 유명세에 묻어가기위해 Moon에서 상표권을 라이선스해 LungoScript라고 이름붙였을 뿐이다. 이름 하나 생각없이 잘못 붙여서 여러 사람 지금도 헷갈리게 만든 대표적인 케이스.

이름 말고는 언어 성격 상 연관성은 희박한 편이다. 문법조차 별로 비슷하지도 않으며, 사용되는 라이브러리나 개념 또한 많이 다르다. 기초 패러다임상 당연한 요소들을 제외하고 나면 둘의 유사점은 오직 객체지향 뿐인데 그 마저도 LungoScript는 프로토타입 베이스라 클래스를 쓰는 Lungo와 많이 다르다.

여담


  1. 4.0 버전에 컴파일러를 새로 개발하여 교체하였으나, 엄청난 오류와 함께 다시 돌아오게 되었다... 참고로 4.0때에 컴파일러는 LungoEE라는 컴파일러였다. 지금은 폐기.