Programowanie w C++ - czy warto na Linuksie?

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
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 pisze: 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ą).
ja w ten właśnie sposób nauczyłem się w miarę dobrze PHP, JAVY ;p z tym, że ja nie korzystałem z dokumentacji tylko google :D
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 »

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).
Dobry program w C wcale nie musi być dobrym programem w C++. Jest nawet całkiem duże prawdopodobieństwo że nie będzie. Uważam, że "C-z-klasami" to jedna z gorszych rzeczy jakie można stworzyć. Tak więc, albo C albo C++.
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 »

el.pescado pisze: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ć;)
Zależy o jaką szybkość Ci chodzi - jeśli czas kompilacji to fakt, bo język jest stosunkowo prosty i łatwo się go analizuje. Jeśli chodzi o szybkość generowanego kodu to tu jest już gorzej.
Co do pseudokodu takiego jak we "Wprowadzeniu do algorytmów", Cormen'a, Leiserson'a, Rivest'a i Stein'a to bliżej mu do pythona (wcięcia blokami danych, zmienne bez typu i bez deklaracji)... a z pascala tam nie widzę nic. Fakt są książki, w których stosuje się zapis z pascala... ale są też które stosują nawet w Cobolu zapisują algorytmy, jednak najczęściej jest to C/C++ lub pseudokod (gdzie jedyne co można powiedzieć, że z pascala (chodź jest raczej odwrotnie ;]) to przypisanie := (w większości jednak używa się tak jak Cormen strzałki "<-"), ale to tylko ze względu, żeby matematycznie się zgadzało (np. "i <- i + 1" oznacza że trzeba zwiększyć i o 1, a w wypadku samego = oznaczałoby, że i = 1/2; ))
el.pescado pisze:Dobry program w C wcale nie musi być dobrym programem w C++. Jest nawet całkiem duże prawdopodobieństwo że nie będzie. Uważam, że "C-z-klasami" to jedna z gorszych rzeczy jakie można stworzyć. Tak więc, albo C albo C++.
Dobry program w C to dobry program w C, a C++ to trochę inna bajka. C++ ma wiele szalenie przydatnych cech, ale w niektórych sprawach daje **** (też nadchodzący standard c++0x który już wiadomo nie będzie miał tego co było zapowiadane) i dużo lepszym jest skorzystanie z C - mieszanie C z C++ jest jedną z lepszych rzeczy jaką można zrobić, dlatego jest tak często to połączenie stosowane w zastosowaniach gdzie krytyczna jest wydajność (gry, bazy danych, systemy operacyjnych (wyjątkiem tu jest Linux)).
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 »

Właśnie zgodność na poziomie źródłowym z C uważam za dużą wadę C++. W ten sposób wprowadza się niepotrzebne dublowanie funkcjonalności. I tak mamy referencje, wektory, typ string, szablony, które niby zastępują stare i szatańskie wskaźniki, tablice, tablice znaków i makra. Tyle, że te drugie wciąż są niezbędne do programowania (już choćby głupia funkcja main przyjmuje wskaźnik to tablicy tablic znakowych - wykorzystuje trzy "przestarzałe" rozwiązania), przez co robi się niepotrzebny bałagan.
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 »

