Mono na web?

andy

Mono na web?
« kdy: 04. 03. 2012, 11:23:35 »
Ahoj
Hladam nejaku vhodnu technologiu, na ktoru presedlat z PHP. Pouzil by som Javu, lebo ju najlepsie ovladam, ale strasne mi vadi, aka je rozozrana. Pouziva niekto na web serveri mono? Ako je na tom so spotrebou pamate a existuje nieco ako jetty/tomcat pre .net? Bezi vobec dana aplikacia v nejakom containeri, podobne ako javovske servlety? Ci to funguje podobne ako php, ze sa pusti pri kazdom requeste?


black

Re:Mono na web?
« Odpověď #1 kdy: 04. 03. 2012, 14:31:29 »
Zdravím,

1) Používáme v práci výhradně Javu a žádné rozežranosti jsem si nevšiml. Slyším o ní jen od lidí co Javu nikdy nepoužívali.Od kud čerpáte informaceo tom že je rozežraná? Nebude víc než .NET a určitě méně než Mono.

2) Apache obsahuje rozšíření, které umožňuje provozovat aplikace napsané v Mono.Toto řešení se mi nepodařilo nikdy uspokojivě zprovoznit. Řekl bych že se jedna spíše o hračku. Existuje i FastCGI plugin,ale tam bude docházet ke kompilaci pro každý požadavek.

Na vašem místě bych se Javy opravdu nebál. Zkuste a uvidíte sám jak hospodaří se zdroji.

andy

Re:Mono na web?
« Odpověď #2 kdy: 04. 03. 2012, 20:38:43 »
Mono je viac rozozrane ako .net? :/ No tak to ze java je pamatozrut nie je ziadne tajomstvo. Sice tolko pamate ani alokovanej nema, ale GC si s oblubou rezervuje kvanta pamate a je umenie to vyladit aby to niekedy aj uvolnil (napr. pre diskove cache a pod.). Ja sa potrebujem zmestit do maleho VPS (512MB) a rad by som tam mal pustene aj ine veci. S .netom mam nejake skusenosti len na desktope a zda sa mi, ze je uspornejsi. Mozno este pogooglim a skoncim pri niecom uplne inom..

Re:Mono na web?
« Odpověď #3 kdy: 04. 03. 2012, 21:25:56 »
Mozno este pogooglim a skoncim pri niecom uplne inom..

Záleží, jestli to chceš jenom pro svoje projekty, nebo se tím i v budoucnu živit. Jestli jenom to první, může být zajímavou alternativou třeba Erlang - ať už se Zotonic, Chicago Boss, Mochiweb, Nitrogen...

black

Re:Mono na web?
« Odpověď #4 kdy: 04. 03. 2012, 23:14:43 »
Java má pochopitelně vyšší nároky na paměť něž program napsaný v C/C++, ale to je dáno její "architekturou". A .NET je na tom úplně stejně (obojí je pro VM, takže to musí mít vyšší nároky). Ale skutečně by mě zajímalo, kde čerpáte informace o té rozežranosti. Argument, že: "to se přece ví" ... tím byste se vážně řídit neměl. Jeden čas jsme provozovali 10 webových aplikacích na AS Glassfish 3, na serveru běžela databáze Postgres 8.3 a 5 aplikací (brány napojené na mobilní operátory) napsaných v Javě a server měl pouze 4 GB RAM a běželo to vše úplně hladce.

Ohledně GC. GC si alokuje pamět pokud ji systém nepotřebuje (ono k čemu byste v PC měl paměť, když by ji nikdo nevyužíval). Pokud Vám takové chování vadí a chcete mít v PC paměť nevyužitou, je skutečně velice primitivní přidělit maximální velikost paměti, kterou může aplikace použít.

512 MB RAM je pochopitelně málo. A je to málo ať pro Javu, .NET, Mono, PHP.

