Prof. Fernando Campos (falecom@fernandocampos.pro.br)
Welcome, Guest. Please login or register.
February 09, 2010, 02:12:53 am

Login with username, password and session length
Search:     Advanced search
Novo forum funcionando !!!
858 Posts in 158 Topics by 139 Members
Latest Member: TelebillFluor
* Home Help Search Calendar Login Register
+  Prof. Fernando Campos (falecom@fernandocampos.pro.br)
|-+  Aulas
| |-+  Desenvolvimento de Software para Internet
| | |-+  Javascript: coisa de maluco? essa é minha opinião...
« previous next »
Pages: [1] Print
Author Topic: Javascript: coisa de maluco? essa é minha opinião...  (Read 305 times)
celsoendo
Newbie
*

Karma: +0/-0
Posts: 10



View Profile Email
« on: August 21, 2009, 11:17:14 pm »

Bom, alguns por aí andam dizendo que "ainda hoje existem pessoas malucas que gostam de javascript"...  Huh
Eu com certeza faço parte dessa turma e com muito orgulho!  Grin
E se você pretende desenvolver aplicativos para ambiente web, você também deveria se juntar a essas "pessoas malucas".

Anter de eu falar mais um pouco do javascript, aqui vai um resumo do que vem acontecendo de uns anos para cá:
Fato é que muitas empresas estão deixando os softwares desktop de lado e partindo para softwares em ambiente web. Isso porque com a tecnologia avançando nesse ritmo acelerado, as pessoas não precisam mais depender de estar fisicamente em uma empresa para poder tomar devidas ações, responder emails, etc... As pessoas podem fazer isso aonde quer que estejam, seja via um smartphone (viva ao E71! rs...) ou uma conexão wi-fi no aeroporto, cafés, etc.

