zoran123456 pon 6.6.2011 20:57

Kao da nekoga briga :-)

 

Pa svi znaju da je najbolji jezik za programiranje onaj koji ti donosi pare...

 

 

Inače, moj favorit je C#, a aplikacije su bome brze; super brze. Ili možda i nisu ? Whatever, kao da to krajnjeg korisnika briga ... :)

cekpi pon 6.6.2011 21:03
zoran123456 kaže...

Kao da nekoga briga :-)

 

Pa svi znaju da je najbolji jezik za programiranje onaj koji ti donosi pare...

 

 

Inače, moj favorit je C#, a aplikacije su bome brze; super brze. Ili možda i nisu ? Whatever, kao da to krajnjeg korisnika briga ... :)

 obično zbog takvih programera, krajnji korisnik doživljava frustracije te neopravdano za svoje frustracije krivi OS a ne tog istog programera

EnlightenedPhoenix pon 6.6.2011 21:26
zoran123456 kaže...

 

 

 

Inače, moj favorit je C#, a aplikacije su bome brze; super brze. Ili možda i nisu ? Whatever, kao da to krajnjeg korisnika briga ... :)

  Normalno da ga briga...

 

A bogme je i meni bitno koliki cluster moram imati da se nesto odvija pristojnom brzinom kod određenih aplikacija...

 

I onda se mi pitamo zasto su kodovi AAA naslova vecinom uberneoptimizirani... lol...

Profesor Jakov pon 6.6.2011 21:33

Što si bliže strojnom kodu imaš više kontrole i samim time performane su bolje ako znaš što radiš ali su problemi sve brojniji i kompleksniji.

Neznam što se čudite tome što su programi neoptimizirani, znanje i vrijeme košta, a svi bi htjeli što brže i lakše zaraditi. Cilj je što skuplje prodati što lošiji produkt, jer što je lošiji brže ga i jednostavnije radiš.

Kahless pon 6.6.2011 21:55

Neovisno o jeziku, ako se ne pazi na neke stvari, lako se može zaglaviti s performansnim problemima. Nisu svi jezici pogodni za sve primjene i arhitekti rješenja će birati jezik (i platformu) koja najbolje odgovara za pojedinu primjenu. Što se poslovnih aplikacija tiče, ovdje su Java i C# standard, dok će netko tko razvija igre prije odabrati C++ nego C# (XNA).

 

Inače, zanimljivo je da Chris Sawyer uglavnom razvija igre u x86 assembleru, s wrapperom za DirectX (u igrama koje su ga koristile). Eto, toliko od mene ;)

 

cober pon 6.6.2011 21:56

Google otkrio toplu vodu :(

Te iste rezultate im je mogao bez ikakvih mjerenja reci svaki prosjecni programer, zaista mi nije jasno sta su htjeli postici sa tim.

Sve se svodi na kraju sta se sa krajnjim proizvodom zeli postici i sa kojom razinom znanja, vremena i sredstava programer raspolaze.

Tonči pon 6.6.2011 21:58

Stvari nisu tako jednostavne. Radi se o razlikama u odnosu na uložen trud. Poanta je da te razlike imaju puno veću cijenu u razvoju. Sasvim je nelogično nešto optimizirati do maksimuma, ako to nije krajnje nužno. Ako se Java program vrti 5% sporije od C++ programa čiji razvoj traje 20% duže, tada je sasvim suludo razvijati program u C++ jeziku ako predviđena platforma nije jako ograničena snagom. Java, C# i slični jezici sasvim su dovoljna tehnologija za većinu aplikacija danas, a osim toga se vrte približno jednako kao i nativni kod (C# recimo nije interpretiran jezik kao PHP - iako i PHP ima kompajler - nego JIT jezik koji se na kraju kompajlira).

C++ je jezik koji sasvim nepotrebno omogućava razne hackove koji su rijetko nužni, a često potiču (i omogućavaju) loše navike i lošu praksu u kodiranju. Java i C# su jezici koji, umjesto na implementacijske i nebitne tehničke detalje, usmjeravaju programere na rješavanje problema, jer danas su kompajleri iznimno "pametni" i u većini slučajeva puno bolje optimiziraju kod nego što to ljudi mogu. Ako je nekome brzina kritična (igre npr.) i ako mu vrijeme i cijena razvoja nisu ključni, a platforme ograničene, tada će C++ svakako imati opravdanje.

 

We find that in regards to performance, C++ wins out by
a large margin. However, it also required the most extensive
tuning efforts, many of which were done at a level of sophistication
that would not be available to the average programmer.

DigiMagic pon 6.6.2011 22:17

Stvar perspektive... skoro isključivo radim u c++, pa kad sam nešto trebao napraviti u c#, većinu vremena sam trošio boreći se s njegovim implementacijskim i tehničkim detaljima, umjesto da sam rješavao problem. Ali istina, isplati se to više što je kritičnija brzina.

 

TracerCPP pon 6.6.2011 23:15
Tonči kaže...
...C++ je jezik koji sasvim nepotrebno omogućava razne hackove koji su rijetko nužni, a često potiču (i omogućavaju) loše navike i lošu praksu u kodiranju. Java i C# su jezici koji, umjesto na implementacijske i nebitne tehničke detalje, usmjeravaju programere na rješavanje problema, jer danas su kompajleri iznimno "pametni" i u većini slučajeva puno bolje optimiziraju kod nego što to ljudi mogu. Ako je nekome brzina kritična (igre npr.) i ako mu vrijeme i cijena razvoja nisu ključni, a platforme ograničene, tada će C++ svakako imati opravdanje.

 

Molim vas, nemojte pričati nebuloze i još to tako činjenično tvrditi. Imate pravo preferirati neki drugi programski jezik no to ne znači da bez-argumentirano možete popljuvati neki drugi. C++ svakako ne potiče nikakve loše navike i praksu, a ovo za nekakve hackove je totalno smješno {#}. Pa programeri koji su napravili javu su prvenstveno C++ programeri, dok je i .net nastao na istu sliku i priliku, ali po mom mišljenju ipak bolji od jave. 

 

I dan-danas koristim C++ u 99% ozbiljnih poslova na kojima radim. Uložio sam 1200 eura u C++ Builder i to baš iz razloga kojeg vi navodite kao nedostatak - vrijeme i cijena razvoja. Barem 90% aplikacija koje sam u C++ Builderu napravio trajalo bi višestruko duže za napraviti u .net-u, što zbog nedostatka komponenti, što zbog pisanja viška koda kojeg u C++ Builderu se ne mora pisati. A primjera je gomila, počevši od rada s bazama podataka do mrežnih klijent-server aplikacija. Neću niti spominjati razvoj komponenti, type biblioteki itd.. C++ je na loš glas došao isključivo zbog Microsofta i zato jer su zapustili MFC. No to ne znači da je C++ mrtav.

 

I iako sam veliki C++ fan i ne vidim se u .netu još jako dugo ipak početnicima preporučujem .net. Meni .net ne može ništa toliko spektakularno ponuditi da bih na njega prešao sa C++a jer u C++ Builderu mi je programiranje toliko brzo i jednostavno da sam jednostavno fasciniran, no za početnike će biti puno korisnije da rade na najnovijim tehnologijama.

hudo pon 6.6.2011 23:26
TracerCPP kaže...
 A primjera je gomila, počevši od rada s bazama podataka do mrežnih klijent-server aplikacija. 

e volio bi vidjeti kontretni primjer ovoga. Jer sam izgleda u zabludi zadnjih 7-8 godina, koliko trkeljam po c#, sto amaterski, sto profesionalno. Produktivnost u radu sa bazom, za recimo neke poslovne app, usporedba c# i c++. Recimo za web aplikacije.

Programko pon 6.6.2011 23:27

Zanimljive su ove usporedbe jezika, al meni nikad neće biti jasno zašto se ne uspoređuje naprimjer; brzina c++ koda generirana intelovim compilerom, g++ i microsoftovim.

 

I moje klijente uglavnom zanima da nešto radi i da im se isporuči software što prije, a sad dali se određena funkcionalnost izvršava  0.01 sec ili 10 sec nitko se nikad nije bunio. OK, postoje situacije kada stvari znaju potrajati, al onda traju bez obzira dali je u pitanju c++, C# ili Java i onda opet nije baš puno bitno jel nešto traje 30min ili 45min. Samo je bitno da se stroj ne bloka u potpunosti.

zoran123456 pon 6.6.2011 23:31
TracerCPP kaže...
Tonči kaže...
...C++ je jezik koji sasvim nepotrebno omogućava razne hackove koji su rijetko nužni, a često potiču (i omogućavaju) loše navike i lošu praksu u kodiranju. Java i C# su jezici koji, umjesto na implementacijske i nebitne tehničke detalje, usmjeravaju programere na rješavanje problema, jer danas su kompajleri iznimno "pametni" i u većini slučajeva puno bolje optimiziraju kod nego što to ljudi mogu. Ako je nekome brzina kritična (igre npr.) i ako mu vrijeme i cijena razvoja nisu ključni, a platforme ograničene, tada će C++ svakako imati opravdanje.

 

Molim vas, nemojte pričati nebuloze i još to tako činjenično tvrditi. Imate pravo preferirati neki drugi programski jezik no to ne znači da bez-argumentirano možete popljuvati neki drugi. C++ svakako ne potiče nikakve loše navike i praksu, a ovo za nekakve hackove je totalno smješno {#}. Pa programeri koji su napravili javu su prvenstveno C++ programeri, dok je i .net nastao na istu sliku i priliku, ali po mom mišljenju ipak bolji od jave.

 

I dan-danas koristim C++ u 99% ozbiljnih poslova na kojima radim. Uložio sam 1200 eura u C++ Builder i to baš iz razloga kojeg vi navodite kao nedostatak - vrijeme i cijena razvoja. Barem 90% aplikacija koje sam u C++ Builderu napravio trajalo bi višestruko duže za napraviti u .net-u, što zbog nedostatka komponenti, što zbog pisanja viška koda kojeg u C++ Builderu se ne mora pisati. A primjera je gomila, počevši od rada s bazama podataka do mrežnih klijent-server aplikacija. Neću niti spominjati razvoj komponenti, type biblioteki itd.. C++ je na loš glas došao isključivo zbog Microsofta i zato jer su zapustili MFC. No to ne znači da je C++ mrtav.

 

I iako sam veliki C++ fan i ne vidim se u .netu još jako dugo ipak početnicima preporučujem .net. Meni .net ne može ništa toliko spektakularno ponuditi da bih na njega prešao sa C++a jer u C++ Builderu mi je programiranje toliko brzo i jednostavno da sam jednostavno fasciniran. I napominjem, mogao sam npr. uzeti besplatni Sharpdevelop no ipak sam kupio C++ Builder. A to nisam napravio jer sam lud, već baš zato jer znam i vidim da to vrijedi.

 

smiriš si malo dojmove :-)

 

Ja programirao prvo u Delpihiju, a to ti je od *ISTE* firme od koje si kupio C++ Builder. Sve je identično, osim sintakse i programskog jezika. Komponente su iste. Nakon 8 godina (Delphi 2 - 7) prešao sam na Net Framework i C#. Nešto malo sam došao na Silverlight, pa se vratio. I bavim se njime proteklih 6 godina.

 

I moram reći, nikad nebih uzeo drugi alat od C#-a. Radim s besplatnim VWD Express alatom (besplatna verzija Visual Studia) koji je i u ovoj krnjoj verziji 3 puta bolji od bilo kakve konkurencije (besplatne i komercijalne).

 

Ali ... stvar je preferensije, mene recimo usrećuje veliki Net Framework objekat, managed klase, garbage collector, velike mogućnosti za ekstenzije, genijalna zajednica s rješenjima za apsolutno svaki problem, "dynamic" tipovi, linq (iako ga ne koristim previše), lambda izrazi ... ali možda najviše od svega jednostavna sintaksa (koja je ... pazi ovo, nastala jer su iz firme Borland [koja je napravila C++ Builder] u Microsoft prešli programeri. C# u sebi ima karakteristike i CPPa i Pascala)

 

Kad se samo sjetim da sam ne tako davno bavio se optimiziranjem koda u Assembleru i pazio na alociranje / dealociranje memorijskih blokova, pozivao *UŽASNE* Win32 API funkcije (tipa CreateWindowEx isl.), dođe mi mrak na oči. Radije ću to vrijeme iskoristiti za nešto produktivnije - kao što je npr. rješavanje specifične problematike softvera u vidu "Business Logic Layera" ( u koji ne spadaju samo "izračuni")

Friday pon 6.6.2011 23:32
TracerCPP kaže...
Tonči kaže...
...C++ je jezik koji sasvim nepotrebno omogućava razne hackove koji su rijetko nužni, a često potiču (i omogućavaju) loše navike i lošu praksu u kodiranju. Java i C# su jezici koji, umjesto na implementacijske i nebitne tehničke detalje, usmjeravaju programere na rješavanje problema, jer danas su kompajleri iznimno "pametni" i u većini slučajeva puno bolje optimiziraju kod nego što to ljudi mogu. Ako je nekome brzina kritična (igre npr.) i ako mu vrijeme i cijena razvoja nisu ključni, a platforme ograničene, tada će C++ svakako imati opravdanje.

 

I dan-danas koristim C++ u 99% ozbiljnih poslova na kojima radim. Uložio sam 1200 eura u C++ Builder i to baš iz razloga kojeg vi navodite kao nedostatak - vrijeme i cijena razvoja. Barem 90% aplikacija koje sam u C++ Builderu napravio trajalo bi višestruko duže za napraviti u .net-u, što zbog nedostatka komponenti, što zbog pisanja viška koda kojeg u C++ Builderu se ne mora pisati.

 

Volio bih da si dio mog tima i da radiš s nama da vidiš kako brzo se može nešto napraviti u C# u stvarno ozbiljnom i velikom projektu/ima. Imam osjećaj da nisi radio na većim projektima (2 i više godina po projektu) pa zato ovako olako treseš o brzini razvoja.

TracerCPP pon 6.6.2011 23:34
hudo kaže...
TracerCPP kaže...
 A primjera je gomila, počevši od rada s bazama podataka do mrežnih klijent-server aplikacija. 

e volio bi vidjeti kontretni primjer ovoga. Jer sam izgleda u zabludi zadnjih 7-8 godina, koliko trkeljam po c#, sto amaterski, sto profesionalno. Produktivnost u radu sa bazom, za recimo neke poslovne app, usporedba c# i c++. Recimo za web aplikacije.

Nisam to napisao da bih počinjao ikakve flame ratove. Svatko neka radi u čemu god želi. Ja samo kažem (npr. u slučaju baza podataka), da je svaki segment priče gotovo automatiziran. Od dataset-a, generiranja connection stringa i povezivanja s bazom podataka, prikaza podataka (gridovi, edit polja itd.), generiranje izvještaja itd BEZ ITI JEDNE LINIJE KODA. Znači, na programeru nije da se zamara tim stvarima već onom pravom problematikom programa.

mbaksa pon 6.6.2011 23:35
TracerCPP kaže...
I dan-danas koristim C++ u 99% ozbiljnih poslova na kojima radim. Uložio sam 1200 eura u C++ Builder i to baš iz razloga kojeg vi navodite kao nedostatak - vrijeme i cijena razvoja. Barem 90% aplikacija koje sam u C++ Builderu napravio trajalo bi višestruko duže za napraviti u .net-u, što zbog nedostatka komponenti, što zbog pisanja viška koda kojeg u C++ Builderu se ne mora pisati. A primjera je gomila, počevši od rada s bazama podataka do mrežnih klijent-server aplikacija. Neću niti spominjati razvoj komponenti, type biblioteki itd.. C++ je na loš glas došao isključivo zbog Microsofta i zato jer su zapustili MFC. No to ne znači da je C++ mrtav.

 

I iako sam veliki C++ fan i ne vidim se u .netu još jako dugo ipak početnicima preporučujem .net. Meni .net ne može ništa toliko spektakularno ponuditi da bih na njega prešao sa C++a jer u C++ Builderu mi je programiranje toliko brzo i jednostavno da sam jednostavno fasciniran, no za početnike će biti puno korisnije da rade na najnovijim tehnologijama.

Prije nego ovog preraste u (već viđeno na ovom forumu) prepucavanje, molim razlikovati programski jezik od korištenog frameworka ili frameworkova. Gogleovo istraživanje, a samim tim i Tončijev komentar, tiču se programskih jezika kao programskih jezika, bez ulaženja u to koja ili čija verzija neke razvojne okoline/kompajlera/interpretera ima bolji framework za razvijanje raznih (database i inih) aplikacija.

 

 

Ako je namjera raspravljati o frameworkovima i isplativnosti/iskoristivosti/lakoći korištenja istih, preporučam otvoriti novu temu i nastaviti raspravu na njoj.

TracerCPP pon 6.6.2011 23:42

Krivo ste me shvatili. Moja poanta nije omalovažavanje C#-a niti tvrdim da je on bolji od C++a. Ja sam kažem što je meni bolje, a ne da netko na osnovu hackova sudi jezik. Istina je da vjerojatno postoji i dosta projekata koji se brže rade u C#-u no za ono čime se ja bavim takve mi specifičnosti tih jezika ne trebaju. I opet kažem, .net preporučujem više od C++a onima koji ulaze u programiranje, no nekome poput meni još nije potreban.

Friday pon 6.6.2011 23:46
TracerCPP kaže...

Istina je da vjerojatno postoji i dosta projekata koji se brže rade u C#-u

 

Istina, vjerojatno ima i bržih auta od Golfa ali evo nije mi ni jedan sada u dnevnoj sobi pa ne mogu sa sigurnošću tvrditi...

Tonči pon 6.6.2011 23:48

TracerCPP, ne moraš mi persirati, možemo biti na ti na forumu, to je običaj.

 

Dakle, ne pljujem ja po C++ jeziku, daleko od toga, ali činjenica je da je C++ iznimno fleksibilan jezik i u toj fleksibilnosti omogućava ono što ja zovem hackom. Ne govorim o "hackerima", "hackovima za nešto" i slično, nego o rješenjima nekih problema koja su moguća u C++ jeziku, a nebi smjela biti po pravilima koja možemo nazvati "najboljom praksom". Ako si radio na kompleksnijim C++ programima (pravilnije softveru), sigurno si dolazio u situacije u kojima si svjesno i namjerno napisao "loš kod" koji radi, radi brzo, ali zaobilazi "sigurnosne mehanizme" i "dobru praksu". Takav način rada razlog je mnogim problemima s nadogradnjom softvera i njegovim eventualnim portanjem. Osim toga, od C++ programera se očekuje savršena koncentracija i savršena pažnja jer je vrlo lako čak i opreznom programeru napraviti bug.

Strongly-typed jezici znatno su sigurniji i s leđa programera uklanjaju nepotreban posao koji današnja okruženja odrađuju bolje od ljudi.

 

C++ Builder sam koristio jako davno, dok se još tako zvao i tada je zaista bio vrlo bogat kontrolama, ali to je samo IDE koji i dalje koristi C++ kao jezik sa svim prednostima i manama. C++ nije "došao na loš glas", a sigurno ne zbog Microsofta, već je polako istisnut Javom i C#-om, jezicima koji nude nešto što C++ nije. C# pogotovo kao jezik koji se razvija iz godine u godinu. .NET možda i nije najbogatija ili najkvalitetnija biblioteka, ali to nitko ni ne očekuje.

 

Ne slažem se da će u svim situacijama za početnike biti bolji neki moderniji jezik poput C#-a ili Jave, jer C++ nudi dobar put za učenje, iako opasan. Java i C# mogu stvoriti i programera koji neće biti spreman na opasnosti koje nudi C++ kad ga bude koristio. Mislim da je za učenje klasični C s prijelazom na C++ najbolje rješenje, a Java i još bolje C# (kao moderniji jezik) neka budu odabir za rad kada su za to prikladni.

 

S obzirom da toliko hvališ C++, volio bih vidjeti nekakav izazov u kojem bi ti razvio klasičnu LOB aplikaciju u C++ jeziku, a netko drugi istu u C#-u ili Javi. Naravno, s besplatnim alatima, a ne 1200 eura vrijednim paketom kontrola. Mislim da nemaš šanse pobijediti u vremenu, a da bi brzina tvoje aplikacije u odnosu na konkurentu bila beznačajna, ako uopće.

TracerCPP uto 7.6.2011 00:05

Programer koji svjesno zaobilazni sigurnosne mehanizme se i nije baš neki programer. No nije programski jezik kriv što netko koristi globalne varijable, naredbu goto ili reference kao povratne vrijednosti funkcija ako ne zna u kojim slučajevima se to radi {#}.

 

A što se tiče izazova, ja sam samo ovdje da kažem svoje mišljenje. Umoran sam od toga da bih ikome išta dokazivao. Ja imam jednu određenu rutinu po kojoj radim i koja mi daje zadovoljavajuće rezultate i ne trebaju mi besplatni alati niti nešto drugo da bih to dokazao. Ono što ja primarno radim su baze podataka i mreže i na tom području C++ i C++ Builder su mi idealni. Da je riječ o nekim drugim tipovima aplikacija već bih razmotrio i C# i ostale.

SupremeCommander uto 7.6.2011 00:15
cober kaže...

Google otkrio toplu vodu :(

Te iste rezultate im je mogao bez ikakvih mjerenja reci svaki prosjecni programer, zaista mi nije jasno sta su htjeli postici sa tim.

 Istina, ali s obzirom na komentare na ovu vijest, covjek se pita da li ovdje uopce ima programera, ili su svi ispodprosjecni.. {#}

Tonči uto 7.6.2011 00:43
zoran123456 kaže...

Kad se samo sjetim da sam ne tako davno bavio se optimiziranjem koda u Assembleru i pazio na alociranje / dealociranje memorijskih blokova, pozivao *UŽASNE* Win32 API funkcije (tipa CreateWindowEx isl.), dođe mi mrak na oči. Radije ću to vrijeme iskoristiti za nešto produktivnije - kao što je npr. rješavanje specifične problematike softvera u vidu "Business Logic Layera" ( u koji ne spadaju samo "izračuni")

To je onaj dio koji spominjem - jako veliki gubitak vremena na onome što stroj odrađuje bolje i brže. 

mbaksa kaže...

... molim razlikovati programski jezik od korištenog frameworka ili frameworkova. Gogleovo istraživanje, a samim tim i Tončijev komentar, tiču se programskih jezika kao programskih jezika, bez ulaženja u to koja ili čija verzija neke razvojne okoline/kompajlera/interpretera ima bolji framework za razvijanje raznih (database i inih) aplikacija.

Iako se slažem u potpunosti, važno je napomenuti da se JVM i .NET jezici vrte na istome i zato često imaju vrlo slične rezultate. 

TracerCPP kaže...

.net preporučujem više od C++a onima koji ulaze u programiranje.

Koji jezik u .NET-u i zašto? C# (kao najvažniji) ima kompleksniju i težu sintaksu od C plus plusa (delegati, lambde, LINQ, ekspresijska stabla, asinkrono kodiranje...). Čemu zatrpati neiskusnog konceptima koji mu u učenju osnova ne trebaju? C pa C++ je logičan slijed.

TracerCPP kaže...

Programer koji svjesno zaobilazni sigurnosne mehanizme se i nije baš neki programer. No nije programski jezik kriv što netko koristi globalne varijable, naredbu goto ili reference kao povratne vrijednosti funkcija ako ne zna u kojim slučajevima se to radi {#}.

 

A što se tiče izazova, ja sam samo ovdje da kažem svoje mišljenje. Umoran sam od toga da bih ikome išta dokazivao. Ja imam jednu određenu rutinu po kojoj radim i koja mi daje zadovoljavajuće rezultate i ne trebaju mi besplatni alati niti nešto drugo da bih to dokazao. Ono što ja primarno radim su baze podataka i mreže i na tom području C++ i C++ Builder su mi idealni. Da je riječ o nekim drugim tipovima aplikacija već bih razmotrio i C# i ostale.

Mislim da si rekao besmislicu. Ja volim istaknuti jednog programera, Johna Carmacka koji je, iako nije "najbolji na svijetu" i ima svojih gluposti (kako jedan frend voli reći), nesumnjivo ima(o) genijalna rješenja u svojim proizvodima, koja su bila prepuna zaobilaženja prakse, teorije i čak zdravog razuma - čisti hackovi. On je na taj način postizao ono što mu je trebalo i na tržištu uvijek imao vrhunske proizvode, koji su danas temelj mnoštvu drugih.

 

Previše se držiš grešaka iz početničkih knjiga/tutorijala kada spominješ "GOTO". Ozbiljan softver obiluje situacijama koje su nestandardne, nad kojima nemamo kontrolu i kada nam jezik poput C++ jezika više odmaže, nego pomaže.

TracerCPP uto 7.6.2011 01:03

Ovo me podsjeća na rasprave iz prošlosti a sebi sam obećao da ću biti dobar dečko i izbjegavati ovakve stvari pa... {#}.

 

Samo želim reći da C++ nije tako loš kao što se možda stvorio dojam nakon tvog komentara i da se i dalje razvijaju biblioteke i razvojna okruženja koja ovaj programski jezik čine dobrim izborom za razne tipove aplikacija bez obzira na postojanost jave, .neta i sl..

xvx uto 7.6.2011 02:53
Tonči kaže...
Dakle, ne pljujem ja po C++ jeziku, daleko od toga, ali činjenica je da je C++ iznimno fleksibilan jezik i u toj fleksibilnosti omogućava ono što ja zovem hackom. Ne govorim o

"hackerima", "hackovima za nešto" i slično, nego o rješenjima nekih problema koja su moguća u C++ jeziku, a nebi smjela biti po pravilima koja možemo nazvati "najboljom praksom". Ako si radio na kompleksnijim C++ programima (pravilnije softveru), sigurno si dolazio u situacije u kojima si svjesno i namjerno napisao "loš kod" koji radi, radi brzo, ali zaobilazi "sigurnosne mehanizme" i "dobru praksu". Takav način rada razlog je mnogim problemima s nadogradnjom softvera i njegovim eventualnim portanjem. Osim toga, od C++ programera se očekuje savršena koncentracija i savršena pažnja jer je vrlo lako čak i opreznom programeru napraviti bug.

Strongly-typed jezici znatno su sigurniji i s leđa programera uklanjaju nepotreban posao koji današnja okruženja odrađuju bolje od ljudi.

 

C++ uopće nije fleksifilan, čak štoviše vrlo je striktan. Strongly-typed jezici pod koje pretpostavljam podrazumijevaš C#, Javu,... su bitno manje "strongly typed" od C++-a, koji ne poznaje implicitnu konverziju tipova podataka osim ako mu programer svijesno ne naredi (casting). Fleksibilan je bio C, ali nipošto C++. Ok, C i C++ možeš koristiti u istom projektu, ali već nekoliko godina jednako tako možeš i C++ i C#.

Tonči kaže...
C# pogotovo kao jezik koji se razvija iz godine u godinu. .NET možda i nije najbogatija ili najkvalitetnija biblioteka, ali to nitko ni ne očekuje.

.NET je biblioteka koju mogu koristiti C++, C# i Visual Basic, prema tome nikako ne može biti argument o prednostima C# ili C++, mada je tu C++ u prednosti, jer istovremeno može koristiti i .NET i MFC i STL,..., a program može biti dijelomično nativan, a dijelomično "managed" (tipičan primjer je Visual Studio itself).
Tonči kaže...

Ne slažem se da će u svim situacijama za početnike biti bolji neki moderniji jezik poput C#-a ili Jave, jer C++ nudi dobar put za učenje, iako opasan. Java i C# mogu stvoriti i programera koji neće biti spreman na opasnosti koje nudi C++ kad ga bude koristio. Mislim da je za učenje klasični C s prijelazom na C++ najbolje rješenje, a Java i još bolje C# (kao moderniji jezik) neka budu odabir za rad kada su za to prikladni.


Potpuno pogrešno, C# i Java nisu ništa drugo nego pojednostavljena verzija C++-a. Upravo je nit vodilja pored portabilnosti kod razvoja Jave bila razvoj jednostavnijeg jezika za učenje, jer je razvoj projekta = obuka programera + razvoj. Obuka programera u C++-u je strašno duga i treba više od godinu dana za potpuno ovladavanje jezikom. Učiti pointere, template klasa,... i onda prijeći na jezik koji je gotovo isti samo što te dijelove nema i kod kojeg ne treba voditi računa o brisanju objekata, se meni baš ne čini razumno.

 

Tonči kaže...

S obzirom da toliko hvališ C++, volio bih vidjeti nekakav izazov u kojem bi ti razvio klasičnu LOB aplikaciju u C++ jeziku, a netko drugi istu u C#-u ili Javi. Naravno, s besplatnim alatima, a ne 1200 eura vrijednim paketom kontrola. Mislim da nemaš šanse pobijediti u vremenu, a da bi brzina tvoje aplikacije u odnosu na konkurentu bila beznačajna, ako uopće.

 

Izbor jezika ovisi o veličini i tipu projekta, potrebnim bibliotekama i sl. Apsolutno sve Microsoftove, Adobeove,.... standalone aplikacije i operativni sustavi su pisani u C++-u, gotovo niti jedna web aplikacija nije pisana u C++-u. Što se tiće veličine projekta, besmisleno je koristiti C++ za gui programčiće od par tisuća linija koda, kod vrlo velikih projekata, razvoj u C++ je zbog bolje modularnosti brži.

 

Ne postoji generalno brži jezik za razvoj. Da je to tako Microsoft bi svoje aplikacije pisao u C# ili bi sve database i web aplikacije bile pisane u C++-u.

Programko uto 7.6.2011 08:11

Moram stati malo na Tracerovu stranu, jer neke činjenice o c++ koje su gore navdene jednostavno nisu točne, ikako svakodnevno trošim C#.

Prvu stvar što sam primjetio; C++ podržava lambda izraze, nema delegate al ima function pointere, podržava asihrono programiranje,  ok ne podržava LINQ al npr. ima right value reference operator. Što mislim da C# ne bude imao tako brzo.

U Borlandu c++ se može bez večih problema napraviti GUI aplikacija s nekoliko tisuća linija koda, ništa nije teže nego u WinFormama.

MFC je živ i zdrav i još uvjek za njega postoji razvoj, a što mislite odakle officeu 2007 Ribbon bar.

Netko je spomenuo kako 1200 Eura za Borlan c++ puno i kako se u Visual studiu dobije bespatno puno više. Koliko ono košta VS 2010 Ultimate koliko, koliko ... Više nego moje auto.

C# je manje strongly typed od c++ WTF od kada to.

EDIT: E da tko kaže da je Trošenje C++ buildera za DB aplikacije bezveze, nema pojma o čemu govori.

tnakir uto 7.6.2011 09:05
Programko kaže...

Netko je spomenuo kako 1200 Eura za Borlan c++ puno i kako se u Visual studiu dobije bespatno puno više. Koliko ono košta VS 2010 Ultimate koliko, koliko ... Više nego moje auto.

 

Ultimate? Koliko vas radi u timu? Ultimate je vecini overkill. Sto ce nekakvom teamu od 10 ljudi ultimate verzija VS-a? {#} To je isto ko da na kasu u ducanu stavis Win 2008 Enterprise.