Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 29 odgovora
  • 9.937 pregleda

Najnovija ↓

Zasto C/C++?????????? 23.11.2003. u 20:36 · pre 279 meseci #1
Pozdrav svima.EVo tek sam nedavno saznao za ovaj forum i moram da kazem sve pohvale s moje strane.Zaista je nesto posebno i dobro smisljeno.
DA predem na pitanje?

Poceo sam da ucim C/C++, medutim prije toga sam imao kontakta sa Visual Basicom, sa DELPHI-jem. Sada sam u dilemi za koji jezik da se opredjelim. Vidim mnogi rade i u C/C++ i u VB itd.. pa ne znam tacno koji cu i ja da odaberem. Zamolio bih nekoga da mi kaze nesto o C/C++ i o tome da li je on bolji od ostalih i zasto itd.... Toliko hvala unaprijed
Potpis
Gama dual PowerMac G5
Re: Zasto C/C++?????????? 23.11.2003. u 20:44 · pre 279 meseci #2
Ono sto recimo meni prvo pada na pamet je ovo: VisualBASIC radi samo i iskljucivo ja jednom operativnom sistemu, dok C++ kompajleri postoje za operativne sisteme za koje mnogi od nas cak nisu ni culi... Slazem se da je VisualBASIC odlican jezik, u slucaju da je covek opredeljen SAMO za Windows.
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: Zasto C/C++?????????? 23.11.2003. u 20:49 · pre 279 meseci #3
Citat:
PowerMac:
C/C++ i o tome da li je on bolji od ostalih i zasto itd.... Toliko hvala unaprijed


Najpre: jezik C/C++ ne postoji. Postoji jezik C i postoji jezik C++.

Jedina i isključiva prednost C++-a nad ostalim jezicima (bilo objektne orijentacije ili neke druge) jeste u tome što zahvaljujući dizajnu može da se oslanja bez (skoro) ikakvih dorada na ogromnu biblioteku već napisanog koda.

Ova osobina je isključivo zaslužna za popularnost C++-a u odnosu na druge jezike koji su jednostavniji (Oberon), lakši za učenje (Modula-2), logičniji (LISP), standardizovaniji (Modula-3), moćniji (ADA), a koji su svi postojali u vreme kada je C++ nastajao, neki i godinama pre.

f
Re: Zasto C/C++?????????? 23.11.2003. u 21:18 · pre 279 meseci #4
Citat:
filmil:
Jedina i isključiva prednost C++-a nad ostalim jezicima (bilo objektne orijentacije ili neke druge) jeste u tome što zahvaljujući dizajnu može da se oslanja bez (skoro) ikakvih dorada na ogromnu biblioteku već napisanog koda.


Vidiš, moram reći da je strašno ovo što čujem. Glavna prednost C++-a code reuse, a kada Delphi programeri koriste hiljade i hiljade dostupnih komponenti, onda se to naziva lošom programerskom praksom, copy-paste programiranjem, itd.
Re: Zasto C/C++?????????? 23.11.2003. u 21:32 · pre 279 meseci #5
Code reuse nikad nije bila losa programerska praksa, objektno orjentisano programiranje je bas nastalo upravo zbog tog koncepta. Problem sa ovim je zapravo da vremenom programeri postaju najobicnija radna snaga, recimo kao zidari neki - samo spajaju blokove vec gotovog koda u jedan. Sto su ti blokovi bolje (profesionalnije) napisani to "programeri" imaju manje posla. A s' obzirom da sve te biblioteke sadrze gomilu stvari koje "programerima" zapravo nikad ne trebaju, onda aplikacija koja realno treba da bude 1 Mb naraste na 10 Mb (pa i vise). Ja se u prvom trenutku zgrozim kad vidim MFC ili JAVA aplikaciju koja ima par prozora i koja je 5-6 Mb velika, a onda malo sednem i razmislim ovako "bogamu, pa ljudi su na ovo utrosili par sati posla", tako da ... to je tipicni tradeoff. O ovome nema smisla raspravljati, ljudi ce koristiti sta god im padne pod ruke da bi sto pre zavrsili posao. Tako i treba.
Iz iskustva mogu reci samo jedno - jedino opensource aplikacije se optimizuju, jer narod ima vremena/volje da to radi, a i nema deadline koji moraju da ispostuju. Veeeeooooma su retki slucajevi kada firma placa i za optimizaciju, to se uglavnom desava onda kada aplikacija zaista stuca i ne moze da se radi sa njom vise. :) Srecni su oni koje firma placa da optimizuju kod. Blago njima, to je jedino sto mogu reci.
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: Zasto C/C++?????????? 23.11.2003. u 21:41 · pre 279 meseci #6
Ah, taj misticni code reuse :)

