+6

PHP5 e Polêmica sobre Linguagens de Programação

criado por Sergio A. Pohlmann .'. em 23/08/2003 8:29pm
No decorrer do texto vamos ver uma série de links. Sugiro que, se tens um tempinho, experimente ir vendo estes links, paralelamente a leitura do artigo, porque será mais fácil e atrativo, acompanhá-lo (assim espero). E uma boa xícara de café assegurará olhos abertos para o tema :)

Alguém tem dúvidas a cerca da utilidade de navegar em internet, para manter-se atualizado quanto à sua carreira? Bom, tendo em conta o progresso vertiginoso que tivemos nos últimos 20 anos, em termos de informática (que às vezes pode ser contestado, como veremos mais adiante), estamos frente a um interessante fenômeno profissional: Os programadores de hoje, não importando se são universitários, autodidatas, se começaram seu interesse ali, naquele curso, logo no meio da quadra, ou se (geração .net ;) ) aprenderam a programar em um curso on-line, precisam atualizar-se, cada vez mais. E, desta atualização, depende, diretamente, sua vida profissional.

Alguém vai dizer:

- SEMPRE foi necessário a atualização para qualquer programador que se preze.

Sem nenhuma dúvida, concordo. Mas temos que reconhecer que as exigências de atualização do passado (leia-se 10, 15, 20 anos atrás) eram muito mais modestas que as atuais.

Ah! Claro! Ainda estás curioso pela notícia do PHP 5, né? E está se perguntando se vai funcionar, que novidades tem, se vai competir, no mercado, é isto?? Está bem. Dá uma olhada no artigo do link abaixo (sim, está em inglês, não reclame), e depois seguimos nosso artigo:

http://www.theopenenterprise.com/story/TOE20021204S0001

Agora prossigamos, que o tema é mais profundo. Observem que muitas coisas mudaram. Desde quando dizíamos (muitas vezes ainda o fizemos) que programar era uma arte, até hoje, quando programar já não pode ser considerado um dom, e sim, uma sequência de aprendizagem, técnica, e aplicação da tecnologia correta, na correta e oportuna necessidade. (comercial, isto, não?)

Existem motivos, realmente, de fundo, em tudo isto. Porque alguém desejava programar, digamos, em BASIC, no meio da década de 80? E porquê, no início da mesma década, um monte (montão) de gente enlouquecida ;o) - no flames, please - delirava com COBOL? No final desta mesma década, "C" era um dos grandes objetivos, no meio dos 90, "babavam" seus teclados, diante de soluções visuais, e, no final da década, começaram, desesperados a comer internet (java, HTML, ASP, PHP, JSP, Phyton, Perl, só por citar alguns)?

A resposta mais óbvia que me ocorre, só serve para explicar os anos 80: As linguagens eram escolhidas por uma questão de prazer pessoal, necessidade da aplicação, ou disponibilidade de hardware/software, no momento.

O pessoal que programava nos mainframes EDISA, LABO, Cobra, entre tantos outros, não tinham muitas opções. Quando se falava de negócios, saltava a palavra COBOL.

E estávamos, ainda, na reserva de mercado, que tanto bem, e tanto mal nos fez. Os usuários de computadores domésticos, tinham, a disposição, uma pequena lista de opções de linguagens (pequena, realmente), e escolhiam o que usar, ou por conhecimentos anteriores, ou por afinidade com uma ou outra linguagem.

Isto pode trazer a tona outra pergunta tonta, que, várias vezes, nos fazem: Qual o melhor sistema operacional? A resposta, vindo de qualquer profissional que esteja um pouco consciente da realidade, invariavelmente, será: - Depende.

Aclaro de outra forma, com outra pergunta: Sabem porque os usuários ditos domésticos, no meio da década de 80, não discutiam o tema? Porque não tinham opção! Não vamos, aqui, discutir o que é melhor, porque não cabe, mas, pessoalmente, eu, e muitos outros contemporâneos, conhecia algo de UNIX, entretanto tinha que utilizar CP/M (conheceram isto???). Porque? Simplesmente porque não existia UNIX para o tipo de computadores que meus clientes utilizavam.

Em certos casos, se programava em BASIC (APPLEBASIC e MBASIC), nesta época, simplesmente porque as alternativas que se me apresentavam eram quase nulas. Não porque eram a melhor linguagem, mas porque era a melhor opção, no momento.

O número de linguagens, de lá para cá, vem crescendo, exponencialmente. Comece a fazer uma lista, procure informações, e, rapidamente, terás que desistir.

