My Links

Blog Stats
  • Posts - 376
  • Stories - 2
  • Comments - 2457
  • Trackbacks - 36
News

Story Categories

Archives

Post Categories

Image Galleries

Artigos

Os meus Sites

Outros Blogs

Psantos.net

Login
    u:
    p:
    Remember Me:
     
 

Posts como Mercado + Linux + Mono do Ricardo Figueira e o meu último post em que me questionava sobre alternativas para implementar o meu site mais alto nível, fizeram nascer uma avalanche de perguntas sobre o Mono, e sobre a capacidade do Mono como ambiente de desenvolvimento. É muito interessante toda esta curiosidade no Mono por parte de pessoas que não estão por dentro do mundo do Linux. Porque haverá esta curiosidade?

Primeiro, é preciso saber o que o Mono nos oferece hoje. O que se pode fazer, o que não se pode fazer, que limitações tem o projecto, etc. As ASP .NET estão bem e aconselham-se. O meu trabalho final (que já está bem grandito) corre praticamente sem tirar bem por tanto em Windows, como em Linux. Tal é que temos só um módulo no CVS que é partilhado por mim, e pelo meu colega que usa Windows. E para além das ASP .NET? Nós usamos ferramentas como o nant, como o NUnit, como o NDoc, ferramentas que se usam no mundo Windows, e que estão disponíveis também para o Mono. Cada vez mais se vê os projectos a suportarem o Mono, porque a plataforma já tem capacidade para isso.

Mas não há as System.Windows.Forms... que é algo que muita gente procura. Mas porque é que as System.Windows.Forms ainda não estão disponíveis? Porque elas não foram pensadas para serem multiplataforma. Há coisas nas System.Windows.Forms que só existem no Windows, como por exemplo, o WndProc. Coisas destas são complicadas de emular noutras plataformas, por isso é que tem sido tão complicado para o pessoal do Mono ter uma implementação das System.Windows.Forms pronto. É também por isto que eles estavam a usar o WINE, porque de outra forma seria muito complicado implementar as System.Windows.Forms. O problema é que o WINE está em constante mutação, e trazia muita complexidade às System.Windows.Forms. Por isso, eles decidiram largar o WINE e implementar as System.Windows.Forms totalmente com código managed, usando o WINE somente para quem quer usar as partes das System.Windows.Forms que são específicas do Windows. Para esse caso, há um componente adicional. Eles decidiram isto à pouco tempo e recomeçaram a implementação das System.Windows.Forms, por isso não sei quando estarão prontas.

Por outro lado, existe o GTK# que é suportado pelo Mono e se anda a portar muito bem, tal como várias outras biliotecas que foram portadas para o mundo managed, como o wx.NET, Qt#, entre outros. Contudo é minha opinião, que nem o GTK#, nem as System.Windows.Forms, são as opções adequadas para aplicações Rich Client multiplataforma.

E em termos de ambiente de desenvolvimento? Temos o MonoDevelop que está a evoluir muito bem. Não é um Visual Studio .NET, não tem toda aquela capacidade de debug, tal como não tem alguns dos seus problemas. Ainda não suporta projectos ASP .NET directamente, pelo que é necessário dar-lhe umas voltas. Isto tudo para dizer que, na minha opinião, ainda não está pronto para desenvolvimento mais sério, mas que caminha para essa meta muito rapidamente. Será que o Mono, hoje, é uma opção para as PMEs? Duvido. Ainda tem muitos pormenores muito verdes para isso.

Porque é que eu prefiro o Mono? Bem, eu não prefiro o Mono. No trabalho estou num ambiente completamente Windows, em casa completamente Linux/Mono. A verdade é que tou tão habituado aos dois mundos, que mal lhes noto diferença. Quando começámos o nosso trabalho achámos que seria uma mais valia o projecto correr tanto no Windos como no Linux. Aliás, eu acho que hoje em dia, convém saber um pouco de tudo. Mesmo que o meu futuro profissional passe somente por tecnologias Microsoft, não me faz mal nenhum conhecer outras plataformas como o Linux. Abre-nos os horizontes! E isso é algo muito importante. Mais importante que dizer que se põe de parte uma solução Linux porque uma solução Microsoft é melhor, é dizer que tanto me faz e terei um rendimento equiparável em ambas as plataformas. E que se amanhã tiver de porventura usar outra plataforma, estarei mais calejado e preparado para novos desafios. Foi por isto que eu me esforcei por aprender um pouco de Linux.

