Files
archived-doc-pt-br/appendices/history.xml
2025-09-01 13:26:14 -03:00

456 lines
21 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: fecf93309b34b59e23dda35530d83b0f1b05ab84 Maintainer: leonardolara Status: ready --><!-- CREDITS: felipe, surfmax, diegopires, fibbarth -->
<appendix xml:id="history" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>História do PHP e Projetos Relacionados</title>
<para>
O PHP já percorreu um longo caminho desde seu nascimento em meados da década de 1990.
De origens humildes até se tornar uma das mais proeminentes
linguagens que alimentam a web, a evolução do PHP é um conto
de fadas geek. Lembre-se, esse crescimento explosivo não foi fácil.
Aqueles que se interessam em ver brevemente como PHP cresceu
para se tornar o que é hoje, continue lendo. Se gostaria de tocar um pedaço
da história da internet, você pode encontrar antigas versões do PHP
no <link xlink:href="&url.php.museum;">Museu do PHP</link>.
</para>
<sect1 xml:id="history.php">
<title>História do PHP</title>
<sect2 xml:id="history.phpfi">
<title>PHP Tools, FI, Kit de Construção, e PHP/FI</title>
<para>
O PHP como é conhecido hoje, é na verdade o sucessor para um
produto chamado PHP/FI. Criado em 1994 por Rasmus Lerdof,
a primeira encarnação do PHP foi um simples conjunto
de binários Common Gateway Interface (CGI) escrito em
linguagem de programação C. Originalmente usado para
acompanhamento de visitas para seu currículo online,
ele nomeou o conjunto de scripts de "Personal Home Page Tools" mais frequentemente referenciado como "PHP Tools."
Ao longo do tempo, mais funcionalidades foram desejadas, e Rasmus
reescreveu o PHP Tools, produzindo uma implementação maior e mais rica.
Este novo modelo foi capaz de interações com Banco de Dados e mais,
fornecendo uma estrutura na qual os usuários poderiam desenvolver aplicações web
simples e dinâmicas, como um livro de visitas. Em junho de 1995,
Rasmus <link xlink:href="&url.php.release1.0.0;">liberou</link>
o código fonte do PHP Tools para o público, o que permitiu
que desenvolvedores usassem da forma como desejassem. Isso permitiu — e encorajou
— usuários a fornecerem correções para problemas no código, e em geral,
aperfeiçoá-lo.
</para>
<para>
Em setembro do mesmo ano, Rasmus expandiu o PHP e — por um breve período
— mudou o nome PHP. Agora referindo-se a ferramenta como FI,
abreviação para "Forms Interpreter", a nova implementação
incluiu algumas funcionalidades básicas do PHP como bem conhecemos
hoje. Tinha variáveis no estilo Perl, interpretação automática de
variáveis de formulários, e sintaxe HTML embutida. A sintaxe em si era muito
similar à do Perl, porém muito mais limitada, simples, e um pouco inconsistente.
De fato, para embutir o código em um arquivo HTML, desenvolvedores tinham que usar comentários
HTML. Embora este método não tenha sido inteiramente
bem-recebido, FI continuou a desfrutar de um crescimento
e uma aceitação como uma ferramenta CGI — mas ainda não como uma linguagem.
Contudo, isso começou a mudar no mês seguinte; em outubro de 1995 Rasmus liberou
uma completa reescrita do código. Trazendo de volta o nome PHP, estava agora (brevemente) nomeado
como "Personal Home Page Contruction
Kit" e foi o primeiro lançamento a vangloriar-se de que era, na época,
considerado um script avançado de interface. A linguagem foi
desenvolvida para, deliberadamente, ser parecida com C, tornando-a fácil
de ser adotada por desenvolvedores habituados com C, Perl e linguagens similares.
Tendo sido até este momento exclusiva para sistemas UNIX e sistemas compatíveis com POSIX,
o potencial para uma implementação em um Windows NT começava a ser explorada.
</para>
<para>
O código tem outra reforma completa, e em abril de 1996,
combinando os nomes dos últimos lançamentos, Rasmus introduziu
o PHP/FI. Esta segunda geração da implementação começou realmente
a evoluir o PHP a partir de um conjunto de ferramentas para sua própria linguagem de programação.
Ele incluía suporte embutido aos banco de dados DBM, mSQL, e Postgres95,
cookies, funções de apoio definidas pelo usuário, e muito mais.
Em junho, o PHP/FI ganhou o status de versão 2.0. Um interessante fato
sobre isso, porém, é que existia apenas um única completa versão do PHP 2.0.
Quando finalmente se tornou um status beta em novembro de 1997, o mecanismo
de análise subjacente já estava inteiramente reescrito.
</para>
<para>
Apesar de ter tido um curto período de desenvolvimento, ele continuava
a desfrutar de uma crescente popularidade em um mundo web ainda jovem e em desenvolvimento.
Em 1997 e 1998, PHP/FI teve o apoio de milhares de usuários
ao redor do mundo.
Uma pesquisa da Netcraft em maio de 1998 indicou que cerca de 60.000 domínios
relataram ter cabeçalhos contendo "PHP",
indicando que o servidor de hospedagem de fato tinha o PHP instalado.
Este número pode ser equiparado com aproximadamente 1% de todos os domínios
da Internet da época. Apesar destes números impressionantes, o amadurecimento
do PHP/FI foi condenado a limitações; enquanto havia vários contribuintes menores,
ainda era desenvolvido principalmente por uma única pessoa.
</para>
<para>
<example>
<title>Exemplo de código PHP/FI</title>
<programlisting role="html">
<![CDATA[
<!--include /text/header.html-->
<!--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-->
]]>
</programlisting>
</example>
</para>
</sect2>
<sect2 xml:id="history.php3">
<title>PHP 3</title>
<para>
PHP 3.0 foi a primeira versão que se assemelhava com o PHP como existe
hoje. PHP/FI encontrava-se ainda ineficiente e não tinha os recursos que precisavam
para prover uma aplicação de comércio eletrônico que estavam desenvolvendo para um
projeto da Universidade. Andi Gutmans e
Zeev Suraski de Tel Aviv, Israel, começaram
outra completa reescrita do interpretador em 1997.
Abordando Rasmus online, eles discutiram vários aspectos para a
implementação e o desenvolvimento do PHP. Em um esforço para melhorar o mecanismo
e iniciar a construção sobre a base de usuários existentes
do PHP/FI, Andi, Rasmus, e Zeev decidiram colaborar no desenvolvimento
de uma linguagem de programação nova e independente.
Essa nova linguagem foi lançada com um novo nome, que removeu
a impressão do uso pessoal limitado que o nome PHP/FI 2.0 tinha mantido.
Foi renomeado simplesmente para 'PHP', com o significado se tornando
um acrônimo recursivo — PHP: Hypertext Preprocessor.
</para>
<para>
Um dos maiores pontos fortes do PHP 3.0 foram os fortes recursos de
extensibilidade. Além de fornecer a usuários finais uma interface robusta
para múltiplos banco de dados, protocolos e APIs, a facilidade
de estender a sua própria linguagem atraiu dezenas de desenvolvedores
que submeteram uma variedade de módulos. Indiscutivelmente, esta foi
a chave para o PHP 3.0 ter sido um tremendo sucesso. Outro recurso chave
introduzido no PHP 3.0 foi o suporte à programação orientada
a objeto e a uma mais poderosa e consistentes sintaxes de linguagem.
</para>
<para>
Em junho de 1998, com muitos novos desenvolvedores ao redor do mundo unindo
esforços, o PHP 3.0 foi anunciado pelo novo time de desenvolvimento
como o sucessor oficial para o PHP/FI 2.0. As melhorias no PHP/FI 2.0,
cessaram em novembro do ano anterior e ele foi oficialmente finalizado.
Depois de nove meses de testes abertos ao público, quando o anúncio do lançamento
oficial do PHP 3.0 chegou, prontamente foi instalado em
70.000 domínios em todo mundo,
e já não era mais limitado aos sistemas
operacionais compatíveis com o POSIX.
Uma parcela relativamente pequena de domínios informaram que o PHP foi instalado
em servidores executando Windows 95, 98 e NT e Macintosh. Em seu pico,
o PHP 3.0 foi instalado em aproximadamente 10%
dos servidores web da internet.
</para>
</sect2>
<sect2 xml:id="history.php4">
<title>PHP 4</title>
<para>
No inverno de 1998, logo após o PHP 3.0 ter sido oficialmente
lançado, Andi Gutmans e Zeev Suraski começaram a trabalhar
em uma reescrita do núcleo do PHP. Os objetivos do projeto
eram melhorar o desempenho das aplicações complexas e melhorar
a modularização do código base do PHP. Tais aplicações só foram
possíveis pelos novos recursos e suporte a uma ampla
variedade de bancos de dados de terceiros e APIs do PHP 3.0, mas o PHP 3.0 não foi projetado para trabalhar com aplicações
complexas de forma eficiente.
</para>
<para>
O novo mecanismo, chamado 'Zend Engine' (composto pelos primeiros
nomes, Zeev e Andi), alcançou os objetivos do projeto com sucesso
e foi introduzido em meados de 1999. O PHP 4.0, baseado neste mecanismo
e com uma variedade de novos recursos adicionais, foi oficialmente
lançado em maio de 2000,
quase dois anos após seu antecessor. Além
da altíssima melhoria de desempenho nesta versão, o PHP 4.0 incluiu
outros recursos chaves, tais como suporte para maioria dos servidores
web, sessões HTTP, saídas com buffer, mais maneiras seguras de manipular
dados de entrada de usuários e diversas novas construções de linguagem.
</para>
</sect2>
<sect2 xml:id="history.php5">
<title>PHP 5</title>
<para>
O PHP 5 foi lançado em julho de 2004 após um longo desenvolvimento e vários
pré-lançamentos. Foi impulsionado principalmente pelo seu núcleo, o
<literal>Zend Engine 2.0</literal>, com um novo modelo de objeto
e dezenas de outros novos recursos.
</para>
<para>
O time de desenvolvimento do PHP incluiu dezenas de desenvolvedores, também
dezenas de outros trabalhando em algo relacionado ao PHP e apoio a
projetos como PEAR, PECL, documentação, infra-estrutura de
rede subjacente de bem mais de uma centena de servidores web,
em seis dos sete continentes do mundo. Embora seja apenas uma estimativa baseada
em estatísticas de anos anteriores, é seguro presumir
que o PHP estaria instalado em dezenas, ou mesmo talvez
centenas, de milhões de domínios em todo o mundo.
</para>
</sect2>
<sect2 xml:id="history.php6">
<title>PHP 6</title>
<para>
O plano para o PHP 6 era fornecer suporte total para Unicode tanto no
mecanismo quanto na linguagem. Este trabalho foi abandonado mais tarde, porém outros
recursos que estavam projetados para o PHP 6 foram incorporados
ao PHP 5.3 (<link linkend="language.namespaces">namespaces</link>)
e ao PHP 5.4 (<link linkend="language.oop5.traits">trait</link> e
sintaxe "curta" de array).
</para>
</sect2>
<sect2 xml:id="history.php7">
<title>PHP 7</title>
<para>
O PHP 7.0 foi lançado em 2015 e apresentou outra versão principal do
núcleo, <literal>Zend Engine 3.0</literal>, que incluiu
melhorias significativas de desempenho (até duas vezes mais rápido que o PHP
5.6) e de uso de memória, suporte consistente a 64 bits, melhorias em
exceções, um gerador de números aleatórios seguro, o
<link linkend="language.operators.comparison.coalesce">operador de coalescência
nula (??)</link>, <link linkend="language.oop5.anonymous">classes
anônimas</link>, e outros recursos.
</para>
<para>
Versões posteriores da série do PHP 7 introduziram mais recursos de linguagem
tais como a <link linkend="function.list">sintaxe de lista curta</link> (7.1),
parâmetro de objeto e declaração de tipo de retorno (7.2), um novo
<link linkend="language.types.string.syntax.heredoc">heredoc</link> flexível
e a sintaxe <link linkend="language.types.string.syntax.nowdoc">nowdoc</link>
(7.3), propriedades tipadas (7.4), e uma nova
<link linkend="class.ffi">interface para funções externas</link> (7.4).
</para>
</sect2>
<sect2 xml:id="history.php8">
<title>PHP 8</title>
<para>
Lançado em 2020, o PHP 8 foi outra grande atualização da linguagem.
Continha muitos novos recursos e otimizações incluindo
<link linkend="functions.named-arguments">argumentos nomeados</link>,
<link linkend="language.types.declarations.composite.union">tipos de
união</link>, <link linkend="language.attributes">atributos</link>,
<link linkend="language.oop5.decon.constructor.promotion">promoção de
propriedade de construtor</link>,
expressões <link linkend="control-structures.match"><literal>match</literal></link>,
o <link linkend="language.oop5.basic.nullsafe">operador nulo seguro
(<literal>?-></literal>)</link>, um novo compilador JIT otimizante
e melhorias no sistema de tipagem, na manipulação de erros e na consistência.
</para>
<para>
Versões posteriores da série do PHP 8 introduziram novos recursos de linguagem
incluindo <link linkend="language.enumerations">enumerações</link> (8.1),
<link linkend="language.fibers">fibers</link> (8.1),
<link linkend="language.oop5.basic.class.readonly">classes somente-leitura</link> (8.2),
Tipos de Forma Normal Disjuntiva (DNF) (8.2), e constantes de classe
tipadas (8.3).
</para>
</sect2>
</sect1>
<sect1 xml:id="history.php.related">
<title>História de projetos relacionados ao PHP</title>
<!-- Hope Stig and/or Egon can do this
<sect2 xml:id="history.phpdoc">
<title>PHP Documentation Project</title>
<para>
</para>
</sect2>
-->
<sect2 xml:id="history.pear">
<title>PEAR</title>
<para>
<link xlink:href="&url.php.pear;">PEAR</link>, que significa <literal>PHP Extension and
Application Repository</literal> (originalmente, PHP Extension and Add-on
Repository) é a base de classes PHP e pode crescer no futuro para ser uma
das formas chave para distribuir extensões PHP
entre os desenvolvedores.
</para>
<para>
PEAR nasceu em discussões de encontros realizados por desenvolvedores PHP
(PDM) realizado em janeiro de 2000 em Tel Aviv.
Foi criado por Stig S. Bakken,
e é dedicado à sua primeira filha, Malin Bakken.
</para>
<para>
Desde o início de 2000, PEAR cresceu para ser um projeto
grande e significativo com um grande número de desenvolvedores
trabalhando para implementar funcionalidades comuns e
reutilizáveis para benefício
da comunidade PHP. PEAR hoje inclui uma ampla variedade de
classes para acesso a banco de dados, cache de conteúdo,
cálculos matemáticos, comércio eletrônico e muito mais.
</para>
<para>
Mais informações sobre PEAR podem ser encontradas
<link xlink:href="&url.php.pear.manual;">no manual</link>.
</para>
</sect2>
<sect2 xml:id="history.phpqa">
<title>Iniciativa de Garantia da Qualidade do PHP</title>
<para>
O <link xlink:href="&url.php.prerelease;">PHP Quality Assurance
Initiative</link> foi criado no verão de 2000 (no hemisfério norte), em resposta a
críticas de que versões do PHP não estavam sendo suficientemente bem testados
para o ambiente de produção.
O time agora consistia em um grupo de desenvolvedores
com um bom entendimento do código base do PHP.
Esses desenvolvedores gastaram muito de seu tempo localizando e
corrigindo os problemas do PHP. Além disso, houve muitos outros membros
do time que testavam e davam retorno de suas correções usando
uma ampla variedade de plataformas.
</para>
</sect2>
<sect2 xml:id="history.phpgtk">
<title>PHP-GTK</title>
<para>
<link xlink:href="&url.php.gtk;">PHP-GTK</link> é a solução PHP para escrever
aplicações GUI no lado do cliente. Andrei Zmievski nos recorda o processo de
planejamento e criação:
</para>
<blockquote>
<para>
Programação GUI foi sempre do meu interesse, e eu achei
o Gtk+ um utilitário muito fácil, exceto que programar com ele em C é
pouco tedioso.
Depois de testemunhar aplicações PyGtk e GTK-Perl, eu decidi ver se o PHP
poderia fazer uma interface com Gtk+, mesmo que pequena.
Iniciei em agosto de 2000, quando comecei a ter um pouco mais de tempo livre, e
iniciei os experimentos. Minha principal diretriz foi a implementação PyGtk pois possuía
recursos bastante completos e uma boa interface de orientação a objetos.
James Henstridge, o autor de PyGtk, forneceu muitos conselhos úteis durante os estágios
iniciais.
</para>
<para>
Escrever as interfaces para todas as funções Gtk+ ficou fora de questão,
então eu aproveitei a ideia de gerar código, similar
a como o PyGtk tinha sido feito. O gerador de código é um programa PHP que lê
um conjunto de arquivos <filename>.defs</filename> contendo as classes Gtk+,
constantes, e informações de métodos e gera o código C que faz a interface com o PHP.
O que não pode ser gerado automaticamente pode ser escrito manualmente no arquivo
<filename>.overrides</filename>.
</para>
<para>
Trabalhar em um gerador de código e sua infra-estrutura levou algum tempo,
pois eu tinha pouco tempo para trabalhar no PHP-GTK durante o outono de 2000.
Depois que mostrei o PHP-GTK para Frank Kromann, ele ficou interessado
e começou ajudando-me com o gerador de código e em implementações
de Win32. Quando nós escrevemos o primeiro programa "Hello World" e executamos,
ficamos muito emocionados.
Levou dois ou mais meses para começar o projeto
em uma condição apresentável e a versão inicial foi lançada em 1º de março de 2001.
A história rapidamente chegou ao SlashDot.
</para>
<para>
Sentindo que PHP-GTK podia ser extensível, montei em separado uma lista de e-mails,
um repositório CVS para isto e também um website gtk.php.net com a ajuda
de Colin Viebrock.
Também foi preciso montar a documentação e
James Moore veio a ajudar com isto.
</para>
<para>
Desde seu lançamento, o PHP-GTK foi ganhando popularidade. Nós tivemos
nosso próprio time de documentação, o manual continua melhorando,
pessoas começaram a escrever extensões para o PHP-GTK, e mais
aplicações foram feitas com ele.
</para>
</blockquote>
</sect2>
</sect1>
<sect1 xml:id="history.php.books">
<title>Livros sobre PHP</title>
<para>
Como o PHP cresceu, começou a ser reconhecido com uma
plataforma popular de desenvolvimento web. Uma das formas mais interessantes
de ver esta tendência foi observando os livros sobre PHP
que foram lançados ao longo dos anos.
</para>
<para>
Pelo que sabemos, o primeiro livro dedicado para
PHP foi 'PHP — tvorba interaktivních internetových aplikací'
(<emphasis>PHP — Criando aplicativos interativos da Internet</emphasis>),
um livro tcheco publicado em 1999, cujo autor foi Jirka Kosek.
No mês seguinte, um livro alemão, dos autores Egon Schmid, Christian Cartus
e Richard Blume. O primeiro livro em Inglês sobre PHP foi publicado
pouco depois, e foi 'Core PHP Programming' de Leon Atkinson. Este livro cobria o
PHP 3.0.
</para>
<para>
Enquanto estes eram os primeiros livros deste gênero — eles foram
seguidos por um grande número de livros de uma série de autores
e editores. Existem mais de 400 livros em inglês, mais de 100 livros
em alemão, e mais de 50 livros em francês ou espanhol! Além de poder encontrar
livros sobre PHP em muitas outras línguas, incluindo
coreano, japonês e hebraico.
</para>
<para>
Obviamente, este grande número de livros — escritos por diferentes
autores, publicados por muitas editoras e sua disponibilidade
em tantas línguas — é um forte testemunho do sucesso do PHP
em todo o mundo.
</para>
</sect1>
<sect1 xml:id="history.php.publications">
<title>Publicações sobre PHP</title>
<para>
Pelo que sabemos, o primeiro artigo sobre PHP em
uma revista em papel foi publicado na Computerworld da Tchecoslováquia,
na primavera de 1998 (no hemisfério norte), e cobria o PHP 3.0. Como os
livros, este foi o primeiro de uma série de muitos artigos publicados
sobre PHP em várias revistas reconhecidas.
</para>
<para>
Artigos sobre PHP apareceram no Dr. Dobbs, Linux Enterprise,
Linux Magazine e muitos outros. Artigos sobre migração de aplicações
baseadas em ASP para PHP no Windows têm aparecido até na <acronym>MSDN</acronym> que é da
própria <productname>Microsoft</productname>!
</para>
</sect1>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->