Portál AbcLinuxu, 26. října 2025 07:42
Rad bych nasel nejaky efektivni jazyk pro linux i windows, ktery mi umozni rychle napsat pozadovanou aplikaci (web) a pritom me da moznost kontroly "nad tim co se deje".
Myslím, že tady jednoznačně vede Java.
"nad tim co se deje".Tomu to moc nerozumím, ale budiž
Myslím, že tady jednoznačně vede JavaNo, přímo Java nic neznamená. Myslíš J2EE, aby si užil všechny ty entrprajs býny s nepostradatelnými mapovacími iksemel soubory? Nebo má použít (ano, vím, že teď motám víc věcí do sebe) Struts, Hibernate, Server Faces, Spring, Cocoon, Tapestry, anebo něco zcela jiného? Podle mě je lepší, pokud chce dotyčný jenom napsat něco rychle, zvolit si nějaký vyhovující framework no a jazyk se mu už přizpůsobí. Na rychlé napsání něčeho bych dokonce doporučil i PHP (nebo třeba Perl, což už záleží na vkusu každého soudruha
).
Java se mu může vyplatit v několika případech. Buďto již ovládá a nechce ztrácet čas učením se něčeho dalšího, nebo se ji chce naopak naučit, případně předpokládá fluktuaci lidí - aneb v Javě dneska "umí" každý, případně mu vyhovuje zvolený javovský framework.
. Čiště ve Windows bych mu doporučil C#, ale pokud to potřebuje provozovat i na Linuxu, tak asi ne.
Dalsi vec je databaze. Vetsinou k dotnetu vsichni prifarej MS SQL, ale obcas se ukaze nekdo s necim jinym, treba ted naposledy to byla MySQL. Opet neni vetsi problem. Jeden stalejsi projekt kterej bezi nad MS SQL vyvijim s uspechem nad Postgresem. Kdyz si clovek da pozor co posila a necha si tyhle neoficialni verse zdrojaku bokem, tak zde opet neni zadny problem ktery by stal pred nepouzitim Mona.
Ackoliv jsem se .NETu puvodne dost branil, tak musim rict ze C# neni az zas tak osklivy jazyk. Javu neumim, ale na to ze C# je jenom vobslehla Java, tak myslim ze pouzivat C# na unixu je mi milejsi nez zprovoznovat javu. Nevim jaky je soucasny stav, ale kdysi kdyz jsem z portu instaloval Javu tak mi to reklo ze z nejakych duvodu musim distribucni soubory stahnout rucne a pochopitelne ze u kazdyho souboru bylo treba souhlasit s peti licencema, proklikat se pres deset stranek, vyplnit formular a pak ve vysledku se stahnout nekolik nemalych tarballu. Fuj! Uz nikdy. Navic si myslim ze Mono (nemluvim o platformach ale o implementacich) je ve srovnani s Javou mnohem mnohem rychlejsi. Ale jak rikam - Javu jsem dlouho nevidel, navic popisuju situaci na BSD. Kdo vi jak to je dneska. Na Solarisu to bude zcela urcite o necem jinym
) Je to jedno. Ja mam s Monem celkem dobre zkusenosti a vsechno co jsem potreboval vetsinou slo, v nekolika malo pripadech bylo potreba trosku zasahnout, ale jinak vsechno ok :)
Ale vážně, až Java bude v syntaxi jazyka umět to co C#, tak přísahám, že budu v Javě programovat jako vzteklej a budu za ní rád. Zatím jaksi mám k Javě takový ambivalentní vztah. Už jen to, že .NET dokáže brát čísla jako objekty (například 1.ToString()), umí porovnávat řetězce ("ahoj" == s skutečně porovná hodnoty řetězců!!!), umí operátory (takže s maticemi můžete pracovat jako a+b*c/d, nikoli jako a.add(b).mul(c).div(d)), navíc není tam to omezení, že třída = modul jako v Javě a spousty dalších věcí je to, co mě od Javy odrazuje a vede spíš k .NETu.
Na Windows je to dnes jasné - .NET + MSSQL, to je in. To je ale problém, že není moc kvalitní jiná db na Windows. Postgreska bohužel má na Windows dost omezení, kvůli kterým já osobně nemohu ani na svém notebooku tuhle db provozovat a vývojáři v manuálu se ani netají, že je Windows štve a hodlají pro win port udělat opravdu naprosté minimum. Firebird má zase tak mizernou dokumentaci, že nech byl někde sehnal potřebné informace, raději jí nechávám stranou. MySQL je pro komerční vývoj velmi předražená, tudíž nepoužitelná. Pokud si nechci dělat problémy a chci vyvíjet komerčně, ona nakonec na Windows ta MSSQL vychází skoro nejlíp. Máte-li jiný tip na dobrou db pro Windows budu vděčný.
C# se mi jako jazyk líbí. Ale Mono mi holt prostě nesedí, kdysi jsem se s ním spálil a už mu prostě nevěřím - a originální Microsoftí .NET je jen pro Windows.
) Navic moje situace asi opravdu zalezi na tom ze treba nejsem na linuxu nebo win protoze na ty ostatni systemy se to dostane trosku jinak, pozdeji a kdovi v jakem stavu. Tusim ze tahle java se snad jeste navic instalovala nad linux_emul, tim si ted nejsem jisty a ani nevim jak to je ted. To mohlo zpusobit taky jiste zpomaleni, i kdyz ta emulace je imho dost slusne rychla. S tim jak moc zere webserver prostredku moc nebojuju. Ja v tom vyvijim, ale neprovozuju, takze to opravdu neni zas az tak moje starost kolik mi zere server na pradzno :)
Proti zadnemu jazyku nic nemam, jenom jsou nektere u kterych se dokazu vytocit na relativne drobnych prkotinach :)
Jeste k te nize popsane chybe 500: je to zajimave, nic podobneho se mi nikdy nestalo. Obcas nejaka ta excepsna kdyz clovek nekde neco zbabra, ale jinak mi to chyby moc neukazuje. A to uz nemam zrovna nejposlednejsi versi Mona. Predtim jsem mel Mono i na jednom FreeBSD stroji a tam taky nebyl zadny problem, opravdu nevim. Na windows ani linuxu jsem to nezkousel...
Co se týče té pětistovky, nevím, nic jsem neupravoval, jen jsem to nainstaloval a spustil. Ale v době, kdy jsem se v tom ještě šťoural (a to tak intenzivně, že mě v jedné z podsledních betaverzí k mému překvapení uvedli díky většímu množství zaslaných patchů jako spolupracovníka
), jsem se s podobnými bugy setkával tak často, že mě to nějak nepřekvapilo.
)? Navíc jsem vyjmenoval pár případů, kdy se mu může Java opravdu vyplatit, takže kde byla ta polemika nad Javou? Já polemizuji s tvým způsobem myšlení.
Před deseti lety bys stejným způsobem řekl C++ a ještě předtím třeba Cobol. Ale tak se přece implementační jazyk vybírat nedá. Člověk by měl vědět co chce udělat a jazyk se tomu už přizpůsobí. To znamená, že na textové operace si nevyberu C, na rozsáhlý projekt s velkou fluktuací programátorů Lisp, nebo Smalltalk, pokud ale potřebuji něco uměle inteligentního, proč se kvůli tomu ten Lisp nenaučit?. Pokud potřebuji jednoduchý výukový jazyk, tak nezvolím Adu, nebo C++, ale třeba Logo. Když chci jazyk na vysoké úrovni, ale s možností hrabat do "střev", upřednostním C++ nad Javou a naopak když mě střeva tolik nezajímají, zvolím Javu, ... nebo když to má být něco fyzikálně matematického, proč se nenaučit Fortran (nebo třeba numeric python)?
Tedy Java není žádné univerzální řešení, ale pouze jeden z nástrojů, které má silné a slabé stránky.


)
ad výnimky: ja sa rozhodnem, či chcem alebo nechcem, či napíšem use Exception; alebo nie.
ad objekty: s objektami je perl na tom o trochu lepšie ako java, podporuje aj multiple inheritance aj overloadovanie operátorov. Navyše, takmer všetko sa dá v perli označiť ako objekt (presnejšie, každý odkaz). Na neobjektový jazyk slušné, nie? Ono je to len o tom, či je človek dostatočne odhodlaný učiť sa.
S vami spomínaných jazykov (v čase keď som si o nich aspoň niečo čítal):
Java - nemala overloadovanie operátorov ani multiple inheritance, v kóde tisícky pretypovaní (new java.lang.Hashtable ...)
C# - obmedzená hĺbka stromu dedičnosti
Python - medzery a tabelátory majúce význam, brr

