C, C++, C# - który? [zamknięte]

Do tej pory raczej nie zajmowałem się programowaniem desktopowym - poza Turbo Pascalem, ale to już chyba martwy język. Chciałem się nauczyć któregoś z języków "C", ale spotkałem się z 3 wersjami. Czy są między nimi duże różnice? Za który najlepiej się zabrać?

EDIT: jak ktoś słusznie zauważył bardzo podobne pytanie już było: Link

Powód zamknięcia: Duplikat pytania

  • Różnice są bardzo duże. Nauczyć się warto każdego, ale z różnych powodów:

    C. Język bardzo niskopoziomowy - tzn. pozwala na pisanie "blisko" sprzętu. Do programisty należy alokacja pamięci i jej zwalnianie, mamy dostęp do wskaźników (ich zrozumienie to IMHO jedna z fundamentalnych umiejętności) i to o nie opiera się większość mechanizmów C. Kolejki, tablice wielowymiarowe - w C można zrozumieć, jak te struktury naprawdę działają i jakie są ich wady i zalety. Programy wynikowe są małe i szybkie, a w C można pisać właściwie na każdy komputer (nawet 8-bitowe Atari ;). Co nie znaczy, że program napisany w C na jednym systemie bez problemów uruchomi się na drugim - jest to wada wynikająca z owej niskopoziomowości.

    C++. Wiele osób traktuje go jako obiektowe C, ale C++ to coś więcej. Szablony, wyjątki, przestrzenie nazwa, przeciążanie operatorów i funkcji - C++ jest naprawdę rozbudowanym no i trudnym językiem. Jeśli potrzeba szybkości C przy napisaniu czegoś rozbudowanego, wybiera się wówczas C++. Nie wiem jednak, czy to dobry język na początek - początkujący może się zniechęcić jego skomplikowaniem, którego w dodatku nie wykorzysta. Mimo owego skomplikowania, C++ pozostaje dalej "blisko sprzętu", a więc można w nim pisać naprawdę szybkie rzeczy (co przydaje się na przykład przy silnikach gier 3D).

    C#. Różni się od swoich poprzedników - nie jest już niskopoziomy, a wręcz przeciwnie, programy w C# uruchamiane są przez .Net Framework. Nie musimy się tu już troszczyć o zarządzanie pamięcią, nie trzeba zagłębiać się w tajniki wskaźników, istnieje za to łatwy dostęp np. do GUI Windowsa. W połączeniu z Visual Studio, C# jest świetnym narzędziem do tworzenia aplikacji okienkowych - można to robić łatwo, szybko i intuicyjnie. Z tego też powodu rynek pracy obfituje w oferty dla programistów .Net (co zwykle oznacza właśnie programistę C#). Niestety, język w naturalny sposób związany jest z Windowsami i jeśli ktoś chce napisać np. demona usługi na Linuksa, wybierze raczej jeden z dwóch poprzednich języków.

  • To pytanie już było http://9fingers.pl/questions/685/Czego-lepiej-jest-sie-uczyc:-C,-C++--czy--C#-?#2030

    Ogólnie C++ to język który praktycznie zawiera w sobie C stąd wiele programów napisanych w C bez kłopotu skompiluje się w C++.

    C# to całkiem inna gałąź języków. Jest to nieślubne dziecko związku Java'y z Delphi, z C i C++ ma tyle wspólnego, że jego składnia jest C-like.

    W chwili obecnej najlepiej z tej trójki uczyć się C#, następnie C++, a w końcu C. Jeśli chodzi o poziom trudności to najtrudniejszy jest C++, później C, a na końcu C#.

    Więcej szczegółów w odpowiedziach do pierwszego pytania.

  • Są bardzo duże różnice, od wydajności zaczynając (C, C++, C#) po wygodę pisania, która idzie dokładnie w odwrotnym kierunku. Zależy co chcesz osiągnąc, jak pisać gry to C++, jak aplikacje to raczej C# ;-)

Zaloguj się, aby dodać swoją odpowiedź