Nos anos 90, tivemos duas interessantes turbulências conceituais:
- Primeiro, tudo o que se desejava fazer, devia ser feito com objetos. Tudo eram objetos. Sem OOP, não se pode programar, diziam muitos.
- Segundo, vieram os aplicativos e linguagens "visuais". Unir o visual, aos objetos, significa a solução para todos os problemas que se podem apresentar para um programador.

E, da união destes conceitos equivocados, muitas vezes ainda tivemos que ver, ouvir, e conviver com outro:
- Se unimos objetos, e programação visual, podemos ter ferramentas fántásticas, que permitem programar, sem que se saiba programar, sem que seja necessário escrever uma só linha. "A arte de programar já não pertence mais aos programadores". Credo!

Falando sério: Você, realmente acredita que não se pode programar sem objetos? Acha que a programação visual foi, é, ou será, a única e viável "solução da lavoura"? E crê, de verdade, que o conceito de "programar sem programar" pode ser bem sucedido?

Por favor, não confunda!

Não estou duvidando da OOP. Ao contrário, eu, pessoalmente, limitadamente, e humildemente, utilizo OOP, sempre que creio que necessito, que o projeto amerita, e que meu conhecimento permite. Mas me nego a aceitar que "não é posível ter um bom programa, sem ter objetos".

Voltamos, sempre, ao "depende". Existem programas em que impera, a sua utilização; existem os que ficam mais legíveis e "amigáveis"; existem projetos em que, devido às suas necessidades e características (como reusabilidade de código, ou abstração de dados, só por citar dois exemplos simples), serão muito mais fáceis de criar e manter, com o uso de objetos. Mas existem, também, aquelas aplicações, onde o uso de objetos pode tornar-se desnecessária, e algumas aplicações onde seu uso pode ser até inviável, completamente.

Assim, quando assisto a "lindas" guerras de comentários sobre o suporte a OOP, em PHP, sempre procuro centrar-me, na seguinte pergunta: "Para o projeto que necessito, PHP possui suficientes características de Programação Orientada a Objetos?".

Se a resposta for "Sim", então é sinal de que as famigeradas limitações, citadas em todos os lados, como a falta de herança múltipla, a ausência de variaveis realmente privadas, a não existência de tratamento de excessões ( PHP5 já tem), não importam para meu projeto. E se acho que este mesmo projeto, em um futuro próximo, não vai precisar deles, e que PHP, neste momento satisfaz as necessidades, mãos à obra!

Se, no futuro, as necessidades forem outras, ou se os projetos forem outros, talvez seja necessário utilizar outra linguagem, mas, como disse, temos que estar atualizados, e com a mente suficientemente aberta para fugir dos nossos fanatismos de linguagem, e aceitar, quando, em determinadas circunstâncias, temos que usar outros recursos :)

Algum dia, talvez vamos programar em algo como xyz II, ou monkeyhead versão 3.2, ou algo assim :). E precisamos estar aptos a aceitar as necessidades, os avanços, e adaptarmo-nos ao progresso.

Comentários:

Mostrando 1 - 10 de 45 comentários
Olá Sérgio,

Primeiramente, parabéns pelo excelente artigo, o qual foi ecrito com muita clareza e condução de pensamentos do leitor.

Foram tantos os pontos-chave abordados por você, que fica difícil comentar sobre cada coisa. Mas escolhi falar sobre um ponto.

Realmente, não devemos aderir à uma panacéia e achar que uma linguagem é a melhor e adotá-la como única solução viável de se trabalhar. Você é muito feliz em enfatiza o termo "depende". Depende de que objetivo se quer atingir.

Podemos pegar muitos atalhos para atingir nossos objetivos por se mesclar uma infinidade de tecnologias que outros simplesmente desprezam. Eu, por exemplo, optei por programar em PHP procedural. Mas muitas vezes me vejo obrigado a mesclar meu código com (óbvio!) HTML, JavaScript, XML e com o próprio PHP escrito em OOP (as famosas classes que já existem prontas).

Outra forma de se mesclar como recurso de atalho é usar um bom programa WYSEWYG (nem sei se é assim que se escreve, mas deixa para lá!) para gerar códigos que você precisará incorporar ao seu código principal em tempo recorde. Talvez alguns fanáticos defensores do código-puro escrito à mão me aterrorizem por isso, mas costumo gerar formulários com o Dreamweaver e copiar e colar o código dele para dentro de meu script PHP. Não que eu não saiba escrever HTML, pois o faço muito bem, mas, mais uma vez entra aqui o "depende". Se eu estiver com o prazo apertado vou lançar mão desse recurso sim, pois me economiza muito tempo. O mesmo vale para outras coisa que não tenho muito domínio, como JavaScript por exemplo. Prefiro pegar scripts prontos na web para trabalhar, mas, na falta destes, simplesmente simulo uma operação no Dreamweaver que gere o código. Depois vou lá e copio. Além de funcionar ganho tempo.

