Čím se liší C# od C++

Diskuze čtenářů k článku

Petr  |  24. 07. 2005 13:08

Tak tento jazyk se mi vudec nelibi, je videt ze za nim stoji microsoft. V tomto clanku je to same neexistuje, nejde, narozdil od C++ MUSITE...,atd. Posledni dobou se vetsina programatoru, ktera si myslela jak prirozene prestoupi z C++ na C# stejne vraci k C++ ... Proste C# neni nasledovnikem C++, nikdy ho nenahradi. Je to spis alternativa k Jave.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Key  |  16. 05. 2007 16:16

Nikdy neříkej nikdy...

Souhlasím  |  Nesouhlasím  |  Odpovědět
AStereSi  |  10. 08. 2007 18:50

Ja programuju v C++ a o C# vim tak to ze existuje a to co bylo v tom clanku.., ale zda se mi, ze to je jazyk, ktery jaksi postrada smysl. Kdo chce C++, ma ho mit a jinak hmatne po Jave. Nevidim duvod, proc na C# prechazet. A taky to moc smrdi Microsoftem

Souhlasím  |  Nesouhlasím  |  Odpovědět
Luboš Doležel  |  03. 12. 2003 13:08

Může mi někdo říct, proč by měl někdo přecházet z Visual C++ ke C#, když programy v c# se pomaleji spouštěji, pomaleji běží a navíc šíleně žerou pamět (u mě to bylo okolo 10 MB paměti na obyčejný dialog ). A to nemluvě o tom, že cílový počítač musí mít nainstalovaný .NET framework.

Pokud máte nainstalované DirectX 9.0 SDK, podívejte se na hodnotu FPS u příkladu Direct3D Billboarding u verze v C++ (u mě 660) a srovnejte to s hodnotou u VB .NET a C# (u mě 260 ).

Souhlasím  |  Nesouhlasím  |  Odpovědět
Melichar  |  01. 07. 2004 20:55

když programy v c# se pomaleji spouštěji, pomaleji běží a navíc šíleně žerou pamět Odpověď je zhruba stejná jako odpověď na otázku, proč by měl někdo z C++ přecházet na Javu...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Eosie  |  07. 08. 2003 00:57

kluci vy jste borci, necetl jsem lepsi diskuzi na celym netu nez tuhle, MS slo vzdycky o prachy a uzivatele byli az na druhem miste, ale ze s tim zajdete tak daleko a totalne ztrapnite vsechno co Svaty Bill nakecal, tak to se musi zapit!

a pokud by to nekoho zajimalo, tak tady je parodie na MS z fantasy prostredim: <A HREF="http://dhara.mysteria.cz/!sub/spasitel_bill.rtf">Spasitel Bill</a>

Souhlasím  |  Nesouhlasím  |  Odpovědět
Eosie  |  23. 06. 2003 13:09

Podle toho, co sem cetl, to bude neco mezi Delphi a C++, ma to moc veci prevzatych z Delphi, protoze tam uz to vsechno je!

Souhlasím  |  Nesouhlasím  |  Odpovědět
NoName  |  25. 06. 2003 17:31

:)) mozna se vam to zda jen proto, ze nerozumite C++, C# ani "vasemu uzasnemu" Delphi. A pokud jste tento komentar myslel doopravdy vazne, zajdete si nekam s hlavou.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Eosie  |  27. 06. 2003 07:48

Umim C, PHP, Delphi, Html, JavaScript, Css, zaklady DirectX a OpenGL a moc dobre vim, o cem mluvim.

Microsoft se zrejme snazi udelat z C# dokonaly jazyk tak, ze to odkouka od Delphi. Tak prilaka programatory Delphi, protoze ti budou chtit jednou stejne prestoupit na C, tak jim to udelal snadnejsi. Nebo proste zavidi, ze Delphi ma dokonalejsi objectovou strukturu a praci s tridami.

Souhlasím  |  Nesouhlasím  |  Odpovědět
:P  |  19. 08. 2003 08:03

a Pascal ne?? :))) jen objektovy delfiny :P

Souhlasím  |  Nesouhlasím  |  Odpovědět
Eosie  |  19. 08. 2003 18:34

Mily pane, Pascal vznikl v roce 1971, C v roce 1972. Pascal a Delphi delala stejna spolecnost Borland (ta se pak prejmenovala na Inprise, Borland byl jen jeji divize). Samotny Pascal byl objectovy az do morku kosti. Co se tyce C++, MS "ukradl" jazyk C Denisu Ritchimu (jeden ze stvoritelu C), aby to vydal jako vlastni jazyk, coz je samozrejme lez, protoze to nebude nikdy jejich jazyk. C bylo puvodne delano pro programovani na Unixu, to vam nedoslo, proc ma Unix odjakziva integrovany kompiler jazyka C, pane chytry?

C# obsahuje nektere prvky, ktere C++ neobsahovalo, ale Delphi ano. Delphi to ma temer od sveho vzniku, jak se tak divam a neni to jedine. Jeden z mych kamosu presel z Delphi na C# a tvrdil, ze je to docela podobne a ze nektere veci uz umel z Delphi.

Temer vsechny zajimavosti, ktere jsou v C# nove jsou v Delphi odjakziva. Datovy typ BOOL nejde pouzit jako INT? V Delphi take ne, ale lze ho pretypovat. Co se tyce reference, je to jen neco jako pointer, akorat si nemuzete umyslne prepsat pamet jine aplikace nebo primo pamet systemu. To v Delphi take ne, ale kdyz ho pretypujete na INT, muzete snadno zmenit adresu pointeru.

Eosie

Souhlasím  |  Nesouhlasím  |  Odpovědět
NoName  |  29. 08. 2003 14:11

