가장좋은프로그래밍언어

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS
가장 좋은 프로그래밍 언어

프로그래밍 언어는 어떤 것이 가장 좋을까?
우문이 아닐까 싶다. [http]context 없이 항상 가장 좋은 도구라는게 있을 수 있을까. --아무개
동감입니다. 가장 좋다는 것은 개개인이 다 다를 뿐더러 사용하는 곳에 따라 그 기준이 달라질 수 있으니까요. --아무개

다들 그런 생각으로 쓰고 계시지만, 브레인스토밍 식으로 이런 언어는 이래서 좋다는 것을 이야기하면서 각 프로그래밍 언어의 강점, 어떤 일을 할 때는 어떤 언어가 좋다는 것을 정리해 보는 페이지가 되면 되겠지요. -- gerecter

이 페이지는 공학적인 측면에서만 프로그래밍 언어를 바라보고 있군요. SequoiaCppLanguage를 사용해서 일을 하고 있고(CppLanguage는 괴물이다) 선택권이 주어진다면 JavaLanguage를 사용하겠지만 가장좋은프로그래밍언어PrologLanguage라고 생각합니다. 직관에 가장 잘 맞거든요. --Sequoia

나는 개인적으로 비주얼베이직과 파워빌더를 약 7년정도의 프로젝트를 통하여 사용하여 왔다.
윈도우 친숙한 프로그램을 짤때는 비주얼베이직을 사용하고 데이타베이스중심의 프로그램을 짤 때는 파워빌더를 사용한다. 개인적으로 파워빌더가 상속이라는 측면에서 개발속도의 측면에서 데이타베이스 지원의 측면에서 최고하고 생각한다. 물론 웹을 제외하고 말할 때... 가장 좋은 언어는 어떤 언어인가?
'비주얼베이직'과 '파워빌더'가 언어인가? 까비는 그저 개발 도구나 환경으로 밖에는 안 보인다.
맞습니다. 하지만 언어와 개발환경을 구분하는 것이 매우 모호한 경우가 있는 것 같습니다. SmalltalkLanguage를 언어와 환경으로 분리해 버리면 SmalltalkLanguage는 어디에도 없겠죠. 우리 자연언어도 순수 언어(만약 그런 것이 존재한다면)만을 대상화하기에는 현실을 덜 반영하거나, 실용성이 떨어지거나 하지 않을까 합니다. --김창준
확실히 그렇긴 합니다. Visual-Basic에서 사용되는 언어는 Basic도 아니고 그렇다고 Basic이 아닌것도 아닙니다. 그야말로 독특한 문법체계를 가지로 있다고 봐도 되기에 언어라고 생각해도 될 것입니다. 하지만 여전히 Visual-C++ 같은 것은 툴이라고 밖에는 생각이 되질 않습니다. --하이레느
이런 얘기가 있죠. 만약 빌게이츠가 마음을 조금만 고쳐먹어 Visual Basic을 모든 개발언어의 표준으로 만들기로 마음먹었다면 이는 성공했을거라고. 오피스에도 VB가 있고 웹상의 Active X에도 VB가 있습니다. VB는 궁극의 언어가 될 가능성을 놓쳤습니다. --musiki
빌게이츠는 포기하지 않았습니다. Visual Basic .NET 이 그 증거죠. 그리고 비베닷넷 정도면 언어라 불릴 만도 하지 않나요. --F176

개인적으로 한국어를 좋아한다. 나는 한국어로 세상을 바라보며 한국어로 세상을 꿈꾼다. 한국사회의 언어 관습에 빠져 있으며 한국적 언어 개념으로 영어와 중국어를 이해한다.
무슨 뜻인가요? 한국어로 프로그래밍하고 싶으시다는 뜻인가요? AnswerMe --Gueller
한국어로 된 프로그래밍 언어로 DOS용 "씨앗"과 윈도우즈용 "창조"가 있습니다. See 한글프로그래밍언어. --PuzzletChung

PythonLanguage는 막강하고 빠른 개발속도를 가진 최고의 언어라는 소개글만 읽은 정도이다. 누가 PythonLanguage 자랑 좀 했으면 좋겠다.

