Potřebuji radu ohledně programovacího jazyku

Werto

Potřebuji radu ohledně programovacího jazyku
« kdy: 10. 10. 2010, 16:20:29 »
Dobrý den,

ptal jsem se již v komentářích ke článku "Gtkmm: pište GTK+ v jazyce C++", ale teď mě napadlo zeptat se přímo tady. Nuže:

programování beru pouze jako koníček a po přečtení této diskuse jsem poněkud zmatený. Ovládám dle mého poměrně přijatelně C++, ovšem co jsem tady četl, tento jazyk již není tak dobrý jako byl dříve. Programuji si pouze utilitky menšího rozsahu (například QuickRun, apod.). Koukal jsem na python, ovšem venku je již verze 3.1.2 a PyGTK podporuje verzi 2.6, což mi přijde jako známka zpomaleného vývoje (přijde mi to tak, nevím jestli je na tom kapka pravdy). Takže bych se rád zeptal - jaký jazyk (a k němu i nějaký GUI toolkit) by na relaxační programování tohoto rozsahu byl dle vás nejlepší?

Předem děkuji za odpovědi.


mimi

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #1 kdy: 10. 10. 2010, 18:24:17 »
cokoliv vam vyhovuje:)

me se napr libi python +qt a nebo tk:)

Jakub L.

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #2 kdy: 10. 10. 2010, 19:24:38 »
Koukal jsem na python, ovšem venku je již verze 3.1.2 a PyGTK podporuje verzi 2.6, což mi přijde jako známka zpomaleného vývoje (přijde mi to tak, nevím jestli je na tom kapka pravdy).

Potíž je především v tom, že Python 3.0 je tak zásadní revize, že mění zpětnou kompatibilitu... Obecně se stále pracuje v Pythonu 2.6 a je to normální, protože přepis aplikací do Pythonu3 je náročný (je to skoro jako přepis do nového jazyka)

Co se zbytku dotazu týče:

Volba záleží především na vás, z hlavních toolkitů je to GTK a Qt, obě LGPL a obě podporované ve většině jazyků... Teoretickou variantou je toolkit WxWidgets (je to mezivrstva mezi toolkity)

Z jazyků je na experimentování smysluplné použít jazyk, ve kterém už umíte, Python není špatná volba

Werto

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #3 kdy: 10. 10. 2010, 19:43:51 »
Ohledně WxWidgets - s těmi jsem se trochu seznámil při práci v C++. Vyzkouším Qt4, vypadá poměrně solidně. Python se mi líbí svojí jednoduchostí, ale o to víc je potřeba ten toolkit. Děkuji za ohlasy :)

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #4 kdy: 11. 10. 2010, 10:52:50 »
Otázkou je, co myslel autor tím pojmem "Není dobrý jako dříve". Dá se to vykládat dost mnohoznačně. Ale ještě než bych se tím na Vašem místě zabýval, položil bych otázku sám sobě, zda mi pořád C++ vyhovuje, zda pořád má ty vlastnosti pro které jsem si jej zvoli.

Pokud mám mluvit za sebe, tak mě (jsem na tom podobně jak Vy) zatím na 100% a rozhodně by mě ani ve snu nenapadlo přecházet na Python jako primární vývojový jazyk. 


Werto

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #5 kdy: 11. 10. 2010, 11:49:01 »
Pojem primární vývojový jazyk je u mě dosti relativní. Jak říkám, neprogramuji v práci, za peníze, jenom doma pro zábavu. C++ jsem volil, protože mi ho doporučilo spoustu lidí, jako jazyk, ve kterém se programuje mnoho programů. Proto jsem se ho naučil a programuji si v něm. Teď již spousta lidí preferuje jiné jazyky (moderní) jako například Python, který se mi líbí svou jednoduchostí. Nevím, jaké programy a jakého rozsahu děláte Vy, ale mě někdy přijde že pro menší utilitky je C++ docela upovídané.

mat

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #6 kdy: 11. 10. 2010, 12:08:48 »
Pro mne je to Ruby + Gtk + Webkit + Cčko pro moduly do Ruby s potřebou extrémního výkonu.