Mislim da je sansa za code reuse zavisi od toga sto radis. Ja licno nisam imao prilike da mnogo stvari ponovo koristim (naravno, ne racunam APIje, inhouse code (koji moze da bude u bilo kom jeziku) i STL koji je defakto deo jezika). Kao sto Gojko kaze, Delphi ima mnogo prakticniji code reuse - za super site-a mozes da skines gotove i mahom vizuelne komponente koje rade sve, a tako nesto nisam video za C/C++ (iz drugih razloga, ali da ne ulazimo u to).

Dakle, PowerMac, izbor jezika zavisi od onoga cime hoces da se bavis. Ako hoces da pises in-house programe za firme, onda izaberi VB ili C#. Ako ipak ocekujes da ces raditi komercijalne programe, onda je C++ bolji izbor. Ti najbolje znas koliko ti 'lezi' programiranje, i otprilike kakav posao mozes da ocekujes.
Re: Zasto C/C++?????????? 25.11.2003. u 17:29 · pre 279 meseci #9
Citat:
leka:
Ono sto recimo meni prvo pada na pamet je ovo: VisualBASIC radi samo i iskljucivo ja jednom operativnom sistemu, dok C++ kompajleri postoje za operativne sisteme za koje mnogi od nas cak nisu ni culi... Slazem se da je VisualBASIC odlican jezik, u slucaju da je covek opredeljen SAMO za Windows.


Leko, samo jedna primedbica: Visual Basic .NET radi i na LinuX-u i na još po nekim UNIXima uz korišćenje Ximian-ovog porta .NET-a (mono, jel). U mono-0.25/mono/arch postoje poddirektorijumi alpha, arm, ppc, s390, sparc i x86, pa zaključite gde može da radi mono :)

