SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Diminuindo sofrimento com
código legado de linguagens
não mainstreams
Jac Abreu Lopes
Developer sem preconceitos
De Java a Perl sem mimimis
@JacAbreu
Motivação
Trabalhar diariamente com um
sistema feito em Perlcriado
há 10 anos
Motivação
Códigos importantes ao negócio
intocados e intocáveis
Como deixar um dev chocado:
Abordar um developer feliz, trabalhando
com a sua tecnologia preferida e avisar que
ele trabalhará com algum sistema legado
E AÍ?
O que é legado?
O que é legado?
Sistema feito pelos outros?
O que é legado?
Sistema feito pelos outros?
Sistema feito em tecnologia antiga?
O que é legado?
Sistema feito pelos outros?
Sistema feito em tecnologia antiga?
Sistema com “cara” de antigo?
O que é legado?
Sistema feito pelos outros?
Sistema feito em tecnologia antiga?
Sistema com “cara” de antigo?
Sistema sem testes?
Feito pelos outros?
https://github.com/jruby/jruby
+ =
Tecnologia antiga?
C++: 1985 (30 anos)
Python: 1991 (24 anos)
Java: 1995 (20 anos)
Ruby: 1995 (20 anos)
“Cara” de antigo?
Vim (1991), Vi (1976)
“Cara” de antigo?
Vim (1991), Vi (1976)
Software sem testes é legado?
Geralmente sim.
O que é legado?
Ninguém tem conhecimento das
regras de negócio.
O que é legado?
Ninguém tem conhecimento das
regras de negócio.
Não atende completamente às
necessidades do negócio.
O que é legado?
Ninguém tem conhecimento das
regras de negócio.
Não atende completamente às
necessidades do negócio.
Evolução arriscada ou muito
custosa
“fui alocado sozinho num […] pequeno
sistema "legado" extremamente mal feito.
[...] E eu posso dizer "mal feito" porque
efetivamente ele não executava como
devia, ou seja, era tecnicamente falho e
devolvia muitos erros.”
Fabio Akita
O Mito do Legado
http://www.akitaonrails.com/2012/08/15/off-topic-o-mito-do-legado
O que é uma linguagem
não mainstream?
O que é uma linguagem
não mainstream?
O que é uma linguagem
não mainstream?
O que é uma linguagem
não mainstream?
http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
O quão popular é uma linguagem?
✓ Google Trends
✓ Resultados de busca
✓ Empregos
✓ Projetos no GitHub
✓ Tiobe
✓ PYPL PopularitY of Programming Language
✓ RedMonk Programming Language Rankings
Linguagens não mainstream são
aquelas que não costumam ser
utilizadas em greenfield
O que que o legado tem?
O que que o legado tem?
Abordagens diferentes nos
diferentes módulos do sistema
O que que o legado tem?
Abordagens diferentes nos
diferentes módulos do sistema
Frameworks próprios
O que que o legado tem?
Abordagens diferentes nos
diferentes módulos do sistema
Frameworks próprios
Débitos técnicos acumulados
“Faça qualquer coisa, pois legado
ninguém vê”
“É legado, não precisa se preocupar,
pode fazer de qualquer jeito”
Sistema utilizado é sistema observado.
Sistema utilizado é sistema passível
de requisições de evolução.
Fazer “qualquer coisa” de “qualquer
jeito” leva a perder o controle do
sistema
Não se dê ao luxo de perder o controle
Se tem alguém programando,
provavelmente tem comunidade.
Encontre-a.
No caso de Perl
✓ http://sao-paulo.pm.org/
✓ http://yapcbrasil2015.org/
✓ http://perl.org.br/
No caso de Perl (with lasers)
✓ Metacpan
https://metacpan.org
A modern CPAN search site,
with an open source backend
Não é porque é antigo que não tem
boas práticas
Perl::Tidy
Parses and beautifies perl source
Não é porque é antigo que não tem
boas práticas
Perl Best Practices
Standards and Styles for Developing
Maintainable Code.
Partes desatualizadas após o Moo/Moose, mas
ainda vale a leitura.
Não é porque é antigo que não tem
boas práticas
Perl::Critic
Critique Perl source code for best-practices
Módulo que implementa as indicações do
Perl Best Practices - contempla Moo/Moose
Abordagem
Saiba o objetivo do código e decida:
abordagem cirúrgica
ou reformadora?
Não reinvente a roda
Frameworks coorporativos são válidos
em casos muito especiais e se mantidos
por uma equipe e não por uma pessoa.
Não reinvente a roda
Se necessário, “forke” um framework
mais próximo às necessidades do
projeto e adapte.
Seja um bom escoteiro
Legado não é bagunça. Um trecho de
código bem escrito vale mais do que
nenhum. O próximo dev irá te agradecer.
Documente tudo!
Documente o que entendeu e
principalmente o que não entendeu.
Testes de negócio
Escreva testes automatizados de
negócio para garantir que entende o
que o código faz.
Abra sua mente
Abra sua mente
1. http://www.itexto.net/devkico/?p=2073
2. http://www.itexto.net/devkico/?p=2106
3. http://www.computerworld.com.au/article/393903/cobol_dead_yet/
4. http://www.akitaonrails.com/2012/08/15/off-topic-o-mito-do-legado
5. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
6. https://github.com/search?utf8=%E2%9C%93&q=language%3APerl&type=Repositories&ref=searchresults
7. http://www.tiobe.com/index.php/content/paperinfo/tpci/programminglanguages_definition.html
8. http://sogrady-media.redmonk.com/sogrady/files/2015/01/lang.rank_.plot_.q1152.png
9. http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
10. http://www.cbsi.net.br/2015/03/dada-como-em-extincao-cobol-ainda-ta.html
11. https://en.wikipedia.org/wiki/Measuring_programming_language_popularity
12. http://pypl.github.io/PYPL.html
13. https://www.blackducksoftware.com/resources/data/this-years-language-use
14. http://trendyskills.com/
15. http://pt.slideshare.net/garux/communities-perl-edition-riojs
16. http://pt.slideshare.net/garux/descobrindo-a-linguagem-perl
17. https://help.github.com/articles/where-can-i-find-open-source-projects-to-work-on/
18. https://github.com/trending
19. http://blog.microfocus.com/news/the-legacy-myth-legendary-it/2218/
20. http://search.cpan.org/~shancock/Perl-Tidy-20140711/lib/Perl/Tidy.pod
21. http://shop.oreilly.com/product/9780596001735.do
22. https://github.com/search?utf8=%E2%9C%93&q=framework
23. http://search.cpan.org/~thaljef/Perl-Critic-1.125/lib/Perl/Critic.pm
24. https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
25. https://www.perl.org/
26. http://onyxneon.com/books/modern_perl/index.html
Referências
@JacAbreu

