Jako młody student aspirujący do kariery programisty, co powinienem myśleć o oprogramowaniu open source? [Zamknięte]


17

Co jakiś czas na niektórych stronach internetowych z technologiami pojawia się taki nagłówek: http://www.osor.eu/news/nl-moving-to-open-source-would-save-government-one-to-four -miliard

Moja pierwsza myśl o rządach i organizacjach przechodzących na oprogramowanie open source jest taka, że ​​mnóstwo programistów straci pracę i przemysł się skurczy. Jednocześnie rozpowszechnianie i korzystanie z oprogramowania typu open source wydaje się być bardzo zalecane w wielu społecznościach programistycznych.

Czy moje przekonanie, że pełne zastosowanie oprogramowania open source na całym świecie zaszkodzi branży oprogramowania, jest błędne? Jeśli tak nie jest, to dlaczego tak wielu programistów kocha oprogramowanie open source?


4
Jeśli uważasz, że strategia open source oznacza zwolnienia, przeczytaj „Strategiczną literę V” Joela Spolsky'ego. joelonsoftware.com/articles/StrategyLetterV.html
user16764

Odpowiedzi:


26

To, że projekt ma charakter open source, nie oznacza, że ​​programiści nie zarabiają na tym. Rządy i firmy przekazują duże fundusze fundacjom takim jak mozilla i apache.

Należy również pamiętać, że firmy muszą zatrudniać programistów, aby MODYFIKOWAĆ projekt open source, aby dostosować go do swojej działalności. Firmy nie mogą używać gotowych narzędzi do wszystkiego. Jest to coś, czego nie można zrobić z oprogramowaniem o zamkniętym źródle, więc jest to przykład, w jaki sposób możesz otworzyć nowe możliwości programowania. Nie chodzi o wyeliminowanie programistów lub niepłacenie im, chodzi o zmianę struktury w celu zwiększenia wydajności, abyśmy mieli więcej czasu na NOWE projekty.

Inną rzeczą, o której należy pamiętać w przypadku oprogramowania typu open source, jest to, że niekoniecznie musisz ujawniać kod źródłowy swojego programu, chyba że zamierzasz go rozpowszechniać. W przypadku programów, które firma zamierza używać dla swoich serwerów lub potrzeb wewnątrzfirmowych, prawdopodobnie NIE będzie rozpowszechniać, a zatem nie będzie musiała ujawniać kodu źródłowego zmodyfikowanego programu.


Ludzie, którzy pracują nad głównymi projektami, są również doskonale przygotowani do podjęcia tych zadań dostosowywania, ponieważ znają już elementy wewnętrzne projektu.
Matthew Scharley

Zastanawiam się, w jaki sposób Steve Streeting (założyciel projektu Ogre3D) pracował w dziedzinie grafiki 3D i jak wpłynął na silnik, który stworzył.
Jokoon

5

Ekonomia Open Source jest dość dziwna i często sprzeczna z intuicją. Weź produkt taki jak arkusz kalkulacyjny Excel (tylko przykład, zrobiłby to każdy duży produkt komercyjny). Firma budująca i wspierająca Excel zatrudnia pewną liczbę pracowników, powiedzmy X. X prawdopodobnie brzmiałby dla ciebie i dla mnie jak duża liczba, ale nie mam pojęcia, co to jest. Wiem tylko, że jest to niewielka liczba w porównaniu z liczbą osób, które utrzymują się z obsługi programu Excel w biurach, szkołach i innych instytucjach oraz tworzenia narzędzi za pomocą programu Excel. Ta liczba to prawdopodobnie X * 10000. Tak więc, jeśli zamienisz Excela na produkt open source, zamienisz X, ale X * 10000 pozostanie niezmieniony.

