Skocz do zawartości

C++ czy C#?


Lord Marcelot

Rekomendowane odpowiedzi

Nie bierz się za C++ . Nie jest łatwe - dziedziczenie, poliforizm, funkcje wirtualne, pochodne klasy, wskaźniki. Jeśli chciałbyś to zrozumieć musiałbyś kupić jakąś wyczerpującą książkę :P , bo ja np. bez niej bym sobie nie poradził ;) . Ale to tylko moje zdanie.

 

Przerzutka z C# na C++ ? Czas zrozumienia składni C++ : 2 lata :S

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Ja mam takie:

http://helion.pl/ksiazki/cshpro.htm

http://helion.pl/ksiazki/cshnet.htm

http://helion.pl/ksiazki/cshre2.htm

http://helion.pl/ksiazki/cshtas.htm

 

"C# Programowanie" jest napisana fajnym, przystępnym językiem, ale wiele kwestii jest opisanych niezbyt wyczerpująco i to boli. "C# i .NET" jest znacznie lepszą pozycją, bo dużo rzeczy wyjaśnionych, fajne tabelki z opisami funkcji itd., jednak napisana trudniejszym językiem. Ciężki wybór. :) Weź lepiej jednak tę drugą. W ogóle polskie książki o C# to straszna bieda, bo nie dość że mało pozycji przetłumaczonych, to jeszcze te najnowsze i najlepsze nie są dostępne w naszym języku.

 

Poza tym pamiętaj, że C# jest wpełni obiektowym językiem i nie ma tutaj wolno leżących funkcji itd. Będzie ciężko, jeżeli z obiektowością nie miałeś do czynienia np. w innych językach programowania.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

A ja otwieram. Po co zamykasz temat, który nie został do końca wyczerpany? Może ktoś inny będzie chciał później coś zasugerować czy spytać się...

 

Chciałem jeszcze napisać, że fajne są książki wydawnictwa Wrox czy autorstwa Wesley'a, więc jak ktoś by był chętny na angielskie pdf'y i chm'y, to do mnie na pm. :] No i mam parę pozycji wydawnictwa O'Reilly, również "Programowanie C#" w angielskiej wersji (chm).

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm.. A który język polecacie na początek ? Ja próbowałem z c++, ale nie wyszło ;/

Jeśli napiszemy, że C++, to tym razem ci wyjdzie? :)

Czyżbyś Bixon nie miał własnego zdania i musiał polegać na słowach innych? :)

 

Może weź teraz C#, bo dla ciebie może on się okazać łatwiejszy, niż C++.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

C# jako dla początkującego programisty jest trudniejszy do zrozumienia od C/C++ z takiego powodu, jaki wcześniej wymieniłem - ten pierwszy jest wpełni obiektowy. Znasz obiektowość? Co to są klasy, obiekty itd.? Natomiast samo programowanie w C# jest znacznie łatwiejze i przyjemniejsze. Pamiętaj jeszcze, że do odpalania programów C# wymagany jest .NET Framework na komputerze (coś jak java) oraz że każdy może podejrzeć kod twojego programu. Antydekompilatory kosztują od 170$ w górę.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
ale to chyba C++ jest w pełni obiektowe, a nie C# smile2.gif ?

Mylisz się. W C# wszystkie typy danych są obiektami, włącznie z int, char itd., dodatkowo nie ma funkcji. Najprostszy program C# polega na utworzeniu klasy ze statyczną metodą main, a w C++ wystarczy zwykła funkcja main.

Odnośnik do komentarza
Udostępnij na innych stronach

Misztrzunio -> trochę nie zrozumiałeś tego co Ranmus napisał. Chodzi o to, że w C# "wszystko jest obiektem". w C++ masz obiekty, ale nie musisz z nich korzystać. Dla niektórych to zaleta, a niektórych wada. (C wcale nie ma obiektów)

 

[edit]Spóźniłem się ;p[/edit]

Odnośnik do komentarza
Udostępnij na innych stronach

Jak dla mnie lepsze jest rozwiązanie z C++ i D, gdzie nie wszystko jest obiektem, bo pomimo, że programowanie obiektowe jest wygodniejsze od strukturalnego, to i tak, nie każdy program wymaga od razu programowania obiektowego, najzupełniej wystarczy strukturalne w wielu przypadkach.

Odnośnik do komentarza
Udostępnij na innych stronach

To może zaczniemy od omówienia poszczególnych kandydatów:

 

