2010-11-28 2 views
2

주어진 작업 프로젝트에서 사용할 프로그래밍 언어를 비교할 때 염두에 두어야 할 몇 가지 구체적인 질문이 무엇인지 궁금합니다. 예를 들어, 프롤로그 (Prolog)와 같은 논리 프로그래밍 언어는 자연어 처리에 적합하다고 들었습니다. 나는 왜 그런지 정확히 모르겠다. 전문가들이 그렇게 말하기 때문에 그것이 사실이라고 가정합니다. 그러나 그 결론을 이끌어내는 고려 사항을 알지 못합니다. 그래서 간단한 경험적 발견, 질문 체크리스트를 찾고 있습니다. 프로그래밍 언어를 평가하고 의사 결정을 설명 할 수 있으므로 "언어 X는 Z를하기 때문에 Y는 좋다"라고 말할 수 있습니다.직장에서 프로젝트를위한 프로그래밍 언어를 어떻게 비교합니까?

답변

4

어떤 프로그래밍 언어가 주어진 문제에 가장 적합한 지 알아내는 유일한 방법은 많은 프로그래밍 언어를 아는 것입니다. 결국, 나사 드라이버가 있는지 몰라도 나사를 만났을 때 망치를 사용하지 않는 것을 어떻게 알 수 있습니까?

불행히도 프로그래밍 언어는 수천 가지 (아마도 수만 가지)이므로 상당 부분 학습해도 현실적이지 않습니다.

그러나 프로그래밍 언어는 패러다임을 구현합니다. Peter van Roy의 유명한 포스터에는 그 중 약 34 개만 나와 있습니다. 그는 의도적으로 타이핑과 관련된 것을 포함하여 여러 측면을 무시하기로 결정했기 때문에 실제 수치는 아마도 그 수치보다 높을 것입니다. 그러나 우리는 그것이 100보다 훨씬 낮을 것으로 기대할 수 있습니다.

다행히도 패러다임은 원자가 아니며 개념으로 구성됩니다.포스터에는 그 중 12 개가 나열되어 있습니다 (다시 타이핑과 몇 가지 다른 것들은 무시합니다). 패러다임보다 훨씬 적습니다.

개념의 상당 부분을 학습하는 것이 전적으로 가능합니다. 일단 당신이 그들을 알면, 당신은 문제를보고 어떤 개념이 솔루션을 구축해야 하는지를 볼 수 있습니다. 그런 다음 어떤 패러다임에 이러한 개념이 포함되어 있으며 어떤 언어가 이러한 패러다임을 구현하는지 살펴 봅니다. 하나 선택하고, 배우고, 사용하고, 문제를 해결하십시오.

그리고 언어가 구현 한 개념 (따라서 패러다임)을 이미 알고 있기 때문에 의미가 아닌 구문을 배우기 만하면됩니다. 사실 C#, C++, Objective-C, Objective-C++, D, Go, Java, C#, ECMAScript, PHP, Vala 등 많은 구문들이 많이 있습니다. Smalltalk, Self, Newspeak 및 Objective-C, SML, OCaml 및 F # 등)를 사용하면 매우 빠르게 선택할 수 있습니다. (게다가 오늘날의 현대 IDE로는 문제가 훨씬 적습니다.)

1

팀이 익숙한 것으로 시작하십시오. 위대한 개발자가 거의 모든 언어를 짧은 순서로 선택할 수 있다는 철학에 대해 많은 이야기가 있지만 실용적인면은 닷넷이나 자바 코더를 사용하면 그 기지에서 시작하여 봉사했다.

이제 두 스택 내에서 함수형 프로그래밍 (F #, Erlang 등) 및 기타 언어가 팀에서 가장 익숙한 런타임에 제공됩니다. 그러나 그것은 문화, 인프라, 그리고 (가장 중요한 것은) 팀의 개별 개발자의 경험과 유연성에 달려 있습니다.

1

는 여러 가지 요인이 고려 있습니다

  • 해당 지역의 전문 지식은 무엇입니까? C 프로그래머가 많은 회사라면 Lisp 프로그래머가되기 위해 모든 사람을 재교육받을 가치가 없을 것입니다.
  • 라이브러리 란 무엇입니까? 사용할 라이브러리가 있으면 선택한 언어와 호환되는지 확인하십시오.

새로운 옵션을 사용하여 새 프로젝트를 시작하는 경우 응용 프로그램 도메인에서 몇 가지 샘플 문제를 해결하는 것이 좋습니다. 너무 복잡한 것은 아니지만 사소한 것도 아닙니다. 그런 다음, 각 후보 언어로이 샘플을 구현 (또는 팀의 누군가에게 구현) 시키십시오. 그런 다음 명확하고 쉽고 적절한 것을 선택하십시오.

+0

Java 개발자가 Java 및 C++ 등으로 구현을 작성하도록 만들지 마십시오. – thejh

3

당신이 언어 X의 전문가이고 언어 Z가 이상적이라고 가정되는 도메인 Y에서 프로그램을 개발하도록 요청받는 경우 - 글을 쓰면 더 빨리 더 잘 전달할 수 있습니까? 문제 영역에 이상적이지는 않지만 (일부 조치에 의해) 전문가의 언어로되어 있습니까? 아니면 새로운 언어를 먼저 배워 더 빨리 그리고 더 빨리 전달할 것입니까?

간단한 휴리스틱에 대한 검색이 헛된 것 같습니다.

관련 문제