el.pescado pisze:Właśnie zgodność na poziomie źródłowym z C uważam za dużą wadę C++. W ten sposób wprowadza się niepotrzebne dublowanie funkcjonalności. I tak mamy referencje, wektory, typ string, szablony, które niby zastępują stare i szatańskie wskaźniki, tablice, tablice znaków i makra. Tyle, że te drugie wciąż są niezbędne do programowania (już choćby głupia funkcja main przyjmuje wskaźnik to tablicy tablic znakowych - wykorzystuje trzy "przestarzałe" rozwiązania), przez co robi się niepotrzebny bałagan.
Wskaźniki (fakt, że osoby nie potrafiące się nimi posługiwać lepiej, żeby ich nie dotykały) to jedna z tych rzeczy, które są niesamowicie praktyczne (referencja != wskaźnik, a zastępuje tylko część jego funkcjonalności, i została stworzona tylko po to, żeby nie trzeba było podawać &zmienna w parametrach funkcji (jest ładniej, ale rozpoznaj potem, że bez patrzenia na deklarację funkcji, który parametr jest modyfikowany przez funkcję) - ofc wszystkie zastosowania wskaźnik na wskaźnik odpadają, bo nie może być referencji na referencję), tablice również to więcej niż wektory (wektory to specyficzny przypadek tablic gdzie nie wiadomo jaki jest rozmiar i trzeba dynamicznie realokować - czyli tracić wiele czasu (dlatego w każdym języku tablice muszą być - w javie również)), string to też "tablica znaków"... tylko opakowana w klasę i tylko porównywanie i działanie na nich jest wolniejsze (tak jak wektory nie zna się ilości znaków i dodatkowo, nie jest to zwykła tablica znaków (stąd cudzysłów), bo znaki nie są poukładane w kolejności tylko porozrzucane po pamięci), makra to też rzecz super praktyczna... ale jeśli mówisz, że są niepotrzebne to pewnie znasz je tylko ze strony definiowania stałych ;]. Swoją drogą chciałbym się dowiedzieć co zastąpiły szablony?
Te rzeczy które wymieniłeś nie mają zastępników w C++ tylko rozszerzenia, do specyficznych rzeczy i te "stare" rzeczy nie zostały w c++ z powodu kompatybilności, a ze względu na użyteczność języka (oraz to, że tak (jak tablica) wygląda pamięć ram czy dane na dysku, a kończąc na tym, że wektory, stringi, listy, mapy do działania potrzebują tablic... więc gdyby ich nie było to nie można by kompilatora C++ kompilować w C++).

Niepotrzebny bałagan zrobiłby się gdyby tego nie było - do wielu rzeczy potrzeba byłoby kilka kompilatorów (do części kompilator C++, do części C)/wstawki z asm.
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 »

Niepotrzebny bałagan zrobiłby się gdyby tego nie było - do wielu rzeczy potrzeba byłoby kilka kompilatorów (do części kompilator C++, do części C)/wstawki z asm.
Tak się robi - większość języków programowania oferuje proste mechanizmy pozwalające na użycie kodu napisanego w C bez żadnej zgodności składniowej z tym językiem. Bez problemu można napisać bibliotekę numeryczną w C, po czym użyć jej np. w C#. Wydaje się to nawet bardziej eleganckie z projektowego punktu widzenia.

Przy czym te języki zwykle potrafią się zdecydować, czy chcą wskaźniki czy referencje (wyjątkiem jest C#, który posiada obie rzeczy, ale tam wskaźniki są używane naprawdę rzadko) itd.

Szablonami można zastąpić np. makra właśnie:

Kod: Zaznacz cały

#define MAX(a, b) ((a)>(b)?(a):(b))
template<class T> T max (T a, T b) { return a>b ? a : b}
pawel8891
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 23 maja 2009, 21:39
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

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

Post autor: pawel8891 »

Ja też zastanawiałem się czy warto uczyć się C++. Po kilku dniach z C++ postanowiłem na jakiś czas zakończyć naukę z tym językiem kosztem Pythona przez którego na jakiś czas rzuciłem programowanie gdyż nie przypadł mi do gustu, po kilku tygodniach ponownie sięgnąłem po C++ zrozumiałem że nauka programowania w tym języku jest dłuższa i bardziej kręta niż przypuszczałem, ale nie zamierzam rezygnować z C++ bo to świetny język. Niektórzy mówią iż nie należy uczyć się C++ jako pierwszego języka, cóż każdy ma własne zdanie C++ jest tak na dobrą sprawę moim pierwszym językiem programowania nie licząc krótkiej przygody z Pascalem.


P.S: w sieci trafiłem na świetną książkę o C++ "Język C++" Bjarne Stroustrupa autora pierwszej implementacji C++ (czyt. twórcy tego języka)
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 »

ja dzięki temu, że zacząłem od c++ mam dużo łatwiej, żeby się nauczyć innego c++owo podbnego

a jeśli chodzi o materiały w sieci to ja mogę z czystym sumieniem polecić http://www.gamedev.pl/tutorials.php
ja się z tego uczyłem i żadna symfonia itp mi potrzebna nie była:)
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 »

