Portál AbcLinuxu, 3. května 2025 14:11
No, zazněl tady názor, že IDE pro C apod. je blbost. Já si myslím, naprostý opak. Dělal jsem už velké projekty, a bez IDE si to nedokážu představit. Pro korektní srovnání budu předpokládat, že netvořím žádnou grafickou, ani databázovou aplikaci (kolik jich ale takových je, že? moc ne), kde by byla potřeba IDE naprosto neoddiskutovatelná.
Znovu připomínám, že se schválně zaměřuji jen a pouze na práci s IDE v případě čistého C pro konzolové aplikace bez grafiky, databází a dalších vymožeností. Pokud byste jen trochu připustili něco jiného, výhody IDE by rázem vyrostly na několikanásobek, protože IDE většinou mívají pro tyto případy speciální podporu, se kterou se prostě trojice gcc, make, gdb nemůže opravdu rovnat.
Spousta výhod se odvíjí už od toho, že IDE většinou rozumí konkrétnímu programovacímu jazyku, se kterým pracujete. Podle mě obecné IDE, které zvládnou práci s desítkami jazyků nejsou moc dobré, ani moc efektivní na používání.
Začne to už založením projektu. Je naprosto snadné prostě vybrat soubory, které budou součástí projektu a vložit je do projektu. Stejně tak je snadné nastavit volby kompilátoru pro debug a release verzi. Pokud chci makefile, nechám si ho vygenerovat. Pro mě je to příjemnější cesta, než rovnou psát makefile, ale řekněme, že v rychlosti způsobu práce je IDE a přímé psaní makefile srovnatelné, abych moc neprovokoval.
Pak to začne samotným psaním zdrojáků. Slušné IDE proskanuje všechny zdrojové kódy a hlavičkové soubory a je schopno vám velice efektivně napovídat různé funkce, metody, parametry, třídy, apod.. Pokud pracujete v týmu a pracujete s kódem druhých lidí, a tvoříte větší projekt, pak vám to velice ušetří práci a čas. V dokumentaci si přečtu, co který objekt dělá, jaký má interface. Ale díky IDE nelistuji pořád neustále v dokumentaci jenom proto, abych se podíval na pořadí parametrů každé metody, nebo funkce. Stejně tak mi napoví název metody, když jej jenom zhruba tuším. Velmi výrazně to urychluje práci, a nemusíte se zabývat drobnostma. A to už vůbec nemluvím o možnosti browseru objektů, apod.., což je někdy k nezaplacení.
Další kapitolou je samo o sobě ladění. Zkuste si porovnat efektivitu ladění pomocí gdb, a pomocí dobrého IDE. Troufám si říct, že IDE vede v ladění s přehledem o několik délek. Nikdy jsem nepřišel gdb na chuť. Už jenom to, že můžete mít stabilně vypsáno v IDE přehled lokálních proměnných, seznam hodnot výrazů, které vás zajímá, vše samozřejmě neustále automaticky aktualizováno. Pokud najedete myší na proměnnou, nebo výraz, který vás zajímá, automaticky se zobrazí výsledná hodnota. Možnosti debufferu pod slušným IDE jsou samozřejmě velmi rozsáhlé a troufám si říci, že v efektivitě použítí tomu gdb nasahá ani po kolena. A vzhledem k tomu, že ladění zabírá slušnou část práce programátora, je to důvod pro IDE. K efektivitě práce s IDE také přispívá to, že IDE většinou perfektně rozumí celému kontextu daného programovacího jazyka a struktuře jeho proměnných, zatímco gdb je poněkud obecnější a méně konkrétní.
K zahození ani dobrá integrace IDE s nápovědou. Tady bohužel vede Microsoft, protože si stačí nainstalovat MSDN, a máte všechno na dosah. Velmi to šetří práci, prostě najedete na slovo, zmáčknete F1 a dostanete nápovědu, ať už je to funkce C, nebo třída v C++, nebo nějaká funkce API operačního systému, či nějaká funkce z mnoha rozsáhlých nadstavbových knihoven. Velmi to urchluje práci.
Samotné IDE toho dokáže daleko více. Tedy dobré IDE. Ale podle mého dobré IDE ušetří velmi mnoho práce a jde to rychleji.
Dovolte taky jeden názor, proč si myslím, že spousta lidí je proti IDE. Je to proto, že ve skutečnosti je jenom velmi málo skutečně dobrých IDE. Měl jsem tu čest dělat ve Visual C++ 6.0, a ačkoli je to už pěkně starý brontosaurus, nenašel jsem žádné open source IDE prostředí, který by se mu alespoň na 10% vyrovnalo v jeho efektivitě při práci byť v čistém C/C++. Když porovnám práci třeba s DevCpp, nebo Mingw developer studio (které je podle mě lepší, než DevCpp), či CodeBlocks, které jsem vyzkoušel pod Windows (a to vyjmenovávám jenom ty lepší IDE, zažil jsem mnohem víc daleko horších), tak souhlasím s tím, že takové IDE pomáhá jen trochu a zase tolik nepřináší oproti práci s čistými příkazovými utilitkami. I když to ladění je přeci jenom příjemnější i v těchto IDE oproti gdb. Bohužel, obávám se, že pro Linux neexistuje žádné dobré IDE, tak se vůbec nedivím argumentům proti IDE na Linuxu.
Jedinou věc, která mi v IDE trochu chybí je lepší editor. Trochu to vylepšuji tím, že do Visual C++ integruji vim, který dává mnohem lepší editační možnosti. Případně si vybírám IDE, které mají pro editaci integrovánu komponentu Scintilla, kterou vysoce uznávám, a kterou má v sobě integrovanou třeba MIngw developer studio.
A teď mě sežerte.
Tiskni
Sdílej:
IDE není blbost. Důvodů k jeho použití je celá řada - např.:
Otázka samozřejmě je, jak to které IDE plní požadovaná kritéria.
No, pěkná alegorie
To je právě to, co píšu ve svém zápisku. Neexistuje univerzální IDE, které umí dobře spoustu programovacích jazyků. Pro mě je Eclipse na Javu a tam taky patří. Když budu dělat v Javě, tak určitě sáhnu po Eclipse (tedy pokud budu mít po ruce dostatečně výkonný stroj, on to taky není žádný drobeček).Ještě doporučuji shlédnout Intellij Idea. Je sice (IMHO) pořád trochu před Eclipse co do featur, ale na druhou stranu není zadarmo. Paradoxní je, že když jsem je naposledy porovnával tak Eclipse bylo výrazně pomalejší, ačkoliv bych kvůli použitému SWT očekával opak. Alespoň tedy pod Linuxem a jdk 1.5, možná pod Windows je situace jiná.
Pokud nějaké IDE začne mít tendenci být příliš univerzální a podporovat mnoho jazyků, tak nastane jedna ze dvou možností: 1) takové IDE začne být pro většinu jazyků méně efektivní, než kdyby se vzal nástroj zaměřený na konrétní jazyk, nebo 2) takové IDE je geniálně a univerzálně navrženo, což je ale varianta, se kterou jsem se ještě nesetkal, takže možná někdy v budoucnuEclipse je univerzální, protože samo o sobě je vlastně jen plugin framework
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.