Come giovane studente che aspira a fare carriera come programmatore, come dovrei sentirmi riguardo al software open source? [chiuso]


17

Di tanto in tanto su alcuni siti Web di tecnologia apparirà un titolo come questo: http://www.osor.eu/news/nl-moving-to-open-source-would-save-government-one-to-four -billion

Il mio pensiero iniziale sul governo e le organizzazioni che passano al software open source è che tonnellate di programmatori perderebbero il lavoro e l'industria si restringerebbe. Allo stesso tempo, la proliferazione e l'uso di software open source sembrano essere fortemente incoraggiati in molte comunità di programmazione.

Sto pensando che il pieno abbraccio del software open source ovunque danneggerà l'industria del software un malinteso? In caso contrario, perché così tanti programmatori adorano il software open source?


4
Se pensi che una strategia open source significhi licenziamenti, leggi la "Strategia Lettera V" di Joel Spolsky. joelonsoftware.com/articles/StrategyLetterV.html
user16764

Risposte:


26

Solo perché un progetto è open-source non significa che i programmatori non se ne guadagnino da vivere. I governi e le aziende donano ingenti somme di denaro a fondazioni come Mozilla e Apache.

Inoltre, tieni presente che le aziende devono assumere programmatori per MODIFICARE il progetto open source per personalizzarlo per il loro business. Le aziende non possono utilizzare gli strumenti standard per tutto. Questo è qualcosa che non può essere fatto con software a sorgente chiuso, quindi è un esempio di come è possibile aprire nuove opportunità per la programmazione. Non si tratta di eliminare i programmatori o di non pagarli, si tratta di riorganizzare la struttura per rendere le cose più efficienti, in modo da avere più tempo per NUOVI progetti.

Un'altra cosa da capire sull'open source è che non devi necessariamente rivelare il codice sorgente del tuo programma a meno che non lo distribuirai. Per i programmi che una società utilizzerà per sé nei propri server o esigenze intracompany, probabilmente NON distribuirà e quindi non dovrà rivelare il codice sorgente per il programma modificato.


Le persone che lavorano ai progetti principali sono anche perfettamente posizionate per entrare in quei lavori di personalizzazione in virtù del fatto che conoscono già gli interni del progetto.
Matthew Scharley,

Mi chiedo come Steve Streeting (fondatore del progetto Ogre3D) sia riuscito a lavorare nel campo della grafica 3D e come abbia influenzato il motore che ha realizzato.
jokoon

5

L'economia open source è piuttosto strana e spesso controintuitiva. Prendi un prodotto come il foglio di calcolo Excel (solo un esempio, farebbe qualsiasi grande prodotto commerciale). L'attività di costruzione e supporto di Excel impiega un certo numero di dipendenti, ad esempio X. X probabilmente suonerebbe come un grande numero per te e me, ma non ho idea di cosa sia. Quello che so è che è un numero esiguo rispetto al numero di persone che si guadagnano da vivere supportando Excel in uffici, scuole e altre istituzioni e creando strumenti con Excel. Quel numero è probabilmente X * 10000. Quindi, se si sostituisce Excel con un prodotto open source, si sostituisce X ma X * 10000 non è interessato.

In realtà, non è nemmeno così semplice. Senza i dipendenti X, sono necessari sviluppatori più pagati per addestrare, risolvere i problemi e modificare il foglio di calcolo open source. Solo perché non esiste un'impresa commerciale dietro il prodotto non significa che le attività non richiederanno (e pagheranno) un buon servizio. Infatti, se il tuo prodotto open source ottiene abbastanza trazione, le aziende a volte sono disposte a supportare una fondazione che garantisce lo sviluppo futuro di tale prodotto. Ciò è particolarmente vero se i loro interessi commerciali sono intimamente legati al prodotto. Pensa a Mozilla , Apache Software Foundation , Mono Project o Canonical .

