Como um jovem estudante que aspira a ter uma carreira como programador, como devo me sentir em relação ao software de código aberto? [fechadas]

17

De vez em quando, em alguns sites de tecnologia, aparece uma manchete como esta: http://www.osor.eu/news/nl-moving-to-open-source-would-save-government-one-to-four -bilhão

Meu pensamento inicial sobre o governo e as organizações que se mudaram para o software de código aberto é que toneladas de programadores perderiam seus empregos e a indústria diminuiria. Ao mesmo tempo, a proliferação e o uso de software de código aberto parece ser bastante incentivado em muitas comunidades de programação.

Estou pensando que a adoção completa de software de código aberto em todos os lugares prejudicará a indústria de software como um equívoco? Caso contrário, por que tantos programadores adoram software de código aberto?

Matt
fonte
4
Se você acha que uma estratégia de código aberto significa demissões, leia a "Carta de estratégia V" de Joel Spolsky. joelonsoftware.com/articles/StrategyLetterV.html
user16764

Respostas:

26

Só porque um projeto é de código aberto, não significa que os programadores não estejam ganhando a vida com isso. Governos e empresas doam grandes quantias de dinheiro a fundações como mozilla e apache.

Lembre-se também de que as empresas precisam contratar programadores para MODIFICAR o projeto de código aberto para personalizá-lo para seus negócios. As empresas não podem usar ferramentas de prateleira para tudo. Isso não pode ser feito com software de código fechado, por isso é um exemplo de como você pode abrir novas oportunidades de programação. Não se trata de eliminar programadores ou não pagá-los, é de reorganizar a estrutura para, com sorte, tornar as coisas mais eficientes, para que tenhamos mais tempo para NOVOS projetos.

Outra coisa a ser percebida sobre o código aberto é que você não precisa necessariamente revelar o código-fonte do seu programa, a menos que esteja distribuindo o programa. Para programas que uma empresa usará em seus servidores ou nas necessidades da empresa, provavelmente NÃO distribuirá e, portanto, não precisará revelar o código fonte do programa modificado.

WuHoUnited
fonte
As pessoas que trabalham nos projetos principais também estão perfeitamente posicionadas para participar desses trabalhos de personalização também pelo fato de já conhecerem as características internas do projeto.
Matthew Scharley
Eu me pergunto como Steve Streeting (fundador do projeto Ogre3D) conseguiu trabalhar no campo dos gráficos 3D e como isso influenciou o mecanismo que ele criou.
Jokoon
5

A economia de código aberto é bastante estranha e muitas vezes contra-intuitiva. Pegue um produto como a planilha do Excel (apenas um exemplo, qualquer grande produto comercial faria). O negócio de criar e dar suporte ao Excel emprega algum número de funcionários, digamos X. X provavelmente soaria um número grande para você e para mim, mas não tenho idéia do que seja. O que eu sei é que é um número minúsculo comparado ao número de pessoas que ganham a vida dando suporte ao Excel em escritórios, escolas e outras instituições e criando ferramentas usando o Excel. Esse número provavelmente é X * 10000. Portanto, se você substituir o Excel por um produto de código aberto, substituirá X, mas o X * 10000 não será afetado.

De fato, não é tão simples assim. Sem os funcionários do X, são necessários mais desenvolvedores pagos para treinar, solucionar problemas e modificar a planilha de código aberto. Só porque não há uma empresa comercial por trás do produto não significa que os negócios não exijam (e pagam) bom serviço. De fato, se o seu produto de código aberto ganhar tração suficiente, as empresas às vezes estão dispostas a apoiar uma base que garanta o desenvolvimento futuro desse produto. Isso é especialmente verdadeiro se os interesses comerciais deles estiverem intimamente ligados ao produto. Pense na Mozilla , na Apache Software Foundation , no Mono Project ou na Canonical .

