Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - eMko

Stran: 1 ... 23 24 [25] 26 27 ... 31
361
Vývoj / Re:Jak se naučit PHP frameworky?
« kdy: 14. 05. 2013, 11:11:05 »
Internetových hádek se účastním velice nerad. Ale tady si přiliju slivovicu do vohně: toto jsou základní pojmy, bohužel. Vypadá to jako slovíčkaření (a připouštím, že to tak mnoho lidem, především typickým bastličům, může přiadat), ale je třeba tyto pojmy používat v tom významu, jaký skutečně mají.

362
(sorry, nevšiml jsem si, že tu není možnost editace příspěvků :-/ )

ad 1) Teoreticky by mělo. V čem konkrétně je problém? Můžeš prosím zkusit napsat něco více?
ad 3) Dep Walker je závislý 32/64 bit (nebo alespoň býval). Zkus obě verze; máš-li 32bitovou binárku, tak bys měl mít 32bitový Dependency Walker.

363
ad 2) Umí to placené verze InstallShieldu. Jinak zkus DependencyWalker - ten jse sice jenom najde, ale instalátor si pak můžeš vytvořit gratis v něčem jiném (Inno Setup, NSIS...)

364
Vývoj / Re:Jak se naučit PHP frameworky?
« kdy: 13. 05. 2013, 14:02:55 »
Proto jsem zvýraznil špatně použité slovo "funkcionální programátor" a snažil se Ti vysvětlit, proč jsi jej použil špatně. PHP a "funkcionální programování" totiž nejde dohromady (byť některé věci z FP do PHPčka prokapaly).

Klasická ukázka zdejších diskutérů - místo toho, aby se věnovala pozornost podstatnému sdělení, tak se slovíčkaří...

Já nerozporuji Tvůj názor, jen Tě upozorňuji na to, že jsi ten výraz použil nesprávně.

365
Vývoj / Re:Jak se naučit PHP frameworky?
« kdy: 13. 05. 2013, 11:51:42 »
Proto jsem zvýraznil špatně použité slovo "funkcionální programátor" a snažil se Ti vysvětlit, proč jsi jej použil špatně. PHP a "funkcionální programování" totiž nejde dohromady (byť některé věci z FP do PHPčka prokapaly).

366
Vývoj / Re:Jak se naučit PHP frameworky?
« kdy: 13. 05. 2013, 11:14:33 »
Pokud je někdo notorický funkcionální programátor/bastlič, nezná nejzákladnější pojem MVC, resp. alespoň trochu teorii i praxi návrhovových vzorů