Mono je na zdroje náročnější než .NET jednoduše pro to, že VM není tak vyladěný jako VM od MS. Mono se nedá skutečně s .NET srovnávat. Nevěřím, že někdy bude tak "dobré" jako .NET. Doporučuji se podívat sem: http://www.mono-project.com/Compatibility.

Jak již bylo zmíněno. Pokud to máte na hraní, vyberte si něco "zajímavého". Grails, Scala, Erlang. Pokud to máte pro výdělek, pak si dokupte RAM a naučte se Javu nebo si stáhněte MS Visual Studio a naučte se .NET (ne Mono).



Radek Miček

Re:Mono na web?
« Odpověď #5 kdy: 04. 03. 2012, 23:41:33 »
Citace
Mono je na zdroje náročnější než .NET jednoduše pro to, že VM není tak vyladěný jako VM od MS. Mono se nedá skutečně s .NET srovnávat.

Někdy může být Mono i rychlejší:

Re:Mono na web?
« Odpověď #6 kdy: 04. 03. 2012, 23:45:16 »
Jak již bylo zmíněno. Pokud to máte na hraní, vyberte si něco "zajímavého". Grails, Scala, Erlang.

No ja bych Erlang nenalepkoval jako "zajimavy, ale na hrani"*. Spis jde o to, jestli chce jit clovek do risku psat v  jazyce, pro ktery bude tezko hledat programatory, nebo sam tezko hledat uplatneni.

Jinak Erlang jako takovy mi prijde jako hodne hodne dobry jazyk a i webove frameworky pomerne slusne (uplne detailne jsem se tim nezabyval, ale co jsem tak zkousel, tak na vetsinu beznych projektu maji myslim dostatecnou vybavu). Takze pokud ma nekdo mensi firmu nebo si svoje projekty pise sam, muze byt Erlang hodne dobra (a racionalni) volba.


* Ejabberd, RabbitMQ, CouchDB apod. myslim hovori docela jasne.

Kolemjdoucí

Re:Mono na web?
« Odpověď #7 kdy: 05. 03. 2012, 11:58:11 »
Jednoznačně Java a Play framework!

andy

Re:Mono na web?
« Odpověď #8 kdy: 05. 03. 2012, 20:50:45 »
512MB je na web podla mna az az. Vy si totiz predstavujete hned nieco ako root.cz web, ale toto je malicky (zatial neziskovy) webik... Medzicasom som nieco vygooglil...vyzera to, ze to mono nie je tazke rozbehat a potom uvidim. Inak ak by na tom nezalezalo, tak volim grails. Ale uz to vidim tak, ze zase skoncim pri tom PHP na ktore vsetci nadavaju (vratane mna..).

DarkKnight

Re:Mono na web?
« Odpověď #9 kdy: 05. 03. 2012, 21:18:07 »
andy - kdyz v phpcku programatori tvori weby prasacky, tak se nediv, ze na nej nadavaji :) ono i v phpcku se da vytvorit dobry a rychly projekt, ale musi se to trochu umet...

dobra volba je django, java, ror, grails, ale rozhodne bych tam netahal mono, to je prasarna a pravdepodobne i vzdycky bude

co se tyce rozezranosti v jave - pokud mate prasacky naprogramovanou appku, zere to v jakemkoliv jazyce... u javy jsou ty naroky trosku vyssi, jelikoz bez pod VM, coz je videt zase jinde :) a zamozrejme, pokud provozujete herni server, je jasne, ze to zere trochu vice nez webova aplikace

tadeas

Re:Mono na web?
« Odpověď #10 kdy: 05. 03. 2012, 21:30:40 »
.NET? Java? Mono?
To se radši to PHP nauč pořádně, ono stačí se třeba naučit nový framework a uděláš toho pro sebe víc.
A pokud chceš mermomocí něco jinýho než PHP, tak co třeba něco normálního? Python (+ Django, TurboGears, Pyramid...). Ruby (+ Rails...). Perl...
Na paměť s klidem kašli, to bys musel napsat hodně neefektivní ksindl s tisícema+ spojení, aby 512 MB nestačilo.

