O PHP Mudou, você deveria fazer o mesmo

1.022 visualizações

Publicada em

Todos conhecem nosso PHP como a poderosa plataforma que é. Mas por que não podíamos apresentar o PHP assim alguns anos atrás? O que mudou? Por que o termo PHP não contempla somente a sintaxe? O que o PHP oferece de diferente num mundo com tantas opções? A ideia é como apresentar e defender a adoção do PHP para tomada de decisão tecnológica

Publicada em: Tecnologia
0 comentários
12 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.022
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
30
Comentários
0
Gostaram
12
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Olá. Sou o Duodraco e vamos falar sobre a linguagem mais utiizada na web. Porque é conhecida como uma linguagem ruim e principalmente: provar que isso está errado!
  • Se você vai ver esse material com esse pensamento eu temo em decepcioná-lo nos nessa apresentação. Se você gosta de PHP e normalmente vê este tipo de comportamento, veja este conteúdo e esteja preparado para argumentar com outros profissionais.
  • Antes de mais nada, peço Mente Aberta ao ler esse material, seja você profissional do PHP ou não.
    A ideia aqui não é colocar o PHP sobre outras linguagens, dizer qual é melhor ou pior... A ideia é apresentar o PHP do jeito que ele é hoje! No final complemento esta ideia.
  • O Java desde sempre nunca foi somente uma nova sintaxe de codificação – JVM, Comunidade, Frameworks, Apoio corporativo... o Python, Ruby, C# e mesmo o PHP seguem a mesma linha. Vamos falar bastante sobre o Ecossistema em torno do PHP.
  • Não vou responder essa pergunta agora, mas com essa apresentação.
  • Para entendermos o PHP é muito importante conhecer sua história.
  • O ano é 1995 e a cidade Florianópolis. Rasmus Lerdorf, que já havia algum tempo usava alguns scripts Perl para automatizar algumas tarefas em sua página pessoal, juntou todos esses scripts, adicionou algumas funcionalidades e as compilou em C.
  • Nascia ali o Personal Home Page Tools 1.0. Rasmus publicou essa ferramenta para a comunidade e desde então começou a receber diversas contribuições para sua recém criada “linguagem”
  • Aqui temos um exemplo de código do PHP 1.0. De fato não tínhamos uma linguagem – mas uma sim um conjunto de automações – nessa época o PHP se assemelhava mais a uma Template Engine. No ano seguinte o PHP recebia seu primeiro update com o PHP/FI (ou PHP2).
  • Em pouco tempo o PHP ficou muito popular pois trazia uma produtividade para desenvolvineto de conteúdo para a Web incrível. Com essa popularidade a comunidade de contribuidores do PHP também crescia.
  • Em 1998 Zeev Suraski e Andi Gutmans se juntaram ao Rasmus e publicaram o PHP 3. Neste ponto sim o PHP era uma linguagem de fato e muito mais fácil de desenvolver que a sintaxe antiga. Também foi criada a empresa Zend que apoia o PHP até hoje.
  • Com essa nova cara o próprio PHP foi renomeado – agora um “acronimo” recursivo para PHP Hypertext Preprocessor – e este é o nome da linguagem até hoje. Eu particularmente acho que o PHP deva ser renomeado novamente, pois nossa linguagem já não é um simples preprocessador faz tempo ;)
  • Em 2000 o PHP como conhecemos recebeu seu primeiro grande update: o Zend Engine. Esse Engine deu mais performance a linguagem que deixou de ser interpretada em toda chamada e ganhou uma camada de cache de opcode. Estes por sua vez são código já interpretado, próximo de linguagem de máquina, processado e pronto para ser executado.
  • O PHP era sem dúvida a linguagem mais usada na web naquela época. E era uma das linguagens mais fáceis de aprender – havia bastante conteúdo impresso e na web. O problema: nem todo o conteúdo era de boa qualidade e esse material ruim era distribuido facilmente o que levou muitos desenvolvedores PHP a desenvolver de maneira ruim
  • Isso é código PHP4. Um controller, uma “view” e uma classe... Aqui vemos diversos problemas de segurança e manutenabilidade. Alguém se importava na época? Veja que este tipo de problema é algo completamente ligado ao desenvolvedor – hoje há um consenso entre a maioria dos desenvolvedores das melhores práticas de desenvolvimento.
  • Aqui alguns outros problemas – intimamente ligados à linguagem em si. E toda linguagem tem problemas. Um bom desenvolvedor conhece as vantagens e problemas em sua plataforma de desenvolvimento e evita caminhar por caminhos perigosos – ou problemáticos. Esses são problemas conhecidos e há razão para que existam (Normalmente retrocompatibilidade).
  • Em 2004 o PHP recebe seu mais importante update e por toda comunidade é conhecido como um marco no desenvolvimento da linguagem e da plataforma. Sem dúvida todos que criticam o PHP, e por vezes com razão, o fazem ainda pensando no PHP pré 2004.
  • PHP5: Uma completa reescrita do Zend Engine trouxe, além do Garbage Collector, mais performance. Outra mudança no Zend Engine permitiu a evolução da linguagem com um suporte decente a Orientação a Objetos, pobremente implementada no passado.
  • Em 2005 o PHP recebeu um update e entre outras coisas foi implementada uma interface comum para acesso a Banco de Dados – algo pedido há muito pela comunidade. Antes tínhamos um conjunto de funções para acesso a cada driver RDBMS. Com o PDO ganhamos uma interface única e de quebra ganhamos muito com a performance e implementação.
  • Alguns incrementos à linguagem em 2006:
    Encoders Json, Filtros e validadores, suporte às RFCs do HTTP 1867 (notificação de status de upload) e 2397 (suporte a mimetype data : stream). Mas sem dúvida uma adição importante foi a Datetime – essa família de classes trouxe uma interface de desenvolvimento para trabalho com Tempo e Datas que tirava o sono de todos os desenvolvedores já há muito tempo.
  • Em 2009 outro grande salto na linguagem aconteceu: Suporte a Namespaces e funções anônimas: agora, além te permitir uma melhor organização de código o PHP também passava a suportar parcialmente o paradigma funcional, além do procedural e orientado a objetos. Outras boas adições foram o suporte a FastCGI, com gerenciador nativo e um suporte mais próximo da Microsoft com relação as versões para o Windows.
    Vale lembrar que o suporte de comunidade para esta versão vai(foi) até Junho de 2014
  • Em 2012 os Core Developers da linguagem decidiram pelo lançamento anual de novas versões do PHP5 e esse suporte pode ir até 3 anos pela própria comunidade com patches de Segurança e atualizações.
    Com o 5.4 o PHP ganhou suporte a Traits (reusabilidade horizontal), um servidor web embutido e melhorias na sintaxe.
  • Com o PHP 5.5 um produto separado da Zend passou a integrar a linguagem por padrão. O Zend Opcache é um como um turbo na linguagem melhorando ainda mais o cache da Zend Engine. Outra adição é o Password Hashing, que ajuda os desenvolvedores no trabalho com senhas (que era bom já, mas agora é ainda mais facil para o desenvolvedor), além dos Generators (yield)
  • Quando dessa apresentação, o PHP 5.6 ainda era um beta, mas já com algumas adições interessantes, como suporte a funções variicas, uploads de mais de 2GB, melhorias com segurança e muito mais.
  • E o futuro do PHP? Ainda não há uma certeza sobre o que será um possível PHP6 – aqui vai uma lista sobre possíveis features que esse upgrade pode trazer – só lembrando que isso ainda é um RFC e muita coisa pode mudar até lá.
  • Bom, quando alguém fala que desenvolvendo com PHP não temos qualidade de código eu discordo veementemente. O PHP tem, desenvolvida pela própria comunidade, uma suíte de testes e métricas de qualidade de se invejar. PHPUnit, Behat, Code Sniffer, PDepend, CPD, PMD, PDCD, Xdebug, Phing... só para citar uma parte
  • Obvio que em tanto tempo (o PHP5 em 2014 está com 10 anos) não poderiam faltar ferramentas de desenvolvimento. Os maiores frameworks hoje são o Symfony e o Zend Framework. Também existe um sem número de bibliotecas e microframeworks como Monolog e Silex, além do brasileiríssimo Respect.
    O PHP também conta com suporte a extensões compiladas (desde 2001) e muitas das funcionalidades nativas do PHP nasceram nesse berço.
  • Em uma pesquisa realizada pela Zend, em 2012, cerca de 3 de cada 5 profisisonais optam por usar um framework de mercado. Dentre esses, como dito no slide anterior, ZF e Symfony se destacam.
    Vale mencionar também que o Governo Brasileiro e de alguns estados pede o uso desses frameworks em projetos e licitações.
  • O PHP tem desde 2001 a PEAR e PECL. Estes são repositórios e ferramentas para bibliotecas escritas em PHP e extensões compiladas respectivamente.
    Há poucos anos nos foi apresentado o composer – gerenciador de dependências simples que praticamente todo projeto adotou por ser menos burocrático que os canais oficiais. Antes de reinventar a roda procure nestes canais projetos que possam te atender
  • Os representantes das principais bibliotecas PHP se uniram e formaramo FIG. Dele surgiram as PSR – recomendações de padrões de código e boas práticas para o desenvolvimento como nomenclatura (o que ajudou muito com o autoloading de arquivos), padrão de estilo de código e interface de log.
  • O PHP também conta com ferramentas profissionais para o desenvolvedor. Aqui cito algumas IDEs: ZendStudio (baseado no Eclipse) e sua versão comunitária, o PDT. Temos o Netbeans, gratuito e disponibilizado pela Oracle. E o mais novo entre eles, o PHPStorm da Jetbrains
  • O que acham de alguns números sobre nosso ecossistema? Gerentes e Diretores adoram numeros ;)
  • PHP é a 6ª plataforma em populariade atrás somente de C, C++, C#, Java e Objective-C.
    E é a Primeira no uso em servidores, entre os top 10 milhões da Alexa.
  • O PHP, por meio da Zend, tem parcerias com:
    - Oracle, que tem equipe dedicada a cuidar dos drivers e compatibilidade com a plataforma da empresa
    - Adobe que suporta a conectividade com produtos da empresa
    - IBM que colabora com o uso do PHP em seus servidores iSeries e com o ZendServer
    - Microsoft que suporta a manutenção de drivers para SQLServer e a própria compilação de versões de PHP para Windows, sem contar seu suporte a Azure.
  • Todos esses ambientes, em parceria com a Zend suportam o PHP nas nuvens internet afora.
  • Sim, o PHP conta com um Application Server completo. Saiba mais em http://zend.com/server.
    A Zend fa um grande trabalho mostrando como o PHP pode ser escalável e trazer grandes melhorias desde o desenvolvimento, deployment e manutenção, incluindo práticas de Continuous Delivering e DevOps.
  • Como dito antes: o PHP conta com suporte da comunidade por até 3 anos em toda versão. Sabemos que às vezes 3 anos é pouco em ambientes corporativos e a Zend suporta versões do PHP com o ZendServer por até 5 anos. Alguns frameworks, como o Symfony têm suporte declarado em suas versões para que os desenvolvedores não sejam pegos de surpresa – suas versões LTS chegam a 3 anos.
  • Creio que todos conheçam esses produtos não? Produtos de sucesso com PHP
  • Empresas que usam o PHP. Só para citar algumas atuantes no Brasil: o grupo Rocket, por intermédio de suas ventures como Kanui, Tricae, Mobly, ClickBus, EasyTaxi...; CI&T de Campinas com um time gigante de desenvolvedores e o Serpro, empresa Federal
  • Naquela pesquisa que citei antes, temos os seguintes números para Objetivos das Aplicações que estavam sendo desenvolvidas – aqui valiam multiplas respostas.
  • Aqui temos a distribuição da Natureza das Aplicações.
  • Aqui temos quais eram as metas desses profissionais para o futuro de suas aplicações
  • E aqui temos algumas razões do porque o PHP foi adotado por eles. Vejam que a Velocidade de Desenvolvimento é um grande atrativo. Por que?
  • Basicamente o Workflow de Desenvolvimento do PHP é “Codificar” e Atualizar o Navegador
  • Eu prefiro um cenário pouco mais completo, mas tão eficiente quanto: escrever testes, testar, codificar e então visualizar.
  • Aqui eu faço uma pequena demonstração de código. Em breve teremos exemplos no Github :)
  • E não poderia deixar de citar algo que é essencial para o PHP: a Comunidade!
    Que cuida de sua documentação (que diga-se de passagem é uma das melhores entre as atuais plataformas de desenvolvimento), bug fixes, desenvolvimento da linguagem em si, eventos, disseminação de conhecimento, por meio de diversos grupos espalhados pelo globo. Temos diversos grupos aqui no Brasil e com certeza você vai encontrar ajuda seja onde estiver neste país.
  • Então, o que é PHP?
    Um ecossistema de desenvolvimento, contemplando Comunidades e Empresas, com ferramentas sem fim para um bom e eficiente desenvolvimento. Baseando-se em uma linguagem de programação multi paradigma e repleta de funcionalidades. Esse ecossistema está pronto para qualquer tipo de projeto, tradicional, embarcado ou em nuvem.
    Sim é uma opção viável para qualquer empresa ou projeto pela sua eficiência, qualidade e mercado de profissionais abundante.
    Se você não conhece, o que está esperando?
    Comece por http://php.net :D
  • Aqui alguma maneiras de entrar em contato comigo.
    Até a próxima!
  • O PHP Mudou, você deveria fazer o mesmo

    1. 1. O PHP Mudou você deveria fazer o mesmo O PHP Mudou você deveria fazer o mesmo
    2. 2. PHP? Sério? PHP? Sério?
    3. 3. Mente AbertaMente Aberta
    4. 4. “Tecnologias de Desenvolvimento vão muito além do Código, devendo ser avaliadas pelo Ecossistema que as suporta” “Tecnologias de Desenvolvimento vão muito além do Código, devendo ser avaliadas pelo Ecossistema que as suporta”
    5. 5. O que é PHP?O que é PHP?
    6. 6. Que tal uma volta no tempo?Que tal uma volta no tempo?
    7. 7. Florianópolis 8 de Junho de 1995 Florianópolis 8 de Junho de 1995
    8. 8. PHP Tools 1.0PHP Tools 1.0
    9. 9. Sim, o PHP já foi assim...Sim, o PHP já foi assim...
    10. 10. 1997 20 Milhões de domínios rodam PHP 1997 20 Milhões de domínios rodam PHP
    11. 11. Rasmus, Zeev e AndiRasmus, Zeev e Andi
    12. 12. PHP Hypertext Preprocessor PHP Hypertext Preprocessor
    13. 13. PHP4 Zend Engine PHP4 Zend Engine
    14. 14. Anos 2000, mas...Anos 2000, mas...
    15. 15. Anos 2000, mas...Anos 2000, mas...
    16. 16. 2004, começa uma nova era 2004, começa uma nova era
    17. 17. PHP 5PHP 5 Zend Engine 2Zend Engine 2 Mais Performance, GarbageMais Performance, Garbage CollectorCollector Melhorias de parsing e cachingMelhorias de parsing e caching Suporte em Orientação a ObjetosSuporte em Orientação a Objetos Visibilidade, Type Hint/testVisibilidade, Type Hint/test Interfaces, Exceptions, ReflectionInterfaces, Exceptions, Reflection Métodos eventuais (mágicos)Métodos eventuais (mágicos) Clonagem e ReferenciamentoClonagem e Referenciamento SPL (Standard PHP Library)SPL (Standard PHP Library)
    18. 18. 5.1 2005 5.1 2005 Melhorias na SPLMelhorias na SPL Mais performanceMais performance Melhoria no type hintingMelhoria no type hinting Constantes de classeConstantes de classe PDO (PHP Data Object)PDO (PHP Data Object)
    19. 19. 5.2 2006 5.2 2006 JsonJson FiltersFilters HTTPHTTP DatetimeDatetime
    20. 20. 5.3 2009 suporte da comunidade até 6/2014 5.3 2009 suporte da comunidade até 6/2014 NamespacesNamespaces Nested ExceptionsNested Exceptions Late Static BindingLate Static Binding Closures, LambdasClosures, Lambdas Adições SPLAdições SPL Mais PerformanceMais Performance FastCGIFastCGI Windows supportWindows support
    21. 21. 5.4 2012 suporte da comunidade até 3/2015 5.4 2012 suporte da comunidade até 3/2015 Yearly ReleaseYearly Release Embed Web ServerEmbed Web Server TraitsTraits Short ArrayShort Array Array DereferencingArray Dereferencing
    22. 22. 5.5 2013 suporte da comunidade até 6/2016 5.5 2013 suporte da comunidade até 6/2016 Zend OpcacheZend Opcache FinallyFinally GeneratorsGenerators Password HashingPassword Hashing
    23. 23. 5.6 (beta) 2014 suporte da comunidade até 6/2017 5.6 (beta) 2014 suporte da comunidade até 6/2017 Melhorias OpcacheMelhorias Opcache Uploads > 2GBUploads > 2GB VariadicsVariadics Constant ExpressionConstant Expression
    24. 24. PHP 6?PHP 6? UnicodeUnicode Internal API CleanInternal API Clean JIT CompilerJIT Compiler AnnotationsAnnotations Named ArgumentsNamed Arguments Scalar type hintScalar type hint HTTP2HTTP2 Userland APIUserland API Crypto ExtensionCrypto Extension C++C++ ......
    25. 25. QualidadeQualidade Testes UnitáriosTestes Unitários IntegraçãoIntegração ComportamentoComportamento Estilo de CódigoEstilo de Código Análise EstáticaAnálise Estática MessMess Copy & PasteCopy & Paste Dead CodeDead Code DebuggingDebugging ProfillingProfilling BuildBuild
    26. 26. Frameworks, Libraries e afins Frameworks, Libraries e afins Symfony, Zend, Phalcon, Laravel, Respect …Symfony, Zend, Phalcon, Laravel, Respect … Monolog, SwiftMailer, Smarty, Pimple...Monolog, SwiftMailer, Smarty, Pimple... APC, mongo, memcache, imagick, xdebug...APC, mongo, memcache, imagick, xdebug...
    27. 27. Uso de FrameworksUso de Frameworks 60% 40% 27% 17% Não usam Frameworks Usam ou pretendem usar Frameworks Não usam Frameworks Zend Framework Symfony Pesquisa UBM TechWeb com 232 executivos, arquitetos ou gerentes de desenvolvimento ativamente usand ou considrando usar o PHP –
    28. 28. Gerenciamento de Dependências Gerenciamento de Dependências PEAR e PECLPEAR e PECL Composer + PackagistComposer + Packagist
    29. 29. Framework Interoperability Group FIG Framework Interoperability Group FIG PSR PHP Standard Recommendation PSR PHP Standard Recommendation
    30. 30. IDEIDE
    31. 31. PHP para o NegócioPHP para o Negócio
    32. 32. 6ª em Popularidade (~3.7%) (atrás de C[,++,#,Objective] e Java) TIOBE Index – Março/2014 6ª em Popularidade (~3.7%) (atrás de C[,++,#,Objective] e Java) TIOBE Index – Março/2014 1ª no uso em servidores (~82%) (seguido de longe por ASP.NET e Java) w3techs – 7 de Abril/2014 1ª no uso em servidores (~82%) (seguido de longe por ASP.NET e Java) w3techs – 7 de Abril/2014
    33. 33. ParceriasParcerias
    34. 34. Ambientes CloudAmbientes Cloud
    35. 35. Application ServerApplication Server Zend ServerZend Server PackagingPackaging DeploymentDeployment TrackingTracking Clustering + HAClustering + HA Cloud ElasticityCloud Elasticity Metrics + TrendsMetrics + Trends Root AnalysisRoot Analysis
    36. 36. SuporteSuporte Comunidade PHPComunidade PHP 2 anos – Correções2 anos – Correções 3 anos – Atualizações de Segurança3 anos – Atualizações de Segurança Zend ServerZend Server 5 anos5 anos SymfonySymfony 8 meses8 meses LTS – 3 anosLTS – 3 anos
    37. 37. Empresas abraçando o PHPEmpresas abraçando o PHP
    38. 38. Objetivos das AplicaçõesObjetivos das Aplicações 50% Content Management Pesquisa UBM TechWeb com 232 executivos, arquitetos ou gerentes de desenvolvimento ativamente usand ou considrando usar o PHP – 46% Administração 46% Comunicação com Usuários 33% Visualização de Dados 28% Financeiro
    39. 39. Tipo das AplicaçõesTipo das Aplicações Web/Externas 64% Pesquisa UBM TechWeb com 232 executivos, arquitetos ou gerentes de desenvolvimento ativamente usand ou considrando usar o PHP – Web/Internas 62% Integração de Negócio 47% Sociais 25% Mobile 21%
    40. 40. ObjetivosObjetivos 3%3% 5%5% 6%6% 1%1% 27%27% 38%38% Expandir para novos mercados Construir comunidade Aumentar competitividade Melhorar experiência de usuario gerenciar aumento de demanda Aumentar eficiência Pesquisa UBM TechWeb com 232 executivos, arquitetos ou gerentes de desenvolvimento ativamente usand ou considrando usar o PHP – Maio/2012
    41. 41. Razões para usar PHPRazões para usar PHP Velocidade de Desenvolvimento 61% Pesquisa UBM TechWeb com 232 executivos, arquitetos ou gerentes de desenvolvimento ativamente usand ou considrando usar o PHP – É OpenSource 55% Pool de Profissionais 37% Curva de Aprendizado 36% Frameworks 25%
    42. 42. WorkflowWorkflow CódigoCódigo F5 ou Ctrl+R ;)F5 ou Ctrl+R ;)
    43. 43. Workflow melhor ;) Workflow melhor ;) CódigoCódigo F5 ou Ctrl+R ;)F5 ou Ctrl+R ;) TesteTeste Phpunit ...Phpunit ...
    44. 44. E hoje, como é o código PHP? E hoje, como é o código PHP?
    45. 45. ComunidadeComunidade
    46. 46. O que é PHP?O que é PHP?
    47. 47. PerguntasPerguntas??
    48. 48. duodra.coduodra.co phpsp.org.brphpsp.org.br o@duodra . coo@duodra . co @duodraco@duodraco fb.com/duodracofb.com/duodraco youtu.be/duodracodeyoutu.be/duodracode slideshare.net/duodracoslideshare.net/duodraco

    ×