C - dość stary twór, jednak całkiem sprawnie spełnia swoje funkcje. Jest językiem strukturalnym, a sama składania jest wygodna w użyciu, ale może prowadzić do wielu problemów przy nauce programowania (choćby możliwość popełnienia konstrukcji typu "if (a=1) {}", zabawy niebezpiecznymi wskaźnikami itd. itp.) Można oczywiście pisać w nim obiektowo (patrz GTK), ale język nie ma mechanizmów, które by w tym pomagały, więc generalnie nie jest to przyjemne. W tym momencie pisanie w C IMO ma sens tylko jeśli piszesz bibliotekę dla betonów, którzy używają C i nie maja zamiaru przesiąść się na C++ Jeśli masz zamiar pisać sterownik to w połączeniu z ASMem wybór idealny, do gier raczej odradzam :P

 

C++ - C++ jak sama nazwa wskazuje jest rozszerzoną wersją języka C Dodano obiektowość (i szablony), dzięki temu ma wszystkie wady i zalety poprzednika, jednocześnie dorzucając garść własnych plusów i minusów. Jest językiem obiektowym, co znacznie pomaga w pracy ze złożonymi projektami, jednak wiąże się z dodatkowymi komplikacjami w składni. Ponieważ jest tak właściwie rozszerzeniem C (poza drobnymi szczegółami), bez problemu można pisać w nim strukturalnie tak samo jak w zwykłym C nie korzystajac z mechanizmów obiektowych i w ogóle siuę nimi nie przejmując (co prawda ludzie programujący obiektowo w C++ nie nazwaliby tego programowaniem w C++). Jeśli tylko przyjdzie nam na to ochota, możemy zabrać się za obiektowość. Język ten może pochwalić się ogromną gamą przeróżnych bibliotek i rzeszą znających go koderów, więc można znaleźć coś dla siebie i jest kogo prosić o pomoc.

 

(nie programuję w C#, więc jak napisałem głupoty to proszę mnie poprawić)

C# - czy ktoś mógłby mi wyjaśnić co C# ma wspólnego z dwoma poprzednimi?! z tego co mi wiadomo C# jest językiem platformy .NET autorstwa M$, co zapewnia mu genialną wręcz przenośność między windowsem, a windowsem (ale tylko jeśli mają zainstalowany .NET framework, no niech będzie, można pisać jeszcze na xboxa) Dziecko M$ z C pożyczyło chyba tylko nazwę, bo z tego co kojarzę sam język jest bardziej podobny do Javy... co wcale nie oznacza, że nie jest wart zainteresowania, chodzi mi tylko o podkreślenie dramatyczniej różnicy między C# a C++

C# wymusza pisanie w obiektach, co przy braku zrozumienia jak działa obiektowość może łatwo doprowadzić do strukturalnego kodu spisanego za pomocą obiektów, co jest równie niewygodne jak obiektowe pisanie w C. natomiast z drugiej strony zmusza to w pewien sposób do nauki pisania obiektowego, które zdecydowanie się przyda, przy czymś sensowniejszym.

Jako język platformy .NET daje nam dostęp do biblioteki .NET, jednak nie wiem, jak ma się sprawa z bibliotekami do pisania gier (pewnie coś tam jednak jest, ale wątpię żeby oferta była porównywalna z bibliotekami dla C++)

M$ zapewnia porządny support dla swoich platform oferując MSDN i jakieś tutki, ale C# nie jest tak popularny jak C++ jeśli chodzi o pisanie gier (przynajmniej z tego co mi wiadomo)

 

Osobiście polecam C++, na początku strukturalnie - żeby nauczyć się podstaw programowania, a potem obiektowo (nie znam innego sposobu na zapanowanie nad większym projektem)

 

C# nie znam więc nie polacam, ale może warto przyjrzeć się propozycji M$

 

Za to niezależnie od wyboru polecam Visual Studio, które M$ zdecydował się udostępnić ZA DARMO na swojej stronie. Interface może na początku przytłaczać, ale jest to niewątpliwie najlepsze IDE dla programistów C++/C# w Windows.

http://msdn2.microsoft.com/en-us/express/default.aspx

Odnośnik do komentarza
Udostępnij na innych stronach

Ja polecam C++, aktualnie się go uczę, mam fajną książkę Grębosza, a mianowicie Symfonia C++ standard. Hmm.. nigdy nie używałem C# ale c++ ma prostą składnie, nawet bardzo więc nie wiem o co się rozchodzi ; p

 

Btw. może ci się przyda ta strona jak będziesz jeśli zdecydujesz się na c++ http://sasq.programuj.com/pl/Code/Intro/

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...