Mais conteúdo relacionado

Mais procurados

Oficina FLISOL Curitiba - TDD, pequenos passos fazem toda diferença
Oficina FLISOL Curitiba - TDD, pequenos passos fazem toda diferençaOficina FLISOL Curitiba - TDD, pequenos passos fazem toda diferença
Oficina FLISOL Curitiba - TDD, pequenos passos fazem toda diferençaAndre Cardoso
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - IntroduçãoHélio Costa e Silva
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador PragmaticoLeonardo Fernandes
 
O papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareO papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareLeonardo Zanivan
 
Testes de software
Testes de softwareTestes de software
Testes de softwareVitor Castro
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Thiago Barradas
 
Testes de software automatizados
Testes de software automatizadosTestes de software automatizados
Testes de software automatizadosMarcelo Andrade
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
 
Programação funcional que funciona
Programação funcional que funcionaProgramação funcional que funciona
Programação funcional que funcionaRodrigo Serradura
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
Aprensentacao oo-trincheiras
Aprensentacao oo-trincheirasAprensentacao oo-trincheiras
Aprensentacao oo-trincheirasHigor César
 

Mais procurados (20)

TDD
TDDTDD
TDD
 
Oficina FLISOL Curitiba - TDD, pequenos passos fazem toda diferença
Oficina FLISOL Curitiba - TDD, pequenos passos fazem toda diferençaOficina FLISOL Curitiba - TDD, pequenos passos fazem toda diferença
Oficina FLISOL Curitiba - TDD, pequenos passos fazem toda diferença
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - Introdução
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
 
Programação Orientada a Gambiarra
Programação Orientada a GambiarraProgramação Orientada a Gambiarra
Programação Orientada a Gambiarra
 
O papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareO papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de software
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Testes de software automatizados
Testes de software automatizadosTestes de software automatizados
Testes de software automatizados
 
O que devo procurar em um code review
O que devo procurar em um code review O que devo procurar em um code review
O que devo procurar em um code review
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 
A saga do desenvolvedor java
A saga do desenvolvedor javaA saga do desenvolvedor java
A saga do desenvolvedor java
 
Anti-patterns
Anti-patternsAnti-patterns
Anti-patterns
 