A što se tiče originalnog pitanja „zašto C/C++“... recimo da je definitivno za neko ozbiljnije komercijalno programiranje potrebno programirati u nekom objektno-orjentisanom jeziku. Postoje mnogi takvi (C++, Java, C#, Delphi, ADA, Modula-3, Visual Basic, pa čak i PHP). Sve zavisi šta u stvari programiraš. Ali od svih tih jezika, jedino C/C++ daje mogućnost pisanja koda na visokom i na niskom nivou u isto vreme (odnosno najlakše daje). C/C++ nema ograničenja koja uvode razni jezici (kao što na primer Java ne poseduje pokazivače nego samo reference). C/C++ kompajleri postoje za sve žive platforme, tako da uz malo pažnje pri pisanju programa i možda po koju predprocesorsku direktivu, skoro bilo koji C/C++ program može da se prevede i izvrši u bilo kom okruženju i sl. Moja preporuka je da svakako izabereš C/C++, a ako ti treba neka grafička biblioteka, najbolje bi bilo da uzmeš GTK-- ili Qt, pošto su one, za razliku od MFCa, portabilne.

E, da, za filmil-a: navedi mi jedan C++ kompajler koji nije u isto vreme i C kompajler? Slažem se da su C i C++ isti jezici, ali C++ je nadskup C-a i ne vidim u čemu je problem ako se kaže „C/C++“. Time se IMHO naglašava mogućnost korišćenja ne-objektno-orjentisanih komponenti u programu. A svaki C++ program ima barem jednu funkciju koja nije objektno-orjentisana (int main(int argc,char *argv[])), zar ne?
Potpis
... and the aliens sent an android down to earth, to slow down mankind's development
... and they named it Bill Gates.
Re: Zasto C/C++?????????? 25.11.2003. u 17:56 · pre 279 meseci #10
Citat:
brcha:
E, da, za filmil-a: navedi mi jedan C++ kompajler koji nije u isto vreme i C kompajler? Slažem se da su C i C++ isti jezici, ali C++ je nadskup C-a i ne vidim u čemu je problem ako se kaže „C/C++“.


Da ne bih odvlačio previše od teme, navešću samo jedan: SDCC (http://sdcc.sf.net), koliko da ilustrujem poentu koju mnogi zaboravljaju: računari != PC. Da, naravno u pitanju je kompajler za 8051 i ostale „nevažne“ procesore, jedino što je pitanje koliko su dotični procesori zaista „nevažni“.

Ne sme se zaboraviti da postoji čitav jedan mali svet sitnih računara na kojima C odlično „veze“ i da tu upravo leži njegova najveća snaga: C program možete da smestite u kutiju šibica, što se uostalom često radi u konvencionalnim industrijama: moderne mašine (npr. automobili) prosto vrve od mikrokontrolera, triput pogađaj koji se razvojni jezik najčešće koristi.

Što se drugog dela tiče, P(C)\backslash P(C++) \not= \empty, P(C++)\backslash P(C) \not= \empty, o čemu smo više puta dosad govorili. Ako ti ta sitnica ne smeta da nazivaš C++ nadskupom C-a i misliš da razliku čini kolekcija patoloških slučajeva koji nikoga ne zanimaju, onda ću se sa tobom složiti da si sasvim u pravu i možemo mirne duše nastaviti da se gađamo pojmovima.

Poenta teranja maka na konac je ova: bilo ko sa ulice može da nauči „približne“ ili „dovoljno dobre“ definicije pojmova, računarskih ili drugih. Svaki laik će danas znati da kaže poneku umereno informisanu rečenicu o računarima. Nadam se međutim, da s obzirom da ovaj forum osim laika okuplja i grupu ljudi koji se računarima ozbiljno bave, možemo dozvoliti sebi „luksuz“ da stvari tu i tamo kvalitetno i do kraja objašnjavamo. Onaj ko je isključivo zainteresovan za „približno“ znanje može to znanje pokupiti i na nekom drugom mestu.
Nikome niti mogu, niti hoću, niti želim da zabranim da govori kako god želi, ali ako je nešto činjenica, poput činjenice da jezik sa imenom C/C++ ne postoji, ne vidim razlog zbog kog se to ne bi smelo pomenuti u ime nekakve političke korektnosti.

Sa svoje strane trudim se da doprinesem egzaktnosti koliko mi dozvoljava poznavanje materije, ali me naravno uvek možete ućutkati ako mislite da davim. :) Mada još uvek verujem da bi to na kraju bilo na opštu štetu. Možda grešim.

f

Re: Zasto C/C++?????????? 25.11.2003. u 17:56 · pre 279 meseci #11
Najiskrenije, nisam ni znao da Ximian radi na VisualBASIC .NET podrsci. :) Ali sam zato upucen u to da su pre nekoliko godina PODRZALI GnomeBASIC projekat. Verovatno je to sad "unapredjeno" u (Mono) VB .NET .
Izvinjavam se i ispravicu ono sto sam rekao (VB .NET mi zapravo nije ni padao na pamet u onome sto sam rekao gore): VisualBASIC KOMPAJLER ne postoji za Linux (koji daje native Linux kod). Niti postoji, niti ce postojati u dogledno vreme gledajuci na Microsoft odnos prema GNU/Linux-u.
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: Zasto C/C++?????????? 25.11.2003. u 17:58 · pre 279 meseci #12
Sto se tice prica o C i C++ ... tu cu reci samo ovo (sa cime ce se verujem sloziti svi iskusniji C++ programeri): Daj Boze da se C++ sto pre KOMPLETNO odlepi od C-a, jer je ta veza ovom jeziku isto toliko "odmogla" koliko "pomogla".
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: Zasto C/C++?????????? 25.11.2003. u 18:57 · pre 279 meseci #13
OT: Bjarne Stroustrup je neko vreme pokušavao da "ujedini" ova dva jezika, ali se C komitet za standardizaciju baš i ne slaže. Oni žele da C ostane jednostavan i mali jezik, što C++ svakako nije.
Potpis
IOCC
Re: Zasto C/C++?????????? 25.11.2003. u 19:06 · pre 279 meseci #14
Citat:
brcha:
Slažem se da su C i C++ isti jezici, ...


