2008-09-17 6 views
3

다중 언어 또는 여러 언어 솔루션을 사용하면 가장 적합한 문제에 언어를 적용 할 수 있습니다. 그러나 적어도 내 경험에 비추어 볼 때 소프트웨어 상점은 해결하려는 문제의 모든 측면에 "수퍼"언어를 적용하려는 경향이 있습니다. 문제를 간단하고 자연스럽게 해결할 수있는 언어가있는 경우에도 해당 언어를 사용하면 "지옥이나 높은 물"이됩니다. 왜 다국어 솔루션을 사용하여 구현하지 않습니까?왜 다국어 솔루션을 사용하여 구현하지 않습니까?

+0

polyglot은 일반적으로 많은 언어로 구성된 솔루션이 아니라 언어에 구애받지 않는 알고리즘의 맥락에서 사용됩니다. ployglot 사람은 많은 언어로 코드를 작성할 수있는 사람입니다. – DevelopingChris

+0

@DevelopingChris 전에 "polyglot"이라는 단어를 사용한 것을 보았습니다. –

답변

0

Visual Studio에서는 하나의 프로젝트에서 여러 언어를 혼합 할 수 없으므로 각 언어에 대해 별도의 DLL로 추상화해야합니다. 이는 반드시 이상적인 것은 아닙니다.

그러나 많은 다른 언어간에 앞뒤로 전환하면 프로그래머의 비효율을 초래한다는 주된 이유가 있다고 생각합니다. 이것에 대한 진실이 있습니다. JavaScript, C#, VBScript, VB.NET 사이를 끊임없이 전환하며 구문을 약간 섞어서 한 언어에서 다른 언어로 전환 할 때 약간의 시간이 낭비됩니다.

여전히 JavaScript와 백엔드 프로그래밍 언어를 넘어선 "다국어"솔루션을위한 공간이 있습니다.

+1

IDE에 문제가 있습니까? – dacracot

+0

이 특별한 경우, 예, IDE가 문제입니다. Visual Studio는 확실합니다. 그러나 한 가지 예입니다. – foxxtrot

1

내 프로젝트에 적합한 언어를 제안 할 가능성이있는 소규모 프로젝트에서 일 해왔다. 예를 들어 C를 저급 언어로 사용하는 경우, 상위 레벨/프로토 타입 제작을 위해 Lua를 확장하면 새로운 임베디드 플랫폼에서 빠르게 속도를 낼 수 있습니다. 나는 더 큰 프로젝트를 위해 항상 두 가지 언어를 선호 할 것이고, 특정 프로젝트에 대한 하나의 도메인 특정 적합성을 선호 할 것이다. 새로운 기능을 빨리 시험 사용해 볼 수있는 풍부한 표현력이 추가되었습니다.

그러나 이것은 아마도 민첩한 개발 방법에 가장 적합 할 것입니다. 반면에 더 전통적인 프로젝트의 경우 극복해야 할 첫 번째 장애물은 스크립팅 언어가 마케팅 추진력이 적은 '신입 사원'으로 보이는 경향이 있거나, 진지함 "을 나타냅니다.

2

거의 항상 솔루션 공간에서 1 개 이상의 언어를 사용합니다 (실제로 SQL은 많은 프로젝트의 일부이므로 2 개 이상). 클라이언트가 명시 적 타이핑과 많은 재능을 가진 언어를 좋아하더라도 관리, 테스트, 데이터 스크러빙 등에 대한 스크립트 언어의 사용을 권합니다.

"올바른 도구 직업을 위해. "

합법적 인 단점이 있지만,이 있습니다 열심히

  • 가 (관리 플랫폼에서 감소)
  • 가에서 런타임 오버 헤드를 증가
  • 통합 문제를 (모든 사람이 모든 언어에 정통한) 집단 코드 소유권을 가지고 인프라 라이브러리 (종종 중요 함)
  • 툴링 비용 증가 (IDE, 분석 도구 등)
  • fr 전환시인지 "범프" 하나 하나 다른. 이것은 양날의 칼입니다. 잘 정돈 된 패러다임의 경우, 다른 패러다임이 보완 적이기 때문에 문제가 발생할 때 "종종 X로 이것을 해결할 것입니다!" 문제는 신속하게 해결됩니다. 그러나 패러다임을 아주 쉽게 이해하지 못하는 사람들에게는 "이게 뭐야?"라고 이해하려고 할 때 실제 속도가 느려질 수 있습니다."

