Segunda-feira, 12 de janeiro de 2009 às 10h30

PHP não é coisa de moleque!

Se pararmos para pensar, PHP sofre o mesmo dilema que sofremos com o famoso "sobrinho", sim! - aquele que costuma fazer o serviço cobrando 1/3 do preço, 1/3 da qualidade e 0/3 segurança.

Felipe Ribeiro divulgou em seu site os slides da palestra que ele ministrou no I Encontro de Desenvolvedores PHP da Paraíba, onde ele faz uma reflexão muito boa sobre o motivo desta "fama" que o PHP tem. Vale pena dar uma caminhada pelos slides, principalmente se você for uma destas pessoas quer formaram um "pré"-conceito com relação a esta linguagem que, definitivamente, não está para brincadeiras.

PHP não é coisa de moleque

Outros slides deste encontro podem ser vistos aqui:

http://www.slideshare.net/tag/i-encontro-php-pb

[]´s

48 comentários

 Samir Gomes da Silva
12/01/2009 10h18

o titulo ja diz tudo

PHP sofre com a falta de informação dos desenvolvedores, creio que esse sim são meninos que não tem noção do que a ferramenta pode fazer(falo de qualquer linguagem).
otima postagem que esclarece duvidas e mitos quanto a usabilidade, segurança, mercado e o perfil do desenvolvedor PHP.
infelizmente com um simples SQL injection aida se ve sites com tamanha vunerabilidade, pessoas não estão aproveitando do recurso de OO das linguagens.
Boa pra refletir e afirmar mais uma vez PHP não é coisa de menino(é igual qualquer linguagem, não enchego limitações).
nota 1000 pra palestra e para o post.

 Jackson Caset
12/01/2009 11h28

interessantíssimo!

A palestra deve ter sido realmente muito bacana. Só os slides já mataram a pau.

Sou desenvolvedor PHP há mais de 5 anos e não tenho códigos sujos, mal organizados e utilizo PHP em aplicações de médio porte tranquilamente (creio que de grande porte tbm seria tranquilo). Como foi comentado nos slides, isso só depende do programador e de mais ninguém.

Grande abraço

 Fernando Jose
12/01/2009 12h35

E o pré-conceito?

Antes de tudo, nada contra php, nem com ninguem, etc etc etc..

Mas colocar aquele codigo Java para hello word e dizer que é sujo, não dizer, fazer entender que é sujo é uma coisa que não tem como concordar.

Este não é um código sujo, é um código que foi utilizado as interfaces, classes, etc. Ou seja, ele criou o System.println ao invés de usar o que esta pronto. (println é equivalente ao ECHO).

Agora sobre o .Net, o orkut é um portal um tanto quanto acessado no mundo inteiro, dizer que o .Net não é estavel, pois o orkut dava (digo dava porque hoje não vejo mais isso) problemas de server, não quer dizer que .Net é uma linguagem sem estabilidade.

Outro dia pegamos um problema aqui na empresa, pois precisavamos passar um controle que estava em php para .Net, passamos dias procurando como fazer, e achamos, do mesmo jeito que era super facil no php, acabou se tornando super facil no .Net cada um com suas ferramentas.

Não era nem cadastrado no iMasters, me cadastrei apenas para responder a este topico que acredito ser um pré-conceito sobre as outras linguagens.

Talvez se o autor dos slides conhecesse um pouco mais Java, iria saber que existe uma maneira bem mais imples de se construir o Hello Word. (obs: uma linha apenas sera possivel.)

E que tambem, o .Net não tem esta instabilidade que talvez ele pense que tem.

Só não acho justo aparecer duas imagens no slide, a do Java e .Net. Pois como disse, a do java não era um código sujo, e sim um código mais complexo, assim como no exemplo do orkut e .Net.

Achei muito bem feito toda a apresentação, mas acho que não precisava destes dois slides.

Parabens pela apresentação.

 Igor Escobar
12/01/2009 14h09

Independente de quem é melhor que quem, este não é o fator discutido aqui, o ponto aqui é mostrar que PHP pode ser tão bom quanto qualquer outra linguagem, tudo é uma questão de quem a utiliza, queremos mostrar a flexibilidade que a linguagem impoe ao contrario das outras, este é o ponto.

Olá Fernando,

Sou o autor dos slides e posso te dizer que conheço um pouquinho de Java por ter trabalhado por um ano com Java numa aplicação de grids computacionais da HP.

E se você não entendeu, me desculpe, a intenção era fazer apenas uma piadinha, uma brincadeira e descontrair a platéia. Inclusive esse código Java está disponível na Desciclopedia.

Quanto ao Orkut e .NET, você não vê mais erros desse tipo porque ele foi migrado para Java. E o .aspx dos links é apenas para manter compatibilidade com antigos links externos. E não sei se recebeu, mas o Submarino também está bem mais estável ultimamente depois de ter sido refeito em Java também.

Espero ter esclarecido esses desentendimentos, porque a intenção não é disseminar preconceito, mas sim levantar o ponto de que todas as tecnologias tem prós e contras e usar do bom humor para isso.

 Neiva Diniz
20/02/2009 14h19

Fantástica sua apresentação! Só uma observação...

Em relação ao Mito 4 - Existemm poucas ferramentas para desenvolvimento em PHP

Só queria dizer que o ScritpCase - Framework para desenvolvimento de sistemas web, gera código puro PHP com JavaScritp.

