65
Software livre e padrões abertos no desenvolvimento Web Felipe Ribeiro [email protected] http://feliperibeiro.com @felipernb Saturday, September 19, 2009

Software livre e padrões abertos no desenvolvimento Web

Embed Size (px)

DESCRIPTION

Palestra apresentada no Software Freedom Day 2009 em Campina Grande - PB sobre a importância do uso de padrões abertos e o PHP como uma solução de software livre para desenvolvimento Web

Citation preview

Page 1: Software livre e padrões abertos no desenvolvimento Web

Software livre e padrões abertos no desenvolvimento

Web

Felipe [email protected]://feliperibeiro.com@felipernb

Saturday, September 19, 2009

Page 2: Software livre e padrões abertos no desenvolvimento Web

Felipe Ribeiro

•Graduando (concluinte) em Ciência da Computação na UFCG

•Zend Certified Engineer - PHP5

•Trabalha com desenvolvimento Web, atualmente na startup Shoprizer.com

•Membro fundador do grupo PHP-PB

•Contribuidor do PHP no Google Summer ofCode 2009

•Ex-contribuidor do projeto Mozilla Camino

Saturday, September 19, 2009

Page 3: Software livre e padrões abertos no desenvolvimento Web

A Web

Saturday, September 19, 2009

Page 4: Software livre e padrões abertos no desenvolvimento Web

A Web

Softwares distintos se comunicando, independente de plataforma, fornecedor e linguagem de programação

Saturday, September 19, 2009

Page 5: Software livre e padrões abertos no desenvolvimento Web

Como é possível?

Saturday, September 19, 2009

Page 6: Software livre e padrões abertos no desenvolvimento Web

Como é possível?

TCP/IP HTTP

HTML CSS

Saturday, September 19, 2009

Page 7: Software livre e padrões abertos no desenvolvimento Web

Padrões abertos são padrões disponíveis para livre acesso e

implementação, que independem de royalties e outras taxas e sem

discriminação de uso.

Padrões abertos

Saturday, September 19, 2009

Page 8: Software livre e padrões abertos no desenvolvimento Web

Porque padrões abertos são

importantes?

Saturday, September 19, 2009

Page 9: Software livre e padrões abertos no desenvolvimento Web

Em alguns lugares do oriente médio, esse gesto...

Saturday, September 19, 2009

Page 10: Software livre e padrões abertos no desenvolvimento Web

Então é melhor usar algo que todos possam

entender!

seria interpretado assim...

Saturday, September 19, 2009

Page 11: Software livre e padrões abertos no desenvolvimento Web

W3C é um consórcio de empresa que regulamenta os padrões da Web, entre eles:

• HTML

• XML

• XHTML

• XPath

• XQuery

• XSLT

• CSS

• SVG

• SOAP, WSDL (Web Services)

• OWL (Web Semântica)

Saturday, September 19, 2009

Page 12: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 13: Software livre e padrões abertos no desenvolvimento Web

•Desenho vetorial em Canvas•Armazenamento de informação no cliente•Drag-and-drop•Tags para vídeo e áudio, evitando a necessidade de

plugins•Polêmica na escolha do padrão de vídeo

•Ogg Theora - Padrão aberto•H.264 - Padrão proprietário

•Animações•Entre outras coisas

HTML5

Saturday, September 19, 2009

Page 14: Software livre e padrões abertos no desenvolvimento Web

A maioria dos servidores Web roda software livre

Saturday, September 19, 2009

Page 15: Software livre e padrões abertos no desenvolvimento Web

LAMP

LinuxApacheMySQLPHP

Saturday, September 19, 2009

Page 16: Software livre e padrões abertos no desenvolvimento Web

E isso presta?Na universidade eu aprendi que Java

é a solução para todos os meus problemas.

Quem usa PHP?

Saturday, September 19, 2009

Page 17: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 18: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 19: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 20: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 21: Software livre e padrões abertos no desenvolvimento Web

delicious

Saturday, September 19, 2009

Page 22: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 23: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 24: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 25: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 26: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 27: Software livre e padrões abertos no desenvolvimento Web

É... parece que vale a pena conhecer...

Saturday, September 19, 2009

Page 28: Software livre e padrões abertos no desenvolvimento Web

"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 LerdorfSaturday, September 19, 2009

Page 29: Software livre e padrões abertos no desenvolvimento Web

1993

Saturday, September 19, 2009

Page 30: Software livre e padrões abertos no desenvolvimento Web

1993

<HTML> <HEAD> <TITLE>My Personal Home Page</TITLE> </HEAD> <BODY> This is my cool page<P> And look at my counter<P> <IMG SRC="/cgi-bin/counter.pl"> </BODY></HTML>

Saturday, September 19, 2009

Page 31: Software livre e padrões abertos no desenvolvimento Web

1994<!--getenv HTTP_USER_AGENT--><!--ifsubstr $exec_result Mozilla-->Hey, you are using Netscape!<p><!--endif-->

<!--sql database select * from table where user='$username'-->

<!--ifless $numentries 1-->Sorry, that record does not exist<p><!--endif exit-->

Welcome <!--$user-->!<p>You have <!--$index:0--> credits left in your account.<p>

<!--include /text/footer.html-->

Saturday, September 19, 2009

Page 32: Software livre e padrões abertos no desenvolvimento Web

1995