Infine, gli strumenti open source non rappresentano mai una minaccia quando si tenta di vendere un servizio. Pensa a organizzazioni come Facebook, Twitter e persino StackOverflow. Alla fine, queste organizzazioni non vogliono vendere il tuo software. Vogliono creare una rete gigante. Una volta che la rete è abbastanza grande, crea la propria gravità. L'uso di qualsiasi altro "prodotto" non avrebbe alcun senso perché il numero di partecipanti è ciò che conta di più. La tecnologia di base è solo un dettaglio.


3

Direi di leggere le varie ideologie alla base di alcuni dei più importanti progetti OpenSource, come Chromium, Mozilla, ecc., E poi prendere una decisione. Nessuno ha davvero il diritto di dirti come sentirti in un modo o nell'altro.

Detto questo, abbraccio OpenSource perché mi piace l'idea di trasparenza nella progettazione del software. Mi piace anche che la comunità di utenti abbia un impatto molto reale e diretto sulla direzione del progetto. Non lo ottieni in un ambiente a sorgente chiuso.

Se ricordo bene, uno dei punti sollevati da un sostenitore di Creative Commons era che, rendendo le cose "libere", permettevi alle persone di usare il prodotto delle tue idee in modi che non avresti mai immaginato. Questo video mi è particolarmente piaciuto: https://creativecommons.org/videos/a-shared-culture


2
Non penso che un progetto come Mozilla ridurrà la necessità di programmatori. A meno che la tua azienda non stia sviluppando il proprio browser Web, di cui dubito davvero. Inoltre, non penso che la maggior parte delle persone guarderà anche il codice sorgente. I programmatori si preoccupano del codice sorgente, i clienti no.
Joel Gauvreau,

1

Non vedremo mai un abbraccio completo .

Amiamo provare a contribuire positivamente al mondo. Inoltre, partecipare a un progetto open source è un grande vantaggio per il tuo CV.


3
Non trattiamo i contributi open source allo stesso modo dell'esperienza compensata. In effetti, la nostra esperienza ci ha insegnato a evitare di assumere chiunque abbia dato un contributo importante a progetti open source perché lo sviluppo di software nel mondo reale è divertente al 10% e noioso al 90%. I candidati che abbiamo assunto che erano grandi in progetti open source non volevano fare il noioso lavoro grugnito necessario per produrre soluzioni di qualità professionale.
bit-twiddler

6
@ po-Twiddler: Sicuramente, qualcuno ha a che fare le parti noiose in progetti open source troppo
Anto

1
@Anto: il problema è che le parti noiose spesso non vengono eseguite su progetti open source. Ad esempio, uno degli attributi che distingue i prodotti commerciali di alta qualità dalle loro controparti software open source è la documentazione. La documentazione anche per i progetti open source di maggior successo impallidisce rispetto a quella dei prodotti commerciali della stessa scala di successo. La mancanza di un'adeguata documentazione rende l'apprendimento di prodotti open source un grosso problema. Non sono pagato per raccogliere e decifrare documenti scritti male. Sono pagato per produrre risultati.
bit-twiddler

@ bit-twiddler: Quindi i tuoi programmatori dovrebbero anche pubblicare una documentazione ben scritta? Non è più economico assumere scrittori tecnici e in genere non producono un prodotto migliore?
David Thornley,

1
@David Thornley: Sì, tutto il personale di sviluppo dovrebbe essere in grado di scrivere bene oltre a essere sviluppatori di software per l'intero ciclo di vita competente (ovvero, non abbiamo personale di solo codice). Nessuno conosce il prodotto meglio del team di progettazione e implementazione. Il nostro unico scrittore tecnico ha il compito di coordinare e massaggiare la documentazione consegnabile.
bit-twiddler

1

L'open source è una minaccia per le società di software in pacchetti i cui prodotti si trovano in un'area abbastanza popolare da offrire abbastanza interesse nella comunità open source per sviluppare un'alternativa gratuita. Penso che un caso sia il punto è la significativa riduzione dei prezzi che sia Oracle che Microsoft possono addebitare per il software di database. mysql è più che adeguato per la maggior parte dei progetti ed è essenzialmente gratuito a meno che il cliente non voglia pagare per il supporto, in modo da avere qualcuno agganciato se le cose vanno di lato.