Šta sam ja ovo napisao!!! Htedoh reći „slažem se da C i C++ nisu isti jezici, ...“, ali nema veze...

C/C++ ne postoji, ali htedoh reći da, barem ja, pod terminom „C/C++“ podrazumevam „C++ sa delovima koji nisu karakteristični za C++ nego dolaze iz C-a“.

A što se tiče odvajanja C-a i C++-a, ne bih rekao da je to neki dobitak, naprotiv. Odvojena je Java i odvojen je C#, a obzirom da im je ta odvojena sintaksa vrlo slična sintaksi C++-a, eto odvojenog C++-a od C-a.

Mikrokontroleri su fina stvar, ali većina komercijalnih aplikacija su ipak neke grafičke aplikacije za PC ili neke web aplikacije i slične gluposti (gluposti u smislu kompleknosti algoritama, jer recimo excell nema baš nešto mnogo jakih algoritama, samo ima puno puno relativno jednostavnog koda, za razliko od npr. wolfram-ove mathematica-e ili matlab-a).
Potpis
... and the aliens sent an android down to earth, to slow down mankind's development
... and they named it Bill Gates.
Re: Zasto C/C++?????????? 25.11.2003. u 20:44 · pre 279 meseci #15
Citat:
A svaki C++ program ima barem jednu funkciju koja nije objektno-orjentisana (int main(int argc,char *argv[])), zar ne?


A ja mislio svaki program pocinje sa WinMain ;-)
Re: Zasto C/C++?????????? 25.11.2003. u 22:27 · pre 279 meseci #16
Citat:
Mikrokontroleri su fina stvar, ali većina komercijalnih aplikacija su ipak neke grafičke aplikacije za PC ili neke web aplikacije i slične gluposti (gluposti u smislu kompleknosti algoritama, jer recimo excell nema baš nešto mnogo jakih algoritama, samo ima puno puno relativno jednostavnog koda, za razliko od npr. wolfram-ove mathematica-e ili matlab-a).


Hmm.. hm, pa ako se fixiras samo na PC industriju onda je to donekle tacno.. medjutim kompletna industrija potrosacke elektronike vrvi od raznoraznih mikrokontrolera, DSP-ova i sl.. koji koriste mahom C kod zacinjen sa asemblerom.

U pitanju su mnogo faktora, od same kompleksnosti kompajlera (najmanje bitno), preko performansi koda i mogucnosti za specijalne optimizacije za ciljani DSP/mikrokontroler i sl.. Drzanje jump tabela za virtuelne funkcije ili exception handling je nesto sto ne verujem da bi radilo na ultra-jeftinom hardveru :)

Stoga, ako nekom inzenjeru kazes da je C = C++ samo ce te cudno pogledati :) Vecina "pametnog" koda koji sam ja napisao je cist ANSI-C, bas zbog zahteva za portablinoscu na sisteme koji mozda nemaju C++ a i zbog performansi zbog prirode implementiranih funkcija... Sto se PC dela tice (GUI, na primer) mislim da je C mazohizam.