Ferramenta 100% NACIONAL!! Há 8 anos no mercado nacional e agora também em mais de 15 países.

Abraços a todos

http://www.scriptcase.com.br

 Junio Albino
12/01/2009 14h24

Fernando José disse tudo

Aliás, acho q o autor quis fazer uma piada mesmo, porque praticamente nada disso é verdade.

 Junio Albino
12/01/2009 16h12

Hello World em C#3.0.NET:

http://conexaobd.com/tera1985/2009-01-12-php.jpg
pra quem quer conhecer um hello world sem a sujeira de código já citada

 Igor Escobar
12/01/2009 17h24

Já conversei com pessoas que trabalharam com Java a mais de 8 anos e são capazes de fazer a mesma piada.

 Bruno Gama
12/01/2009 16h12

Piada com Java.

Se o palestrante fosse uma pessoa séria teria colocado simplesmente um <% out.println('hello world'); %> (Java - JSP/Servlets, especificação de web). Outra, foto do Orkut versão antiga, a muito tempo ele não dá pau e funciona rodando Java atualmente. Só mantiveram a nomenclatura dos arquivos para manter a operabilidade da página (ou seja que os bookmarks dos miguxos funcionem).
Php mesmo que atualmente dando um suporte razoável ainda ao meu ver é linguagem pobre. Escrever OO no php é uma tarefa árdua e irritante mesmo com o Zend for Eclipse, se tu fores ver um exemplo simples é o uso de "->" para utilizar métodos, atriutos, e outros objetos, que daí piora ao meu ver. Escrever uma classe que herda 3 pais seria algo totalmente sujo e que desperdiça muitos caracteres por exemplo: $obj->getPai1()->getPai2()->getPai3()->getAtributo() para escrever todos os simbolos de maior são necessárias 8 combinações de teclas (shift+.) TERRÍVEL, nada prático, isso é só um exemplo. Outro é não conseguir fazer um atributo ser Objeto inicializado logo na definição do mesmo. Este deve ser instanciado no método construtor. Sem dizer que não tem anotações e tipos genéricos do Java =)

Ao meu ver a única vantagem e linguagens interpretadas como o php é não ter que compilar, porque no momento ele ainda é relativamente ruim...

 Igor Escobar
12/01/2009 17h21

Este slide fala sobre você, já percebeu?

Até onde eu sei <% out.println('hello world'); %> não é uma boa prática em Java. O certo seria usar alguma Taglib carregando uma definição de taglib bla bla bla... Scriptlets são mau vistos :-)

'->' é uma herança do C++. Se PHP parece tanto com C, o normal é que a notação OO dele se pareça com C++.

PHP é uma linguagem para resolver o problema da Web e isso ela faz bem. Não tenho nada contra Java, já trabalhei muito com ela, mas é nessa tentativa de abraçar o mundo que está se tornando excessivamente complexa e em caminho de se tornar o novo Cobol, cedendo espaço para Python, Ruby e cia. Tá na hora de acabar com esse preconceito bobo e foi esse o intuito da palestra, estamos na era dos programadores poliglotas!

 Paulo Maciel
12/01/2009 17h15

...

PHP e JAVA, ambos trabalham com diretrizes diferentes. Quem usa os dois sabe do que estou falando.

A qualidade vem do programador.

 dieffrei tiepo de quadros
12/01/2009 20h02

hehehe eu fui durante um bom tempo php apreendi antes de pascal ou qualquer coisa..
realmente php é tudo o que foi mencionado.. hoje eu sou programador Java...
só achei engraçado incrementarem tanto o código java heheh
Abs

 Fabiano Pereira
13/01/2009 08h08

Grande PHP

Acho o tema da palestra relevante e coerente com o que ocorre nos dias de hoje. Muitas vezes, para convencer o cliente da qualidade do php, é necessário mostrar a lista dos grandes sites desenvolvidos nesta linguagem (a mesma dos slides).

Tal lista traz o cliente para a realidade da qualidade do php - assim como estes slides.

Grande Abraço!

 Bruno Gama
13/01/2009 09h46

 

@Felipe: isso é relativo sobre boa prática ou não, eu só queria mostrar que um simples 'hello world' pode ser simples.
Cada um vende seu peixe da maneira que quer no entanto eu acho que mostrar um tipo de código daquele para uma função tão básica como o exemplo (hello world) do palestrante é um tanto radical. Se fores analizar o Zend Framework, este implementa tudo que o PHP não faz e também o que a zend considera boa prática, o tornando igual a Java, um exemplo disto é a classe DB que implementa algo similar aos PreparedStatements do Java. Além destes existem a têm a implementação do MVC e diversos outros padrões da GoF.
Sobre o '->' sim eu sei que é derivado de C e etc...
Sim scriptlets são mau vistos, mas assim como PHP o início é sujo e feio =)

Já sobre Java abraçar o mundo realmente concordo, nada mais natural isto é coisa da JCP e etc...
PHP tb tem tentativas como o PHP GTK, entre outras coisas. No final das contas todas linguagens tentam funcionar em qualquer plataforma.

Por curiosidade, já que citou o Ruby, este roda mais rápido na JVM do Java do que em seu interpretador nativo.

Java pode até ser complexo para iniciantes, pois encontrar tutoriais como PHP não é coisa mais fácil. Mas todas APIS, frameworks comerciais e padrões de desenvolvimento são muito bem documentados. Bas estudar a documentação =)
PS: Quero annotations e generics em PHP