나는 또한 당신이 많은 언어로 갈 거라면, 내 의견으로는 상당히 다른 접근 방식과 언어 가야한다라고 말할 수한다고 생각합니다. 나는 당신이 많이 얻을 생각하지 않는다 프로젝트에서 C#과 VB를 모두 사용함으로써 문제를 해결할 수 있습니다. 주류 언어 외에도 스크립팅 언어 (소규모 및 일회성 작업의 경우 높은 생산성)와 (Haskell, Prolog, Lisp 등) 심각하게 다른인지 스타일

1

다국어 솔루션의 가장 큰 문제점은 관련 언어가 많을수록 더 많은 프로그래머를 찾을 수 있다는 것입니다 적절한 스킬 세트. 특히 언어 중 일부가 약간 난해한 경우 나 완전히 다른 디자인 학교에서 온 경우 (예 : 기능적 대 절차 적 대 객체 지향). 예, 훌륭한 프로그래머라면 누구나 필요한 것을 배울 수 있어야하지만, 경영진은 비현실적이라 할지라도 "달리기에 도전 할"수있는 사람을 원합니다.

다른 이유는 코드 재사용, 서로 다른 언어 사이의 인터페이스 복잡성이 증가하고, 코드의 특정 비트에 속하지되는 언어를 통해 피할 잔디 전쟁을 포함한다.

그 모든

많은 시스템이 수개 국어 것을 실현했다 의도적으로 - 데이터베이스를 사용하는 모든 것은 다른 언어와 함께 SQL을가집니다. 실제 코드 나 빌드 시스템에 관련된 스크립팅도 종종 있습니다.

거의 모든 전문 프로그래밍 경험이 위의 범주에 속합니다. 일반적으로 핵심 언어 (C 또는 C++), 다양한 각도의 SQL, 쉘 스크립팅 및 주변의 일부 펄 또는 파이썬 코드가있을 수 있습니다.

1

제 고용주의 태도는 항상 효과가있는 것으로 사용되었습니다.

우리가 ("벤 포드의 법칙", Statistics::Benford를 구현하는 것과 같은) 몇 가지 유용한 Perl 모듈을 발견했을 때, 나는은 ActiveState의 PDK을 사용하는 방법을 배워야했다 것을 의미하고있다.

간격 수학을 프로젝트에 추가하기로 결정했을 때 나는 Ada와 GNATObjectAda을 모두 사용하는 법을 배워야했습니다.

고속 문자열 라이브러리가 요청되면 어셈블러를 다시 학습하고 MASM32WinAsm에 익숙해 져야했습니다.

libiconv (Delphi Inspiration의 코드를 기반으로)의 COM DLL을 가지고 싶을 때 Delphi으로 다시 알게되었습니다.

Dr. Bill Poser의 libuninum을 사용하려면 C을 다시 읽어야하고 Visual C++ 6의 IDE를 사용하는 방법을 알아야했습니다.

여전히 좋은 점을 생각하면 VB6VBScript의 프로토 타입을 계속 사용할 수 있습니다.

어쩌면 언젠가 내가 언젠가 Forth 나 Eiffel, D, 또는 천국에서 일을 끝낼 것입니다. 하스켈 (저에게 언어에 대한 어떤 것도 가지고 있지 않습니다. 그것은 단지 입니다. 다른 패러다임을 참조하십시오.)

+0

당신에게 좋지만 고용주에게도 좋은 것인지 잘 모르겠습니다. 이러한 태도는 조만간 프로젝트를 유지하기 어렵게 만듭니다. 회사를 떠날 때 그들은이 모든 언어를 배울 수있는 사람을 찾아야 할 것입니다. 이것은 비싸거나 비효율적 일 것입니다. –

0

글쎄, 모든 웹은 현재 자바/PHP/루비가 뒤쪽에 있고 자바 스크립트가 앞쪽에 있습니다. 마음에 떠오르는 다른 예 - 사용자 정의 및 스크립팅 인터페이스를 제공하기 위해 고수준 언어 (Python, Lua, Scheme)가 내장 된 유연한 복합 시스템 (C 또는 C++). Microsoft Office 및 VBA, 블렌더 및 파이썬. C.

새로운 흥미있는 스크립트 언어의

JVM 및 CLR 모두 점점 많은 호환으로 수행 성능을 중요하거나 OS에 의존 조각 파이썬 같은 스크립트 언어로 수행 할 수 있습니다

프로젝트. Java + Groovy, C# + IRonPython 등이 있습니다.