Fórum [OT] XUL - uma linguagem, um conceito, uma sigla. #323496
16/06/2006
0
Eu aderi ao movimento software livre um tempo já. Tenho usado cada vez mais programas com licenciamento free. [url=http://br.mozdev.org/thunderbird/]Thunderbird[/url] e [url=http://br.mozdev.org/firefox/]Firefox[/url] são dois dos softwares que mais utilizo. Notei um importante diferencial nestes aplicativos que é o uso de extensões, pois facilitam a vida do programador, que não precisa se preocupar com tantos desenvolvimentos, e também a vida do usuário que tem seu leque de possibilidades aumentado.
[b:70e00121cf]Para quem não sabe o que são extensões (em aplicativos).[/b:70e00121cf]
[quote:70e00121cf=´O que são extensões´]
Extensões são pequenos aplicativos que, uma vez instalados na interface do programa, ´extendem´ as funcionalidades do aplicativo, adicionando novas janelas, novas configurações, novos recursos sem precisarem contactar o programador que desenvolve o aplicativo.
[/quote:70e00121cf]
No Thunderbird e Firefox estas extensões são desenvolvidas em uma linguagem chamada XUL [url=http://pt.wikipedia.org/wiki/XUL](XML User Interface Language)[/url]. Um padrão criado pelo grupo de desenvolvedores da [url=http://br.mozdev.org]Mozilla[/url].
[quote:70e00121cf=´XUL Brasil´]
A linguagem XUL é um padrão aberto criado pelo grupo de desenvolvedores do navegador Mozilla, implementado pela Mozilla Framework, que define janelas, botões, menus e uma grande coleção de objetos de interface de usuário para aplicações desktop em notação XML e usa JavaScript para definir roteiros e automação. Veja a história do XUL.
[/quote:70e00121cf]
O engraçado de tudo isso é ver como tem evoluído a programação em todo mundo. Hoje temos mais siglas do que programadores: XUL, CSS, HTM, JSP, ASP, PHP, DTD, RDF e etc. a abertura deste tópico é justamente pra perguntar:
[color=blue:70e00121cf][b:70e00121cf]Você já estudou isso (XUL)?[/b:70e00121cf][/color:70e00121cf]
ou
[color=blue:70e00121cf][b:70e00121cf]Você já estudou algo que nem imagina onde, como e porque irá utilizar?[/b:70e00121cf][/color:70e00121cf]
Adriano Santos
Curtir tópico
+ 0Posts
16/06/2006
Adriano Santos
[quote:52e7c29153=´Refências sobre XUL´]
[url=http://twiki.im.ufba.br/bin/view/XUL]XUL Brasil[/url]
[url=http://br-linux.org/linux/?q=node/1315]Análise do Firefox ´Deer Park´ Alpha 2[/url]
[url=http://www.univale.com.br/livre/2_sslu_br.htm]Algumas palestras sobre XUL em Outubro[/url]
[url=http://pt.wikipedia.org/wiki/XUL]XUL no Wikipédia[/url]
[/quote:52e7c29153]
Gostei + 0
16/06/2006
Titanius
Gostei + 0
16/06/2006
Agsilva
Também pelo que entendi, já existe os componentes criados (botões,labels), como em Java e Delphi através de uma API (nesse XUL não sei como é que seria), basta implementá-los. O que eles fazem ou deixam de fazer é implementado via JavaScript.
Se for mesmo isso, não há necessidade de utilizá-lo, já que qualquer componente html pode ter eventos JavaScript. A não ser que haja alguma especificação importante, algumas funcionalidades extras, etc.. Darei uma pesquisadinha, quem sabe faço um exemplo aqui pra galera.
:wink:
Gostei + 0
16/06/2006
Agsilva
ou
[color=blue:c1f527aa01][b:c1f527aa01]Você já estudou algo que nem imagina onde, como e porque irá utilizar?[/b:c1f527aa01][/color:c1f527aa01][/quote:c1f527aa01]
Respondendo à primeira pergunta: Não, ainda vou pegar uma noite pra estudar XUL.
Respondendo à segunda pergunta: Sim, quando comecei com Java, eu nem sabia por onde começar direito. Eram tantas coisas (j2se, j2me, j2ee). :D
Gostei + 0
16/06/2006
Adriano Santos
É ai que quero chegar [b:1d0c166d7f]titanius[/b:1d0c166d7f]. Como podemos, em Delphi, usufruir de tecnologias como esta para melhorar cada vez mais nossos aplicativos?
Tenho participado ativamente do [url=http://forumgdh.net/index.php]FórumGDH[/url] onde existem duas comunidades que discutem sobre [url=http://forumgdh.net/viewforum.php?f=32]FireFox[/url] e [url=http://forumgdh.net/viewforum.php?f=33]Thunderbird[/url]. Perguntei por curiosidade qual linguagem são desenvolvidos os aplicativos. São em C/C++ e suas intefaces em XUL como já havia mencionado.
[quote:1d0c166d7f=´Veja mais´]
[url=http://forumgdh.net/viewtopic.php?t=294598&highlight=]Curiosidade: Em qual(s) linguagem(ns) o FF e o TB são feitos[/url]
Código que forma a base (e que precisa ser rápido) é em C++:
http://lxr.mozilla.org/mozilla1.8/source/content/base/src/nsHTMLContentSerializer.cpp
Já o que pode ser feito através da plataforma Mozilla é JavaScript:
http://lxr.mozilla.org/mozilla1.8/source/browser/base/content/browser.js
Tem tambem em C. Nesse caso o próprio JavaScript. Smile
http://lxr.mozilla.org/mozilla1.8/source/js/src/jsgc.c (foi modificado ontem)
Esses arquivos são do Fx2
[/quote:1d0c166d7f]
Imagina desenvolver sistemas onde você possa trabalhar em paralelo com XUL desenvolvendo pequenas extensões para atender um ou outro cliente? Ou seja, ao invés da manutenção ficar focada totalmente em cima do executável vc faz apenas grandes atualizações no fonte o restante fica por conta das ´interfaces´ XUL, assim vc ´personaliza´ o software a medida que seu cliente solicita. Legal a idéia né?
Gostei + 0
16/06/2006
Adriano Santos
Não [b:041dfccfd4]agsilva[/b:041dfccfd4], não é só WEB, pois como disse o Thunderbird e Firefox utilizam XUL para modelar e até criar novas funcionalidades no aplicativo. E sabemos que ambos são aplicativos desktop. Existe um termo usado por esta técnica chamado de [url=http://pt.wikipedia.org/wiki/Widget]widget[/url] que consiste em [i:041dfccfd4]componentes de interface gráfica com o usuário[/i:041dfccfd4] (fonte: Wikipédia).
Outros trechos sobre Widget:
[quote=´Widget´]
[i:041dfccfd4]Qualquer item de uma interface gráfica é chamada de widget...[/i:041dfccfd4]
[i:041dfccfd4]Outro ponto que pode ser colocado como Widgets são pequenas janelas que ficam no desktop[/i:041dfccfd4]
Gostei + 0
16/06/2006
Adriano Santos
http://pt.wikipedia.org/wiki/Widget
Gostei + 0
16/06/2006
Massuda
http://en.wikipedia.org/wiki/XAML
Gostei + 0
16/06/2006
Adriano Santos
Ou em português: http://pt.wikipedia.org/wiki/XAML
Legal isso hein Massuda?
Gostei + 0
16/06/2006
Agsilva
Não [b:64c6b85bdf]agsilva[/b:64c6b85bdf], não é só WEB, pois como disse o Thunderbird e Firefox utilizam XUL para modelar e até criar novas funcionalidades no aplicativo. E sabemos que ambos são aplicativos desktop. Existe um termo usado por esta técnica chamado de [url=http://pt.wikipedia.org/wiki/Widget]widget[/url] que consiste em [i:64c6b85bdf]componentes de interface gráfica com o usuário[/i:64c6b85bdf] (fonte: Wikipédia).
Outros trechos sobre Widget:
Opa, foi falta de atenção minha mesmo quanto a utilização em desktop.
Só não entendi uma coisa: qual seria a utilização/benefício dessa tecnologia? Haveria um melhor separação de camadas da aplicação, não misturando negócios com visualização (isso acontece com Java utilizando o padrão de arquitetura MVC)?
:wink:
Gostei + 0
16/06/2006
Agsilva
É ai que quero chegar [b:f596dd16ef]titanius[/b:f596dd16ef]. Como podemos, em Delphi, usufruir de tecnologias como esta para melhorar cada vez mais nossos aplicativos?
Tenho participado ativamente do [url=http://forumgdh.net/index.php]FórumGDH[/url] onde existem duas comunidades que discutem sobre [url=http://forumgdh.net/viewforum.php?f=32]FireFox[/url] e [url=http://forumgdh.net/viewforum.php?f=33]Thunderbird[/url]. Perguntei por curiosidade qual linguagem são desenvolvidos os aplicativos. São em C/C++ e suas intefaces em XUL como já havia mencionado.
[quote:f596dd16ef=´Veja mais´]
[url=http://forumgdh.net/viewtopic.php?t=294598&highlight=]Curiosidade: Em qual(s) linguagem(ns) o FF e o TB são feitos[/url]
Código que forma a base (e que precisa ser rápido) é em C++:
http://lxr.mozilla.org/mozilla1.8/source/content/base/src/nsHTMLContentSerializer.cpp
Já o que pode ser feito através da plataforma Mozilla é JavaScript:
http://lxr.mozilla.org/mozilla1.8/source/browser/base/content/browser.js
Tem tambem em C. Nesse caso o próprio JavaScript. Smile
http://lxr.mozilla.org/mozilla1.8/source/js/src/jsgc.c (foi modificado ontem)
Esses arquivos são do Fx2
[/quote:f596dd16ef]
Imagina desenvolver sistemas onde você possa trabalhar em paralelo com XUL desenvolvendo pequenas extensões para atender um ou outro cliente? Ou seja, ao invés da manutenção ficar focada totalmente em cima do executável vc faz apenas grandes atualizações no fonte o restante fica por conta das ´interfaces´ XUL, assim vc ´personaliza´ o software a medida que seu cliente solicita. Legal a idéia né?[/quote:f596dd16ef]
Não conheço a linguagem C, mas pelo que parece ela não tem suporte/componentes para interface gráfica com o usuário. O resultado é em linha de comando, ou estou enganado? Se isso for verdadeiro, então fica fácil entender a adoção do XUL em aplicações desenvolvidas em C. Agora, em C++, não vejo real necessidade, bem como em Delphi, Java, etc.. Agora, a coisa muda se o que você disse é verdadeiro, isto é, você importa-se apenas com as regras de negócio da aplicação, enquanto o XUL cuida da interface com o usuário pra você.
:roll:
Gostei + 0
16/06/2006
Adriano Santos
Sem problemas. :wink:
A separação de regras de negócios e design seria uma das vantagens, isso se o programador não estiver usando n-tier (multi-camadas) porque neste caso não seria interessante.
Porém vejo de outra forma. Vou dar um exemplo de utilização de extensões no Thunderbird.
Recebo um grande volume de emails diariamente e por isso necessito ter o leitor aberto o dia todo.
Preciso ter no mínimo Delphi, IbExpert e o Thunder abertos. O Thunder não tem um esquema para minimizar a aplicação para a bandeja do Windows, por isso existe uma extensão que agrega esta funcionalidade ao TB. Basta abrir o programa e mandar minimizar. Show, tenho uma janela aberta a menos e ainda por cima recebo minhas mensagens tranquilamente.
Essa é uma funcionalidade simples, e talvez desnecessária para alguns. Mas em um software comercial poderia significar uma nova funcionalidade para um determinado cliente. Vc manda somente a extensão para o cara e ele instala, sem precisar alterar e enviar o executável original.
Gostei + 0
16/06/2006
Adriano Santos
Conheço bem pouco de C, pra falar a verdade só o conceito e a sintax.
Até onde sei você está correto. Não há suporte a componentes visuais.
Se não me engano o [b:e20b6d667f]Massuda[/b:e20b6d667f] conhece C, não tenho certeza.
Veja, novamente o caso aqui não é só Visual, não é só design. Não estudei XUL ainda, estou lendo algumas coisas. O pouco que li me diz que posso não somente desenvolver um novo layout como também janelas com funções e procedimentos novos.
[quote:e20b6d667f=´Dois tópicos que postei na comunidade da Mozilla´]
[url=http://forumgdh.net/viewtopic.php?t=294598&highlight=]Curiosidade: Em qual(s) linguagem(ns) o FF e o TB são feitos[/url]
[url=http://forumgdh.net/viewtopic.php?p=2275254#2275254][OT] Desenvolver Plug-ins, como?[/url]
[/quote:e20b6d667f]
Gostei + 0
16/06/2006
Titanius
agora mexer com .NET.. vixi... outra historia... hehe...
[]s
Gostei + 0
16/06/2006
Adriano Santos
[b:365efa5066]titanius[/b:365efa5066] o q vc quis dizer com o ´vixi...outra historia...´? :lol:
Depois que participei do evento Webdays e vi .NET e como desenvolver com ele, fiquei com uma visão bastante diferenciada sobre o assunto. Hoje vejo a tecnologia com outros olhos, não que eu vá migrar agora ou daqui 10 anos, mas está tudo mais claro.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)