Eu nunca digo que o A é melhor que o B, e ataco fortemente quem se põe a dizer coisas dessas. Agora, digo que prefiro o A para determinadas tarefas, e prefiro o B para outras. E falo com conhecimento de causa. Eu aprecio muito o .NET, por isso quero trabalhar com o .NET em qualquer sitio. Para mim é uma espécie de orgulho poder dizer que o meu trabalho final corre no Windows e no Linux e espero, no futuro, poder dizer que o trabalho corre em .NET, ponto final. E o que é correr em .NET? É correr em todas as plataformas suportadas, quer pelo Mono, quer pela própria Microsoft (quem sabe um dia...).

Muita gente receia pelo Mono, com medo que a Microsoft puche do seu poder para o prejudicar. Eu espero que isso não aconteça, mas espero que a Microsoft lute com lealdade. Hoje a Microsoft pode dizer: «Nós temos o melhor ambiente/plataforma para desenvolvimento em .NET/WebServices/Aplicações Web/etc». Eles ganham a guerra pela qualidade do seu software e por todo o trabalho que tiveram para alcançar o nível a que chegaram. Eles não são qualificados como melhores por terem esmagado a concorrência com o poder do seu monopólio, mas simplesmente porque oferecem as melhores opções para desenvolvimento em .NET -- tou só a falar de .NET aqui! E é somente a minha opinião! ;-)

E com isto nós, os developers, é que ganhamos. Temos várias partes a aumentar continuamente a sua qualidade para abafarem os concorrentes. Isto tá-se agora a ver bem é com o Java, que estava completamente adormecido, e agora com o .NET, a Sun acordou para a vida e está a tentar evoluir a sua plataforma. Como o Jose Antonio Silva disse uma vez, no futuro as pessoas não vão ficar presas à plataforma, mas sim às suas facilidades inerentes. O que interessa que haja .NET em todo o lado, se só a Microsoft dispõe de um Indigo e de um Avalon como deve ser? E se o Mono responder à letra? Quem beneficia de haver várias implementações do .NET/Java a lutarem por produzir as melhores ferramentas para os developers?

Voltando ao Mono, quem estiver com um bichinho de curiosidade, nada como dar-lhe uma volta para lhe sentir o sabor. Ou vão achar graça e investigar mais, ou não vão achar graça. Mas pelo menos vão conhecer a alternativa. Aconselho a instalarem uma distribuição de Linux mais alto nível numa máquina virtual e brincarem à vontade. Aconselho o Fedora Core que é mais alto nível e já tem pacotes compilados para o Mono. Depois é investigar um bocadinho e se surgirem dúvidas é falar comigo, ou passar no #mono onde há cada vez mais gente pronta a ajudar.

Resumindo, já dá para fazer umas coisas valentes com o Mono. Qual a melhor opção de desenvolvimento? Isso depende de preferências pessoais e há argumentos válidos em várias direcções. Só espero ter marcado a minha posição de agnóstico relativamente a plataformas. Só quero é que todas sejam amigas, se dêm bem, e corram as minhas aplicações!

Espero ter tirado algumas dúvias, e quem quiser pode por perguntas em comentário. Nota que eu sou novo e sou inexperiente no mercado de trabalho, por isso é natural não ter o know how para poder falar de coisas mais a sério. Tudo o que digo é com base na minha, ainda curta, experiência.

Parto mais daqui a pouco para passar o fim de semana fora, numa LAN com pessoal amigo, por isso não estranhem que eu ande caladinho! Vai ser bom para desanuviar do trabalho e me divertir um pouco com o pessoal.

