pátek 10. února 2006

Borland opouští vlastní IDE produkty

Už je to jasné, už je to hotové. Společnost Borland, stojící za celou řadou vývojových prostředí, z nich nejznámější je asi Delphi a Jbuilder, se rozhodla zbavit celé produktové řady vlastních IDE produktů. Borland by se rád zaměřil na doménu zvanou Application Lifecycle Management viz Letter from Borland CEO Tod Nielsen.

Je více než pravděpodobné, že tím končí i éra vývojového prostředí JBuilder. Je otázkou jak dlouho by stejně JBuilder vydržel mezi dvěma mlýnským kameny v podobě komerční IntelliJ a open source tandemu Elipse, NetBeans. Již delší dobu bylo evidentní, že JBuilder nemůže těmto produktům plnohodnotně konkurovat. Dokonce bylo oznámeno, že další řady JBuilderu měly být přímo postaveny na Eclipse.

Pro scénu javovských IDE, není klinická smrt JBuilderu výraznou ztrátou, protože existují jak komerční tak open source alternativy na delko vyšší úrovni. Daleko citelnější rána to bude pro společnosti, které mají vývoj založený na Delphi. Z dlouhodobější perspektivy budou tyto firmy zřejmě nuceny udělat klíčové rozhodnutí, jestli přejít na platformu DOT.NET a nebo Java.

Nech't Borland IDE odpočívají v pokoji... amen

Související články

čtvrtek 9. února 2006

Optimalizace kódu versus efektivita vývoje

Když jsem se nedávným spotem o neoptimalizovaném kódu dotknul tohoto tématu, přinejmenším jsem tušil, že se najdou vývojáři, kteří použijí okřídlenou citaci Funguje to? Pokud ano, tak do toho dejte ruce pryč.. Tento postoj víceméně odpovídá prvnímu pravidlu optimalizace, které zní Neoptimalizujte!. Kdy tedy optimalizovat a kdy hledět především na efektivitu vývoje?

Neoptimální kód je extrém do jedné strany, ale je tu i extrém do druhé strany, který představuje tak optimalizovaný kód, že mu po pěti minutách od napsání nerozumí ani samotný tvůrce. Takže máme extrémy, mezi kterými kód osciluje. Vychýlení jedním či druhým směrem je dáno mnoha faktory, o které v tomto textu primárně neběží.

To pravé umění psaní kódu je půvabné v tom, že se nesnažíme vyprodukovat vrcholně optimální kód, ale kód objektově zapouzdřený. Zapouzdřenost nám snadno umožňuje výměnu jednotlivých částí kódu beze změny jejich okolí. Příklad: potřebujeme zoptimalizovat třídění pole. Prostě vyměníme objekt, který implementuje vlastní třídící algoritmus. Optimalizace kódu je díky zapouzdřenosti neinvazivní, tedy změna algoritmu neovlivní okolní kód.

Efektivita vývoje není optimalizací ovlivněna neboť optimalizace je provedena záměnou jednoho objektu za druhý a to lze udělat kdykoliv. Odpověď na otázku, kdy optimalizovat a kdy hledět především na efektivitu vývoje, je velice prostá: Efektivní vývoj a optimalizace se nevylučují ba naopak vzájemně se doplňují. Optimalizace je součástka, kterou lze do efektivního vývoje vždy začlenit.