andy

Re:Mono na web?
« Odpověď #11 kdy: 05. 03. 2012, 21:57:08 »
No nebudem sa tu bavit o tom preco nie PHP, o tom nebola otazka (neviem ako si dosiel hned na to, ze ho neviem poradne? teda zalezi od toho, ci myslis tu poslednu, predposlednu alebo ktoru verziu...). Momentalne sa hram s yii...

Inak asi v mone robi projekty len novell...aj co som googlil, zda sa ze to vela ludi nepouziva. (mozno to ma dovod :) )
DarkKnight: preco je to prasarna? Nejake osobne skusenosti?

Trident

Re:Mono na web?
« Odpověď #12 kdy: 05. 03. 2012, 22:23:26 »
Zdravím,

1) Používáme v práci výhradně Javu a žádné rozežranosti jsem si nevšiml. Slyším o ní jen od lidí co Javu nikdy nepoužívali.Od kud čerpáte informaceo tom že je rozežraná? Nebude víc než .NET a určitě méně než Mono.

2) Apache obsahuje rozšíření, které umožňuje provozovat aplikace napsané v Mono.Toto řešení se mi nepodařilo nikdy uspokojivě zprovoznit. Řekl bych že se jedna spíše o hračku. Existuje i FastCGI plugin,ale tam bude docházet ke kompilaci pro každý požadavek.

Na vašem místě bych se Javy opravdu nebál. Zkuste a uvidíte sám jak hospodaří se zdroji.

1) Nemam rad Javu, ale ta je predevsim nenazrana protoze vyvojar neumi poradne programovat a neumi pouzivat nastroje na debug s JDK dodane. Spolehat na GC se nevyplati. Je lepe se o objekty starat a likvidovat.
Stroje na kterych bezi mnoho instanci JVM maji kolem 190GB RAM i vice. Ano stava se ze obcas nejaka masinka skape na pameti. To pak nastava boxovacka mezi adminy a vyvojari.

2) To rozsireni mam rozjete na Beagleboardu. Je to taky cvalik ale ne takovy jako java a chova se rozumne. Vlastne ani nevim jak jsem to rozbehal. Fungovalo to tak nejak out of the box.

Kit

Re:Mono na web?
« Odpověď #13 kdy: 05. 03. 2012, 22:40:58 »
Už DarkKnight napsal, že "i v phpcku se da vytvorit dobry a rychly projekt" a já si myslím totéž. Java je sice o něco rychlejší, ale to nemusí být úplně směrodatné. Důležité pro mne je, aby mi jazyk nabídl takové konstrukce a funkce, se kterými mohu minimalizovat nároky na HW a zpřehlednit aplikaci. PHP mi v tomto směru docela vyhovuje a najdu ho skoro na každém hostingu.

Proč se říká o Javě, že je pomalá? Protože někteří exoti dokáží napsat
c = Math.pow(a,2)+Math.pow(b,2);
místo jednoduššího
c = a*a+b*b;

Tohle bývá v různých podobách v různých aplikacích. Aplikace napsaná z takových komponent bude nutně pomalá v jakémkoli jazyku. Bohužel Java k tomu svádí asi nejvíc.

DarkKnight

Re:Mono na web?
« Odpověď #14 kdy: 05. 03. 2012, 22:48:59 »
andy - to o prasackych aplikacich atd. nebylo mirene na tebe ale obecne na lidi, kteri tvrdi, ze php je nanic :) ja v php (a ne jenom v php) programuju uz nekolik let a neni problem napsat efektivni aplikaci (ale samozrejme na vetsi aplikace je lepsi pouzivat jiny jazyk, treba takovy play+java, jak tu uz nekdo naznacil, neni spatna volba, taky je vyborne django (python))

a proc rikam, ze mono je prasarna? osobni zkusenosti :) pro me za me, at si v .netu delaji na windowsech, ale na *nixy, at to netahaji