Portál AbcLinuxu, 5. června 2024 01:59

Rozhovor: Miguel de Icaza - I (Mono)

13. 6. 2005 | Filip Vrlík
Články - Rozhovor: Miguel de Icaza - I (Mono)  

Otec Gnome, Mona a řady dalších projektů. Spoluzakladatel Helix Code, pozdější Ximian, dnes koupený Novellem. Jeden z nejvynalézavějších lidí 21. století podle The Times.

Miguel de Icaza přijel do Prahy z Mexika a já měl možnost s ním udělat rozhovor. Během snídaně jsem se dozvěděl spoustu šokujících odhalení a pohledů do zákulisí. No dobře, zas až tak strhující to není, ale pár zajímavých odpovědí ohledně "Mona" vám přinášíme v prvním díle.

  1. Filip Vrlík: Na jaké projekty se teď v poslední době zaměřuješ nejvíce? Mohl bys nám je prosím představit?

    Miguel de Icaza: Nyní nejvíce pracuji na projektu Mono, což je vývojářská platforma založená na .NET. Na této technologii je zajímavá její nezávislost na použitém jazyku. Mnoho lidí strávilo obrovské množství času nad tím, aby tato "virtual machine" byla dost dobrá.

  2. Něco jako Java, ne?

    Je to podobné Javě, ale zde je kladen velký důraz na podporu více jazyků. Například platforma Java neumí pořádně efektivně zvládnout jednu věc, a tou je podpora C a C++.

    Motivací pro Mono je produktivita. V minulosti jsme vytvořili Evolution a OpenOffice.org pomocí C++. Spousta problémů, kterým programátoři čelí dodnes, vychází z toho, že C++ je nízko-úrovňový jazyk. Musíte si vytvořit vlastní správu paměti a tak dále. Také je spousta problémů s narušením paměti: uvolníte pointer dvakrát, použijete buffer, který používá někdo jiný nebo tak narušíte paměť, kterou používá někdo jiný.

    Hledali jsme, Ximian hledal, platformu, která by se dala použít pro tvorbu velkých aplikací, jako je Evolution, v krátkém časovém úseku nebo s méně lidmi. Tedy buď tvořit rychle, nebo vytvořit více s větším týmem. Místo abychom teď Evolution vyvíjeli dva roky, zvládli bychom to za rok.

    icaza

    Podívali jsme se na Javu a C# a zdálo se, že C# zvládá to samé jako Java plus ještě něco navíc. Vždy když něco děláte, ať už je to cokoliv, tak je důležitý čas. Takže jsme to udělali takhle.

    Jak tedy vidíte, Mono je technologie umožňující běh různých programů pro desktop. Já se nejvíce zajímám o Linux jako o desktop, v podstatě vyvíjím pouze pro desktop, ale Mono pokrývá všechny oblasti. Já stále pracuji se skupinou desktop. Teď jsme měli obrovskou konferenci v Německu, odtud jsem teď přijel. Oni nepíší přímo pro desktop, ale já jim poskytuji nástroje. Postavili jsme GTK#, což je toolkit pro tvorbu aplikací pro Linux. Tvoříme designérský nástroj. Poskytujeme lidem kvalitní vývojářské nástroje a dokumentaci. Totiž, spousta lidí si stěžuje, že otevřený software má příšernou dokumentaci. My děláme dokumentaci pro Mono, snažíme se dokumentovat všechno, takže lidé mají dobré dokumenty. Snažíme se také zaplňovat mezery v Linuxu, tvořit věci, které Linuxu chybí, aby byl úspěšným desktopem.

    (Miguelovi zvoní alarm na mobilu)

    Tak teď jsem měl vstávat :-)

    (Miguel se nás ptá na abclinuxu.cz a na situaci okolo Linuxu v ČR.)

    Jedni z nejlepších programátorů, s jakými jsem měl možnost spolupracovat byli z České republiky. Dělal jsem s více takovýma. Já jsem z Mexika a... nebo jinak. Když se na situaci podívám z vnějšku, tak Češi jsou na open source scéně velmi aktivní, procentuálně dvakrát více přispívají a jsou velmi dobří. Možná je to díky systému vzdělání a školství.

  3. Díky školství, eh, to si nemyslím ;-). Ale každopádně moc díky. Tedy za ně samozřejmě :-)

    Nějaké novinky okolo Mona, nějaké konkrétní úspěchy v poslední době?

    Vypustili jsme Mono zhruba před rokem, asi před deseti měsíci. Dostává se do chvíle, kdy dospívá v solidní kód. Mysleli jsme, že 1.0 nebude použitelná, ale byla. Nebyla ale tak vybroušená jako je dnes. Vylepšujeme celkem dost, všechny detaily v Monu. Z používání máte dobrý pocit. To znamená, že je výkonnější. Pro výkonnost jsme toho v poslední době udělali dost. Práce, kterou jsme udělali, se bohužel neobjeví ve verzi 1.2, bude zahrnuta až v pozdější verzi. Jedná se totiž o opravdu velké změny v architektuře. No, nejde ani tak přímo o změny ale spíše o optimalizace; některé jsou velmi těžké a složité. Nebudeme tedy s to stihnout zářijový termín, jak jsme chtěli.

    Lepší výkon, stabilita, to jsou přednosti, které si ale lidé neuvědomují. Poučili jsme se z dlouho běžících serverů a aplikací pro desktop jako je Beagle. Ty jsou stabilnější, než si lidé myslí. Máme tedy tři přednosti, ale lidi moc nezajímá, že je to rychlejší či stabilnější, na tom jim nezáleží. Ale přicházíme s novou GTK#, která podporuje ještě více věcí v GTK. Máme nový toolkit, jež umí wrapovat jakoukoliv GObject knihovnu napsanou v C. Můžeme ji potom přímo použít z C#. Vyvinuli jsme propojení (bindings) do Evolution, takže jej teď můžete naskriptovat pomocí C#. Řekl jsem C#, ale může to být jakýkoliv jazyk podporovaný .NET (Python, Visual Basic, JavaScript, ...). Takže můžete mít Evolution plně pod kontrolou, naskriptovat jej, používat všechny mailové vlastnosti.

  4. Vidím, že obecně preferuješ C#.

    Ano. Já používám C#, ale další v týmu dávají přednost Pythonu nebo jiným. C# je nejlehčí z nich, protože C# v podstatě nemá run-time. C# komunikuje přímo s knihovnou, odpadá tedy prodleva oproti jazykům typu Python nebo Java, které navíc potřebují run-time. Myslím si tedy, že C# je nejlehčí, ale to neznamená, že na tyto vlastnosti musíte hledět při výběru jazyka. Já vždycky říkám, že C# je prostě jazyk, který znám, a tak ho používám.

  5. Někteří lidé mají podivný pocit z Mona - vidí Microsoft, jeho technologie zatažené do Unixu, problémy s autorskými právy...

    (Miguel se dáví houskou)

    Ne, ne, ne! Nejsou žádné problémy s autorskými právy.

    Dobře, tak tedy technologie Microsoft, jeho technologie a tak dále. Ale na druhé straně je dobré mít zadní vrátka pro případ úspěšného rozšíření .NET. Co na to říkáš?

    icaza

    No, já právě pracuji na úspěšném rozšíření .NET. Například, během zhruba devíti měsíců od vypuštění Mona bylo vytvořeno přes 40 desktopových aplikací. Minimálně jsme tedy dosáhli toho, aby programátoři začali psát aplikace pro desktop. Toto bylo v minulosti těžké.

  6. Co by nám třeba přineslo přepsání aplikace jako je Gimp do Mona? Vždyť to bude jen pomalejší, ne?

    Dvě věci. Za prvé si myslím, že bychom neměli přepisovat software, protože pokaždé když si řeknete, že přepíšete nějaký software, tak se pouštíte do mnohaletého projektu. Gimp má kořeny někde kolem roku 1996 a už jednou přepsán byl. Tuším, že to bylo v roce 1997, kdy byl přepsán z Motif do GTK. Ti samí lidé totiž GTK napsali. Mluvíme tedy o aplikaci, která má za sebou osm let vývoje. Nevěřím, že bychom měli investovat čas do přepisování kódu.

    Když bychom potřebovali rozšířit tuto aplikaci lepším programovacím jazykem, můj návrh by zněl - začleňme (embed) Mono. Mono je začlenitelné jako Python, můžete spojit aplikaci s Monem a rozšířit ji v Monu, ale nemusíte přepisovat původní kód. To by bylo na debug milionů řádků. Takže má rada zní - hotovou věc nechte být a jen ji rozšiřujte. Můžete třeba napsat nové vlastnosti v C#, ale zachováte existující kód. Myslím, že toto je cesta k úspěchu. Opravdu odrazuji lidi od přepisování. Byl návrh na přepsání Evolution, ale já řekl, že to nemá smysl, použijme bindings. Kód je funkční, odladěný, používá se, už je nasazený. Nemá význam jej roky přepisovat. Dělali bychom znovu stejné chyby, znovu jej odlaďovali a tak. Jsme jen lidé. Když už něco začínáte, tak to napište v Monu, a pokud už chcete rozšiřovat tak v Monu.