aby sme sa len nehádali ako baby na trhu, navrhujem súťaž 
jednoduchý webík, jedna špecifikácia, jednotný model (xml), jednotné šablóny stránok (xml). preklad xml do implementačného jazyka xslt šablónami (preferujem xalan). Dvojfázová špecifikácia (verzia 1.0, upgrade na 2.). Rovno do toho môžeme zahrnúť aj rôzne databázy. V rámci toho by možno nenudilo i zopár "stress-test" aplikácií.
Ak by bol záujem, špecku, data model i formát šablón mám tak na 80% premyslených.
A potom sa môžeme kľudne hádať, ktorý jazyk je lepší, kto čo musel "ochcat"
) aha, v praxi otestujete jazyk tak, že nebudete používať xml a db-knižnice, ale pár 100k riadkov? Alebo je to len obyčajný strach (provokácia) 


. Potom nastupuje aplikačná logika (povedzme, že by sme reimplementovali abc s pár vylepšeniami). XML preto, aby aplikácia bola schopná pracovať s rôznymi databázami (postgresql, firebird, ...) aj ne-databázami (mysql, textový súbor, ...).
upravovať? prepisovať? k tomu len jedno, v perli obľúbené, TIMTOWDI

Pre test jazyka sa hodí čokoľvek, i tých 70-80% vygenerovaných vecí predsa bude niečo z toho jazyka (prinajhoršom inicializácia príslušných knižníc).
btw, ten perl fakt nie je až taký zlý, ako si ho predstavujete
vygenerované veci do jazyka počítať musíte, príklad:
Perl:
my $hash = {
A => 'a',
B => 'b',
};
PHP:
$hash = array ('A' => 'a', 'B' => 'b');
Java:
my hash = new Hashtable ();
hash.put ('A', 'a');
hash.put ('B', 'b');
nevraviac o generovaní dispatch table
tie, popr moduly začínajúce Tie::Hash::, napr. Transactional (s commit/rollback), Layered, ...
SQL::Abstract
napr generovanie where klauzuly, napr:
$SQL = new SQL::Abstract;
($sql, @bind) = $SQL->where ( { col1 => undef, col2 => [1, 2, 3] } );
print $sql;
# WHERE ( col1 IS NULL AND ( ( col2 = ? ) OR ( col2 = ? ) OR ( col2 = ? ) ) )
($sql, @bind) = $SQL->where ( { col1 => undef, col2 => { in => [1, 2, 3] } } );
# WHERE ( col1 IS NULL AND col2 IN ( ?, ?, ? ) )
atd, atd, viac na CPAN-e
PHP. Tento jazyk ne. Obecne se poklada za "bastl" a uz jsou lepsi na trhu. Hosting a prace se v nem sezene snadno.
Přijde mi, že PHP je považován za bastl především lidmi, kteří v něm nikdy nepsali... Jistě není to jazyk pro rozsáhlé projekty (i když se ho tak s každou novou verzí autoři snaží o něco více prezentovat), ale pro věci do určitého rozsahu je to víc než dobrá volba.
.
Líbí se mi syntaxe jazyka, přehlednost frameworku, nástroje a v neposlední řadě i to, že lze tyto aplikace provozovat i na Linuxu.
V PHP toho pár napsaného mám a už nikdy více
pak Microsoft začal přicházet na to, že chce podpořit jinou novou technologii, a že je potřeba násilně jiné předchozí trochu utnoutZde by se zajímavým způsobem mohla projevit jedna vlastnost OSS. Takové technologie občas přežívají nikoli proto, že jsou lepší, ale proto, že jsou open source (X Window, NFS a potažmo i celý unix) a víceméně fungují. Možná právě z toho má MS strach, protože mu mono může sebrat to, co vždycky měl, kontrolu nad programátory.
A Mono už je takový větší projekt, který nadšencům přeroste přes hlavu.On jim přerůstá přes hlavu už od začátku, stačí si vzpomenout, kolikrát bylo odloženo vydání ostré verze (nemluvě o tom, že ostrá verze byla "ostrá" jen podle čísla, jinak to byl nestabilní bastl). Mono 2.0 mělo být podle informací z konce roku 2004 vydáno ve druhém kvartálu 2005, a ejhle, dnes už se píše o 4. kvartálu letošního roku, takže uvidíme, jestli to do ledna stihnou. Jinak ta referenční implementace byla pro BSD a byla značně ořezaná. Pokud vím, Mono s ní nemá nic společného.
Právě se ho někomu podařilo zkompilovat pod MinGW, no, port na generický Unix bude horší, ale taky by to mělo jít.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.