2010-01-18 2 views
2

저는 과거에 소수의 작은 OSS 프로젝트를 창안 해왔고 어떤 경우에도 프로젝트에 참여하기 위해 다른 사람을 채용 할 생각이 없었지만 여전히 "나쁜 형태"인지 궁금했습니다. 예를 들어 최근에 출시 된 프레임 워크/언어의 최신 기능 (예 : 이 필요함)을 활용하여 프로젝트를 조금 더 빠르게 만들었습니다. 이로 인해 프로젝트가 더 어려워 질 수 있습니다. 일부 개발자에게는OSS에서 작업 할 때 이전 기술과 코드가 호환되도록 의식적으로 노력합니까?

예를 들어, Enumerable.Range 메서드를 사용하는 .NET 프로젝트에 대한 코드를 작성한다고 가정합니다 (.NET 3.5 필요). .NET 2.0 만 설치된 Visual Studio 2005에서 작업하는 개발자는 코드를 컴파일하기 위해 for 루프 (또는 자신의 Range와 비슷한 메서드를 작성)로 변환해야합니다. 아마 .NET 개발자는 적어도 현재 버전 3.5 이상을 사용하고있을 것입니다. 그러나 그것은 단지 예일뿐입니다.

어쨌든 프레임 워크, IDE 또는 프로그래밍 언어의 버전이 포함될 수있는 다른 사람들이 참여하고 싶어 할 수도있는 프로젝트에서 작업 할 때 새로운 기능을 피하려고 시도하는 것은 좋은/나쁜 예절입니까? 개발자간에 차이가 있습니까? 또는 그것이 정말로 중요하지 않다는 우세한 태도입니까? 나는 특히이 시나리오에 참여한 사람들 (다른 환경에서 일하는 다른 사람들과 OSS 프로젝트를 진행하고있는 사람들)의 이야기에 관심이 있습니다 ... 또는 "이 시나리오는 나에게 말할 수있는 충분한 경험을 가지고 있습니다. 정말로 일어난다. "

+0

IDE 버전에 관해서는 IDE 버전은 말할 것도없고 IDE 기간을 사용할 것으로 예상되는 오픈 소스 프로젝트를 한번도 보지 못했습니다. IDE는 제가 본 오픈 소스/자유 소프트웨어 세계에 외계인입니다. –

+0

Visual Studio 도구 집합이 필요한 MS Windows 환경을위한 F/OSS 프로젝트가 있습니다. UltraVNC는 그러한 프로젝트 중 하나입니다. –

+0

왜 OSS에 특정한가요? 돈을 위해 OSS 프로젝트를 진행하고 있다고 생각하고 고용주는 사용자에게 분노를 느끼지 않기를 바랍니다. – tstenner

답변

0

나는 그것이 청중에 달려 있다고 말할 것입니다. emacs를 고려하십시오; 타겟 고객은 시스템, OS, 컴파일러 및 기타 여러 응용 프로그램과 API의 광범위한 호환성이 필요합니다. Emacs를 사용하여 최신 기술을 발전시키는 것은 큰 문제입니다. 작은 변화는 광범위한 결과를 가져옵니다.

상업용 또는 공개 소스 중 어떤 제품이든 타겟 시장 (잠재 고객)을 이해해야합니다. 사용자가 Framework 2.0을 사용하는 경우에는 최신 언어 기능을 사용하지 않거나 저하 된 방식으로 실행될 수있는 제품 버전을 제공해야합니다.

그렇지 않은 경우 제품과 불필요한 경우 제한하는 이유는 무엇입니까?

0

대부분의 OSS 소프트웨어는 distros를 통해 사용되고 있습니다. 새로운 개발자 코드에서 배포판으로의 통합에 이르는 과정이 비교적 느리기 때문에 현재 최신 API를 사용하여 코드를 작성하면 현재 버전보다 먼저 배포판에 API가 포함됩니다. 필자가 기여한 모든 오픈 소스 프로젝트는 기여하고자하는 사람들이 프로젝트에서 사용되는 모든 libs 및 도구의 최신 버전을 기꺼이 업데이트 할 것으로 기대합니다. 사용되는 lib 중 하나가 호환되지 않는 새 버전으로 나오면 모든 비 호환성 문제가 버그로보고되고 프로젝트가 최신 버전과의 호환성으로 마이그레이션되고 장기 목표로 이전 버전입니다.

OSX와 같은 상황에서 라이브러리가 OS 버전에 종속되어 있고 사용자 기반이 오픈 소스 OS에서와 같은 방식으로 업그레이드 할 것으로 기대할 수 없으면 다른 크로스 플랫폼 코드처럼 사용자가 처리하게됩니다. 여러 OS 버전에서 작동해야하는 코드는 크로스 플랫폼이므로 스크립트 변수, 소스의 #ifdef 등 모든 표준 크로스 플랫폼 기술을 구성해야합니다.

사람들이 개발 도구를 지불하는 상황에 대해 말하는 것처럼 들립니다. 이것은 오픈 소스에 대한 일종의 비정상적인 상황이며, 내가 다루지 않은 것은 자유 소프트웨어 개발 도구만을 사용하는 것입니다.

관련 문제