W rzeczywistości nie jest to nawet takie proste. Bez pracowników X potrzeba więcej płatnych programistów, aby szkolić, rozwiązywać problemy i modyfikować arkusz kalkulacyjny typu open source. Tylko dlatego, że za tym produktem nie ma komercyjnego przedsiębiorstwa, nie oznacza, że ​​firma nie będzie wymagać (i płacić) dobrej usługi. W rzeczywistości, jeśli twój produkt typu open source zyskuje wystarczającą przyczepność, firmy czasami chcą wspierać fundację, która gwarantuje przyszły rozwój tego produktu. Jest to szczególnie prawdziwe, jeśli ich interesy biznesowe są ściśle związane z produktem. Pomyśl o Mozilli , Apache Software Foundation , Mono Project lub Canonical .

Narzędzia Open Source nigdy nie stanowią zagrożenia, gdy próbujesz sprzedać usługę. Pomyśl o organizacjach takich jak Facebook, Twitter, a nawet Stackoverflow. Te organizacje ostatecznie nie chcą sprzedawać oprogramowania. Chcą stworzyć gigantyczną sieć. Gdy sieć jest wystarczająco duża, tworzy własną grawitację. Korzystanie z jakiegokolwiek innego „produktu” nie miałoby sensu, ponieważ liczba uczestników jest najważniejsza. Podstawowa technologia to tylko szczegół.


3

Powiedziałbym, że przeczytałem o różnych ideologiach stojących za niektórymi z bardziej znanych projektów OpenSource, takich jak Chromium, Mozilla itp., A następnie zdecydowałem. Nikt tak naprawdę nie ma prawa mówić ci, jak się czujesz w ten czy inny sposób.

Biorąc to pod uwagę, popieram OpenSource, ponieważ podoba mi się idea przejrzystości w projektowaniu oprogramowania. Podoba mi się również to, że społeczność użytkowników ma bardzo realny i bezpośredni wpływ na kierunek projektu. Nie dostajesz tego w środowisku zamkniętego źródła.

O ile dobrze pamiętam, jednym z punktów, na które zwrócił uwagę zwolennik Creative Commons, było to, że czyniąc rzeczy „wolnymi”, pozwalasz ludziom korzystać z produktu twoich pomysłów w sposób, którego nigdy sobie nie wyobrażałeś. Ten film szczególnie mi się podobał: https://creativecommons.org/videos/a-shared-culture


2
Nie sądzę, że projekt taki jak Mozilla zmniejszy zapotrzebowanie na programistów. Chyba że twoja firma rozwija własną przeglądarkę internetową, w co naprawdę wątpię. Nie sądzę też, aby większość ludzi nawet patrzyła na kod źródłowy. Programiści dbają o kod źródłowy, klienci nie.
Joel Gauvreau

1

Nigdy nie zobaczymy pełnego uścisku .

Uwielbiamy starać się wnosić pozytywny wkład w świat. Poza tym uczestnictwo w projekcie typu open source to świetny PLUS dla twojego CV.


3
Nie traktujemy wkładów typu open source w taki sam sposób, jak rekompensaty. W rzeczywistości nasze doświadczenie nauczyło nas unikać zatrudniania osób, które wniosły znaczący wkład w projekty typu open source, ponieważ tworzenie oprogramowania w świecie rzeczywistym to 10% zabawy i 90% nudnej pracy. Zatrudnieni przez nas kandydaci, którzy byli wielkimi projektami typu open source, nie chcieli wykonywać nudnej pracy, która była niezbędna do tworzenia rozwiązań o profesjonalnej jakości.
bit-twiddler

6
@ bit-Twiddler: Na pewno ktoś musi zrobić nudny części w projektach open source zbyt
Anto

1
@Anto: problem polega na tym, że nudne części często nie są wykonywane w projektach open source. Na przykład jednym z atrybutów odróżniających wysokiej jakości produkty komercyjne od ich odpowiedników oprogramowania typu open source jest dokumentacja. Dokumentacja nawet odnoszących największe sukcesy projektów open source jest bledsza niż dokumentacja odnoszących sukcesy produktów komercyjnych o tej samej skali. Brak odpowiedniej dokumentacji sprawia, że ​​uczenie się produktów open source jest poważnym problemem. Nie otrzymuję zapłaty za gromadzenie i rozszyfrowywanie źle napisanej dokumentacji. Otrzymuję wynagrodzenie za uzyskiwanie wyników.
bit-twiddler

