Diskuze: Jaký programovací jazyk by jste mi doporučili?

Tvůrce

Zobrazeno 29 zpráv z 79.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ja nevravím, že C# je zlý, len mi príde pre začiatok nevhodný, ale to je môj názor, nemusíš s ním súhlasiť. Iste je to jazyk v ktorom ide robiť skoro všetko, programuje sa v ňom pohodlnejšie ako v Jave, je o dosť modernejší(linq, async, await, struct, properties, EF,...). Mne osobne najviac sedí Java, pretože ma núti viac rozmýšľať nad tým čo píšem a ako to píšem, ale je to je čisto individuálne.
možná jsem stará škola, ale pro začátečníky C nebo Pascal..
takhle tu máme tunu "programátorů", co si přečetli tutoriál, nahážou za
sebe pár funkcí v C#, PHP apod a mají hotový program.. ale většinou jim
chybí základy, nemyslí jako programátoři a jsou pak v reálu na cokoliv
složitějšího nebo kreativního nepoužitelní..
C# je moc jednoduchý a příjemný na používání (to zní vtipně ) pro začátečníky.. na
všechno jsou funkce.. paměť to hlídá za tebe.. a hlavně je tam fakt hodně
funkcí a postupů.. zkus se jako začátečník prolouskat dokumentací..
kdežto klasické C je malé, jednoduché a v porovnání s C# toho moc neumí..
ideální na naučení se myslet jako programátor.. když si musíš napsat na
pokročilejší věci svoje funkce, donutí tě to přemýšlet jak to
udělat... a jak to udělat dobře.. v těch vyšších jazycích prostě jen
google a použiješ jednu fci, kterou ti ještě napoví IDE, takže si
nepamatuješ syntax.. pak budeš chtít práci, tak ti dají fixu, postaví
před tabuli a programuj.. a jsi v prdeli.
učením se vy vyšších jazycích a třeba rovnou v OOP znamená, že se ve
většině případů zanedbají základy.. :/
takže pokud někdo chce IT brát vážně, ať začne ve svém zájmu s C.. a
ideálně ASM.. pochopení základů a jak PC vlastně interně funguje změní
jeho styl myšlení a jedině tak se stane ajťákem
Já doporučuji c#,dá se v tom napsat rozumná hra.A ohledně multiplatformosti,tak asi 90% lidí používá windows a teď s Microsoft Visual Studio 2015 můžeš psát aplikace pro všechno android x iOS,protože myslím bude podporovat xamarin (teda myslím).C# je třeba méně výkonný než c++,ale na hry je oproti javě lepší c#.Vem si třeba minecraft,díky javě katastrofa s výkonem.
A toto je to čo sa mi nepáči, pchať jeden jazyk do všetkého nasilu... áno MS používa 90% užívateľov, ale v reálnom svete neexistuje iba Windows, jazyky sa pri vytváraní programov často kombinujú, pretože každý je vhodný na iný účel... a podľa toho by sa mali jazyky používať, proste neobmedzovať sa iba na jeden jediný.. A výkon Javy v hrách je podobný tomu v C#, keď teda vieš trochu čo píšeš.
S tím si dovolím nesouhlasit. Programovací jazyk je jenom nástroj, a
C/C++ jsou neobyčejně nepohodlné nástroje.
Je sice pravda, že většina lidí si plete programování s kódováním, ale
pro programování je nejdůležitější znalost algoritmů. A pro
začátečníky ještě nenechat se odradit. Algoritmy si lze osvojit
pohodlněji než v C téměř kdekoliv jinde a co se týče míry odrazení, to
nebudu komentovat.
Vím, že programovací prostředi DELPHI už je asi dneska mimo mísu (i když stále existuje a vyvíjí se), ale pokud si vzpomínám, tak právě Object Pascal mi v začátcích připadal docela jednoduchý na pochopení a přitom zde šly tvořit velmi zajímavé konzolové i okenní aplikace. Nutno dodat, že DELPHI jsem použil naposledy v době, kdy bylo ve verzi 7 a to už je dávno (někde kolem roku 2000 až 2003 tuším).
Podobne jednoduchý je aj Python napríklad, a súhlasím Delphi(Pascal) je fajn na učenie základov (naučiť a osvojiť si syntax jazyka je otázka pár dní)
taky jsem začínal v Delphi..
a ty nové verze jsou teda už o něčem jiném..
dokonce je to multiplatformní.. Mac, iOS, Android a Win.. od 2011.. dlouho před C#
a taky konečně vychytali spoustu bugů.. a přidali nové featury.. když
potřebuju rychle naklikat nějakou aplikaci pro sebe, tak rozhodně ji udělám
v delphi.. jednoduché, rychlé.. ideální pro RAD
právě otázka odrazení je vcelku klíčová.. a když máš stovky a
tisíce fcí na vše.. kdo se v tom má vyznat? a vědět, čím začít a co na
co je..?
čím jednodušší a primitivnější jazyk, tím líp.. rozptylovat se
nějakým GUI je ze začátku zbytečné.. hezky konzole a jede se
Delphi bylo super na okenní aplikace, protože tam to GUI šlo jednoduše naklikat.
jj.. a na učení je super klasický Pascal.. resp. v Delphi se můžeš
dobře naučit OOP
Taky nemám rád,když každý obhajuje svůj jazyk,ale c# je aspoň na hry lepší,než java.Tak je mi jasný,že třeba java bude mít na androidu převahu.Ale programátoři i ve visual studiu budou moc hned programovat i pro android bez nějakýho toho mono developer atd.Nechci se dohadovat je to můj názor + pár lidí,jestli máš jiný názor,tak ho respektuji.
Ja neobhajujem žiadny jazyk, použijem ten, ktorý sa na daný problém hodí najviac a aj ja rešpektujem tvoj názor.
to, že se JAVA a C# moc neliší(oba jsou c-like jazyky, ale tady podbnost
končí), to je pravda, až na to, že JAVA je jazyk interpretovaný, kdežto C#
je JIT, JAVa je pomalý moloch, C# he rychlostně srovnatelné s C++ (v MS
poslední léta moc pracovali na performance .NET). V C# není problém si sám
sahnout do paměti (unsafe code), JAVA nic takového neumožňuje.
mimochodem .NET se používá bez nejmenších problémů na real time
zpracování technologických dat. Jediné omezení se ktwerým jsem se setkal
je rychlost procesoru, ale to není záležitost .NET.
že JAVA je jazyk interpretovaný
ten bol dobrý celkovo tvoj
komentár nemá ani hlavu ani pätu a je plný nezmyslov
V čem se pletu? Konkrétně. Také obecné kecy cos mi tu napsal, můžou posloužit leda tvému pošramocenému sebevědomi. Fakta, co jsem napsal špatně
Java je stejně jako C# jazyk s virtuálním strojem
(viz http://www.itnetwork.cz/…et-framework)
Při kompilaci progamu napsaného v C# se program přeloží do IL. Při
spuštění aplikace se při prvním zavolání metofy v IL kód přeloží do
strojového kódu. Následně při dalším volání metody se metoda už
nepřekládá do strojového kódu, ale už se bere již jednou přeložený
úsek kódu.
Tomuto se dá vyhnou , kdež se použije prográmek ngen, který z kompilované
assembly v C# udělá přímo nativní exe, nebo dll optimallizované pro daný
procesor. S použitím .NET native (novinka z minulého roku) se kód napsan v
C# hned kompiluje do strojového kódu.
Zdroj:
http://www.amazon.com/…p/0735667454
http://www.amazon.com/…p/0072224177
https://msdn.microsoft.com/…tnative.aspx
http://blogs.msdn.com/…preview.aspx
Takže pekne po poriadku, podobnosť Javy a C# nekončí o podobnej syntaxe, oba jazyky využívajú na svoj beh virtuálny stroj (JVM alebo CLR). Java(Scala, clojure) je kompilovaná do bytekódu (podobne ako Python/Lua napríklad) a ten je následnej interpretovaný JIT-om. Podobne je to aj u C#, kde je kód compilovaný najskôr do IL a ten je následne interpretovaný JIT-om. Java nie je pomalý moloch (prečo by bol potom taký pomalý nepoužiteľný moloch jeden z najpoužívanejších jazykov toľké roky?) To, že je v C# možnosť unsafe kódu je síce pekné, ale povedz mi jedno reálne využitie v praxi, lebo mne žiadne nenapadá. Mimochodom pri JVM máš možnosť si ho nakonfigurovať ako len chceš (pomer veľkosti edenu a old generation v heape napríklad) neviem či sú také možnosť aj pri CLR.
Napíšu jen krátce, potom se trošku rozepíšu...skáčou tu po mně
děti.
Unsafe kód používám celkem často při psaní algoritmů pro image
processing, kdy obrázek musí být vyhodnocen do 5ms.
Já jsem nikde nepsla, že .NET nevyužívá virtuální stroj. Nakonec
visrtuální stroje se využívají od doby prvního BASICu.
ano kód Javy a C# je překládán napřed do IL a potom do strojového kódu.
Rozdíl je v tom jak je zpracován bytecode a jak IKL, ale o tom píšu výše.
Kód u IL je přeložen do strojového kódu překládán v runtime MAXIMÁLNĚ
jednou. Při prvním přeloženo, se do paměti uloží strojový kód a k při
dalším volání dané metody se už z IL do strojového kódu nepřekládá.
Toto značně urychluje běh aplikací. U JAVy je kód interpretován
průběžně pořád znovu a znovu, což je jak sám uznáš trošku zbytečná
práce pořád dokola. Ale budiž, prvni se objevila JAVA, při konstrukci CLR
se využily zkušenosti z JVM a vylepšilo se to, to je přirozený proces.
Vždy se určitý technologický, nebo vědecký pokrok staví na úspěších,
nebo neúspěších z minulosti. i Isaac Newton, který posunul matematiku,
fyziku i celý pohled na svět řekl, že na to nepřišel sám, ale "stál na
ramenou obrů".
Je samozřejmě možné, že se někdy popletu, nejsem vševědoucí. Ale psát,
že je C# podbný Javě, protože je C-like a používá virtuální stroj není
nesprávné, ale trošku nepřesné. C-like jazyků znám (hlavně podle jména)
kolem 30, interpretovaných jazyků je mnohem více než 30.
CLR jde zkonfigurovat také velmi přesně, jak samotný virtuální stroj, tak
zdrojový kód na úrovní vykonávaní jednotlivých řádků. Sám jsem
parkrát psal standartní kód v C# a na pár řádků jsem použil unsafe kód
kvůlí rychlosti. Tj. nadefinaval jsem si ukazatale a pracovl jsem přímoc v
paměti jako v C++.
Co se týká performance .NET, v posledních letech v Microsoftu tvrdé pracují na rychlosti CLR a jde to znát. KDysi se možna dalo říct, že C# je kopie JAVA, ale dnes už to neplatí.
S Javou jako pomalou, má pár hodně negatívních zkušebistí pár zákazníku firmy pro kterou jsem dělam (vlastně i v pár předchozích firmách kde jsem dělal) a ti kvůlli mnoha důvodům, a jedním z těchto důvodů je i rychlost nechtějí Javu, ale C#. Navíc sám jsem programoval pár čistě serverových systému v .NET.
Javě podle mně škodí taky velké množství ne vždy zpětně kompatibilních aktualizací. Tenhle problém v .NET není. Napíšu něco v .NET 2.0, tak to jede i na stroji kde je jen .NET 4.5. (u Silverlightu to až tak neplatilo, ale ten dal stejně MS k ledu).
Len do toho, keď ma presvedčíš, rád zmením svoj názor, zatiaľ vyzerá, že vieš o čom píšeš, táto problematika ma zaujíma, rád sa dozviem nové veci. Dovolím si poznámku, že v JVM existuje niečo ako HotSpot Compilation.
Java používá JIT stejně jako .NET, takže IL je před spuštěním zkompilován do nativního kódu (i když to nemusí platit na všech OS a HW, ale obvykle ano), takže je rychlost srovnatelná s .NET.
Unsafe se pro běžné programování nehodí, ale jak už tu bylo zmíněno, je super třeba pro urychlení práce s jednotlivými pixely nebo někdy pokud se používá nějaká nativní knihovna, ke které třeba nemáš zdrojáky a posílá ti pointery.
Jestli se nepletu C# kompiluje do nativního kódu hned, Java ne:
– bajtkód každé metody je tedy nejdříve relativně pomalu interpretován a teprve poté, pokud se daná metoda volá často nebo pokud se některá smyčka v metodě opakuje po zadanou mez, se metoda či jen její často opakovaná smyčka přeloží
K výkonu povolání se nauč angličtinu, ale nikdo ti nezaručí, že si s ní vystačíš celý život. Na rovinu, vybírat si jazyk podle momentálního množství nabídek práce je trochu krátkozraké. F# může být stejně tak dobrý jako C#. Nevím co se ti na tomto názoru nelíbí.
To že je Java interpretovaný jazyk je vpodstatě pravda, vůbec to neodporuje tomu, že je i kompilovaný -- do bytecode a pak interpretovaný -- druhá věc je JIT -- pak už jde interpret stranou.
No co se mne tyka tak jsme ve skole zacinali s C/C++ , je to sice tezke /alespon pro mne / ale pokud se naucis alespon zaklady, a napises v tom neco , tak Ti nebude delat problemy se naucit jiny jazyk.
Ja jsem potom presel na Javu ve ktery chvili/par let/ delal, me se na ni libi prenositelnost a univerzalnost.Je dost zadana...
Ted jsem trosku kvuli praci donuceny se naucit C# protoze se proste pouziva
, takze tutorialy zde jsem
velmi ocenil.
Tzn S Javou si vydelas na 100% a s C# docela taky. Takze nejlepe oboji.
Ale to jsou přece tak hrozné bláboly... ke zbytku se snad ani nebudu vyjadřovat, snad jen dodám, že při přechodu na vyšší verzi .NET jsem vždy musel řešit zpětnou kompatibilitu, která není až tak samozřejmá, viz https://msdn.microsoft.com/….110%29.aspx
Údajná "pomalost" C# a Javy přece není ve způsobu překladu, interpretaci ani provádění kódu, může za to garbage collector. Pokud bys mohl použít reference counting místo GC, bude výkonnost nerozpoznatelná. Jak .NET, tak Java běží sice běží na stack-based virtual machines, jenže potenciální overhead, který vzniká, řeší MIMD architektura moderních procesorů.
Před chvilkou jsem si napsal program pro výpočet 109
prvočísel, protože tam nemá GC nic práci a lepší zvýhodnění pro C bych
stěží hledal. Výsledky:
C (gcc -O0) - 11.8s
C (gcc -O3 -m64) - 6.1s
C (gcc -O3 -m32) - 8.4s
Java (-Xmx=1024m) - 6.5s
Než začneš zase plácat nesmysly, dobře se nad těmi výsledky zamysli, říkají toho opravdu hodně. Ještě lépe, zkus si udělat vlastní testy, napsat DSP aplikaci s vyřazeným GC je práce na pár minut.
Také mě živí tvorba back-end systémů. Dělal jsem si řadu testů a C# mi v posledním roce vyšel o 10-30% pomalejší (v testech zvýhodňujících C++), než MS/VC++, což je skvělý výsledek. Navíc je C# rychlejší než GCC v řádech desítek procent.
Dále, unsafe kód v C# - psal jsem řadu testů, když jsem potřeboval vlastní BLAS knihovny a unsafe kód je stejně rychlý jako safe kód. Performance gain se získává přes cache-locality a minimalizaci výpadků stránek v L2 a L3. Správně navržený algoritmus s ohledem na lokalitu dat poběží v safe kódu řádově rychleji, než plain unsafe kód. Z toho důvodu se DSP algoritmy zpravidla píšou v C/C++, jenže nikoliv proto, že by bylo C rychlejší, ale aby bylo možné optimalizovat instrukční sadu. Intel, AMD, Apple a další mají vlastní knihovny specializované často na jedinou verzi z celé řady vlastních procesorů. Ale to už se dostáváme jinam.
Samotnou kapitolou je definice rychlosti. Jedna věc je aplikace běžící na řádově jednotkách CPU, druhá věc je škálovatelnost s ohledem na HW, třetí pohled nabízí rostoucí složitost aplikace. Také v oblasti cloud-computingu se Java s přehledem drží na předních příčkách.
Špatně napsaná aplikace poběží stejně pomalu v C, Javě i C#. Pokud si někdo vyvozuje rychlost platformy na základě nekoretního chování aplikace, je to ukazatelem nedostatku informací a nekorektních inferencí, ale jako matematik bys měl vědět, že to má daleko do rigorózní studie.
Na tohle téma bych mohl mluvit ještě dlouho, ale větší smysl by mělo, kdyby sis nastudoval relevantní a spolehlivé informace, místo aby "jedna bába povídala".
Zobrazeno 29 zpráv z 79.