Druhá část rozhovoru, která vyjde za týden, se zaměřuje na GNOME.

  1. Filip Vrlík: On which projects do you focus mostly at this time? Can you introduce these projects to us, please?

    Miguel de Icaza: I work mostly on the Mono project. Which is a developer platform, based on the .NET developer platform. What is interesting about this technology is that it is independ on the language. Many people have spend enormous time by making sure that this virtual machine is good enough...

  2. Something like Java?

    It's similar to Java, but they have put an extra emphasis on multiple language support. For example, one thing that Java can't do efficiently is to support C and C++.

    Motivation for Mono is productivity. We have built Evolution and OO.org in the past with C++. And a lot of the problems that programmers face today are, ehm, C++ is very low-level language. You have to do your own memory management, so your application leak if you are not carefull. Also there is a lot of problems with memory coruption; like you free a pointer twice, you use the buffer that someone else is using, or you corrupt memory that someone else is using, and so on.

    We were looking, or Ximian was, for a platform that would be useful for creating large applications like Evolution in short amount of time or with less people. Either with less people or create more. Instead of creating Evolution that took two years to develop, they can do it in one year. We looked at Java and C# and it seemed that C# has the same as Java plus something more. Whenever you are doing something, whatever it is, time is important. So we have done it this way.

    As you can see, Mono was a technology to make things on the desktop happen. I'm most interested on Linux on the desktop, so, ehm, the reality is that I'm still developing for the desktop, but Mono means for any area. I'm still working with desktop group. We had just huge conference recently in Germany, I'm coming from there. They are not directly hacking desktop, but I'm providing tools for them. We have built GTK#, which is toolkit for building applications for Linux. We are making designer tool. We provide good developer tools for people and documentation. Many people complain that Open-Source documentation is terrible. We are working on documentation for Mono, we document everything in Mono, so people have good docs. We are trying to fill in the holes for thing needed to make linux successful on the desktop.

    (Miguel's mobile is ringing)

    That's my alarm. I was gonna wake up now, imagine that.

    Tell me little bit about your magazine.

    (I'm telling him about Abclinuxu.cz)

    I have another question. In each country is the situation with Linux different. How's Linux doing in Czech republic?

  3. It's not so good, but the situation is going to be better in my opinion. The community of Linux it's not so huge as in other countries. But it isn't bad and it's going to be good...

    I will tell you a story.

    Some of the best programmers I have had chance to work with were from Czech Republic. I worked with many different ones. Coming from Mexico... or this way, if you are looking from the outside not from the inside, Czechs are on the top, percently twice more than the others contribute to Open-Source. Maybe it is because of education system.

  4. I don't think so :-). But thanks.

    You have been talking about Mono. What are the news about Mono project? Any success recently?

    I think the most important thing is that... We released Mono last year, about ten months ago. And it's finally maturing to the point of being a solid code. We thought 1.0 will be never usable and 1.0 was usable, but it wasn't as polished as we have it today. We are polishing so much, every detail in Mono. So, you have better experience. Lots of polish. That means better performance, we recently have made a lot of work for performance. Some of the work we were doing will sadly not show up in 1.2, it's gonna show in the later version. Because of really big architectural changes, well not changes but some optimizations are very very hard. So, we are not gonna have it in September, as we supposed.

    Better performance, stability, right. Again it's a thing, I think, people don't really realize. We have learned from long running servers or long running applications on the desktop like Beagle desktop search. He was more stable than people think. Three big things, features, that people will notice. It's nice that you are stable and faster, but it doesn't really matter. But we are coming out with new GTK# which will suppport even more things in GTK. We have new tool to automaticaly wrap any GObject library, that you have written in C. And you can automaticaly use it from C#. We have developed some bindings to Evolution, you can completly script it with C#. I said C#, but it could be any language supported by .NET Python, Visual Basic, JavaScript or any other third party. So now you can control Evolution, you can script Evolution, use all the Evolution mail features.

  5. I see you prefer C#. Right?

    I prefer C#, because I just use it. But other people in the team prefer Python or others. So, they use that. C# is lighter, lighter of them, because C# doesn't really have a C# run-time. C# directly communicates with libraries. Well, in the case of Python, it has a boot code. Java has run-time and then the class libraries. C# is the lightest of them. But it doesn't mean you should choose it for this reason. It would be stupid, choose it only for this reason. My preference, being an old man, is to choose the one I know.

  6. People have strange feelings about Mono, they see Microsoft and it's technologies, problems with copyrights and so on...

    No, no, no! There are no copyright problems.

    So they see Microsoft and his technologies and they have strange feeling as I said. On the other hand it's good to have a backdoor or something in case of successful spreading of .NET.

    Yes, well, I'm working the successful spreading of the .NET on the Unix platform. Hmm, for example in eight months we realesed Mono they have created at least 40 desktop applications. At least we have succeeded in term how do we get programmers to starts writing desktop apps. Because it was hard in the past.

  7. If you rewrite some application, for example Gimp to Mono. What will it bring? It will be only slower, isn't it truth?

    Ok, two things. First - I do not think we should rewrite software, because everytime you say "let's rewrite the software" you are embarking in multi-year project. And it doesn't matter what language you are translating in. If they want rewrite a Gimp. Mmm. Gimp is a project, that has been around since 1996, maybe. It has been already rewritten one time, in year 1997 or 1996, because it was originaly written for Motif and then he was rewritten for GTK. These same people built GTK. And... so we are talking about an application that had at least eight years to mature. So this is very matured application. I don't believe we should invest our time in rewriting working code.

    Ehm, if we need to, if we need to extend this application with better programming language, my suggestion is to embed Mono, right, Mono is embedable language like Python. So you can embed Mono, link it with app, and then you can write extra code in Mono, but you don't need to rewrite the original code. It's millions of lines to debug. So my suggestion is not to rewrite but to fix box here and to extend it here. (rich mimics). For example you can do scripting from C# and write new features from C#, but you keep the existing code base, right. I think that's the road to success. I really discourage people who want to rewrite things. There was a suggestion to rewrite Evolution in C#. I told them: "don't do it, that's not the point, use the bindings." The code is working, is debugged, is in use, is in production. Why are we going to waste years to rewrite it and get it right? We would make the same mistakes so why exchanging some box for other box. We are human, right? So the point is, I am not suggesting people rewriting, I am suggesting - if they write new application, new ones, write it in Mono. Or extend existing application with Mono.

Seriál Rozhovor: Miguel de Icaza (dílů: 5)

První díl: Rozhovor: Miguel de Icaza - I (Mono), poslední díl: Rozhovor: Miguel de Icaza - V (Osobní).
Následující díl: Rozhovor: Miguel de Icaza - II (Gnome)

Související články

Rozhovor: Miguel de Icaza - II (Gnome)
Rozhovor: Miguel de Icaza - III (Gnome a KDE)
Rozhovor: Miguel de Icaza - IV (GConf)
Rozhovor: Miguel de Icaza - V (Osobní)
Rozhovor: Richard Stallman
Rozhovor s Vladimírem Mlynářem, ministrem informatiky
Živý rozhovor s ministrem informatiky
Rozhovor s Pavlem Cvrčkem z týmu CZilla
Czilla: živý rozhovor
Rozhovor: Petr "Pasky" Baudiš
Rozhovor: Dan Ohnesorg o CZLUG
Rozhovor: Proč je NAVRCHOLU.cz v Javě?
Rozhovor s představiteli neziskových organizací prosazujících otevřený software

Odkazy a zdroje

Miguee Portal

Další články z této rubriky

Michal Švec ze SUSE na téma Virtualizace a SLES
Rozhovor s Radkem Špimrem, IBM na téma nových serverů IBM Power Systems LC
Zpověď startupu na vlně IBM
ČVUT jako MIT? Lendl, Navrátilová, Jágr, Sáblíková, nebo absolvent FELu?
Práce vývojáře je dobrodružství

Diskuse k tomuto článku

MaT avatar 13.6.2005 02:21 MaT | skóre: 28
Rozbalit Rozbalit vše Kde je ta druhá část rozhovoru?
Odpovědět | Sbalit | Link | Blokovat | Admin
Tak ta druhá část co měla být o Gnome se nějak ztratila... Místo toho na "page=2" sedí ta první část o mono, akorát že v angličtině...
Open source software for open minded people. :-)
13.6.2005 07:21 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Kde je ta druhá část rozhovoru?
Ta druhá část se nikam neztratila. Jen vyjde o něco později. Rozhovor byl docela dlouhý, a proto byl rozdělen do 4 částí. Trochu to v článku upravím, aby to nemátlo.
13.6.2005 10:00 Sigi
Rozbalit Rozbalit vše Skoda ze jste se nezeptali na
Odpovědět | Sbalit | Link | Blokovat | Admin
Tady je jiny pohled na mono na linuxu

Why Mono is Currently An Unacceptable Risk

T.
13.6.2005 12:53 Radek Podgorny | skóre: 16
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
Hmmm, to same (nebo podobne) by se dalo namitnout i proti Jave a nejaky ten hi-lev jazyk proste potreba je. Tak ktery? Mne se vic libi C# :-)
15.6.2005 16:56 Petr
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
Osobne mi prisel zajimavy take tento clanek prinasejici dalsi pohled (IMHO rozumny). Tusim, ze byl kdysi ve zpravickach. Jedná se o MonoForFun.

Petr
13.6.2005 13:46 monak
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
No, možná je dobře, že java má po mnoha letech plnohodnotnou konkurenci nejenom na platformě Windows.

Když Novell "koupil" mono, tak jsem si myslel, že má jediný cíl a to mono zrušit, ale hodně jsem se mýlil. Což mě těší.

Jinak mohu říct, že udělat formulář ve Visual Studiu, zkompilovat ho a tento mezikód spustit na linuxu je velice zajímavá věc. Takže pro Vaše info, aplikace napsaná čístě v C# půjde spustit v linuxu bez dalších kompilací.

Dále, když vezmu v potaz, že Microsoft chystá otevřený formát v XML pro další verzi ms-wordu, tak mono a .NET je v současné době hodně perspektivní. Bude to ideální platforma na tvorbu CRM aplikací.

Určitě bych mono v dnešní fázi nebral jako úlet, ale jako věc, na které bude možné stavět v blízké době firemní aplikace. Já určitě svoji .NET aplikaci po vydání nového office očistím od interop.
13.6.2005 15:18 aubi | skóre: 4
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
Pristi verze wordu s XML? Ze jsem tohle uz nekde slysel? Nerikali totez uz posledne? A taky o podpore HTML?

A s moznosti poustet veci zkompilovane pro widle na Linuxu: neni M$ prilis znamy tim, ze schvalne zavadi nekompatibilitu, aby jejich soft nechodil na jinem systemu? Uz se napravili? ;-)