cleb

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #7 kdy: 11. 10. 2010, 12:20:12 »
Moje oblíbená kombinace je c++ a Qt4.

Ale to je věc osobního vkusu, například c# se tváří velmi pohodlně.
Chce to zkoušet, a najít si svou oblíbenou kombinaci jazyka a toolkitu.

Ghost

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #8 kdy: 11. 10. 2010, 12:48:49 »
Ja jsem zvykly na javu - vetsi udelatka v ni (pokud je potreba nejake gui). Mensi veci v shellu, popripade php-cli, perlu. V C/C++ umim, ale moc nepouzivam. Nikdy jsem v nem nedelal zadne gui - ale premyslel jsem jestli nezkusit gtk ci qt. Co mi vadi na c/c++ je dost velka ukecanost a pak samozrejme hledani potrebnych funkci/knihoven, coz treba v jave neni vubec problem.

S tou neznamosti knihoven je to asi jen o zvyku, kdyz to ma clovek jako denni chleb, tak ten problem nejspis nema(?).

Na jave mi vadi jen defaultni (hnusny) vzhled GUI komponent (pro male udelatke je dle mne nesmyslne pouzit nejaky mamuti framework). Vetsinou nema clovek chut udelat si vlastni komponenty (ale v budoucnu si chci napsat nejaky lehky framework).

Program

Javu, python, perl
« Odpověď #9 kdy: 11. 10. 2010, 14:16:59 »
Pokud nejste v programování příliš sběhlý, tak bych upřednostnil javu. Nic méně jazyk je jen nástroj a dnes jsou imperativní jazyky velmi podobné a řekl bych, že je to často jedno. Jen pozor například na GIL v pythonu. Jinak můžete klidně zkusit třeba haskell  ;)

Jan

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #10 kdy: 11. 10. 2010, 15:37:05 »
Citace
... ovšem co jsem tady četl, tento jazyk již není tak dobrý jako byl dříve ...
Já bych řekl, že C/C++ není horší ale je to pořád stejný jazyk jako dříve. Pouze změnil se svět a požadavky na aplikace. Pokud vám C/C++ vyhovuje není důvod měnit. Navíc pokud máte programování jako koníčka, tak tady už vůbec není co řešit a klidně si to pište v Cobolu i když v praxi by vás za to ukamenovali :) Univerzálně zvolit jazyk nejde, technologie se volí (nebo aspoň by měli) v závislosti na zadání/požadavcích.

ondra.novacisko.cz

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #11 kdy: 11. 10. 2010, 16:07:13 »
C++ jeden z mála jazyků, který provádí přímou transformaci z kódu do nativní formy přímo pro procesor bez nějakých komplikovaných mezikroků. Je k tomu uzpůsobený, včetně všech výhod a nevýhod z toho vyplývajících. Výhodou C/C++ bude vždy schopnost programovat na systémech, kde jiné frameworky nejsou k dispozici. Jazyk sám se moc nevyvíjí, což je na jednu stranu jeho nevýhoda, protože nestačí moderním trendům, na druhou stranu výhoda, že není třeba se neustále učit nové věci a programy napsané před 10 lety jdou většinou bez problémů přeložit i nyní. Rozhodně se ale vyvíjí optimalizační nástroje, v tomhle směru se o prvenství hádá MS Visual Studio a GCC a na paty jim šlape Intel. Co se samotného jazyka týče, tak připravuje se neustále odkládaná norma C++0x, která už začíná pronikat do komerčních překladačů (a do GCC), akorát je to jako se vším, objevují se rozdíly v implementaci.¨

Dobrou konkurencí C++ je Java, zejména z hledska optimalizací umí být někdy rychlejší, než kód v C++, protože umí optimalizovat dynamicky. To ale něco stojí a ne vždy tento benefit má takový přínos, protože dynamická optimalizace prostě sežere zase nějaký výkon na víc. Ale jsou příklady, kdy Java je rychlejší, než C++.  Někde okolo stojí C# jehož hlavním benefitem je podpora přímo v OS WIndows. Oba tyto jazyky ale neumožňují přímý překlad do cílového kódu, neobejdou se tedy bez mezikódu, bytecode, který se následně překládá, nebo interpetuje, podle možností cílové platformy. Bytecode nemá tako dobré vyjadřovací schopnosti, jako zdrojový kód, a tak překlad do finálního kódu nemusí být tak optimální, jako třeba překlad šablon z C++, kde si optimalzátor kódu často pěkně zařádí.