K vasim prispevkum jiz neni co dodat. Napada, me pouze jedna otazka: Nedelate si legraci?? V pripade, ze ano tak se Vam klanim, ja jsem to nepoznal.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Luboš Doležel  |  03. 12. 2003 13:18

Tak proč se v Delphi nevyvíjí ten nejlepší software na světě a nedělají se v něm ty nejlepší hry dnešní doby?

Kdyby Microsoft nedělal všechny funkce Windowsu ve volací konvenci __stdcall, tak by si Pascal u Windows ani neškrtnul . U pascalu si člověk připadá jako ve vězení, otravuje to když chce člověk převést z typu Byte na Char přitom je to obojí jeden bajt.
C++ ma svobodné možnosti a nezatěžuje se detaily.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Eosie  |  04. 12. 2003 08:28

No ja sem nemyslel C++, v nem ted delam a myslim si, ze je bezkonkurencne lepsi, takze menim nektere sve nazory viz vyse a to mozna jen proto, ze M$ to prebyl penezma a reklamou. Ale o to nejde, myslel sem hlavne C#, kterej se mi ale vubec nelibi.

Souhlasím  |  Nesouhlasím  |  Odpovědět
morph  |  13. 02. 2005 15:34

vidim ze ste skutecne odbornik :D
pro vasi informaci C# je odvozeny predevsim Javy

Souhlasím  |  Nesouhlasím  |  Odpovědět
kdoasi  |  27. 11. 2007 15:44

Tak pro informaci vsech kecalu tady, C# navrhoval nejaky Anders Hejlsberg, ktery delal predtim u Borlandu, proto ta podobnost s Delphi (skutecne tam podobnost je).

Souhlasím  |  Nesouhlasím  |  Odpovědět
Vamp  |  04. 05. 2003 19:02

Hodně by mě zajímalo, jestli jde v C# programovat v DirectX? Pořád se rozhoduji jestli mám začít v C++ nebo v C#. Dekuji

Souhlasím  |  Nesouhlasím  |  Odpovědět
Pink  |  09. 11. 2004 16:10

Jde

Souhlasím  |  Nesouhlasím  |  Odpovědět
redef255  |  01. 05. 2003 18:21

Ať žije ANSI/C++, console a UTF-8 (příp. ISO 8859-2)

Souhlasím  |  Nesouhlasím  |  Odpovědět
MarS  |  06. 08. 2003 13:26

Tohle je jeden z velmi mala prispevku ktery dava smysl ;) a ja s nim naprosto souhlasim.. k cemu je mi C#, kdyz to neprelozim na vsech architekturach ktery me napadnou (jako ANSI C,C++). A na vykonove aplikace se nic interpretovanyho nehodi (ani java ani C# ani nic jinyho..tam je proste potreba nativni beh)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Karel B.  |  06. 08. 2002 16:52

Multiplatformni jazyk bezici na jedne platforme, heh. MONO neni a nebude plnou implementaci .NET, pouze urcite vybrane partie, ve vysledku to bude nepouzitelne. Pokud by to MS s multiplatformnosti myslel vazne, uz by existovaly MS frameworky minimalne na Mac a Linux.
Ocekavam stejny prubeh jako u WinNT, ty mely puvodne bezet na procesorech Alha, Intel, MIPS a PowerPC, skoncilo pouze u Intelu. To je multiplatformnost v MS podani. Pokud nekdo prechazi na .NET z duvodu vyssi platformni nezavislosti, tomu se smeju smichem pouceneho. Zajmem MS neni umoznit multiplatformni programovani ale co nejvice lidi pripoutat k windousum. Tj bude predstirat podporu vice platforem, jakmile se znacny pocet uzivatelu (nyni vetsinou u multiplatformni Javy) dostane do zavislosti na MS, podpora vice platforem proklate rychle skonci a zustane wintel, jak ho zname. Postoj MS k jinym platformam je nadherne videt na Sambe. Samba je multiplatformni reseni implementujici MS sdileni, MS pravidelne s kazdym Service Packem privadi ve sdileni takove zmeny, aby Samba byla s MS nekompatibilni, je to takovy sranda zavod, MS vyda SP, samba.org vyda novou verzi Samby, nasleduje dalsi iterace.

Jit do .NET s predstavou budouci snadne prenositelnosti je naivita, MS toho uz tolik nakecal...

"VYHODY" C#, ze nuti programatora k citelnejsimu programovani v pohode zastane firemni C++ coding standard + Coding patents.
C# je trucpodnik vuci Jave, jenze java uz nalezla i do mobilu, nedavam C# velke sance.

Souhlasím  |  Nesouhlasím  |  Odpovědět
_  |  06. 08. 2002 17:13

Vyborne zhrnutie.

Podla mojich skusenosti do C# a .Net sa hrnu hlavne ti, ktorych jedina skusenost v programovani je Visual Studio s jazykom mesiaca, Interdev a pod. Ludia, ktori v zivote nevideli iny jazyk, ako im MS naserviroval. Ktori nevedia, co je to Smalltalk, Objective-C alebo Ruby (alebo Lisp, Scheme, pre funkcionalne inklinovanych), a koncepty, na ktorych su tieto jazyky zalozene. Tak sa im zda vsetko od MS nove a cool.

Souhlasím  |  Nesouhlasím  |  Odpovědět
highlander  |  17. 04. 2003 16:03

ja ja

Souhlasím  |  Nesouhlasím  |  Odpovědět
ondrej  |  06. 08. 2002 14:01


Vsimnul jsem si dvou nepresnosti

"C# nepodporuje makra. Lze tak podstatně zrychlit práci překladače JIT, který nemusí skládat výsledný kód z mnoha různých částí."

JIT prece vubec na urovni maker nepracuje, preklada jenom MSIL