JavaLanguage는 이 시대를 풍미하는 언어이다. 최소한 휴대폰에 자바가상머신이 탑재될 정도면 JavaLanguage의 위력은 인정할 만하다.

여기 오는 사람 중에 혹 COBOL개발자도 있을까? 제 동기 중에 IF로 도배된 은행소스코드를 다른 500명의 프로그래머와 함께 2년정도 연구한 동료가 있다. 그의 호구지책이었기 때문에 그리고 밤에는 나와 함께 관계형 데이타베이스와 객체지향 프로그램에 대하여 논하였다. --이정호
COBOL 개발자 있습니다. 졸업하고 나니 COBOL을 하게 되는군요. COBOL외에 IBM VisualAge Generator도 사용하고 있습니다. --spike

여기 있는 것 같습니다...
아마도 친구분과 함께 코볼(COBOL)을 연구하던 500명 중 한명일지도 모를 사람입니다만...
(사실 정확하게 얘기하자면 코볼(COBOL)보다 PL/I를 더많이 했지만...)
드디어 은행들이 20여년간 써왔던 거시시스템을 버리고 차세대 시스템들을 구축 중입니다.
근데... 은행권 차세대 시스템중은 코볼(COBOL)이나 PL/I가 대부분입니다. 이번에 만들면 앞으로 20년 정도는 더 쓸 건데 말이죠... --BankPlus
CobolLanguage 는 다년간 검증된 좋은 프로그래밍 언어입니다. 굳이 불안한 최신 언어로 차세대 시스템을 구축할 필요가 있을까요? --Sequoia
맞아요. 일본의 은행권들은 다시 코볼로 돌아가려는 분위기도 일고 있습니다. --풀이름
가장 큰 문제는 앞으로 20년 후에 이놈들을 유지보수할 새로운 세대의 엔지니어들을 수급할 대책이 없다는 것이라고 하더군요.특히 PL/I은 참 그러니까... 현용 시스템을 마스터하고 있는 베테랑 엔지니어들은 50대를 바라보는 나이들이고. -_-; 국민은행에서 차세대 시스템을 Unix 로 가느냐 마느냐를 놓고 고민중이라는 이야기를 우리 괴수님이 하던데.
ohdh2003아직도 FortranLanguage를 사용하고 있다. ( Die hard fortran :D ) C/C++/Objective C를 모르는건 아니지만 멀 만들려고 하면 맨 처음은 awk나 shell script를 생각하고 복잡해질 것 같으면 FortranLanguage으로 coding한다. 복잡한 GUI는 필요하지 않은데 프로그램의 사용자가 한 사람이기 때문이기도...

도구로서의 언어는 개발하고자하는 소프트웨어의 특성에 맞추어 고르는 것이 원칙이겠습니다.

속도가 중요한 서버 애플리케이션을 개발한다면, Aragorn은 그냥 CLanguage를 씁니다. CLanguage의 강력함, 자유로움, 확장성, 유연성은 다른 언어가 대체할 수 있는 영역이 아니라고 생각합니다.

그러나 게시판이나 위키위키와 같은 웹애플리케이션을 개발할 때는 PerlLanguage, PythonLanguage과 같은 script language를 쓰지, CLanguage로 직접 html 처리하는 코드를 작성하지는 않습니다.

개발속도, 소프트웨어의 완성도, 개발자들의 숙련도, 돈 주는 갑이 선호하는 플랫폼 등을 고려하는 것이 맞겠죠. 어느 언어도 모든 곳에 딱 맞아떨어지는 것은 없습니다.

개발자가 어느 정도 경험을 쌓고나면, 언어는 가리지 않을 수 있어야 한다고 봅니다. 모든 언어에 능숙할 수는 없지만, 개별 상황에 잘 맞는 언어 몇가지는 그때그때 쓸 수 있는 정도는 되어야겠지요. 사실 어느 수준이 지나면, 그때그때 레퍼런스 뒤지면서 처음 보는 언어로 개발하는 것도 충분히 가능합니다. 프로그래밍 언어라는 것이 다들 그게 그것이기 때문에 말입니다.