@ bit-twiddler: Czyli twoi programiści powinni również publikować dobrze napisaną dokumentację? Czy zatrudnienie autorów technicznych nie jest tańsze i czy generalnie nie produkują oni lepszych produktów?
David Thornley,

1
@David Thornley: Tak, oczekuje się, że cały personel programistyczny będzie w stanie dobrze pisać, oprócz tego, że będzie kompetentnym twórcą oprogramowania w pełnym cyklu życia (tj. Nie mamy personelu wyłącznie kodowego). Nikt nie zna produktu lepiej niż zespół projektowy i wdrożeniowy. Naszym jedynym pisarzem technicznym jest zadanie koordynowania i masowania dostarczanej dokumentacji.
bit-twiddler

1

Oprogramowanie typu open source stanowi zagrożenie dla firm zajmujących się oprogramowaniem w pakiecie, których produkty znajdują się w obszarze, który jest na tyle popularny, że w społeczności open source istnieje wystarczające zainteresowanie, aby opracować bezpłatną alternatywę. Myślę, że jeden przypadek dotyczy znacznego spadku cen, które zarówno Oracle, jak i Microsoft mogą pobierać za oprogramowanie bazodanowe. mysql jest więcej niż wystarczający dla większości projektów i zasadniczo darmowy, chyba że klient chce zapłacić za wsparcie, więc będzie miał kogoś na haczyku, jeśli sprawy pójdą na bok.

Jest to absolutnie uzupełnienie dla firm konsultingowych i usługowych, ponieważ obniża całkowity koszt produkcji i zwiększa produktywność ich programistów. Firmy lubią to z tych samych powodów, chociaż niektórzy nalegają na znalezienie dostawców, którzy zapewnią komercyjne wsparcie, aby ktoś mógł do nas zadzwonić / obwinić, jeśli nie spełni oczekiwań.


MySQL jest własnością Oracle. Nic nie powstrzymuje Oracle przed zamknięciem źródła w tym produkcie, tak jak nic nie powstrzyma Oracle przed usunięciem danych wejściowych społeczności do Javy. Firmy produkujące oprogramowanie nie sprzedają oprogramowania - sprzedają szefom spokój ducha! Publiczne korporacje nadal kupują oprogramowanie komercyjne, ponieważ chcą móc szczekać korporacje tej samej wielkości i pozwolić, aby ktoś skakał przez obręcze, aby problemy zniknęły. Sprzedaż IP to sposób, w jaki małe firmy produkujące oprogramowanie stają się dużymi firmami programistycznymi. Model tylko usługowy jest całkowicie zależny od kosztów pracy.
bit-twiddler

2
Open source jest zagrożeniem w dokładnie taki sam sposób, jak konkurent jest zagrożeniem. Jeśli baza danych Oracle (dokładnie jak ją dziś nazywacie?) Jest znacznie lepsza niż, powiedzmy, PostgreSQL, będą mogli ją sprzedać. Jeśli nie, to dlaczego, u diabła, mamy płacić Oracle?
David Thornley,

1

Największe ryzyko ...

  • Lotność: duża część OSS jest rozwijana w tryskach. Istnieją wybitne projekty, stabilne wydania w mniej znanych wersjach, ale ponieważ wszechświat OSS jest tak rozbieżny i rozdrobniony w wielu obszarach (i ciągle ewoluuje), rzadko projekt jest wystarczająco dojrzały, aby powiedzieć, że rozwój będzie regularny, nieokreślony, lub wieczyste. Zmiana kursu w połowie cyklu jest kosztowna, nawet jeśli produkt jest bezpłatny, ponieważ integracja, regresja oraz bezpośrednie lub bezpośrednie wsparcie nie jest bezpłatne, nawet jeśli jest dostępne.

  • Brak odpowiedzialności: nie ma nikogo „zainwestowanego”, więc trudno jest szukać ucieczki, gdy zdarzają się złe rzeczy. Nie ma gwarancji. Nic, co nawet przypomina jedno. Jedynym zapewnieniem, które zazwyczaj masz, jest reputacja i ostatecznie twoje osobiste doświadczenie. Ponieważ był darmowy, programiści mogą powiedzieć ci, abyś poszedł ostrzeliwany i nie dbał ani trochę o twój brak sukcesu, ani mniej ważne, jeśli będziesz nadal używać ich produktu.


