Por que o PHP é tão frequentemente usado em servidores da web? [fechadas]

14

Meu servidor da Web usa PHP, assim como 76,9% dos servidores da Web, de acordo com a W3Techs:

http://w3techs.com/technologies/overview/programming_language/all

O motivo pelo qual eu uso o PHP é uma inércia que surge do fato de todo mundo usá-lo em servidores web. O que é sobre o PHP que o tornaria tão onipresente nos servidores da web?

(Observe que esta pergunta é semelhante à pergunta a seguir, mas leva em uma direção diferente: Por que o Java não é usado para o desenvolvimento de aplicativos da web modernos? )

Deets McGeets
fonte
4
Eu sempre assumi porque é fácil de instalar no Apache e quase todos os servidores web são Apache.
maple_shaft
14
PHP é a linguagem que prova que, embora quase todos possam programar, quase todos não deveriam. É o Visual Basic da geração da web.
Paul Tomblin
2
Quero argumentar outro ponto - o PHP tem boas abstrações para sites - é compatível com cache, tem um ciclo imutável de solicitação / resposta, não faz você lidar com o gerenciamento de recursos, não faz com que você lida com estruturas de dados, A natureza dinâmica funciona bem com bancos de dados e possui inúmeras funções integradas, de forma que os pacotes são mais raros e a implantação é fácil. Não gosto de PHP, mas é muito fácil defender isso - não estou convencido, mas é fácil de argumentar.
Benjamin Gruenbaum

Respostas:

41

PHP é uma linguagem projetada especificamente para programação na web com integração embutida com o banco de dados de código-fonte aberto mais popular do MySQL.

  • Fácil de começar: Como iniciante, é fácil começar com o PHP. O usuário só precisa adicionar algumas tags PHP com, por exemplo, um loop for em seus arquivos HTML existentes e depois enviá-lo ao servidor e ver o resultado ou uma mensagem de erro. A digitação dinâmica e as matrizes associativas também facilitam o uso do PHP.

  • Fácil de usar: Comparado à maioria das soluções como, por exemplo, Java, o PHP não precisa ser compilado; portanto, basta escrever o script e, em seguida, enviá-lo ao servidor e atualizar o navegador.

  • Suporte integrado a banco de dados: o PHP possui (principalmente) suporte embutido para os bancos de dados mais populares, como, por exemplo, MySQL, o que significa que é fácil começar a usar bancos de dados, sem a necessidade de instalar drivers adicionais, apenas para usar as funções mysql. A ferramenta de administração fácil de usar, baseada na Web, PHPMyAdmin (lançado em 1998) também é importante para o sucesso do PHP em combinação com o MySQL.

  • Linguagem antiga (desde 1995) com uma grande base de usuários: o PHP tornou-se popular no início (1995), pois foi projetado para programação na web. Desde então, a base de usuários cresceu e agora há muitas estruturas e bibliotecas orientadas para a Web disponíveis. Alguns exemplos são os sistemas de blogs e plataformas de compras eletrônicas.

  • Hospedagem barata: como o PHP existe há muito tempo e funciona bem no Linux e no Windows, e muitos servidores da Web têm suporte para isso. Não há problema em encontrar hospedagem com PHP pré-instalado.

Jonas
fonte
1
marque isso como resposta, você não precisa ir mais longe: P. Resposta agradável @Jonas
Pankaj Upadhyay
A maioria dos pontos aqui também se aplica ao ASP clássico. Ah, e também JSP simples.
Adriano Carneiro
4
@Adrian: 1) O PHP foi lançado antes do JSP e do ASP. 2) É mais fácil usar o MySQL com PHP, já que você não precisa lidar com ODBC ou JDBC e drivers. 3) O ASP não era fácil e generalizado no Linux (hospedagem barata) na época. 4) Java com sua digitação estática é um pouco mais difícil para iniciantes.
Jonas
1
@Jonas, você está principalmente reforçando meu argumento: 1) era a única linguagem da web decente, então lugar certo, hora certa. 3) LAMP, é disso que trata meu post. Além disso, vá com calma, não estou dizendo que o PHP é ruim; estou apenas dizendo por que ficou popular: preencheu um vazio, é isso.
Adriano Carneiro
9
"Fácil de começar" é, penso eu, o que o lançou. O Perl existia e podia fazer tudo o que o PHP fazia. Mas o PHP era muito mais fácil para um iniciante completo começar. E suspeito que a comunidade também tenha sido mais amigável com os novatos. O PHP preencheu o vazio que o VB fez para a programação do Windows - fácil o suficiente para que as pessoas pudessem começar por conta própria e criar algo.
GrandmasterB
10

