Geração framework (qual é a sua opinião?)

Tenho notado que em fóruns,comunidades e até mesmo em chats, muitos programadores (“não todo, mas na sua grande maioria os novos programadores”) estão muito dependentes do uso de frameworks para seus desenvolvimentos.

Antes que pensem que estou aqui para pregar algo do tipo “morte aos frameworks”, quero deixar bem claro que uso e adoro usar alguns frameworks do mercado, sou usuário dos seguintes frameworks:
1 – Prototype (http://www.prototypejs.org/)
2 – Script.aculo.us (http://script.aculo.us/)
3 – JQuery (http://jquery.com/)

Entre outros…

O que está me deixando preocupado é que, geralmente quando ocorre algum problema com o framework, tais como:
1 – “Não atenda na solução do problema”
2 – ”Bugs encontrado”
3 – “Problemas em usar”

Muitos programadores não sabem como resolver ou não possuem conhecimento ou esperiência para resolver esses problemas.

Será que eles esqueceram ou não sabem como realmente as coisas funcionam por dentro do framework ?

Claro que ninguém é obrigado a saber tudo, mas acredito que o básico se faz necessário nessas horas…

Na empresa que trabalho, aconteceu algo muito parecido com a questão supracitada.

Lá existe um “Programa de Qualificação Profissional”, onde os estagiários passam por um ciclo de aprendizado ou treinamento para poder entrar na fabrica de software com uma base…

Pois bem….

Certo dia um dos estágiarios estava com muita dificuldade para usar alguns recursos do Javascript (sem framework). Para ajuda-lo chamei um programador que por sinal sabe tudo de jquery tanto nas coisas básicas quanto nas coisas avançadas
(criação de plugins para jquery, utilização de seletores avançados e etc..).

Para minha surpresa, ele teve uma grande dificuldade para ajudar o estagiário, o que me deu a entender é que de tanto usar frameworks, ele não sabia mais como usar o “javascript puro”…

Será que é seguro somente usar frameworks ?

Gostaria de saber a opinião de vocês…

PS: Sei que meu português é um pouco falho, se encontrar algum erro gramatical, não se espante!

24 comentários

  1. Felipe disse:

    sinto isso de verdade,

    não só nesses que vc sitou mas também naqueles frameworks(feito em casa)

    as vezes, pego para olhar uma outra coisa e de tanto usar esse frameworks citados

    eu não sei como fazer de forma diferente.

    Facilita a vida? sim facilita.

    dificulta o aprendizado? sim é muito.

  2. dotenorio disse:

    Pois bem, hoje em dia tudo, absolutamente tudo o que você precisar fazer é só jogar no google com a palavra jQuery no fim que quase sempre terá uma solução. Eu como a maioria das vezes usava javascript puro, não tive problemas com criação de variações do jQuery ou de refazer funções em JS puro, mas é uma tendência e na verdade pra mim o jQuery ele funciona como uma nova linguagem de programação por ter sintaxes próprias e assim por diante, então creio que não necessariamente quem sabe jQuery sabe Javascript e vice-versa e quem sabe os 2 está a um passo a frente!

    []’s

  3. viniciuswebmaster disse:

    Bem, todos os fatos citados dependem e muito do programador.
    Um bom programador deve saber como usar o framework, sem esquecer os principios básicos da linguagem (lógica).
    Quanto a lembrar sintaxe, palavrinhas que podem ser decoradas por qualquer “criança”, o JQuery ta ai pra acabar com a complicação mesmo, deve ser adotado sempre que possível, e, em breve, veremos browsers inteligentes (esquece o IE… rs) que terão o JQuery, Script.aculo.us e outros bons frameworks como bibliotecas próprias, facilitando ainda mais a utilização dos mesmos.

    Parabéns Frank, bom blog, boa matéria! ^^

    []’s, Vinicius Webmaster

  4. Igor disse:

    Concordo plenamente, sou estagiário na empresa citada pelo autor deste tópico e vejo no dia-a-dia a real necessidade de se ter o conhecimento básico de tudo aquilo que se faz com os frameworks hoje em dua. Por essa razão, entendo porque as faculdades, quando ensinam HTML, ensinam usando o bloco de notas… com o intuito de forçar o aluno a conhecer o fundamental.
    Penso que o uso do framework serve para facilitar a vida e ganhar tempo, porém sempre que possível treinar e rememorar os códigos em sua forma “pura”, torna-se imperativo, principalmente em situações em que os frameworks não resolvem.

  5. Pietro disse:

    Olá Pessoal, não importa qual framework você utiliza, a idéia dele é facilitar a vida do programador, por isso eu utilizo o JQuery por que já estou mais acostumado, mas se o JQuery não conseguir atender a minha necessidade eu “apelo” para outro framework.

    Att,
    Pietro Vieira

  6. phpjquery disse:

    Primeiramente obrigado pelo convite!!!

    Outro dia estava eu na UFT – UNIVERSIDADE FEDERAL DO TOCANTINS discutindo sobre FRAMEWORKS com alguns novatos do curso de computação, a maioria de vocês sabem que todo calouro é empolgado né rerere, pois bem, ele tava metendo o pau no tal do Delphi, dizendo que nao prestava porque ja tinha tudo pronto e o sujeito não precisava ser um bom programador para desenvolver no produto citado. Concordo com o garoto em partes, pois um programador que se preze deve saber sair de situações que os frameworks não comtemplam com clareza, eu mesmo já me deparei com algumas situações, tanto em Delphi quando em JQuery, não recomendo de forma alguma o uso de Framework para iniciantes no mundo da Programação, pois eles serão totalmente aliendos pela comodidade que lhes serão oferecidas, já para trabalho com produção, é muito intereçante o uso de Frameworks, pois agilizam d+ o desenvolvimento e todos aqui sabem que “TIME IS MONEY OHHHHHH YES!!!”. Na minha opiniao a galera tem q fazer até Estruturas de Dados II, daí sim podem usar os FrameWorks.

  7. Diego disse:

    Programadores que já desenvolvem há anos em JavaScript:
    Uma vez que a finalidade desses frameworks é de justamente facilitar e agilizar o desenvolvimento – escrever menos, fazer mais – podemos, sem perceber, atrofiar a nossa capacidade de pensar mais e escrever mais para alcançar os mesmos resultados.

    Geração Framework, sem o uso de JavaScript puro:
    Só aprendem a desenvolver em jQuery e não fazem idéia, e muitas vezes nem querem saber, como a coisa funciona por trás.

    Conclusão:
    É muito importante que qualquer aprendizado seja iniciado sem o uso de certos facilitadores.

    Essa dicotomia na relação aprendizado versus tecnologia pode ser discutida e observada em outras situações no cotidiano…

  8. Olá Peixoto.

    Eu compreendo o seu ponto de vista, e entendo qual é o problema, mas na verdade, na minha opinião, este problema não está diretamente relacionado com o framework. Para ilustrar melhor, posso usar como exemplo alguns colegas de trabalho que trabalham com Hibernate e Spring (Frameworks Java), porém não dominam conceitos básicos da linguagem, ou até mesmo, colegas que elaboram queries SQL a anos, mas nunca se deram o trabalho de ir além e pesquisar um mais sobre funções avançadas e PL/SQL.

    Creio que este problema, esta na verdade relacionado a motivação e entusiasmo que cada ser humano tem em buscar conhecimento. Alguns se dão por satisfeito em aprender apenas o básico para resolver seus problemas do dia-a-dia de trabalho, outros, inconformados, vão muito além e buscam aprender tudo o que podem até dominarem os aspectos mais avançados.

    Pergunte a um desenvolvedor mediano o que ele faz quando encontra um bug em um framework opensource, se ele responder que tenta resolver e contribuir com o projeto, ou que seja, apenas avisar os responsáveis, eu já ficaria admirado.

    Concluindo o raciocínio, creio que o que faz a diferença no quão avançadas são suas capacidades em uma tecnologia, ou linguagem de programação, não está diretamente relacionada ao fato de se usar ferramentas de apoio como frameworks, mas sim, na atitude de cada um tem em relação a aquisição de conhecimento.

    Abraço.

  9. Bruno disse:

    Boa Francke!

    É uma questão que deve ser levantada até mesmo para uso de frameworks em PHP e outros. Eles facilitam tanto a vida que em determinado momento você vai precisar “criar” ou modificar algo, e vai sentir dificuldades, com certeza!!!

    Isso é em qualquer nível: stag, jr., pleno.. etc. A prática é muito importante em tudo na vida! É praticando que conseguimos assimilar as coisas.

    Abraço!!!

  10. Acredito que a adoção ou não de um framework deve ser tomada em função da análise da complexidade da solução. Se for uma aplicação de alta complexidade normalmente é melhor montar uma inteligência proprietária para não ficar limitada as deficiências do framework. Caso contrário realmente vale a pena para não reinventar a roda. Se já tem pronto e funciona para que fazer novamente.

    Abraços

    Fabio Carneiro.

  11. felipe disse:

    Não concordo muito não ..
    vc está se referindo a restruturação do pensamento .. é óbvio que de tanto usar uma ferramenta, nossa memória de curta duração apagará outros conhecimentos e será necessário acessar a memória de longa duração, mais lenta, para recordar coisas que não usamos constantemente ..
    Eu não sou a favor da “framework dependência” ..
    Não é à toa que as industrias atuais, principalmente a petroquímica, seleciona pessoal e faze-os trabalhar em toda a área de produção .. de modo que eles passam a conhecer todo o processo e não apenas aquele para o qual foi selecionado.
    E outra, somos treinados para utilizar ferramentas, não para resolver problemas .. aí entra naquela longa discussão, vamos ser especialistas ou generalistas ? me abstenho de outras opiniões.. bye!!

  12. Luiz F. C. Santos disse:

    Seguinte, antes de opinar, queria dizer que o que vou falar, não é para ser seguido. 😀 … Ou melhor pode ser seguido, mas gosto muito da linha. Faça o que eu digo, mas não faça o que eu faço.
    Eu estou acostumado a utlizar javascript(sem frameworks). Aliás até utilizo sim, mas para algumas finalidades.
    Por ex:
    Se preciso fazer algo novo, que eu não saiba. O que eu faço(google é claro). Nele eu encontro N formas de fazer o que eu não sei. Daí eu me pergunto. Vai ser mais fácil executar a minha tarefa utilizando os meus conhecimentos + o conhecimento adquirido pela internet ou vai ser mais fácil eu utilizar um framework que resolve o meu problema sem que eu saiba o que ele fez e como fez ?

    Eu sempre tento a primeira opção. Tentar desenvolver um algorítimo com o meu conhecimento da linguagem. O fato é que hj em dia os frameworks(tanto para JS, quanto para outreas linguagens), estão mto evoluidos, bem documentados e etc… Porém não podemos deixar de saber a linguagem pura(por mais que vc consiga resolver tudo com Jquery/Prototype).
    Vamos a um ex ?

    Linq to Sql é algo novo no framwork .net. É inovador, seguro, bom, rápido e tudo de melhor que pode se ter. Mas temos um problema. Se hj alg aprende ou vicia a programar utilizando link, o que vai acontecer quando está pessoa pegar um projeto legado ou com outra estrutura ? Vai ter que aprender DataSets, ADO .NET dentre outras técnicas…
    Isso sem fazer que temos outros frameworks para a mesma funcionalidade(Hibernate, Entity Framework ou até mesmo a criação de um framework própio para a mesma tarefa).

    Para resumir tudo que “tentei” dizer, acho que a pior coisa para alg que trabalha na área de TI é ficar preso a uma só ferramenta.

    “Nunca fique viciados em Frameworks, por mais que eles sempre resolvam o seu problema, um dia eles podem não resolver. ”

    Abs… Parabéns pelo blog!

  13. Bem, um framework é criado para que realmente você não saiba o está acontecendo (encapsulamento) e só espere o retorno, eu sou a favor de seu uso, pois sua produção aumenta.

    Comentando sobre: “Muitos programadores não sabem como resolver ou não possuem conhecimento ou esperiência para resolver esses problemas.”

    Mais hoje em dia o google, foruns, redes sociais, etc, etc… estão ai para as dúvidas e MUITAS vezes são sanadas (pelo menos todas as minhas foram até hj XD)

    Mais veja bem, você tem um projeto de um site para entregar em 5 dias.
    O que é melhor? Você decorar a sintaxe do javascript puro ou digamos a do Jquery para pegar o valor do elemento passando o id?!

    document.getElementById(‘nome’);
    ou
    $(“#nome”).val();

    qual o mais sujeito a erro?

    Mais realmente existe particularidades, uma vez passei praticamente uma semana para usar um plugin em Jquery, masssssssssss eu estava tentando personalizar 😀
    A maioria dos plugins já documentados não é, hehehhe

  14. Jc Neto disse:

    Eu acho que Framework é uma “faca de dois gumes” simplifica o trabalho, mas vicia. E se não tomar cuidado, você acaba se enforcando com a corda que você mesmo colocou alí.

    Falows Até mais!

  15. Luiz Felipe disse:

    Eu acho o seguinte…
    Sou a favor da utiização de frameworks, pois já foi falado pelos nobres colegas, é um grande avanço em termos de agilidade de desenvolvimento, além tornar possível uma abstração de projeto, separando na última camada a função.

    Além do mais, o mundo atual é composto de widgets, plugins e ferramentas. Tudo o que trouxer ganhos maiores do que despesas é lucro.

    Quanto à manutenção ou funcionamento, deixe para os desenvolvedores do projeto, afinal é uma preocupação a menos.

    Na empresa que trabalho usamos Joomla. Eu tinha muito receio da ferramenta até usar..

    Acho os frameworks um enorme e consequente avanço tecnológico ( eu mesmo fiz meu trabalho da faculdade neste tema e digo que realmente vale a pena se deixar levar ).

    Eu resumi o meu artigo num post, caso se interessem: http://weberscripts.wordpress.com/2009/03/25/mini-tutorial-sobre-frameworks-ajax-e-ajax/

    abraços e ótimo blog. ( menos a cor preta de fundo.. ) hehe

  16. Diego Magalhães disse:

    Primeiramente, gostaria de me basear inteiramente na resposta no André Farias, me dei o trabalho de ler os comentários antes de postar minha resposta, que em todos os sentidos apóia a dele.

    Sou arquiteto de sistemas e líder técnico em java pela Metatron Sistemas, trabalho a sete anos com programação, modelagem, processos, etc.

    Na época que comecei e que muitos amigos devem concordar, havia em plena atividade a guerra do IE x NS, a primeira guerra dos browsers, haviam poucos padrões, nenhuma facilidades a não ser frameworks próprios e pouca ajuda da internet com exceção da google e os user groups eram muito mais ativos.

    Nessa época os programadores aprendiam sobre o ciclo de vida de componentes, estrutura de dados etc de uma forma muito mais explicita, diferente de hoje onde temos programadores estagiarios que mal entraram na faculdade e ja sao cobrados como profissionais juniores; isso e mais alguns motivos como correria, crise, empregos em baixa, levam ao profissional, mesmo que com pouca ou sem experiencia “se vire” com os frameworks e em 80% das vezes sai algo bom, médio e aproveitável.

    De certo os frameworks estão ai na nossa vida para realizar o que muitos aprendemos na teoria, baixo acoplamento e coesao, modularidade, reuso, componentização e por ai vai. Eles estão ai para ficar, não existe porque reinventar a roda, se você tem um projeto para entregar em x dias e tem um conjunto de frameworks e componentes que te ajudam na tarefa, eles estão ai para isso; uma coisa que esta caido em desuso é saber a necessidade ou não de um framework e quando usar ou não usar um componente de terceiros.

    Falta, como o André falou no comentário anterior, compromentimento com o trabalho, menos preguiça (xiii culpado, todos em algum ponto somos preguiçosos), empreendedorismo, curiosidade e vontade de aprender como e porque as coisas funcionam, um exemplo claro disso é perguntar um programador de jsf ou .net qual ciclo de seus custom controls, 7/10 não vão saber te explicar e 2/3 não sabem todo o conceito por trás ou só fazem idéia.

    Fica ai minha opinião um tanto grande quanto ao assunto, mas peço a nova geração de programadores que pare, nem que seja por apenas uns 30 minutos por dia para ler teorias, processos, se engajar em um ritmo melhor do que bater no peito e dizer que usa framework x, y ou z e que ele é o melhor, assim como metodologias ageis, diretas ou o que for.

    Abraços a todos,

    Bom descanso

  17. Ah, uma leitura interessante, “O que o framework NÃO é” http://imasters.uol.com.br/artigo/13587

  18. andrefortuna disse:

    Não conheço muito de frameworks, apenas usei o jQuery. E tive uma surpresa muito grande; mesmo tendo sido criado por um dos caras da Mozilla, pode ter bug com o browser do Firefox. Foi isso o que aconteceu comigo, quando fui implementar uma função em meu site.
    Mas eu acredito que tenha um lado positivo mais forte do que os negativos; os frameworks, já trazem fórmulas (de matemática mesmo), que seriam muito mais trabalhosas de se implementar em Javascript, uma vez que os frameworks foram feitos por ESPECIALISTAS de ponta em javascript.
    Os frameworks, na minha opinião, não servem para substituir o javascript, mas sim, para dar “uma força” a mais.

  19. Olá amigo, eu achei que já tinha comentado neste post, e agradecendo seu comentário no meu blog, esses post explica bem como trabalhar com Expressão regular eu achei bem interessante e concerteza muitos programadores não sabe como é importante isso na programação, é um belo post.

  20. Alfredo disse:

    com a constante corrida em direção às especializações, em geral as pessoas sabem muito da ponta do iceberg e pouquissimo sobre o que está por trás. a situação sitada não me espanta vista dessa forma, o que me espanta é essa corrida em si. acho também que os frameworks são incentivos para quem sabe pouco produzir coisas boas e assim ficar animado para aprofundar-se (ou não).

  21. Janela disse:

    Bom Francke, minha opinião é basicamente: Cada caso e um caso.

    Aqui nesse artigo explica bem isso: http://www.noupe.com/php/discussing-php-frameworks.html

    Abraços

  22. garimpoweb disse:

    Acho que daqui pra frente vai continuar sendo muito usado, o interessante é cada um definir seu foco, por exemplo, meu foco e o design web então vou continuar usando muito os frameworks sem me preocupar muito em programar. Já os que querem programar obviamente tem que ir afundo na programação e não se limitar apenas aos framework e sim criar seus próprios frameworks.

  23. Frank Geek disse:

    O post já faz um tempo mesmo deixarei minha opinião, pois o assunto é muito interessante. Minha opinião é a seguinte:

    Framewroks surgiram para FACILITAR a vida dos programadores e principalmente dos designers, agora cabe aos programadores pensarem em seu conhecimento pessoal e não se limitar ao framework e sim ir a fundo nas linguagens, aqueles programadores que vão a fundo, conhecem o modo fácil e o modo difícil de se fazer algo e escolhe o que dará melhor resultado esse sim é programador de verdade.

    Abraços e visitem o meu blog: Frank Geek

  24. leonardo schuler disse:

    Muito boa a discussão, concordo com o Diego que diz que o framework estão aí para ficar. Eu uso Prototype e digo que eu aprendi muito depois de começar a usar prototype. Aprendi conceito de closure, de function como sendo um objeto, de javascript namespace entre diversas outras coisas só fuçando com o prototype.

    Tem muito a ver com o interesse mesmo. Mas realmente é sempre preocupante quando o framework se afasta de mais da “programação básica”. eu acredito que Dojo, por exemplo, ultrapassou esse limite.

    Os ganhos de produtividade de frameworks costumam ofuscar suas desvantagens. Porém vale lembrar que nem todos os programadores querem ou irão se aprofundar na liguagem.

    Não é viavel para nenhuma empresa manter muitos programadores super avançados, o ideal é sempre ter mais pessoas baratas que fazem o feijão com arroz e poucas pessoas especializadas para fazer componentes.

Deixar mensagem para Luiz Felipe Cancelar resposta