Portál AbcLinuxu, 30. dubna 2025 11:29
PHP
Pro vývoj PHP projektů se jistě bude hodit skupina následujících kvalitních nástrojů jako BlueFish, NetBeans 6.5 beta PHP, gPHPedit, Zend IDE, Screem či Quanta+. Pomocí těchto nástrojů můžete plnohodnotně pracovat. Zvýrazňování syntaxí, doplňování, označování řádků či kvalitní nápověda atd. Je základním vybavením těchto editorů. Navzájem se, ale liší svým pracovním rozhraním či možnostmi.
ASP.NET
Pro vývojáře APS.NET existuje i v Linuxu dobré vývojové rozhraní. Jmenuje se MonoDevelop. V této aplikaci můžete programovat v jazyce C, C# (ASP.NET), CPP a VBNet. Celé rozhraní vám jistě bude připomínat SharpDevelop, který možná znáte z Windows. Proto ovládání jistě nebude dělat nikomu problémy.
C/C++
Pokud programujete v jazyce C tak v Linuxu Vám mohu doporučit IDE Kdevelop nebo Anjuntu. Ovšem znalci použiji pro vývoj své aplikace v C klidně i editor Vim či Emacs. Jako překladač použijí jistě gcc (ten je běžnou součástí téměř každé distribuce). K ladění jistě dobře polouží gdb,ddd či valgrind. Další zástupci jsou například KDE Studio, VisKProg, VKDBuilder.
Pascal
Příznivci jazyka Pascal ocení jistě následujíc IDE Lazarus, Borland’s Kylix Open Editon či RHIDE. Ovšem Lazarus jistě bude ve většině distribucí asi nejdostupnější.
PERL a Python
Tyto dva jazyky jsou spíše situované pro Linux, ale dle mě je nutnost je zmínit. Pro Perl jistě oceníte wxPerl nebo PerlComposer. Pro Python Boa-Constructor či Cooledit, Jext nebo SPE.
Java
Programátoři v jazyce Java mají snad největší výběr nástrojů. Ovšem zmíním asi nejlepší NetBeans a další možnosti jsou jedi, JOODA, Sun One Studio 4, Exlixir, Amy či Anyl.Na základě komentáře doplním ještě Eclipse (díky za tip).
Tiskni
Sdílej:
v software inzenyrstvi se bezne uvazuje, ze v projektech je vykon tak 10 radku kodu za den.Pokud mě paměť neklame, tak při metodě COCOMO se jako základní údaj považovalo 50 řádků denně. Ale nic to nemění na faktu, že napsat (při rozdílně kvalitním IDE) průměrně 8 nebo 10 řádků (resp. 40 nebo 50) je rozdíl - může to být přesně takový rozdíl, který způsobí, že dá zákazník přednost konkurenci, protože bude (jinak při všech parametrech shodných) o tyto peníze levnější.
IDE je vymysl softwarovach firem, ktere chteji prodavat produkty. S vykonosti v projektech to nema vubec nic spolecneho.Nesmysl. IDE je velmi dobrá věc, která umožňuje člověku nezabývat se zbytečnou otrockou prací a soustředit se na samotný vývoj. Proč by měl vývojář pokaždé řešit, jak napsat Makefile (nebo jiný podobný soubor), když ho to v podstatě vůbec nezajímá - většinou jde jen o nastavení pár důležitých parametrů, a ty se právě nastaví v IDE. O zbytek už se IDE postará. A takových věcí je tam spousta.
To je fakt. Proč psát slušný Makefile, když se může o kompilaci na mé mašině krásně postarat IDE. Jen ať několikanásobek toho času, co bych vyráběl Makefile, zabije někdo jiný, až se to bude snažit kompilovat na nějaké zcela jiné platformě.Jenže problém není v tom, že se používá IDE. IDE může také (přímo nebo třeba prostřednictvím autotools) ten Makefile vytvořit také, a to kvalitní. Jde o to, že ten Makefile se od aplikace k aplikaci většinou moc neliší. Jenže vrtat se v něm ručně, je (přinejmenším pro některé lidi, třeba pro mě) zdlouhavé a IDE to může vyřešit rychle a pohodlně.
Autotools a kvalitní makefile? V jedné větě? V jedné pozitivní větě???Proč by se z autotools nedal získat kvalitní makefile? Pokud nemusím autotools krotit ručně...
v něčem větším obvykle potřebujete spoustu podmíněných překladůNení pravda. Přítomnost spousty podmíněných překladů svědčí obvykle o špatné koncepci vývoje. Dobrou zásadou je specifické věci vytěsňovat stranou a co nejvíc toho mít plně přenositelného. Někdy to příliš nejde, ale většinou ano.
Proč by se z autotools nedal získat kvalitní makefile?Proti autoconfu nic nemám, ale viděl jste někdy makefile vygenerovaný automakem? Kdyby nic jiného, tak je naprosto nečitelný, a tím pádem také nedebugovatelný.
Není pravda. Přítomnost spousty podmíněných překladů svědčí obvykle o špatné koncepci vývoje. Dobrou zásadou je specifické věci vytěsňovat stranou a co nejvíc toho mít plně přenositelného.S vytěsňováním specifických věcí stranou nelze než souhlasit, ale jaksi i o ty vytěsněné specifické věci se musí nějaká forma podmíněné kompilace starat.
viděl jste někdy makefile vygenerovaný automakem? Kdyby nic jiného, tak je naprosto nečitelný, a tím pádem také nedebugovatelný.Viděl jsem ho mockrát, je odporný
i o ty vytěsněné specifické věci se musí nějaká forma podmíněné kompilace staratTo ano, ale už to nemusí být spousta podmíněného překladu, nýbrž poměrně málo. Tím spíš, že přímo v aplikacích se většinou takové platformově specifické záležitosti neřeší, je vhodnější to mít v knihovnách.
Počítám, že takový Michal Vyskočil by to řekl ještě trochu jinak...)Teď nevím, co bych měl říct. Netbeans vytváří poměrně použitelný
build.xml
sám od sebe a Eclipse se k tomu taky dá dožduchat. S projektem z Intelli Idea jsem se tuším ještě nepotkal. Ale dokud mi někdo nepodstrkuje mavení skripty, tak si nemám na co stěžovat 10 řádků za den ?Nejde len o to, aby si napísal 10 riadkov kódu, ale o to, aby tie riadky boli dobré a nemusel si sa k nim vracať. Mám kolegu, ktorý robí v Delphi a spláca dohromady aplikáciu behom pár dní. Ale potom sa v tej aplikácii ešte hrabe roky a často prepisuje nezanedbateľný objem kódu. Je pravdou, že IDE odľahčuje programátora od niektorých činností a preto prispieva k rýchlemu vytvoreniu prototypu. Na druhej strane ten, kto robí bez IDE programuje tak, že si veci najprv sakra premyslí, pretože vie, že meniť koncept po napísaní dvoch tretín kódu ho riadne zdrží. Takže ten, kto robí bez IDE, tak produkuje premyslenejší kód. A je z toho klasická dilema medzi kvantitou a kvalitou. Ďalším problémom IDE (hovorím teraz prevažne o MSVC), je naviazanie na nejaký systém práce. Použijete nejakého wizarda, ten podmieni použitie nejakého toolkitu, a ten podmieni použitie nejakej platformy, ... -- Cheap, fast, good. Pick two.
ctags
, ale stejně: jak to dělají? Nebo je to jenom v tom, že jsou prostě lepší než my, normální lidi, a dokážou to i s grep
em a sed
em? mi jde vždycky hlava kolem, když začnu přemýšlet, jak asi ti kerneloví hackeři dokážou se zmíněnými prostředky pracovat s takovou hromadou kóduOno je to do značné míry tím, jak člověk myslí, jaké má myšlenkové pochody. Pro někoho není problém naučit se a bez problémů používat obrovské množství klávesových zkratek (a proto preferuje například
vim
), někdo jiný (včetně mě) velmi ocení, když pracuje v prostředí, které poskytuje jiné prostředky pro přístup k funkcím.
Nebo je to jenom v tom, že jsou prostě lepší než my, normální lidi, a dokážou to i s grepem a sedem?Nejsou lepší, jsou jiní. Dokáží pracovat s low-level nástroji, ale mnohdy jim zase uniká mnoho aspektů toho, co vyvíjejí. To je mimochodem jeden z velkých problémů mnohého svobodného SW - že ho vytvářejí právě lidé, kteří jsou hodně "hardcore" a například se často nedokáží na program podívat pohledem BFU.
To je mimochodem jeden z velkých problémů mnohého svobodného SW - že ho vytvářejí právě lidé, kteří jsou hodně "hardcore" a například se často nedokáží na program podívat pohledem BFU.Mnozí to bez problémů dokáží, ale povězte mi, proč by se tak vlastně měli na program dívat? Málokdo považuje za smysl svého života psát programy pro BFU, lidé pro radost spíš programují věci, které se hodí jim samým. Proto také mezi free softwarem najdete nejvíc nástrojů pro programátory a adminstrátory, a pak také spoustu her, zato balíků pro kancelářské myši je pomálu (tedy mimo solitéru, to je beztak nejdůležitější kancelářská aplikace, a tam Linux jasně vede
proč by se tak vlastně měli na program dívat? Málokdo považuje za smysl svého života psát programy pro BFU, lidé pro radost spíš programují věci, které se hodí jim samým.Nechť si každý tvoří programy, pro koho chce. Ale pak se nemůže divit, že lidé dají raději přednost proprietárnímu programu, třeba od Microsoftu
(Fortunka o tom říká: "Píšete-li program tak, aby ho mohli používat i blbci, riskujete, že ho budou používat jenom blbci.")Platí toto také třeba o Firefoxu?
Ale pak se nemůže divit, že lidé dají raději přednost proprietárnímu programu, třeba od MicrosoftuJá jim to také nikterak nemám za zlé. Pokud nalézají své štěstí tam, proč ne. Tedy když dokáží pochopit, že to není jediný svět a že posílat mailem wordovské dokumenty nic netušícím obětem je čuňačina.
Platí toto také třeba o Firefoxu?Žel zrovna Firefox k tomu v poslední době povážlivě konverguje...
Mnozí to bez problémů dokáží, ale povězte mi, proč by se tak vlastně měli na program dívat? Málokdo považuje za smysl svého života psát programy pro BFU, lidé pro radost spíš programují věci, které se hodí jim samým.Ja si myslim, ze tento problem ma reseni. Oddelit navrh GUI od aplikace natolik, aby se GUI dalo navrhovat v nejakem GUI a nevyzadovalo takrka zadne znalosti programovani (a linkovalo se k aplikaci dynamicky). Pak by si BFU vyhrali s GUI v GUI a programatori by si mohli vesele dal programovat sve operacni systemy a podobne veci. Jiste jsou zde problemy, jako custom widgety pro graficky program a podobne, ale to by s trochou snahy slo poresit. Neco podobneho uz de facto mame u webovych aplikaci - HTML/CSS definuje GUI a aplikacni logika na serveru definuje ten program samotny.
napr. u GUI je zcela nepodstatne, je-li v interpretovanem jazyce, protoze se stejne vetsinu casu ceka na uzivatele nabo na vykresleni prislusneym toolkitem.Pokud ovšem ten interpretovaný jazyk není tak pomalý, že vykreslení GUI trvá půl dne.
Spis si predstavuji neco jako HTML/CSS + sablonovaci system.Jo, to je přesně příklad jazyka, kde se všechno bude vykreslovat půl dne.
x=ziskejvstup(); x=provedvypocetA(x); y=provedvypocetB(y); if (x>y) z=x*provedvypocetC(y); else z=provedvypocetD(x); vypis(z);a tato fce vrací něco jiného, než co by měla, tak je velice snadné na první řádku hodit breakpoint, spustit jeden krok, najet myší nad x a zkontrolovat hodnotu, další krok, zase zkontrolovat x,... Nebo píšete plugin do něčeho složitějšího a v dokumentaci je napsáno něco jako "vaše fce jako parametr obrdží proměnné in a out. V in budou data, vy provedete požadovanou operaci a výsledek umístíte do out". Když zjišťujete, proč to nechodí, tak zjistíte, že nějakým nedopatřením data dorazila v proměnné out místo in. Pak se skákání po kódu s rychlou kontorolou hodnot opravdu hodně hodí, pokud chcete projet celý cizí kód až do místa, kde vás volá a zjistit, kde se stala chybka... A breakpointy na změnu dat považuju za naprosto samozřejmou věc, to má každé slušné IDE
a tato fce vrací něco jiného, než co by měla, tak je velice snadné na první řádku hodit breakpoint, spustit jeden krok, najet myší nad x a zkontrolovat hodnotu, další krok, zase zkontrolovat x,...Což při tisícovce iterací je velmi zábavné a tato zábava vydrží vélmi dlouho
x
, program spustit a pak si pohodlně přečíst, jak se hodnota vyvíjela.
Mozna by pomohly reverzibilni debuggery nebo debuggery co by si byly schopne zapamatovat urcity stav, a provadet treba puleni intervalu. Ale to je zatim asi hudba budoucnosti.Debugging Backwards in Time – odkaz vede na Google Video.
Myslim, ze tam dokazuje, ze abychom mohli provadet vypocet pozpatku (treba krokovat zpatky v debuggeru), tak nam staci akorat 2x tolik pameti nez pro puvodni program. Akorat by mozna byl problem s vecmi jako sitova komunikace, ta by se asi musela ukladat nejak zvlast.Moc si tuhle redukci nepamatuji, ale není to náhodou tak, že se lineárního prostoru dá dosáhnout jen za cenu značného prodloužení výpočtu? (Jinak používat na reverzibilní debugování překladač do reverzibilního kódu je velmi pěkný nápad, jen asi v praxi nepříliš použítelný, protože reverzibilní syscally ještě kernel neumí.)
Tak jsem nad tim jeste premyslel, a zda se, ze s debuggerem je hlavni problem, trefit se pred to misto, nez dochazi k te samotne chybe. Pokud se totiz netrefite a skoncite az za ni, musite to pustit cele od zacatku, protoze v debuggeru se divate jen na jeden stav a navic nemuzete zpet. Naopak u ladicich vypisu muze clovek behat tam a zpet, pulit interval apod., takze muze nektere chyby skutecne odhalit rychleji.To je problém i u ladících výpisů. Buď jich musíte nasekat do kódu nehorázné množství nebo použít třeba to půlení intervalů. Tzn. dát si jich několik, pak to spustit, přidat další výpisy podle toho, kde něco nesedí, znovu spustit,... A to se dá snadno použít i s debugerem. Dojedu tam, kde vím, že už je něco špatně, podívám se na stack trace, odhadnu, kde se tak chyba asi může začít objevovat, dám si tam breakpoint, znovu spustím a půlím intervaly. Výhodou je, že při půlení "po směru" běhu programu můžu breakpointy přidávat bez problému. A protože můžu spouštět celé funkce jako jeden skok, tak je to někdy velmi rychlé... A pokud mi debuger umožňuje měnit hodnoty proměnných tak dokonce v některých případech můžu chybu "opravit" a koukat, zda dál je všechno v pořádku...
Aah, vzdycky, kdyz nad temihle vecmi premyslim, rikam si, jake uzasne nastroje budou mit programatori za takovych 50-100 let. O tom se nam ani nezda.Za 50-100 let? Pokud se nepletu, tak tohle všechno umí Smalltalk.![]()
u každé datové struktury jako první implementovat vypisovátkotak toto je miesto, kde mi do práce skočilo XSLT (pozitívne)
když počítač myslí na mneZa mne. No jo, nenapověděl mi :o)
complete
a tím si vybereš, které typy kompletace mají být zapnuté).
Pracoval jste nebo aspoň viděl IDE VS?Zjevně ne. Několik let jsem s VS pracoval denně, v posledních 2 letech pak zhruba 5-20 hodin týdně (různé verze od VS 6 po VS 2008). Hodně jsem se napracoval též s různými IDE v Linuxu (hlavně Eclipse+CDT, NetBeans, Anjuta, KDevelop) a dost jsem toho vyvinul i s pouhou kombinací editoru (ne, vim to nebyl
Na základě komentáře byl doplněn Eclipse...? No nevím nevím, já ho na důležitých místech pořád ještě nevidím.
Eclipse citelně chybí u PHP. Jde o jeden z nejpokročilejších zdarma dostupných nástrojů pro psaní PHP pod Linuxem.
U C a C++ taktéž nevidím jedinou zmínku o Eclipse. KDevelop mu nesahá ani po kotníky. Anjuta zase nesahá ani po kotníky KDevelopu. Eclipse se svou podporou několika debuggerů a několika kompilátorů a s mimořádně inteligentní code-completion, fungující rozumně i v tak nepřesně typovaném jazyce, jako je C, je mezi volně dostupnými prostředími opravdu špička.
V případě Javy by měl Eclipse IMHO zaujímat první místo, pak by měla být obrovská černočerná propast a teprve potom všechno ostatní, NetBeans počínaje. Jednu dobu jsem něco psal střídavě v NetBeans a Eclipse, ale source-level debugging a code completion byly v Eclipse o tolik pokročilejší, že u mě nakonec zvítězil. (A to i přes velkou spoustu vlastností, které má NetBeans oproti Eclipse navíc.)
Zásadní otázka, bez níž diskuse na toto téma nemá smysl: Kolik bugů jsi ohlásil?
Eclipse používá denně veklá spousta uživatelů, včetně hodně velkých firem. Pokud někomu nefunguje, problém může být třeba v distribučním balíčku nebo mezi židlí a klávesnicí. Například ArchLinux měl asi půl roku v repository vadný balíček, který byl prakticky nepoužitelný. To ale ještě nemusí znamenat, že jde o chybu Eclipse.
Zásadní otázka, bez níž diskuse na toto téma nemá smysl: Kolik bugů jsi ohlásil?Špatně. Nic hlásit nemusí. Když si stáhneš trialku Photoshopu a program ti nesedí, také to nehlásíš jako chyby. Prostě trialku odinstaluješ a Photoshop nekoupíš. Jemu "zkušební" verze Eclipse nevyhovovala, tak ji smazal. S úspěchem používá jiný produkt, který mu víc vyhovuje.
Eclipse používá denně veklá spousta uživatelů, včetně hodně velkých firem.Protože v době, kdy IBM uvolnilo Eclipse platform, nic jiného zadarmo nebylo. Tenkrát měl Eclipse víc funkcí než měla konkurence, tak jej uživatelé začali používat (volba menšího zla). V dnešní době se používá jen kvůli tomu, že vývojáři jsou líní zmigrovat nezmigrovatelné do jiného IDE. Mimochodem: znáš tu historku o tom, proč IBM Eclipse uvolnilo?
Zaprvé, Photoshop je placený software určený ke zcela jinému účelu a nelze ho tedy srovnávat s Eclipse. Zadruhé, Eclipse je momentálně open-source projekt. Je každému zdarma dostupný. Pokud tedy mám pocit, že obsahuje chyby, nahlásím je. A učiním tak dřív, než začnu tento produkt jakkoliv pomlouvat. Jistě, nic hlásit nemusí. Pak je ovšem rozumné vyvarovat se jakýchkoliv hodnotících soudů ohledně toho software.
Nechť mi někdo ukáže jediné IDE pro Javu, které předčí Eclipse. Jistě, několik (velmi draze) placených kousků software tohoto druhu jsem už někde viděl, ale v seznamu features jsem nenašel nic, co by Eclipse neměl. Výroky o tom, že někdo zvolil nejmenší zlo, jsou poněkud směšné. Na tomto IDE nic zlého nevidím. Pravdou je, že pokud je zlo jediné a nemá konkurenci, pak je zároveň největší i nejmenší.
Historku o IBM a Eclipse neznám. Eclipse mi funguje bezproblémově a o detaily kolem jeho vzniku se příliš nezajímám. Spousta lidí samozřejmě dává přednost jiným IDE a je to jejich svobodná volba. Jediné, co jsem v původním příspvěvku chtěl zdůraznit, je fakt, že u C, C++, Javy a PHP chybí zmínka o Eclipse. V žádném případě netvrdím, že každému musí Eclipse vyhovovat. Mně nevyhovují desítky různých programů, které prostě nepoužívám. Nikdy mě ale nenapadlo označovat je veřejně za nepoužitelné. Zvlášť když vím, že spousta lidí je má v oblibě.
Zaprvé, Photoshop je placený software určený ke zcela jinému účelu a nelze ho tedy srovnávat s Eclipse.Všechno jde, když se chce, jen malé děti se musí učit chodit. K jakému účelu jsou jmenované programy určené je zde naprosto bezpředmětné. Srovnávat lze naprosto cokoliv s čímkoliv, protože nikdy nesrovnáváš věci, ale jejich vlastnosti nebo jejich vztahy k okolí. Otázkou je, které z vlastností tě v konkrétním srovnání zajímají. Proto můžeš srovnávat jabka s hruškama, abys zjistil, že je obojí zelené, nebo Eclipse s Photoshopem, abys zjistil, že ani jeden ti nevyhovuje.
Kolik bugů jsi ohlásil?Nějaké ano. Ale pak jsem přešel na NetBeans a byl jsem spokojen. Možná Eclipse zase někdy vyzkouším.
problém může být třeba v distribučním balíčku nebo mezi židlí a klávesnicíNěkteré z těch bugů byly potvrzeny jako bugy v Eclipse, některé jako bugy v pluginu CDT.
Konkrétně ArchLinux nedávno přiznal, že balíček v repository byl špatný. Nejen že pořádně nefungovalo CDT, ale dokonce docházelo k naprosto bezdůvodným pádům a Eclipse se vůbec nespustil bez optionu -clean
. Takže nepříjemné zážitky s nestabilitou, nefunkčností automatických aktualizací nebo zasekáváním celého IDE velmi dobře znám a je mi jasné, že pokud někdo třeba vidí Eclipse poprvé a stane se mu něco takového, prostě s tím sekne. Já jsem ovšem zažil už několik verzí tohoto prostředí a musím konstatovat, že až na rozbitou Europu fungoval Eclipse vždy obstojně.
NetBeans je taky fine, ale když jsem ho naposledy zkoušel, ještě tam nebyl tak pokročilý source-level debugging. V Eclipse už tehdy byly vyznačené předem všechny případné warningy a chyby, včetně sémantických. NetBeans dokázal většinou odhalit pouze syntaktické a gramatické chyby, sémantiku moc neovládal. (Ani refactoring tam nebyl příliš dobrý.) Ale to byla verze 5. Možná už je to ve verzi 6 zase lepší, že jo. V mém případě ovšem NetBeans rozhodně nemusel z počítače pryč. Když vydají novou verzi a mám chvíli času, většinou si ji prohlédnu. Jestli mi něco na NetBeans hodně vadí, je to Swing. Není pomalý, to je fáma. Zato je takový ... zkostnatělý. SWT (a tedy Eclipse) například respektuje styly pro GTK. Pokud mi ovšem nevyhovuje vzhled swingových widgetů, nenadělám s tím vůbec nic.
Konkrétně ArchLinux nedávno přiznal, že balíček v repository byl špatný. Nejen že pořádně nefungovalo CDT, ale dokonce docházelo k naprosto bezdůvodným pádům a Eclipse se vůbec nespustil bez optionu -clean.Archlinux nepoužívám, Eclipse a pluginy jsem vždy instaloval přímo ze základních balíků stažených z webu Eclipse.
je mi jasné, že pokud někdo třeba vidí Eclipse poprvé a stane se mu něco takového, prostě s tím sekneJá jsem prací s Eclipsem (různých verzí, jak pod Linuxem, tak po Windows) strávil nejméně 1000 hodin. Starší verze problematické nebyly, potíže začaly až někde okolo verze 3.0.
V mém případě ovšem NetBeans rozhodně nemusel z počítače pryč.Já mám jednu takovou vlastnost, že když pohár trpělivosti přeteče, pak reaguji velmi emotivně - tedy v případě programu ho odstraním a nemohu ho delší dobu ani vidět
Pokud mi ovšem nevyhovuje vzhled swingových widgetů, nenadělám s tím vůbec nic.To samozřejmě není pravda. Na swingové widgety lze aplikovat Look and feel a přizpůsobit si je podle potřeby. Takhle mám například u jEditu ve Windows nastavený windowsový vzhled.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.