2
W jaki sposób różni się to od komercyjnego, zastrzeżonego oprogramowania o zamkniętym źródle? Właściciel zawsze może zdecydować się na inny kierunek, a jedynym ogólnym produktem, o jakim słyszałem z godną pewnością, jest TurboTax.
David Thornley,

Jest różny na wiele sposobów. Jeden ze sposobów jest komercyjny, ponieważ producenci oprogramowania, zwłaszcza komponentów, bibliotek i czasów działania, wykonujący zysk, generalnie wykonują znacznie lepszą pracę, zapewniając płynniejsze przejścia. Na przykład poprzez wyraźne wyliczenie przełamujących zmian oraz tego, co należy zrobić lub nie zrobić z powodu tych przełomowych zmian. To wyraźne wyliczenie jest zwykle przygotowywane i publikowane na długo przed tym, zanim samo oprogramowanie stanie się dostępne, z natychmiastową dostępnością erraty po wydaniu, a informacje te mają ogólnie spójną lokalizację i format.
JustinC,

1

Obejmuj narzędzia i rzeczy OSS, ale nie miej na ich punkcie obsesji (i tak, widziałem wielu ludzi mających obsesję na punkcie rzeczy open source, prawie zawsze ze szkodą dla nich).

Wybierz i wybierz najlepsze narzędzie (narzędzia) dla każdego zadania, niezależnie od tego, czy są to oprogramowanie typu open source, czy nie (pamiętaj, że niektóre licencje typu open source czynią z nich licencje bezużyteczne do pracy komercyjnej, szczególnie cierpią z tego powodu licencjonowane biblioteki GPL).


1

Większość nowoczesnego oprogramowania Open Source jest opracowywana przez pracowników zatrudnionych w pełnym wymiarze czasu pracy, którzy są głównie opłacani za jego rozwój. Resztę opracowują ci, którzy otrzymują wynagrodzenie za robienie czegoś, co zależy od oprogramowania, które opracowują, a wspólna praca nad tym, crowdsourcing wsparcia i konserwacji jest dla nich absolutnie obowiązkowy.


1

Zdecydowana większość programistów nie zarabia za dystrybuowane oprogramowanie, które tworzy. Otrzymują jednorazową opłatę za spędzony czas. Nawet firmy zatrudniające programistów generalnie nie zarabiają na sprzedanych egzemplarzach. Z kilkoma ważnymi wyjątkami, takimi jak Microsoft i Adobe, oprogramowanie jest zazwyczaj częścią ich infrastruktury, na przykład strony internetowej firmy lub wewnętrznych narzędzi, lub rozdawane jako część innego produktu lub usługi.

Inni zauważyli, że większość głównych współpracowników open source ma sponsorów korporacyjnych. Po stronie hobbystów interesujące jest to, że ludzie zawsze koncentrują się na tym, co jest dawane, a nie otrzymywane. To tak, jakby elektryk odbierał wszystkie elementy domu za darmo, już zmontowane, z wyjątkiem kilku ulepszeń okablowania, które sam robi, a ludzie uważają go za szalonego, jeśli spędza kilka godzin w jeden weekend, ucząc innych, jak wprowadzić te same ulepszenia w innych domach, które dostały ta sama oferta. Jasne, oddaje część swojego czasu i wiedzy za darmo, ale w zamian dostaje świetny produkt warty kilkukrotność włożonej pracy i zapewnia zdrowy ekosystem następnym razem, gdy czegoś potrzebuje.