Aragorn님의 의견에 동감합니다. 프로그래밍 언어가 생긴이후로 계속 가장좋은프로그래밍언어에 대한 많은 논쟁이 있었지만 정답은 없습니다. 무엇을 개발하고자 하는가에 따라서 답은 틀려집니다. 그렇지만 스카리는 일반적인 경우에 최고의 언어는 CLanguage라고 생각합니다. 강력함, 자유로움, 확장성은 타 언어와 비교할 수 있는 대상이 아니지요. 하지만 언제나 CLanguage가 정답이라고 할 수는 없겠네요.

NaturalLanguage는 안끼워 주나요? --bullsajo

프로그래머가 사용하는 프로그래밍 언어는 무사로 치자면 무기와 같다. 일본 최고의 무사 미야모토 무사시의 무기에 대한 생각들이 적힌 오륜서에서 프로그래밍 언어를 어떻게 대해야 하는지 참고할 만 하다.

PuzzletChungMathematicaLanguage이 직관적인 코딩을 가능하게 해 주는 매크로와 강력한 수학계산 때문에 마음에 듭니다.

가장 좋은 프로그래밍 언어가 있다고 가정할때, 어떤 프로그래머가 그 프로그래밍 언어를 잘 이해하지도 활용하지도 못한다면 결국 그 프로그래머에게 있어서는 가장 형편없는 프로그래밍 언어가 아닐까?

그러나 다행히도(?) 좋은 프로그래밍 언어집합은 존재하며, 다음과 같이 특징 지울 수 있다.

  • 일반적인 좋은 언어가 갖추어야 할 요소
    • 추상화 - 프로그래밍 언어가 적절한 추상화를 잘 제공해야 한다. 어떤 언어들은 데이터나 함수를 통한 추상화뿐 아니라 제어(control)과 문법에 대한 추상화도 제공한다..
    • 고급언어 - 어떤 프로그래밍 언어들은 사람의 생각을 프로그래밍 언어로 표현할 수 있도록 해주지만 또 다른 프로그래밍 언어들은 사람의 생각을 프로그래밍 언어에 꿰어 맞추도록 강요한다. (예 GC Vs malloc/free)
    • 프로그래밍 패러다임 - 어떤 프로그래밍 언어들은 다양한 프로그래밍 패러다임을 쉽게 가능케 해준다(rule-based, functional, OO, data-driven, 등).
    • 표준화 - 어떤 프로그래밍 언어들은 low level dependency를 최소로 하여 프로그래머가 자신이 하고자 하는 일을 표준으로 정의된 부분만으로 충분히 가능케 해준다(CLanguage의 경우 그렇지 않다).
    • 참고자료 - 어떤 프로그래밍 언어들은 많은 책들이 존재하지만 대부분 도움이 안되는 반면 어떤 프로그래밍 언어들은 자료는 별로 없지만 존재하는 자료들은 대부분 큰 도움을 준다.

  • 좋은 언어의 구체적인 예 (빠진 프로그래밍 언어는 추가해 주세요!)
  • 실제 구현에 있어서 좋은 구현이 갖추어할 요소 (추가 요망!)
    • 강력한 개발환경(프로그래밍 언어 + 툴) - 어떤 프로그래밍 언어의 구현들은 interactive 개발환경, 즉 컴파일러, 인터프리터, 디버거, 에디터 등등을 제공한다.
    • 비표준 확장 - DB, Foreign Function Interface, etc

  • 좋은 구현의 구체적인 예
  • 좋은 프로그래밍 언어가 갖는 일반적인 문제점
    • 프로그래밍 언어를 배우거나 사용하려면 이미 좋은 프로그래머여야 한다.
    • 적은 수의 수준 높은 참고자료만 존재한다. 이해하려면 이미 대부분 것에 대해 알고 있어야 한다.
    • 대중적이지 않기 때문에 일자리를 구하기가 쉽지않다.

  • 좋은 구현이 갖는 일반적인 문제점
    • 가격이 비싸다.
    • 한번 익숙해지면 그보다 더 좋은 툴을 발견하기 어렵지만, 처음 시작할때 툴을 익히기가 쉽지않다(새로운 개념들을 알아야 한다).
    • 100% 활용하기 위해서 때로는 매우 low level까지 알아야 한다(예, GC 파라미터의 조정)