È assolutamente complementare alle attività di consulenza e servizi perché riduce il costo totale di produzione e aumenta la produttività dei loro sviluppatori. Alle aziende piace per gli stessi motivi, anche se alcuni insistono nel trovare fornitori che forniscano supporto commerciale in modo che ci sia qualcuno da chiamare / incolpare se non all'altezza delle aspettative.


MySQL è di proprietà di Oracle. Non c'è nulla che impedisce a Oracle di chiudere l'origine su quel prodotto così come non c'è nulla che impedisce a Oracle di rimuovere l'input della comunità in Java. Le società di software non vendono software, vendono tranquillità ai dirigenti! Le società di proprietà pubblica continuano ad acquistare software commerciale perché vogliono essere in grado di abbaiare alle stesse dimensioni e avere qualcuno che salta attraverso i cerchi per risolvere i problemi. La vendita dell'IP è il modo in cui le piccole società di software diventano grandi società di software. Un modello di solo servizio dipende interamente dal costo del lavoro.
bit-twiddler

2
L'open source è una minaccia esattamente allo stesso modo in cui un concorrente è una minaccia. Se il database di Oracle (esattamente come lo chiami oggi?) È significativamente migliore di, per esempio, PostgreSQL, sarà in grado di venderlo. In caso contrario, perché diamine dovremmo pagare Oracle?
David Thornley,

1

Maggiori rischi ...

  • Volatile: gran parte dell'OSS è sviluppato a scatti. Ci sono progetti importanti, rilasci stabili in noti meno noti, ma poiché l'universo di OSS è così divergente e frammentato in molte aree (e in continua evoluzione), è raro che un progetto diventi abbastanza maturo da dire che lo sviluppo sarà regolare, indefinito, o perpetuo. La modifica della rotta a metà flusso è costosa, anche se il prodotto è gratuito perché l'integrazione, la regressione e il supporto pratico o immediato non sono gratuiti, anche se disponibili.

  • Mancanza di responsabilità: non c'è nessuno "investito", quindi è difficile cercare ricorso quando accadono cose brutte. Non c'è garanzia Nulla che assomigli nemmeno a uno. L'unica certezza che hai generalmente è la reputazione e infine la tua esperienza personale. Dal momento che era gratuito, gli sviluppatori possono dirti di sparare e non preoccuparti della tua mancanza di successo, o meno importante se continui a utilizzare il loro prodotto.


2
E questo è diverso dal software commerciale, proprietario, a sorgente chiuso in che modo? Il proprietario può sempre decidere di andare in un'altra direzione e l'unico prodotto generale di cui abbia mai sentito parlare con certezza decente è TurboTax.
David Thornley,

È diverso in molti modi. Un modo è commerciale, per i produttori di software a scopo di lucro, in particolare componenti, librerie e runtime, generalmente si fa un lavoro molto migliore nel fornire transizioni più fluide. Ad esempio, mediante l'enumerazione esplicita delle modifiche di interruzione e ciò che deve essere fatto o meno a causa di tali modifiche di interruzione. Questa enumerazione esplicita viene in genere preparata e pubblicata molto prima che il software stesso sia disponibile, con errori di post release prontamente disponibili e queste informazioni sono in una posizione e un formato generalmente coerenti.
Giustino

1

Abbraccia gli strumenti e le cose OSS, ma non farti ossessionare da loro (e sì, ho visto molte persone ossessionate dalle cose open source, quasi sempre a loro danno).

Scegli gli strumenti migliori per ogni lavoro, indipendentemente dal fatto che siano open source o meno (badate bene, alcune licenze open source rendono inutilizzabile qualsiasi cosa sotto la loro licenza per il lavoro commerciale, specialmente le biblioteche con licenza GPL ne soffrono).


1

La maggior parte del moderno software Open Source è sviluppato da dipendenti a tempo pieno, che sono principalmente pagati per lo sviluppo. Il resto è sviluppato da coloro che sono pagati per fare qualcosa che dipende dal software che stanno sviluppando e un lavoro collaborativo su di esso, il crowdsourcing di un supporto e una manutenzione è assolutamente obbligatorio per loro.