posted on Friday, August 20, 2004 5:19 PM
Comments
  • # re: Porquê o Mono?
    Sam
    Posted @ 8/21/2004 12:56 PM
    Ola Pedro,

    >>"Aconselho a instalarem uma distribuição de Linux mais alto nível numa máquina virtual e brincarem à vontade."

    Desculpa, mas como se instala uma distribuição de Linux numa máquina virtual ?
    Já ouvi falar sobre isso mas já não me lembro do nome do "software" que faz criar a máquina virtual...

    Podes dar-me umas dicas de como isso se faz ?

    Obrigado

    []´s
    SAM
  • # re: Porquê o Mono?
    Luis Abreu
    Posted @ 8/21/2004 5:22 PM
    Tens pelo menos duas hipoteses:
    Virtual PC (microsoft)
    VMWare (http://www.vmware.com)

    Actualmente estou a utilizar o Vitual PC, mas posos garantir q o vmware e excelente!
  • # re: Porquê o Mono?
    Esqueleto
    Posted @ 8/23/2004 1:44 AM
    Podes usar o VMWare .... infelizmente é necessário uma licença para usar, mas existe vários softwares pela NET que fazem o mesmo em regime de ShareWare ou até mesmo FreeWare ... basta procurar.

    Em relação ao teu artigo, Pedro, gostei muitos. Fizeste um bom resumo do que temos estado a falar neste forum, acho no entado que estas demasiado sétptico em relação ao Mono hoje em dia.

    Já usei no passado outras ferramentas de dificil utilização que eram muito utilizadas em desenvolvimento (Ex: Cobol, 4GL e CLIPPER).
    É verdade que hoje em dia estamos habituados a DEBUGs todos lindos onde podemos sem quaquer dificuldade fazer trace das instruções. Claro que estas medidas melhoram a nossa perfomace de desenvolvimento, mas penso, que são simplesmente uma mascara para por vezes mascararem a fragilidade do sistema.

    Dou como exemplo o VisualBasic em todas as suas versões, onde tinham um interfaçe espectacular, um método de desenvolvimento onde qualquer 1 podia ser programador, mas, era muito frágil, e eu sei muito bem o que digo, pois, fui programador de VB durante quase 6 anos.

    Em relação ao .NET, penso que isso não se coloca, pois, realmente a linguagem amadureceu e ganhou algo com o seu irmão mais velho -VC++.

    O Mono e os seus IDEs, mais ou menos oficiais (Eclipse e MonoDevelop), penso que já conseguem dar conta do recado para projectos de dimensão reduzida. A sua interligação com o CTK# é muito boa, mas, não deixa de haver um 'layer' interpretativo entre os interfaces GTK# (desenvolvidos em Glade por exemplo) e o código C# compilado pelo Mono.
    Penso que numa aplicação com dezenas de formulários, listas e ecrãs a velocidade de comunicação se irá degradar. Esperamos por uma evolução no sentido de minimizar este problema.

    Estou convencido que essa homogeneidade entre plataformas, onde irá ganhar a plataforma, não a que tem mais aplicações pois todas correm todas as aplicações, mas sim, a que oferecer maior fiabilidade e rendimento.

    Como os milhentos estudos (patrocinados pela M$) sobre TCO perderam a credibilidade, penso que a M$ está mesmo a enverdar por este sentido, e eu acho que é o que faz mais sentido, que é, tendo as mesmas aplicações a correr, qual a plataforma que dá mais garantias?


    Veremos quem está melhor preparado, que estão dispostos a fazer para ganhar esta batalha e quais os recursos que cada lado da batalha irão usar.


    (())
    Esqueleto

    PS: Sou como tu, programador de .NET profissionalmente e em casa, nem Windows tenho .. .só linux.
  • # re: Porquê o Mono?
    rbfigueira
    Posted @ 8/23/2004 10:37 AM
    Como já te deves ter apercebido muitos andam atentos ao teu blog e essa explicação veio "organizar" as nossas ideias sobre o Mono :P
    Relamente tem sido "tentador", para muitos, entrar no mundo do Linux/Mono e tu tens sido o "culpado" (heheheheh)

    É bom ter alguem que dê uma explicação sobre o Mono, pois ouvimos tanta coisa que já nem sabemos....

    Excelente post Pedro !

    Nota: Continua a escrever sobre o Mono que "todos" estaremos atentos ;PPPPP
  • # re: Porquê o Mono?
    sam
    Posted @ 8/23/2004 10:42 AM
    O primeiro link [Virtual PC] é um soft com 45-Day Free Trial Edition.
    O segundo [VMWare] é um Evaluating.

    Pô... alguem me pode dar um link de um que não tenha limitações ??

    >>existe vários softwares pela NET que fazem o mesmo em regime de ShareWare ou até mesmo FreeWare ... basta procurar.
    Acredito que sim MAS são estáveis... podes me indicar algum que saibas ?

    Obrigado
  • # re: Porquê o Mono?
    Pedro Santos
    Posted @ 8/23/2004 11:02 AM
    Sam, tens um periodo de 30 dias para mexer com o vmware. Acho que é suficiente para experimentares a coisa, até porque se gostares, podes sempre instalar o Linux numa partição do teu PC e teres um dual boot com o Windows e com o Linux (como eu tenho em casa). Acho que 4/5 gigas chega perfeitamente para brincares com o Linux (isto se quiseres instalar todo o conteúdo, se não, é ainda menos).

    Ricardo, claro que vou escrevendo sobre o Mono! ;-) Estou a ler o Mono: A developers Handbook e depois também farei um post com o que achei do livro, tal como me pediste.

    Esqueleto, gostei da tua resposta! Podias pensar em começar tu também um blog! ;-)
  • # re: Porquê o Mono?
    sam
    Posted @ 8/23/2004 11:44 AM
    Alguem sabe em Portugal onde encontrar o Fedora Core (espero k seja baratinho) ?

    Pô, são muitos MB para Download ... é um DVD !!

    Obrigado
  • # re: Porquê o Mono?
    Pedro Santos
    Posted @ 8/23/2004 11:59 AM
    Se és de Portugal podes fazer como eu quando preciso dessas coisas: vou à Lojinha de CDs do Startux.org:
    http://www.startux.org/index.php?headline=91&visual=1

    Encomendas e recebes os CDs em casa. Eu como nem tenho gravador, dá-me mesmo muito jeito.
  • # re: Porquê o Mono?
    Esqueleto
    Posted @ 8/23/2004 5:43 PM
    >> Acredito que sim MAS são estáveis... podes me indicar algum que saibas ?

    Nope .. num sei nenhum. Eu uso linux com um dos softwares aqui retratados para ter uma versão de Windows em casa, e piratiei a Licence Key. Na realidade não uso o Window para quase nada que n ache que valha a pena comprar (IE para abrir o HomeBanking e aceder à VPN da empresa).


    (())
    Esqueleto
  • # re: Porquê o Mono?
    Sam
    Posted @ 8/26/2004 9:38 AM
    Olá Pedro,

    Saiu numa revista (exame Informatica) a versão portuguesa do Linux "Caixa Mágica Desktop 8.1 Standard".

    No site do MONO só aparece:
    http://www.mono-project.com/using/index.html
    Linux distributions: Suse 9.x, SLES 8.x, Red Hat 9.0, Fedora Core 1 and Fedora Core 2. RPMs, Yum repositories (for Fedora Core 1 & 2) and source tarballss

    Sabes se dá para instalar o Mono no Linux CM Desktop 8.1 Standard" ?

    obrigado

  • # re: Porquê o Mono?
    Pedro Santos
    Posted @ 8/26/2004 10:08 AM
    Sam, vê este meu post:
    http://weblogs.pontonetpt.com/pre/posts/2211.aspx
  • # re: Porquê o Mono?
    Sam
    Posted @ 8/26/2004 10:28 AM
    Ok, obrigado!

    Outra coisa, podias tambem colocar aqui alguns links de sites (portugueses e estrangeiros) sobre Linux e Blogs :P
    Ou então criar um Post sobre isso :PPPP

    Obrigado
  • # re: Porquê o Mono?
    Tiago
    Posted @ 9/1/2004 3:05 PM
    Como sabes, numa página aspx (web), na primeira chamada da página, o runtime ASP.Net cria uma DLL que compreende todas as classes do projeto, como seria isso no Linux?

    No Linux (mono) tambem funciona dessa maneira ?
    Tambem é compilado tudo na primeira chamada à página ?

    Obrigado
  • # re: Porquê o Mono?
    Pedro Santos
    Posted @ 9/2/2004 8:22 AM
    Sim, tal qual. É uma réplica das ASP .NET da Microsoft. Aqui, eles guardam essas DLLs no ~/tmp
  • # re: Porquê o Mono?
    rbfigueira
    Posted @ 9/3/2004 2:24 PM
    Oi Pedro,

    Vê isto:

    http://forum.wmonline.com.br/index.php?showtopic=85532&st=0&

    e isto:

    http://forum.wmonline.com.br/index.php?showtopic=85533

    Não pode evitar mas tive que colocar lá um post meu ;P
    Não é muito bonito colocar uma "cópia" dos teu tutoriais sem se quer fazer referencia ao autor !!!

    Um abraço !
Title  
Name  
Url
Box Code
Protected by FormShield
Comments