Czego się uczyć c++ czy c#

Na wstępie proszę nie pisanie, że takie zapytania już były. Szukałem w wyszukiwarce i nie ma nic ciekawego :slight_smile:

Kilka late temu uczyłem się c++. Chce powrócić do nauki i mam kilka pytań.

Czy opłaca się uczyć jeszcze c++ gdy jest c#?

Mam argumenty za i przeciw ale nie wiem co wybrać

  1. C++ jest używany na różnych platformach, wykorzystując bibliotekę QT można pisać zarówno dla Linuxa jak i Windowsa

  2. C++ jest popularny i ma szerokie zastosowanie

  3. C# jest wspierany przez bardzo bogatą firmę co zapewni temu językowi popularność

  4. Znając c# mogę pisać aplikacje internetowe ASP.NET

  5. Ucząc się c++ i chcąc pisać jakieś aplikacje internetowe muszę dodatkowo uczyć się np. PHP

W c# mam tak jakby 2w1 natomiast c++ ?

Proszę o pomoc w wyborze

c,c++ - 90,95 procent programów których używasz jest napisane w tych językach,C# jest modyfikacją,jeśli już załapiesz programowanie obiektowe,które jest podstawą w C++,nie będziesz miał problemów ani z C#,ani z Javą - obydwa języki rozszerzają właśnie obiektowość o nowe klasy - pakiety funkcji przeznaczonych do określonego celu,np. gdy chcesz obliczyć sinus jakiejś liczby wywołujesz metodę klasy Math()

int a;

a=Math.Sin(90);

C++ wprowadza obiektowość,a C# i Java już są na niej zbudowane.

zgadzam sie z Johnym , ucz sie C++ albo ANSI C jeśli możesz odłożyć obiektowość na bok, później poradzisz sobie z resztą :slight_smile:

Naucz sie po prostu programować, nauka kolejnych języków to wtedy pestka.

Zawsze opłaca się uczyć nowych rzeczy. A czego, to już zależy co chcesz programować.

To, ile kodu powstało w danym języku, nie ma kompletnie znaczenia, chyba że chcesz się zajmować serwisowaniem starych projektów, a nie pracą przy zupełnie nowych (w tym sensie można też się nauczyć COBOLu lub FORTRANa). Jeśli jednak kładziesz nacisk na nowe rzeczy, to zdecydowanie ObjectiveC, C# i Java. Preferuję Javę, bo jest w pełni FOSS i się nie ogranicza do “jednej słusznej platformy jednej słusznej firmy”. ObjectiveC nie należy lekceważyć, bo Apple stworzył jednak całkiem ładny rynek na to (i paradoksalnie MS ze swoim dziadowskim Windows Mobile na tym rynku praktycznie się nie liczy).

jak powyżej napisał kstarski jeżeli poznasz c++ to zdecydowanie łatwiej pójdą Ci inne języki np. napisałeś

  1. Ucząc się c++ i chcąc pisać jakieś aplikacje internetowe muszę dodatkowo uczyć się np. PHP

znając c++ nauka php pójdzie Ci bardzo prosto bo wiele konstrukcji będziesz znał już z C++

osobiście nie polecam stawiania pierwszych kroków w wyżej wymienionych językach, poleciłbym Ci zacząć od C a póżniej C++, taka standardowa ścieżka naukowa, wiele osób potwierdzi ze bardzo słuszna, już Pascala Ci oszczędzę :stuck_out_tongue:

W C nauczysz sie o co biega, a póżniej ucząc sie C++ dołożysz do tego nowe rzeczy (o czym mówi sama nazwa plusplus), po takich podstawach droga wolna do wszystkich wynalazków. polecam Pythona :slight_smile:

Na dzień dzisiejszy, nie polecam nauki języka C. Programowanie proceduralne jest odmienne koncepcyjnie od programowania obiektowego. Ucząc się programowanie proceduralnego nabędziesz nawyków, które utrudni Ci przestawienie się na model programowania obiektowego.

Zalecam pogłębiać wiedzę na temat języka C++, oraz zapoznać się z innymi językami obiektowymi, takimi jak C# czy Java.

C# jest na Frameworku, tak jak Java, na wirtualnej maszynie, w wirtualnym środowisku

C++ i C będziesz miał dostęp do sprzetu, w C więcej niz w C++, a języki jako tako aż tak się na w miare podstawowym poziomie nie różnią między sobą

Tiaaa, chyba w DOSie 6.22. Każdy nowoczesny OS da Ci po łapach, jak tylko spróbujesz się “dobrać do sprzętu”.

I właśnie dlatego WARTO się nauczyć C. Bo nie wszystko jest sens programować obiektowo.

Dziękuje za odpowiedzi…zaczekam jeszcze na inne opinie :slight_smile: ale raczej wybiorę c++ za jego wieloplatformowość:)

Wieloplatformowość języka C++ jest złudna, bo o ile sam język jest przenośny, to już biblioteki przeznaczone dla tego języka w większości przenośne nie są.

XP nie daje po łapach, ale też nie pozwala się dobrać jako tako, niby jest, a i tak idzie przez jego funkcje systemowe.

Ale przeciez … w czym się pisze sterowniki jak nie w C?:slight_smile:

(i nie pisz ze asmblr ;p)

Tak, ale sterowniki to jest inna bajka (i bynajmniej nie pisze się ich w C++ tylko właśnie w C - wiec kolejny powód by się nauczyć dobrze C).

A co do zwykłego dostępu do sprzętu poprzez API systemu, to w C# i w Javie też da się. Większość rzeczy, które potrzebujesz jest w bibliotece standardowej tych języków - i w przypadku Javy, jest do tego przenośna. Czyli np. z pliki czy multimedia obsługujesz tak samo pod Windows, Linux i Mac. Pozostałe rzeczy zależne od systemu też są dostępne, choć z pewnym trudem.

Wiem, to własnie zapewnia maszyna javy, i .net framework.

A o bliskość sprzętu dla poczatkujacego mialem w glównej mierze na myśli “malloc” :slight_smile:

No, zmartwię Cię, od malloc do sprzętu to jest całkiem długa droga.

O ile nie piszesz kodu, który jest częścią sterownika / kernela, lub jest jakoś szczególnie uprzywilejowany, to fizycznego dostępu do sprzętu nie masz. Do pamięci również. Od malloc dostajesz coś w rodzaju HANDLE’a, obsługiwanego przez… OS.

Ale zrozumiałem, o co Ci chodziło :slight_smile:

Dziękuję za odpowiedzi…raczej nie jestem zainteresowany programowaniem sprzętu :slight_smile: Chodzi mi o pisanie aplikacji bezsprzętowych:)

Wydaje mi się, że c# jest ciekawym językiem ponieważ można w nim pisać zarówno zwykłe aplikacje jak i strony internetowe.

C++ jest ciekawy, ostatnio coraz więcej jest informacji odnośnie QT i myślę że c++ to dobry wybór :slight_smile:

poza QT możesz pisać GUI w: GTK+, FLTK, wxWidgets, Mozilla Application Framework także jest w czym przebierać :slight_smile:

C# mnie przeraża i kilka razy próbowałem, lecz jakoś nie szło. Więc polecam C++.

? C# przeraża? To co dopiero C++…

Chyba, że miałeś na myśli C++ jako “lepsze C z klasami” (czyli tak gdzieś 20% całego C++). C++ jest jednym z najbardziej skomplikowanych języków.

Gdybym ja te 20% C++ znał, to fajnie by było. Ale nie powiesz mi chyba, że Assembler łatwiejszy?