Trochu si pleteš pojmy. Myslím, že lidé, kteří sáhnou po funkcionálním jazyku (Haskell, Clojure, z části LISP, Scala nebo F# ...), rozhodně nejsou běžní bastliči a ví, co dělají. ;-)

Jinak takoví ti bastliči, co říkají, že neopužívají v PHP obejkty (bo jim neorzumí), používají procedurální paradigma http://en.wikipedia.org/wiki/Procedural_programming . Ale jinak co se týče procedurálního paradigmatu, není to automaticky špatně - drtivá většina programů v čistém C je psána právě takto a nedá se říct, že by všechny byly neudržovatelné nebo že by se v nich nedalo vyznat.

367
Vývoj / Re:Chci se živit programováním - jak začít?
« kdy: 12. 05. 2013, 10:01:29 »
Teď ne. Ale když na sobě bude makat, tak na to mít bude. Každý nějak začínal, mnozí právě takto. Představa, že Tě naučí programovat na škole (mám za sebou FIT na VUT), je zcestná, učili jsme se to sami doma...

368
Vývoj / Re:Chci se živit programováním - jak začít?
« kdy: 11. 05. 2013, 21:26:42 »
@Petr:
... A co se týče zdrojů k učení - nešetři na knihách. Manning Publishing a O'Reilly Media jsou the best pro samostudium...

Když už jste zmínil tyhle vydavatele, máte někdo zkušenost s Wrox.com? Mám od nich digitálně 2 knihy a zdají se mi velmi kvalitní. Jsou zaměření výhradně na programování a například knihy Professional C# podle mě velmi dobře pokrývají jak jazyk, tak většinu základních věcí v .NET frameworku.

Wrox patří ke špičce. Akorát knihy od Wroxy obecně pokrývají výhradně jazyk a platformu, texty jsou hutnější. Knihy od Manninga/O'Reillyho jsou spíš popisnější a přidají souvislosti, případně věci okolo a jsou čtivější, což je pro začátečníka lepší. Samozřejmě to neplatí 100%, záleží na které autory natrefíš.

369
Vývoj / Re:Proč je JavaEE nepopulární?
« kdy: 11. 05. 2013, 21:07:56 »
Minimir: Extension metoda Select je součástí LINQu. Mám-li být přesnější, jedná se o projekci (jednu kolekci zobrazí na jinou, samotnou relaci zobrazení udává funkce/lamda výraz, kterou do Select funkce předáš). DSL pro LINQ je jen syntaktický cukr nad extension metodami.

To, že se technicky vytváří nový objekt (kolekce), jehož třída implementuje IEnumerable a líně se tam přidávají prvky z původní kolekce aniž by byla původní dotčena, je pro můj původní příspěvek nepodstatné (a navíc je to "implementační detail", v ostatních jazycích ekvivalentní funkce vnitřně funguje jinak). Chtěl jsem poukázat na to, že v C# je podpora pro rozumnou práci s kolekcemi a jako příklad jsem vybral právě tuto funkci (v Haskellu se jí říká "map", v LISPu je to "mapcar" ... ale účel je stejný).

S tím, že je to v tomto kontextu jen implementační detail, nesouhlasím. Bavíme se snad o tom, jak ta metoda ve skutečnosti funguje a tys argumentoval tím, že v Javě při trasnformaci kolekce musíš vytvářet novou instanci. Jenže jinde taky. Takže je to podstatný detail.

Jinak zcela souhlasím s tím, že v .NETu se s kolekcemi pracuje skvěle. Jen mi tam spousta javových ekvivalentů chybí.

Ne. Smysl mého původního příspěvku je v tom, že instanci nové kolekce musíš vytvořit ručně. Příklad:

List<String> names = new ArrayList<String>(users.size());
for (User user : users) {
names.add(user.getName());
}


versus

var names = users.Select(user => user.Name).ToList();

nebo

(let [names (map :name users)])

370
Vývoj / Re:Proč je JavaEE nepopulární?
« kdy: 11. 05. 2013, 20:35:00 »
Jsem dlouholetý javista.

...

A poslední dobou si rád hraji se Scalou, proti Javě opravdu generuje inteligentně vyhlížející kód,
není tak blbuvzdorná, musí se na ní víc přemýšlet,
podle mne by omezila část prasáren, které ve velkých java projektech existují
(dlouho mám touhu vést si žebříček hrůzností co jsou lidi schopni napsat)

Z tohoto hlediska mě docela zajímá framework Play.

Ten žebříček někdy zveřejni, myslím, že to bude velmi zajímavé čtení.

Se Scalou jsem si hrál chvíli také (zhruba před rokem), ale odradily mne od toho věci, které v ní někteří lidé vyprodukovali. Příklad - znáš knihovnu Dispatch? http://www.flotsam.nl/dispatch-periodic-table.html Chybové hlášky byly celkem šílené, doby kompilace projektu taky, stejně tak binární nekompatibilita mezi verzemi byl krapet problém a ve výčtu drobností, které znepříjemňují život, bych mohl pokračovat. Myslím, že ze Scaly se může stát plnohodnotný konkurent Javy, ale bude to ještě pár roků trvat.

371
Vývoj / Re:Proč je JavaEE nepopulární?
« kdy: 11. 05. 2013, 20:22:14 »
Java je objektový jazyk a v době jejího návrhu (první polovina 90. let; první produkční verze je AFAIK z 1995) se lamda výrazy běžně nepoužívaly (v C se používaly např. ukazatele na funkce). Kromě toho lamda výraz (anonymní funkce) je rys funkcionálního programování, ne objektového. Ano, taky bych uvítal, kdyby to tam bylo (když je to i ve SmallTalku ;-) ) společně s ekvivalentem .Netového LINQu, ale rozhodně to není možno nazvat slovem "samozřejmost".

http://code.google.com/p/guava-libraries/wiki/FunctionalExplained
http://functionaljava.org/

To druhé je možná polomrtvé (i když úplnější), to první v pár projektech používám. Oproti nativní lambda je to o něco ukecanější, ale v zásadě možná o to čitelnější...

Hezké, ale neřeší to ani mé přání, aby v Javě byla podpora pro lamda výrazy (neb toto není součást Javy a upřímně, moc rozšířené to také není), ani Radkovo vyjádření, že lambda výrazy v jazyku jsou samozřejmost.