1

La stragrande maggioranza dei programmatori non viene pagato per copia distribuita del software che creano. Vengono pagati una tantum per il loro tempo trascorso. Anche le aziende che impiegano programmatori generalmente non guadagnano per copia venduta. Con alcune notevoli eccezioni come Microsoft e Adobe, il software fa generalmente parte della loro infrastruttura, come un sito Web aziendale o strumenti interni, o viene distribuito come parte di un altro prodotto o servizio.

Altri hanno sottolineato che la maggior parte dei principali collaboratori open source ha sponsor aziendali. Per quanto riguarda l'hobbista, trovo interessante che le persone si concentrino sempre su ciò che viene dato invece che ricevuto. È come un elettricista che riceve gratuitamente tutti i componenti di una casa, già assemblato ad eccezione di alcuni miglioramenti del cablaggio che fa lui stesso, e la gente lo considera pazzo se trascorre qualche ora un fine settimana insegnando agli altri a fare gli stessi miglioramenti per altre case che hanno ottenuto lo stesso affare. Certo, sta dando via parte del suo tempo e delle sue competenze gratuitamente, ma in cambio ottiene un ottimo prodotto che vale più volte il lavoro che ha svolto e garantisce un ecosistema sano per la prossima volta che ha bisogno di qualcosa.


0

Come dovresti sentirti? Buon dolore, poi ti chiederai "come parlo con le donne". L'open source non sostituirà mai, ma una piccola parte del SW a pagamento. Per la maggior parte delle organizzazioni, l'aumento dei costi di passaggio da ciò che già sanno a qualsiasi altra cosa, anche gratuita, è superiore al costo del SW.


0

La filosofia principale del libero / open source (come la vedo io) è che quando distribuisci software, distribuisci anche il sorgente con esso. Open source non significa necessariamente gratuitamente. E certamente in qualsiasi progetto di grandi dimensioni, semplicemente scegliere una soluzione open source non significa semplicemente prendere qualcosa da uno scaffale e collegarlo e il gioco è fatto. Per qualsiasi applicazione di grandi dimensioni, è necessario adattarlo alle proprie esigenze specifiche (può essere semplice come configurarlo e migrare il sistema esistente su di esso o complesso come modificarne gran parte) e disporre di un meccanismo affidabile per il supporto e aggiornamenti / correzioni di bug con il software originale. Ciò significa che ci saranno sempre posti di lavoro per i programmatori. Per non parlare, per qualsiasi grande progetto open source,

Pensaci in questo modo, se esiste una soluzione open source matura al tuo problema già esistente e utilizzata da molte persone, ha senso sprofondare in grandi quantità di denaro per qualcosa che non può essere così maturo come quello ? È semplicemente più efficiente usarlo. Non si tratta di preservare i posti di lavoro (come ho detto che ci sarà sempre bisogno dei programmatori), ma di un senso degli affari semplice, che è ancora più importante quando i soldi dei contribuenti. Evitare l'open source in nome del mantenimento di posti di lavoro sta solo creando un ambiente artificiale, limitando la condivisione di tecnologia e IMHO generalmente dannoso per la salute della comunità di programmazione.



0

Per me, l'open source è anche politico: consente ai programmatori di aiutarsi a vicenda in modo che il duro lavoro non debba essere ripetutamente rielaborato e non possa essere utilizzato tra i progetti.

Stabilisce anche una migliore serie di regole di base per il progetto, non è sotto la regola della gestione: alla fine, il risultato è un codice di migliore qualità e longevità.

Sappi che l'argomento dell'informatica è molto vasto e ci sono alcuni software così complessi che non ci sono così tante persone competenti per scriverli, mantenerli e anche aggiungere funzionalità interessanti.

Trovo davvero la tua tesi "tonnellate di programmatori perderebbero il loro posto di lavoro e l'industria si restringerebbe" molto fuorviante, non solo per l'industria del software, ma per il mondo in generale. Ricorda la bolla web: è facile ingannare le persone che non programmano in un'azienda. L'open source è un modo sicuro per porre un ostacolo a questo.