@Igor Escobar - sim eu vi, obrigado por me considerar um Programador de Verdade ;)

Abraço para os 2 e boa semana

Talvez não tenha entendido o espírito da coisa, não tem nada de radical nisso.

O exemplo tem o intuito de ser visto como uma caricatura. Caricaturas são maneiras de exagerar algumas características cômicas de algo ou alguém de um jeito bem humorado, nesse caso foi a burocracia do Java que não é segredo para ninguém. A intenção em nenhum momento é criar "FUD" mas apenas arrancar algumas risadas, bom humor não faz mal a ninguém.

Quanto à JVM em nenhum momento falei mal dela, a JVM é uma das plataformas computacionais mais bem feitas que existem e ela sim é o futuro do Java, e não a linguagem em si. No caso do JRuby é mais eficiente que o interpretador nativo por conta do Garbage Collector que o da JVM é muito bem construído e o do "C-Ruby" não.

PS.: Vai ser difícil você achar algo como Generics em uma linguagem de tipagem dinâmica

 Bruno Gama
13/01/2009 11h50

Tipagem, não sei se é por costume meu, mas eu acho uma coisa que falta em qualquer linguagem de script. Estes dias estava programando um VO com um atributo retornando outro objeto e não pude inicializar ele no mesmo (coisa comum em Java). Tive que fazelo no contrutor. Terrível maneira de contornar.

 Fernando Jose
13/01/2009 09h58

Linguagens

Então esse slide deveria ter citado em algum lugar que era apenas uma "piada", de muito mal gosto ao meu ver.

E como .Net é tão mal visto, temos que para de usar algumas coisas, hotmail, msn, além de pessimas ferramentas que não oferecem nenhum suporte como o visual studio ou exemplos em forúns.(FRASE UM TANTO QUANTO IRONICA).

Não critico nenhuma linguagem pois só conheço a que eu trabalho, criar uma imagem porque Submarino e Orkut mudaram de plataforma não quer dizer nada.

Desenvolvi sistemas para Harald, Orient, Tigre, Bradesco em .Net e foi tudo tranquilo.

A diferença é que para algumas coisas temos vantagens com a linguagem x, para outras a linguagem y, para outras a linguagem z.

Sou apaixonado por Java desde que começei a programar, só que mudei totalmente de rumo, pois a microsoft me proporcionou um começo mais facil, pois aprendi muito mais rapido, pelas facilidades, tutoriais.

Hoje tenho orgulho de falar que sou certificado, que estudei os produtos da microsoft com muito prazer, e trabalho com isso com muito prazer tambem.

Entrar aqui e ter visto aquilo, uma "piada" que como disse, foi de mal gosto na minha opinião, me deixou um tanto quanto nervoso, pois assim como na linguagem PHP como você diz, profissionais não qualificados tambem existem em .Net, Java, Cobol, C++...

Uma "piada" dessas no meu ver não se faz em uma palestra, ou em um encontro, onde existem muitas pessoas.

Enfim, esse é o MEU ponto de vista.

Calma cara, não precisa ficar chateado.

Se você ficar nervoso toda vez que alguém critica um produto Microsoft, especialmente no quesito estabilidade e segurança, você vai morrer de ataque cardíaco muito jovem.

Não há motivo para radicalismo, se você como desenvolvedor .NET se sentiu ofendido com a minha apresentação, me desculpe, essa não foi a intenção em nenhum momento. Com certeza existem prós e contras em qualquer tecnologia.

Eu já fui para palestras da Microsoft e vi eles descerem o sarrafo tanto em Java como em PHP e isso é normal em qualquer palestra que você for de MVPs.

Mas agora que viram que PHP é o número 1 no nicho de mercado mais promissor que é a Web, estão querendo investir... Com o Phalenger (PHP para .NET), otimizando o mod_php para IIS, realizando eventos em Redmond e convidando os figurões do PHP etc. e tal, mas sem nenhuma proposta clara de melhorias na tecnologia para a comunidade e para o projeto open source em si, apenas com o foco no próprio lucro como sempre, e isso é abominável.

 Samir Gomes da Silva
13/01/2009 10h25

quem entendeu a ideia da palestra

galera pra quem entendeu a palestra racionalmente dexando de lado a afinidade por determinada linguagem, consegue compreender que o palestrante quis deixar claro que o que existe em uma linguagem existe em outra tambem todas estão muito bem estão atendendo perfeitamente.
ele que deixar bem claro que o responsavel por um codigo sujo, vuneravel etc... é simplemente o programador, agora reflitão os desenvolvedores java, php, .net etc...: PHP sofre ou não sofre preconceito.
muitos meninos programam em php mas em java, .net tambem.

na minha opinião o foco da palestra foi: falta maturidade no hambiente para aceitar que tecnologias novas ou de tradição inferior afetam de forma tão eficaz quanto a grandes nomes de desenvolvimento.

 Alantiel Freire Marins
13/01/2009 10h26

Java vs PHP

Já programei PHP e Java... digo que o PHP não chega no nível do Java por que a comunidade dela é muito desorganizada, comparem uma conferência de Java com uma de PHP!
A própria linguagem não segue padrões de código. Para projetos pessoais PHP é ótimo, mas para trabalhar com equipes separadas, cada uma implementando coisas diferentes, Java é muito superior.
Se o "Felipe Ribeiro" disse que o Java está perdendo mercado para o Ruby, então o PHP também está...
Se o tema era falar que só depende do programador fazer o PHP ser melhor, essa mesma afirmativa também teria que ser feita para qualquer linguagem. "Programar" não é coisa de moleque.