Agora imaginem uma pessoa que há anos utiliza um software desktop de CRM ou qualquer outro tipo (contábeis, ERP's, outlooks, word, excel, etc...). Uma característica comum a todos esses softwares desktops utilizados no dia-a-dia de uma empresa, independente se o software é Microsoft ou se o software é para Linux, a característica comum é a facilidade (concordo que às vezes nem tanto..) de manuseio, riqueza nos detalhes de botões, janelas, tooltips, coisas para se arrastar pra lá, pra cá... enfim... USABILIDADE e, principalmente, INTERATIVIDADE do software com o usuário.
Se essa pessoa optar por trocar seu antigo software de CRM por um software CRM na web, o mínimo que ele espera são as funcionalidades e "frescuras" (eu costumo chamar de frescuras...rs) que os softwares desktops oferecem. Se ela acessar um aplicativo web e simplesmente ver um formulário mal formatado, numa página com fundo cinza, tudo estático e "morto", com certeza a pessoa vai se arrepender de ter feito a troca e logo vai querer voltar a usar seu bom e velho CRM.

E daí vem o termo RIA (Rich Internet Applications ou Aplicações ricas para internet). E é nessa hora que entra o tão poderoso Javascript e outras muitas tecnologias que vem crescendo com esse boom de softwares para web: Silverlight, Flex, etc...
Mas calma! Todo mundo quando fala de aplicativos para web ou web 2.0, sempre fala do AJAX... onde entra o AJAX nessa história? hmmmm... o Ajax... um componente poderoso e quase indispensável para se desenvolver RIA's... Basicamente, o AJAX (Assynchronous JAVASCRIPT and XML) é um componente (XmlHttpRequest) para ser utilizado, como no próprio nome diz, com Javascript (aquela coisa de maluco....) que permite ao desenvolvedor fazer requisições ASSÍNCRONAS ao servidor, ou seja, se você está desenvolvendo um aplicativo utilizando AJAX, você automaticamente está também utilizando Javascript.

Resumo da história: algumas pessoas dizem que fazem aplicações para web utlizando ajax, mas são contra o javascript.... pra mim isso é você se contrariar... afinal, você não usa os recursos do Ajax sem utilizar javascript. O Javascript é o responsável por fazer o uso desse componente. E acho que é quase impossível desenvolver um aplicativo rico sem encostar a mão em algum código em javascript.

Mas cuidado! Nem tudo é mil maravilhas. Os aplicativos para web devem ser bonitos, sim, devem. Devem ser cheio de frescuras pro usuário se sentir num ambiente desktop, sim, devem. Devem fornecer o máximo de interação com o usuário, sim, com certeza. Mas tudo isso tem um custo: memória. Não, não é a memória de seu servidor que está em jogo. Não se esqueça: javascript é client-side e não server-side (como php, asp.net, etc...). Isso significa que todo código javascript (e ajax) é interpretado no client, ou seja, no browser do usuário. Em outras palavras: tudo pode ser lindo e maravilhoso, mas se fizer mal feito você consegue travar (literalmente) o browser do usuário e acabar com a memória ram do usuário. E aí entramos em outro tópico indispensável para esse tipo de aplicativo: como funciona o garbage collector dos browsers? Como os browsers fazem a limpeza da memória alocada em uma página web? E, com isso, entramos em outro tópico: infelizmente o garbage collector dos browsers não seguem um padrão (pra variar....) e cada um tem sua forma de alocar e desalocar a memória de uma página. Isso é assunto para outro tópico...

Enfim, o javascript é uma linguagem poderosíssima, mas deve ser bem utilizado. Com javascript você consegue praticamente todas as "frescuras" de um software desktop (drag & drops, redimensionamentos, popups (não popups de browsers, mas sim os chamados dialogs), validações "on-the-fly" de campos de formulário, etc...). Isso aliado ao Ajax, com certeza uma combinação perfeita para fazer um ótimo aplicativo web. Claro que além disso você vai precisar de uma linguagem server-side (eu sou suspeito pra falar, mas eu diria php... rs... mas existem outras tantas que obviamente podem ser utilizadas).

Só pra terminar: Todos devem saber (ou se não souber e pretendem aprender javascript..) que para fazer uma página em javascript cross-browser (que funcione nos principais browsers do mercado) é um parto! Cada browser interpreta de um jeito e no fim se você não fizer algo bem estruturado, tudo que você vai ver em seu código são milhões de if's para fazer tratamento dos browsers. Com isso surgiram muitos e muitos frameworks feitos em javascript feitos especialmente para você desenvolver aplicações ricas em detalhes, sem ter que se preocupar com a compatibilidade nos browsers (os frameworks cuidam disso). Geralmentes esses frameworks já são estruturados de uma forma também que não irá sobrecarregar tanto a memória do client (isso não é regra!!!). A idéia principal desses frameworks é fazer com que o desenvolvedor não perca tempo se preocupando se o código será cross-browser ou não e sim se preocupar nas regras de negócio do código. Isso facilita e muito a vida dos desenvolvedores, mas as vezes atrapalha (chegando ao ponto das pessoas se amarrarem muito aos frameworks e esquecerem que ajax e javascript andam juntos).

Segue abaixo alguns exemplos dos frameworks mais utilizados hoje em dia para desenvolver aplicações web:

http://www.extjs.com (em termos de frescuras, na minha opinião, é o mais poderoso de todos...)
http://developer.yahoo.com/yui
http://www.dojotoolkit.org
http://www.jquery.com (pelo ranking do google o Jquery é o framework mais utilizado atualmente....)
http://www.backbase.com (um dos mais complexos que eu já vi...)
http://www.prototypejs.org (como fui esquecer desse... o que eu mais uso atualmente...rs)

Na página de todos, existem centenas de exemplos do que é possível fazer com eles. Surpreenda-se! Tudo com JAVASCRIPT e ajax!

E para quem se interessar com performance do javascript, segue algumas dicas de Nicholas Zakas (mais um maluco expert em javascript): http://james.padolsey.com/javascript/zakas-javascript-performance-tips/
E também não deixem de visitar o site de Douglas Crockford (mais um maluco expert no assunto!): http://www.crockford.com

Abs
« Last Edit: August 22, 2009, 03:47:15 am by celsoendo » Logged

Celso Endo
celso@celsoendo.com
www.celsoendo.com
Twitter: celsoendo
erick.tedeschi
Jr. Member
**

Karma: +5/-1
Posts: 53


erickbt86@gmail.com
View Profile WWW Email
« Reply #1 on: August 22, 2009, 01:05:16 am »


var crazies = document.getElementsByTagName("crazy");

for (var i = 0; i < crazies.length; i++) {
    if (crazies.indexOf("Erick") != -1) {
        alert("Também sou maluco de JS");
    }
}

Desde que me entendo por "usuário" vejo essa coisa de guerra dos browsers, o que funciona em um não funciona no outro e por aí vai.... e o pior é que estou vendo acontecer a mesma coisa no mundo mobile.
Não só como o JavaScript, também há grandes diferenças em outros padrões como CSS, xHTML, XML, SVG, ...
Então concordo que o uso de um framework é indispensável, pois não dá para saber as particularidades de cada um... porém eu prezo o programador que não é preguiçoso e sabe o que o seu framework de preferência faz nos "bastidores".

abçs, t+

Logged

celsoendo
Newbie
*

Karma: +0/-0
Posts: 10



View Profile Email
« Reply #2 on: August 22, 2009, 03:36:57 am »

Erick, concordo com você. Existem muitas pessoas que sabem usar os frameworks mas não conseguem fazer um if com javascript (eu conheço gente assim). Por isso que eu digo: famework ajuda? sim, ajuda, mas as pessoas deveriam ter o mínimo de interesse de saber o que o framework está fazendo, afinal o código da maiorias deles são códigos abertos (a maioria oferece versões ofuscadas e as versões originais) e é puro javascript.

E esqueci de comentar, mas se você vai fazer algo em javascript, a ferramenta indispensável, diria até que obrigatória num ambiente de desenvolvimento em javascript com certeza são as famosas extensões do Firefox: Firebug (debugger, console, inspeção de DOM, editor css, editor html, etc...), NetSpeed (para ver como está a perfomance de sua página), YSlow (ídem ao NetSpeed, porém eu prefiro o NetSpeed...rs) e também o WebDeveloper.

Abs
Logged

Celso Endo
celso@celsoendo.com
www.celsoendo.com
Twitter: celsoendo
Pages: [1] Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.9 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!