V Javě v. 7 měly být, ale byly odloženy do Javy 8. Možná se jich po letech dočkáme.

372
Vývoj / Re:Proč je JavaEE nepopulární?
« kdy: 11. 05. 2013, 20:17:08 »
Minimir: Extension metoda Select je součástí LINQu. Mám-li být přesnější, jedná se o projekci (jednu kolekci zobrazí na jinou, samotnou relaci zobrazení udává funkce/lamda výraz, kterou do Select funkce předáš). DSL pro LINQ je jen syntaktický cukr nad extension metodami.

To, že se technicky vytváří nový objekt (kolekce), jehož třída implementuje IEnumerable a líně se tam přidávají prvky z původní kolekce aniž by byla původní dotčena, je pro můj původní příspěvek nepodstatné (a navíc je to "implementační detail", v ostatních jazycích ekvivalentní funkce vnitřně funguje jinak). Chtěl jsem poukázat na to, že v C# je podpora pro rozumnou práci s kolekcemi a jako příklad jsem vybral právě tuto funkci (v Haskellu se jí říká "map", v LISPu je to "mapcar" ... ale účel je stejný).

373
Vývoj / Re:Proč je JavaEE nepopulární?
« kdy: 11. 05. 2013, 19:13:30 »
Raději jednoduchý jazyk + knihovny než složitý všemocný jazyk.

Zase extra jednoduchá Java také není.

Hlavní problém je, že Java je anti-modulární (=> nevhodná na programování větších systémů).

Tohle nechápu. Neznám žádný modulární jazyk (jazyk, který poskládáš z modulů: např. v tomto programu nepotřebuju foreach, tak modul pro jeho syntaktickou podporu nyní vyhodím). Programové moduly Java podporuje, akorát jim říká "packages". Jinak moduly podporuje i čisté C nebo Turbo Pascal.

Pro začátek bych z Javy odstranil dědičnost a "otevřel" třídy - tj. dovolil bych implementovat rozhraní pro třídu i mimo ni (lambda metody považuji za samozřejmost). Takový jazyk by byl IMO srovnatelně složitý.

Jazyk by byl možná srovnatelně složitý, ale třídně založené objektově orientované programování JE o dědičnosti a o tom, že rozhraní je definováno mimo třídu. Pokud není, tak autor buď nechce, abys jej implementoval mimo jeho třídu, anebo je prase.

Java je objektový jazyk a v době jejího návrhu (první polovina 90. let; první produkční verze je AFAIK z 1995) se lamda výrazy běžně nepoužívaly (v C se používaly např. ukazatele na funkce). Kromě toho lamda výraz (anonymní funkce) je rys funkcionálního programování, ne objektového. Ano, taky bych uvítal, kdyby to tam bylo (když je to i ve SmallTalku ;-) ) společně s ekvivalentem .Netového LINQu, ale rozhodně to není možno nazvat slovem "samozřejmost".

374
Vývoj / Re:Chci se živit programováním - jak začít?
« kdy: 11. 05. 2013, 18:55:53 »
@Petr: No, pozor. Umět databáze není rovno umět SQL. Je to jak kdyby někdo napsal, že umět OOP = umět Python. Umět správně navrhnout tabulky (když se chceš učit SQL, pravděpodobně chceš přijít do styku s relačními databázemi; existují i jiné), pospojovat je, definovat nad nimi indexy a triggery a to všechno tak, aby vše bylo rychlé, snadno použitelné a blbuvzdorné, jsou léta praxe a odříkání, stejně jako OOP.

Pak do toho vstupuje ještě mezivrstva, ORM (Object-relational mapper), která slouží k usnadnění komunikace mezi programem, který pracuje s objekty, a databází, která na data pohlíží jako na relace. Samozřejmě ne vše lze mapovat 1:1 a tak ORMka nebývají triviální. Nicméně to, aby program přímo pracoval s databází, není moc časté; spíš se hledají důvody PROČ NEnasadit ORM než proč nasadit. (Komunitu nadšeneckých PHP vývojářů, kde častý důvod proč nepoužít framework nebo ORM zní "nerozumím tomu", moc nepočítej.) Očekávej, že ve firmě budou něco takového mít (ať už obecný již hotový framework nebo vlastnoručně napsané) a na databázi Tě sahat nenechají. Bordel v programu se opraví snadno, bordel v datech nikoliv.