Conferências Java normalmente são patrocinadas pela Sun, conferências PHP são feitas com o suor da comunidade, com dinheiro tudo fica mais bonito e organizado. Mas se você for pra Zendcon ou phptek, não fica nada a dever.

Eu trabalho com gerenciamento de um projeto grande em PHP, com vários módulos, integração com APIs, Web services e etc. e não temos problemas, mas é claro que precisa de organização, padrões de código, PHPdoc (assim como o Javadoc), testes, etc. Essa questão de superioridade é muito relativa para encarar como verdade incondicional.

Java perde mais gente para Ruby porque a comunidade Java está sempre procurando uma nova alternativa para trabalhar com Web, uma hora é Struts, outra hora Spring MVC, Tapestry, Velocity, JSF, etc etc, enquanto o pessoal do PHP tá mais estabilizado usando uma só ferramenta. Mas também já está existindo "Sobrinhagem on Rails" e levando o pessoal que tá começando a desenvolver Web para o Rails.

Concordo que o correto é dizer que "Programar não é coisa de moleque!", mas qual a linguagem que mais sofre com essa fama ultimamente? O PHP, por isso esse foi o foco da apresentação.

 Igor Escobar
13/01/2009 10h37

...

Muito comum vermos palestrantes e pessoas ignorantes em comunidades, foruns etc., falando mal do PHP sobre tudo o que já foi citado na apresentação. Agora quando falamos mal da plataforma deles, eles rodam a baiana...

 Junio Albino
13/01/2009 13h40

Calma pessoal!

Uma coisa que aprendi na vida é que "Religião, futebol, política e LINGUAGEM DE PROGRAMAÇÃO não se discute...

Só acho q não se compara PHP com .NET e Java pois são linguagens com propósitos diferentes. PHP foi uma linguagem criada para desenvolvimento rápido de pequenas aplicações, daí a dificuldade em se implantar grandes projetos, ao contrário de .NET e Java que foram plataformas criadas já com o foco em uma linguagem ao mesmo tempo mais fácil e prática e muito poderosa para qualquer que seja a finalidade do projeto, ex, desktop, móvel ou web.

Só no PHP5 que foi implantado a POO, ou seja, a linguagem fica meio confusa depois de uma complementação dessas.

Agora já é muito preconceito dizer que .NET não é estável como os outros produtos da Microsoft...

 Igor Escobar
13/01/2009 14h01

@Junio

Não concordo com sua visão do PHP.Você se engana ao pensar que PHP não serve para grandes projetos. É tudo uma questão de QUEM esta no piloto.

Não existe dificuldade alguma e implantar grandes projetos. Temos controle de versão, testes unitários, padrões de projeto, ferramentas ágeis etc.

O PHP possui muitas bibliotecas e frameworks que possibilitam o desenvolvimento ágil, profissional e seguro.

Todos estes "pré" conceitos que você apontou, não existem mais, esta é a minha opnião.

 Fernando Jose
13/01/2009 14h47

Linguagens

Eu só citei os lugares que tem .Net para quem ler ter uma referência tambem, apenas isso.

Defendo Java, .Net, Html, css, JavaScript, qualquer coisa falada que na minha opinião tenha sido um comentario não muito feliz ou uma "piada" bem mal feita.

Eu não estou do lado de ninguem, assim como se alguem chegar chutando javascript aqui ou em qualquer lugar eu vou me manifestar pois conheço javascript.

Só dei um ponto de vista meu, que saiu um pouco durante os comentarios.

Falei apenas sobre o slide do código burocratico do hello word no java, e no segundo fiz uma "piada" tambem falando que como não é estavel vamos parar de utilizar. =)

Como disseram, "Religião, futebol, política e LINGUAGEM DE PROGRAMAÇÃO não se discute...

Então até mais..

 Leonardo De A. Pereira
13/01/2009 15h46

emocionalmente ou tecnicamente falando?

Acho que muitos programadores levam as diferenças entre as linguagens para o lado emocional, eles aprendem uma linguagem e acabam se apaixonando cegamente por ela, a ponto de ficarem nervosos e até mesmo tristes quando alguém expõe algum ponto fraco nela.

O programador profissional sabe que todas as linguagens possuem suas limitações e cabe a ele saber quais são essas limitações e em que elas podem prejudicar o seu trabalho.

Acho que o importante é usar uma linguagem que atenda às suas necessidades e só, nada a mais e nada a menos.

 Wilker Silva
13/01/2009 15h48

php ainda tem oque melhorar

sinceramente, eu ja gostei muito de PHP, até hoje na verdade o PHP é meu "ganha-pão". mas o meu problema com o PHP hoje é que eu aprendi Ruby XD

na boa, eu nao discuto que PHP pode ser usado ou não para grandes projetos, ele pode, eu mesmo hoje mantenho uma framework MVC que estamos fazendo na minha empresa, comecei essa framework apos estudar bastante o Rails, e so comecei porque depois de testar diversas outras (Zend Framework, Symphony, Cake, CodeIgniter, PHPonTrax...) eu não achei nenhuma que chegasse perto do Rails, principalmente no quesito de acesso a dados (ActiveRecord pros familiares).

