이 질문이 주제가 아닌 경우 사과하지만 동시에 경제 및 프로그래밍 질문입니다. 다른 SE 공동체에 가야한다면 알려주십시오.
이론적으로 GNU 소프트웨어는 자유 시간 동안 자원 봉사자 또는 자원 봉사자가 프로그래머를 통해 GNU 소프트웨어를 개발할 수있는 회사 (활동의 다른 부문에서 얻은 수입을 사용하여)에 의해 개발되었습니다.
모든 컴퓨터 프로그래밍이 굉장히 재미 있고 보람있는 취미이기 때문에, 비가 오는 주말에 한 명의 개인 (예를 들어 스도쿠 게임)이 수행 할 수있는 소규모 프로젝트에 완벽하게 작동하는 방법을 이해합니다. 자유 시간에 중소 규모의 프로그램을 개발하여 전 세계 사람들과 공유하는 데 아무런 문제가 없습니다.
문제는 다음과 같은 이유로 큰 프로그램의 경우이 크기가 매우 낮다는 것입니다.
- 프로그래밍만큼 재미 있지만 구현해야하는 프로젝트가 커질수록 원하는 기능을 구현하는 데 걸리는 시간이 매우 빠르게 증가합니다. 더 큰 규모의 프로그램은 개발하는 데 엄청난 시간이 걸립니다. 예를 들어 개인이 운영 체제를 프로그래밍하는 데 15 년의 자유 시간과 휴가 시간이 쉽게 소요될 수 있으며, 소프트웨어가 출시 될 때까지는 완전히 사용되지 않습니다. .
- 다른 사람들은 방법은 당신이 읽고, 그것을했을 것 이해와 다른 사람의 코드를 가지고가는 또 다른 방법으로 프로그램을 작성으로 많은 처음부터 자신의 코드를 작성하는 것만큼 대부분의 경우, 시간을. GNU 철학에서 권장하는 것처럼 다른 사람들의 코드를 수정하고 개선하려고 시도하면 추가하려는 기능을 사용하여 해당 프로그램의 복제본을 개발하는 것만큼이나 시간이 많이 걸립니다.
- 더 큰 프로그램을 개발하기 위해 2 명 이상의 사람들이 협력해야하는 즉시 단일 개발자 프로젝트에서는 발생하지 않는 많은 의사 결정 문제가 발생합니다. 그 결과, 예를 들어 2 명의 프로그래머 그룹이 한 사람이 만드는 데 10 년이 걸리는 프로젝트를 위해 협력한다면 5 년이 아니라 8 년이 될 것입니다.
- 동일한 프로젝트를 위해 공동 작업을하는 사람들이 인터넷에서만 만나는 경우 프로젝트의 한 구성원이 갑자기 사라지기 쉽습니다 (관심을 잃었거나 더 이상 물리적으로 인터넷에 접속할 수 없기 때문에). 더 힘들다
따라서 GNU 사고 방식으로 간단한 프로그램을 개발하는 방법을 완벽하게 이해하지만이 모델에서 GNU / Linux 또는 gcc와 같은 거대한 프로그램이 어떻게 가능한지 절대 알 수 없습니다. gcc는 약 7 백만 줄의 코드입니다. 프로젝트의 후반 단계에서 더 생산적인 프로그래머가 실제로 코드 줄을 제거하고 (프로젝트 단순화 및 / 또는 최적화), 코드 줄이 그다지 의미가 없다는 것을 알고 있습니다. 프로젝트 gcc는
이론적으로 누구나 자유 시간 동안 gcc를 자유롭게 수정할 수 있지만 실제로는? 그것은 취미가 아닌 직업으로 매우 전문적인 사람들에 의해 개발되었습니다. 컴파일러를 취미로 만드는 사람은 결국 비용 / 이익이 가치가 없기 때문에 포기할 것입니다.
- 큰 프로그램을 개발하는 것은 장기적으로 큰 프로젝트이므로, 자유 시간을 사용하여 단기적으로 더 보람 있거나 즐거운 다른 활동을하고자합니다
- 어쨌든 대규모 프로그램을 개발하려는 경우 무료로 제공하는 것보다 비용을 지불하는 회사를 대상으로합니다.
사람들이 장기적으로 GNU / Linux, gcc 또는 Open Office와 같은 프로그램 개발에 관심을 갖기 위해서는 보람이 있어야합니다. 그래서 내 질문은 : 왜 사람들이 급여를받지 못하면 큰 GNU 프로젝트에 기여하는 사람들이 있습니까?