Certa vez um colega numa lista de discussão torceu o nariz quando orientei outro programador iniciante a usar este método para se obter com facilidade o que ele queria. Creio que ele deveria ler seu artigo e compreender o sentido amplo e profundo da palavra "depende", antes de julgar certo ou errado o que foi feito em termos de programação.

Mantenho minha mente aberta quanto a isso porque venho da mesma época mencionada por você, em que não tinha muita opção e programava em BASIC e ASSEMBLY para um pequeno micro com processador Z80A (ZX Spectrum). Acompanhei a evolução da computação e tive (e continuo tendo) que fazer mudanças para me adaptar à nova realidade, senão estava fora do negócio.

Mais uma vez parábens por ter levantado uma discussão tão construtiva.
22/10/2004 10:05am (~19 anos atrás)

Olá Ségio,

Primeiramente, parabéns por esse excelente artigo, está muito bom.
Então, a primeira linguagem de programação que "toquei", foi uma visual "algo", ou seja, Delphi 3. Não foi por necessidade, mas sim, dificuldade em iniciar o aprendizado com linguagens mais "cruas". Com o Delphi, eu consegui aprender toda a lógica de programação. Mas, não cheguei a usar a linguagem em por 3 meses, pois não houve necessidade.
Eu estava precisando aprender ASP para meus sites, então parti para ela... Usei ASP por uns 8 meses, mas estava apresentando muitos problemas, pelo desempenho e falta de recursos e expansibilidade. Foi então que encontrei o PHP e nela estou até hoje, fazem 2 anos.
E fiquei todos esses 2 anos sem programar em OOP. Comecei a programar seguindo OOP agora em dezembro, mas, por necessidade de ter algo mais portável.
Percebe-se realmente que o "depende" faz parte de tudo.

Abraços
Alfred.
04/02/2004 10:46am (~20 anos atrás)

Realmente, Arturo, suas observações são bastante precisas.
Nosso mundo sofreu uma transformação muito grande, com o advento da "Windowsmania", a famosa mania visual implementada, principalmente, pela máquina mercadológica da MicroSoft (nada contra isto, o mercado está aí para ser explorado, e as novidades só fazem avançar mais nossos padrões de conhecimento e exigencias).
De qualquer forma, o tema aqui é, exatamente, o de não malhar nenhuma das tendencias, e sim, incentivar aos programadores (de qualquer linguagem), que estejam atentos às mudanças e tendencias, e que tenham "cabeça aberta" o suficiente para acompanhar as mudanças naturais do universo informático.
Obrigado pelo comentário.
Abraços

*** ---
Realmente, Arturo, tus observacionas son muy puntuales.
Nuestro mundo ha sufrido una transformación muy grande, con la llegada de la "Windowsmania", la famosa mania visual implementada, principalmente por la máquina de marketing de MicroSoft ( nada contra eso, el mercado está ahí para ser explotado, y las novedades solo hacen avanzar más nuestros patrones de conocimientos y exigéncias)
De cualquier forma, el tema aquí es, exactamente, el de no "bajar la caña" a ninguna tendencia, pero, sí, incentivar a los programadores (de cualquier lenguaje), que estén atentos a los cambios y tendencias, y que tengan "cabeza abierta" el suficiente como para acompañar los cambios naturales del universo informático.
Gracias por el comentário.
Abrazos

Sérgio A. Pohlmann .'.
27/10/2003 8:04am (~20 anos atrás)

Arturo disse:
Sergio, es cierto q se asocia mucho los lenguajes visuales con la tecnología POO, pero debemos ver que los lenguajes actuales están hechos para facilidad, supuestamente, de cualquier usuario con intereses de programación.
También debemos recordar a los lenguajes de 4 generación, como ser el Genexus que ya su metodología es diferente. Ya no se mira más la estructura de los datos, sino la interfase y en base de ahí se parte en la programación.
También se debe saber q en las universidades se utiliza un lenguaje poderoso como es el C++ q data de hace 20 años atrás de su desarrollo y q aún no ha podido ser reemplazado por otro para la enseñanza.
En el caso de las herramientas CASE propiamentes dichas, estas avanzaron mucho en lo que son actualmente, cabe destacar El Powerdesigner DataArchitect, q ayuda en mucho al programador y al analista.
Otro punto también a tener en cuenta es que a finales de la década de los 80 tuvimos el ataque de Microsoft, con su SO Windows, y la programación tuvo un vuelco hacia este. Dejandose buenos lenguajes bajo DOS como ser el clipper,fox, pascal, etc. Porque la tendencia era lo visual, y si no se desarrollaba en entorno visual, era un imposible de vender un sistema, por más bien q este funcionase. Todo esto en los 90. Actualmente nos estamos yendo hacia Internet y seguimos como antes. Buscamos el mejor lenguaje q nos simplifique la vida, y no nos haga pensar demasiado.
ATTE. Un abrazo
24/10/2003 2:44pm (~20 anos atrás)