bom, ai foi que minha "pequena revolta" com o PHP comecou, isso por algumas restricoes da propria linguagem (acho mto legal eles colocarem lamba, closures e late static binding, realmente ja vai melhorar bastante), um exemplo foi quando estava criando o ActiveRecord para PHP, tive o serio problema do static binding, que felizmente sera resolvido na proxima versao com o late static binding (-1, isso ai). mas ao longo do desenvolvimento, coisas que eu vejo como triviais para se fazer em Ruby (como criacao de metodos em runtime, injecao de modulos) sao coisas simplesmente impossiveis de se fazer com o PHP, meu problema mais recente é para implementacao de helpers, assim como no Rails, eu gostaria de manter os helpers em arquivos separados, por uma questao de contexto, mas por ventura esses helpers tem que ser executados no contexto do controlador, para poder terem acesso aos mesmo recursos que o controlador. no PHP isso é impossivel... o mais proximo foi criar um __call dinamico no controlador de forma que eu posso "simular" uma inclusao de metodos que na verdade sao executados fora da classe, funciona até o momento que eu preciso que esses metodos sejam executados no contexto da classe... e esse problema ainda nao tem solucao na proxima versao do PHP...

entao oq me fascina em Ruby eh a dinamica, fora esses exemplos que citei, PHP ainda nao tem sobrecarga de operadores, monkey patching (modificacao de classes/metodos em runtime). e quem acha que essas coisas servem apenas para tornar a linguagem mais "exotica", se fosse pra usar uma linguagem mais "restrita" no sentido do modo de programar, estaria usando linguagens como C, o motivo de se utilizar uma linguagem dinamica é justamente a "dinamica", por isso que hoje pra mim o Ruby é minha favorita, porque nao conheco ainda nada mais dinamico que o Ruby (se alguem conhecer, me avise, terei prazer em estudar).

resumindo, nao posso dizer que o PHP é ruim ou nao escala, mas simplesmente ainda restringe o programador no termo de "linguagem dinamica", coisa que o Ruby/Python ja melhoram bastante, espero que o PHP consiga evoluir tanto quanto eles (e ps, enquanto conversamos, Ruby 1.9 e Python 3 estao no forno terminando de assar, se distanciando ainda mais do PHP...)

 Fernando Jose
13/01/2009 16h07

Python

Teve um evento do !Yahoo que fui aqui em sampa, a galera dominando total Python e usando muito, não conheço mais parece que como ele disse, esta no forno, e já to sentindo o cheiro. rs =)

 Marcelo Rodrigues
14/01/2009 00h39

Tudo igual

Acho interessante essas inflamações de alguns contra uma linguagem, fazendo eni-comparações. Principalmente os ruby-on-rails da vida, que acharam novidades na linguagem e dizem que php não presta pq não faz igual. Peraí, uma linguagem quando traz novidade, certamente criaram aquilo por outra não ter. É fato. Outra coisa, se for pro PHP ter que ficar o tempo inteiro ficar inventando moda para poder se comportar igual a outras linguagens, melhor nem existir então.

É cada uma. O que acho mais interessante, é que a pessoa fala mal, mas também não sugere modificações e nem simplesmente se dá ao trabalho de contribuir. Aí quando surge uma nova linguagem, já cai direto pra ela não por mercado, mas por gosto pessoal. Difícil argumentar com um programador assim, que nem se quer se dedica integralmente a linguagem que programa e nem em melhorá-la. Por isso está essa coisa de sobrinho mesmo.

Benzadeus

 Wilker Silva
14/01/2009 01h51

estude

Em primeiro lugar... não falei exatamente mal do PHP, so falei que a evolução do PHP está lenta, comecei a mexer com PHP na época do PHP 4, mas cheguei a estudar sobre as versões anteriores, e ele mudou muito, mas sinceramente, com o numero de quebras de compatibilidade que ele ja fez, se era pra quebrar, era melhor ter feito mudanças mais drásticas. Outra coisa, o Ruby também não é uma linguagem tão nova assim, e por favor, não a chame de "ruby-on-rails", pois a linguagem é Ruby, Rails é uma framework, e realmente, eu sou o tipo de programador que programa por gostar, e realmente abraço novas linguagens e as estudo muito, não apenas o ruby, mas tento conhecer o máximo de linguagens possiveis, pois só assim você vai poder tirar o melhor dos conceitos para aplicar em qualquer linguagem, se voce acha que ficar apenas se especializando em uma linguagem, aprenda que uma pessoa que sabe demais apenas sobre uma coisa, quer dizer que nao sabe nada sobre o resto, entao eu diria pra voce comecar a estudar mais e rever seus conceitos. quanto a parte colaborativa, se voce estudar um pouco mais sobre o ruby e o mundo que o rodeia, vai ver que é um dos mundos mais bem colaborativos, nao numericamente (como java ou php), em qualidade e reuso, acredito que voce nao conhece o github, se nao conhecer, de uma olhada nele, tem até projetos em php la, mas a maioria é um ruby, estude sobre o workflow que existe, voce vai ver que é o melhor ambiente colaborativo de codigo que existe ate o momento, e praticamente todos os projetos em ruby hoje estao la.

antes de falar em "seguir modinha" seria melhor dar uma olhada no que voce mesmo tem feito, estude o ruby por si mesmo, agora estude de verdade, nao leia meia duzia de tutorais e ache que entendeu os conceitos, entao voce tera argumentos para poder fazer comparacoes

 Wilker Silva
14/01/2009 01h53

contribuicao