"Neexistuje datový typ pointer. Místo toho se všude používá reference."

neni to pravda, viz. unmanaged mod



Souhlasím  |  Nesouhlasím  |  Odpovědět
Tomáš Holub  |  06. 08. 2002 14:21

Ano, priznavam, pointer v C# existuje . Nektere veci by bez nej opravdu nesly udelat (hlavne v navaznosti na drivery a starsi kod). Ale i v dokumentaci Microsoftu se pro jednoduchost mluvi o tzv. "core C# language" a tato "zakladni verze ?" jazyka s pouzitim ukazatelu nepocita.

Souhlasím  |  Nesouhlasím  |  Odpovědět
alex  |  06. 08. 2002 12:58

C# je prvni multiplatformni jazyk ktery bezi jen na jedine platforme . Osobne si myslim ze je c# chudy pribuzny C++. Jsem si jist ze neexstuje algoritmus nebo program ktery by v C# sel zvladnout zatimco v C++ nikoliv, zatimco c# nezvlada spoustu casove a pametove narocnych algoritmu (stejne jako Java). Jenze Visual Studio je potreba prodat kazdy dva roky znova, a to tezko udelate zlepsenim prekladace C++.

Souhlasím  |  Nesouhlasím  |  Odpovědět
ondrej  |  06. 08. 2002 13:53


C# je prvni multiplatformni jazyk ktery bezi jen na jedine platforme

pockej si

C# uz bezi na linuxu, akorat nejsou knihovny

Jsem si jist ze neexstuje algoritmus nebo program ktery by v C# sel
zvladnout zatimco v C++ nikoliv, zatimco c# nezvlada spoustu casove a
pametove narocnych algoritmu

omyl, C# ma podobne schopnosti jako C, ano, vcetne pointeru

Souhlasím  |  Nesouhlasím  |  Odpovědět
alex  |  06. 08. 2002 16:49

no, velmi zabavne...
nejdriv si o programovani necto precti a pak zacni psat diskusni prispevky na toto tema. Programy ktery jsou narocne na pamet - profesionalni programy na praci s videem, grafikou, ruzne algoritmy na zpracovani velkeho obemu dat (GIS apod.) potrebuji nahrat obcas i nekolik set megabajtove soubory objektu a to opravdu s Garbage Collection nejde. Existuje moznost pouzivat knihovny na praci s videem, obrazkama (jako je JAI pro Javu) jenze to znamena vzdy omezenou funkcionalitu. Je napr. nemyslitelne ze by nekdo udelal Photoshop v C# nebo Jave.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Naith  |  24. 02. 2006 11:04

No rok se sesel se 4 roky a Aucad 2006 je C# napsany. A kupodivu neni pomalejsi nez ten co hlasil chyby v modulech xy.cpp :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
KamosCPP  |  10. 09. 2003 13:55

V C++ delam x let. C# je opravdu jen komercni tah M$ .. nevidim to jinak. Jako ceckar jsem nikdy nepotreboval zadny Javy a podobny nesmysly, ale chapu, ze se to nekomu lip uci nez Cecko (CPP).

Souhlasím  |  Nesouhlasím  |  Odpovědět
Lister  |  06. 08. 2002 11:11

Osobne se domnivam, ze clanek je vcelku dobry jako rychle shrnuti zakladnich rozdilu, je tam vsak par nepresnosti, na nektere z nich(moznost compilace C# primo do nativniho code) jiz bylo v diskusi upozorneno. Jeste je tam jedna chyba tykajici se:
"switch" musi byt vzdy ukoncen prikazem "break"
no a v C/C++ snad nee?? To je prece stejny v obou jazycich.

Souhlasím  |  Nesouhlasím  |  Odpovědět
David Pokluda  |  06. 08. 2002 11:26

Mám pocit, že v C/C++ je správný následující kod:

switch (nValue) {
   case 0:
      printf("0\n");
   case 1:
      printf("1\n");
   case 2:
      printf("2\n");
      break;
   case 3:
      printf("3\n");
      break;
   default:
      printf("nevim\n");
}

Z tohoto příkladu je vidět, že ne každá větev v příkazu switch musí mít svůj vlastní break. Je pravda, že některá literatura používání break doporučuje pro lepší čitelnost kodu.

David Pokluda.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Romulan  |  06. 08. 2002 12:36

Zdaleka nejde len o citatelnost kodu. Pouzitim "break" vyskocite z vykonavania daneho case-u. Ak break nepouzijete spracuju sa vsetky nasledujuce case-y az kym kod nenarazi na break. Cize v pripade 0 sa vypise 012.

Jednou z vyhod jazykov ako je Java a C# je prave zjednodusenie syntaxe a minimalizacia nespravnej "interpretacie" kodu menej skusenym programatorom. C# vsak podla mna v tomto pristupe nie je uplne konzistentne, kedze podporuje napr. "vystupne" parametre metod (modifikator out) a ine sialenstva.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Tomáš Holub  |  06. 08. 2002 11:28

C# se standardně pouští nad prostředím .NET Framework. Samozřejmě že je možné vytvořit překladač, který přeloží zdrojový kód přímo do nativního kódu, ale zatím o žádném nevím. Mimochodem .NET Framework má moc pěkně propracovaný systém různých možností JIT překladu.

V článku jsem psal, že v C# musí být každá větev příkazu switch ukončena příkazem break. V C++ to neplatí, lze napsat:

case 1:
    neco;
    // zde chybi break!

case 2:
    neco;
    break;

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bukovansky Richard  |  06. 08. 2002 11:30

Ten prekladac do nativniho kodu mate, pokud mate VS.NET, nebo .NET FW SDK.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Motyka  |  06. 08. 2002 09:53

Me to podle toho hrubeho popisu take pripomina Javu.
Proste zase nejake "nareci" C++

Souhlasím  |  Nesouhlasím  |  Odpovědět
chick.  |  10. 08. 2002 00:43

??? To jako ze Java je nareci C++??? To muze napsat jenom clovek, jehoz vrcholnym vykonem je pouzivani MS Word...

Souhlasím  |  Nesouhlasím  |  Odpovědět
receptor09  |  06. 08. 2002 09:40

no neni to uzasny? mozna ... pane jo, mozna!!!! ... v tom pujde napsat i ovladac (ty brdo:))))) (reakce na prispevek jednoho ctenare)