Devi anche pensare che il software non è come molti altri settori: offri qualcosa che è volatile, qualcosa con cui il capitalismo non può davvero funzionare. Immagina solo se fossimo in grado di duplicare oggetti fisici, ma avresti bisogno di pagare per ogni pillola di aspirina che duplica, perché la molecola è in qualche modo "posseduta" da qualcuno. Questo potrebbe avere molto poco senso. Ora pensa a copiare acqua pura e pulita (che un giorno diventerà costosa): pensi che sia eticamente e filosoficamente corretto far pagare le persone per una cosa del genere?

Se i programmatori perdono il lavoro a causa dell'open source, è forse perché non sono in grado di riprodurre lo stesso tipo di qualità del software, quindi in un certo senso meritano di essere licenziati. Ma ciò non significa che dovrebbero essere meno programmatori ad avere un lavoro: è solo una questione di comunità, lavoro di squadra ed etica: le aziende dovrebbero pagare i programmatori o per implementare soluzioni per problemi utilizzando il software esistente, oppure assumere programmatori più competenti che possono aggiungere funzioni per un codice esistente.

Prendi iOS, Windows Phone, Symbian e Android: quelli fanno il 75% della stessa cosa, il che significa quasi le stesse "ruote". Sono solo gusti diversi, ma alla fine sono stati spesi molti soldi perché le aziende volevano sopravvivere ai loro ideali.

L'open source non è solo politico, ma anche innovazione: come vuoi dare realtà a una nuova idea se devi ricominciare tutto da capo?


0

Quello che fa il software Free / Open Source è stabilire una base: se la tua azienda non è in grado di produrre qualcosa di meglio dell'alternativa F / OS, non sarà in grado di vendere molte copie. Se la tua azienda può offrire qualcosa di significativamente migliore degli F / OS disponibili, sarà in grado di vendere copie e realizzare un profitto. Pertanto, un uso è che riduce la capacità delle aziende di vendere vendendo software difettoso.

Riduce anche le barriere all'ingresso. Chiunque abbia un desktop o un laptop moderno a metà strada, senza spendere un centesimo in licenze software, ha un sistema operativo molto funzionale con una GUI facile da usare e un eccellente ambiente di sviluppo (ci sono molte persone che pensano che MS Windows con Visual Studio sia migliore di questo tipo di ambiente e molti che non lo fanno).

Pertanto, F / OSS aiuta l'imprenditore del software a avviare un'attività a basso costo. Ciò aumenta l'influenza e il profitto dell'innovatore del software rispetto ai ragazzi finanziari, che erano quelli che controllavano la maggior parte dei computer non universitari ai vecchi tempi. Molte delle recenti massicce storie di successo sarebbero state più difficili da realizzare, forse impossibili, senza F / OSS e i suoi effetti.

Riduce l'opportunità di fare molti soldi senza corrispondente capacità, il che è probabilmente una buona cosa.

Gli sviluppatori che non sono molto bravi troveranno nicchie nel software interno per le aziende che non fanno affidamento sui loro sistemi informatici come una risorsa strategica e quei lavori non saranno influenzati molto dall'F / OSS.

Gli sviluppatori che sono molto bravi ma non di tipo imprenditoriale faranno comunque bene con le aziende che vendono software commerciale non F / OS di buona qualità. Il mercato basato sul denaro è più efficace nel soddisfare molte esigenze rispetto al mercato della reputazione F / OSS e molto meglio nel produrre le cose noiose necessarie. Ci sono molte applicazioni vitali che la maggior parte degli sviluppatori F / OSS eviterà.

Quindi, nel complesso, penso che sia salutare per la comunità di sviluppo. Offre agli sviluppatori una possibilità migliore per diventare ricchi e serve da incentivo per realizzare buoni prodotti (e la maggior parte degli sviluppatori preferisce lavorare su buoni prodotti piuttosto che cattivi). Può danneggiare gli sviluppatori che non sono così bravi o lavorare per aziende mal gestite, ma non riduce così tanto la domanda e probabilmente possono trovare lavoro comunque.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.