e so pra completar, sim, eu faco minha parte pra contribuicao no PHP, a framework da empresa onde eu trabalho, eu sou o idealizador e desde o inicio propus que a mesma fosse open-source, esse ano mesmo devemos estar lancando ela, por hora esta em desenvolvimento alpha, mas pode ser vista se voce quizer, é só acompanhar o desenvolvimento pelo github no link: http://github.com/wilkerlucio/fishy-framework/tree/master

 Frederico Mottinha de Figueiredo
15/01/2009 17h05

Parabéns pelo Slide e Iniciativa

Programo em PHP e JAVA, na faculdade estamos aprendendo o C#. A sua mensagem ficou muito clara: "PHP é uma linguagem tão poderosa e importante quanto as outras". O fato é que muitos programadores JAVA ou ASP .NET sentiram-se ofendidos por acharem que você estava atacando as outras linguagens, quando na realidade, estava mostrando o que um "MOLEQUE" pode fazer em um código - não importando a linguagem.
Já ví ninhos de IF sendo usados ao invés de SWITCH. Classes sendo utilizadas como repositório de métodos estáticos. etc...
PHP é uma linguagem popular pela facilidade que o leigo tem em aprender o básico, o problema é que depois de aprender o básico muitos não se aperfeiçoam e continuam gerando lixo. Com Java isso não acontece com muita frequencia, como o autor disse: exige conhecer OOP.

Pena que não é todo mundo que vê desta maneira.

Parabéns pelo artigo e slide.

 Hugo Machado
16/01/2009 20h01

PHP É TRABALHO DO VERDADEIRO PROGRAMADOR

BOM ACHEI MUITO LEGAL ESSA DEFESA DO PHP!, POIS ATUALMENTE E MUITO MAL VISTO PELO RESTO DA COMUNIDADE QUE DESENVOLVE PRA WEB, PRINCIPALMENTE AQUELES QUE ADEREM A PLATAFORMA .NET O QUAL PRA QUEM TRABALHA COM ISSO É COISA DE PREGUIÇOSO, POIS EXISTE UMA INFINIDADE DE FRAMEWORK O QUAL COM ARRASTANDO ISSO AQUILO E TUDO MAIS ESTÁ PRONTO, NÃO QUE EU VEJO DESMÉRITO NISSO POIS TB DESENVOLVO TB EM .NET, MAS EU PREFIRO AINDA O BOM PHP, O QUAL VC TEM UM VISIBILIDADE MELHOR DE ENCHERGAR TODA A LOGICA DO PROGRAMA DANDO ASSIM UM VISUAL MAIS LIMPO DO CODIGO, ENQUANTO QUE EM .NET REALMENTE É BASTANTE SUJO, OUTRA COISA TB CONTRA O .NET É QUE ELE NAUM TEM UM LINGUAGEM DE PROGRAMAÇÃO DEFINIDA PODE SER C# ,VBS, JAVA E ENTRE OUTRAS. POR ISSO O PHP AO MEU VER AINDA É A MELHOR LINGUAGEM PARA WEB ATUALMENTE!

 Rodrigo Rebou'cas
17/01/2009 00h38

Esqueçam essa "guerra" entre linguagens

Sobre o uso de PHP ou outras tecnologias nos grandes serviços. O mérito do uso de uma ou outra tecnologia raramente é da tecnologia em si, mas da equipe de desenvolvedores que está responsável pelo projeto.

Se o mérito da solução fosse inteiramente da tecnologia, não teríamos o Orkut, eBay rodando em Java, o Flickr rodando em PhP ou o Twitter rodando em Ruby. Haveria uma tecnologia realmente melhor do que a outra e esta dominaria as soluções no mercado.

Se o mérito das soluções fosse só da tecnologia, a Amazon ou o Google não seriam uma colcha de retalhos, não implementariam os inúmeros serviços usando dezenas de tecnologias diferentes. O que geralmente acontece, de forma simplificada, é o seguinte: o gerente chega com um conjunto de requisitos e um prazo e pergunta: - E aí pessoal, entregam isso quando? :-) Daí, se a galera sabe Java, vai implementar em Java. Certamente a equipe não vai dizer: - Gerente, eu sei Java mas PhP é melhor. Vamos passar 2 meses pra ficar fera em PhP e depois começamos a resolver o problema.

A idéia é essa. Arrume uma linguagem, tecnologia, etc. se torne especialista nela e vá resolver os problemas do mundo real. Defender linguagem e tecnologia não leva programador a lugar nenhum.

 Wilker Silva
17/01/2009 14h27

certo cara, concordo que o mérito do produto é da equipe, so discordo quando você recomenda que a pessoa aprenda apenas uma linguagem e se especialize nela.

isso deixa uma visão muito fechada no programador, pra mim deve-se aprender várias linguagens, oque importa para um programador é a lógica de programação, independente da linguagem em que ela está sendo aplicada.

a primeira linguagem de programação sempre é a mais díficil, na segunda a pessoa já pega um pouco mais rápido, na terceira vai apenas vendo algumas diferenças, depois da quinta já é bem rápido e a pessoa consegue ver as difereças e tirar as melhores idéias lógicas de todas as linguagens que ele está aprendendo, e acredite, uma pessoa que tenha o básico de 8 linguagens, e seja fluente em pelo menos 1, essa pessoa pode programar em qualquer linguagem de programação que quizer, levando um tempo mínimo para começar a usar até mesmo uma linguagem que ela nunca viu na vida.

