Diskuze: Java nebo Python?
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 50 zpráv z 52.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
V Pythonu se na Windows moc nedělá, navíc nevím, proč by se v Javě měly dělat jednoduché věci složitě. Tyto postřehy mě vždy udivují.
podle mě se tam i složitějiší věci dají dělat jednoduše stejně jako
v C# nevidím důvod jít do pythonu kůli obtížnosti dělej to co už trošku umíš ne?
Mno tak z Javy toho už něco umím, a oproti například PHP se tam věci
dělají o hodně složitěji.
Navíc Java nemá EXE (teda v tom si nejsem jistý, viz. Minecraft), se kterým
se to dá zpřístupnit ostatním uživatelům. A prostého uživatele by asi
nenapadlo kliknout na formát Javy, když je zvyklí na EXE.
Do Exe se dá Java převést 2ma kliky, PHP je určené úplně k něčemu jinému, to nemůžeš s Javou srovnávat.
jar můžeš zabalit do exe každopádně není to to samé. Co se tam dělá
třeba složitěji než v php? Jinak pokud tam ten exe nutně potřebuješ tak nejednodušší
aleternativa je, že bys to mohl napsat v C# ale pokud je na výběr jen java
nebo python, tak asi python no
Pro Windows se dá použít třeba IDLE.
Na jednoduché věci je obvykle výhodnější Python, proti Javě je velmi stručný. Jakmile však aplikaci překročí určitou míru složitosti, je zpravidla výhodnější ji přepsat do Javy. Pokud tedy předpokládáš, že aplikace bude složitější, bude asi vhodnější použít Javu rovnou.
Python je skvělý při prototypování, ale složitější aplikace se v Javě udržuje mnohem lépe. Spoustu logických chyb, které Pythonu nevadí, odchytí už kompilátor Javy jako syntaktické chyby.
Ale přesto je to programovací (skriptovací) jazyk. Třeba mi přijde v
Javě nesmyslný definovat u každé proměnné její datový typ - ale nebudu
se teď dohadovat.
Jaký jazyk by pro vizuální novelu byl vhodný?
Minecraft se dodává jako JAR, pro Windows se přidává obálka, která z něho udělá EXE. EXE je však nepřenositelný mezi platformami, proto není tak výhodný.
Již ti 3 lidi napsali že Java. Chápu, že když nerozumíš proč se tam typ píše, může ti kód připadat složitý a delší, ale opak je pravdou, protože díky explicitní definici typů ti kompilátor pomáhá a neděláš chyby.
Datové typy v Javě nejsou pro srandu králíkům, dají se s nimi dělat všelijaká kouzla, která např. v Pythonu ani nejdou právě kvůli tomu, že se nemusí deklarovat. Když Javu pochopíš, tak zjistíš, že deklarace nejsou brzdou, ale naopak výhodou. Vhodnými deklaracemi se dá program zkrátit a zpřehlednit.
Python je velmi výhodný pro interaktivní práci. To Java nedokáže, alespoň ne tak dobře. Netuším však, jestli by to byla výhoda pro zmíněnou vizuální novelu.
Vždycky protáčím panenky když sem někdo přijde a stěžuje si jak je v Javě dlouhý Hello world a jak v Pythonu nebo v Ruby to je jedna řádka. Vůbec jim nedochází, že třídy a datové typy ve finále práci usnadňují. Ale na druhou stranu to chápu, když tomu člověk nerozumí, tak ho to vyděsí.
Tak si asi zvolím Javu, ale třeba největší engine na vizuální novely je napsaný v Pythonu, a jeho kód není tak složitý, jako by to nejspíš bylo v Javě. Java má spoustu funkcí, který v tomhle případě nikdy nevyužiju, takže Python by to všechno zlehčil (přeci jen je to jednoduchý jazyk). Bylo by to i přívětivější pro uživatele.
Proto tvrdím, že je lepší začít u Pythonu. Na něm se spousta jednoduchých aplikací dá vyrobit velmi snadno a rychle. Na prototypování je prostě skvělý.
Java nebo C# jsou však propracovanější a na složitější úkoly jsou lépe vybavené. Java mě zpočátku také děsila, ale od doby, kdy jsem si do svého editoru udělal svoji vlastní sadu maker, píšu programy pro Javu asi ještě rychleji, než pro Python.
Zatím se mi v Javě nepodařilo rozchodit SQLite. V Pythonu je nativně, proto na úlohy, kde potřebuji SQLite, preferuji Python.
V Pythonu se na Windows nedělá. Budeš řešit samé problémy, vždyť nemůžeš najít ani IDE, nenajdeš české tutoriály protože je PY málo rozšířený, nakonec budeš mít problém to převést do exe. Tvé argumenty jsou úplně nesmyslné, že má Java více nástrojů neznamená že je těžší, kdo říká, že je musíš používat? Naopak když je potřebuješ, je kód jednodušší.
Najdi si učebnici Ponořme se do Pythonu. Tutoriálů je hromada, stačí jen umět hledat. Je jedno, jestli v Pythonu píšeš pro Windows nebo pro Linux. Aplikace jsou stejné.
Že se na Windows v PY nedělá a komunita je dost malá má nějaké důvody. Kdybys měl Windows, také bys v něm asi nedělal. Řekl jsem Shigei svůj názor, dále už je to jeho boj.
Jak tedy zprovozním SQLite v Javě? Potřebuji použít SQLite a Java mi na to nenabízí potřebnou knihovnu. Python ji má, funguje skvěle a dokonce má i pár skvělých doplňků, které v originálu nejsou. Takže na tento typ úloh použiji Python i ve Windows.
Chtěl jsem pracovat s SQLite v C# a překvapilo mě, jak tato DB není vůbec podporovaná, nakonec jsem to udělal v MS-SQL Compact. Většina Jazyků je uzpůsobena pro práci s jednou konkrétní DB, v Javě jsem s DB ještě nepracoval, ale určitě se k tomu dostanu.
Mám data v SQLite, která jsou generována jinou aplikací. Potřeboval jsem ta data zpřístupnit pro tvorbu analýzy a grafů. Python byl jasnou volbou.
Pokud potřebuješ DB v Javě, tak ta má i svou vlastní embedded DB i možnost připojit se k síťovým DB. Vím, že i pro SQLite existuje nějaká knihovna, ale odradila mne její velikost.
Vůbec mě nepřekvapuje, že SQLite není podporovanou databází v C#. Microsoft se snaží prosazovat hlavně svoje vlastní produkty.
Existuje ovladač, který dokonce podporuje LINQ, ale vůbec se neprosadil, komunita evidentně nemá důvod používat něco jiného než MS-SQL. Proč taky, je zadarmo a vše je pro ni odladěno.
Klidně použij tutoriál pro linux, protože se syntaxe nijak nemění Klidně mohu doporučit tento
tutoriál: http://www.tutorialspoint.com/…on/index.htm
A jako editor já osobně používám Geany, ale použít můžeš i Code::Blocks, Eclipse, DrPython, PyPE nebo IDLE který si stáhneš spolu s pythonem.
Ano, arogance Microsoftu se zde projevila v plné síle: Máme odladěnou databázi. Když komunita o dalších databázích nebude nic moc vědět, resp. ovladače k nim budou mizerné a nespolehlivé, tak si odvyknou je vyžadovat.
progmany napsané v pythonu se celkem lehce převedou do exe použitím modulů py2exe nebo pyinstaller
Ony jsou funkční, ale nikdo je nepoužívá. Když jsem teď Googlil v jaké DB se dělá v Javě, nedobral jsem se kloudného výsledku, přijde mi lepší, když je jedno funkční řešení než 10 "jde to, ale udělej si to sám".
... a že ani jedna z těch perfektně odladěných Microsoftích databází není pro mne použitelná, to už Microsoft nezajímá. Prostě nekompatibilita se zbytkem světa za každou cenu. Typický projev monopolního chování.
Jenže to jejich jedno funkční řešení není funkční pro všechny uživatele.
Pro všechny co používají C# ano. Když budu dělat v Javě, nemám důvod používat MS-SQL. Pokud dělám v C#, dělám pro Windows a nevidím problém v použití jejich serveru.
BTW co je zač ta JavaDB?
Ohledně DB v Javě se zkus podívat třeba na tohle:
http://java.vse.cz/…databaze.pdf
Pokud v C# potřebuješ zpracovat data produkovaná například z PHP, tak kromě MySQL moc dalších řešení nemáš.
JavaDB je Apache Derby. Embedded databáze speciálně pro Javu od Apache.
Takže tvrdíš, že každá technologie musí podporovat všechny technologie, aby když náhodou potřebuji zpracovat data z jiné, tak to šlo? To přece není možné a hlavně zbytečné, když bych chtěl v C# zpracovávat data z PHP, udělám si API. Komunikovat s MySQL bych tam samozřejmě mohl taky, ale API je lepší řešení.
Ne. Tvrdím, že v určitých případech (mám data v SQLite) je potřeba dát přednost tomu nástroji, který je na to vybaven nativně (PHP, Python, Tcl) nebo je možné doinstalovat vhodný plugin. Snažit se používat jeden nástroj jako univerzální na všechno je jízdenkou do pekel.
Každá technologie by měla mít především kvalitně zdokumentované rozhraní, aby se do ní snadno daly přidávat pluginy a rozhraní k dalším aplikacím.
V čem uděláš to API? Opět v PHP? Proč ne Python?
Pokud mám PHP<->MySQL a C#<->MS-SQL a potřebuji mezi tím něco udělat, udělal bych API v XML. PHP strana by tak vystavovala data a C# strana by je načítala.
V tom případě MS-SQL nepotřebuješ. Vlastně nepotřebuješ ani C#, protože XML zpracuje jakýkoli XSL procesor.
Záleží co budu dělat. Když budu chtít dělat třeba z nějakého důvodu analýzy dat ze serveru na desktopu (nic lepšího mě teď nenapadlo), mohu si je ukládat do MS-SQL a co zpracovávám bude z MySQL přes PHP API. XML se na tyto účely hojně užívá, často se stává, že chceme pracovat z nějakého důvodu (business politika, špatný návrh, koupení nějakého projektu...) s nějakým systémem, který je na nekompatibilní platformě.
Tak to bych považoval za úlet. Tu analýzu dat z MySQL si přece nechám udělat v tom MySQL a XML bych měl jako report té analýzy. MS-SQL by v tomhle případě bylo zase zbytečné a de facto C# také. Přece přes to XML nebudu přetahovat 30 GB dat z SQLite, to dá rozum.
Vidíš, to je pravda. Nicméně když budu tahat třeba návštěvnost za poslední den (tu budu mít v tom XML) a budu mít 100 webů na 20ti platformách, dám do každého tuhle API a na desktopu budu mít jednu C# aplikace s MS-SQL databází, co mi bude dělat historická data a umožní mi weby porovnávat mezi sebou.
Ja pouzival v C# MYSQL bez problemu...
Psal jsem o datech v SQLite. Tam se C# moc nechytá.
Myslím si, že je zbytečné do toho tahat další databázi.
Neznam zadny duvod, proc by se c# nemel chytat v sqlite, proste si jen stahnes knihovnu, kterou nekdo k sqllite napsal.
Microsoft prece nemuze psat knihovny/ovladace pro kazdou databazi, kterou si kdo nekde vymysli...
Pokud jsou jine ovladace knihoven mizerne, tak za to prece nemuze ms, ale tvurci tech knihoven.
Však netvrdím, že Microsoft musí psát knihovny/ovladače pro každou databázi. Pokud ho však nemá, použiji nástroj, který ho má. Nebudu se přece za každou cenu držet nějakého nástroje, o kterém všichni tvrdí, že je univerzální, když mohu vzít jiný nástroj, který je na danou úlohu již připraven a odladěn.
Proč tolik vývojářů používá frameworky? Přesně ze stejných důvodů. Přece nebudou všechno programovat. Framework není nic jiného, než další programovací jazyk.
Ja zase radeji nez skakat z jazyku na jazyk a pouzivat obskurni databazi pouziju bezny jazyk a beznou databazi.
... a v tom běžném jazyku použiješ nějaký obskurní framework a na
databázi obskurní ORM
Na Windows na python je vhodné IDE například Aptana, umí i javu.
Nabídlo mi to ke stažení verzi pro Mac OS X, 64-Bit. Zřejmě jim zatím
nefunguje autodetekce použitého OS
Už si někdo zkoušel spustit Python bez IDE? Podle mne je to mnohem zábavnější než různá přeplácaná prostředí. Našeptávač v něm funguje také, jen se to musí nastavit v konfiguraci.
Když už zde je takový thread. Chtěl bych se vás zeptat na nějaký
užitečný v práci jazyk, abych si po střední mohl i něco vydělat. Java a
pak Android? Scala? Objective-C a pak iPhone?
P.S. nemám Windows
Pokud jedeš na nějakém linuxovém OS jako já, tak asi Java -> Android.
Zobrazeno 50 zpráv z 52.