Programista C++

0

Witam, Panowie mam do Was pytanie ciagle mam dylemta w która strone pojsc czy w .Net czy po prostu w c++,w tym .Net jest tyle tego wszystkiego ze nie wiadomo za co sie zabrac czy winforms czy wcf wpf czy co innego a podstawy c++ znam i zastanawiam sie nad tym czy kontynuowac c++ czy jednak bedzie on z czasem coraz mniej popularny?

0

Sam coś wybierz. Jeżeli uważasz, że moja opinia Ci w czymś pomoże to proszę bardzo:

Sam wybrałbym (a właściwie wybrałem) C++ bez .Net
Jeżeli interesuje Cię .Net to naucz się C#

0

Ja też miałem ten dylemat. Wybrałem C++. I nie żałuję ani trochę. C# przyszedł w zasadzie sam.

Mam paru znajomych, którzy zaczęli od C#, po czym w C++ pytają dlaczego jak się naciśnie '.' to nie ma np. metody sortuj...

0

Z tego co zauważyłem, prawie każdy poleca język od którego on zaczynał. Jest w tym pewna logika, bo skoro ktoś dalej programuje to znaczy że ten język sprawdza się jako 'punkt zapalny', ale z drugiej strony nie ma porównania bo zaczynać można tylko od jednego języka ;).

Przede wszystkim - strzeż się C++\CLI (C++ dla .NET) na początku - jest to naprawdę potężny język z olbrzymimi możliwościami, ale nie dla początkującego. Jeśli nauczysz się i będziesz dobrze pisać w C++ i C#/, dopiero wtedy pójdź w stronę C++.NET.

dlaczego jak się naciśnie '.' to nie ma np. metody sortuj

Nie ogarniam głębi tego pytania...

0

Tzn powiem tak c++ mi narzucili na I roku studiów ale strasznie sie do niego zniechecilem lecz po jakims czasie uparlem sie ze poznam chociaz I tom symfonii i sie udalo nie moge powiedziec bylo trudno ale jakos poszlo i podstawy znam a c# jako jezyk rowniez znam tylko tam jest tyle mozliwosci ze nie wiem po prostu za co sie brac czy winformsy czy web czy co tam jeszcze bo chyba piszac w c++ nie ma takie rozbieznosci czy sie myle?

0

Ja od razu zdyskwalifikowałem u siebie C# i .NETa - nie mam windowsa:p
Przeszedłem z C++ na Javę i nie narzekam. Java to równie potężne narzędzie i platforma co C# i .NET. Składnia niemal identyczna, więc nawet jakbym kiedyś był zmuszony w C# pisać to większych problemów bym nie miał.

Ale do algorytmiki nadal TYLKO C/C++. Niezastąpiony :)

0
MSM napisał(a)

Z tego co zauważyłem, prawie każdy poleca język od którego on zaczynał. Jest w tym pewna logika, bo skoro ktoś dalej programuje to znaczy że ten język sprawdza się jako 'punkt zapalny', ale z drugiej strony nie ma porównania bo zaczynać można tylko od jednego języka ;).

  • Zacząłem od pascala. Nie polecam nikomu, poza bardzo początkującymi.
  • Potem było Delphi. Polecam również tylko początkującym.
  • Gdzieś w międzyczasie PHP. Nie polecam nikomu, jest dobry do nauki podstaw pisania aplikacji webowych, ale wybacza zbyt dużo, przez co nie uczy dobrych nawyków. Nie znam dobrego środowiska dla tego języka, które dodatkowo umożliwiałoby łatwe debugowanie.
  • Potem Java. Bardzo przyjemny język, mnóstwo bibliotek, żadnych problemów z przenośnością i środowiskami programistycznymi pod dowolny system operacyjny i mnóstwo procesorów. Polecam.
  • Potem Coldfusion. Nie polecam nikomu (aczkolwiek edytor zbudowany na bazie Eclipse jest świetny).
  • Potem JS. Polecam, bo w dobie wszechobecnego internetu i html 5 czeka ten język świetlana przyszłość.
  • Gdzieś w okolicach Coldfusion poznałem C# i już drugiego dnia pracy z tym językiem wiedziałem, że to jest to. Nie ma przyjemniejszego języka, mnóstwo bibliotek, fantastyczne środowisko programistyczne (tylko Eclipse może się z nim równać); niektóre rzeczy, które w PHP robiłem kilka dni, tutaj zajęły mi kilkadziesiąt minut, i to w bardziej rozbudowanej wersji. dużo gorzej z przenośnością i środowiskiem programistycznym dla systemów spoza stajni ms.
  • Potem Flash i ActionScript. Dość przyjemny język (niemal identyczny z JS), ale pewnie za kilka lat flash zostanie wyparty przez html 5. Dwa środowiska programistyczne: super Flex Builder (Eclipse), i Adobe Flash, kompletna beznadzieja, wstyd i obciach.
  • Programowałem w C i w C++, ale żaden z tych języków mnie nie wciągnął głębiej, zbyt dużo walki z samym narzędziem, cóż, może jestem za słabym programistą.
  • SQL - też fajna sprawa. Tu ponownie spodobała mi się wersja ze stajni ms (przerobiłem też mysql i postgresql), ciężko jednak polecać pójście wyłącznie w język, który jest zwykle tylko małą częścią aplikacji (chociaż mam kumpla, który pracuje z aplikacjami w samym oracle).
    Dużo nie na temat napisałem, więc do rzeczy: jak widać nie zgadzam się z MSM, nie polecam większości języków, z którymi zaczynałem. Nie polecam samego C++, bo ma coraz węższe zastosowanie. Proponuję rozpoczęcie nauki od C (tam można praktycznie nauczyć się dość podstawowych pojęć, w tym wskaźników, zwalniania pamięci), potem C++ bez CLI (obiektowość, szablony itp) i na koniec, już jako docelowy język, C# (wygodnie i komfortowo, GC, środowisko rozwiązujące mnóstwo problemów już na etapie kompilacji, a nawet pisania kodu (!)).
    Cóż. Przyszłość chyba jest po stronie języków zarządzanych.
0

Ja zacząłem od C++ i nie polecam na początek. Jakbym poświęcił tyle czasu na któryś z nowoczesnych języków co poświęciłem na to g**no (c++) mógłbym pewniej usadowić się na rynku pracy i spokojniej patrzeć w przyszłość. Mówią: "programuj w czym lubisz", przyjemność z kodzenia jest bardzo ważna. Z tym że ja mam tak, że lubię programować w czymkolwiek co w miarę komfortowo rozwiązuje mój problem.

edit
Tylko niech teraz fani cpp nie poczują się urażeni, C++ to potężne narzędzie (szczególnie jak dopalimy go boostem i jakimś frameworkiem) ale używając go łatwo strzelić sobie w kolano i to tak, że tracisz całą nogę razem z polową biodra.

0

A ja tobie polecam C++. I to bardzo, to w sumie jedyny jezyk, ktory znam ale jest wiele powodow, dla ktorych nie uczylem sie innych jezykow. Pow pierwsze, inne jezyki programowania (oprocz java moze i fortran, moze pascal jeszcze) to nie programowanie tylko skryptowanie. Nie da sie w nich napisac jakiegos duzego bardzo wydajnego systemu. Nowy standard rC++ rozszerza strasznie mozliwosci jezyka i staje sie on naprawde bardzo mocny. Do tego masz rozszerzenia takie jak boost np, ktore rowniez sa wspniale. Ciezko jest zaczac od C++ ale moim zdaniem warto, bo jesli staniesz sie dobry, to zarobki w wysokosci 60k PLN brutto/mc na zachodzie to nie sa jakies super wyskokie. No chyba, ze czcesz pisac jakies male programy na zamowienie, to wowczas takie rzeczy jak C# sa bardziej przydatne, ale napisanie naprawde duzego projeku (kilkinascie milionow lini kodu) to tylko C++.

Pozdrawiam serdecznie

2

@LexUK kto ci takich bajek naopowiadał? Uwielbiam jak gimnazjaliści poczytają sobie newsy na onecie i już im się wydaje że wszystko wiedzą ;]
Nie da się w innych językach napisać nic dużego? o_O Ciekawe że biznesowe aplikacje nie powstają w C++ a w innych językach (w tym właśnie w C# na przykład).
a 60k to chyba rocznie...

1

Tak to jest gdy ktoś zabiera głos nie mając pojęcia o czym mówi. Żal mi cie chłopcze.

1

C++ jest coraz bardziej niszowym językiem. Teraz praktycznie nikt nie pisze w nim dużych systemów, do tego służą C# i Java właśnie. Btw. ciekawy wybór języków 'nie skryptowych' - Java, Pascal i... fortran...

A ja tobie polecam C++ (...) to w sumie jedyny jezyk, ktory znam

To cię niestety wyklucza w kwestii doradzania innym...

0

No tak, w sumie chyba macie racje :) Gimnazjalista, 35 lat, hehe, ale co tam. Pewnie nie snilo wam sie o tym, ze mozna zarabiac jako programista po pol miliona dolcow iwiecej, hehe? Pewnie zaraz odezwa sie tacy co powiedza , napracowalem sie na zmywaku i sni mi sie. Mam 10 lat doswiadczenia pracy w bankach inwestycyjnych i tutaj nic innego sie nie liczy niz C++ . Jak wyobrazasz napisanie sobie grid dzialajaczy na 50 000 CPU w Java albo C#? Z jaka predkoscia by to dzialalo? Jest taki dzial ktory nazywa sie algo trading (algorithmic trading). W skrocie mona powiedziec, ze generuje to setki milionow dolarow zysku rocznie. Konkurencja jest tak duza, ze aby zmniejszyc opoznienie dzialania ustawia sie komupery 1m od servera gieldy, tak aby kabel po ktorym plyna informacje byl jak najkrotszy. Jak sobie wyobrazasz C# dzialalby na takim systemie? Heh? Tak wiec zanim zaczniesz obrazac to zdobadz troche informacji.

Odpowiedzialem na pytanie goscia, ktory pytal o rade. Mowie mu, ze jesli bedzie bardzo dobry i wyjedzie na zachod to kasa rzedu 200-300 tys GBP na rok to nie sa jakies niemozliwe do zarobienia pieniadze.

Pozdrawiam serdecznie

0

owszem, jestem w stanie wyobrazić sobie taki grid oprogramowany w C# lub Javie - co stoi na przeszkodzie? GC? zarządzany kod? a może jego optymalizacja w trakcie działania, która potrafi spowodować, że działa szybciej, niż odpowiednik w niezarządzanym środowisku? skąd w ogóle miałbyś wiedzieć, że taki grid nie będzie działał lepiej z javą, skoro nie masz w niej żadnego doświadczenia? na szczęście jestem pewien, że język i środowisko dla tego grida wybierał ktoś, kto znał się na rzeczy lepiej, niż ty. a skoro światło tak powoli pokonuje drogę, że trzeba bliżej stawiać serwer, to czemu c++, a nie asembler?
i wreszcie jeśli piszesz, że C++ to jedyny język, jaki znasz, to skąd wiesz, że żaden inny język nie jest lepszy? takie stwierdzenie jest dziecinne, zwłaszcze wypowiadane przez człowieka z - jak to twierdzisz - dziesięcioletnim doświadczeniem. "zdobadz troche informacji" spoza twojego dołka.

0

Oczywiscie te systemy sa napisane w assembly. Zle sie wyrazilem, C++ to nie jedyny jezyk, ktory znam, ale jedyny w jakim programuje, nie najlatwiejszy. PHP z pewnoscia latwiejsze. Przykladem, jak niewydajny jest C]# jest IDE Visual Studio. Wielu ludzi dziwiw sie, dlaczego jest tak wolne. Ale to chyba nie do tego tematu. Pozdrawiam serdecznie

0
LexUK napisał(a)

Oczywiscie te systemy sa napisane w assembly.

systemy napisane w c++ w asemblerze. ręce opadają, kompromitujesz się.

co ma wydajność środowiska nienapisanego w C# do tego, jak szybkie są wygenerowane przez niego programy w C#? Co w ogóle ma wydajność GUI do kodu generowanego przez kompilator? Visual Studio jest niewydajne? względem czego? "wielu ludzi dziwi się"? pierwszy raz słyszę taką opinię. równie dobrze mogę napisać "wielu ludzi dziwi się, jak szybkie jest VS". będzie tak samo zgodna z prawdą, jak twoja. a skoro VS jest też IDE dla C++, to sam sobie strzelasz w kolano.
popatrz na szybkość działania flex buildera i wygenerowanych przez niego swfów, a potem zastanów się, co ma szybkość jednego do szybkości drugiego...

skoro zarabiasz tyle kasy, to idź ją wydawać, zamiast rzucać tu nic niewartymi opiniami, a jak chcesz ćwiczyć w Londynie język polski, to idź do forum flame i kłóć się z egonem.

0

Coz, Visual Studio IDE jest szybkie? nie bede ciagnal tej dyskusji, ale czy zaladowales jakies solution wieksze niz 30-40 projektow?

0
LexUK napisał(a)

Przykladem, jak niewydajny jest C]# jest IDE Visual Studio. Wielu ludzi dziwiw sie, dlaczego jest tak wolne.

Wszystkie VS oprócz VS 2010 są napisane w C++.

LexUK napisał(a)

ale czy zaladowales jakies solution wieksze niz 30-40 projektow?

Chcesz nam przekazać że banki dla których piszesz soft w C++ używają jako podstawowej platformy windowsa? Albo ich serwery stoją na windowsie? Nie żebym wątpił...ustalam fakty.

edit
Kolega LexUK napisał, że jeśli będziesz umiał C++ i będziesz w tym dobry to na pewno znajdziesz robotę. Otóż dzisiaj nikt nie zatrudni nikogo za takie pieniądze jeśli nie ma się doświadczenia. Prawie wszystkie polskie oferty pracy jakie przeglądałem gdzie szukano programisty C++ miały na celu znalezienie Senior Programmera, Lead Programmera, Senior Developera. Oferty w których nie szukano na takie stanowisko dotyczyło programisty-projektanta modułów sieciowych i interfejsów do nich w OpenGL pod linuksem bądź kodera embedded. Także ja się pytam skąd doświadczenie? Można znaleźć robotę w tej technologii bez doświadczenia, sam jestem tego przykładem, może wszystko co piszesz to i jest prawda, ale nie karm początkujących bajkami o zarobkach i świetlanej przyszłości ok?

0

Ten, gdzie pracuje obecnie ma grid na Windowsie. Wczesniejsze mialy na Linux, ale i tak uzywany do programowania byl VS i pozniej wszystko kompilowane w g++ i kompilatorze Intel c++. Taki dziwny troche mix, ale bardzo wydajny. Pozdrawiam serdecznie

0

Czyli pozwól że podsumuję, masz 35 lat, od 10 programujesz zawodowo, nie znasz żadnego nowoczesnego języka (skoro uważasz że pisanie w C# to skryptowanie a w javie to programowanie), przy okazji wychodzi że nie wiesz co to język skryptowy. W robocie kompilujecie wszystko trzema kompilatorami nie wiem po co (skoro wasz klient z branży bankowo-giełdowej ma sieć na windowsie?) i tak jakby można było ort! tak przenieść kod między kompilatorem visuala a gcc. Piszesz że VS jest wolne bo jest napisane w C# mimo że tylko najnowsza wersja visuala jest napisana w tej technologii. Wreszcie ładujesz na raz ponad 40 projektów na raz do solution (cały system czy jak?) tak jakby wszystkie Ci były potrzebne.
Może na zachodzie są jakieś inne maniery w IT ale mimo, że sam uważam się początkującego to coś mi tu śmierdzi.

0

IDE VS 2005-2008 napisane jest w C#.
LexUK ma trochę racji że do niektórych zastosowań C++ jest lepsze. C# i platformy .NET używa się tam gdzie liczy się szybkość tworzenia kodu. Są firmy które stawiają na szybkość dostarczenia danego rozwiązania a nie przejmują się wydajnością bo ma ona znaczenie drugorzędne. Nie do wszystkiego jednak .NET pasuje i wtedy korzysta się z C++.

0

@LexUK pisz od razu w assemblerze jeśli na szybkości ci zależy, tylko problem jest taki, że nie dasz rady napisać bardziej optymalnego programu w asmie niż w C czy C++ zoptymalizowanym przez kompilator :] Jeśli tak to gratuluje. Java czy C# są wolniejsze od C++, a wynika to po prostu z ich charakterystyki działania. Wygoda kosztuje. Jednak pisanie dużych projektów jest znacznie szybsze i opłacalne właśnie w tych językach (nie biorąc pod uwagę tych, w których liczy się szybkość ale nie zawsze ona jest najważniejsza). Podajesz typowe, marginesowe przypadki gdzie warto pisać troszkę niżej ale nie popadajmy w skrajności w skrajność.

0

Mnie najbardziej ciekawi w jakiej firmie programiści zarabiają w 2 miesiące więcej niż 99% użytkowników tego forum w ciągu roku ;]

0

LexUK ma trochę racji że do niektórych zastosowań C++ jest lepsze.

Trochę? Jeśli ktoś powie inaczej to roześmieje się mu w twarz :) .
Cała dyskusja (tzn. to flame które obecnie prowadzimy) została wywołana stwierdzeniem że C++ jest jedynym słusznym językiem, przynajmniej do dużych projektów bo w małych projektach można sobie ewentualnie 'poskryptować' w C#.

Mnie najbardziej ciekawi w jakiej firmie programiści zarabiają w 2 miesiące więcej niż 99% użytkowników tego forum w ciągu roku ;]

Biorąc pod uwagę że 99% użytkowników tego forum to gimnazjaliści/licealiści/biedni_studenci to nie jest to aż takie osiągnięcie jak by się mogło wydawać ;)

0

Spiesze z odpowiedzia:

Po co na trzy kompilatory? Intel C++ generuje najszybszy kod, gcc ma bodajże najlepsze sprawdzanie bledow a VS jest po prostu najwygodniejszy w uzyciu.

Tak jak kolega MiL zauwazyl, gdzie szybkosc a nie jakosc wykonania pisania kodu wazna mozesz uzywac C#. Jest on zreszta o niebo latwiejszy niz bezposrednie zarzadzanie pamiecia itp. Takie np DataSynapse, ktora probuja ci sprzedac jakies cycki, jest po prostu beznadziejna, napisana nie wiem ort!, ale szybko i jak najnizszym koszte, podobnie jak IBM message queue. Nie wiem w czym napisane ale nie pobije napisanego w C PVM. JEsli Java jest srednio 15-20 razy wolniejsza od C++ (testy przeprowadzane w naszym unicie) to nie ma zbytnio o czym mowic. Ale o ile latwiejsze pisanie i jak szybko sie uczysz, nieprawdaz?

Pozdrawiam serdecznie

0

15-20? Co się będziesz oszczędzał, napisz 50. Chyba że testy dotyczyły np. operacji na listach typów prymitywnych (strasznie skopana w Javie rzecz) - w takim razie proponuje przepisać testy na LISPa który jeśli chodzi o operacje na listach jest szybszy niż C++.

Pierwszy lepszy benchmarka jaki znalazłem w internecie - ofc. nie ma czegoś takiego jak obiektywny i doskonały benchmark, bo każdy trafia w mocne strony jednego języka i słabe strony drugiego. Tym niemniej...

user image

edit: gdzie szybkosc a nie jakosc wykonania pisania kodu - po zrozumieniu tego zdania, również się muszę nie zgodzić - owszem, w C# pisze się o wiele szybciej, ale to chyba zaleta, nie? Zostawia to znacznie więcej czasu, na przykład na poprawienie jakości. Jakości - która zależy tylko od programisty piszącego kod...

0

C++ .NET nie powinienies raczej porownywac z C++.

Pozdrawiam serdecznie

0

@msm: GCC 3.3, Java 1.4.2.. Toż to parę lat temu było, od tamtego czasu sporo się zmieniło. Java też podobno mocno przyspieszyła.
A te "trig" to co to w sumie jest? trygonometria?

0

No to tu masz inny, też pierwszy lepszy:
http://www.bioinformatics.org/benchmark/results.html
Wyniki są porównywalne, raz C++ lepszy, raz C# a raz to nawet Java. W żadnym miejscu nie widzę różnicy rzędu 15 czy 20 wielkości.

0

Tu z Javą: http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=gpp&lang2=java
Tu z C# (Mono): http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=gpp&lang2=csharp
Już nie jest tak kolorowo, jednak nie jest to coś czym można by się przejmować na początek (bo przecież główny post jest o zaczynaniu). Mówiąc prosto, jeśli ci wygodniej zacznij od C# o ile nie przeszkadza Ci to, że od razu musisz myśleć obiektowo. Potem jak już się nauczysz to możesz spróbować C++.

1 użytkowników online, w tym zalogowanych: 0, gości: 1