docela dost to pripomina javu. jak bude vypadat/vypada J# (nebo to zrusili)?

fakof (napitchu)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Martin  |  06. 08. 2002 10:19

J# puvodne microsoft nevyvijel (vzhledem k soudnim sporum se Sunem), ale na zadost vyvojaru (!!!) nakonec J# vytvoril a lze ho stahnout z MSDN.

Jenom chci upozornit, ze J# neni primarne urcen pro javisty, ale pro vyvojare v J++. J++ neni Java! Ac sdili syntaxy tak to neni to same. Pro vas, kdo nevite, co je to J++, tak se s J# vubec nezabyvejte a jdete primo na C#.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bukovansky Richard  |  06. 08. 2002 11:17

Hm, a zkousel jste si napsat ovladac v Jave? Moc to nepujde, protoze se bez JVM muzete jit zahrabat, nehlede na to, primy pristup na HW tam taky nebude. Ja jsem ten driver daval jenom jako priklad moznosti, jak by se dal take teoreticky C# pouzit...

Vyhodou celeho .NET FW je prave to, ze muzu mit program poskladany z komponent a je mi totalne jedno, v cem jsou napsany (staci kdyz budou mit kompilator do MSIL/CIL) a kde jsou umisteny (webservices), tzn. muzu zdedit v C# tridu z VB.NET, nebo treba z Perlu/Pythonu apod. Zkuste to v Jave.

C# byl napsan z jednoho prosteho duvodu, neni proste poradny OOP C-based jazyk, takze to MS zkusil se C#.

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bedrich  |  06. 08. 2002 12:47

Jenomze ovladac v C# napisete jenom na Windosech, protoze tam to ma podporu celeho Visual Studia, ale uplne stejne muzete napsat ovladac i ve Visual Basicu. Na ostatnich platformach to s temi ovladaci tak horke nebude, takze myslenka, ze by na vsech platformach slo psat v C# ovladace a v Jave ne, a proto je C# bozi a Java shit je naprosto od veci. Java si nehraje na zadny univerzalni jazyk na programovani sveta.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bukovansky Richard  |  06. 08. 2002 13:43

Uz jste zkousel napsat ve VB ovladac? Ja radeji ne...  Mam obavy, jestli to vubec jde... Nejsem vsak VBkar...

Ja jsem cely priklad s ovladacem dal k dobru jen kvuli tomu unmanaged kodu. Ne kvuli tomu, ze pujde ovladac napsat jednou pro vsechny OS. To snad ani diky ruznym modelu OS a ovladacu nejde...

Ja jsem nerek, ze Java je shit. Javu beru jak dobry zacatek nezavislosti aplikace na OS/platforme (coz tesi uzivatele). .NET je skvely diky nezavisloti aplikace na OS/platforme, mistu behu casti aplikace a programovacim jazyku (coz tesi uzivatele i mne, programatora).

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bedrich  |  06. 08. 2002 16:59

>Ja jsem cely priklad s ovladacem dal k dobru jen kvuli tomu unmanaged kodu. Ne kvuli tomu, ze >pujde ovladac napsat jednou pro vsechny OS. To snad ani diky ruznym modelu OS a ovladacu >nejde...

Vas priklad byl totiz uplne klasickou ukazkou mateni pojmu. Java neni na psani ovladacu a C# taky ne, jenom v C# je mozne neco co by melo jako ovladac namalovat a ono se to nejak slozi podle logiky,kterou tomu programatori, kteri to implementovali dali. Uplne stejne si ale takovy nastroj muzete napsat i v Perlu.

V jave se ovladace nedaji psat ani pro Solaris a na nem toho je v jave uz dnes napsaneho dost z jednoducheho duvodu. Udrzet v maximalni mozne mire prenositelnost. Proto java take dlouho nemela osetrene klikani pravym tlacitkem mysi, protoze to na Macintoshi neni.

>Ja jsem nerek, ze Java je shit. Javu beru jak dobry zacatek nezavislosti aplikace na OS/platforme   >(coz tesi uzivatele). .NET je skvely diky nezavisloti aplikace na OS/platforme, mistu behu >casti aplikace a programovacim jazyku (coz tesi uzivatele i mne, programatora).

V tom pripade berte C# jako jasny krok M$ nabidnout lidem takovou volnost, jakou ma clovek na opustenem ostrove. Muzete si delat co chce, muze si jit kam chce, ale vsude jinde je to o tolik horsi, ze radeji zustane.

Souhlasím  |  Nesouhlasím  |  Odpovědět
chick.  |  10. 08. 2002 00:46

.NET je platformove nezavisly??? Bud jsem ja zaspal dobu, nebo se vy moc divate na televizi, resp. na propagacni letaky MS.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Isaac  |  06. 08. 2002 14:08

Mám pocit, že při zmínce o skládání programů z komponent směšujete dvě hlediska:

1) možnost "linkovat" program z částí napsaných v různých jazycích

2) využívat v programu volání webových služeb bez ohledu na to, v jakém prostředí byly příslušné serverové komponenty (služby) napsány.