Pela mesma razão, o MySQL é tão popular: estava no lugar certo na hora certa.

Com o boom de servidores Linux nos anos 90, a plataforma LAMP (Linux-Apache-MySQL-PHP) surgiu como uma opção confiável e, o mais importante, gratuita.

Como uma observação lateral, use o MySQL no momento. Esses eram dois recursos ausentes do MySQL (do fundo da minha mente, pode haver mais) não muito tempo atrás :

  • Sem gatilhos
  • Não é totalmente compatível com ACID

Como um banco de dados que nem era compatível com ACID (atomicidade, consistência, isolamento e durabilidade) se tornou tão popular? A mesma resposta que o PHP: estava no lugar certo na hora certa.

Leitura adicional sobre o "lugar certo, hora certa" nos componentes LAMP:

Adriano Carneiro
fonte
3
Se "estava no lugar certo na hora certa" é a resposta, então Perl e CGI com C deveriam ter visto a mesma popularidade.
Jonas
2
"Como um banco de dados que nem era compatível com ACID se tornou tão popular?" - isso é fácil ... não era tão importante para a maioria das pessoas. O MySQL era confiável o suficiente para a maioria dos usos da web. Confiável o suficiente para um banco? Provavelmente não. Para um fórum da web? Sim.
GrandmasterB
Eu tinha um colega que gritaria "mas o MySQL não é um RDBMS!". Eu acho isso divertido. A popularidade é uma coisa engraçada. Nós - desenvolvedores de software - não devemos ser escravos da tendência, temos que continuar aprendendo a continuar trabalhando. Qualquer um que defenda demais uma tecnologia tem menos chances de desistir. E isso é sempre profissionalmente perigoso. Este tópico acabou para mim. :)
Adriano Carneiro
8

Se você olhar em volta, a maioria das pessoas que executam PHP atualmente está executando o Wordpress, Drupal, Joomla e similares. Ou um dos 10.000 aplicativos populares gratuitos que praticamente funcionam imediatamente com um host PHP barato e uma pequena configuração. Muitas vezes ele é instalado, não porque alguém esteja criando algo que roda no PHP, mas a opção mais fácil é usar algo criado no PHP.

Wyatt Barnett
fonte
7

Estou me ensinando PHP agora, então talvez eu possa responder.

Um arquivo de código-fonte PHP pode conter uma mistura de HTML, JavaScript e PHP, por isso parece realmente fácil obter aplicativos da Web simples em funcionamento. Interações mais complexas, que exigiriam muito Java em uma situação JSP, ou algumas contorções estranhas em uma situação CGI-BIN, são atendidas pelos buildins do PHP: você nem precisa saber se um HTTP GET ou POST chamou seu código, tudo o que seu código deseja conhecer vive em variáveis ​​globais _REQUEST ou _SERVER ou _COOKIE.

O PHP-the-langauage é analisado e executado muito rapidamente, para que você não note uma enorme queda de desempenho ao gerar HTML, em vez de apenas ter um monte de arquivos HTML estáticos.

O PHP-the-intérprete possui chamadas de biblioteca para praticamente todos os DBMS de código aberto, e muitos proprietários também, tornando fácil um aplicativo da web em três camadas. O PHP-the-intérprete inclui chamadas de biblioteca para muitas outras situações comuns (também conhecidas como "casos de uso"), para que você não precise escrever muito código, basta chamar a biblioteca. Assim, assim como os "aplicativos corporativos" J2EE, o problema passa de saber como codificar para saber como procurar nas bibliotecas. Isso é auxiliado pelo manual PHP bastante decente do php.net.

Como linguagem de programação, o PHP não possui muitas construções exóticas ou difere muito de, digamos, C, FORTRAN 4 ou Pascal, então os programadores que já conhecem uma linguagem podem facilmente pegar a linguagem de programação PHP.

Bruce Ediger
fonte
3

Existem dois pontos-chave para o sucesso do PHP: o tempo e o foco na hospedagem compartilhada.

