Programowanie w C++ - czy warto na Linuksie?

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
Phight3r
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 19 cze 2009, 23:32
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME

Programowanie w C++ - czy warto na Linuksie?

Post autor: Phight3r »

Uczę się obecnie C++ i tak się zastanawiam, czy opłaca się pisać na Linuksie programy w C++. Z tego co widzę to większość aplikacji i tak jest napisana w C. Proszę o odpowiedź, czy warto uczyć się C++.
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: kabanek »

to wszystko zależy od tego, co chcesz pisać, tzn do jakich celów chcesz język wykorzystywać

w czystym C są pisane sterowniki, albo w dużej części jądro linuxa. Dlaczego? Bo jest szybki.

c++ - on też nie grzeszy szybkością, ale ma więcej możliwości (składnię), co sprawia, że programowanie w c++ jest wygodniejsze od ANSI C. W czystym C nie masz czegoś takiego jak klas a co za tym idzie dziedziczenia (co jest bardzo pomocne np w grach)

różnicy pomiędzy C a C++ jeśli chodzi o szybkość to nie ma dużej, przynajmniej wg mnie. Ja na co dzień programuję w C++ i nigdy nie narzekałem na ten język.

hmm... a jakie programy chcesz pisać?

Moim zdaniem opłaca się uczyć c++, bo on daje swobodną drogę do nauki JAVY, PHP i innych C++-podobnych, bo składnia się dużo od nich nie różni.
Awatar użytkownika
Phight3r
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 19 cze 2009, 23:32
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: Phight3r »

Myślałem, że jak będę go dobrze umiał i nauczę się programować aplikacje okienkowe w GTK lub Qt4 to może np. jakiś prosty komunikator, jakiś program narzędziowy, itp. Może jakąś prostą grę.

A gdybym znał dobrze C++, to czy mógłbym dołączyć do jakiegoś projektu, np. gnome, xfce, kde, pidgin?
Awatar użytkownika
f00sek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 109
Rejestracja: 18 kwie 2009, 15:54
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: f00sek »

Możesz się dołączyć do wszystkich projektów open source;)
System.out.println ("Java programmer");
Kokosek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 108
Rejestracja: 04 mar 2009, 20:44
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: Kokosek »

Jak zobaczyłem nazwę tematu to pomyślałem, że zastanawiasz się nad jakimiś językami 'wyższego' poziomu niż C++ :P Natomiast z tych języków co podałeś wybór powinien paść na C++ ;)
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: kabanek »

widzę, że wszyscy polecają Ci c++ :D

myślę, że c++ ma tak duże możliwości i jest na tyle powszechny, że jest bardzo dobrym wyborem :)
Awatar użytkownika
Phight3r
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 19 cze 2009, 23:32
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: Phight3r »

Dzięki za odpowiedzi. Zostaję przy C++.
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: el.pescado »

A gdybym znał dobrze C++, to czy mógłbym dołączyć do jakiegoś projektu, np. gnome, xfce, kde, pidgin?
Gnome i pidgin są pisane w C.

A co do C++. Zależy od tego, co chcesz pisać. Jeżeli gry, albo aplikacje, w których wydajność jest krytyczna (biblioteki numeryczne, kodeki, bazy danych), C++ jest dobrym wyborem. We wszystkich innych przypadkach - inwestycja w naukę C++ po prostu się nie zwróci.

Do tego uważam, że C++ jest kiepskim kandydatem na pierwszy język programowania. Lepiej nauczyć się jakiegoś prostszego języka (Java, C#) i na jego przykładzie poznać pewne koncepcje, a później przejść do C++, jeżeli przyjdzie taka potrzeba, niż porywać się z motyką na słońce;)
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: kabanek »

c++ był moim 1 językiem którego się uczyłem i nie narzekam :D na początku było trudno, ale nie widzę przeciwwskazań, żeby c++ był pierwszym językiem
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: el.pescado »

c++ był moim 1 językiem którego się uczyłem i nie narzekam
Jakbyś się uczył czegoś innego, byłoby jeszcze lepiej;)
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: kabanek »

el.pescado pisze:Jakbyś się uczył czegoś innego, byłoby jeszcze lepiej;)
a od jakiego wg Ciebie najlepiej zacząć?
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: el.pescado »

Najlepiej chyba od jakiegoś dynamicznego, w stylu Pythona. Ze statycznie typowanych to coś w stylu Javy albo C#. Ewentualnie, jak ktoś marzy o karierze informatyka, to można zacząć od klasyka - Pascala:)
Awatar użytkownika
Szmitas
Zakręcona Traszka
Zakręcona Traszka
Posty: 572
Rejestracja: 28 lis 2006, 17:38
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86
Lokalizacja: Luboń
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: Szmitas »

Ewentualnie, jak ktoś marzy o karierze informatyka, to można zacząć od klasyka - Pascal
Samobójstwo :) Nauka Pascala to jakby cofanie się w rozwoju :)
www.ubuntu-pomoc.org - tutaj znajdziesz rozwiązanie każdego Twojego problemu.

Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: kabanek »