K možnosti linkování heterogenních zdrojů - je to sice fajn a určitě i silně vymakané, ale prakticky se mi to zdá spíše jako komplikace, než jako výhoda. Možná jsem ze staré školy, ale nedovedu si představit údržbu a rozvoj komplexnějšího projektu, kde je každý pes jiná ves.

A k těm webovým službám - výzva "zkuste to v Javě" zní sice konfrontačně, ale z vlastní zkušenosti mohu říct, že s tím není žádný problém. Web Services jsou synonymem interoperability, takže pokud jsou dodrženy standardy (WSDL, SOAP), je i javovému konzumentu webové služby jedno, v čem je služba napsaná.

A ještě si dovolím globálnějsí poznámku - celý slavný C# na mě působí jako Microsofťácká truc-Java. Pro Sun to může být nechtěným potvrzením správnosti směru, jakým vede vývoj Javy, přístup Microsoftu je podle mě vyloženě totalitní.

 

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
shrek  |  06. 08. 2002 22:56

A to dedeni tridy z Pythonu bude vcetne dynamickych vlastnosti trid / objektu? Vzdyt Python a C# jsou svoji filozofii uplne nekde jinde a jejich michani pomoci nejakeho "dedeni" vytvori tak maximalne dort pejska a kocicky. Z Vasich reakci (bez urazky) mam pocit, ze citujete marketingove materialy Microsoftu, ale vubec nemate poneti o tom, jake problemy ta proklamovana "jazykova univerzalnost" obnasi.

Souhlasím  |  Nesouhlasím  |  Odpovědět
DuxForD  |  06. 08. 2002 08:46

Pokud vim, tak C# se cte jako "sí šárp" [C Sharp] ...

Souhlasím  |  Nesouhlasím  |  Odpovědět
DuxForD  |  06. 08. 2002 08:50

Proto maj soubory se zdrojovym kodem C# priponu ".cs"

Souhlasím  |  Nesouhlasím  |  Odpovědět
Kamil  |  06. 08. 2002 08:31

Jak se prosim C# spravne cte? "C hash"?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Martin  |  06. 08. 2002 08:37

Asi spíš "céhaš", nebo možná "cédvojitýkřížek"?

Souhlasím  |  Nesouhlasím  |  Odpovědět
bob  |  06. 08. 2002 08:48

no ja bych rekl ze spis "šémhamforáš"

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bukovansky Richard  |  06. 08. 2002 08:50

Ne, MS jazyk predstavil predstavil jako C Sharp (tedy: sí šárp), ale vzdycky se bude psat C#.

A musim vam rict, neb jiz nejaky ten patek v C# delam, ze to je fakt bozi language.

Akorat musim podoknout, že C# se bez .NET Frameworku obejde (nevim, jestli je to v clanku popsano) a lze prekompilovat program v tzv. unmanaged kodu (managed kod je prekompilovany pro beh pod .NETem, unmanaged ne, tady se vytvari cisty Win32 kod), coz by mohlo vest i k tomu, ze pujde napr. napsat ovladac na najeke zarizeni pomoci C#. Mozna.

Pro psani standardnich aplikaci (3-tier aplikace - ERP, e-Commerce apod.) se vsak rozhodne doporucuje kompilace v managed modu, protoze to usnadni spousty prace zname z C/C++.

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Martin  |  06. 08. 2002 10:11

Ve skutecnosti by se to asi "cesky" melo cist "cis". Tedy stejne jako akcentovane C na notove osnove

Anglicky C# (cteno C sharp) totiz prave znamena cis

Ale uprime C sharp zni vic odborneji ne?

Mimochodem vsimnete si to explicitniho vyznamu - C# je na notove osnove o pulton vys nez C


Podle meho soudu je C# dobrym jazykem, ktery se diky vlivu open source komunity uchyti i na systemech bez .NET CLR (common language runtime), protoze je to jazyk a tudiz s zadnym runtimem pevne svazany neni. Kdyby nekdo chtel, muze i pro Javu vytvorit nativni prekladac a obejit runtime, ze?! Prekladace uz se daji na internetu najit (alespon v beta verzich). V kazdem pripade pri srovani s Javou 1.3 (mem subjektivnim, ale podporenem nekolikaletou zkusenosti) musim rict, ze C# je jazyk prijemnejsi. Javu 1.4 nehodnotim, zatim s ni nemam prilis zkusenosti, ale nepredpokladam, ze by me klicove slovo assert dokazalo od symaptii k C# odklonit ))))

Na pripominku, ktera se tu uz nekde vyskytla, ze C# je klon Javy, potazmo C++. No jiste, to je fakt, ale vytyka nekdo Bjarne Stroustrupovi, ze ukradl syntaxi C a postavil na ni C++??? C++ nema zadnou historickou souvislost s C. Stroustrup si syntaxi C vybral, protoze mu v dane dobe nejlip vyhovovala (viz jeho poznamky v predmluve knihy o C++). Tak to v zivote chodi, berete to nejlepsi a pridavate vlastni inovace. Nikdo netrpi, naopak mame lepsi vyber.

Souhlasím  |  Nesouhlasím  |  Odpovědět
_  |  06. 08. 2002 16:37

Samozrejme nativne prekladace pre Javu existuju.

Prekladac napisany v C, kompiluje .java -> .class = jikes
Prekladac napisany v C, kompiluje .java -> .class, .class -> native binary, .java -> native binary = gcj, sucast gcc

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jarda  |  06. 08. 2002 10:56

No to je takova Java taky:) A na rozdil od 'sí šárp' se obejde nejen bez .NET Frameworku, ale i bez Windows, coz je imho dalsi velky PLUS.

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bukovansky Richard  |  06. 08. 2002 11:08