el.pescado pisze:Tak się robi - większość języków programowania oferuje proste mechanizmy pozwalające na użycie kodu napisanego w C bez żadnej zgodności składniowej z tym językiem. Bez problemu można napisać bibliotekę numeryczną w C, po czym użyć jej np. w C#. Wydaje się to nawet bardziej eleganckie z projektowego punktu widzenia.

Przy czym te języki zwykle potrafią się zdecydować, czy chcą wskaźniki czy referencje (wyjątkiem jest C#, który posiada obie rzeczy, ale tam wskaźniki są używane naprawdę rzadko) itd.

Szablonami można zastąpić np. makra właśnie:

Kod: Zaznacz cały

#define MAX(a, b) ((a)>(b)?(a):(b))
template<class T> T max (T a, T b) { return a>b ? a : b}
Mówisz o rzeczach typu JNI w javie, czy P/Invoke w C#, które są namiastkami kooperacji jaka jest w c/c++. W JNI aby skorzystać z biblioteki w C... musisz napisać bibliotekę, która będzie udostępniać przez JNI każdą funkcję z biblioteki w C (spowodowane jest to wieloma rzeczami - m.in brakiem prawdziwych wskaźników (mimo, że referencję w javie bardziej przypominają wskaźniki bez operatorów wyłuskania niż referencję znane z C++)). W C# rozwiązane jest to trochę lepiej - tzn. musisz przepisać już w swoim programie wszystkie funkcję (ofc z konstrukcjami typu [MarshalAs(UnmanagedType.LPStr)], aby typy były zgodne)... ofc w obu przypadkach tracisz to co jest jedyną zaletą tych języków czyli wieloplatformowość, bez rekompilacji - również w drugą stronę nie jest lekko, ale o CLI to już lepiej nie gadać ;]. Na prawdę super eleganckie rozwiązania zamiast używać to trzeba brać i przepisywać ręcznie nagłówki (lub co gorsze pisać interface pośrednie tak jak w JNI) - no ale eleganckie nigdy nie miały być, a udostępniać to co w tych językach nie jest możliwe + masę rzeczy do których nie mieliby dostępu, przez niższą popularność języków (CUDA, OpenCL, DirectX, OpenGL etc.).
Te mechanizmy również ma C/C++ (LoadLibrary w windowsie, dlopen w uniksach), ale tu też nie obędzie się bez wskaźników (ciekawy jestem jak użyjesz referencji (czyli "zamiennika" wskaźników) w C++, aby pobrać wskaźnik na funkcję). OFC wskaźniki są niezbędne do wielu innych rzeczy, jak nawet najprostsza optymalizacja, np. zerując tablicę w pętli możesz dać "tablica = 0; i++;" z tym, że tracisz czas na dodawanie (tablica to inaczej taki wskaźnik "*(tablica + i)" - tak to kompilator widzi (możesz sprawdzić pisząc "i[tablica]) = 0;", gdzie nic błędnego nie będzie, bo dodawanie jest przemienne) - czyli masz niepotrzebne dodawanie, a można zerować miejsce w które wskazuje wskaźnik a następnie, zamiast i++ dać wsk++;. To tylko taki przykład jeden z milionów gdzie wskaźniki pokazują dlaczego zostały ;]).

Wskaźniki to nie referencję (chociaż w javie faktycznie referencję działaniem przypominają raczej wskaźniki, tyle, że dalej okrojone). Referencję to tylko skrawek możliwości wskaźników dlatego te dalej są nawet w C#, a jak język ich nie ma ogranicza bardzo możliwości programisty (może i ładniej wygląda, ale nie pozwala na przyspieszenie, i elastyczność).

