SlideShare uma empresa Scribd logo
PHP NÃO é coisa   Felipe Ribeiro
                  http://feliperibeiro.com
    de moleque!   felipernb@gmail.com
Felipe Ribeiro
•Graduando (concluinte) em Ciência da Computação na
 UFCG
•Zend Certified Engineer
•Desenvolvedor Web há 7 anos, atualmente trabalhando
 para a startup Shoprizer.com
•Experiência em grids computacionais e sistemas
 distribuídos
•Membro fundador do grupo PHP-PB
•Contribuidor do PHP no Google Summer of
 Code 2009
Text


Enquanto .NET e Java
brigam, fazendo muito
             barulho...
PHP se
mantém como
 a tecnologia
 número 1 da
        Web.
Mesmo assim, alguns
  dizem que PHP é
 “coisa de moleque”
E por que o
  PHP carrega
essa má fama?
Por causa dos
    profissionais
desqualificados...
dos mitos...
E pela falta de
propaganda...
Esse cenário pode
mudar, só depende
da comunidade
Qualificação de profissionais
•PHP é fácil de aprender e sua flexibilidade permite que
 seja utilizado das mais diversas maneiras (boas ou
 ruins)

•Programadores Java normalmente precisam de uma
 formação mais sólida (orientação a objeto, padrões de
 projeto, eficiência de algoritmos, estruturas de dados, e
 etc.)

•BONS programadores PHP também
 precisam!!!
Marketing
•PHP não é produto de nenhum big player do mercado
 enterprise

•Mas já despertou o interesse de:

  •IBM
  •Oracle
  •Yahoo!
  •Microsoft
  •entre outros...
Marketing
•PHP está presente em mais de 25 milhões de sites

•Com tudo isso, pra que propaganda? A propaganda
 somos nós e tudo o que nós fazemos!
E que tal
esclarecermos
  os mitos?
PHP é uma linguagem
Mito #1 para Web, e por
   isso é muito limitada
Nunca
subestime a
       Web!
Nunca
           subestime a
                  Web!

É a plataforma
dominante da
nossa geração
Cloud
computing         SaaS



                Web
            Services
Algoritmos de alta
    complexidade
Algoritmos de alta
          complexidade
Indexação e busca
Recomendação de produtos
(Amazon) e músicas (Last.fm)
 Folksonomia e ranking
 (Delicious e Flickr)
Teoria dos Grafos (redes
sociais)
Além das
infraestruturas
sofisticadas
Além das
infraestruturas
sofisticadas
 Sistemas distribuídos
 Balanceamento de carga
 Escalar horizontalmente
Sistemas Web não são
mais tão simples quanto
eram há 10 anos
Mito #2 Códigos
 PHP são sujos
"PHP is not about purity in CS principles or
   architecture; it is about solving the ugly web
 problem with an admittedly ugly, but extremely
  functional and convenient solution. If you are
looking for purity, you are in the wrong boat. Get
    out now before you get hit by a wet cat!" -
                   Rasmus Lerdorf