A obejde se Java bez JIT kompilatoru (tedy Java Virtual Machine)?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jarda  |  06. 08. 2002 11:16

Kdyz ji zkompilujete do nativniho kodu tak ano. Je pravda ze tahle moznost neni nebizena primo JDKckem, ale napr. takove GJC to umi. A ono kdyz uz jsou hotove JIT compilery, asi by nemusel byt takovy problem nechat je vytvorit binarku..

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bukovansky Richard  |  06. 08. 2002 11:28

No, ale jsme u toho. V Jave tato moznost neni standardne. Ale v C# ano. Nekdo se musel nastvat, aby na to udelal compiler do nativu. MS dava tuto moznost u VisualStudia.NET primo...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jarda  |  06. 08. 2002 11:36

A co se na to podivat takhle: Aby me program v C# bezel pod Linuxem se zas nekdo bude muset nastvat a naportovat prekladac na Linux, zatimco Java tam beha a jeste si muzu vybrat ze si to zkompiluju do nativu. Coz je asi ten hlavni rozdil, java je holt urcena k tomu, aby primarne behala pokud mozno na cemkoli, C# k tomu aby pretah lidi pod wokna:).

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bukovansky Richard  |  06. 08. 2002 12:46

Ale, a to jste sebral kde (prechod na Windowsy)? Proc MS publikoval C# language pro standardizaci? Proc je na Linux portace .NETu zvana Mono (od Ximianu; je jeste jedna, ale tu si nepamatuji...)? Protoze chce porazit Javu prave z duvodu jeji platformove nezavislosti a to pomoci toho, ze to neni zavisle jen na jednom programovacim jazyku. A pokud je mi znamo, tak jsou ohlaseny kompilery vice jak 30 jazyku, ktere pobezi pod .NETem. Tudiz pokud mam rad Python a mam nejake aplikace uz hotove, staci mi sehnat Pythoni kompiler do .NETu, a ty aplikace zkompilovat pro .NET a muzu je provozovat na cemkoliv, co bude mit .NET FW a tudiz NEMUSIM psat tu aplikaci znova a NEMUSIM se ucit zadny dalsi jazyk. A jestlize je Mono pod GPL, tak to bude mozne uz pak naportovat na jakykoliv Unix a Apple OS X.

BTW Java na Linux taky nebyla, nekdo na ni musel udelal JVM. Stejne to je se C#. Jenze C# je tu asi tak pul roku (oficialne, bety do toho nepocitam), kdezto Java 8 (vydani bylo 1993 nebo 1994???)

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jarda  |  06. 08. 2002 14:10

No dobre, nebudeme rypat:) I kdyz dokud nebudou kvalitni porty pod dalsi systemy tak to k tem woknum potahne.. A to bude nejaky ten rok trvat. Ono kdyby z toho M$ nic nemel, tak to taky nedela, ze? Takze predpokladam ze hlavnim cilem nebylo umoznit uzivatelum oken rozlizt se na dalsi systemy.. No kazdopadne konkurence je vec dobra a uvidime co z toho jeste vzejde.

Co se tyce uceni se dalsich jazyku, tak Python neni zrovna stastny priklad, neb pro nej existuje jak interpret psany v Jave tak prekladac do Javiho bytekodu. A neni jediny.

Souhlasím  |  Nesouhlasím  |  Odpovědět
_  |  06. 08. 2002 17:00

Takze poporiadku:

1. MS nechal standardizovat jazyk C# a malu cast tried pouzivanych v .Net frameworku. Samozrejme, niektori to zhltli aj s navijakom a myslia si, ze ich aplikacie budu chodit aj pod mono. Sprava o 11: v 90% nebudu.

2. Pokial si myslis, ze mozes zobrat Pythonovu aplikaciu a prekompilovat ju do .net, tak na to velmi rychlo zabudni. Podpora .net pre python sa tyka jazyka Python, nie nativnych tried Pythonu. To znamena, ze pouzivas syntax Pythonu s triedami .net frameworku.

To, ze sa nepodporuju nativne triedy prislusnych jazykov, moze mat katastrofalne nasledky pre prislusny jazyk. Napriklad jazyk Ruby ma velku cast svojich silnych stranok (napr. iteracie) vo svojich triedach a v .net je to vsetko nepouzitelne.

S podporami viacerych jazykov v .net to skonci rovnako ako v ASP: aj tam bolo mozne pouzivat lubovolny jazyk, ale "najlepsie fungoval" vbscript. S .net-om to bude rovnake - teoreticky bude mozne pouzit lubovolny jazyk, ale "najlepsie fungovat" bude C#.

Souhlasím  |  Nesouhlasím  |  Odpovědět
shrek  |  06. 08. 2002 22:50

To je velice presne. Pouziti syntaxe Pythonu (Perlu, Ruby nebo ja nevim ceho) znamena jenom to, ze budu moct castecne eliminovat spatny navrh jazyku typu C#. Ukazte mi, jak rozjet na .NETu stavajici program rozsahu treba Zope a neztratit pritom dalsi procenta vykonu a ja uznam, ze je to dobry napad.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bedrich  |  06. 08. 2002 12:42

