+6

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

criado por Sergio A. Pohlmann .'. em 23/08/2003 8:29pm
Tampouco desconsidero as soluções visuais. Estas, sim, não as utilizo, o que não quer dizer que não posso opiinar sobre elas. Visual "qualquer coisa" é uma opção interessante, sempre que estejas totalmente disposto a adaptar-te ao seu modo de trabalho, às suas técnicas e aos seus objetos :). Por isto é que não as utilizo! Ainda tenho que me adaptar às regras delas, e não estou disposto, neste momento.

Tenho vários amigos, que só usam ferramentas de programação visuais, e, segundo eles, lhes vai muito bem, para suas necessidades. Sublinhem as três últimas palavras!

Voltamos ao "depende!". Tem um montão de programas muito bons, circulando por aí, desenvolvidas, por exemplo, em VB. Ao mesmo tempo, não me lembro ter lido sobre Linus Torvalds desenvolvendo seu kernel com visual "qualquer coisa".

Sempre depende, de "que queres fazer", "que necessitas", "o que o cliente pede", ou "como posso fazer", além de outros "dependes" mais pessoais.

Por fim, quanto ao "programar sem saber programar", é necessário entrar um pouco no conceito de CASE (Computer Aided System Enginnering).

As ferramentas CASE estão conceitualmente desenhadas para auxiliar o programador. São complexos programas que facilitam, desde o desenho do sistema (base de dados, fluxos, objetos, formulários, consultas, etc), até a fase final de uso e manutenção dos mesmos (passando por documentação, óbviamente).

Normalmente, alguns "programadores" com _muito_ pouco conhecimento fazem propaganda da tecnologia CASE como sendo uma forma de que o usuário possa desenvolver e manter seu próprio programa, sem necessidade de nenhum aprendizado, o que, normalmente resulta em ter, a longo prazo, um cliente insatisfeito (não foi o que ele esperava), um monte de dinheiro perdido (as soluções conceitualmente mal desenhadas, normalmente, não podem ser aproveitadas para novos projetos - leia-se _corrigir_ o projeto original), e um posto de trabalho de um bom programador, desperdiçado (o que NÃO foi contratado, originalmente, em virtude de que o cliente podería fazer tudo sozinho). Tudo isto sem contar com a perda de confiança, em sistemas e programadores, por parte do cliente, que só tem a prejudicar-nos, com o tempo.

Sou radicalmente contra a filosofia simplista de "programar sem saber programar", que é o que muitos pregam, como sendo a grande solução para tudo. No entanto, sou um feroz defensor da tecnologia CASE. Observe com atenção o que disse aí atrás, para não confundir as duas coisas, e lhes apresentarei um exemplo pessoal, para aclarar, melhor:

Tenho um projeto de CASE, que estou desenvolvendo, já fazem 11 (isto mesmo) anos. e estimo que levo mais dois anos para, finalmente poder coloca-lo no mercado. O motivo da demora, sem contar a total falta de patrocínio (grana, capim, verdinhas, ou como prefiram chamar), é, justamente o fator de estudar os motivos das falhas conceituais apregoadas aos atuais CASE, e implementar coisas e conceitos diferentes.

Não quero que meu usuário gere um programa, sem ter nenhum conhecimento. Quero que meu usuário aprenda noções de análise, para poder ver suas necessidades, e conceitos de dados, para, com o auxílio e as facilidades de uma ferramenta CASE, desenvolva, fácil, seu sistema. Se ele _sabe_ o que fez, estará satisfeito, porque terá, como resultado final, o que desejava, poderá alterar ou ampliar seu projeto, como e quando deseje, e, principalmente, terá muita confiança na ferramenta CASE utilizada. E, em nenhum momento me preocupa o preço desta ferramenta. Um usuário satisfeito, pagará, com prazer, o preço estipulado.

Não o quero comercializar com a idéia de que é algo barato e fácil, com o qual o usuário final pode fazer tudo, sem nenhum conhecimento. Mas, sim, quero que o usuário tenha condições de utiliza-lo (como o próprio nome já diz), como uma indispensável _ferramenta_, que, ao fim e ao cabo, lhe resulte!

Comento isto (a situação pessoal), para tentar dar um exemplo claro da diferença, entre "programar sem saber", e desenvolver com CASE.

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.)