Stranica: 1/2.

[C++] Moj početak

Postano: 11 ožu 2012, 14:09
Postao/la ant1h3r0
Kao prvo, cilj mi je naučiti raditi aplikacije i što god me pukne za linux platformu. Tek sam se počeo snalaziti na linuxu i smatram se noobom. U programiranju nisam nov, znam OO i hrpu design patterna i ne trebam učiti programirat već samo naučiti novi jezik i pohvatati kako stvari rade.

Duže vrijeme tražim jezik koji bi bio prikladan za razvoj aplikacija na linuxu. Preferiram moć jezika ispred jednostavnosti. Javu sam otpisao jer je JVM prespor. Volim OO ali ne bježim od proceduralnog programiranja. Zato sam se na koncu odlučio za C++. Davno sam prije učio C i malo sam osvježio sjećanje i isprogramirao sample GTK aplikaciju u C-u. Ako sam dobro shvatio, sve je moguće i napraviti i programirati u linuxu i sa C++ samo treba imati odgovarajuće library-e.

Odlučio sam da ću za početak nabaviti knjigu C++ Primer da se ufuram u C++ i uhvatim sintaksu. Zatim mislim pročitati knjigu The C++ Programming Language da pohvatam napredno programiranje. Usputno mislim još pročitati i knjigu The Linux Programming Interface: A Linux and UNIX System Programming Handbook da se educiram o linuxu.

Isprobavao sam neke IDE-e i editore i zadržao se na Code::Blocks-u iako sam otvoren za promjenu.

Zanima me mišljenje iskusnijih programera i naravno bilo kakvi savjeti i prijedlozi, na što da pripazim ili što da izbjegavam na ovom putu. :-)

Re: [C++] Moj početak

Postano: 11 ožu 2012, 14:56
Postao/la stefan
Prema ovome što si napisao, imaš idealne temelje za C++/Qt.
Ako voliš OO i C++ biti će to ljubav na prvi pogled. Naravno da moraš dobro znati C++ ali i sa osnovnim znanjem možeš napraviti dosta u Qt-u. Nivo C++a koji ti treba je:
  • pointeri
  • klase
  • naslijeđivanje i virtualne funkcije
i naravno sve što ide prije toga (sintaksa, tipovi, petlje, logički uvijeti...) - ali to pretpostavljam da znaš.

Neke (meni) bitne karakteristike Qt-a:
  • Signals & Slots komunikacija [url]
  • Metaprogramming [url]
  • Qt Designer [url]
  • qmake [url]
  • QML [url]
Preporučena literatura:
  • Jasmin Blanchette, Mark Summerfield; C++ GUI Programming with Qt 4; 2008[amazon]
  • Mark Summerfield; Advanced Qt Programming - Creating Great Software with C++ and Qt 4; 2010 [amazon]
  • Alan Ezust, Paul Ezust; Introduction to Design Patterns in C++ with Qt; 2010 [amazon]
  • Qt 4.8 Documentation [url]
  • Qt Centre [url]
  • ICS Network [url]
Za navedene 3 knjige se daju naći PDF-ovi :zvizdi

Preporučeni IDE-i:
  • Qt Creator [url]
  • KDevelop [url]
  • Eclipse CDT [url]
Ako ti treba još nešto, samo pitaj.

Re: [C++] Moj početak

Postano: 11 ožu 2012, 19:39
Postao/la ant1h3r0
Ej stefan, puno hvala na odgovoru i linkovima.

Koja je razlika u izradi aplikacija za Gnome odnosno KDE okruženje? Koristim XFCE koji koristi GTK+ widgete. Da li programiranje u Qt-u znači izradu aplikacija za KDE ili postoji mogućnost exportanja za Gnome? U principu ako sam dobro shvatio, KDE aplikacije mogu biti i na Gnome-u? To se pokreće preko nekog wrappera ili? Nisam siguran kako to funkcionira...

Re: [C++] Moj početak

Postano: 11 ožu 2012, 20:45
Postao/la stefan
U principu te to ništa ne mora brinuti.
Nekad je postojala razlika u izgledu Qt/GTK aplikacija na KDE/Gnome/XFCE-u, ali to već dugo funkcionira kako spada...
Qt aplikacije jednako dobro izgledaju na KDE-u i na Gnome-u. Uopće se, po izgledu, ne može skužiti u čemu je aplikacija pisana.

Kompajliraš kod na npr openSUSE-u KDE i taj binary baciš na Mint Gnome. Na suseu će izgledati kao KDE a na Mintu kao Gnome. Naravno, moraš imati instalirane Qt biblioteke, ali ionako vjerojatno koristiš neki Qt program - pa su ti već instalirane.

Re: [C++] Moj početak

Postano: 11 ožu 2012, 20:53
Postao/la jjj
Nemoj miješati Qt i KDE (ista razlika kao Gnome i GTK). Naravno, moguće je pokretati KDE aplikacije pod Gnomeom, ako imaš odgovarajuće dependencyje. No jedini dependency za Qt aplikacije jest dakako Qt (u najjednostavnijem mogućem slučaju).

Re: [C++] Moj početak

Postano: 12 ožu 2012, 19:58
Postao/la ant1h3r0
Ok, odlično, puno hvala! Bacam se onda na Qt.

Još jedno pitanje, da li isto stečeno znanje primjenjivo i na izradu aplikacija za Android? Pretpostavljam da je budući da je linux-based i da samo treba ukomponirati odgovarajuće library-e.

Re: [C++] Moj početak

Postano: 12 ožu 2012, 20:25
Postao/la drone
Ne baš, osim generalno kao što bi ti znanje stečeno pod windowsima donekle koristilo i za druge platforme. Android je baziran na Javi, ima svoj Android SDK i mislim da je Eclipse najkorišteniji IDE za razvoj Android aplikacija.

Re: [C++] Moj početak

Postano: 12 ožu 2012, 21:23
Postao/la retsam
ant1h3r0 je napisao/la:Ok, odlično, puno hvala! Bacam se onda na Qt.

Još jedno pitanje, da li isto stečeno znanje primjenjivo i na izradu aplikacija za Android? Pretpostavljam da je budući da je linux-based i da samo treba ukomponirati odgovarajuće library-e.
Može pomoći u generalnom razvijanju preodžbe o konceptu razvoj OOP orjentiranih aplikacja, ali ti generalno neće pomoći, ako su ti aplikacije za android prioritet onda se baci na javu mislim da je bolje zacrtati si neke ciljeve nego utrošiti vrijeme (naravno ono nije utrošeno, ali ako ti je cilj android promašio si jezik )

Re: [C++] Moj početak

Postano: 12 ožu 2012, 22:30
Postao/la stefan
Mogu reći da znam dobro C++/Qt (ako ne i odlično :zvizdi ) i probao sam prčkati sa Android SDK-om i nisam mogao naći neke poveznice...
Nadam se da bi Qt mogao nekako dobiti podršku za android (http://code.google.com/p/android-lighthouse/, http://labs.qt.nokia.com/2011/02/28/necessitas/), jer Java mi nije legla...

Re: [C++] Moj početak

Postano: 13 ožu 2012, 07:33
Postao/la ant1h3r0
Android mi nije prioritet, već dodatak. Nažalost nisam kliknuo s Javom, ne sviđa mi se JVM. Ali dobro, ako bude potrebe, znam od kud počet i gdje tražit. :-)