Petr
13.6.2005 15:53 monak
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
Co se týče toho formuláře, tak to jsem zkoušel. Takže to není teorie. Bohužel jsem to v příspěvku neuvedl. Ještě dodám, že mono vzniká po uvedení .NET 1.1 a ne současně. Takže pokud MS změní specifikaci, tak to odnesou i jejich aplikace. Což si asi nedovolí. Ale to je můj subjektivní dojem.
20.6.2005 11:27 aubi | skóre: 4
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
Presne totez, co s MS DOS vs. DR DOS -- Widle na DR DOSu proste nechodily. Vzdycky si dokazou najit tu kapicku nekompatibility. Je otazka, jak moc je to dulezity, protoze nekompatibilita Win2k se sambou taky moc dlouho netrvala. Z takovych triku mam strach.

Stejne tak moc neverim tomu s pravy. Nektere nezbytne casti jsou licencovane, takze cela aplikace spustit nepujde a prepisovat to nikdo nebude.

Je to porad dokola.
21.6.2005 14:01 orin
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
Jinak mohu říct, že udělat formulář ve Visual Studiu, zkompilovat ho a tento mezikód spustit na linuxu je velice zajímavá věc. Takže pro Vaše info, aplikace napsaná čístě v C# půjde spustit v linuxu bez dalších kompilací.
Mozno sa mylim (skoro nic o tom neviem), ale niekde som cital, ze to zakazuje licencia k Visual Studiu.
13.6.2005 13:52 ND
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
Podle mého názoru by to jen tak MS neprošlo, právníci budou znát institut "dobré víry", "veřejného příslibu", "nekalá hosp. soutěž" apod. V těchhle věcech se nevyznám, ale tak snadné by to MS asi neměl.
13.6.2005 15:15 aubi | skóre: 4
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
Ze tu otazku zamluvil? Necetl jsem angl. original, ale na primou otazku vubec neodpovedel.

