Diskuze: Čo sa dá urobiť v jazyku C ??

C++ C a C++ Čo sa dá urobiť v jazyku C ??

Avatar
boxi
Člen
Avatar
boxi:

Začal som programovať a chcel by som sa opýtať aký je rozdiel medzi C a C++ čo sa dá programovať v Jazyku C a čo v C++ ??

Viem v C naprogramovať aj deskoptovú aplikáciu alebo iba *exe súbor v príkazovom riadku ??

 
Odpovědět 1.9.2014 14:51
Avatar
Odpovídá na boxi
Michal Štěpánek:

Když jsi "začal" programovat, nebylo by lepší začít rovnou dělat na .NET platformě, tzn. VB.NET nebo C#.NET?

Nahoru Odpovědět  -1 1.9.2014 14:54
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na boxi
Luboš Běhounek (Satik):

V obou jde naprogramovat cokoliv.
Ale pokud chceš programovat desktopové aplikace, tak by byl vhodnější C#, základ syntaxe je téměř stejný, takže by sis rychle zvykl a nemusíš řešit paměť, o kterou se za tebe postará GC.

Nahoru Odpovědět  +2 1.9.2014 15:05
:)
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na boxi
tomisoka:

Mezi C a C++ je hlavní rozdíl v tom, že C++ podporuje OOP a další vychytávky.
Jinak v C je možnost naprogramovat prakticky cokoli co jde v C++.
Pokud ale začínáš tak začni v Javě nebo v C#, protože C/C++ jsou celkem složité a můžeš jednoduše udělat chybu, které si ani nevšimneš.

 
Nahoru Odpovědět  +1 1.9.2014 15:06
Avatar
Odpovídá na boxi
Neaktivní uživatel:

C je nizkoúrovňový jazyk vhodný na špecifické úlohy (je v ňom jadro linuxu napr.) nie je objektovo orientovaný a nemá autmatickú správu pamäte. Z jeho syntaxe vychádza syntax veľa ďalších jazykov (Java, C#, Php...). V C sa dajú písať aj desktopové GUI applikácie ale nie je to zrovna ideálne. C++ je akési rozšírenie jazyka C. C++ plne podporuje objektovo orientované programovanie, taktiež nemá automatickú správu pamäte, je používaný na aplikácie, kde je potrebný vysoký výkon (prevažne hry). Je na tebe akým jazykom začneš, začni tým v čom ťa baví písať programy, keď sa raz naučíš princípy a myslieť ako programátor, tak prechod na iný jazyk nebude až taký problém. Ja osobne som začínal práve s C++ a neľutujem, pretože som sa naučil veľmi veľa užitočných vecí a pochopil som do hĺbky ako sa pracuje s pamäťou a pod. ver mi neskôr to oceníš aj keď väčšina tu bude písať, že to nie je pre začiatočníka vhodné, že gc sa o to postará a pritom nemajú najmenšiu šajnu ako GC a automatická správa pamäte pracuje a výsledkom sú aplikácie, ktoré sú pomalé a zalagované. Potom to schytá samotný jazyk a začnú sa šíriť fámy typu "Java je pomalá".

Editováno 1.9.2014 15:21
Nahoru Odpovědět  +4 1.9.2014 15:17
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Luboš Běhounek (Satik):

Zase na druhou stranu někdy je lepší mít pomalý zalagovaný program než program, který díky memory leakům sežere tunu paměti nebo který náhodně padá na Access Violation :D

Pro někoho je vhodnější naučit se základy C# / Javy a pak se teprve učit, jak to funguje pod kapotou (memory management/wi­napi/IL/asm) a pro někoho zase začít C++ a k tomu se učit spoustu dalších věcí najednou, tohle záleží na dotyčném a dala by se vést dlouhá diskuze, zda je vhodnější to či ono :) .

Nahoru Odpovědět 2.9.2014 9:54
:)
Avatar
Odpovídá na Luboš Běhounek (Satik)
Neaktivní uživatel:

Práve preto si myslím, že každý programátor by mal vedieť čo sa deje "pod kapotou". Samozrejme, pri nejakých mini konzolových programoch to je úplne jedno, ale akonáhle sa tým bude chcieť živiť a pracovať ako programátor, tak to bude potrebovať.

Nahoru Odpovědět  +1 2.9.2014 11:10
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Luboš Běhounek (Satik):

Ať se ti to líbí nebo ne, na junior pozicích se bez toho úplně v klidu obejdeš, pokud to nebude nějaký projekt, kde bude výkon tím nejdůležitějším kritériem (třeba nějaký server obsluhující tisíce/desetitisíce klientů zároveň).

Na běžných (občas i větších) projektech se tyhle věci řeší až když je něco viditelně pomalé nebo to žere viditelně hodně paměti.

I někteří pokročilejší programátoři (bavím se teď celou dobu jen o programátorech, co se programováním živí) jen tuší, jak to uvnitř funguje a celkem jim to stačí, i když souhlasím, že je lepší znát i to pozadí - pak teprve člověk opravdu ví, co se v jeho programu děje.

Nahoru Odpovědět 2.9.2014 11:24
:)
Avatar
Odpovídá na Luboš Běhounek (Satik)
Neaktivní uživatel:

Je to vec každého programátora, ale nemalo by sa zabúdať na jednu vec, "we are authors!" a musíme rátať s tým, že náš kód bude čítať, prípadne editovať nejaký iný programátor. To čo niekto naprogramuje je jeho vizitka. Ja osobne sa snažím vždy robiť všetko dôkladne a chcem aby môj kód bol nielen funkčný, ale aj prehľadný a čitateľný, je to časovo náročnejšie ale ten čas za ten "refractoring" sa ti vráti. Je to každého osobná vec, ale venovať pozornosť detailom a robiť množstvo malých vecí, ktoré druhí nerobia sa vypláca v živote aj v porgramovaní.

Nahoru Odpovědět  +1 2.9.2014 12:05
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Luboš Běhounek (Satik):

S tím souhlasím, ale teď tu mluvíš o něčem jiném, znám programátory, kteří vědí, jak to funguje pod kapotou, ale píšou celkem hrozný kód a stejně tak znám programátory, kteří netuší, jak to funguje pod kapotou a jejich kód je rychlý, čte se dobře a je lehce refaktorovatelný.

Čitelnost a přehlednost kódu je něco úplně jiného, než když víš, jak to funguje uvnitř - taky nemusíš vědět, jak fungují tranzistory, aby jsi mohl být programátor :)

Nahoru Odpovědět 2.9.2014 12:31
:)
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

Ve zkratce- Céčko je rychlejší (asi i než cpp), dá se s nim sáhnout až na systém (to např. přes javu jde blbě), C++ je "nadstavba" Céčka (v podstatě se v něm dá použít i C zápis), oproti C je objektový :)

Nahoru Odpovědět 2.9.2014 19:41
Unix- svět, kde chcete být nulou :) (UID)
Avatar
vitamin
Člen
Avatar
vitamin:

Jerry to popisal celkom dobre ale C nema toho viac ako OOP, neobsahuje genericke porogramovanie (#generic nestaci :) ), neobsahuje vynimky, RAII... Neobsahuje viac menej ziadnu vysokourovnovu abstrakciu. Casto sa pouziva ako portable assambler. C ma velmi jednoduche ABI a preto velka vecsina vysokourovnovych jazykov umoznuje volat C funkcie. C nema nic ako overloading funkcii, templaty, namespace, metody... takze ak mame funkciu z menom 'fnc', tak vo vyslednej binarke sa bude volat 'fnc'. Vo vysokourovnovych jazykoch je nazov funkcie skomoleny name manglingom. Jazyk C je velmi jednoduchy oproti C++, C#, Java, neznamena to ale ze sa v nom pise jednodoucho :)
Doporucujem naucit sa C aj ked v nom neplanujes programovat vecsie veci.

 
Nahoru Odpovědět 5.9.2014 7:50
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.

Zobrazeno 12 zpráv z 12.