GC가 뭔지 궁금하네요.. GC 가 무엇인가요? - komaya
Garbage Collection을 말합니다. 메모리 할당과 해제를 자동으로 해 주는 것. --서상현
Grabage Collection이 아닐까 생각하고 글을 작성하다 보니까.. 벌써 답변이 올라왔네요.. 감사합니다.
위키는 첨이라서 좀 어렵네요 ^^

좋은 프로그래밍 언어는 해당 업무에 가장 적합한 언어이겠지요..
저는 유닉스쪽에서 개발할 때는 CppLanguage, H/W 쪽에서는 Assembly/C, 홈페이지 만들때는 ASP/VB 를 씁니다.
JavaLanguage는 어쩔수없을때만 쓰고요.. 이유는 느리고, compatibilty도 떨어지고, 유닉스랑 윈도의 VM은 동작이 다르죠..
깊이 있게 짜면 유닉스용 따로 윈도용 따로 짜야됩니다. 하옇든 OOP 개념은 좋은데 맘에 안드는게 넘 많아서.. 별루 안좋아합니다.
저는 CppLanguage이 젤 좋은거 같습니다.
개발할때의 최고의 궁합은 : CppLanguage + DesignPatterns + UML 이라고 생각합니다.
그리고 최고의 라이브러리는 ACE라고 생각합니다. - komaya

RubyLanguage란 스크립트 언어도 뜨고 있던데. --

RubyLanguage에 한 표 보탭니다. JavaLanguage보다 더 OO적이고, RegularExpression을 잘 지원해서 PerlLanguage와 유사한 파워를 자랑하고 array, hash, code block을 지원해서 STL과 유사한 파워도 지니고 있습니다. 잘 정돈된 syntax, 무리없는 semantics로 직관에 충실한 코딩이 가능합니다. --ZZesu

[http]SourceForge.net 프로젝트의 언어 비율.

언어 2003.04.14 2003.11.19 2005.04.09
C 10626 12133 14633
C++ 10270 11963 15162
Java 8414 10324 14564
PHP 6355 7803 10753
Perl 4496 5049 5785
Python 2311 2779 3909
VB 1319 1616 2066
Unix shell 1092 1264 1659
Delphi/Kylix 1047 1305 1756
JavaScript 1469 2258
C# 1081 2316

See also http://www.cs.berkeley.edu/~flab/languages.html

이지수는 몇 가지 프로그래밍 언어를 다루어봤지만, 요즘 만들어야 하는 프로그램들이 그냥 언어만 가지고 되는 것 같지는 않다. 그보다는 방대한 library를 이해하고 능력이 더 중요한 것 같다. C/C++을 안다고, Visual C++로 프로그램을 효율적으로 짤 수 있나? 일단, Win32 Platform을 알아야 하고, 그냥 SDK를 쓰거나, 좀 더 해보려면, MFC나 다른 Library의 특성을 아는게 중요하다. PowerBuilder로 프로그램을 짠다고 해도 마찬가지다. 어느 정도 규모가 넘어가게 되면, 단순히 바닥부터 짜는 프로그램은 한계를 보이기 시작하고, 중심이 되는 부분을 library로 만들어서 집단적으로 작업을 해야 하는 경우가 많은 것 같다. 그래서, 그냥... 무슨 언어가 좋은가하는 질문보다, 무슨 library가 좋은가 혹은 이해하기 쉬운가 하는 질문이 훨씬 와닿는다.

프로그래밍 언어에 왕도는 없다고 모두 공감하겠죠... voider는 커스터마이징이 가능한 언어가 가장 좋다고 봅니다. 그래서 꼽는게 CppLanguage 입니다.

이지수님 말씀대로, 언어를 선택할때의 가장 중요한 요소중 하나는 환경입니다. CLanguageCppLanguage이 가장 좋지 않은가? 라고 대답하는 사람들은 대부분 마이크로소프트 비주얼 C(또는 비주얼 스튜디오)같은 툴을 사용하는 사람들이라고 봅니다. 툴 사용 위주의 개발자들은 제공되는 API를 사용하는것이 거의 작업의 대부분을 차지하며, 직접 하부 모듈을 만드는 일은 적습니다. (임베디드 개발자를 제외하고는..)