0

Jak się czujesz Dobry smutku, następnie zapytasz „jak rozmawiać z kobietami”. Open source nigdy nie zastąpi niewielkiej części płatnego oprogramowania. W przypadku większości organizacji zwiększone koszty przejścia z tego, co już wiedzą, na nic innego, nawet za darmo, to więcej niż koszt SW.


0

Główną filozofią wolnego / otwartego oprogramowania (jak widzę) jest to, że kiedy dystrybuujesz oprogramowanie, rozpowszechniasz również jego źródło. Otwarte oprogramowanie niekoniecznie oznacza bezpłatne. I z pewnością w każdym dużym projekcie, po prostu wybranie rozwiązania open source nie oznacza, że ​​po prostu wybierasz coś z półki i podłączasz go i gotowe. W przypadku każdej dużej aplikacji musisz ją dostosować do swoich konkretnych potrzeb (może to być tak proste, jak konfiguracja i migracja do niej istniejącego systemu lub tak skomplikowane, jak modyfikacja dużych części) i mieć niezawodny mechanizm wsparcia, a także aktualizacje / poprawki błędów w oryginalnym oprogramowaniu. Oznacza to, że zawsze będą oferty pracy dla programistów. Nie wspominając o żadnym dużym projekcie open source,

Pomyśl o tym w ten sposób, jeśli istnieje już dojrzałe rozwiązanie problemu typu open source, które już istnieje i jest używane przez wiele osób, czy sensowne jest zebranie dużej ilości gotówki na coś, co nie może być tak dojrzałe ? Korzystanie z niego jest po prostu bardziej wydajne. Nie chodzi tu o zachowanie miejsc pracy (jak powiedziałem, zawsze będzie potrzeba programistów), ale o proste wyczucie biznesowe, które jest jeszcze ważniejsze, gdy pieniądze podatników. Unikanie otwartego oprogramowania w imię utrzymywania miejsc pracy po prostu tworzy sztuczne środowisko, ograniczając dzielenie się technologią i ogólnie IMHO niekorzystnie wpływające na zdrowie społeczności programistów.



0

Dla mnie open source ma również charakter polityczny: pozwala programistom pomagać sobie nawzajem, aby ciężka praca nie musiała być wielokrotnie powtarzana i nie mogła być wykorzystywana między projektami.

Ustanowił także lepszy zestaw reguł tła dla projektu, nie podlega zasadzie zarządzania: na końcu wynikiem jest kod o lepszej jakości i długowieczności.

Wiedz, że przedmiot informatyki jest bardzo rozległy, a niektóre programy są tak złożone, że nie ma zbyt wielu kompetentnych osób, aby je napisać, utrzymywać, a także dodawać ciekawe funkcje.

Naprawdę uważam, że twój argument „mnóstwo programistów straciłoby pracę, a branża zmniejszyłaby się”, jest bardzo mylący, nie tylko w branży oprogramowania, ale w ogóle dla całego świata. Pamiętaj o bańce internetowej: łatwo oszukać ludzi, którzy nie programują w firmie. Open source jest bezpiecznym sposobem na pokonanie tej bariery.

Musisz także pomyśleć, że oprogramowanie nie jest podobne do wielu innych branż: dostarczasz coś, co jest niestabilne, coś, z czym kapitalizm nie może naprawdę współpracować. Wyobraź sobie, że bylibyśmy w stanie powielić obiekty fizyczne, ale musiałbyś zapłacić za każdą duplikat aspiryny, ponieważ cząsteczka jest w pewnym sensie „własnością”. To może mieć bardzo mały sens. Pomyśl teraz o skopiowaniu czystej, czystej wody (która kiedyś stanie się droga): czy uważasz, że etycznie i filozoficznie słuszne jest zmuszanie ludzi do płacenia za takie rzeczy?