No começo, a Web era estática. Os servidores da Web só podiam distribuir HTML pré-gerado, o que obviamente não era suficiente depois de algum tempo; em 1993, a equipe da NCSA estendeu seu servidor da Web (o antecessor do Apache httpd) com uma tecnologia chamada CGI que permitia chamar programas específicos do servidor da Web que pode gerar HTML (ou outro conteúdo) em tempo real. Isso foi ótimo, pois as pessoas podiam fazer todas as coisas. Uma linguagem comumente usada na época para esse fim era Perl. Perl é uma linguagem forte no processamento de texto, que é uma propriedade essencial para manipular dados de solicitação HTTP e produzir HTML. Então as pessoas usaram.

Mas havia um problema: para cada requisição que o servidor da Web precisava executar um programa externo, o Perl precisava inicializar e executar o script. Isso causou bastante dor de cabeça. Uma solução foi mod_perl chegando ca. 1997. mod_perl é um módulo para o servidor da web Apache que incorpora o interpretador Perl diretamente no processo do servidor da web, portanto, nenhuma inicialização extra era necessária.

Mas, novamente, essa abordagem teve um problema: mod_perl era extremamente poderoso e tinha acesso à configuração completa do servidor. Você não pode usar um servidor para hospedar vários clientes independentes, pois eles podem facilmente prejudicar as outras pessoas - seja de propósito ou por acidente. E foi aí que o PHP veio.

O PHP foi construído de uma maneira que pudesse ser executado como módulo Apache (portanto, não tendo a inicialização atingida para cada solicitação), mas fornecendo um ambiente de compartilhamento de nada entre solicitações. Depois que uma solicitação foi concluída, todas as informações foram perdidas e uma solicitação subsequente para outro host virtual seria atendida independentemente. O PHP também ofereceu recursos para restringir o acesso (safe_mode, open_base_dir). Com essa escolha arquitetônica, as empresas poderiam instalar o PHP em seu servidor e fornecer aos clientes acesso FTP (ou similar) para carregar seus arquivos e hospedar muitos clientes em uma única máquina sem muito trabalho. Isso causou uma concorrência que levou a preços baratos para hospedagem baseada em PHP, tornando o PHP uma plataforma onipresente.

Além disso, o PHP teve alguns benefícios sobre o Perl, como permitir a combinação de códigos HTML e PHP ou acesso direto a variáveis ​​de solicitação (consulte também register_globals) que no Perl eram mais difíceis (análise personalizada ou dependência no CGI.pm) que os desenvolvedores gostaram.

Outro aspecto que tornou o PHP bem-sucedido naqueles dias era o bom suporte no Windows. Conseguir que o Perl ou outros idiomas funcionassem no Windows era difícil, mas naquela época muitos desenvolvedores que usavam o Windows em casa e virtualização ou contêineres ainda não eram suficientes. O PHP rodou facilmente no Windows, para que as pessoas pudessem usá-lo para desenvolvimento e depois empacotar os arquivos e implantar no Linux. Com o Perl, por exemplo, você teria que obter a distribuição correta do perl e depois verificar quais módulos estão disponíveis, etc.

E outras línguas? Linguagens compiladas como C ou C ++ nunca tiveram tração, já que o script atende melhor ao mercado em rápido desenvolvimento. O Java existia, mas as máquinas virtuais Java exigiam muito mais recursos e hospedagem compartilhada da maneira que o PHP suporta, dificilmente era possível. O investimento em hardware foi muito maior. O ASP (como antecessor do ASP.Net) estava vinculado à plataforma Windows, limitando-o a organizações que já executam o Windows e que não temem os custos de licenciamento e, novamente, nenhum suporte de hospedagem compartilhada.

Diferentes outras tecnologias foram produzidas, mas eram comerciais (Cold Fusion ou Netscape Server com JavaScript no servidor) limitando o alcance ou não estavam até o Ruby-on-rails, o que provavelmente foi o primeiro ambiente a receber muitos atenção, mas naquela época o PHP já era muito popular entre uma grande comunidade e um software bem estabelecido (como Wordpress ou Drupal) dificultando a concorrência - especialmente porque o desenvolvimento do PHP nunca parava e ainda continua.

johannes
fonte
1

Vamos enfrentá-lo, o PHP é barato, fácil de aprender, tem uma comunidade grande, você pode hospedá-lo em qualquer lugar e já existe muito. Então, se você pensa que alguém usa a Internet como uma maneira de ganhar dinheiro rapidamente em um setor pequeno / médio e precisa criar uma área de desenvolvimento para fazê-lo com uma infraestrutura praticamente inexistente, o PHP parece ótimo (para começar).

Então, acho que o PHP é uma ótima maneira de ganhar dinheiro rapidamente com um monte de programadores e um pequeno computador como servidor.

guiman
fonte