이 환경이란 것은 단순히 라이브러리만을 말하는 것이 아니라 언어를 작성할 때 사용하는 도구(즉 텍스트 에디터와 커맨드 라인 컴파일러인가, 아니면 비주열 계열의 툴인가)와 작동하는 플랫폼의 범위까지도 포함시켜야 하죠. -GFish

좋은 프로그래밍 언어란 환경에 따라 바뀐다고 생각합니다. 주어진 작업상황이나 기타다른 환경에 따라 좋은 성능을 낼수도 있고 나쁜 성능을 낼수도 있다고 생각합니다. 위의 많은 분들이 칭찬한 JavaLanguage 같은 언어는 아쉽게도 Game Programing에서는 그다지 인정받지 못합니다. 느리기 때문이죠. 그렇다고 느리지 않게 하려면 JavaLanguage의 장점을 많은 부분 포기해야 합니다. 그래서 아직도 Game Programing 에서는 일부(모바일등)을 제외하고는 C/C++ 이 대세를 이룹니다. 그래서 주어진 작업과 환경을 고려하여 적합한 개발언어를 선택하는것이 가장 중요하지 않을까요?

Game Programming에서 JavaLanguage의 비중은 점점 높아지고 있습니다. 단적으로 엔진 자체는 CppLanguage로 작성해 COM 등으로 만들어 JavaLanguage의 메인 모듈에서 부르는 경우도 많아지고 있죠. ( 단순한 스크립트로서의 JavaLanguage는 이미 너무 오래된 이야기죠. :) ) 아직 MMORPG의 서버 부분에선 크게 인정을 받고 있지 못 하지만, 간단한 게임의 경우에는 서버도 JavaLanguage로 작성되고 있습니다. --아샬

2003년부터 자바 진영에서 게임을 서서히 눈독들이고 있습니다. 2004년 4월 현재 http://java.sun.com 에 게임 관련 기사들이 최근들어 빈번해지고 있고, 초기 단계이지만 몇 가지 공개 프로젝트들이 진행되고 있습니다. Windows는 게임에 부적합한 환경이라는 인식이 지배적이었던 과거를 회상하면 충분히 가능성이 있는 전망이라고 생각합니다. 그래픽 카드의 붐을 타고 DirectX가 성공했듯, 네트웍 게임의 바람을 자바 진영이 이용하려는 듯 합니다. 주로 웹쪽에 치중했던 서버사이드 자바 기술의 성과가 네트웍 게임 개발자들의 것이 될 날도 멀지 않은것 같습니다. 소켓부터 시작해야 하는 CppLanguage개발에 비해 생산성과 품질을 상당히 향상시킬 수 있을 거라고 기대합니다. -- pocorall

자바라면 OpenGL쪽으로 가는 걸까요. OpenGL이 자바로 포팅된다는 소리는 들은 것이 있는 듯 합니다만.
MS도 뭔가그쪽은 신경쓰고 있던 듯 하더군요. 완벽하지 않지만 DirectXDotNet 으로 포팅했으니까요.
그리고 MS윈도우 플랫폼 의존적으로밖에 만들 수 없는 경우라면 자바보단 DotNet + ManagedDirectX쪽이 매리트 있을 듯. --F176

'가장 좋은 프로그래밍 언어'는 SmalltalkLanguage입니다. ('가장좋은프로그래밍언어'를 묻는 질문 자체가 절대적이고 객관적인 답을 원하는 것이 아닌것 같군요.)

가장 좋은 프로그래밍 언어의 조건중 하나로 실행속도를 빼놓을 수는 없겠지요. 이런 점에서 흥미있을만한 것이 있어 링크해봅니다. -- Ways

PHP는 제로보드 스킨 수정 정도만 해 봐서 잘 모르지만, ASP는 아무도 안 쓰는 건가요? 아~ 섭섭해라... --kiryu

