Pessoal, quando vocês precisam de algum algoritmo específico, vocês pesquisam sobre o mesmo e tentam fazer um próprio ou pegam um procuram um pronto para usar, customizado? Será que no trabalho, utilizar algoritmos prontos pegaria mal?
O que pega mal eh nao ser produtivo - se ja tem feito, use! Se ja tem feito, mas eh ruim, melhore e, se for open-source, contribua de volta!
Tipo, no trampo eu implementei uns algoritmos fodas lá, mas tem que fazer outras coisas, como gerar código de barras pdf417 e nesse caso estou pensando em utilizar uma biblioteca publica msm, ateh pq o formato do codigo de barras eh de dominio publica, mas sei lah, nao poderiam pensar que vc nao consegue implementar as coisas por si soh?
Se já tem pronto, use, mas saiba o que está usando, senão será um inferno para dar manutenção mais tarde.
Sinceramente, teus superiores nao querem saber quem fez o codigo. Eles querem saber se vai funcionar e se tu resolveu o problema rapido. Hoje em dia nos prazos que trabalhamos em projetos é impossivel fazer tudo sem reaproveitar codigos prontos.
]['s
Lembrando que respeitar a licenca original do codigo e manter a atribuicao do trabalho feito continuam sendo imprescindiveis do ponto de vista etico. Se voce vai usar codigo de terceiros no seu, o minimo que vc deve fazer eh ter certeza de que o autor original permite que este tipo de uso seja feito e que o autor seja citado como tal.
mas, vcs utilizariam, por ex, a classe pronta ou apenas os métodos que vocês precisassem?
Nao existe decoreba ou formulas pra isso, cada caso é um caso e o desenvolvedor/programador/arquiteto é quem tem que decidir como proceder. Se for o caso copia-se o código pra dentro de alguma classe do projeto ou usa-se com um jar, classe. Como eu disse cada caso tem que ser analisado e feito da melhor maneira possivel.
O único detalhe é que independente do caso, como o CV já disse em todos eles respeitar os direitos autorais é o minimo a ser feito.
]['s
Se você desenvolve “por conta” é desejável explicitar em seu contrato o que você vai entregar, e ver se o cliente tem algum problema com o uso de software open-source.
Pode ser que ele queira que você dê suporte ao software open-source que você vai usar, e pode ser que ele tenha algum problema com open-source (por exemplo, se você for contratado pela Microsoft e prestar um serviço diretamente para o Bill Gates, é bom tomar cuidado - a Microsoft chegou a reescrever a compressão ZLIB para evitar o uso de open-source…)
Bom, no meu caso, estou utilizando apenas algumas coisas que seriam bem trabalhosas de fazer, se feitas do início, como o provedor ElGamal que veio junto no livro do oreilly sobre criptografia em java e uma classe que gera códigos de barra no formato pdf417, que é um formato público… então não sei se há problemas.
Se você vai usar coisas prontas e gratuitas (recomendado pelo custo, comodidade e muitas vezes pela qualidade ou pelo suporte), é conveniente ler a licença que vem com elas (se você realmente acha que vai ter problemas, submeta a licença ao departamento jurídico da sua empresa … ).
Normalmente essas licenças, se forem derivadas da LGPL, BSD, Mozilla, etc. não ocasionam problemas. (Bom, como eu digo, ENSUA = eu não sou um advogado; a abreviatura disso em inglês - I Am Not A Lawyer - não é muito legal em português, e acho que mesmo em inglês não é legal…)
A única licença que pode dar problemas se você vai usar uma biblioteca em um produto comercial é a GPL, porque ela é “infecciosa”, mas normalmente bibliotecas são LGPL, não GPL.