Python a skripty bych z hlediska výkonu vynechal. Jsou to prostě skrypty, na RAD (Rapid Application Development) jsou znamenité, ale výkon nemají.





Logik

  • *****
  • 1 022
    • Zobrazit profil
    • E-mail
Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #12 kdy: 11. 10. 2010, 18:03:25 »
Ehm, co se týče optimalizací (alespoň pokud dobře chápu že je tim myšlena optimalizace přeloženého kódu), tak rozhodně se nepřetahuje gcc s MS. Pro výpočtářské kompilace se používaj profi kompiláory (ifort, PGI) a rozhodně ne GCC (ze zkušenosti kód cca 20% pomalejší, nehledě na někdy obtížnější linkování matematickejch knihoven, který bejvaj k proprieálním kompilátorům přibalený).
MS kompilátory pak vypadávaj už čistě díky platformě, protože hodně málo kdo počítá na windowsech (nemluvě o výpočetních clusterech - ty snad na ničem jinym než unixu/linuxu nejsou).

Jinak poměrně progresivním trendem pro vývoj vědeckého software je právě kombinace vysokoúrovňového jazyka pro zápis samotného vnějšího algoritmu s voláním vysoce optimalizovaných funkcí v C či Fortranu. Viz např. scipy, numpy, fy2py, pyfort atd.. v pythonu.
« Poslední změna: 11. 10. 2010, 18:05:59 od Matyáš Novák »

ondra.novacisko.cz

Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #13 kdy: 11. 10. 2010, 21:28:05 »
To nevím, já mám zkušenost s právě s Visual Studiem a s GCC. ZKoušel jsem i ten Intel, Dále jsem zkoušel různé ty borlandy a watcomy a okrajové překladače a to bylo horší. Mluvím samozřejmě o optimalizaci na klasické PC platformě a to pro běžné užití, nikoliv pro speciální úlohy. Předpokládám, že úzce profilované úlohy lze optimalizovat lépe pomocí specializovaného překladače, takže bych se samozřejmě nedivil.

Logik

  • *****
  • 1 022
    • Zobrazit profil
    • E-mail
Re: Potřebuji radu ohledně programovacího jazyku
« Odpověď #14 kdy: 11. 10. 2010, 22:36:38 »
borlandy a watcomy .... no ty sem opravdu nikde neviděl doporučovat - třeba borlandí C++ kompilátor je děs běs. Ani nevim o tom, že by byl někde jinde než na widlích. Co mám zkušenosti, tak nejvíc se používá icc/ifort (kupodivu i na AMD dává výtečný výsledky) nebo kompilátory od portland group. GCC se většinou používá jako "last option" když snaha o překlad něčim "rozumnym" selže.

Nevím, co je myšlený spojením "klasická PC platforma". Jestli je tím myšlený Windows, tak kolik lidí překládá na windows výkonnostně náročný programy? Já snad ve svém okolí neznám žádného, a to se pohybuju kolem lidí, co dost počítaj. V podstatě všichni numerici, fyzici, aerodynamici atd... co znám počítaj na linuxu.
Aby taky ne - ono aby člověk používal programy, který se výkonem právě strefujou do možnosti PC je dosti nepravděpodobný. A jakmile jsou nároky na výkon menší, tak proč by řešili kompilátor, jakmile je rychlost PC omezuje, tak maj někde cluster a na clusteru linux.

IMHO jedině, kde je smysluplný řešit rychlost na widlích, je kompilace výkonostně náročných programů pro druhé, který linux nemaj (např. enkodéry videa, statické výpočty apod.). Jenže kolik lidí todle dělá - v poměru k počtu lidí ve všech různejch univerzitách, výzkumácích i ve vývojovejch centrech komerčních firem?
« Poslední změna: 12. 10. 2010, 00:16:35 od Matyáš Novák »