Spise nekdo musel nekoho v M$ poradne nastvat, protoze by jinak nebyl zadny duvod, aby jazyk Microsoftu bezel na vlastni platforme "interpretovane". vczdyt je to uplny nesmysl. To je proste jen dalsi z pruhlednych kroku M$, proc to udelali, protoze chteji vytesnit javu a nacpat se na vsechna prostredi .NET(em) . Jejich J# == Java, jenom s tim, ze se to prelozi tak sikovne, ze to beha jen na Windowsech a udelali to jen proto, protoze si jsou dobre vedomi, ze java bezi spoustu let a je v uz dnes ni udelan nejaky ten milion radek kodu. nechaji programatorum jejich jazyk a strci jim svou platformu. Jak duvtipne.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bukovansky Richard  |  06. 08. 2002 13:32


  1. Pokud chtel MS dosahnout napr. te moznosti dedit crossem pres jazyky a prenositelnosti mezi OS, tak to jinak nez nejakym frameworkem, kde to bude standardizovane, asi tezko udela (viz Java - prenositelnost).

  2. Ano chteji, ale prave pomoci te jazykove nezavislosti. BTW A proc ne? MS vzal myslenku Javy a dotahl ji daleko dale.

  3. J# != Java. Vazne... Tak jako MS JVM != Sun JVM. I MS to tvrdi, pac byte kod z J# neni kompatibilni s Java byte kodem...

  4. Velmi spravne, to je prave na celem .NETu (nepocitam-li komunikaci aplikaci krizem jazyku, platforem, OSu apod.) to genialni. Proc bych se mel ucit dalsi jazyky, kdyz muzu pouzit ten svuj, zkompilovat to trochu jinak a pobezi to na cemkoliv? A at se to jmenuje jakkoliv (.NET, Mono, ProstrediProBehAplikaciPlatformoveNezavislych)... To pro mne jakozto programatora bude daleko prijatelnejsi to prelozit pro .NET, hlavne kdyz to bude moci pouzivat vice lidi. No ne? Nehlede na to, ze treba muj kamos muze napsat nejakou knihovnu dejme tomu v VB.NETu (kde on je doma, byl to kdysi programator ve Visual Basicu), kterou bych rad pouzil ve svem programu, ktery je napsany treba v Perlu. Budu muset prepsat ja svuj kod nebo on? Ani jeden. Jen ji proste pouziji.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bedrich  |  06. 08. 2002 16:51

add bod 1) - vetsina lidi vi, jak dopadl M$ s NTckama na Alphach. Propadak. Visual C++  vubec nebylo rekompilovatelne bez provedeni zmen. A to se bavime o jednom API a MFC, ktere psala jedna firma a ktere melo prave odstinit hardwarovou odlisnost. Standardizace jazyka neznamena nic, pokud se standard nedodrzuje.

add bod 2) - k tomu dotazeni myslenky Javy daleko dal, jeste neni ani tam, kde je dnes Java a ani za deset let nebude, protoze stale budou muset drzet linii s ostatnimi svymi produkty a pokud ne, stane se jim z frameworku jedova chyse, nebo pejskokocickovsky dortik se spoustou vyjimek a ruznych vykladu.

k bodu 3) - nejde o kompatibilitu bytecodu, ale o kompatibilitu jazyka. Jde o to vyuzit stavajici napsany kod. Vite, co znamena prepsat aplikaci s tisici radky? Nic, protoze to nikdy nikdo prepisovat nebude. Jenom blazen by stale menil neco, co mu funguje, ma v tom zkusenosti. Proto je mozna konverze javiho kodu do M$ produktu.

k bodu 4) - o te kompilaci a behu na cemkoliv, to uz tu bylo u C i C++ a jaksi se to neda rici, ze by to byla uplne pravda. Stejne jsou vsechny vyssi jazyky, Basic, FoxPro atd. jen abstrakci, nakonec se, pokud se dela *.exe provede preklad na C, nebo C++ a pote do strojoveho kodu. Je to jen pomucka ke zvyseni efektivity vyvoje.

To, co popisujete s Basicem a Delfinkama uz tu take davno bylo je a jmenuje se to COM. Procpak od toho najednou odchazeji? Jednak je to slozite jako mlaticka na cibuli a za druhe to vubec nesplnilo ocekavani. BTW: Basic v NETu ma k puvodnimu Basicu uz docela dost daleko (prave proto, aby mohl byt zaclenen do frameworku). Protoze kdyby zustal takovy, jaky je, vubec by nezapadl do te filosofie navrhu a to bude jednou M$ vyvojarum delat dost tezkou hlavu (viz muj bod 2).

Souhlasím  |  Nesouhlasím  |  Odpovědět
Eosie  |  07. 08. 2003 00:09

podle me tu nikdy nebude dokonaly multiplatformni jazyk

a k tem Delphinkam:

nevim, kdes slysel, ze Delphi bezi pod COM, vetsi blbost jsem neslysel, o VB by se to rict dalo, taky Runtime knihovny meli pres 1 MB a to ani nemluvim o tom, ze cim vic program rostl, tim byl vetsi a vetsi, zatimco u Delphi jsou zaklad runtime knihovny pod 300k, bez nich aplikaci zkompilujete pod 50k! a aplikaci jen tak nad 1MB nedostanete, delal jsem program, 3500 radku + par jpg obrazku a jedno 8 sekundovy mp3 vse do jednoho exe a melo to neco malo pres 900k

a co se tyce multiplatformniho programovani, dle meho nazoru je nejlepsi spojeni Delphi (Win32) Kylix (to same co Delphi, ale na Linuxu), neni nic snadnejsiho nez napsat program na bazi CLX (od prvnich verzich Delphi se pouzivali runtime knihovny VCL, pak zacal Borland premyslet o propojeni Linuxu a Win a vznikl CLX) a prenest zdrojovy kod do Kylixu a tam ho zkompilovat a mame 2 stejne aplikace na jinych systemech, proc? protoze jak v Delphi, tak v Kylixu se pouzivaji kompatibilni knihovny, takze zdrojovy kod neni treba upravovat!!! (vyjimky se vyskytnou, ale to jsou jen malickosti)

a) stale si myslim, ze C# odkoukal z Delphi co mohl (ale overloadovani funkci doufam jeste ne)