<? $name = "bob"; $db = "db"; $result = msql($db,"select * from table where firstname='$name'"); $num = msql_numrows($result); echo "$num records found!<p>"; $i=0; while($i<$num); echo msql_result($result,$i,"fullname"); echo "<br>"; echo msql_result($result,$i,"address"); echo "<br>"; $i++; endwhile;>

Saturday, September 19, 2009

Page 33: Software livre e padrões abertos no desenvolvimento Web

2005<?phpclass db { protected static $dbh = false;

function connect() { self::$dbh = new PDO('mysql:host=localhost;dbname=test','user','pass'); self::$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }}

class items extends db { function load($name) { if(!self::$dbh) $this->connect(); try { if(!self::$dbh) $this->connect(); $stmt = self::$dbh->prepare("SELECT * FROM items WHERE firstname=:name ORDER by ctime desc"); $ret = $stmt->execute(array('name'=>$name)); } catch (PDOException $e) { die($e->getMessage()); } return $ret; }}

?>

Saturday, September 19, 2009

Page 34: Software livre e padrões abertos no desenvolvimento Web

2009Closures

<?php$getClosure = function($v) { return function() use($v) { echo "Hello World: $v!\n"; };};

$closure = $getClosure(2);$closure();?>

Saturday, September 19, 2009

Page 35: Software livre e padrões abertos no desenvolvimento Web

2009Namespaces

<?php

namespace foo;

class bar { function __construct() { echo get_called_class(); }}?>

Saturday, September 19, 2009

Page 36: Software livre e padrões abertos no desenvolvimento Web

Que ferramentas utilizar no

desenvolvimanto?

Saturday, September 19, 2009

Page 37: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 38: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 39: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 40: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 41: Software livre e padrões abertos no desenvolvimento Web

PHP é seguro?

Saturday, September 19, 2009

Page 42: Software livre e padrões abertos no desenvolvimento Web

Free/Open/NetBSD são seguros?

MS Windows® é seguro?

Saturday, September 19, 2009

Page 43: Software livre e padrões abertos no desenvolvimento Web

São todos escritos principalmente em

C!

Saturday, September 19, 2009

Page 44: Software livre e padrões abertos no desenvolvimento Web

A linguagem de programação não é

o fator determinante na

segurança de um sistema

Saturday, September 19, 2009

Page 45: Software livre e padrões abertos no desenvolvimento Web

PHP está pronto para aplicações “enterprise”?

Saturday, September 19, 2009

Page 46: Software livre e padrões abertos no desenvolvimento Web

XML

Saturday, September 19, 2009

Page 47: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 48: Software livre e padrões abertos no desenvolvimento Web

SOAP

Saturday, September 19, 2009

Page 49: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 50: Software livre e padrões abertos no desenvolvimento Web

REST

Saturday, September 19, 2009

Page 51: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 52: Software livre e padrões abertos no desenvolvimento Web

JSON

Saturday, September 19, 2009

Page 53: Software livre e padrões abertos no desenvolvimento Web

JSON

Saturday, September 19, 2009

Page 54: Software livre e padrões abertos no desenvolvimento Web

Existem pacotes reutilizáveis em

PHP?

Saturday, September 19, 2009

Page 55: Software livre e padrões abertos no desenvolvimento Web

PEAR

Saturday, September 19, 2009

Page 56: Software livre e padrões abertos no desenvolvimento Web

PEAR

PHPExtension and Application Repository

Saturday, September 19, 2009

Page 57: Software livre e padrões abertos no desenvolvimento Web

Saturday, September 19, 2009

Page 58: Software livre e padrões abertos no desenvolvimento Web

• Pacotes escritos por membros ativos da comunidade PHP

• Tudo testado por um time exigente de controle de qualidade.

• Gerenciamento “a la apt-get”:Ex.: pear install Logpear upgrade PHPUnitpear uninstall Text_CAPTCHA

Saturday, September 19, 2009

Page 59: Software livre e padrões abertos no desenvolvimento Web

Frameworks

Para todos os gostos, dos mais “Java-like” aos mais “Rails-like”

Saturday, September 19, 2009

Page 60: Software livre e padrões abertos no desenvolvimento Web

Frameworks

Saturday, September 19, 2009

Page 61: Software livre e padrões abertos no desenvolvimento Web

E o mercado?Saturday, September 19, 2009

Page 62: Software livre e padrões abertos no desenvolvimento Web

PHP é a linguagem mais popular da Web

O desenvolvimento de aplicações é rápido e menos custoso

Startups surgem todos os dias

Saturday, September 19, 2009

Page 63: Software livre e padrões abertos no desenvolvimento Web

Grandes players estão investindo no PHP

IBMYahoo!Microsoft

Mercado amadurecido e certificações

Saturday, September 19, 2009

Page 64: Software livre e padrões abertos no desenvolvimento Web

Quer saber mais

sobre o PHP?

Grupo de desenvolvedores PHP da ParaíbaIII Encontro será no dia 31/10/2009 no

SEBRAE em João Pessoa

Saturday, September 19, 2009

Page 65: Software livre e padrões abertos no desenvolvimento Web

<?php

echo("Dúvidas?");

$contato = array( "nome" => "Felipe Ribeiro", "email" => "[email protected]", "blog" => "http://feliperibeiro.com", "twitter" => "@felipernb");

var_dump($contato);

?>

Saturday, September 19, 2009