Mne sice stve, ze bych mel pouzivat M$ technologii, ale nakonec, jestli je dobra, proc ne. Jenze co se stane, az se M$ rozhodne, ze chce za .NET platit???

Otazka zaznela, odpoved ne. Bude to v tech trech nasledujicich pokracovanich?

Petr
20.6.2005 02:19 llook | skóre: 8 | blog: l'blog | Prágl
Rozbalit Rozbalit vše Re: Skoda ze jste se nezeptali na
Odpověď zazněla a velice přímá - nejsou problémy s autorskými právy. Asi předpokládal, že se všeobecně ví, že jde o ECMA standardy, tak si odpustil podrobnosti.

Jsou věci, které v Monu z autorskoprávních důvodů nebudou - třeba Windows Forms - ale samotné CLR a C# není problém.
10 REM Dej si pauzu... 20 FOR DELAY=1 TO 5000 : NEXT DELAY
13.6.2005 10:34 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše </i>
Odpovědět | Sbalit | Link | Blokovat | Admin
V anglické verzi je
<p><i>That's my alarm. I was gonna wake up now, imagine that.</p>
A zbytek stránky je pak kurzívou.
13.6.2005 10:39 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: </i>
Opraveno, dík.
13.6.2005 18:27 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Gnome
Odpovědět | Sbalit | Link | Blokovat | Admin
Skupina desktop je co? Předpokládám, že tou konferencí myslel GUADEC. Je Linux desktop a desktop Gnome? No nic :-)

Tyhle vícestránkové články jsou novinka? Ještě jsem to tu neviděl.
Copak toho není dost?
13.6.2005 19:55 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Gnome
Tyhle vícestránkové články jsou novinka? Ještě jsem to tu neviděl.
Není to novinka. Jen není tak často příležitost tuto funkci využít. Jestli si dobře vzpomínám, tak naposledy jsme ji použili v článku Co to je ABC Linux.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.