Da ne duzim, pritruzujem se "taboru" koji smatra da su C i C++ odvojeni. C++ program koji ima dosta "C-like" koda tj. sluzi se paradigmom C-a je nista drugo nego los C++ program.


Potpis
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Re: Zasto C/C++?????????? 25.11.2003. u 22:43 · pre 279 meseci #17
Citat:
Ivan Dimković:
C++ program koji ima dosta "C-like" koda tj. sluzi se paradigmom C-a je nista drugo nego los C++ program.


Evo i jedan intervju sa "tatom" B.S. od prošlog meseca..

...
A lot of people see C++ as C with a few bits and pieces added. They write code with a lot of arrays and pointers. They tend to use new the way they used malloc. Basically, the abstraction level is low. Writing C-style code is one way to get into C++, but it's not using C++ really well.
...
http://www.artima.com/intv/goldilocks.html
Potpis
Commercial-Free !!!
Re: Zasto C/C++?????????? 25.11.2003. u 23:15 · pre 279 meseci #18
Citat:
Da ne duzim, pritruzujem se "taboru" koji smatra da su C i C++ odvojeni. C++ program koji ima dosta "C-like" koda tj. sluzi se paradigmom C-a je nista drugo nego los C++ program.


Ja se pridruzujem taboru koji smatra da se mogu mesati dve stvari ("cilj opravdava sredstvo") u savrseno dobrom programu. Ne treba biti iskljuciv ni u vezi #define, ni u vezi aritmetike pointera, niti drugih C specijaliteta, ako ce to uspeti da ti projekat dovede do odgovarajuceg rezultata na vreme.

Moj poslednji projekat, mala graficka biblioteka koji radi na 3 totalno razlicite platforme (Win32, Symbian, Mophun) ima "big picture" u C++ kada su u pitanju subsystemi (drajveri) i jos neke stvari, sto mi je omogucilo da logicno organizujem moje module i postignem i code reuse i druge prednosti, ali svaki od tih modula ne bi bio gotov, ili bi radio traljavo da sam se svuda drzeo "skolskih C++ metoda", STL i slicno, samo sa ciljem da mogu da kazem "e, ovo je cist C++".
Re: Zasto C/C++?????????? 25.11.2003. u 23:27 · pre 279 meseci #19
Citat:
degojs:

Evo i jedan intervju sa "tatom" B.S. od prošlog meseca..

...
A lot of people see C++ as C with a few bits and pieces added. They write code with a lot of arrays and pointers. They tend to use new the way they used malloc. Basically, the abstraction level is low. Writing C-style code is one way to get into C++, but it's not using C++ really well.
...
http://www.artima.com/intv/goldilocks.html


Taj intervju bih dao svim C++ programerima kao obavezno štivo, a ne bi bilo loše i da se nabuba napamet :)

Uglavnom, B.S., upozorava na drugu vrstu ekstrema: "OO-filija":

Citat:
Bjarne Stroustrup:

Object-Orientaphilia
The other way people get into trouble is exactly the opposite. They believe that C++ should be an extremely high level language, and everything should be object-oriented. They believe that you should do everything by creating a class as part of a class hierarchy with lots of virtual functions. This is the kind of thinking that's reflected in a language like Java for instance, but a lot of things don't fit into class hierarchies. An integer shouldn't be part of a class hierarchy. It doesn't need to. It costs you to put it there. And it's very hard to do elegantly.


Poenta je da C++ nije ni C ni Java i da ne treba imitirati stilove koji su svojstveni ovim jezicima kada pravimo C++ programe.


Potpis
IOCC
Re: Zasto C/C++?????????? 26.11.2003. u 01:23 · pre 279 meseci #20
MA ..

kod programiranja nema nikakvih opredjeljenja dok je covjek u fazi upoznavanja i ucena suhog programiranja i Algoritma..

So mojne vishe ovih Izlizanih tema i pitanja nego se prihvati Ucenja-Vjezbanja...
Potpis
www.microsoft.ba
Microsoft gives you Windows... Linux gives you the whole house.
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme