Skocz do zawartości
forumowicz

C Czy C++ Czy C# Dla Automatyka I Robotyka

Rekomendowane odpowiedzi

Witam

Wiem, żę w necie wiele było już pojedynków C kontra C++ oraz pojedynków typu, któego się uczyć na początku lub którego wogóle się nie uczyć bo nabierze się złych nawyków itp...

Ja na studiach miałem cały pierwszy semestr podstawy C teraz mam podstawy C++. Chciałbym jednak ORT: <span style='color: red;'>ORT: wziąść</span> się za profesjonalne programowanie, w którymś z tych języków i osobiście wydaję mi się, że powinien to być c++. Jako kryterium biorę pod uwagę wymagania pracodawców jakie będą mniej więcej za 5 lat, tzn czy wtedy wogóle ktoś będzie potrzebował programistów czystego C? Ale z drugiej strony słyszałem, że czysty C jest językiem programowania różnej maści mikrokontrolerów, a więc biorąc pod uwagę kierunek jaki studiuję: Automatyka i Robotyka dobrze by było znać właśnie jezyk C! U mnie na studiach nie kładzie się duzego nacisku na "sztukę" programowania, algorytmy itp a głównie na znajomość składni języka i pisania w miarę prostych programów (chyba jest to podstawa do teorii sterowania?). Chodzi mi głównie o odpowiedź na pytanie czy np. nauczenie się porządnie jezyka C tak bardzo utrudni mi naukę C++? Fajnie byłoby znać oba te języki (pierwszy ze względu na kierunek studiów, drugi ze wzgledu na wymagania pracodawców i rynku informatycznego) Chcę również dodać ze w przyszłości zamierzam się również za język C#. (może co za dużo to nie zdrowo? :D) Jednak bardzo lubię programować i nigdy nie miałem z tym problemów. Obecnie znam bardzo dobrze Turbo Pascala/Delphi oraz podstawy C.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Oczywiscie nauka C w rzaden sposob nie utrudni ci nauki C++!! Bo wlasciwie to jedno i to samo przy odrobinie wprawy nie bedziesz zwracal uwagi w czym piszesz. Dlatego nazywa sie to C/C++ :). A nie przejmuj sie ze teraz piszesz tylko proste programy na twoim kierunku studiow algorytmy "z prawdziwego zdarzenia" dopadna cie szybciej niz myslisz i tak naprawde bedzie wszystko jedno w czym je zakodujesz.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

C/C++ jest dość uniwerslanym narzędziem podczas pracy z mikorprocesorami ponieważ jest cała masa kompliatorów dla większość architektur na rynku. Biorąc pod uwagę automatyke sticte przemysłową to i tak, każdy producent sterownika wypuszcza do niego indywidualne języki, więc na zapas tego nauczyć się nie można... Chyba, że ktoś lubi wiedzieć "wszystko" ;]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

tak czy siak programista powienien charakteryzować się wielojęzykowością w jakimś tam stopniu. W mikreokonrolerach uzywa się prostej składni języka C, którą może opanowac każde dziecko, trudność polega raczej na konkretnej architekturze, zakresach pamieci, rejestrach etc... Smiało można powiedzieć ze znając podstawy C/C++ jesteś w stanei pisać w języku takim jak java, php, vhdl, actionscript do flasha (w tych akurat pisałem) i zapewne w c# itp... Wszystkie mają cech wspólne lub przynajniej podobne. Faktem jest że dobze jest znać choćby 1 język w maire porządnie.. ja obstawiłem C++ i jego się uczę... A jak trzeba napisac cos w javie, php, C to się napisze... :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A do czego chcesz to wykorzystywać ? do programowania mikrokontrolerów ? ( to moze już basic lepiej + dodatki wspomagające ten proces, zainteresowanie wiedzą o czym mowa ) W takim razie C++.

A do całej reszty to w zasadzie C# będzie odpowiedni.

A C ? czy ktoś jeszcze coś pisze w czystym C ? Nie spotkałem sie jeszcze z pure C. ( dla przykładu dodanie // komentarza do kodu pure C czyni go już ponad wszelką wątplikowść kodem C++ ).

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

basic jest nieoptymalnym jezykiem.. np bbascom.. pożera straszne zasoby procka.. Osobiście nie sprawdzałem ale wg naocznych świadków tak przedstawia się w kolejności rosnacej objętośc identycznych programów w róznych językach:

 

assembler , C, BASIC.. Basic jak sama nazwa wskazuje ma być prostym językiem.. zatem wybacza wiecej błędów i nie daje się tak optymalizować jak C, który bardzo dobrze kompiluje się na kod maszynowy, zbliżony do assemblera..

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

aczkolwiek rpawda jest taka, że większość "programistów" c++ ze mną włącznie tak naprawdę nie uzywają pure C++, lecz jest to taki c++ z naleciałościami C... z czego oczywiście próbuję się leczyć :).. Dlatego też istnieje ta zasada.. znasz c++ znasz C... aczkolwiek gdyby ktoś znał samo C++ to z czystym C miałby problemy... :wink:

