PHP não é coisa de moleque - FISL Edition

Preview:

DESCRIPTION

Apresentação feita por mim, Felipe Ribeiro, no FISL 10 em Porto Alegre - RS em 27/06/2009

Citation preview

PHP NÃO é coisa de moleque!

Felipe Ribeirohttp://feliperibeiro.comfelipernb@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 ofCode 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?

Mito #1 PHP é uma linguagem

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 buscaRecomendaçã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ódigosPHP 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 Message { private String message;

public Message(String message) { this.message = message; }

public void print(Printer printer) { printer.print(this); }

public String toString() { return message; }}

abstract class AbstractPrinterFactory { public static AbstractPrinterFactory getFactory() { return new SystemOutPrinterFactory(); }

public abstract Printer getPrinter();}

class SystemOutPrinterFactory extends AbstractPrinterFactory {

public Printer getPrinter() { return new SystemOutPrinter(); }

}

class SystemOutPrinter implements Printer { public void print(Message message) {

System.out.println(message);

}

}

public class HelloWorld {

public static void main(String[] args) { Message message = new Message("Hello, World!"); AbstractPrinterFactory factory = AbstractPrinterFactory.getFactory(); Printer printer = factory.getPrinter(); message.print(printer); }

}

Hello W

orld em

JAVA!

e sua burocracia

Quem determina a qualidade do código é o programador!

Mito #3 PHP só serve para sistemas

pequenos

Isso é .NET!

E a estabilidade caracterís

tica dos

produtos Microsoft

P.S.: O orkut foi reescrito em Java, mas esse shot é dos velhos tempos de .NET

Então PHP escala?

Então PHP escala?

Linguagens de programação não

escalam

Arquiteturas escalam

E a arquitetura

share-nothing do PHP

simplifica a escalabilidade

OOP

Mito #4 PHP não implementa OO

“de verdade”

OOP

• PHP5 trouxe:

• Níveis de visibilidade

• Exceptions

• Interfaces

• Type hinting

• SPL - Standard PHP Library

OOP

• Frameworks MVC

• Zend Framework

• 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

PHPSpec

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

SOAP

REST

E o que podemos esperar para o futuro?

PHP 5.3

•Namespaces

namespace Yahoo\News; class Dir {     ... }

Definição Uso// diretamente $foo = new Yahoo\News\Dir;

// importando o namespace use Yahoo\News; $foo = new News\Dir;

// renomeando a classeuse Yahoo\News\Dir as YND; $foo = new YND;

PHP 5.3

•Lambdas e closures

$lambda = function () {  echo "Hello World!\n"; }; $lambda();

PHP 5.3

•Lambdas e closuresfunction getSomador($x) {     return function ($y) use ($x) {         return $x + $y;     }; } $somador = getSomador(10);

echo $somador(5); //15echo $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

Felipe Ribeirofelipernb@gmail.com

http://feliperibeiro.com

Referências

•PHP for Grown-upsAndrei Zmievski - http://gravitonic.com/talks

•Myths DefusedDerick 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.jpghttp://jjanaya.100webspace.net/wp-content/uploads/2008/08/king-kong-vs-godzilla.jpghttp://www.flickr.com/photos/bobbyuggles/232446009http://www.flickr.com/photos/emagic/56206868http://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/145052885http://flickr.com/photos/ripizzo/2310929170/http://flickr.com/photos/zach_manchester/2302683790/http://www.flickr.com/photos/docman/6107473http://www.flickr.com/photos/mamabarns/747588843http://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/318947873http://www.flickr.com/photos/jaredchapman/482538719http://www.flickr.com/photos/skeet-skeet/222026728/http://www.flickr.com/photos/practicalowl/392894653/