Každopádně vidím, že jsi odhodlaný. Tak možná ještě jeden off-topic: Moc nepočítej s tím, že bys za měsíc až dva sehnal práci a pokud ano, tak hodně blbě placenou a takovou, která by Tě netěšila. Spíš se zatím uč doma a práci v oboru nech na později. Když tomu budeš systematicky věnovat každý den třeba hodinu-dvě a občas víc, za půl roku budeš úplně někde jinde. A co se týče zdrojů k učení - nešetři na knihách. Manning Publishing a O'Reilly Media jsou the best pro samostudium.

Někdo tu zmiňoval open-source projekty - ano, v životopise vypadají dobře a budoucí zaměstnavatel je ocení jako alespoň nějakou praxi. Ale proniknout do nich není lehké a většina z nich vyžaduje spíš práci na stávajícím kódu (opravy chyb, zpřehlednění ...) než nové vlastnosti. Bohužel typická otázka na přijímacím pohovoru bude typu "A který plugin pro Drupal je Váš?", takže cvič i to, jak se nenaštvat na personalistu :-) .

Good luck!

375
Vývoj / Re:Chci se živit programováním - jak začít?
« kdy: 11. 05. 2013, 16:24:27 »
Mně celkem děsí "naučím se OOP, pak PHP a frameworky". Obojí je běh na dlouhou trať (několik let), nejde to ze dne na den.

OOP je svět plný objektů, které se neustále vytvářejí, mizí, mění se Ti pod rukama a když zavoláš nějakou funkci na nějakém objektu, není zaručeno, že dostaneš stejný výsledek jako před 5 vteřinami. Není to zcela triviální koncept a zvlášť u vícevláknových aplikací je to občast dost na pokálení. Navíc zjistíš, že objekty se dělají trochu jinak v Pythonu (třídy) než v Javascriptu (prototypy).

OOP v dnešní době hýbe světem, ale není samospasitelné (viz např. to, že i do mainstreamových jinak objektových jazyků se dostávají věci z funkcionálních jazyků). Každopádně chceš-li získat práci jako programátor, je nutnost znát nejen "jak vytvořím třídu a její instanci", ale také návrhové vzory, tedy návody "jak řešit určité druhy problémů" (my, zlí jazykové, tvrdíme, že je to návod "jak obejít nedokonalost jazyka"). Základní balík návrhových vzorů je v této knize: http://en.wikipedia.org/wiki/Design_Patterns . Ne všechny je samozřejmě nutné využívat všude, např v C# se na rozdíl od Javy moc nepoužívá vzor Observer tak, jak je uveden v té knize, neboť jsou v tom jazyku konstrukce, které jej zjednoduší. Ale je dobré je znát všechny - alespoň na té úrovni k čemu slouží a jak zhruba vypadají. (Jak přesně vypadají je nutné znát pouze ke zkoušce na vysoké škole; v praxi si buď otevřeš knížku (já ji mám v kanclu na stole) nebo to vygooglíš.)

Jinak jestli Tě chytl Python, uč se na Pythonu. Na MIT se taky učí programovat v Pythonu, nedávno na něj přešli ze Scheme. Není to špatný "startovací jazyk" (Scheme je lepší, ale v praxi se téměř nepoužívá, Java/C#/C/C++ nejsou ideální na začátek a začátky v PHP = skoro vždy katastrofa). Autor Pythonu má motto "Existuje 1 cesta k výsledku a to je ta nejvíce zřejmá". Pro startovací jazyk je to dobrá vlastnost. A ideálně nemíchej verze 2 a 3, které jsou rozdílné (což ale asi víš). PHP opravdu není dobrý jazyk k tomu se učit OOP, neboť je to tam dolepované a v návrhu základní knihovny se s tím nepočítá, je to velmi znát. V Pythonu se sice některé věci dělají hůře (např. GUI, protože v něm nelze napsat více-vláknovou aplikaci - vždy v 1 čase běží 1 a jen a pouze 1 vlákno, takže na dlouhé operace "na pozadí", které tu a tam updatnou GUI, přičemž uživatel chce s aplikací dále pracovat, jsou mimo realitu. Stejně jako ve většině ostatních skriptovacích jazycích.), ale jedná se o celkově lépe navržený jazyk než PHP. Pracovní pozice na Python také nějaké jsou a kdyby ne, můžeš se pak naučit C#/Javu/Perl/PHP - když budeš umět obecné základy a velmi dobře Python, učení druhého jazyka půjde mnohem rychleji.

Stran: 1 ... 23 24 [25] 26 27 ... 31