Szablonami możesz zastąpić makra tylko takie gdzie typ danych się zmienia... jednak to jest wycinek tego co możesz zrobić w makrach (i osobiście wolę tu używać szablonów, bo makra dosyć niewygodne).
Szablony służą do definicji funkcji, klas, zmiennych etc. gdzie nie wiesz jaki jest typ... makra służą do definiowania czegokolwiek chcesz i jak chcesz.

pawel8891 pisze:P.S: w sieci trafiłem na świetną książkę o C++ "Język C++" Bjarne Stroustrupa autora pierwszej implementacji C++ (czyt. twórcy tego języka)

Bardzo dobra książka (mimo, że jestem karcony za jej polecanie, bo jest pisana bardzo suchym technicznym językiem (same fakty, zero gadania o zabawach w podchody w stylu symfonii, co imo jest największym minusem grębosza, ale innym się podoba ;p)). Tak dla sprostowanie nie twórcy, a współtwórcy (szefa, ale dalej współtwórcy) - z dostępnych książek współtwórców języka C++ to jeszcze "Podstawy Języka C++" Lippmana (tej książki nie czytałem, ale sądząc po innych jego książkach które czytałem, np. "Model obiektu w C++", raczej nie jest lekkostrawna ;]).

kabanek pisze:a jeśli chodzi o materiały w sieci to ja mogę z czystym sumieniem polecić http://www.gamedev.pl/tutorials.php
ja się z tego uczyłem i żadna symfonia itp mi potrzebna nie była:)

Podobno Xion się spisał, chociaż sądząc po ilości banalnych pytań językowych na forum gamedev z zaznaczeniem, że uczy się z jego kursu, mam małe wątpliwości (ale nie czytałem, ale od osób, na warsztacie słyszałem, że jest ok (poza małymi drobiazgami) i takie pytania są przez ilość uczących się, a nie przez jakość publikacji ;]).
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 »

OFC wskaźniki są niezbędne do wielu innych rzeczy
Kiedy ja dobrze wiem do czego służą i się przydają wskaźniki.
np. zerując tablicę
Można też wywołać memset (a, '\0', n); i nie tracić czasu na myślenie o wskaźnikach.

PS. Co do książek, w sieci jest dostępna za darmo "Thinking in C++" B. Eckel, godne polecenia.
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 »

el.pescado pisze: Można też wywołać memset (a, '\0', n); i nie tracić czasu na myślenie o wskaźnikach.
To z zerowaniem to tylko przykład, jednego z wielu zastosowań wskaźników w optymalizacji - no ale ok, jeśli chcesz tą optymalizację gdzie nie możesz użyć memset to ok dodaj do każdego elementu 3 lub pomnóż przez 2 (lub cokolwiek innego), etc.
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 pisze: Podobno Xion się spisał, chociaż sądząc po ilości banalnych pytań językowych na forum gamedev z zaznaczeniem, że uczy się z jego kursu, mam małe wątpliwości (ale nie czytałem, ale od osób, na warsztacie słyszałem, że jest ok (poza małymi drobiazgami) i takie pytania są przez ilość uczących się, a nie przez jakość publikacji ;]).
powiem Ci, że ten kurs plus umiejętność googlowania to wystarczy do nauki c++
prawie, że wszystko znajdzie się w internecie

a co do tych wskaźników, to wg mnie są ona potrzebne i się bardzo często przydają.

a co do pisania w C++ wstawiając tam kod z C, to wg mnie jeśli to tylko poprawi wydajność i szybkość aplikacji to nie widzę żadnego problemu
el.pescado pisze: Właśnie zgodność na poziomie źródłowym z C uważam za dużą wadę C++
jak ktoś nie chce korzystać z makr i tym podobnym z języka C, to niech nie korzysta :P tutaj został dany nam wybór i jak ktoś z niego skorzysta to jego sprawa :)
fyrdek
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 18 sie 2009, 00:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma

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