Finalmente, as ferramentas de código aberto nunca são uma ameaça quando você está tentando vender um serviço. Pense em organizações como Facebook, Twitter e até Stackoverflow. Por fim, essas organizações não querem vender software para você. Eles querem criar uma rede gigante. Uma vez que a rede é grande o suficiente, ela cria sua própria gravidade. Usar qualquer outro "produto" não faria sentido, porque o número de participantes é o que mais importa. A tecnologia subjacente é apenas um detalhe.

Roger escasso
fonte
3

Eu diria que leia sobre as várias ideologias por trás de alguns dos projetos OpenSource mais importantes, como Chromium, Mozilla etc., e depois decida. Ninguém realmente tem o direito de lhe dizer como se sentir de um jeito ou de outro.

Dito isto, adoto o OpenSource porque gosto da ideia de transparência no design de software. Também gosto que a comunidade de usuários tenha um impacto muito real e direto na direção do projeto. Você não consegue isso em um ambiente de código fechado.

Se bem me lembro, um dos pontos que um defensor do Creative Commons fez foi que, ao tornar as coisas "gratuitas", você permite que as pessoas usem o produto de suas idéias de maneiras que você nunca imaginou. Este é um vídeo que eu particularmente gostei: https://creativecommons.org/videos/a-shared-culture

Tieson T.
fonte
2
Eu não acho que projetos como o mozilla vão reduzir a necessidade de programadores. A menos que sua empresa esteja desenvolvendo seu próprio navegador, duvido muito. Além disso, não acho que a maioria das pessoas veja o código-fonte. Os programadores se preocupam com o código fonte, os clientes não.
Joel Gauvreau
1

Nunca veremos um abraço completo .

Adoramos tentar contribuir positivamente para o mundo. Além disso, participar de um projeto de código aberto é um ótimo PLUS para o seu currículo.

karlphillip
fonte
3
Não tratamos as contribuições de código aberto da mesma forma que a experiência compensada. De fato, nossa experiência nos ensinou a evitar contratar alguém que tenha feito grandes contribuições para projetos de código aberto, porque o desenvolvimento de software no mundo real é 10% divertido e 90% chato. Os candidatos que contratamos que eram grandes em projetos de código aberto não queriam fazer o trabalho chato e duro que era necessário para produzir soluções de qualidade profissional.
bit-twiddler
6
@ bit-twiddler: Certamente, alguém tem que fazer as partes chatas em projetos de código aberto também
Anto
1
@ Anto: o problema é que as partes chatas geralmente não são executadas em projetos de código aberto. Por exemplo, um dos atributos que distingue produtos comerciais de alta qualidade de suas contrapartes de software de código aberto é a documentação. A documentação para os projetos de código aberto mais bem-sucedidos é pouco comparada à dos produtos comerciais de mesma escala bem-sucedidos. A falta de documentação adequada torna o aprendizado de produtos de código aberto uma grande dor. Não sou pago para reunir e decifrar documentação mal escrita. Eu sou pago para produzir resultados.
bit-twiddler
@ bit-twiddler: Então seus programadores também devem publicar documentação bem escrita? Não é mais barato contratar escritores técnicos, e eles geralmente não produzem um produto melhor?
precisa
1
@ David Thornley: Sim, espera-se que todo o pessoal de desenvolvimento seja capaz de escrever bem, além de ser um desenvolvedor de software de ciclo de vida completo e competente (ou seja, não temos pessoal apenas de código). Ninguém conhece o produto melhor do que a equipe de design e implementação. Nosso único escritor técnico tem a tarefa de coordenar e massagear a documentação de entrega.
bit-twiddler
1

O código aberto é uma ameaça para as empresas de software empacotadas cujos produtos estão em uma área popular o suficiente para que haja interesse suficiente na comunidade de código aberto para desenvolver uma alternativa gratuita. Eu acho que um caso importante é a queda significativa nos preços que a Oracle e a Microsoft podem cobrar pelo software de banco de dados. O mysql é mais do que adequado para a maioria dos projetos e é essencialmente gratuito, a menos que o cliente queira pagar pelo suporte para que eles tenham alguém no gancho se as coisas derem errado.

