[Polo]interpretovaných nebo dynamicky kompilovaných? To také. Ale hlavně vyšších jazyků než C a C++ (netvrdím, že to musí být C#), protože nezávislost počtu řádek funkčního kódu, které dokáže programátor za den napsat, na programovacím jazyce je prokázaná skutečnost.
Tak to dopadá, když někdo slepě přijme za své propagační žvásty a začne věřit tomu, že technologie od MS = budoucnost IT. Bohužel MS z C# zatím neudělal to, co tvrdil v okamžiku jeho uvedení. Hoši z GNOME však už nemají (po tolika měsících práce) jinou možnost, než tu káru tlačit dál, byť by i třeba jela z prudkého srázu přímo do propasti; maximálně ještě tak můžou každých deset metrů zakřičet: "Ještě je to dobrý!"
Tak to dopadá, když si někdo dá rovnítko mezi .NET a C#. Tak šup šup a jděte si o tom něco přečíst, než začnete vyvolávat další flamewar. Pokud tomu naopak rozumíte, konkrétní připomínky a poznámky vítány.
Konkrétní připomínky? Na Monu mě nejvíc napružila jejich pravidelná schopnost zanášet do kódu neustále nové chyby. Od podzimu 2003 mi na tom jede můj soukromý pidiservřík (chtěl jsem získat zkušenosti a na tom serveru není nic důležitého), svého času jsem působil jako celkem aktivní betatester, Mono obsahuje i nějaké mé patche, takže nějaké povědomí o Monu mám. Z mého pohledu je hlavní problém ve skutečnosti, že se snaží dodržovat v číslování verzí svou roadmap bez ohledu na skutečný stav projektu. To, co v létě označili za ostrou verzi, se od předchozích bet stále lišilo jen číslovkou, chyby tam byly stále a upgrady mezi verzemi byly v mém případě stále provázeny nejistotou, zda potom ještě svůj web nastartuju. Příklad: po upgradu na verzi 1.0.2 mi ve virtuálním webu, který byl spuštěn (= někdo na něj vlezl) jako druhý v pořadí, přestala fungovat kompilace těch tagů s atributem runat="server", které měly jako nějaký další atribut číslo. Parser prostě nebyl schopen převést řekněme řetězec "12" na integer a házel chybu, takže jsem všude musel přepsat šablony a vkládat čísla ve tvaru něco="< % = 12 % >" (před rovnítkem a procentem jsem byl nucen přidat mezeru, jinak mi zdejší systém nepovolil příspěvek odeslat)
Jiná věc - pokud autoři nejsou schopni třeba pro jednu ze tříd určených pro synchronizaci threadů sami napsat ani naprosto jednoduchý zátěžový test simulující přístup velkého množství threadů, takže se pak uživatel musí potýkat s deadlocky a psát si provizorní vlastní implementaci dotyčné třídy, je někde něco blbě. Pravda, tehdy to ještě byla beta, ale i tak...
V současné době jsem raději přestal upgradovat a jakmile mi zbyde trocha času, přepíšu svůj pidiwebík do něčeho rozumnějšího. Provozovat web na Monu mi silně připomíná ruskou ruletu...:-/
Tak to ale nadavate pouze na jedinou implementaci .NETu (mono). Stejna blbost jako rikat, ze Java je shit, protoze je Blackdown nestabilni...
BTW, kdyz uz se priznavate ke spoluautorstvi, je trochu smutne psat "autoři nejsou schopni" -> vy nejste schopen...
a) Icaza (potažmo Gnome, o kterém se zmiňoval "aaa") dělá a propaguje Mono. Já s ním pracoval, mám s ním zkušenosti a po těchto zkušenostech sem píšu, že kvalita Mona stojí za velký kulový. O MS jsem nenapsal ani řádek a nikde jsem netvrdil, že za velký kulový stojí MS .NET Framework. Takže než zase napíšete nějakou perlu, zkuste si přečíst, o jaké implementaci .NETu se je vlastně ta zprávička, pod kterou připojujete příspěvky.
b) nejsem autor, jen jsem posílal bugreporty a vzhledem k tomu, že jsem potřeboval, aby mi to fungovalo, obvykle jsem přiložil rovnou i patch. Dokud mi nedošlo, že mi to žere více času než jsem ochoten do toho dávat. Pokud je každý betatester autorem, pak jsem čínskej bůh srandy.
Ja jen vychazel z "přepíšu svůj pidiwebík do něčeho rozumnějšího". Vy pisete pidiwebik pro mono? A co zkusit pnet? Netreba nic prepisovat ani menit...
...jde mi jen o to, ze .net aplikace se pisou pro obecny clr a je na vas, ktery vam vyhovuje...
...kazdopadne nechci tento flame dale prodluzovat. Chapu, ze s monem mate spatne zkusenosti a nema cenu se o tom hadat. Ja mam zkusenosti dobre a taky mne nikdo nepremluvi...
Psal jsem ve VS pod Windows, dolaďoval na Monu. Ale s ohledem na úroveň implementace jsem opravdu občas musel dělat některé části kódu speciálně pro Mono, abych obešel nekompatibility. Přičemž některé nekompatibility nebyly, jak jsem se dozvěděl, chybami, nýbrž vlastnostmi. Opravdu se k tomu díky špatné zkušenosti vracet nehodlám, už proto, že se mi konečně podařilo svoje počítače přemigrovat na Linux (předtím to vázlo na notebooku, který si s Linuxem fakt nerozuměl) a MonoDevelop opravdu na Eclipse nemá. Nebo alespoň neměl, když jsem ho viděl naposledy. Windows už mám jen pro údržbu starých projektů.
Co se Portable.NET týče, ten asi znáte, stejně jako Mono, jen z doslechu, že? Možná by stálo za to se před takovýmihle radami podívat na http://www.dotgnu.org/pnetlib-status/ . Pokud tam najdete namespace System.Web, jste fakt kanón. Pokud vím, Mono je jediná nemicrosoftí implementace .NETu, která umí ASP.NET.
Tak o cem se tu vlastne dohadujeme? Ze je mono jeste trochu nedodelane, a pnet nedodelany hodne (tedy mluvim jen o pnetlib, klidne muzete provozovat pnet s knihovnami z mona) je znamy fakt. Holt to jeste nejaky ten cas zabere. Kdo si vybere na seriozni praci experimentalni software je dle meho nazoru trochu mimo...
Ano monodevelop na eclipse nema... ...a dillo na firefoxe taky ne...
Obávám se, že podle toho co jsem viděl nebude Mono dodělané nikdy. Ostatně mělo být už před pár lety. Jinak pokud ta narážka na experimentální software měla být na můj webík, již nahoře jsem psal, že na něm není nic důležitého, takže si to neustálé shazování laskavě odpusťte.
Co se týče vaší první věty, taky nevím, proč jste se začal dohadovat když jsem napsal (kontinuálně s předchozími příspěvky), že Mono je nedodělek který nemá nárok nazývat se ostrou verzí. Právě jste napsal víceméně totéž, jen trochu slušněji.
Tak uz to mam. My se totiz neshodneme na vizich budoucnosti. Ja si naopak myslim, ze .net (a potazmo i mono/pnet) maji v sobe potencial prekonat javu a hlavne napravit ty nejvetsi nesvary c/c++ a jim podobnych. V monu jeste leccos chybi, ale nedodelek je trochu silne oznaceni, nemyslite? Jsou totiz i lide (jako ja), kteri se s nepritomnosti pozadovane featury jeste nesetkaly (a to delam i slozitejsi veci nez jen hello-world, verte mi... ) a proste jim 100% vyhovuje. Zda se, ze mezi ne patri i chlapici z gnome...
To, ze vydali verzi 1.0 byla dle meho nutnost, aby se rozsirila zakladna uzivatelu=testeru. ...a ten experimentalni soft bylo oznaceni pro mono...
Za shazovani se timto omlouvam, ale jen vracim uder... ...mel jsem se ovladat...
Ona tu je ještě jedna věc. Vy chcete, aby .NET překonával Javu. Já si myslím, že ani jedna z platforem není uzavřená, takže se postupem času budou "překonávat" navzájem a vydělají na tom všichni. Ostatně první výsledky jsou už vidět v Javě 1.5.
Co se týče postoje, který jsem si postupně vytvořil (původně jsem totiž zastával stejné názory jako vy, s microsoftím .NETem dělám už od dob jeho betaverzí na Windows a v pozdějších dobách jsem se těšil, jak díky Monu budu schopen začít fungovat multiplatformně; až praxe přinesla vystřízlivění): v C# jsou věci, které se mi líbí víc než Java, ale naopak Java má velký potenciál ve způsobu implementace - Sun často prostě nadefinuje rozhraní a implementaci nechá na třetích stranách. Ty se pak můžou soustředit na tuhle konkrétní věc a výsledkem je rychlejší a kvalitnější práce, a také možnost volby, kterou implementaci si vyberu.
Ximian a jeho Mono je pro mě nakopak důkazem, že příliš komplexní systém je sice hezká věc, ale špatně se implementuje opravdu celý. Výsledkem je, že se udělají základní knihovny a ty "okrajovější" se nechají na později - a udělá se to tak u Mona, udělá se to tak u Portable.NET a máme tady několik implementací téhož ale ani jedna neumí ty okraje. Na údržbu a rozvoj je pak navíc třeba podstatně víc prostředků. Microsoft je má, ale jestli je má Ximian si opravdu nejsem jist. Tohle je prostě asi stejný rozdíl v přístupech jako mezi Unixem a Windows...
Ano, .NET je ještě zmršené C++ ala C++.NET (prý chystají ještě něco jako C++ CLI - zmizí podtržítka) a VB.NET (další úžasná věc).
Teď jsem si stáhnul VC++ Express 2005 Beta a z nativních projektů je tam už jen Console application. Tak to ať mi MS vleze na záda , tentokrát si VC++ od nich už nekoupím.
Je az trapne kolik lidi ma plnou hubu kecu, kdyz vlastne vubec nevi o co jde...
Na CLI neni vubec nic interpretovaneho (ano, jde provozovat i v tomto rezimu, ale byla by to hloupost). Jakkoliv muzete MS nesnaset (ja ho taky nemam rad), C# je proste dobrej a architektura .NET (CLR, ...) taky. Uz vidim, jak tu nekdo napise o implementaci GNOME v Jave a vsichni budou sporem provolavat trikrat-hura. Pritom je to de-facto to samy...
Jsem osobně dost rezervovaný vůči gnome jako takovému, a jestli tu někdo bude sporem provolavat trikrat-hura až se to zpružní nějakou javou, tak já to rozhodně nebudu...
<zákop pro flamevar> KDE je ještě horší </zákop pro flamevar>
.NET architekturu ms ani nevymyslel. nekde to koupili.. pisou o tom i v nejake knizce o .NET co psal nejaky clovek z MS :) (ty prachy bych za ni nedal, ale dostal jsem ji na jedne akci :)) takze vyvolavat slavu na ms je predcasne..
Nikdo tu nevyvolava slavu MS, ani netvrdi, ze MS muselo .NET vymyslet. Dulezity je, ze ho pod svym jmenem cpe do sveta a to je to co mne zajima. Jen jsem chtel upozornit na to, ze .NET je napriklad mocnejsi nez Java (na ktery je open-source velky kulovy), ale to, zda se, nikoho moc nebere...
Ja fakt nechapu co na tech Javach a .NET vsichni videj me to porad prijde jako snaha o "kolace bez prace" takovy sen, ze jednou neco napise aplikace samo budou dokonale skvele bajecne. Prijde mi to jako komunismus tam taky vsichni snili o zivotu bez prace . Vsechno jsou to molochy, kterym jenom rostou naroky aby ukazali okynko co pred 10 lety Amiga umela s 512Kb pameti Ale jen at si kazdy pouziva co chce.
Dan
A v cem pisete vy? Predpokladam, ze pouze v assembleru, aby to bylo nejrychlejsi...
Samozrejme, ze to sezere vic pameti a nekdy to muze mit nejakej ten overhead, ale to vse za cenu zvyseni produktivity prace. Funkcni program ma clovek za chvilku a ladeni je slast oproti treba cecku...
Je blbost psat driver pro sitovku v c#, ale je stejna blbost psat komplexnejsiho molocha (rozumej neco s GUI apod.) v assembleru...
BTW to jde compilovat i ahead-of-time, takze do nativniho "exace". O rychlosti bychom mohli vest slovni valku, ale mohu jen dodat, ze je to jako s Javou. "Pomalost" je proste jen mytus (kdysi to tak mozna bylo, dnes uz ne...). Vlastne existuji i pripady, kdy je to s garbage-collectorem rychlejsi. Priznavam, ze s pametovou narocnosti je to o neco horsi, ale to o rychlosti jsou blekoty-mekoty...
Nevím jestli je to všeobecný problém ne-nativních jazyků, ale mám pocit, že C# programy renderují 2D grafiku mnohem pomaleji než C++ program např. ve Win32 GDI.
Trochu nepřesně jsem se vyjádřil. Myslel jsem např C#.
Tvrdí se tu, že pomalost .NET aplikací je jen "iluze", tak chci, aby mi někdo vysvětlil, proč to o tolik pomaleji (IMHO) renderuje 2D grafiku (obrázky, čáry).
Např. C#? To je tedy definice.
Otázku jsem položil proto, že ne-nativní je podle mne hanlivá nálepka bez obsahu.
C# je jazyk, C# nic nerenderuje. Gtk# renderuje stejně rychle (nebo pomalu, mizerně a škaredě, čte-li to nějaký KDEčkař, mně je to jedno, skočte si klidně do zdi) jako Gtk+.
No dobře, .NET framework renderuje...
Jde mi o to, že když jsem stejnou jednoduchou aplikaci, která kreslila nějaké blbiny (bitmapy a čáry) napsal v C# a v C++, tak ta C++ verze měla imho trochu rychlejší překreslování, když jsem přes okno mého programu přejížděl jiným oknem.