Programação funcional que funciona
Programação funcional que funcionaProgramação funcional que funciona
Programação funcional que funciona
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
Coding Dojo em 10 Minutos!
Coding Dojo em 10 Minutos!Coding Dojo em 10 Minutos!
Coding Dojo em 10 Minutos!
 
Aprensentacao oo-trincheiras
Aprensentacao oo-trincheirasAprensentacao oo-trincheiras
Aprensentacao oo-trincheiras
 
Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014
 
Metodos ageis thinkingdifferent
Metodos ageis thinkingdifferentMetodos ageis thinkingdifferent
Metodos ageis thinkingdifferent
 

Semelhante a Legado não mainstream

DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariTaller Negócio Digitais
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filhorafarubert
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012Luís Cobucci
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agiledayCarlos Felippe Cardoso
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceRafael Jaques
 
Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Phil Calçado
 
Contribuindo para projetos de software livre
Contribuindo para projetos de software livreContribuindo para projetos de software livre
Contribuindo para projetos de software livreLucas Barros
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmáticaelliando dias
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkGiuseppe Lopes
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
Dicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDouglas V. Pasqua
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 

Semelhante a Legado não mainstream (20)

O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
TDC 2015 - Torne-se um programador melhor
TDC 2015 - Torne-se um  programador melhorTDC 2015 - Torne-se um  programador melhor
TDC 2015 - Torne-se um programador melhor
 
Quem e dev ops
Quem e dev opsQuem e dev ops
Quem e dev ops
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filho
 
Começando errado com php
Começando errado com phpComeçando errado com php
Começando errado com php
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agileday
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open Source
 
Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005
 
Contribuindo para projetos de software livre
Contribuindo para projetos de software livreContribuindo para projetos de software livre
Contribuindo para projetos de software livre
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Clean Code na prática
Clean Code na práticaClean Code na prática
Clean Code na prática
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do framework
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Dicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHP
 
Lapidando ruby
Lapidando rubyLapidando ruby
Lapidando ruby
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 

