KDevelop (1) - Pripraviť, pozor, štart!

KDevelop (1) - Pripraviť, pozor, štart!
27.09.2007 22:00 | Články | Timotej Šiškovič
Mnohí ľudia ohŕňali nosom nad vývojom pod OS GNU/Linux. Ide hlavné o tých, ktorí si zvykli na komfortné prostredia Visual Studia, alebo prostredia produktov spoločnosti Borland. Tento článok vás však presvedčí o tom, že pod Linuxom to ide tiež, a dokonca lacnejšie, rýchlejšie a lepšie.

Úvod

Častokrát počúvame otázky nováčikov v programovaní typu: „Aké IDE (Integrated development environment) si mám vybrať? Je lepšie DevC++, alebo MSVC++?“ Fóra preplnené takýmito otázkami majú na svedomí viac, ako sa zdá.

Po prvé: nováčikovia začínajú programovať v zložitých IDE, ktorým nerozumejú a ktoré pred nimi skrývajú napríklad proces prekladu. Toto má za následok davy programátorov "borcov", ktorí programujú len pokým nepotrebujú niečo nastaviť ručne, prípadne nepotrebujú niečo, čo IDE nespraví za nich (prilinkovanie knižnice je pre nich cudzojazyčný výraz).

Po druhé: Vytvára sa značná komunita „hardcore systemlevel“ ľudí, ktorí neuznávajú nič iné, okrem rôznych „emacs a vim kultov.“ Títo pre zmenu tvrdia, že IDE potrebujú len BFU a oni riadia svet.

Ja tvrdím, že obe skupiny ľudí sa mýlia (veštím flame v diskusii). Mnohí z nás však vedia, že keď človek rozumie tomu, čo IDE robí, tak sa preňho stáva veľmi užitočným pomocníkom, hlavne (no nielen) pri projektoch väčšieho rozsahu. Preto som sa rozhodol pre popis IDE KDevelop, ktoré aktívne používam. Tento článok bude malou recenziou, alebo úvodným zoznámením s prostredím a základnými funkciami programu.

Inštalácia a spustenie

KDevelop sa nachádza v mnohých repozitároch, no odporúčam stiahnuť si aktuálnu verziu z kdevelop.org, kde ho nájdeme vo forme balíčku pre všetky hlavné distribúcie. V prípade, že by sa tam vaša distribúcia nenachádzala, odporúčam kompiláciu zo zdrojových kódov. Pre lepšiu orientáciu ešte uvediem, aby ste sťahovali verziu 3.4.X (Verzia 4, označená aj ako „head“ je port pre KDE4). Spustenie programu by malo fungovať normálne, cez KDE/Gnome menu.

Stručný popis

Takto nejako vyzerá hlavné okno, s rozpracovaným projektom (bočné panely sú otvorené zámerne a dajú sa samozrejme zavrieť pre úsporu miesta):


Samozrejmosťou, na ktorú sme pri takomto type programov zvyknutí, sú predpripravené šablóny projektov, ktoré nám bleskovou rýchlosťou pripravia vývojové prostredie a základný „ahoj svet“ program vybraného typu. Medzi takéto šablóny pre jazyk C a C++ patria okrem mnohých iných aj šablóny pre: konzolový helloworld program, linux kernel module, shared/static library, WxWidgets hello world, Gtk+, Qt, SDL, či Win 32 GUI. Medzi exotickejšie patrí napríklad šablóna pre Game Boy Advanced. Vymenovanie všetkých by bolo na samostatný článok.

Funkciou, ktorú teraz popíšem, je automatické doplňovanie kódu (podobné tomu v bashi, no značne vylepšené). Automatické dopĺňanie kódu funguje pod klávesovou skratkou Ctrl + Space. Stačí, že napíšeme časť mena funkcie/triedy/premennej (ďalej len objekty) a stlačíme Ctrl + Space. Ak je časť názvu objektu, ktorú sme už stihli napísať jednoznačná, tak je jej zvyšok automaticky doplnený. Ak nie je zadaná časť jednoznačná, dostaneme ponuku všetkých vyhovujúcich objektov. V prípade, že nie je zadané nič, zobrazí sa nám výber všetkých dostupných objektov. Ak zadáme napríklad len meno triedy, dostaneme na výber všetkých jej členov. SamozrejmosťoU je filtrovanie objektov, ktoré nie je možné v danom kontexte použiť (napríklad privátne premenné cudzej triedy). Všetko je upravené tak, aby sme počas písania nemuseli siahať na myš, čo hodnotím ako obrovské plus. Aby sa potešili aj oči, tu je príklad:


Ak si na túto funkciu zvyknete, zachvíľu zistíte, že vám ušetrí mnoho času strateného pri hľadaní názvu objektu, či času strateného pri rôznych preklepoch.

Užitočnou funkciou z tohto súdka je určite aj zobrazenie deklarácie funkcie, ktorú "ideme zavolať", čo sa hodí hlavne preto, že si nemusíme pamätať všetky parametre, ktoré funkcia vyžaduje. Najlepšie to asi uvidíte na obrázku:

Ďalšie z mnohých funkcií popíšem podrobnejšie v niektorom z ďalších článkov, tu ich aspoň vymenujem:

  • Plnohodnotný debugger s krokovaním v zdrojovom kóde
  • Dopĺňanie názvov premenných/funkcií
  • Kontrola syntaxe už počas písania
  • Zvýrazňovanie syntaxe
  • Možnosť zrolovať (uzavrieť) bloky kódu, ktorým sa nevenujete (hodí sa hlavne v dlhých súboroch, kde je to priam spásonosná funkcia)
  • Sprievodca pre vytváranie tried
  • Správca tried
  • Memory leak detector
  • Správa projektov (aj zložitejších, skladajúcich sa z viacerých podprojektov)
  • Správca prekladu (automake, cmake, qmake), ručné aj automatické linkovanie knižníc k projektu
  • Podpora viacerých cieľov kompilácie (compile target: debug, optimized …) s možnosťou nastavenia odlišných nastavení
  • Automatické vytváranie API dokumentácie
  • Vytváranie source aj binary balíčkov z projektu
  • GUI pre CVS, Subversion, Perforce a iné systémy na správu verzií
  • Prehliadač dokumentácie (online aj offline, všetká dokumentácia na jednom mieste aj s indexom a vyhľadávaním)
  • Vyhľadávanie v zdrojovom kóde projektu (aj v externom zdrojovom kóde) + inteligentné nahradenie názvu triedy/premennej/funkcie v celom projekte
  • Class inheritance diagram generator
  • Automatické formátovanie zdrojového kódu a možnosť zmeny štýlu formátovania podľa vašej chuti
  • Integrovaný grafický editor pre GUI (Gtk aj Qt)
  • Podpora komunity, ktorá je ochotná pomôcť ;-)
  • Mnoho a mnoho ďalšieho
Funkcie a ich úroveň sa môžu pri rôznych programovacích jazykoch líšiť. U C/C++ je na prvotriednej úrovni a predpokladám, že taká bude aj pri ostatných oficiálne podporovaných jazykoch.

Každý sloh musí mať záver ;-)

Dnešný diel bol skôr skrátenou recenziou na program, no už nabudúce si vytvoríme prvý projekt a popíšeme základné funkcie na správu projektov v praxi. Takisto si popíšeme, ako si vytvoriť projekt tak, aby ste v ňom mohli skúšať príklady zo seriálu "Programujeme v jazyku C", ktorý vychádza paralelne s týmto na portáli linuxos.sk
Vďaka za pozornosť.