업무로는 주로 ASP를 쓰고 있습니다만; 국내의 큰 웹사이트들은 ASP를 사용하는곳이 많습니다. 장점이라면 빠른 개발 속도와 많은 reference site들이 있다는... 물론 단점도 많습니다; 하지만 계속 밥먹고 살기위한 용도로는 적합하지 않은 언어라고 생각됩니다. 그리고 아주.. 아주 정확히 말하면 ASP는 언어로 보기 힘들수도 있죠. --Myhong

ASP는 언어가 아니라 프레임워크죠. ASP에 쓰이는 언어는 VBScriptVisualBasic의 파생입니다. MS의 말로는 COM기반의 스크립팅 엔진을 지원하는 어떤 언어도 쓸 수 있다고 하고 실제로 JScript도 사용할 수 있습나다만, 별로 쓰이는 것 같진 않더군요. --F176

사람이 해야 하는 체계화 할 수 있는 단순 반복작업을 지금 즉시 컴퓨터에게 시키고 싶다는 원초적인 이유에 대해서라면, JavaScript 가 최선입니다. 공짜며, 쉽고, 간단하고, 어디서나 실행해 볼 수 있으면서, 구조상으로 그럴 듯 합니다. 열려있으면서, 지금까지 살펴본 그 어떤 언어보다 플랫폼 독립적이라고 생각합니다. -- gerecter

단순반복작업을 처리한다면 역시 최고의 프로그래밍 언어는 매크로스크립언어입니다. 추천하는 매크로스크립언어는 Macro angel 2.0 이 단연 최고의 안정성과 효율성 그리고 놀라운 기능들을 보여줍니다. (다만 여전히 에러는 존재합니다. 이 스크립언어는 논리적 세계가 아닌 실제 물리적 세계에서 문제해결을 해야합니다. 논리적으로 완벽한 것과 실제 수행은 완전히 다르지요. 따라서 아주 조심스럽게 작성하고 테스트해야 합니다.) 복잡한 작업이 아니라면 Macro magic 1.4t(좀 에러가 많음) Macro angel 1.5(에러가 좀 적음)를 추천합니다. 간단하게 스크립으로 기술하면 되지요, 2주일간 해야할 단순작업을 매크로 작성에 5시간을 투자하고 3일 밤낮으로 컴퓨터 혼자서 일을 다 해치웠습니다. 지금도 제 옆에 컴 한대는 또 다른 작업을 5일째 쉬지않고 일하고 있습니다. 약 2만건에 해당하는 자료의 인터넷 조회작업입니다. ㅋㅋㅋ. 매크로는 여러프로그램들을 연결해서 원하는 모든 작업을 할 수 있습니다. 굳이 또다른 프로그램이 필요하지 않지요. 매크로는 현존하는 모든 프로그램을 재활용할 수있는 탁월한 방법입니다.

특히 매크로매니아들은 자신의 문제를 해결하기 위해 새로운 프로그램작성에 골머리를 썩지 않는다는 것이지요. 그냥 내가 처리할 수 있는데로 프로그램을 연결해 주고나면 느리지만 시간이 모든 문제를 해결해 줍니다. ---munikang

hanaian은 요즘 프로그래밍 언어 번역기를 만들고자 준비하고 있습니다..
언어를 번역하기 위해서는 모든 언어의 표현을 해낼수 있는 중간언어를 선정해야 했습니다..
수학언어와 컴파일언어간의 호환성을 추구해야하는 입장에서 어느쪽도 기존 언어중에서 선택할수 없었습니다..
그래서 저는 양쪽간의 표현을 모두 해낼수 있는 새로운 중간언어를 만들고 있습니다..
새로운 최선의 표현을 찾기 위해 알려진 언어들(Codge 1| Matlab 7| Maple 9| Mathematica 5| Python 2| Ruby | tk | Scheme | JESS | LISP | LaTeX| Delphi 8| Pascal 5|ANSI C |VC++ 6| Java | JavaScript | php | VBasic | VBScript | Fotran 77| Cobol | ALGOL | Simulink | LabVIEW | R )의 표현들을 한꺼번에 비교해나가고 있습니다..
저는 프로그래밍 언어 번역기를 만들기 위해 중간언어를 고안하고 있지만
어쩌면 이것이 가장 좋은 언어가 될지도 모른다는 착각을 잠시 해봅니다.. ^^



"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>