só quiz dizer que o importante mesmo é saber lógica, com isso é possível fazer boas implementações em qualquer linguagem, pra mim a maior diferença na hora da escolha, são as questões sobre oque a linguagem da de suporte na arquitetura do projeto (que pra mim é uma das coisas mais importantes, principalmente para grandes projetos) e suas frameworks.

 Reinaldo Deprera
20/01/2009 07h39

.NET é para arrastadores de botões

Primeiramente gostaria de deixar claro que trabalhei com as 3 linguagens e me julgo capaz de opinar sobre o tema.
Faço das palavras do Paulo Maciel, as minhas.
Concordo com ele quando ele diz que java e php são diferentes e que o código vem do programador(ele = programador Java).

Concordo também que tem muita coisa podre com PHP
Concordo com o autor do artigo em tudo.
.NET é ruim sim, tem problemas emblematicos de ordem tecnologica e nao da qualidade de codigo.
E alias, falando em qualidade de codigo, codigos de aplicações .net são de longe os piores. Não por causa da tecnologia, mas sim pelo simples fato dos codigos serem gerados por uma IDE(visual studio), ou alguem aqui conhece algum programador aspx de verdade?
São todos arrastadores de botões que tão mais para analista de sistema do que para programador.

O sujeito que fica fazendo programa com o framework .net fica incapas de programar, é pura arrastação de botão.

É somente por causa da popularidade que parte das aplicações em PHP tem problemas, assim como é verdade que Java e C++ estão a frente do PHP no suporte a OO. Mas apartir do PHP6, o PHP será tão OO quanto Java e C++.

Voltando ao assunto .NET, eu acho até cliche falar dos problemas que o .NET teve e tem, muitos deles são famosos e emblematicos.
Grandes empresas conseguiram se libertar do .NET, apesar de serem assediadas por profissionais de T.I e representantes da Microsft para consumir o .NET.

Eu gostaria de fazer uma pergunta para os profissionais .net:

Querer programar e escolher uma linguagem onde:
para se desenvolver voce é praticamente obrigado a usar uma IDE de um determinado fabricante, e por causa disso voce não escreve codigo e apenas arrasta o mouse nos botões....vocês realmente achavam que da para ser programador assim?

Por favor fiquem cientes que se alguém responder sim a esta pergunta, vamos ver a terra tremer....
Programadores c++ que já faleceram vão se revirar no tumulo!!!
rs...kkk...nada contra o .NET, gosto da tecnologia e do conceito, mas a verdade é que a Microsft gerou uma pequena geração de zumbis(analista de sistemas) que não sabem escrever código (programar).

Definição prática de analista de sistema:
Alguem que já programou, achou muito difícil e percebeu que já era tarde demais para mudar de área de atuação e resolveu continuar trabalhando com informática.




 Junio Albino
20/01/2009 15h47

Interessante seu comentário... mas estranho... eu nunca vi um botão chamado "if" ou "else", aliás, eu programo para .NET e não uso a IDE para gerar todo o meu código, apenas o que não é necessário digitar tudo no braço, como criar WinForms. Para mim .NET veio para facilitar o trabalho, assim como OOP o fez na era do C para o C++.

 Rafael Angelo Arantes
20/01/2009 07h53

Cade nosso monitor de Session´s

O único motivo que esta me levando a aprender JAVA são os recursos de gerenciamento de Sessions e implementações utilizando Web Services. Acredito que essas implementações ajudariam o PHP a ter o espaço que merece no mercado. Quantos de nós gerenciamos pessoas e sempre tivemos em mente que um programador PHP deve ter um salário 50% a menor que a de um programador JAVA ou .NET.

 Igor Escobar
20/01/2009 20h31

Acho que você esta equivocado, é tão simples fazer isso que voce mencionou como PHP, Rafael.

A questão salário, realmente, é um fato, mas depende de profissional para profissional.

 Leonardo De A. Pereira
20/01/2009 15h50

programar...?

Pensamento de programador 1: "Eu sei escrever essa rotina, posso ficar 10 anos sem mecher no pc que ainda sim eu vou continuar sabendo como escrever essa rotina, então qual o problema de ter uma ferramenta que escreva ela pra mim com o arrastar de um botão? Afinal, agilidade também é importante"

pensamento de um programador 2: "Meu pc nem mouse tem, faço tudo pelo teclado porque assim é que faziam os programadores de assembly, então é assim que farei, porque programar mesmo é escrever código, repetivamente e exaustivamente, nem ctrl+c e ctrl+v pode hein!"


creio que programar é o ato de fazer programas, e o bom programador é aquele que faz isso da forma mais eficiente possível.

 Wilker Silva
20/01/2009 16h02

concordo que existem facilitadores que podem ser úteis, mas existem um porém no que você falou, uma coisa é você saber fazer a rotina e ter algo para acelerar isso, outra é a grande parte dos programadores que não fazem nem idéia doque aquela rotina pode estar fazendo, mas usam porque seguiram um tutorial.

eu acho IDE até util para formar layout, mas na verdade ela so se torna útil quando sua forma de programar nescessita disso.

em .net ou em java (com swing, awt ou oq for), criar e posicionar layouts é algo muito trabalhoso por código, então realmente se torna um trabalho desnessessário criar aquilo na mao. mas se voce conhecer outras bibliotecas que uma interface de código muito mais limpa para formar layouts (um exemplo básico, HTML, sim, forma layouts do mesmo jeito, e de forma muito mais eficiente, e outro seria o Ruby Shooes, que faz software tb, e voce pode escrever o codigo do layout rapidamente). quanto a rotinas, eu não acho que rotinas devam ser resolvidas com snippets (trechos de codigos copiados, colados ou arrastados), rotinas devem estar encapsuladas em metodos/classes, e sendo assim, não precisam de um botao pra arrastar.

 Renan Oliveira