Edytowane przez PelzaK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja uczę się C++, ale odrazu przestawiłem się na funkcje ze standardu C, printf, scanf, fread, fwrite elegancko, szybko, i także popieram, większość ludzi, którzy piszą w C++, używają komponentów C. A powiesz, dlaczego chcesz się wyleczyć? Standard? :D

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

C jest podklasa C++. To jest jego zaleta ale jednocześnie wielka wada, która wynikła z usilnej chęci zapewnienia zgodności z poprzednikiem (niestety). Na szczęście następcy C++ (być moze język D, albo jakiś inny dialekt oparty np na C# albo javie) będą tej wady pozbawieni.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

standard... :) kolega zaprawiony w programowaniu bardziej ode mnie Ciągle mi podsuwa lepsze rozwiazania korzystając z STLa a niestety tego nie uczą na uczelniach i jak ktoś chce programowac zgodnie z ISO to musi nauczyć się sam... :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Chopaki mylicie kilka bardzo waznych pojec...

 

Mysle ze problem nalezy potraktowac szerzej nieco...

Jesli chodzi o skladnie to masz w sumie 2 glowne podejscia - skladnia C podobna (C C++ C# PHP Perl python JAVA JS i bog wie co jeszcze) oraz Basico podobna czyli "wiersz biały" :P (pascal object pascal visual basic itp).

Ktorejkolwiek z tych skladni sie nauczysz z reszta bedzie juz duzo lepiej io szybciej)

teraz nastepuje drugi i najwazniejszy moim zdaniem dylemat....

idziesz na kierunek AR a mowisz ze chcesz programowac... sorki ale dla mnie sa to nieco sprzeczne pojecia... jako automatyk bedziesz rozwiazywal pojedyncze problemy sterujac odpowiednimi urzadzeniamni i wszystko co bedzie ci do tego potrzebne to algorytmika + skladnia + znajomosc urzadzenia = w tym wypadku wystarczy Ci Cos C like mysle ze jak zaczniesz na C skonczysz na CPP to nie bedzie problemu.

Musisz sobie jednak uswiaadomic ze programowanie to nie tylko umiejetnosc korzystania z jezyka - co jest najwazniejsze to sposob organizowania projektu, kodu takie terminy jak zwarcie gestosc powiazan w kodzie jego czytelnosc i mozliwosc powtornego wykorzystania w tym samym projekcie... w kontekscie tego wybor jezyka jaki Ci bedzie odpowiadal jest juz bardzo skomplikowany - tu naprzyklad wyglada ze odpada C bo jest jezykiem juz starym nie posiadajacym mechanizmow obiektowych, java wydaje sie pod tym wzgledem super - natomiast tu zwolennicy CPP powiedza ze nie mozna sie w javie odwolywac bezposrednio do konkretnych obszarow pamieci a to zawęża mozliwosci programisty... z kolei kusi naprzykład PHP gdyz wersja 5 jest juz dosc dobrze OO ma duze mozliwosci jest latwa do nauczenia.... ale z kolei nie posiada wielu poważnych elementów jak wątki czy zdarzeniowy model akcji , pelne OO...

Tak naprawde musisz zdecydowac kim tak naprawde chcez byc - ja tylko uprzedam ze programowanie jest procesem milym i przyjemnym gdy piszesz dla siebie/sam i sam odpowiadasz za swoj kod - jesli piszesz w grupie np 3 osob wspolnie pracujecie nad czyms to objawia sie drugi bardziej "koncepcyjny aspekt" programowania... a wsponiec o tym nalezy dlatego ze o wiele latwiej jest zrozumiec skladnie dziesieciu jezykow niz w pelni zrozumiec i korzystac z zalet technik obiektowych i np wzorców projektowych....

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

z kolei kusi naprzykład PHP gdyz wersja 5 jest juz dosc dobrze OO ma duze mozliwosci jest latwa do nauczenia.... ale z kolei nie posiada wielu poważnych elementów jak wątki czy zdarzeniowy model akcji , pelne OO...

O PHP5 i jego obiektowych "zastosowaniach" ^^ jest tyle opinii ilu ludzi ma z tym styczność. Ja np wole raczej czwórke i starcza mi obiektowość jaka tam jest zaiplementowana. A jakby porównać PHP5 do choćby ASP.NET 2.0 to wypada to na korzyść dziecka MS. Może wersja PHP6 zmieni to na lepsze, bo jak na razie piątka odpada.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...