Timotej Šiškovič

  • hardcore 28.09.2007 | 00:36
    Avatar uid0 Debian  Používateľ
    pokial sa znalost procesu prekladu nazyva "hardcore", tak tento svet sa nepopieratelne ruti do zahuby

    my 2 cents
    Debian. apt-get into it…
    • Re: hardcore 28.09.2007 | 00:41
      Avatar borg Fedora 20, Debian jessie  Administrátor
      mas to tam v uvodzovkach, tak to tak aj ber
      • Re: hardcore 28.09.2007 | 00:47
        Avatar uid0 Debian  Používateľ
        neviem co je myslene, takze som ten vyraz ouvodzovkoval
        Debian. apt-get into it…
  • folding 28.09.2007 | 00:52
    Avatar uid0 Debian  Používateľ
    nejde mi celkom do hlavy ako by sa tam zobrazoval nested folding, neviete? ja osobne ho nepouzivam, pripada mi to len dobre na to aby sa clovek vysomaril z glibc headerov (foldovanie #ifdef). ale inac viem o jednom cloveku, co to pouziva vo vime aj normalne
    Debian. apt-get into it…
  • pekne len tak dalej 28.09.2007 | 10:37
    Jarque   Návštevník
    Super len nech mi niekto sľúbi že další diel príde čoskoro. Asi sa toho nedá stihnúť viac ale kadencia článkov je dosť slabá.
  • Len tak dalej 28.09.2007 | 14:00
    Castler   Návštevník
    Zdravim, chcem vyjadrit len nazor, ze si tento clanok vazim. Som presne jeden z tych, co taketo clanky potrebuju ako sol, uz sa tesim na pokracovanie. Drzim palce a dufam ze serial bude dotiahnuty do konca.
    S pozdravom Castler
  • :-) 28.09.2007 | 20:32
    Tom@sQo   Návštevník
    ahoj,
    v dalsom dieli by si mohol vysvetlit co znamena ten cudzojazycny pojem(prilinkovanie knižnice) :-) taktiez, ako sa to da cele robit bez IDEcka ;) napr. ked mam program v gedite napisany, co mam robit, aby som ho skompiloval, ako tu mam prilinkovat kniznicu atd ;)
    • Re: :-) 28.09.2007 | 20:51
      Avatar borg Fedora 20, Debian jessie  Administrátor
      oslavenec ti na to vypluje dost odkazov, napriklad:
      http://www.network-theory.co.uk/docs/gccintro/gccintro_17.html
  • uz aby bolo pokracovanie 28.09.2007 | 22:53
    Avatar LUcoRP   Používateľ
    my chceme dalsi diel, my chceme dalsi diel :)))
    • Re: uz aby bolo pokracovanie 01.08.2009 | 11:56
      HLaQepKVpgSEGreYgD   Návštevník
      cheapest airfare consolidators; buy viagra; [url="http://www.waycrossmainstreet.org/buy_viagra.html"]buy viagra[/url]; http://www.waycrossmainstreet.org/buy_viagra.html buy viagra; 710617; buy propecia; [url="http://www.expedater.com/buypropecia.html"]buy propecia[/url]; http://www.expedater.com/buypropecia.html buy propecia; skxrg;
      • Re: uz aby bolo pokracovanie 12.03.2010 | 02:06
        GtTRNBPD   Návštevník
        upper cumberland lasix associates [url="http://www.joshstricklandonline.com/upper-cumberland-lasix-associates.html"]upper cumberland lasix associates[/url] http://www.joshstricklandonline.com/upper-cumberland-lasix-associates.html 68475 cialis not [url="http://www.barkerforsenate.com/cialis-not.html"]cialis not[/url] http://www.barkerforsenate.com/cialis-not.html :( how lorazepam is modified [url="http://www.barkerforsenate.com/how-lorazepam-is-modified.html"]how lorazepam is modified[/url] http://www.barkerforsenate.com/how-lorazepam-is-modified.html :-O phenaphen on line without a prescription [url="http://www.karenhermanforjudge.com/phenaphen-on-line-without-a-prescription.html"]phenaphen on line without a prescription[/url] http://www.karenhermanforjudge.com/phenaphen-on-line-without-a-prescription.html ivkna presciption dosage naproxen [url="http://www.barkerforsenate.com/presciption-dosage-naproxen.html"]presciption dosage naproxen[/url] http://www.barkerforsenate.com/presciption-dosage-naproxen.html 336090
  • PyQt 28.09.2007 | 22:59
    Avatar Dare_devil Debian, OpenSuse  Používateľ
    Neexistuje nieco take ale na pisanie okennych aplikacii v PyQt ? Je to spojenie pythonu a qtčka.. dost by mi to ulahcilo pracu :D
    There is no flag large enough to cover the shame of killing innocent people
    • Re: PyQt 28.09.2007 | 23:30
      pogo   Návštevník
      S PyQT nemam ziadne skusenosti, ale myslis nieco take visualne, kde si nahadzes komponenty na formular a mas uz okno? KDevelop to samozrejme umoznuje, alebo mozes pouzit QTDesigner.
    • Re: PyQt 29.09.2007 | 10:45
      Avatar kernel OpenSUSE, Gentoo  Používateľ
      Ano ak spustis kdevelop multilanguage, tak tam najdeš aj template nazvaný Python Qt Application.
      S programovaním ti však nepomôžem keďže Python som zatiaľ nikdy neštudoval/nepotreboval.
      There are only 10 types of people in the world: Those who understand binary and those who don´t.
    • Re: PyQt 29.09.2007 | 11:25
      Avatar Miroslav Bendík Gentoo  Administrátor
      PyQT podporuje *.ui súbory generované designer-om. Ak chceš niečo šialené skús eric3, alebo eric4 ;)
      Chat! | stop autoconf insanity! configure suxors! cmake rulez
  • super 09.10.2007 | 11:24
    jimik   Návštevník
    koli tomuto clanku zacnem linuxos.sk navstevovat pravidelne. Dakujem.
  • People should also read 20.06.2009 | 22:13
    Galilee   Návštevník
    buy levitra -levitra buy propecia -propecia buy zithromax -zithromax buy xenical -xenical buy ultram -ultram buy fioricet -fioricet buy valium -valium buy acomplia -acomplia buy prozac -prozac buy ativan -ativan