20/01/2009 17h04

Quem diz a linguagem é projeto.

Não tenho preconceito contra nenhuma linguagem, pois o que vai determinar a linguagem a ser utilizada é o dinheiro que o cliente quer investir, equipe de programadores e o principal o problema que deve ser solucionado.
Trabalho tanto com Java, .Net, PHP5, e acho que não tem como comparar PHP com as outras linguagens, pois acho PHP é util só para Web, (sei que pode ser implementada para desktop mas não é o caso, pois existe outras melhores,.), e alguns defendem PHP é OO, ta blz, mas como manter o conceito de OO se PHP nao garante nem o tipo da variveis/atributos. ?? :-(
Onde se executar esse codigo funciona caso exista o metodo "meuMetodo":
$ob->meuMetodo();
E o poliformismo onde fica ? voce vai observar quando tipar um parametro de um metodo, rs..
Nao concordo com o comentario : "Tal projeto está mais estável porque foi feito em java, .Net ou PHP"
Pois quem vai garantir a qualidade do projeto é a equipe de analistas, programadores, testes, etc.
Nao consegui ver os slides da palestra, a noite vejo em casa,.. hehehe
Acho que é isso.. flw

Só lembrando que ser orientado a objeto não implica ter tipagem estática.

Ruby é 100% orientado a objeto e no entanto usa tipagem dinâmica e o princípio do Duck Typing jogando toda a responsabilidade para o programador.

 Wilker Silva
20/01/2009 20h54

exatamente Felipe, concordo inteiramente com voce, e diria que muitas pessoas tem medo das linguagens dinamicas justamente por terem essa responsabilidade, eles nem pensam que em contra-parte a responsabilidade de lhe dar com os tipos, vem um gigante beneficio de uma programacao muito mais dinamica, onde voce tem uma liberdade muito maior para expor suas ideias no codigo, coisas como Duck Typing, mas pra mim a killer feature do Ruby sao os blocks e Monkey Path ^^

 Renan Oliveira
21/01/2009 10h15

Quando comentei sobre OO e o tipo das variaveis, é o uso de polimorfismo, herança, etc.
Exemplo:
Animal animal = new Dog();
Animal animal = new Cat();
Entao assim eu sei que o tipo da referencia é um Animal, mas o objeto real em si nao se sabe.
Não conheco Ruby para poder comentar.
Wiker, so porque Java, .Net serem tipadas voce nao consegue desenvolver o que quiser ?? Nao entendi qual é essa "liberdade" que voce comentou e que as outras linguagem nao oferecem...
Sendo que o limite para desenvolver qualquer projeto quem diz é a sua imaginação..
O codigo abaixo é muito mais dinamico ?
$myVariavel = 'asdfdjkslfjsdklfsd'; // agora é string
$myVariavel = 45; // agora é um int
$myVariavel = array(); // agora é um array
$myVariavel = e assim vai.. hehe

Essa discussão nao tem fim, voces sabem disso.
Penso que cada pessoa deve dominar a linguagem que utiliza e que te da mais grana..

fui!!

 Wilker Silva
20/02/2009 14h48

qdo eu falo de codigo mais dinamico cara, eu me refiro ao nivel de customizacao que voce pode fazer enquanto programa. um exemplo bem classico seria o pacote ActiveResource do Rails, vou lhe explicar melhor, o pacote ActiveResource faz extensoes Core ao Ruby. Isso quer dizer que esse é um pacote que implementa mais recursos a propria linguagem do ruby, ele extende as strings, arrays, enumeraveis, dando mais recursos ao padrao do rails. Em linguagem como Java ou .net isso seria impossivel de ser feito pelo simples motivo de que as classes são fechadas (voce nao pode mexer nelas depois de prontas), ja no ruby voce pode adicionar/modificar os metodos das classes a vontade (ateh mesmo das classes core como numeros e strings). e existe uma grande diferenca entre criar "string helpers" e extender a classe string, se voce criar um "string helper" (que é muito feito em linguagem como .net e Java) voce esta criando uma classe a parte que trabalha com strings, no meu conceito voce esta fudindo o OOP, pois esses metodos que voce cria sao feitos para trabalhar com as strings, entao eles deveriam ser adicionados a classe de string, com ruby é possivel fazer essa adicao, com Java nao... fora esse ActiveResource existe muitas outras classes que sao trabalhadas nesse conceito, como por exemplo a classe ActiveRecord (classe de acesso a dados do rails), onde existem enumeros plugins que podem modificar o seu comportamento, que é algo que nao seria possivel em linguagens como Java e .net... E nesse meu post eu apenas mostrei alguns beneficios do Monkey Path (abilidade para modificar classes em runtime), o ruby tem muito mais que isso a oferecer, entao eu recomendaria que voce estudasse o ruby e sua comunidade a fundo, de forma que voce pudesse entender melhor esse mundo para poder questiona-lo de melhor forma

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Igor Escobar é CST em Desenvolvimento de Sistemas para Internet pelo Instituto Brasileiro de Tecnologia Avançada. Desenvolvedor Web da Visie - Padrões Web e também escreve em outros veículos como o Web Insider e mantém um blog (blog.igorescobar.com).
InterCon 2009

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.