Jeśli programiści stracą pracę z powodu open source, być może dlatego, że po prostu nie są w stanie odtworzyć tego samego rodzaju jakości oprogramowania, więc w pewnym sensie zasługują na zwolnienie. Ale to nie znaczy, że powinni być mniej programiści posiadający pracę: to tylko kwestia społeczności, pracy zespołowej i etyki: firmy powinny płacić programistom albo za wdrażanie rozwiązań problemów za pomocą istniejącego oprogramowania, albo zatrudnić bardziej kompetentnych programistów, którzy mogą dodać funkcje dla istniejącego kodu.

Weźmy iOS, Windows Phone, Symbian i Androida: 75% robi to samo, co oznacza prawie takie same „koła”. To tylko różne smaki, ale ostatecznie wydano dużo pieniędzy, ponieważ firmy chciały przetrwać zgodnie ze swoimi ideałami.

Open source to nie tylko polityka, ale także innowacje: jak chcesz urzeczywistnić nowy pomysł, jeśli musisz wszystko od nowa uruchamiać od nowa?


0

Oprogramowanie Wolnego / Otwartego Oprogramowania stanowi punkt odniesienia: jeśli Twoja firma nie jest w stanie wyprodukować nic lepszego niż alternatywa dla F / OS, nie będzie w stanie sprzedać wielu kopii. Jeśli Twoja firma może zaoferować coś znacznie lepszego niż dostępny F / OS, będzie w stanie sprzedawać kopie i osiągać zyski. Dlatego jednym z zastosowań jest to, że zmniejsza zdolność firm do zdobywania poprzez sprzedaż złego oprogramowania.

Obniża również bariery wejścia. Każdy, kto ma nowoczesny komputer stacjonarny lub laptop, może bez wydawania pieniędzy na licencje na oprogramowanie mieć bardzo funkcjonalny system operacyjny z łatwym w obsłudze graficznym interfejsem użytkownika i doskonałym środowiskiem programistycznym (wiele osób uważa, że ​​MS Windows z Visual Studio jest lepszy od tego rodzaj środowiska i wielu, którzy nie).

Dlatego F / OSS pomaga przedsiębiorcy oprogramowania rozpocząć działalność przy niskich kosztach. Zwiększa to wpływ i zysk innowatora oprogramowania w porównaniu z finansistami, którzy w przeszłości kontrolowali większość nie-uniwersyteckich zastosowań komputerowych. Wiele z ostatnich masowych sukcesów byłoby trudniejszych, być może niemożliwe, bez F / OSS i jego efektów.

Ogranicza to możliwość zarobienia dużych pieniędzy bez odpowiedniej zdolności, co jest prawdopodobnie dobrą rzeczą.

Programiści, którzy nie są zbyt dobrzy, znajdą niszę w oprogramowaniu wewnętrznym dla firm, które nie polegają na swoich systemach komputerowych jako strategicznym zasobie, a F / OSS nie wpłynie na te zadania.

Deweloperzy, którzy są bardzo dobrzy, ale nie przedsiębiorcy, nadal dobrze sobie radzą z firmami, które sprzedają dobrej jakości oprogramowanie komercyjne inne niż F / OS. Rynek oparty na pieniądzach jest bardziej skuteczny w zaspokajaniu wielu potrzeb niż rynek reputacji F / OSS, a znacznie lepiej w wytwarzaniu nudnych niezbędnych rzeczy. Istnieje wiele istotnych aplikacji, których większość programistów F / OSS będzie unikać.

Ogólnie rzecz biorąc, myślę, że jest to zdrowe dla społeczności programistów. Pozwala to deweloperom na lepsze zdobycie bogactwa i służy jako zachęta do tworzenia dobrych produktów (a większość programistów wolałaby pracować nad dobrymi produktami niż złymi). Może zaszkodzić deweloperom, którzy nie są tak dobrzy, lub pracują dla źle zarządzanych firm, ale nie zmniejsza to aż tak bardzo popytu, i prawdopodobnie mogą znaleźć pracę.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.