Justo! :)

Perfeito, Janio! Excelente exemplo.
Isto, mais uma vez, demonstra o que tanto afirmamos ser a grande necessidade dos programadores ou futuros programadores: VONTADE DE APRENDER, GARRA e DETERMINAÇÃO. Incentivos mais que justificados (sem contar o din-din, que ajuda, hehehe), para alguém agarrar-se com uma linguagem, estudar, e, realmente, aprender.
Parabéns, Janio, porque, na qualidade de professor da menina citada, também merece levar seus méritos.
Este é um exemplo que levarei para meus alunos, prometo. E tenho certeza que vai surtir efeito.
Um grande abraço fraterno
[]'s
Sergio .'.
20/10/2003 6:22am (~20 anos atrás)

Tudo justo?

Tenho visto, exceto pelo comentário do próprio Sérgio, um grande número de comentários de discentes de cursos técnicos, mas nenhum comentário de docentes. Por isso vão aqui algumas linhas sobre o assunto.

Leciono as cadeiras de Internet I, II e III em um curso técnico, sendo que boa parte do currículo é composta pelas ferramentas Macromedia. Recentemente, com a contratação de uma nova professora para as áreas visuais, gráficas, pude dedicar-me mais ao ensino das cadeiras de programação para web(HTML incluso).

Tenho a sorte de ter turmas reduzidas, não mais do que 15 alunos a cada vez, e uma facilidade de comunicar-me com eles que vai além da dos outros professores.

Contudo, preciso exercitar a didática e meus conhecimentos de psicologia ao máximo a cada aula para tentar vencer a apatia dos alunos. Vão para a sala de aula para falar de futebol, para baixar programas pela Iternet, para ler e-mails, para ganhar presença, para qualquer coisa, menos com o intuito de aprender. Ficam surdos ao que o professor fala, cegos ao que ele mostra, e quando mais tarde, num momento de propensão ao aprendizado, ouvem a mesma coisa novamente, agem como se fosse uma grande novidade.

Felizmente há as exceções, e são estas que realmente incentivam um professor de curso técnico a continuar fazendo seu trabalho (particularmente, não preciso deste trabalho, haja vista eu ganhar muito mais em minhas atividades de consultoria e desenvolvimento).

Uma de minhas alunas do ano que está por encerrar era operadora de caixa da empresa em que trabalha, mas queria encontrar uma oportunidade de melhorar. Em uma reunião geral da empresa ficou sabendo que iriam investir cerca de doze mil reais em um sistema de e-commerce, o que a inquietou, levando-a a questionar, em aula, se ela própria não seria capaz de desenvolver o e-commerce, e ficar com esse dinheiro para si.

Naturalmente, faltaria à jovem experiência, mas não energia para ir em frente: daquele momento em diante as aulas de SQL passaram a ser baseadas em exemplos que ela trazia, e ao entrarmos em PHP ela já estava desenvolvendo, em aula, um protótipo de site para apresentar ao patrão.

Não deu outra: antes mesmo de aprender JavaScript na escola, ela venceu o medo, o nervosismo, e todas as demais armadilhas psicológicas, e pediu ao patrão para não trabalhar numa determinada tarde no caixa, pois queria mostrar-lhe algo: o protótipo. Argumentou que o dinheiro que ele iria investir numa empresa de desenvolvimento poderia ser melhor investido nela, que a empresa teria mais controle sobre o desenvolvimento do que se deixasse na mão de estranhos, e...

E o resultado é que desde então ela é a webmaster da empresa. Aumentou seu salário em mais de 100%, assumiu responsabilidades, está aprendendo a programar e ganhando dinheiro para isso.

De minha parte fico feliz por ter propiciado o conhecimento básico que a levou a encarar o desafio, tão feliz a ponto de nem considerar os outros alunos que simplesmente se recusam a pensar, e mais ainda a crescerem sozinhos.

Janio .'.
18/10/2003 6:58pm (~20 anos atrás)