Legado não mainstream

  • 1. Diminuindo sofrimento com código legado de linguagens não mainstreams
  • 2. Jac Abreu Lopes Developer sem preconceitos De Java a Perl sem mimimis @JacAbreu
  • 3. Motivação Trabalhar diariamente com um sistema feito em Perlcriado há 10 anos
  • 4.
  • 5.
  • 6.
  • 7. Motivação Códigos importantes ao negócio intocados e intocáveis
  • 8. Como deixar um dev chocado: Abordar um developer feliz, trabalhando com a sua tecnologia preferida e avisar que ele trabalhará com algum sistema legado
  • 10. O que é legado?
  • 11. O que é legado? Sistema feito pelos outros?
  • 12. O que é legado? Sistema feito pelos outros? Sistema feito em tecnologia antiga?
  • 13. O que é legado? Sistema feito pelos outros? Sistema feito em tecnologia antiga? Sistema com “cara” de antigo?
  • 14. O que é legado? Sistema feito pelos outros? Sistema feito em tecnologia antiga? Sistema com “cara” de antigo? Sistema sem testes?
  • 16. Tecnologia antiga? C++: 1985 (30 anos) Python: 1991 (24 anos) Java: 1995 (20 anos) Ruby: 1995 (20 anos)
  • 17. “Cara” de antigo? Vim (1991), Vi (1976)
  • 18. “Cara” de antigo? Vim (1991), Vi (1976)
  • 19. Software sem testes é legado? Geralmente sim.
  • 20. O que é legado? Ninguém tem conhecimento das regras de negócio.
  • 21. O que é legado? Ninguém tem conhecimento das regras de negócio. Não atende completamente às necessidades do negócio.
  • 22. O que é legado? Ninguém tem conhecimento das regras de negócio. Não atende completamente às necessidades do negócio. Evolução arriscada ou muito custosa
  • 23. “fui alocado sozinho num […] pequeno sistema "legado" extremamente mal feito. [...] E eu posso dizer "mal feito" porque efetivamente ele não executava como devia, ou seja, era tecnicamente falho e devolvia muitos erros.” Fabio Akita O Mito do Legado http://www.akitaonrails.com/2012/08/15/off-topic-o-mito-do-legado
  • 24. O que é uma linguagem não mainstream?
  • 25. O que é uma linguagem não mainstream?
  • 26. O que é uma linguagem não mainstream?
  • 27. O que é uma linguagem não mainstream?
  • 29. O quão popular é uma linguagem? ✓ Google Trends ✓ Resultados de busca ✓ Empregos ✓ Projetos no GitHub ✓ Tiobe ✓ PYPL PopularitY of Programming Language ✓ RedMonk Programming Language Rankings
  • 30. Linguagens não mainstream são aquelas que não costumam ser utilizadas em greenfield
  • 31. O que que o legado tem?
  • 32. O que que o legado tem? Abordagens diferentes nos diferentes módulos do sistema
  • 33. O que que o legado tem? Abordagens diferentes nos diferentes módulos do sistema Frameworks próprios
  • 34. O que que o legado tem? Abordagens diferentes nos diferentes módulos do sistema Frameworks próprios Débitos técnicos acumulados
  • 35. “Faça qualquer coisa, pois legado ninguém vê” “É legado, não precisa se preocupar, pode fazer de qualquer jeito”
  • 36. Sistema utilizado é sistema observado. Sistema utilizado é sistema passível de requisições de evolução.
  • 37. Fazer “qualquer coisa” de “qualquer jeito” leva a perder o controle do sistema Não se dê ao luxo de perder o controle
  • 38. Se tem alguém programando, provavelmente tem comunidade. Encontre-a.
  • 39. No caso de Perl ✓ http://sao-paulo.pm.org/ ✓ http://yapcbrasil2015.org/ ✓ http://perl.org.br/
  • 40. No caso de Perl (with lasers) ✓ Metacpan https://metacpan.org A modern CPAN search site, with an open source backend
  • 41.
  • 42.
  • 43. Não é porque é antigo que não tem boas práticas Perl::Tidy Parses and beautifies perl source
  • 44. Não é porque é antigo que não tem boas práticas Perl Best Practices Standards and Styles for Developing Maintainable Code. Partes desatualizadas após o Moo/Moose, mas ainda vale a leitura.
  • 45. Não é porque é antigo que não tem boas práticas Perl::Critic Critique Perl source code for best-practices Módulo que implementa as indicações do Perl Best Practices - contempla Moo/Moose
  • 46. Abordagem Saiba o objetivo do código e decida: abordagem cirúrgica ou reformadora?
  • 47.
  • 48. Não reinvente a roda Frameworks coorporativos são válidos em casos muito especiais e se mantidos por uma equipe e não por uma pessoa.
  • 49. Não reinvente a roda Se necessário, “forke” um framework mais próximo às necessidades do projeto e adapte.
  • 50. Seja um bom escoteiro Legado não é bagunça. Um trecho de código bem escrito vale mais do que nenhum. O próximo dev irá te agradecer.
  • 51. Documente tudo! Documente o que entendeu e principalmente o que não entendeu.
  • 52. Testes de negócio Escreva testes automatizados de negócio para garantir que entende o que o código faz.
  • 55. 1. http://www.itexto.net/devkico/?p=2073 2. http://www.itexto.net/devkico/?p=2106 3. http://www.computerworld.com.au/article/393903/cobol_dead_yet/ 4. http://www.akitaonrails.com/2012/08/15/off-topic-o-mito-do-legado 5. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 6. https://github.com/search?utf8=%E2%9C%93&q=language%3APerl&type=Repositories&ref=searchresults 7. http://www.tiobe.com/index.php/content/paperinfo/tpci/programminglanguages_definition.html 8. http://sogrady-media.redmonk.com/sogrady/files/2015/01/lang.rank_.plot_.q1152.png 9. http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/ 10. http://www.cbsi.net.br/2015/03/dada-como-em-extincao-cobol-ainda-ta.html 11. https://en.wikipedia.org/wiki/Measuring_programming_language_popularity 12. http://pypl.github.io/PYPL.html 13. https://www.blackducksoftware.com/resources/data/this-years-language-use 14. http://trendyskills.com/ 15. http://pt.slideshare.net/garux/communities-perl-edition-riojs 16. http://pt.slideshare.net/garux/descobrindo-a-linguagem-perl 17. https://help.github.com/articles/where-can-i-find-open-source-projects-to-work-on/ 18. https://github.com/trending 19. http://blog.microfocus.com/news/the-legacy-myth-legendary-it/2218/ 20. http://search.cpan.org/~shancock/Perl-Tidy-20140711/lib/Perl/Tidy.pod 21. http://shop.oreilly.com/product/9780596001735.do 22. https://github.com/search?utf8=%E2%9C%93&q=framework 23. http://search.cpan.org/~thaljef/Perl-Critic-1.125/lib/Perl/Critic.pm 24. https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites 25. https://www.perl.org/ 26. http://onyxneon.com/books/modern_perl/index.html Referências