interface Printer {
   void print(Message message);
}
                                                          class SystemOutPrinter implements Printer {
class Message {
                                                              public void print(Message message) {
    private String message;
                                                                  System.out.println(message);
    public Message(String message) {
                                                              }
       this.message = message;
    }
                                                          }
    public void print(Printer printer) {
                                                          public class HelloWorld {
       printer.print(this);
    }
                                                             public static void main(String[] args) {
                                                                Message message = new Message("Hello,
    public String toString() {
                                                          World!");
       return message;
                                                                AbstractPrinterFactory factory =
    }
                                                          AbstractPrinterFactory.getFactory();
}


                                                                                              m
                                                                Printer printer = factory.getPrinter();



                                                                                             e
                                                                message.print(printer);
abstract class AbstractPrinterFactory {
                                                             }



                                                                      ld
    public static AbstractPrinterFactory getFactory() {


                                                                    r
                                                          }
       return new SystemOutPrinterFactory();


                                                                  o !
    }

    public abstract Printer getPrinter();
                                                                 W A acia
                                                               lo AV rocr
}

class SystemOutPrinterFactory extends

                                                            e l J u
                                                          H
AbstractPrinterFactory {

    public Printer getPrinter() {
                                                                   ab
    }
       return new SystemOutPrinter();
                                                                             e su
}
Quem determina a
qualidade do código é
o programador!
Mito #3 PHP só serve
       para sistemas
           pequenos
T!
                                                                                           E                 os

                                                                                 .N
                                                                                                       a   d
                                                                                                  ic
                                                                                            rí st
                                                                               é        c te oft


                                                               so
                                                                                      ra ros
                                                                                  e ca ic

                                                            Is
                                                                                ad os M
                                                                          b ilid ut
                                                                        ta rod
                                                                  a   es p
                                                              E
P.S.: O orkut foi reescrito em Java, mas esse shot é dos velhos tempos de .NET
PHP não é coisa de moleque
PHP não é coisa de moleque
PHP não é coisa de moleque
PHP não é coisa de moleque
PHP não é coisa de moleque
PHP não é coisa de moleque
PHP não é coisa de moleque
Então PHP escala?
Então PHP escala?

        Linguagens de
     programação não
              escalam
Arquiteturas
escalam
Ea
   arquitetura
share-nothing
      do PHP
   simplifica a
escalabilidade
Mito #4 PHP não
  implementa OO
     “de verdade”
    OOP
• PHP5 trouxe:


  • Níveis de visibilidade




                   OOP
  • Exceptions


  • Interfaces


  • Type hinting


  • SPL - Standard PHP Library
• Frameworks MVC


  • Zend Framework




                    OOP
  • Symfony


  • CakePHP


  • Code Igniter


  • Prado, etc...
Mito #5 Não existem
              pacotes
    reutilizáveis e de
   qualidade em PHP
PEAR
Mito #6 Existem poucas
      ferramentas para
   desenvolvimento em
                  PHP
PHP não é coisa de moleque
PHP não é coisa de moleque
PHP não é coisa de moleque
PHP não é coisa de moleque
PHP não é coisa de moleque
PHPSpec
PHP não é coisa de moleque
PHP não é coisa de moleque
Mito #7 PHP é inseguro
Free/Open/NetBSD
são seguros?

   MS Windows® é
          seguro?
São todos escritos
principalmente em
        C
A linguagem de
programação não é
             o fator
   determinante na
  segurança de um
            sistema
Mito #8 PHP não está
pronto para aplicações
          “enterprise”
XML
PHP não é coisa de moleque
SOAP
PHP não é coisa de moleque
REST
PHP não é coisa de moleque
E o que podemos
esperar para o futuro?
PHP 5.3
•Namespaces

  Definição                          Uso
                         // diretamente
 namespace YahooNews;
                         $foo = new YahooNewsDir;
 class Dir {
     ...
                         // importando o namespace
 }
                         use YahooNews;
                         $foo = new NewsDir;

                         // renomeando a classe
                         use YahooNewsDir as YND;
                         $foo = new YND;
PHP 5.3
•Lambdas e closures


        $lambda = function () { 
            echo "Hello World!n";
        };
        $lambda();
PHP 5.3
•Lambdas e closures
      function getSomador($x) {
          return function ($y) use ($x) {
              return $x + $y;
          };
      }
      $somador = getSomador(10);

      echo $somador(5); //15
      echo $somador(32); //42
PHP 5.3
•SPL Datastructures

 •LinkedList / DoubleLinkedList
 •Stack
 •Queue / Priority Queue
 •Heap
PHP 5.3
•PHAR - PHP Archive

•Garbage collection

•Late static binding

•Outros refatoramentos e debugs
PHP 6 = PHP 5.3 +
Unicode
PHP não é coisa de moleque
Felipe Ribeiro
 felipernb@gmail.com
http://feliperibeiro.com
Referências
•PHP for Grown-ups
 Andrei Zmievski - http://gravitonic.com/talks

•Myths Defused
 Derick Rethans - http://talks.php.net/show/myths-
 ffm2008

•Programming Collective Inteligence - Toby Segaran -
 O’Reilly



                                       http://www.flickr.com/photos/nullalux/2261949240
http://elephpantgettingsome.files.wordpress.com/2008/02/elephpant1web.jpg
http://jjanaya.100webspace.net/wp-content/uploads/2008/08/king-kong-vs-godzilla.jpg
http://www.flickr.com/photos/bobbyuggles/232446009
http://www.flickr.com/photos/emagic/56206868
http://www.flickr.com/photos/andycastro/835453399/
http://www.flickr.com/photos/enigmatic/2901093490/
http://www.flickr.com/photos/kky/704056791/
http://www.flickr.com/photos/mscolly/145052885
http://flickr.com/photos/ripizzo/2310929170/
http://flickr.com/photos/zach_manchester/2302683790/
http://www.flickr.com/photos/docman/6107473
http://www.flickr.com/photos/mamabarns/747588843
http://flickr.com/photos/willpate/63814657/
http://flickr.com/photos/estherase/128983854/
http://www.flickr.com/photos/j_m_c/3406217735/
http://www.flickr.com/photos/oberazzi/318947873
http://www.flickr.com/photos/jaredchapman/482538719
http://www.flickr.com/photos/skeet-skeet/222026728/
http://www.flickr.com/photos/practicalowl/392894653/

Mais conteúdo relacionado

PDF
Dojo de Python
PDF
Python - Introdução
PDF
Python - Programação funcional
PDF
Minicurso Python
PDF
Python - Guia de bolso
PDF
Introdução à linguagem Python
PPTX
2016/01/27 - Aprendendo a programar com Python
PDF
Curso de Python e Django
Dojo de Python
Python - Introdução
Python - Programação funcional
Minicurso Python
Python - Guia de bolso
Introdução à linguagem Python
2016/01/27 - Aprendendo a programar com Python
Curso de Python e Django

Mais procurados (20)

PDF
M2ti - Python Brasil
PDF
Iteraveis e geradores em Python
PDF
Python: Iteraveis, geradores etc
PDF
Introdução a estruturas de dados em python
PDF
Introdução à Programação em Python
ODP
Python para desenvolvedores - material apoio (parte I)
PDF
Programando com Python
PDF
Python - Introdução Básica
PDF
Super Logo Comandos Para Movimentar A Tartaruga
PDF
Python para quem sabe Python (aula 2)
PDF
Introdução a Linguagem de Programação Python
PDF
Iteraveis e geradores
PDF
Introdução à linguagem de programação Python
PPT
Estruturas
ODP
Aula c++ estruturas de dados
PDF
Python Pythononcampus Uva 060609
ODP
Python: programação divertida novamente
PDF
Apresentação python fábio jr alves
PDF
Por que Python? - PythonBrasil[5] - 2009
PPTX
Recursividade
M2ti - Python Brasil
Iteraveis e geradores em Python
Python: Iteraveis, geradores etc
Introdução a estruturas de dados em python
Introdução à Programação em Python
Python para desenvolvedores - material apoio (parte I)
Programando com Python
Python - Introdução Básica
Super Logo Comandos Para Movimentar A Tartaruga
Python para quem sabe Python (aula 2)
Introdução a Linguagem de Programação Python
Iteraveis e geradores
Introdução à linguagem de programação Python
Estruturas
Aula c++ estruturas de dados
Python Pythononcampus Uva 060609
Python: programação divertida novamente
Apresentação python fábio jr alves
Por que Python? - PythonBrasil[5] - 2009
Recursividade
Anúncio

Semelhante a PHP não é coisa de moleque (20)

PDF
PHP não é coisa de moleque
PDF
Comandos de Controle de Programa em C
PPT
Aula5 introducao c
PPT
Aula5 introducao c
PDF
Algoritomos aula 3 rafael
PDF
Introdução à Linguagem de Programação C
PPT
PPTX
Linguagem C - Controle de Programa
PPTX
Introdução à Linguagem C
PPT
Introdução a Linguagem C
PDF
Sap – stablility and abstract principle
PPT
Curso Completo de Linguagem de Programação C
ODP
Calourada2010
PPT
Paradigmas de Linguagens de programacao - Aula #2
PDF
Aula09 traducaosin110
PDF
Introdução a linguagem c karen lowhany
PPTX
Aula 12 funcoes - Programação 1
PDF
Apostila c++ básico
PDF
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
PDF
Apostila c++ básico (1)
PHP não é coisa de moleque
Comandos de Controle de Programa em C
Aula5 introducao c
Aula5 introducao c
Algoritomos aula 3 rafael
Introdução à Linguagem de Programação C
Linguagem C - Controle de Programa
Introdução à Linguagem C
Introdução a Linguagem C
Sap – stablility and abstract principle
Curso Completo de Linguagem de Programação C
Calourada2010
Paradigmas de Linguagens de programacao - Aula #2
Aula09 traducaosin110
Introdução a linguagem c karen lowhany
Aula 12 funcoes - Programação 1
Apostila c++ básico
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila c++ básico (1)
Anúncio

Último (16)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Processos na gestão de transportes, TM100 Col18
Custos e liquidação no SAP Transportation Management, TM130 Col18
COBITxITIL-Entenda as diferença em uso governança TI
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Arquitetura de computadores - Memórias Secundárias
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Processos na gestão de transportes, TM100 Col18

PHP não é coisa de moleque