Excelente, Marcos, o estudo.
É interessante como podemos observar o forte fracionamento do uso das linguagens no mercado. Reforçamos tudo o que foi dito antes, mais uma vez.
Obrigado.
[]'s

Sérgio .'.
17/09/2003 1:57pm (~20 anos atrás)

Roberto e Sergio,

segue as estatísticas sobre a utilização de libguagens de programação e tendência de mercado:

Linguagens de programação por
setor de atividade no Brasil

Comércio: VB (34,1%),
Delphi (29,6%),
Clipper (20,5%)

Finanças: VB (60,4%),
Cobol (37,5%),
Java (35,4%)

Indústria: VB (44,3%),
Delphi (20,8%),
Cobol (19,1%)

Informática: VB (55,5%),
Delphi (31,2%),
Java (13,7%)

Infra-estrutura:
VB (47,2%),
Delphi (27,8%),
Java (22,2%)

Serviços:
VB (48,9%),
Java (33%),
Delphi (30,9%)

Setor público:
VB (43,5%),
Java (34,8%),
Java Script (26,1%)


Linguagens de programação usadas
pelas empresas nacionais

Visual Basic (VB) for Windows 50,1%
Delphi (Borland) 27,3%

Java (qualquer compilador) 17,7%

Cobol (qualquer fornecedor) 15,9%

Clipper (Computer Associates) 14,5%

C/C++ (outros compiladores) 10,3%

Java Script 7,6%

ASP 3,2%

Oracle 3,0%

|Computerworld - Edição 387 - 11/06/2003|
Autor: Ricardo Cesar
Data: 17/06/2003

//--------- Link´s ---------//
Maiores detalhes:

http://www.computerworld.com.br/AdPortalV3/adCmsDocumentoShow.aspx?documento=26167&Area=1

http://www.javainside.com.br/modules.php?name=News&file=article&sid=20

//--------- tendências ---------//


Para onde caminha a TI na América Latina
Confira o comportamento na região de algumas tecnologias importantes nos próximos anos

BI - O grau de maturidade já é razoável e os projetos de Business Intelligence devem estar consolidados em menos de dois anos.

CRM – Está saindo da fase de expectativas infladas e demorará de dois a cinco anos para atingir a maturidade.

Web services – Começam a ser usados internamente e em mercados financeiros, mas estão muito imaturos na relação entre empresas.

Linux – Para funções específicas e pontuais em servidores, o sistema operacional de código-fonte aberto alcançará a maturidade em menos de dois anos.

E-learning – As empresas da América Latina estão cometendo o erro de adotar treinamento eletrônico antes de ter um projeto de gestão do conhecimento.

Voz sobre IP – Menos de dois anos para atingir a maturidade. O tempo de amortização das redes legadas impede que a tecnologia se dissemine mais rapidamente.

Portais corporativos – A evolução segue a um patamar razoável, mas o portal vai se tornar obsoleto – será incorporado em algo maior, o que o Gartner chama de “smart enterprise suites”.


Abraço a todos,

Marcos L Biscaia
17/09/2003 11:22am (~20 anos atrás)

Sergio,
Este artigo esta mesmo otimo porque me faz refletir. Fui procurar como esta o mundo Java para comparar. Embora disse acima que necessitava mais codigos para programar, isso foi na verdade pelo impeto de botar a mão na massa. O Java tem coisas muito interessantes. Podemos nos servir de estruturas Model View Controler (Design Patterns) com o Struts ou Jbanana (nacional). Há o Jboss (servidor de aplicação -open source) os famosos javabeans, e já se fala em AOP, Aspect Oriented Programming. Hora de uma reciclagem de conceitos porque embora exista modismos passageiros, tambem ha metodos para não se precisar inventar a roda e a estrada na maioria de nossos projetos ou integrar tecnologias antigas e novas que embora funcionem acabam virando mais um remendo na colcha de retalhos que o sistema de uma empresa pode se tornar. Não estou para defender Java, criticar esta ou aquela linguagem, ou seguir UML na risca, mas para compreender algumas tecnicas e metodos que nos possibilitem crescer como programadores e analista de sistemas.
16/09/2003 7:15pm (~20 anos atrás)

Diego Matos disse:
Realmente acho que vc está de parabéns pelo seu artigo Sergio, o mais importante é que ele nos traz à velha discusão de nos atualizarmos sem termos preconceito ou radicalismo com nada, eu adoro programar em php mas isso nao me impede de me adaptar conforme as minhas necessidades ou a dos meu clientes...

Parabéns
15/09/2003 3:48pm (~20 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)