pascal to strata czasu

c++ jest na początek tak samo dobry jak JAVA, czy C#
a jak ktoś chce zostać informatykiem to Pascal mu na nic nie jest przecież potrzebny, bo i tak z niego nigdy więcej nie skorzysta, a później będzie musiał się odzwyczajać od Pascalowych nawyków
Awatar użytkownika
leon1313
Zakręcona Traszka
Zakręcona Traszka
Posty: 668
Rejestracja: 02 sty 2006, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: leon1313 »

Ja polecam PERL-a: jedyny język, w którym kod po przepuszczeniu przez RSA wygląda tak samo jak wcześniej...
A serio to Ruby robi ostatnio furorę...
"Poza tym dostałeś PLONKa i zabraniam Ci pisać na te grupe!!! Powiedziałem PLONK i sie zamknij i nawet nie knuj rzeby mi odpisywać! Zabraniam!!!"
Awatar użytkownika
dyschemist
Wytworny Kaczor
Wytworny Kaczor
Posty: 292
Rejestracja: 13 mar 2008, 04:42
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Lokalizacja: Łódź
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: dyschemist »

Ja tam od siebie tylko dodam, że znając C++, rozumiesz większość kodów javowy i C, więc siłą rzeczy łatwo byś potem je uzupełnił.
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: luzakwielki »

Phight3r pisze:Uczę się obecnie C++ i tak się zastanawiam, czy opłaca się pisać na Linuksie programy w C++. Z tego co widzę to większość aplikacji i tak jest napisana w C. Proszę o odpowiedź, czy warto uczyć się C++.
Jeśli poznasz C++ to musisz znać C (C jest częścią C++, dla zachowania kompatybilności - tylko nagłówki biblioteki standardowej C mają inną nazwę (np. w c "stdio.h", w c++ "cstdio")).
Pisz w C/C++ (jako że C++ zawiera w sobie C to możesz mieszać zalety obu języków). Dodatkowo dobrym wyborem będzie język D, ale on póki co jest młody i dopiero zdobywa popularność (a co za tym idzie nie masz tylu bibliotek co w c/c++ - niby możesz użyć bibliotek pisanych w c, ale konwersja plików nagłówkowych nie zawsze działa (czytaj w praktyce zawsze musisz poprawiać ręcznie ;p)).
OFC nie może być tak pięknie, że c++ to wybór idealny...bo chcąc pisać w C++ (razem z kontenerami, string, map, vector, list etc) zamiast w C, będziesz miał kłopot z debuggerem gdb (będziesz musiał na linuksie używać tych od sun lub intel), bo nie wyświetli Ci tego co zawierają tylko krzaki - na szczęście to się zmieni z wydaniem gdb 7.0 (czyli włączeniem projektu archer rozwijanego przez redhat do gdb), a można powiedzieć nawet, że już się zmieniło dla niektórych (fedora (czytaj poligon doświadczalny redhata) już ma branch archer w stabilnej dystrybucji, i użytkownicy robią za beta testerów) - jeśli ktoś chce widzieć jakie są różnice pomiędzy informacjami z gdb teraz, a Pretty Printing z archer to odsyłam na http://people.redhat.com/ebachalo/. Żeby nie skończyć na "chwilowych" problemach to powiem, że na linuksie masz tą zaletę, że jest Valgrind (jest on często powodem, dla którego firmy robią specjalnie port dla linuksa mimo że nie wydają oficjalnie - po prostu na windowsie czy macos takiego narzędzia brak) czyli narzędzie do profilowania pamięci i automatycznego szukania wycieków pamięci (ofc możesz załatwić to używając GC np. http://www.hpl.hp.com/personal/Hans_Boehm/gc/, które jest standardowo w GCC (i jest wykorzystywane przez mono dla C#), ale będzie wolniej ;]) - jak to razem z integracją do Eclipse (oraz integracją z profilerem (oprofile) pisanym dla jądra linuksa (ale nie tylko tam przydatnego)) możesz zobaczyć pod filmikami z GDB Archer.
kabanek pisze:c++ - on też nie grzeszy szybkością, ale ma więcej możliwości (składnię), co sprawia, że programowanie w c++ jest wygodniejsze od ANSI C. W czystym C nie masz czegoś takiego jak klas a co za tym idzie dziedziczenia (co jest bardzo pomocne np w grach)
Możesz napisać w którym miejscu nie grzeszy szybkością? Fakt jest kilka takich miejsc, jak np. obsługa strumieni wejścia/wyjścia... ale jak znasz język to wiesz, że wystarczy wyłączyć synchronizację i porównywalnie do C ;]. Co do klas to fakt są one bardzo przydatne wszędzie, nie tylko w grach (chociaż sam programuję gry i muszę potwierdzić, że bez nich to byłaby katorga (ale ofc da się - patrz Quake3 pisane jest w czystym C)).
el.pescado pisze:Najlepiej chyba od jakiegoś dynamicznego, w stylu Pythona. Ze statycznie typowanych to coś w stylu Javy albo C#. Ewentualnie, jak ktoś marzy o karierze informatyka, to można zacząć od klasyka - Pascala:)
Python + pierwszy większy projekt skutkowałby harakiri lub zaprzestaniem programowania (brak typów oraz wcięcia jako bloki danych powodują, że błąd który można by w C/C++ wyłapać w 10s debuggerem będzie Ci spędzał sen z powiek ;p). Java na początek słaba bo ma bardzo specyficzne założenia i trudniej będzie przejść na inne języki z niej niż z innych do niej ;] (wszystko jest obiektem, każdy plik musi mieć nazwę taką jak klasa w nim, wymuszenie działania GC (niby prosto, bo alokować nie trzeba, ale powolne i zabiera dużo nieużywanego ramu (no chyba że przy starcie skonfigurujesz, jvm (ale będzie jeszcze wolniej ;p), poza tym sam mechanizm dziedziczenia wielokrotnego jest IMO, skopany (tzn nie ma wcale dziedziczenia wielokrotnego, a jest tylko jednokrotne i wprowadzenie Interfejsów)))). C# pod linuksem to pomysł bardzo kiepski, a pascal mimo, że łatwy, i ostatnio jego rozwój znowu przyspieszył to raczej nie ma sensu się go uczyć, bo w praktyce jest językiem martwym, ale lepiej nie szukać w nim takich rzeczy jak OpenMP 3.0, czy rzeczy z nieoficjalnego rozszerzenia c++ (biblioteki boost), nie mówiąc już o rzeczach, które wejdą/wchodzą już do języka i kompilatorów c++ razem ze standardem c++0x (mimo że okaże się on c++1x ;p).
Warto znać wiele języków w tym python, jave, przyszłościowy d i inne jednak to nie zmienia faktu, że każdy z nich jest inny, a wspólnym mianownikiem jest C/C++ i trzeba go znać najlepiej, żeby nie mieć problemów z przyswajaniem innych języków (java to rozszerzony c++, z kilkoma ułomnościami i fajnymi dodatkami których brak w standardzie C++ (co nie znaczy, że ich nie ma), python to biblioteka standardowa C minus bloki danych i typy, oraz plus kilka rzeczy, D to taki C++ + dodatki z Javy, języki shaderów (Cg, GLSL, HLSL), czy języki obliczeń na GPU (OpenCL, Cuda) to nic innego jak składnia C + kilka rzeczy do grafiki (jak typy wektorów i macierzy)).
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: kabanek »

luzakwielki czytając Twojego posta to nawet ja się momentami zamieszałem xD

kolega się pytał, czy lepiej się uczyć c++ czy czyste C. Przeoczyłem fakt, że ucząc się C, to uczysz się też C++, a ucząc się C++, to po części jest w tym i samo C :P

wg mnie lepszym wyborem pomiędzy tymi 2 językami jest C++, bo ma bardziej rozwiniętą składnię (klasy, wyjątki itp)
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: luzakwielki »

kabanek pisze:wg mnie lepszym wyborem pomiędzy tymi 2 językami jest C++, bo ma bardziej rozwiniętą składnię (klasy, wyjątki itp)
Przecież to właśnie napisałem ;p - praktycznie wszystkie języki które są warte zainteresowania pochodzą od C lub C++, a ucząc się C++ musisz się nauczyć też C - więc znając C++ znasz najpopularniejszy i najczęściej wykorzystywany język, a przy okazji masz drogę otwartą do nauki innych w kilka dni (bo przeważnie różnic pomiędzy C/C++, a pochodnymi jest tak niewiele, że możesz pisać praktycznie bez nauki, aby tylko mieć dokumentację pod ręką).
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Programowanie w C++ - czy warto na Linuksie?

Post autor: el.pescado »

a jak ktoś chce zostać informatykiem to Pascal mu na nic nie jest przecież potrzebny, bo i tak z niego nigdy więcej nie skorzysta, a później będzie musiał się odzwyczajać od Pascalowych nawyków
Jeżeli ktoś się misi "oduczać pascalowych nawyków" to nie będzie dobrym programistą.Pascala dobrze jest znać, nie tyle, żeby w nim pisać, co żeby potrafić zrozumieć programy w nim napisane. Dużo książek zawiera algorytmy w Pascalu (choćby N. Wirth "Algorytmy + struktury danych = programy"), względnie w pseudokodzie wzorującym się na Pascalu (Cormen), do tego Pascal do dziś przewija się jeszcze w publikacjach naukowych. Poza tym, Pascal został stworzony jako pomoc do nauki programowania, dzięki czemu pozwala uniknąć kilku podstawowych błędów, które zwykle się popełnia zaczynając przygodę z programowaniem. Nie mówiąc już o tym, że kompilatory Pascala są szybkie (w porównaniu do kompilatorów C++ piekielnie szybkie), co ma znaczenie w momencie, gdy nie bardzo wie się co się chce kompilować;)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Google [Bot] i 7 gości