"Visual C#" NIJE programski jezik, već prevoditelj za pr. jezik C#. Taj prevoditelj je moguće pokrenuti zasebno ili kroz neki IDE (#develop, VS, VC# Express).
C i C++ nisu ograničeni na konzolne/GUI aplikacije, koristeći određene biblioteke i kroz jedan i kroz drugi moguće je stvoriti "forme".
C# nije drag'n'drop jezik (ustvari takav ne postoji jer ne bi bio jezik), ali IDE koji je najčešće korišten za izradu programa tim jezikom nudi dizajner formi koji olakšava izradu istih. To nije "mogućnost" C# jezika, već IDE-a.
Windowsi NISU pisani u C++u, u C++u su pisane samo aplikacije kojima se služe korisnici OS-a (npr Notepad). Jezgra sustava je pisana u nekom nižem jeziku, kao što je Assembler.
Autoru teme - moja preporuka je da naučiš C++, jednostavno zato što je i danas vrlo često korišten, i zato što kad njega shvatiš nećeš imati velikih problema pri prelasku na npr. C# ili Javu
Windowsi NISU pisani u C++u, u C++u su pisane samo aplikacije kojima se služe korisnici OS-a (npr Notepad). Jezgra sustava je pisana u nekom nižem jeziku, kao što je Assembler.
Veci dio win OS-a je pisan u C-u, samo bitne kernel funkcije su prepisane u asembler zbog brzine.
Joel Spolsky je to nedavno dobro definirao; znati C/C++ je kao znati voziti auto na manualni mijenjač (on je iz amerike jelte)! Original: And so studying C, for example, is like learning how to drive a stick shift car!
Vec su nekoliko puta Jeff Aftwood i Joel Sposky spomenuli to u svom Stackoverflow.com podcastu, posto Jeff trenutno programira njihov sajt u C# i nikada nije radio u C/C++, a Joel tvrdi da treba poznavat rad u c/c++ i da on prilikom zaposljavanja (ima dev firmu, rade sw Fogbugz) gleda na to.
evo cijeli text:
http://www.codingthewheel.com/archives/learning-to-drive-a-stick-shift
govori bas o tome da bi programeri visih jezika (java,c#,ruby,...) trebali barem upoznati rad sa C/C++ i stvarima kao sto su pointeri, stack/heap,... , jer ih to cini boljim programerima uopce. Slazem se sa time.
Vec nekih tjedan-dva vlada buzz o tome u .net zajednici. Fora je vidjeti da i bug-ov forum prati taj trend!
vani se dosta traže ljude i sa znanjem skrpitnih jezika(Perla, pytjona i ruby-a).
Ako to kreneš učiti zato što se traži, vrlo brzo ćeš se ispuhati. Usvajaj znanja iz područja koje te zanima; odabir jezika je sporedna stvar i odluka koju ti kao početnik ionako nećeš donositi bez obzira što si "usvojio".
Jezik je samo alat. Ništa više, ništa manje. (iako ako programske jezike promatramo sa znanstvere strane i razvojnog kuta, postaje umjetnost:P)
Računaj da svi .Net jezici (Visual Basic nakon verzije 6.0, C# od začeča, itd) realno rade samo na Windowsima, a da Windowsi nisu jedina platforma -- a pogotovo, više nisu jedina ozbiljna platforma. Ja sam osobno na C++u, ne bih preporučio to početniku koji se čudi tome zašto neki jezik nema drag and drop crtanje GUIja. Python je zgodan jezik, no ista stvar -- nije za drag and drop programere ("prikladan" naziv za dotnetaše). Moja osobna preporuka je krenuti s Visual Basicom 6.0 (dakle, ne s VB.Net, ne s VB2003, ne s VB2005, ne s VB2008). VB6 je dovoljno blizu pravom programiranju.
Zatim probati raditi s QBasicom, dakle implementirati neke gadnije stvari (tipa nekakav osnovni GUI) na relativno jednostavnom, ali za današnje pojmove ipak low-levelu.
Zatim krenuti s C-om rješavajući jednostavne tekstualne zadatke.
Python je jako lijep skriptni jezik i valja i njega probati.
S C++om se ne isplati previše GUI raditi. Ali s wxWidgetsima i nije toliko teško, provided that you've napraviti ovo što ja wrote iznad.
Enđojajte.
Računaj da svi .Net jezici (Visual Basic nakon verzije 6.0, C# od začeča, itd) realno rade samo na Windowsima, a da Windowsi nisu jedina platforma -- a pogotovo, više nisu jedina ozbiljna platforma. Ja sam osobno na C++u, ne bih preporučio to početniku koji se čudi tome zašto neki jezik nema drag and drop crtanje GUIja. Python je zgodan jezik, no ista stvar -- nije za drag and drop programere ("prikladan" naziv za dotnetaše). Moja osobna preporuka je krenuti s Visual Basicom 6.0 (dakle, ne s VB.Net, ne s VB2003, ne s VB2005, ne s VB2008). VB6 je dovoljno blizu pravom programiranju.
Zatim probati raditi s QBasicom, dakle implementirati neke gadnije stvari (tipa nekakav osnovni GUI) na relativno jednostavnom, ali za današnje pojmove ipak low-levelu.
Zatim krenuti s C-om rješavajući jednostavne tekstualne zadatke.
Python je jako lijep skriptni jezik i valja i njega probati.
S C++om se ne isplati previše GUI raditi. Ali s wxWidgetsima i nije toliko teško, provided that you've napraviti ovo što ja wrote iznad.
Enđojajte.
Svaki programski jezik se isplati ako u njemu znaš raditi i ako je on u mogućnosti napraviti sve ono što ti treba. Ja koristim C++ već godinama i nemam ga namjeru još dugo mijenjati jer jednostavno nema tehnologije koja toliko odskače od njega. No da sam početnik i da mogu birati to svakako ne bi bio C++ jer bi tražio nešto jednostavnije i tehnološki novije, a to je danas .NET.
Prvo nauči bilo koji jezik i nauči ga jako dobro. Kad postaneš svjestan da je programiranje puno više od poznvanja c/c++, C#, delphi ovo ono, znat ćeš koji je najbolji alat za posao i što je to programerska agilnost. Jer dok naučiš kao početnik jako dobro programirati u nekom jeziku, doči će novi jezici i novi frameworkovima. Tj trendovi će se promjeniti.
Sad ću malo manje filozofirati... Ako očeš biti dobar u high level WIN programiranju nauči C#. Ako očeš biti dobar u low lewel programiranju nauči c/c++ i barem osnove assamblera da bolje razumješ kako neke stvari rade u pozadini. Ako hočeš biti programerski guru morat ćeš učiti sva tri skupa s još nekoliko tehnika/tegnologija idučih 10 godina.


@ivucica
koliko sam vidio na tvojoj stranici na linku za usporedbu jezika po broju linija, java je na prvom mjestu.
ti se smiješ iz jave, ali java je najkorištenija, a java programeri najviše plačeni uz C++ programere.
Marko, piše se "plaćeni" s mekim ć :)
Nek' su oni plaćeni koliko god žele, samo daleko od mene :)
Sad ozbiljno: vidio sam da ljudi čuda rade s Javom, i neka, svaka čast. Ali nikad se nisam uspio uživiti u taj mentalitet. Nažalost očito nisam uspio prenijeti samo svoje gađenje u odnosu na Javu, a istovremeno zadržati poštovanje prema ljudima koji je trpe i koji je znaju i koji s njom znaju napraviti čuda. (Ferovci će, primjerice, prepoznati inicijale MČ)
Sad ću ovako reći: Mene C/++, Python, SDL, GL, Ogre dobro služe u izradi igara i tog se držim. PHPa se hvatam kad treba weba delat, al' muka mi je od njega :)
I još ću jednu pametnu reć, kad sam već počeo govoriti o svojim stajalištima nevezano uz savjetovanje najisplativijeg jezika: ovo je moj ukus. Naravno da o racionalnosti mojeg ukusa možemo raspravljati i raspravljati. Naravno da sam vidio čudesa izrađena u ASP.Netu, naravno da sam vidio čudesa izrađena u Javi, itd. Ali vidio sam i čudesa izrađena u Brainf*cku pa mi ipak nije jezik za išta drugo nego potapšati čovjeka po ramenu i reći "dobar peso" :)
Jezik koji mi se čini interesantan, ali pre-drukčiji i pre-netutorializiran da bih imao vremena baciti se na njega je Erlang.
Da nastavim nabrajati ukuse? :)
naravno u pravu si.
ja radim u C# i počeo sam učiti C++, za Gui sam uzeo QT.
probao sam perl, python, php, javu.
perl i python su dosta dobri, ima dosta dodatnih modula, mana-> ne postoji kvalitetan IDE za izradu GUI-a.postoje za navedene jezike, WX,GTK itd...
ali sve treba ručno pisati.nekim dijelom bi to bila prednost da se ima vremena ručno radit GUI.
php mi se nekako gadi.
i sad java.prije nego sam počeo učiti C++, nekoliko puta sam se vračao na javu i na kraju od jave odustao.
razlog je taj što mi ne paše.
i sad sam se ustabilio na C# i C++/QT-u.
naravno u pravu si.
ja radim u C# i počeo sam učiti C++, za Gui sam uzeo QT.
probao sam perl, python, php, javu.
perl i python su dosta dobri, ima dosta dodatnih modula, mana-> ne postoji kvalitetan IDE za izradu GUI-a.postoje za navedene jezike, WX,GTK itd...
ali sve treba ručno pisati.nekim dijelom bi to bila prednost da se ima vremena ručno radit GUI.
php mi se nekako gadi.
i sad java.prije nego sam počeo učiti C++, nekoliko puta sam se vračao na javu i na kraju od jave odustao.
razlog je taj što mi ne paše.
i sad sam se ustabilio na C# i C++/QT-u.
obrisano.
Može li se u Visual c++ express edition 2008 raditi MFC sa form designerom. Postoji li uopće form designer za MFC?
Može li se u Visual c++ express edition 2008 raditi MFC sa form designerom. Postoji li uopće form designer za MFC?
Koliko me sjećanje služi u Express izdanjima MFC- nije podržan..bar u 2005 Express Edition...neka me isprave ako griješim.
E to me muči. Ako bi uspio nabaviti visual c++ (ne express) dali bi onda mogao osim korištenja MFC klasa i sve to još dizajnirati pomoću form designera.
Mogao bi, ali MFC je toliko zastario da ga se više niti ne isplati učiti. Radije uči C#. I tamo imaš form designer.
Gledaj ako hočeš kad nabaviš VS punokrvni s MFC klasama možeš raditi prozore ali imaš Windows Forms C++/CLI managed
u VS-u gdje se lijepo daju Forme programirati .Ako baš hočeš C++.Tad malo bolje prouči CLI unutar .NET platforme i tamo
imaš i Windows Forme.A to imaš i u Express izdanju....Slika..
Ma joj, glavni razlog dileme koju sad imam između .NET i običnog "native" programiranja je upravo DirectX API. Naime, strašno me zanima 3d grafika, tolko da svoje slobodno vrijeme trošim (osim na c++) na proučavanje matrica, linearne algebre itd... ("dot product" & "cross product" i slične stvari) i sve je to meni zanimljivo a da ne govorimo da bi to volio raditi jednog dana kao profesionalac.
S druge strane .NET framework je divna tehnologija (koliko sam ju uspio upoznati) i svi ju hvale na sve strane (čini se opravdano), ali što meni .NET nudi za područje koje me zanima ( 3d & 2d grafika).
Nudi mi XNA. Ha, još jedan komad hvale vrijednog softvera, ali ono što me živcira je to što pored njega gotovo uvijek piše slogan tipa "For amateurs students, and beginners" ili "Make great games and show them to your family or friends" u kur..c i familija i frends. Ja se mislim ozbiljno grafikom. Naprimjer ako se jednog dana nakon što završim srednju i faks odlučim zaposliti u tvrci koja se bavi time, ili sa frendovima odlucim neku svoju tvrtku osnovati, rečenica: "znam raditi igre u XNA" zvuči slično kao i: "znam napraviti packmana u 2d game builderu". Znam da je to neusporedivo, ali pa mislim, XNA u profesionalnoj primjeni. Nekako ne zvuči dobro. Sumljam da Microsoft razvija taj projekt u tom smjeu. Ja smatram da je glavni razlog tome upravo Common Language Infrastructure. Zamislite jedan grafički zahtjevan program poput igre GTA 4 napravljen u .NET okruženju.
Koji bi samo procesor bio potreban da se takava igra prvo prevede u mašinski kod i tek onda izvodi i sve to u normalnoj brzini (bez zastoja tjekom izvođenja programa ili štekanja). To mi sve nekako djeluje nemoguće.
Zato mislim da je DirectX API pravi za mene ali opet nemogu s njim ništa ako se služim CLR jezicima.
Još sam novi u ovim vodama pa se ispričavam unaprijed ako sam iznio nekakvu provalu. Tako da me nemojte odmah optužiti da širim dezinformacije, ali ovdje gore su navedena moja mišljena i stajališta koja mi uzrokuju tu neodlučnost.
Hmm, gle, DirectX 10 u C#-u (.NET) i C++u se vrti više-manje podjednako, a ponekad je i .NET i brži. Developeri ga još ne vole dovoljno jer je malo jogunast s nekim stvarima (pitaj manic moderatoricu op.a.).
Što se same grafike i budućnosti tiče, sve se čini da će softverski rendereri ubrzo nazad u upotrebu na x86 arhitekturi s hrpama jezgara (Larabee), a tome u prilog govori i ubrzani razvoj programibilnih shadera i raytracing-a kao tehnologije što sve manje i manje veze ima sa samim specifičnostima pojedinih kartica ili API-a poput DirectX-a. Naravno da ti je upotrebljivost određenog API-a u ovisnosti s poznavanjem istog, ali u puno manjoj mjeri nego je slučaj bio sa fixed-function-pipelineom.
Svakako ćeš, ako se ozbiljno time želiš baviti, naučiti programirati tako dobro da ti je jezik sasvim nebitan. Onaj tko zna programirati s grafikom, tome je sasvim svejedno radi li u C++u, C#u, Javi ili nekom drugom jeziku ili API-ju - pitanje je više političke odluke, a samu grafiku za učenje radi u onome u čemu želiš i u čemu ti je najjednostavnije (npr. XNA).
Ma joj, glavni razlog dileme koju sad imam između .NET i običnog "native" programiranja je upravo DirectX API. Naime, strašno me zanima 3d grafika, tolko da svoje slobodno vrijeme trošim (osim na c++) na proučavanje matrica, linearne algebre itd... ("dot product" & "cross product" i slične stvari) i sve je to meni zanimljivo a da ne govorimo da bi to volio raditi jednog dana kao profesionalac.
S druge strane .NET framework je divna tehnologija (koliko sam ju uspio upoznati) i svi ju hvale na sve strane (čini se opravdano), ali što meni .NET nudi za područje koje me zanima ( 3d & 2d grafika).
....
Moram demantirati ovih "managed -> 7% sporije" barem što se tiče preciznosti izražavanja, jer po svemu što sam probao to nije tako. Meni su se svi pokušaji pokazali jednako brzima. Čak imaš i tech demoe u SDK-u DirectX-a koji su jednako brzi kao i C++ verzije.
Mislim na C# vs C++ DirectX, a XNA je možda sporiji (ne znam zašto, možda više wrappera ima npr.).
Ja sam to povukao sa ove stranice, moj početni izvor za programiranje za igrice. Stranica je jedna od kvalitetnijih takve vrste (za početnike, bar koju sam ja našao). Većina onoga dok sam se krenuo igrati sa grafikom sam pobrao na toj stranici. Za vjerodostojnost podataka ne jamčim. Inače direktni link na gdje sam to pročitao(kopirao na forum).
Ne kažem da nije točno to što tamo piše, već samo da je moje iskustvo drugačije. Nisam razvio cijelu igru u C#-u pa da znam precizno, ali sam se igrao s raznim sitnicama i testirao.
Ne pitaj šta programski jezik može učiniti za tebe, nego šta ti možeš učiniti s njim!
Iako postoje razlike između programskih jezika, najviše toga ovisi od samog programera. Smeće možeš praviti i u C, C++, C#, Python, Basicu(iako ovaj jezik dosta pomaže u pravljenju smeća). Od tebe ovisi da li će to što napraviš biti smeće ili ne.
Ja osobno programiram u Pascal-u(FreePascal i Lazarus IDE, konkretnije), to je možda utjecano time što sam svoje prve ozbiljne programerske korake obavljao u Turbo Pascal. Preporučio bih ti FreePascal, open-source compiler za Pascal koji je kompatibilan sa Delphi-em, ali imam osjećaj da ćeš se utopiti u moru C derivata i da ću radi ovoga dobiti vatre od C zajednice, tako da nije važno.
Važno je samo da imaš na umu, da bez obzira koji jezik odabrao o tebi najviše ovisi koliko dobri i uspješni tvoji programi će biti, a ne o jeziku samom.