É absolutamente complementar aos negócios de consultoria e serviços, pois reduz o custo total de produção e aumenta a produtividade de seus desenvolvedores. As empresas gostam pelas mesmas razões, embora alguns insistam em encontrar fornecedores para fornecer suporte comercial, para que haja alguém para culpar / não se corresponder às expectativas.

Jeremy
fonte
O MySQL é de propriedade da Oracle. Não há nada que impeça a Oracle de fechar a origem desse produto, assim como nada impeça a Oracle de remover a entrada da comunidade em Java. As empresas de software não vendem software - elas vendem tranqüilidade para executivos! As empresas de capital aberto continuam comprando software comercial porque desejam latir com empresas do mesmo tamanho e fazer com que alguém salte pelos aros para fazer com que os problemas desapareçam. Vender IP é como as pequenas empresas de software se tornam grandes empresas de software. Um modelo somente de serviço depende totalmente do custo da mão-de-obra.
bit-twiddler
2
O código aberto é uma ameaça exatamente da mesma maneira que um concorrente é uma ameaça. Se o banco de dados da Oracle (exatamente como você o chama hoje em dia?) For significativamente melhor do que, digamos, o PostgreSQL, eles poderão vendê-lo. Se não for, por que diabos devemos pagar à Oracle?
precisa
1

Maiores riscos ...

  • Volatilidade: grande parte do OSS é desenvolvida em surtos. Existem projetos proeminentes, lançamentos estáveis ​​em menos conhecidos, mas como o universo do OSS é tão divergente e fragmentado em muitas áreas (e em constante evolução), é raro um projeto amadurecer o suficiente para dizer que o desenvolvimento será regular, indefinido, ou perpétuo. Mudar o curso no meio do caminho é caro, mesmo que o produto seja gratuito, porque a integração, a regressão e o suporte prático ou imediato não são gratuitos, mesmo se disponíveis.

  • Falta de responsabilidade: não há ninguém 'investido', por isso é difícil procurar recursos quando coisas ruins acontecem. Não há garantia. Nada que se assemelhe a um. A única garantia que você geralmente tem é reputação e, eventualmente, sua própria experiência pessoal. Como era gratuito, os desenvolvedores podem dizer para você sair do caminhão de bombeiros e não se importar nem um pouco com sua falta de sucesso, ou menos importante, se continuar usando o produto deles.

JustinC
fonte
2
E isso é diferente de software comercial, proprietário e de código fechado, de que maneira? O proprietário sempre pode decidir seguir outra direção, e o único produto geral que ouvi com garantia decente é o TurboTax.
21811 David Thornley
É diferente de várias maneiras. Uma maneira é comercial, pois os produtores de software com lucro, especialmente componentes, bibliotecas e tempos de execução, geralmente fazem um trabalho muito melhor ao fornecer transições mais suaves. Por exemplo, por enumeração explícita de alterações de interrupção e o que deve ser feito ou não devido a essas alterações de interrupção. Essa enumeração explícita geralmente é preparada e publicada muito antes do próprio software estar disponível, com erratas pós-lançamento prontamente disponíveis, e essas informações estão em um local e formato geralmente consistentes.
23611 JustinC
1

Abrace as ferramentas e outras coisas do OSS, mas não fique obcecado por elas (e sim, vi muitas pessoas ficarem obcecadas com coisas de código aberto, quase sempre em detrimento delas).

Escolha as melhores ferramentas para cada trabalho, independentemente de serem de código aberto ou não (lembre-se, algumas licenças de código aberto tornam qualquer coisa licenciada com eles inútil para trabalhos comerciais, especialmente as bibliotecas licenciadas pela GPL sofrem com isso).

jwenting
fonte
1

A maioria do moderno software de código aberto é desenvolvido por funcionários em período integral, que são pagos principalmente pelo desenvolvimento. O restante é desenvolvido por quem é pago por fazer algo que depende do software que está desenvolvendo, e um trabalho colaborativo nele, que oferece suporte e manutenção em grupo é absolutamente obrigatório para eles.

SK-logic
fonte
1

A grande maioria dos programadores não é paga por cópia distribuída do software que cria. Eles recebem uma taxa única pelo tempo gasto. Mesmo as empresas que empregam programadores geralmente não ganham seu dinheiro por cópia vendida. Com algumas exceções notáveis, como Microsoft e Adobe, o software normalmente faz parte de sua infraestrutura, como um site da empresa ou ferramentas internas, ou é distribuído como parte de outro produto ou serviço.

Outros apontaram que a maioria dos principais colaboradores de código aberto tem patrocinadores corporativos. Do lado do hobby, acho interessante que as pessoas sempre se concentrem no que é dado em vez de recebido. É como um eletricista recebendo todos os componentes de uma casa de graça, já montado, exceto por algumas melhorias na fiação que ele próprio faz, e as pessoas o consideram louco se ele passa algumas horas em um fim de semana ensinando outros a fazer as mesmas melhorias para outras casas que receberam o mesmo acordo. Claro, ele está dando um pouco de seu tempo e conhecimento de graça, mas em troca ele recebe um ótimo produto que vale várias vezes o trabalho que ele colocou e garante um ecossistema saudável para a próxima vez que precisar de algo.

Karl Bielefeldt
fonte
0

Como você deve se sentir? Bom Deus, a seguir você estará perguntando "como eu falo com mulheres". O código aberto nunca substituirá, mas uma pequena parte do SW pago. Para a maioria das organizações, o aumento dos custos de mudança do que eles já sabem para qualquer outra coisa, mesmo gratuita, é mais do que o custo do SW.

SnoopDougieDoug
fonte
0

A principal filosofia do código-fonte livre / aberto (a meu ver) é que, quando você distribui o software, também distribui o código-fonte. Código aberto não significa necessariamente livre de custos. E, certamente, em qualquer projeto grande, simplesmente escolher uma solução de código aberto não significa que você apenas escolhe algo de uma prateleira e o conecta e pronto. Para qualquer aplicativo grande, é necessário adaptá-lo às suas necessidades específicas (pode ser tão simples quanto configurá-lo e migrar o sistema existente para ele ou tão complexo quanto modificar grandes partes dele) e ter um mecanismo confiável de suporte, bem como atualizações / correções de bugs com o software original. Isso significa que sempre haverá trabalhos para programadores. Sem mencionar, para qualquer grande projeto de código aberto,

Pense dessa maneira: se já existe uma solução madura de código aberto para o seu problema e está sendo usada por muitas pessoas, faz sentido gastar muito dinheiro com algo que não pode ser tão maduro quanto isso? ? É simplesmente mais eficiente usá-lo. Não se trata de preservar empregos (como eu disse, sempre haverá necessidade de programadores), mas de um senso comercial simples, o que é ainda mais importante quando o dinheiro é pago pelos contribuintes. Desviar o código aberto em nome da manutenção de empregos é apenas criar um ambiente artificial, restringindo o compartilhamento de tecnologia e o IMHO geralmente prejudicial à saúde da comunidade de programação.

MAK
fonte
0

Eu examinaria alguns dos colaboradores do Linux para ter uma idéia de como a comunidade de código aberto é composta de pessoas que são pagas para disponibilizar seu código gratuitamente.

http://apcmag.com/linux-now-75-corporate.htm

nelaaro
fonte
0

Para mim, o código aberto também é político: permite que os programadores ajudem uns aos outros para que o trabalho duro não precise ser repetidamente reformulado e não seja permitido o uso entre os projetos.

Ele também definiu um conjunto melhor de regras básicas para o projeto, não está sob a regra de gerenciar: no final, o resultado é um código de melhor qualidade e longevidade.

Saiba que o assunto da ciência da computação é muito vasto e existem alguns softwares que são tão complexos que não existem tantas pessoas competentes para escrevê-los, mantê-los e também adicionar recursos interessantes.

Realmente acho que seu argumento "toneladas de programadores perderiam seus empregos e a indústria diminuiria" muito enganador, não apenas sobre a indústria de software, mas para o mundo em geral. Lembre-se da bolha da web: é fácil enganar as pessoas que não estão programando em uma empresa. O código aberto é uma maneira segura de colocar uma barreira nisso.

Você também precisa pensar que o software não é como muitos outros setores: você entrega algo que é volátil, algo que o capitalismo não pode realmente trabalhar. Imagine se conseguíssemos duplicar objetos físicos, mas você precisaria pagar por cada comprimido de aspirina duplicado, porque a molécula é "pertencente" a alguém. Isso poderia fazer muito pouco sentido. Agora pense em copiar água pura e limpa (que um dia ficará cara): você acha que é ética e filosoficamente correto fazer as pessoas pagarem por isso?

Se os programadores perdem seus empregos por causa do código aberto, talvez seja porque eles não conseguem reproduzir o mesmo tipo de qualidade de software; portanto, de certa forma, eles merecem ser demitidos. Mas isso não significa que eles devam ser menos programadores trabalhando: é apenas uma questão de comunidade, trabalho em equipe e ética: as empresas devem pagar aos programadores para implementar soluções para problemas usando o software existente ou contratar programadores mais competentes que possam adicionar recursos para um código existente.

Pegue o iOS, windows phone, symbian e android: esses são 75% fazendo a mesma coisa, significando quase as mesmas "rodas". São apenas sabores diferentes, mas, no final, muito dinheiro foi gasto porque as empresas queriam sobreviver aos seus ideais.

O código-fonte aberto não é apenas político, mas também sobre inovação: como você deseja dar realidade a uma nova idéia se precisar reiniciar tudo do zero várias vezes?

jokoon
fonte
0

O que o software Free / Open Source faz é estabelecer uma linha de base: se sua empresa não puder produzir algo melhor que a alternativa do F / OS, ela não poderá vender muitas cópias. Se sua empresa puder oferecer algo significativamente melhor que o F / OS disponível, ela poderá vender cópias e obter lucro. Portanto, um uso é reduzir a capacidade das empresas de vender software ruim.

Também reduz as barreiras de entrada. Qualquer pessoa com um desktop ou laptop moderno pode, sem gastar um centavo em licenças de software, ter um sistema operacional muito funcional, com GUI fácil de usar e excelente ambiente de desenvolvimento (muitas pessoas acham que o MS Windows com Visual Studio é melhor que isso meio ambiente e muitos que não o fazem).

Portanto, o F / OSS ajuda o empresário de software a iniciar um negócio a baixo custo. Isso aumenta a influência e o lucro do inovador de software em comparação com o pessoal financeiro, que controlava a maioria dos computadores não universitários nos velhos tempos. Muitas das recentes histórias de sucesso em massa teriam sido mais difíceis de avançar, talvez impossíveis, sem o F / OSS e seus efeitos.

Isso reduz a oportunidade de ganhar muito dinheiro sem a capacidade correspondente, o que é sem dúvida uma coisa boa.

Os desenvolvedores que não são muito bons encontrarão nichos em software interno para empresas que não confiam em seus sistemas de computadores como um ativo estratégico, e esses trabalhos não serão afetados muito pelo F / OSS.

Os desenvolvedores que são muito bons, mas não do tipo empreendedor, ainda se saem bem com empresas que vendem software comercial não-F / OS de boa qualidade. O mercado baseado em dinheiro é mais eficaz em suprir muitas necessidades do que o mercado de reputação do F / OSS e muito melhor em produzir o material necessário e sem graça. Existem muitos aplicativos vitais que a maioria dos desenvolvedores de F / OSS evitará.

Então, no geral, acho saudável para a comunidade de desenvolvimento. Ele permite aos desenvolvedores uma chance melhor de se tornarem ricos e serve como um incentivo para criar bons produtos (e a maioria dos desenvolvedores prefere trabalhar em bons produtos do que em ruins). Isso pode prejudicar os desenvolvedores que não são tão bons ou trabalhar para empresas mal administradas, mas não reduz muito a demanda e, provavelmente, eles podem encontrar empregos de qualquer maneira.

David Thornley
fonte