Post autor: fyrdek »

czy dobrze uwazam ze prosciej nauczyc sie najpierw C a dopiero potem 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 »

wg mnie lepiej zacząć do razu od 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 »

Zależy co chcesz osiągnąć. Pozornie łatwiej jest się nauczyć C a potem C++, ale wtedy ucząc się C++ możesz nabrać złych nawyków, poza tym będziesz się uczyć kilku niepotrzebnych (z punktu widzenia C++) rzeczy.

Jak chcesz się nauczyć C i C++, naucz się C a potem C++.
Jak chcesz się nauczyć po prostu C++, naucz się C++.
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 »

A jaki jest najlepszy podręcznik do nauki C? Oczywiście za darmo. Na wikibooks?
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:A jaki jest najlepszy podręcznik do nauki C? Oczywiście za darmo. Na wikibooks?
Myślę, że najlepszą pozycją (tylko nie darmową) jest "Język ANSI C", napisana przez Kernighana i Ritchie (twórców języka... zapewne nazwisko Ritchie znasz, bo stworzył on również z Thompsonem system Unix) i w Polsce wydana przez WNT.
Awatar użytkownika
Hauleth
Wytworny Kaczor
Wytworny Kaczor
Posty: 382
Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86

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

Post autor: Hauleth »

Jeśli mógł bym się wtrącić, to polecił bym na początek D, a C++ omijać szerokim łukiem. Ten język powstał chyba po to by pokazać ludziom, jakich języków nie robić.
Jeśli problem rozwiązany dodaj na początku tematu [SOLVED].

Biblioteka do C++ - Bust Lib: http://code.google.com/p/bust/
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 »

Ten język powstał chyba po to by pokazać ludziom, jakich języków nie robić.
Nie do końca. Legenda jest taka, że Bjarne Stroustrup zauważył, że C jest tak prostym językiem, że programiści piszący w tym języku zarabiali za mało pieniędzy. Wymyślił więc tak skomplikowany język, żeby tylko nieliczni mogli go pojąć, i przez co zarabiać więcej pieniędzy;)
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 »

Hauleth pisze:Jeśli mógł bym się wtrącić, to polecił bym na początek D, a C++ omijać szerokim łukiem. Ten język powstał chyba po to by pokazać ludziom, jakich języków nie robić.
D jest bardzo fajnym językiem, ale żeby warto było się nim zająć musi jeszcze dojrzeć... język ma dopiero kilka lat i kompilatory generują wolny (w sensie powolny, nie wolności ;]) kod, nie ma ide (tzn najlepszym jest plugin do eclipse, ale to ~alpha), brak profilerów, etc... no i najważniejsze - brak społeczności i bibliotek (aby użyć bibliotek pisanych w C to nagłówki musisz przepuścić przez program... który praktycznie zawsze źle generuje pliki *.d i musisz poprawiać ręcznie - z bibliotekami w C++ jest jeszcze gorzej). Podsumowując D jak najbardziej, ale nie wiem czy to dobry wybór na początek, bo póki co będzie sprawiał masę problemów.

C++ był tworzony prawie 30 lat temu i w tedy był przykładem, jak język powinien wyglądać... no i do teraz tak jest i nowe języki jak D, C#, Java, etc nie tak bardzo się od niego różnią - dają pewne ułatwienia w programowaniu kosztem wydajności i możliwości/elastyczności... zaraz wejdzie C++x0 (a tak naprawdę to już częściowo wchodzi do kompilatorów (jakby zebrać wszystkie kompilatory to cały C++0x już jest ;p)), który część rzeczy polepsza... ale inną część (względem łatwości pisania) dramatycznie pogarsza ;]... co do D to może kiedyś dorośnie i będzie wart zainteresowania... ale na razie nic na to nie wskazuje, więc nie ma się co go uczyć (tym bardziej w tym stadium jako pierwszy język).
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości