Lidi nakecaj hrozný kraviny, vůbec je neposlouchej. Java je skvělá, je
progresivní, jednoduchá a docela čistě navržená a má takové neskutečné
množství knihoven a frameworků o jakém se jiným jazykům jenom zdá.
Nicméně poněkud objektivněji - výběr jazyka a technologií záleží na
tom co chceš dělat. Na něco se holt víc hodí ta Java, na něco C/C++ na
něco jiného PHP atd. Srovnej si co chceš dělat a co tě zajímá, podívej
se na pracovní inzeráty a podle toho se rozhodni. Btw umět více jazyků je
stejně dneska víceméně nutnost, takže znalostí Javy vůbec nic
nepokazíš.
Java sa používa stále, dokonca by som povedal, že jej popularita rastie.
Rozhodne sa oplatí učiť. Rozhodne neupadá ani sa neprestáva používať.
Podľa mňa je to jeden z "najčistejších" jazykov (môj subjektívny názor),
má jednoduchú syntax, dobre sa číta, je vhodná aj na veľmi veľké
projekty, má skvelé IDE (IDEA, Netbeans, Eclipse). Jej vývoj je pomerne
stabilný, nepúšťa sa do experimentov a beží všade, kde rozbeháš JVM.
Samozrejme má aj svoje muchy, ale mne sa v Jave programuje asi najlepšie zo
všetkých jazykov čo poznám.
Abych taky přispěl trochu do mlýna, tak bych třeba zmínil (podle mého
názoru) "chloubu" javy, neboli Minecraft. Hra, která v současné době
ovládá široký konzumní průmysl se stala velice slavnou, a ano, celá je
naprogramovaná právě v javě. Její vlastnost umožnila rozšířit MC na
mnoho platforem. Když Microsoft MC odkoupil, tak se spekulovalo, že se
přeprogramuje do C#, ale jak je vidět, dokonce i u nich si výhodu tohoto
jazyka uvědomují. Je to pouhý příklad, mnoho již bylo odpovězeno v
předchozích příspěvcích. Pro mě je například java taktéž oblíbeným
jazykem. Tak se nikdy nevzdávej, že by mělo být zastaralé, nebo snad
neužitečné se jí učit
Taky se o tohle téma poslední dobou zajímam. Podle mě by bylo hlavně
důležitý v diskuzi zmínit, jakou Javu myslíte. A celkově z příspěvků
na internetu mi přijde, že Java má už největší boom za sebou. Absolutně
se mi nelíbí pro desktop - Swing je zastaralej a JavaFX se asi moc neujala a
oproti vývoji aplikací v .NET je podle mě těžkopádná. Navíc v ní nejde
udělat nativní vzhled a Oracle přestal vyvíjet Scene Builder? Na serveru
bych jí klidně bral, ale jen se Springem a Hibernate, protože další
miliarda alternativních knihoven mě dost odrazuje. A teď se prej vyvíjí
.NET Core, který by mělo umožnit spouštět C# třeba na Linuxovym serveru
bez Mono - má teda vůbec smysl uvažovat o Javě, kdybych chtěl na webovou
aplikaci použít kompilovanej jazyk? Já se spíš pro webovej projekt
přiklánim pro .NET, když už v něm občas rád píšu desktopový
aplikace.
Mobily neřešim, protože na každej OS se používá něco jinýho,
existuje Xamarin, hybridní aplikace..
Čím je konkrétně Swing zastaralej? Jasně není to žádný nováček,
ale je velmi solidně navržen podle MVC, snadno se používá, je už docela
dost vychytaný co se týče chyb a co se týče vzhledu tak je plně
přizpůsobitelný a na nejrozšířenějších platformách nabízí motivy s
takřka nativním vzhledem. Netbeans IDE má pro něj skvělý designer -
Matisse a navíc je zde framework Netbeans Platform díky nimž vytvářet i
velmi složité desktopové aplikace je "hračka". Já naopak vidím Javu pro
desktopovou aplikaci jako jasnou volbu
Co se týče webových aplikací i tam má Java hodně co nabídnout -Spring
a všechny ty frameworky okolo nabízejí opravdu luxusní možnosti jak
pohodlně vyvíjet a když se koukneš na pracovní nabídky tak zjistíš, že
je i dost vysoká poptávka po lidech co to umí.
ale jak je vidět, dokonce i u nich si výhodu tohoto jazyka uvědomují
Neviděl bych za tím kvalitu jazyka. Spíš by bylo strašně pracné a
nákladné to přepsat.
Podobně jak se shodli mnozí uživatelé na různých fórech, i já si
myslím, že v C# bude napsána nějaká nová MC hra (ať už pokračování
či něco jiného)
Přesně tohle jsem chtěl taky říct. Prostě Microsoft koupil tým
vývojářů se znalostí Javy a hotovým produktem v Javě. Bylo by značně
nestrategické přepisovat to do C# (vyžádalo by si to například přeučení
Mojangu na C#). Pokud ale bude Microsoft pokračovat dalšími hrami (jako že
by byla blbost to neudělat), budou napsané zřejmě v C#, ale možná třeba i
v C++ (podle mě teoretická, i když krajně nepravděpodobná varianta)
Taky bych Javu tak nevychvaloval.. Je to velký, pomalý a ty implementace
JVM jsou dosti děravé..
Na výuku se hodí nějaký menší, jednodušší jazyk, kde nebudeš
zavalen tisícovkami různých funkcí (pardon, metod) a který toho také moc
neumí, což tě donutí naučit se přemýšlet jako programátor - například
C. A nebo i Pascal, pokud máš rád užvaněné jazyky Moderním trendem je také učit
se na Pythonu..
Samozřejmě, že takové jazyky pak asi moc nevyužiješ v práci (pokud
nepůjdeš dělat něco nízkoúrovňového v C), ale to nevadí - zkušenosti z
nich ti zůstanou a dobře je využiješ ve vyšších jazycích jako je Java
nebo C#..
Web: HTML, CSS, JS, PHP (C#, Java)
Desktop: C#, Java ...
Samozrejme vediet pracovat s databazou tj. SQL
Este tu su jazyky ako Python, C++ a tak dalej... O kazdom si precitaj a podla
toho sa rozhodni. Nic nestratis ak sa naucis hociktory jazyk tj. python, c(#,
++), java... Ak sa naucis jeden, prechod na dalsi uz nebude vobec velky problem.
Len budes musiet stravit trochu casu nad tym.
Pokud ještě v Javě neděláš, tak C# je skoro to samé, ale
hodně věcí je tam mnohem pohodlnějších a jednodušších
než v Javě. Navíc už není pravda, že by C#.NET bylo jen pro Windows.
To víš umět bejt objektivní je dobrej dar. Ale pochopitelně ho má
málokdo. Je prostě faktem že kdo píše v Javě bude vychvalovat Javu kdo
píše V C# nebo má rád MS tak vychvaluje C# atd mě to bylo jasné už od
začátku diskuze že to tak bude.
Proč? Procedurální programování je prostě základ. A kdo se ho řádně
nenaučí, tak nebude dobrý programátor. Můžeme si to abstrahovat jak
chceme, ale počítače prostě jsou procedurální a takový kód jim, co se
výkonu týče, vyhovuje nejvíce..
Zastávám názor, že je nejlepší začít od klasického "hloupého"
jazyku,¨který tě naučí myslet. Přejít na OOP pak není nic
těžkého.
tak pak je to jenom hloupá poznámka, protože každý (stejně tu všichni
diskutují subjkeitvně) si to domyslí sám. Java na OSX je, tak ta poznámka
tu ani nemá co dělat.
v Javě se dá taky programovat procedurálně a výhoda je že pak k OOP
(což je btw považováno za základní znalosti (a schopnosti) programátora)
nebude muset se přeučovat nový jazyk.
Mohol by mi niekto povedať na čo sa Java najmä využíva a čo všetko sa
v nej dá naprogramovať ? Mám na mysli skôr k tým základom čo väčšinu
času ľudia programuju.
Četl jsem někde názor, se kterým souhlasím - že každý člověk když
se jde učit programovat přemýšlí prvně objektově, protože je to prostě
mnohem blíž reálnému světu. Musí se přeučit na procedurální
programování a pak po mnoha měsících/letech zpět na OOP a je to tak ve
výsledku těžší...
Nedoporučuji na začátek C. Ne že by to byl jazyk špatný, je pravda že
je to jakýsi základ, ale problém je, že dokáže naprosto demotivovat a
odradit od programování, poněvadž je docela složitý a v mnoha věcech
neintuitivní
A k tématu: Já si myslím, že všechny tradiční vysokoúrovňové jazyky
jako je C#/Java (bohužel) postupně klesají v používanosti a jsou
nahrazovány v různých odvětvích různými jazyky. Samozřejmě však nikdy
zcela nevymizí a vždy budou dobrou volbou pro učení/uplatnění.
Z těch moderních jazyků je jich plno, ale žádný podle mě není vhodný
pro začátek. Jsou to jazyky jako Ruby (hlavně díky Rails, jinde ale nemá
moc zastoupení), Python (na rozdíl od mnoha jiných lidí ho nedoporučuji,
jelikož má nedokonalé OOP a syntaxi odlišnou od všech ostatních),
JavaScript (kvůli Node.js, které vytlačuje všechny ostatní
jazyky/frameworky, i přesto, jaký je ten jazyk hnus), Haskell (funkcionální
fakt na začátek ne...) a další.
co chceš C# mi příjde o
o něco lehčí a pokud chci dělat něco těžšího, tak to dělám v něm.
Jedna z jeho výhod je (tedy alespoň pro mě) Visual Studio, umí generovat
metody a je v něm celkém lehké stylovat. Začínal jsem na javě a příjde
mi zajímavá, ale místy mi příjde opravdu lepší C#.
Volba je jen na tobě, stejně se časem budeš muset naučit alespoň základy
obou
To už je na tobě, já dělám hlavně v C# a tak doporučuji ten, ale ti co
dělají v Javě doporučí zase tu. Pokud se naučíš jeden, jde přejít na
druhej poměrně snadno, ale můžu tady vypsat nějaký "postřehy".
C#
Od Microsoftu -> jednoduchý a přirozený na tvorbu Windows (i
mobilních) aplikací, ať už normálních desktopových, nebo do Windows
store
Také obsahuje přímo zabudovaný robustní a známý framework pro tvorbu
webových aplikací - ASP.NET; Framework pro práci s databází - Entity
Framework; a C# sám má v syntaxi dotazovací jazyk LINQ
Je v něm možné tvořit hry pomocí Unity
Není tak jednoduché rozběhnout ho pod Linuxem, i když to už dnes
rozhodně jde (a v blízké budoucnosti to bude ještě jednodušší kvůli
.NET CORE open source)
Plnohodnotná tvorba aplikací na Android je možná jen po zakoupení
frameworku třetí strany Xamarin
Snad nejlepší IDE vůbec Visual Studio zcela zdarma
Java
Je jednodušší na rozběhnutí na všech možných platformách
Základní jazyk na vývoj aplikací na Android
Také obsahuje framework na tvorbu webových aplikací
Není v ní možné tvořit hodnotové typy, ale jazyk je má
obsažené
Není možné přetěžovat operátory
Záleží to tedy taky hodně na tom, co chceš dělat:
Windows desktop/mobilní/store aplikace - C#
Webové aplikace - C# i Java, záleží na tobě
Android aplikace - Java (teoreticky i C#)
Hry - C# (teoreticky i Java, ale nemá nic co by se vyrovnalo Unity)
C# je prostě lepší, musím to tak napsat .Dříve Javisté argumentovali
proti C# hlavně multiplatformností, ale C# už je také (více-méně)
multiplatformní. Java oproti C# postrádá spoustu věcí, které značně
ulehčují věci. Ze začátku to sice nebude tolik poznat, ale čím hlouběji
se budeš do toho jazyka dostávat, tím znatelnější ten rozdíl bude. Uvedu
velice klasický příklad:
C#:
tyto 2 věci dělají naprosto tu samou věc, velmi používanou,
navíc u C# je to mnohem intuitivnější, různé fíčury IDE a pod. s tím
mohou lépe pracovat etc. A takových rozdílů je spousty, a tady je to ještě
docela dobré, třeba takové události jsou v Javě klidně i 10x delší co se
týče kódu. V C# je spousty "zkratek" které výrazně zvyšují čitelnost
kódu.
To je samotný jazyk. Teď k prostředí.
Java má spousty dobrých, ale nedokonalých IDE, každé si dělá věci trochu
jinak, knihovny jsou poházené všude možně po netu.
C# má vlastně 1 IDE, co používá ~90+% lidí (odhad), knihovny jsou na
jednom místě, standardy jsou velmi jasně dané přímo od MS. Navíc protože
.NET byl původně jen pro Windows, je v IDE velmi pohodlné ladění a
další pakárny.
Možná trochu přeháním a není to s Javou tak zlé, ale C# je na tom
lépe.
O C++ a podobných jazycích ani nepřemýšlej, dokud nebudeš mít dobré a
stabilní základy programování. Platí pro něj to stejné jako pro C, ale
ještě mnohem víc - svými zvláštnostmi a složitostmi (např. při správě
paměti) dokáže začínající programátory odradit.
C++ je v podstatě C s objekty a velkou knihovnou - dost složité pro
začátečníky.. To bych určitě nedoporučil..
Jde asi hodně o to, jak se to chceš učit - klasická univerzitní výuka
typicky učí C a k tomu rovnou jak funguje procesor (spojeno s výukou
asembleru) a operační systémy. Dohromady to dá krásný, ucelený obrázek a
hodně to posouvá.. Je to ale také na "plný úvazek" - tj. více než
40hod/týden studia.. (přednášky, projekty, samostudium)..
Pro úplného laika, co se to učí "svátečně", bych se asi taky
přiklonil k nějakému vysokému jazyku.. Ale jde mi to tak trochu proti srsti,
protože nemám moc "sváteční programátory" a "klikače" v oblibě Ale někde je třeba začít..
Můžeš buď "zvrchu" a nebo "zespodu" - tj. buď se učíš OOP a aplikace v
grafickém prostředí ve spojení s nějakými algoritmy. A nebo začneš tím,
jak vevnitř funguje CPU (že má instrukce a vykonává je postupně a
větvení je pomocí skoků, apod.)... Začít zvrchu bude asi podstatně
jednodušší.. Ale dlouhodobě můžeš mít problém s tím, že nechápeš
vnitřní funkci PC a jsi pak omezen na vyšší aplikace (což ale není nutně
negativní - není důvod, aby všichni dělali nízkoúrovňové věci a
rozuměli, jak to funguje).. Zespodu je zase o dost náročnější začátek a
může to hodně lidí odradit.. Obzvláště, pokud je v tom nevede žádný
učitel.
Lepší by bylo spíš ptát se naopak - co v Javě nejde napsat, nebo na co
se vůbec nehodí. Pak by byla odpověď celkem jednoduchá - nehodí se na low
level věci jako jsou ovladače hardware a podobně. Tady jasně vede C/C++.
Java je populární v enterprise aplikacích, podnikových systémech,
bankovních systémech, internetových bankovnictvích, vědeckých aplikacích
atd. Docela hojně se používá při vývoji webových aplikací jako backend.
No a samozřejmě aplikace pro Android jsou ve velké míře dělané v Javě,
ježto je Android SDK primárně javovské.
Jinak se vám všem divím, že vás baví se dohadovat jaký jazyk je
lepší a proč Něco jako
univerzálně nejlepší jazyk neexistuje. Nějaký jazyk se hodí na to,
některý zas na ono, někomu vyhovuje tenhle jazyk, jinému zas jiný, to co se
někomu na nějakém jazyku líbí, to zas jiný právě nesnáší a podobně.
Podobné diskuse jsou jenom ztrátou času. Každý ať si vybere sám podle
své chuti a potřeby co jemu vyhovuje. Pokud se někdo dá na dráhu
programátora, musí počítat s tím, že se bude po zbytek života stejně
pořád jenom učit. Nové jazyky, nové knihovny, nové postupy, nikdy to
nekončí...
No nedá mi to abych nereagoval Příklad s gettery a settery je přesně to o čem jsem výše psal
- ty to vidíš jako výhodu C#, mně to tak teda rozhodně nepřipadá. Jednak
mi přijde Javovské řešení přehlednější, čistější a čitelnější a
jednak je to daleko pružnější. Můžu si třeba do těch getterů a setterů
jednoduše dát nějaké to logování či debugování. Můžu si v setteru
provést nějakou kontrolu, předtím než hodnotu fieldu změním. Atd.
Argument typu, že je to kratší neberu - každé normální IDE umí
standardní gettery a settery vygenerovat aniž bych napsal jediný řádek
kódu. Mimochodem podtržítka v názvech proměnných v Javě, to je pěkná
zvrhlost
C# umí i složitější gettery a settery. Když jsou metody odlišené od
vlastností je snad přehlednější, ne? Osobně zastávám názor, že
čitelnost kódu je jedna z nejdůležitějších vlastností, a kratší kód
je skoro vždy lépe čitelný. Jinak kdybys neuznával příklad s gettery a
settery, tak co třeba události? V Javě je to strašlivá věc, hlavně pokud
děláš třeba touch eventy pro formuláře- naprosto zbytečné zjišťování
toho, kdo událost vlastně vyvolal a až potom kód+ implementace interface do
třídy, které tam logicky nepatří jen kvůli jedné metodě. Vlastně na mě
celý ten mechanismus působí tak, že si od určité verze uvědomili že by
mohlo být něco jako události a dovymysleli (naštěstí standardní) způsob
jak to udělat.
V C# je to velice intuitivní, třeba i na 1 řádku hezkého kódu.
C# má kopu syntaxového cukru, je technologicky ďalej ako Java, ale zase
ešte stále je platformovo závislý (aj keď sú nejaké pokusy to dostať aj
inde, ale Java to ešte nie je, dúfam že časom bude plne multiplatformový).
No a nech hľadám ako hľadám tak na IntelliJ IDEA 15.0.2 tých chýb veľa
nevidím, dokonca by som povedal, že je možno lepšia než VS-ko, ktoré bez
R# tiež nie je žiadna sláva, čo sa týka práce s kódom, aj keď v
najnovšej verzii sa to o dosť zlepšilo.
Protože je Swing označenej jako deprecated a nástupce má bejt JavaFX,
která se mi nelíbí. Takže nevim, jestli je dobrej nápad nový aplikace
stavět na Swingu a radši se podívam jinam.
Kubo, přidám taky trochu do mlýna - vlastní zkušenost. - pokud se ti
nechce číst úvod, přejdi k hvězdičce
"Šéfuju" IT v jedné automotiv firmě. Má práce je od instalace tiskáren a
pomocných SW na koncových stanicích, instalace a virtualizace serverů
VMWare, instalace a zpráva SQL a údržba všech IS. Taky dělám aplikačního
správce ERP, MES, Warehouse apod. Mám takový malý tým (1 kmenový, 3
externisti) a jak to tak bývá, dělám i podporu userům. Před X lety jsem se
prokecl, že mě baví Excel a hlavně makra v něm (VBA). Od té doby jsem
udělal stovky automatických analýz včetně výcucu dat přímo z SQL, stovky
formulářů a jiných blbostí, které jiným zlehčují práci. Chtěl jsem se
už posunout někam dál a tak jsem si na firmu * koupil knížky Mistrovství
Java a Microsoft Visual C# 2010. Začal jsem Javou.
Narovinu řeknu, že jsem se „pročetl až na stranu 200, ale VŮBEC JSEM
NECHÁPAL, o co tam jde. Znalost VBA mi byla úplně na prd.
Pak jsem začal číst Microsoft Visual C# 2010, donutil jsem se přečíst
celou knihu, ale o pochopení nemohla být řeč.
Pak jsem ale narazil na tento web a na tutoriály od Davida Čápky (sdraco) a
C# mě chytlo jak nic jiného. Dokonce jsem ho i začal chápat Za cca
měsíc, co jsem začal číst jeho tutoriály, jsem už vytvořil A PRODAL!
vlastní aplikaci, která hlídá souborový systém, informuje správce o
vzniku souborů, posílá je maily, píše do logu, ukládá si nastavení do
XML, NEPADÁ, ale zapisuje chyby atd.
** Doporučení: C#
Přidám ještě trochu nekorektní názor, neberte to prosím příliš
vážně, ale:
Javisté mi připadají jako uživatelé W7, kteří odmítají přejít na W10.
Jejich platforma je oblíbená, funguje skvěle, ale už jsme technologicky
dále. Než to pochopí, bude pro ně pozdě, protože zamrzli někdy před 5
lety.
Java není špatná, ale trochu jí ujel vlak a C# jí docela dost
předběhl.
Z Javy mám takový pocit, že je to jazyk pro akademiky, zatímco C# je
jazyk pro normální lidi - spousta věcí jde jednodušeji, není díky MS tak
rozdrobená na spousty různých podobných, ale odlišných frameworků
apod.
ten bol dobrý, len sa
pre istotu uisti či skutočne aj vieš čo používaš v tom C#... LINQ,
delegati, asynchronne funkcie, lambdy, vlastnosti, milión frameworkov..všetko
krásne veci, ale pokým nevieš ako fungujú, tak by som sa tým "aký som in,
keď používam mačku vo vreci" moc nechválil OOP nie je o používaní
frameworkov a rôznych vychytávok... a čo sa týka tvojho prirovnania, tak
ľudia majú asi dôvod na to zostať na w7 a nemyslím si, že sú to ľudia
čo zaspali dobu
Javu mám rád stejně jako C# a u win 7 jsem zůstal hlavně kvůli pro mě
nepřívětivému prostředí win 8. Co se týče windows 10 zatím mě
nenapadá proč přecházet
Proč myslíš, že jsou nahrazovány? Nevím, ale třeba jen C# bude
určitě vhodný na programování pro W10 zařízení všeho druhu. Pak ho
máš i pro Unity, takže svou hru dostaneš téměř kamkoliv. Dále Xamarin -
jasně, pokud chceš mít appku jen na iOS, budeš to dělat ve Swiftu/Obj-C,
ale pokud to chceš mít i na Androidu a nebo jen ty jazyky neovládáš, tak se
C# hodí.
Javu máš zase pro ten stále nejrozšířenější mobilní systém
(Android).
Nechci se hádat, ale jen mi jde o to, jestli máš nějaké informace, na čem
tento názor zakládáš
Promiň, ale nejsem si jistý, jestli jsem si to přeložil správně do Čj
Každopádně nemyslel
jsem to úplně vážně, taky jsem to tam explicitně napsal. Také jsem nikde
nepsal, že OOP v C# je dále než v Javě, jen říkám, že v Javě se spoustu
věcí dělá složitěji.
Nevidím jiný důvod než zvědavost, proč se šťourat v tom, jak fungují
třeba Lambda a nebo LINQ, nepotřebuji to vědět, když to umím používat a
vím, jak se to chová. //já to třeba vím BTW
Je v celku jasné že u Javy ti VBA nebude k ničemu. Nejsem si moc jistý co
si na tom nechápal. Když nebudeme řešit knihovny a to že C# syntaxe je
sladká jak cukroví. Tak jsou java a C# natolik podobné že mi fakt není
jasné co si nechápal.
To je jednoduché- nikdy jsem neprogramoval. VBA jsem se naučil tak, že
jsem prostě zaznamenával makra s pak je rozklíčoval + google. Každopádně
je to jazyk primitivní, takže jsem se ho celkem rychle naučil.
Když jsem pak zkusil Javu, tak jsem sice podle návodu dokázal něco napsat,
ale bez nápovědy jsem neudělal vůbec nic. Prostě jsem nepochopil princip
toho, kde co jak se předává, co je to instance apod. U C# mi to přišlo
snadnější.
A když jsem si přečetl pár tutoriálů od sdraca, tak jsem byl doma
Za sebe si prostě myslím, že C# je učení lehčí než Java, ale je to jen
můj názor. Možná kdybych začal prvně tutoriály na Javu od sdraca, tak by
to bylo naopak…
Autor asi začal špatně protože nejlépe se začíná u procedurálního
programování. Jak jsme již psal až na ten cukr je syntaxe Javy a C#
prakticky stejná takže to není jednoduší jenom to autor knihy vysvětlil
lépe.
Já jsem nenapsal že jsou nahrazovány univerzálně. Typickým odvětvím,
kdy jsou C# a Java nahrazovány je tvorba webových aplikací. V současné
době je to nepřehledná změť od Rails přes Django a Node.js a další
podobné věci (samozřejmě že tam C# a Java tam taky přetrvají, ale s
menším zastoupením). Taky mluvím ze zkušeností - neznám osobně snad
nikoho, kdo by dělal v C# nebo Javě, každej používá něco jinýho - Rust,
Python, JavaScript... Možná je lepší ta formulace, že vznik mnoha nových
jazyků způsobil roztříštění dnešního složení jazyků
Tak on se primárně využívá pro výuku (takže existuje obrovské
množství materiálů), dále je v něm napsán Linux (tedy obrovský projekt a
velké množství programátorů v C) a používá se na programování
mikrokontrolérů, protože je nízkoúrovňový a má relativně malý overhead
oproti vyšším jazykům.
A protože je ho plný web, tak se drží vysoko... Stejně tak Java je de facto
"standardní vyšší jazyk" a je tu s námi již pěkně dlouho. Také se
často používá pro výuku a je v něm velké množství systémů - takže je
také na špici. C# je sice v jistých komunitách velmi oblíbené (např. zde
) a v mnoha věcech je
jistě lepší a modernější (což je logické, když je mladší).. Jestli se
někdy rozšíří na úroveň Javy to záleží hodně na krocích MS v oblasti
podpory multiplatformnosti.
PHP se používá jen na webové aplikace.. A to zdaleka ne na všechny.. V
pythonu je napsáno velké množství aplikací (především utilit v
backgroundu) a také velká část různých nastavovacích skriptů apod. Pokud
bys to měřil na řádky kódu, tak teda nevím - netroufl bych si prohlásit,
že jeden z nich je výrazně používanější.
nemám to podložené, ale to co python umí, umí i spousta jiných jazyků
a konkurence je na poli všeho co umí python výrazně vyšší než konkurence
na poli toho co umí PHP. Různé statistiky (myslím, že nějaké vycházeli
na stackoverflow) tvrdí, že PHP je výrazně využívanější než python.
Nicméně python rychleji roste, ale i přesto pozici PHP jistojistě v
nejbližších letch neohrozí.
To, že se lidi víc ptají na PHP, než python nic neznamená.. Maximálně
z toho můžeš vyvodit, že více lidí má problémy s použitím PHP než s
použitím pythonu..
tak si najdi jiné statistiky. Každá statistika bude zavádějící,
některá více, některá méně. Nicméně toto vlákno není ani o PHP, ani o
pythonu, tak už to nebudeme rozebírat.
Tvoj priklad s gettermi a settermi ukazuje niečo, čo v skutočnosti vôbec
nie je problém. Myslím, že vačšina ľudí getteri a setteri generuje (áno,
IntelliJ aj Eclipse to dokáže).
Existuje Project Lombok, čo je nástroj na generáciu kódu. Dokáže to
robiť strašne veľa vecí od generácie getterov a setterov, automatického
toString, hodnotových typov cez delegáciu metod, až po generáciu
builderov.
Teda napríklad ak chcem jednoduchú entitu, ktorá má mať gettery,
settery, equals, toString, tak píšem:
Udalosti integrované rovno na úrovni jazyka su určite plus pre C#, ale ani
v Jave to nemusí byť také strašné. Existuje kopa knižníc, ktoré sa
zameriavajú na programovanie s udalosťami. Navyše Java 8 priniesla okrem
veľa dobrých vecí aj closures a method references.
Čiže setovanie nejakého event listeneru môže kľudne vyzerať aj nejako
takto:
button.setOnClickListener(this::button1Click);
pričom button1Click je metoda, ktorá handluje stlačenie tlačidla. A toto
je už veľmi podobné tomu, s čím sa pracuje v C#.
Java možno bola tragédia, keď sa platilo za počet riadkov a nie za
skutočnú prácu. Treba sa držať ďaleko od starších verzií Javy a je to
celkom fajn jazyk. JVM je plus a existuje na ňu kopa iných jazykov (scala,
groovy, ...)
Je to problém, protože to, že to za tebe vygeneruje IDE není to stejné
jako že to prostě není v tom kódu. Můžou se tak proměnné (vlastnosti)
opravdu používat jako proměnné.
Tak ono tieto argumenty, že gettery a settery v Jave sú "dlhšie", sú
celkom úsmevné. Aspoň si tú metódu môžem pomenovať ako potrebujem a
príde mi to čistejšie a zrozumiteľnejšie ako vlastnosti, aj tak je to len
cukor... žiadna veda za tým nie je
delší není "deklarace" vlastnosti, ale je to o 3-5 (slova get, set a
závorky namísto rovnítka. To se liší ještě podle toho jak píšete mezery
okolo rovnítka) znaků delší na volání, které je v kódu třeba 100×. Ale
když vám nevadí, že jak otroci všude píšete úplně zbytečně set, set,
set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set,
set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set,
set, set, tak někdo si prostě zvykl na systém, že je zbytečné to psát.
Navíc když to někdy potřebujete pojmenovat jinak, tak to samozřejmě
můžete udělat i v C# Javovským způsobem. On to konec konců je velmi
užitečný syntaktický cukr, jehož absence v Javě je pro Javu obrovské
-.
Ok nebudem sa hádať, je to fakt obrovské -, také obrovské, že Javu asi
všetci prestanú používať a budú používať iba C#, možno kvôli tomu aj
Java zanikne A len tak btw,
koľko tých getterov a setterov napíšeš?.. v triedach ich zase až tak veľa
nie je (najmä tých setterov) a v dátových štruktúrach to hodíš
public.
ale já jsem neříkal, že to Javu položí, já jsem jen vysvětlil fakt,
jak to je. Statistiky sice nemám, ale protože píši i větší aplikace než
jsou převodníky jednotek, tak v projektech mívám i několik stovek getterů
a setterů. Ve VB se to dá napsat i bez použití klíčového slova, tak je to
o trochu něčem jiném, ale vůbec mě vůbec mě to netrápí.
stačí si vzít okenní aplikace, kde klidně jen pro ubohé vytvoření
jednoduchého formuláře nastavíš tak okolo 10 vlastností, většinou i
víc. V podstatě každá komponenta má několik desítek vlastností.
Jako porovnávat jazyky na základě takovýchto banalit fakt nemá význam.
Nikdy se na nich neshodneme, každému se vždycky bude líbit to na co je
prostě zvyklý a co je mu sympatičtější. Na výslednou efektivitu
takovéhle prkotinky nemají ten nejmenší vliv. Psaní kódu není na
programování časově nejnáročnější část, kasat se ušetřeným
písmenkem tuhle a tamhle je totálně mimo. Obvzlášť když většinu psaní
kódu dneska stejně obstará code completation
Na výslednou efektivitu takovéhle prkotinky nemají ten nejmenší vliv.
Psaní kódu není na programování časově nejnáročnější část, kasat
se ušetřeným písmenkem tuhle a tamhle je totálně mimo.
Na psaní možná tolik ne, na čtení už třeba ano, u třídy s 10
vlastnostmi to je v Javě nějakých 30-40 řádků navíc, což je na
většině monitorů celá stránka
Ne, nemá to ani ten nejmenší vliv, jak už jsem tu několikrát psal - je
to čistě subjektivní pocit, neexistuje žádný objektivně lepší způsob,
protože každému vyhovuje něco jiného. Tobě se líbí jak to má C#, mně
se to tak nelíbí, ale plně chápu že tobě v tom případě přijde C# verze
lepší, mně ne. Mně se líbí jak to má Java a já si myslím, že Javovský
přístup je lepší, přehlednější a čitelnější. Ale je to opět jen a
jen můj subjektivní pocit. Srovnávání jazyků na základě těchto
vlastností je mimo.
K čemu bych něco takového psal? To tak u programování bývá, že se
píše kód
Deset vlastností byl jen příklad...
Ano strukturu číst umí, ale pořád ti ten kód zabere 4-5x víc řádků,
takže pokud třeba přidáváš někam další getter/setter, musíš se skrz
to proscrollovat, když to čteš jako něco, co psal někdo jiný, tak taky -
musíš se přes to proscrollovat...
Ne, nemá to ani ten nejmenší vliv, jak už jsem tu několikrát psal - je
to čistě subjektivní pocit, neexistuje žádný objektivně lepší způsob,
protože každému vyhovuje něco jiného. Tobě se líbí jak to má C#, mně
se to tak nelíbí, ale plně chápu že tobě v tom případě přijde C# verze
lepší, mně ne. Mně se líbí jak to má Java a já si myslím, že Javovský
přístup je lepší, přehlednější a čitelnější
Jak může být Javovský přístup čitelnější a přehlednější, když
C# umožňuje obojí?
Srovnávání jazyků na základě těchto vlastností je mimo.
To je pravda jen z části, čitelnost a jednoduchost zápisu sice nepatří
mezi ty nejdůležitější vlastnosti jazyka, ale také patří
OT: Omlouvám se za spam, ale citace neumožňuje zobrazit autora (nebo
aspoň nevím jak), tak je to takhle přehlednější.
Viem že v praxi to je iné, ale to neznamená, že sa prestanem snažiť
robiť všetko najlepšie ako viem, áno zaujímam sa o agile development a
vždy sa budem snažiť robiť veci správne, aj keď mi je jasné, že to
nebude ľahké, ale to je už každého osobná vec. Každému sa páči niečo
iné, každý preferuje iné zápisy, iný štýl a tým by som to uzavrel,
nemá význam to ďalej riešiť, či sú lepšie gettery alebo vlastnosti.
Ja by som sa este vyjadril k tomu prikladu Foo.Bar++. Ak casto
zvysujem hodnotu tej vlastnosti o jedna, tak si myslim, ze sa to podoba na
nejaky counter. Ak je to counter, tak mi pride najcistejsie a prehladnejsie
riesenie vytvorit objekt counteru (alebo pouzit existujuci napr. https://docs.oracle.com/…Integer.html) a volat na nom
metodu increment();.
Ale az tak casto sa mi nestava, ze by som potreboval incrementovat nejaky
integer medzi viacerimi triedami. Skor mi to zavana nejakym zlym navrhom. Casto
incrementujem iba nejake sukromne coutnery, ktore patria tej
triede a okolie sa o ne nema zaujimat. A ak je to nejaka klucova vlastnost,
mozno je dobre sa zamysliet nad tym, ako vytvorit mutatori s ohladom na to, ako
ma byt ta vlastnost mutovana.
Ale cudujem sa, ze sa tu riesia take somariny ako gettery, settery, foreach a
podobne hovadiny, ked podla mna su celkom podstate vyhody C# v tom, ze ma
napriklad pretazovanie operatorov. Zas je ale dobre sa zamysliet, ci je to
pretazovanie operatorov naozaj take podstatne pre jazyk ako je Java...
No ale Java ten C# přístup taky přece umožňuje. Prostě si nadefinuj
všechny atributy jako public a nemusíš se vůbec s nějakýmy gettery a
settery vůbec otravovat Heh
a když už v tom budeš tak si rovnou udělej všechny metody statické, abys
nemusel řešit předávání instancí mezi objekty, to ti taky ušetří
hromady práce
Samozřejmě že nejsou potřeba přetěžovatelné operátory, vlastně
nejsou potřeba ani třídy a další vymoženosti. Můžeš rovnou psát v
assembly jestli chceš. Všechny tyhle věci co zavádí vyšší jazyky tam
jsou prostě pro usnadnění práce.
a čo iné ako "syntaktický cukor", ktorý môže viesť k veľkým chýbám
a zlým interpretáciam, je preťažovanie operátorov...? "Operators don't
always do what you expect them to do."
Já osobně zastávám názor, že moderní jazyky by měli ne jen dovolovat
co největší svobodu v overloadingu operátorů ale i možnost definovat
vlastní operátory. Programátor by měl mít svobodu, ale měl by také mít
rozum ji využít moudře. Overloading prostě povoluje tvořit třídy, které
se chovají jak to od nich očekáváš i bez použití zbytečných metod.
Například takový vektor nebo komplexní číslo.
To je parada, jak se to tu rozjelo. Pridam trochu oleje do ohne: Byl by
Schwarzenberg lepsi prezidet nez Zeman?
Nebo: Je lepsi Linux nez Windows? A nez odpovite, ptam se jako hrac her
Atd...
Súhlasím, že sú situácie, kedy sa preťaženie hodí. V C++ sa to hojne
využíva, Java preťaževanie nemá a je to jeden z najpoužívanejšich
jazykov, nech si každý spraví vlastný názor, či je to dobre alebo nie.
Podľa mňa ak by to ozaj chýbalo a nedalo sa bez toho fungovať, tak by to tam
už dávno pridali.
No, jako když jsme u toho bez čeho by se nedalo fungovat? K čemu vlastně
potřebujeme funkce, a třídy? Bez těch se přece obejdeme. A když jsme u
toho, nějaké cykly...bez těch bychom se koneckonců taky obešli.
Na druhou stranu, přetěžování operátorů - no jak často to
potřebujeme?
Tak do istej miery sa dajú uplatniť princípy OOP aj v C, alebo vo
funkcionálnom jazyku. Skôr si je lepšie položiť otázku, bez čoho
nemôžem rozumne programovať?
Mno čistě teoreticky můžeš. Když na kus papíru napíšeš přesný
postup výroby něčeho a ten papír předáš dělníkovi, a ten podle tohoto
postupu vyrobí daný výrobek - právě jsi úspěšně naprogramoval dělníka
Imho nelze programovat
akorát bez mozku
No a? To přeci vůbec nevadí. Byla první programátor vůbec a dodnes z
jejího díla čerpáme dodnes.
Pointa je v tom, že můžeš naprosto v pohodě programovat bez
počítače.. Jestli ne, tak sorry, ale programátor vůbec nejsi.. A je
bohužel smutná pravda, že existuje spousta "programátorů", co jsou bez IDE
nebo možnosti si to přeložit a spustit, naprosto ztracení a
nepoužitelní..
ja mam pocit, ze jsem nekde cetl, ze ve skutecnosti nebyla prvni
programator...ten jeji mentor ve skutecnosti napsal algoritmus daleko driv a ona
z nej prave cerpala...navic treba takovej Eukleides co ten chudak by na to rekl?
ze pro nas "pouhy" algoritmus neni dost eno nuno
Proč? Takový recept na bábovku je třeba dobrý příklad algoritmu Jsou všichni autoři kuchařek
programátoři?
Skoro vše můžeš popsat nějakým algoritmem (postupem).. To z tebe ovšem
nedělá ještě programátora - programátor je někdo, kdo vytváří
programy. Program je algoritmus zapsaný jako posloupnost
instrukcí a je určen k vykonání počítačem.
Nebo tě napadne něco někde mimo civilizaci nebo při cestování, tak si
to napíšeš na papír..
Jinak mluvím z vlastní zkušenosti - dříve (střední škola) jsem byl na
IDE naprosto závislý.. Nepamatoval jsem si názvy funkcí a často ani jak
napsat některé konstrukce (snippety v IDE to vkládaly za mě). Jsem rád, že
jsem od toho upustil a dal si na rok zákaz jakýchkoliv našeptávačů.. Teď
je již vůbec nepotřebuji (ale ani mi nevadí, když je mám) a moje
efektivita se zlepšila - i při použití IDE. Osobně si myslím, že IDE je
dobré pro naprosté začátečníky a pak až pro zkušené programátory.
Začátečníkům to usnadní začátek - klikneš na zelenou šipečku a
spustí se to.. Zkušeným zase práci. Těm mezi bych naopak vřele doporučil
IDE zavrhnout, naučit se psát všemi deseti, pokud neumí a vyzkoušet si
překlad pomocí Makefilu a psát bez berliček - vryje se to mnohem lépe do
paměti
Na druhou stranu programování ve vyšších jazycích není moc dobře
možné bez IDE nebo alespoň editoru s našeptávačem, protože těch tříd a
funkcí je tam tolik, že zapamatovat si to fakt moc nejde
IDE je skvelá vec, napríklad potrebuješ urobiť úplne jednoduchú
refaktorizáciu (premenovanie triedy) v projekte ktorý má stovky súborov a
tá trieda je použitá na x miestach.. som zvedavý ako to v tom tovojom
editore spravíš ako čo sa
týka refaktorizácie sa žiadny editor nechytá.
No to nie je také jednoduché, tomu kódu to musí aj trošku rozumieť, čo
keď premenuje, to čo nemal premenovať? a toto je len najednoduchší
refaktoring, nejaké zložitejšie by sa ešte horšie robili. Proste na toto
sú IDE skvelé.
Proč bych potřeboval dělat refaktorizaci? Mám ve zvyku se prvně zamyslet
a udělat si nějaký návrh, než začnu psát..
Ale neříkám, že IDE není dobré.. Proč si neusnadnit práci, když je
ta možnost - jen říkám, že jeho používání často vytváří opravdu
špatné návyky a pak spousta softwaru vypadá tak, jak vypadá..
No ja mám skôr pocit že veľa softweéru vyzerá tak ako vyzerá (krásny
príklad Android) kvôli tomuto
Proč bych potřeboval dělat refaktorizaci?
Nie vážne na prvý
pokus sa ti málokedy podarí napísať poriadne kód, veľmi rýchlo zistíš,
že niečo by sa dalo presunúť do inej triedy, premenovať, hodiť to do inej
funkcie. Refaktorizácia je potrebná a to najmä vo veľkých projektoch, pri
domácich úlohách to je asi jedno
Tým nechcem povedať, že textové editory nie sú super, sám používam
gedit/notepad++ a aj vim trochu a teraz si predstav, akú produktivitu budeš
mať, keď máš v ruke vi skratky a začneš programovať v takej IntelliJIDEA
s IdeaVim pluginom.. To je
proste radosť pracovať s takou kombináciou.
Pokud to pak potřebuješ přepisovat, pak jsi zanedbal první a
nejdůležitější krok - návrh.. Což je také jeden z hlavních důvodů
selhání projektu (nedodržení termínu, funkcionality nebo vůbec
nedokončení)..
Když dostaneš nápad/zadání a pár hodin potom už píšeš kód, tak je
někde chyba a ten kód většinou nebude stát za nic (teď mluvíme o
složitějších projektech).. V reálných projektech je implementace pouze
malá část (10-20% času) a zdaleka nejvíc zabere testování a údržba..
Dobrý návrh minimalizuje problémy po implementaci.. Jenže spousta lidí
nepřemýšlí dopředu a často dělají návrh během implementace (sedneš k
PC, napíšeš si kostru třídy a pak si říkáš: "Tak jak bych to mohl
udělat..?"). Takový přístup ovšem prakticky vždy vede ke špatnému
návrhu a řešení, protože nepřemýšlíš nad celkem.
A to je rozdíl mezi programováním a softwarovým inženýrstvím. Před
začátkem implementace by měl existovat kompletní návrh celého systému a
všech jeho částí.. Pak nebudeš potřebovat dělat nějakou refaktorizaci a
narazíš jen na málo problémů..
V tom prípade si človek nevýdaných schopností, ak napíšeš dokonalý
kód na prvý pokus. To nevedia ani špičkoví svetoví programátori Nebudem sa ďalej hádať, sám na
to prídeš časom.
A co říkám vychází nejen z mé zkušenosti, ale také ze zkušenosti
tisíců profesionálů, kteří se na vzniku SW inženýrství podíleli.
Mimochodem se o tom začalo mluvit právě proto, že vývoj trval dlouho a byl
často neúspěšný.. Typicky zabere detailní návrh asi tak dvakrát více
času než následná implementace - tam už ale moc problémů není, protože
se na ně narazilo při tvorbě návrhu a byly vyřešeny.. A je to třeba
právě kvůli nedokonalosti programátorů a také proto, že je typicky
větší tým a je třeba prvně se domluvit..
V tomto sa mi páči agile prístup a TDD, ktoré ťa prirodzene vedieť k
správnemu návrhu, pretože testovateľný systém je aj dobre navrhnutý
systém. Cyklus red-green-refactor, ťa tiež núti udržovať svoj kód
čistý. Ono nerefektoruje sa preto lebo je to riziko, že niečo pokazíš, ale
akonáhle máš ku kódu testy, na ktoré sa môžeš spolahnúť, tak si
môžeš refaktorovať a vylepšovať koľko chceš s čistým svedomím. Som
zvedavý ako sa zaobídeš bez refaktorizácie a testovania, keď budeš musieť
pracovať s nie moc pekným kódom a niečo do neho pridať/zmeniť (veľmi
častá činnosť). Asi zvolíš prístup "Edit and pray" Málokedy budeš písať niečo
od základu.
Pokud to pak potřebuješ přepisovat, pak jsi zanedbal první a
nejdůležitější krok - návrh.. Což je také jeden z hlavních důvodů
selhání projektu (nedodržení termínu, funkcionality nebo vůbec
nedokončení)..
To platí jen v ideálním prostředí = skoro nikdy. Musel bys na projektu
pracovat sám a nesmí se ti měni zadání v průběhu práce...
Většina vývoje je udržování existujících projektů - klient se
rozhodne přidat někde něco malýho, co třeba ve výsledku znamená přepsat
i nějaké základní věci a nebo je to už delší dobu běžící projekt,
ještě se zbytky starých technologií, které už nejsou podporovány
apod.
A ani při návrhu se nevyhneš chybám, pokud je to nějaký rozsáhlejší
projekt.
Vůbec získat přesné zadání je samozřejmě první krok.. Když
zanedbáš ten, tak si jen přidáš práci..
A je pravda, že beru v potaz pouze tvorbu nových projektů.. Nějaké
udržování něčeho cizího a dost možná špatně navrženého fakt dělat
nehodlám. Ono je ale často jednodušší udělat něco od nuly, než dělat
rozsáhlé změny v něčem existujícím..
V akademické sféře to tak skutečně je - a je jedno, jestli je to vysoká
nebo střední. Ovšem nevidím na tom něco špatného - mělo by to být
normální dostat zadání typu: Udělej program, co umí xyz.
Kromě toho mám nějaké zkušenosti i z praxe, kde je zadání často více
vágní. Ovšem pak je na tobě, abys byl schopen ze zadavatele vytáhnout
upřesnění. Pokud to neumíš/neuděláš, je to tvůj problém.
Když bych dostal nejasné zadání a svobodu to udělat po svém, tak
zadavateli řeknu, že udělám návrh, když on vlastně neví, co chce (za
příplatek samozřejmě) a potom mu to odprezentuju. Lidi, co své představy
nedokáží definovat pak mnohem snadněji můžou posoudit, jestli by jim to
vyhovovalo nebo ne. Když se s tím člověkem nedá pořádně
vyjít/dohodnout, tak ho jednoduše odmítnu. Možností pracovat mám
podstatně více, než bych kdy byl schopen časově zvládnout..
Proč? Právě naopak - větší firmy dodržují ty zásady, o kterých
mluvím.. Když máš malinký tým, tak můžeš být hodně agilní (což se
hodí například když děláš něco, co ještě ani neumíš) - v tom mám
zkušenost právě teď při implementaci EMACu - děláme to dva a tedy
poměrně agilně.. Ale prvně jsme na to se starším kolegou sedli a udělali
solidní návrh.. Fakt je ta implementace o hodně jednodušší a
bezproblémovější, když se předtím zamyslíš nad celkem..
Každý ať si samozřejmě dělá, co se mu líbí - ale je to podobné,
jako když tu jsou občas diskuze o tom, jak korektně něco napsat, aby to byl
čistý kód nebo kód podle MVC - když dodržíš určité zásady, ulehčíš
si ve výsledku práci..
Já mám na mysli spíš tu "údržbu" projektu po tom, co už máš přesné
zadání a třeba ho i dokončíš.
Často je to třeba tak, že zadavatel chce jednoduchý program a po
dokončení přijde s tím, jestli by jsi mu tam nepřidělal ještě tohle
apod.
Jenže s tím se původně nepočítalo (a když jsi psal první verzi,
nemůžeš všechno psát dokonale univerzálně a rozšířitelně, protože by
ti to zabralo minimálně dvakrát víc času a stálo dvakrát víc), takže
začneš rozšiřovat, předělávat, refaktorovat apod. s tím ti sebelepší
návrh nepomůže.
Dělat odznova projekt, který už zabral třeba rok práce několika lidí
jen kvůli tomu, že zákazník chce nějakou zásadní změnu, ti nikdo
nezaplatí.
Málokdy je to tak, že máš zadání na program, co dělá XYZ a po
odevzdání to končí.
Tak samozřejmě, že udělat si dobrý, rozšiřitelný návrh je
náročnější na čas.. Ale myslím, že to je stále efektivnější než pak
refaktorovat a překovávat to (a přitom si to rozbít a pak se v tom dlouho
vrtat a řešit to) - a tam jde zase o domluvu se zákazníkem - často se dá
celkem jasně určit, jestli se to bude rozšiřovat nebo ne.
Například teď dodělávám 1GbE a od začátku vím, že bude požadavek
na 2.5GbE a potom i 10GbE, takže jsme to tomu uzpůsobili a rozšíření by
neměl být takový problém..
Když bych se ale vrátil k původnímu tématu, tak já neříkal, že by
IDE bylo nanic - sám sice žádné momentálně nepoužívám, protože to
nepotřebuji.. Jen jsem vyjádřil svůj názor, že by si měl každý
programovat nějakou dobu bez jakýchkoliv pomůcek, že to pomůže a aspoň
pak ten člověk bude chápat, jak to IDE vlastně funguje..
když používáš ide, tak refactoring zabere 3 sekundy + 5 sekund, když to
IDE všude nahrazuje. připadá mi, jako bys nikdy nedělal na projektu, kde je
třeba 100 tříd.
Tak já hlavně vůbec nepoužívám OOP I když teď vlastně musím.. Ale
nijak mě to neláká a většinou se s OOP u věcí na nižší úrovni vůbec
nesetkáš. Ale jinak jsem na takto rozsáhlých projektech dělal (akorát
místo tříd byly moduly)..
No to je blbé že nepoužívaš OOP, pretože princípy OOP sa využívajú
hojne aj v čistom C-čku, myslíš, že taký linux je nakódený "len tak"
špagetovým kódom? To ťažko.
Říkáš "principy OOP" - ovšem ve skutečnosti jsou ty principy starší
než OOP samo - například oddělování funkčních celků do
modulů/knihoven.. A věci jako toto samozřejmě používám.. Jen
nepoužívám jazyky jako Java nebo C# a tedy tu nemám žádné třídy.
OOP mě jednoduše nijak nenadchlo, což možná souvisí s tím, že nemám
nejmenší zájem psát věci, na které se OOP primárně hodí - tedy
například nějaké informační systémy nebo běžné GUI aplikace. Mnohem
více mě přitahuje například datově orientované programování a poslední
dobou i funkcionální programování..
Jo a stále nevidím nejmenší důvod, proč dělat takový refaktoring..
Přejmenování nebo přesun funkcí nebo proměnných..? K čemu? Nejspíš to
souvisí s tím, jak jste zvyklí programovat.. Ale když bych se vrátil
ještě k hádce o syntax C# vs. Java, tak je fakt nechutné mít na hloupé
přiřazení fci Docela
by mě zajímalo, jaké instrukce to pak generuje.. Ale obávám se, že moc
efektivní to nebude..
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.