b) MS zjisti, ze Borland ma dobre ustlano mezi systemy, tak navrhne (bohuzel moc pozde) C# a zacne ceckarum vykladat, jaky to bude multiplatformni jazyk a ti to odkyvaji s pocitem, ze tu konecne neco bude, protoze nevedi, ze Delphinci si uz nejakou dobu ziji v blahu

c) zatimco ceckari zahodi sve tisiciradkove zdrojaky z c++, kvuli dotNet a C#, Delphinci se s Win32 aplikacemi presunou na Linux a mohou je dal pouzivat a vylepsovat bez vetsiho problemu

nevim jak vy, ale MS na tom i prodela, ktera firma dela databazove programy, servery v c++? neznate zadnou takovou? proc? protoze se delaji v Delphi, ano! Delphi se specializuje HLAVNE na databaze, databazi telefonni cisel udelate do 5ti minut, jednoduchou podnikovou typu server-client mate za par hodin, mam zname v nekterych firmach, kde delaji v Delphi a co tam delaji? databaze!

krome toho na tom dobre bezi i OpenGL (DirectX uz ne tak dobre, ale na isometricky engine to staci)

dost si me urazil, zes prirovnal Delphi k tomu propadaku VB, kdyz o tom nic nevis

Eosie

Souhlasím  |  Nesouhlasím  |  Odpovědět
x  |  14. 05. 2004 10:09

Kolego, Vy nevite nic o soudech, ktere byly proto, aby MS  n e m o h l  pouzivat Javu plnohodnotne pod vlastnim systemem? Jestli je to tu jeste nepochopeno, tak .NET vznikl prave proto. K cemu mi byla Java bez COM, ActiveX, DCOM atd... Vsichni - ktere znam a kritizuji treba COM - tak o nem  v u b e c  nic nevedi. To neni jako napsat command lajnu. Command lajna je proti tomu uplny assembler a mozna ani to ne. Neznam nic lepsiho a rychlejsiho, co od 1995 vzniklo. Prapuvod COM je v OLE apod. Hezky se to pochopit v C++ treba od autora jmenem "Kruglinski". Nemluvim o Visual Basicu, tam je to primo nadhera. Ja se radim ktem, kteri chteji byt produktivni, uzivit programovanim sebe i rodinu a nezruinovat pri tom zakaznika. Nikdy nebyl SW tak levny, jako pod okny. Vim o cem mluvim, vidim co a za kolik delaji na jinych systemech. Proc se tedy na to nevrhnu taky? Ja jsem od tamtud odesel prave pro tu nizkou produktivitu a stale mi tam nic nelaka. Preji zdar Vasemu podnikani.

Souhlasím  |  Nesouhlasím  |  Odpovědět
David Pokluda  |  06. 08. 2002 11:13

Správně to je C sharp, tedy výslovnost by byla [sí šárp], odtud taky vyplývá pro příponu souboru .cs.

David Pokluda.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Stepan  |  06. 08. 2002 08:25

my "horsi" programatori v tom sice moc neudelame, ale o to vic budeme o tom mluvit...

Takze se tomu rika C hash, nebo jinak?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bukovansky Richard  |  06. 08. 2002 09:03

Temi horsimi programatory myslite koho? Kazdy v tom muze napsat svuj program (mimo vlastniho OS samozrejme, i kdyz by mozna i to slo). Pokud je znamo, tak projekt Mono (to je portace .NETu na Linux) ma kompilator C# udelany v C/C++ a jinak cely projekt uz pisi v C#... A vsichni si ho tam pochvaluji...

BTW Tady v company nam bezi nas novy web na .NET FW (C# + ASP.NET) a chrochtame si blahem...

Souhlasím  |  Nesouhlasím  |  Odpovědět
_  |  06. 08. 2002 16:34

Pred par dnami som sa na mono pozeral, takze som celkom v obraze:

Kompilator C# (mcs) je napisany v C#.

Virtualny pocitac je napisany v C a je specificky pre platformu. Zatial existuje pre x86-linux a powerpc-linux.

Kniznice .net frameworku su pisane v C#.

Souhlasím  |  Nesouhlasím  |  Odpovědět
mr.Crow  |  30. 12. 2007 21:16

V C# operační systém? huh, to radši ne...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zol  |  06. 08. 2002 17:10

Rika se tomu  "C sharp" a vyslovuje sa to  "Sé ša.p"

Souhlasím  |  Nesouhlasím  |  Odpovědět
x  |  14. 05. 2004 09:41

"sí šárp"

Souhlasím  |  Nesouhlasím  |  Odpovědět
tomik  |  06. 08. 2002 00:20

Co je to Java Runtime?

Co je to algoritmus Garbage Collection?

Co je to monetární operace?

Mám podezření, že ani jedno neexistuje.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Martin Falta  |  06. 08. 2002 07:24

Java Runtime je zapotřebí pro běh programů napsaných v jazyce Java. Dej si v adresáři s Windows vyhledat j*.* a najde ti to i několik souborů, které právě představují Java Runtime.

Garbage Collection je automatická správa paměti. Ve zkratce to znamená, že se programátor nemusí zabývat uvolňováním alokovaných objektů, protože běhové prostředí (runtime) se sám postará o to, aby již nepoužívaná, ale alokovaná, paměť byla uvolněna.

Souhlasím  |  Nesouhlasím  |  Odpovědět
tomik  |  06. 08. 2002 21:39

No jasně, teprve teď jsem si uvědomil, Sun vydal JRE a tudíž je termín Java Runtime oficální a správný, o "algoritmus Garbage Collection" si to nemyslím a "monetární operaci" si autor určitě vymyslel.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Stepan  |  06. 08. 2002 08:18

monetarni - penezni ($, Rubly atd.)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor