Какво бизнеса не знае за Eclipse и програмистите упорито крият
Публикувано на | 13 юли 2009
Eclipse е софтуер, който е по-познат като среда за програмиране и то предимно на Java. Извън тази му функция, в повечето случаи той бива пренебрегван стане ли дума за по-сложни системи. Ако въобще влезе в употреба на крайните потребители като фирми или държавни институции, то той се използва като основа за сложни графични интерфейси (GUI) и то обикновено като допълнение на вече съществуващи такива . Той предлага обаче много повече и то не само като визуализация на данни.
Накратко Eclipse е пъзел от инструменти, който постоянно расте и се развива. Има няколко основни компонента, към които можем да добавяме още безброй много за да разширим основната функционалност. Например, ако да имаме инструмент за следене и поставяне на карта на всички камиони на една фирма, към него да добавим малка приставка (plugin), която изчислява разходите за бензин в реално време. Силата на този продукт базиран на Eclipse е, че може да подменяме приставките без да спираме софтуера и да забавяме работата. Това може да става локално или дистанционно от администратора. В много случаи оператора дори няма да забележи, че е получил по-нова версия на приставката. Разработват се дори приложения, които да работят на и комуникират директно с мобилни телефони или промишлени инструменти.
Непопулярността на Eclipse извън кръга на разработчиците се корени в три причини. Първата е привидната сложност да се създаде едно GUI, което да се интегрира добре с останалите компоненти. Това подтиква разработчиците да създават по-елементарни дизайни, които обаче са по-трудни за поддържане в бъдеще. Втората причина е, че, бидейки базиран на Java, Eclipse средата се смята за по-бавна от подобна написана директно на C например. Това е отчасти вярно, но възможностите за скалиране, много по-лесната поддръжка и експоненциалния растеж на мощта на компютрите компенсират за този недостатък.
Третата причина има връзка с първата до толкова, до колкото е трудно да се създаде цялостна работна среда за един оператор. Като цяло програмистите избягват това, поради липсата достатъчно разбиране на работния процес на крайния потребител и нежелание да провеждат потребителски тестове. Също така е неудобно да се създаде устойчив дизайн, който да е лесен за разширяване в бъдеще. Това спъва желанието на софтуерните фирми да искат повече пари за малки промени в готовия продукт.
Както споменах обаче, Eclipse не е просто основа за сложни графични интерфейси. Тя може да бъде и работна станция в мрежа със всички предимства на интернет базираните интерфейси (web UI), сървърните приложения и стандартния софтуер. Като цяло има два вида приставки за Elipse – системни (добавят функционалност) и графични (добавят UI). Тъй като той е базиран на OSGI технологията, системните приставки могат бързо да заработят директно на сървър. Така може да се раздели презентацията от изчислителната част и да се превърнат всички Eclipse базирани системи в работни станции. Този процес, както и обновяването на всяка една приставка на сървъра или работните станции е полу-автоматизиран и практически не спира работата. Това е особено важно в критичните фирмени системи и позволява невероятно бързо скалиране.
Алтернатива на този подход е използването на интернет базирани интерфейси, където данните се изобразяват чрез уеб страници, а целия контрол и идентификация минава през стандартните за интернет протоколи. Проблемите тук обаче са основно в надеждността и съвместимостта. Всеки уеб програмист знае колко е трудно да се направи страница базирана на някой AJAX framework, която да работи на всички браузъри и системи, а когато става дума за комплексни интерфейси на критични системи, където надеждността е най-важна, сложността на задачата нараства експоненциално.
Най-честото решение в такива случаи е написването на типични (ad-hoc) решения, където всичко се прави за належащия проблем без мисъл за разширение или скалиране на продукта. При нарастване на бизнеса или промяна в пазара (и съответно – на изискванията), фирмата просто поръчва нов софтуер и влиза в затворен кръг.
Видно е, че тези два подхода са неустойчиви и затова смятам, че ще виждаме все повече Eclipse-базирани продукти. Някои големи фирми в корпоративния софтуер и продуктите за интеграция като Software AG, SAP и IBM вече са разпознали предимствата на Eclipse при крайните потребители. Има и много приложения с отворен код и свободни лицензи, на които малки и средни фирми могат да базират своите бизнес решения. Пазарът е отворен, пътят е утъпкан, а ниши има – нещо, което не виждаме често в този бизнес.
Интернет страница: http://yurukov.net/blog/
Напоследък започнаха да навлизат редица технологии, които обещават да променят бизнеса до неузнаваемост. От няколко години се занимавам с тях и искам да споделя част от наученото с вас.
Коментари (4)
Оставете коментар
13 юли 2009 @ 18:51
Поредната респектираща статия…
Това за почти неусетното и не искащо рестарт обновяване на приставките ми се струва по-скоро маркетинг сякаш… Вярно, аз ползвам средата основно за разработка, и съответно ползвам такъв тип приставки, но Eclipse винаги при update на plugin-ите препоръчва да рестартираш, а и не знам да ми се е обновявало нещо без да разбера. Възможно ли е да навлезеш по-надълбоко в този аспект? Може би аз не съм те разбрал съвсем правилно.
И да, много е приятно това, че Eclipse ти предоставя добра базова среда за всякакви приложения. Това обаче има и някои, макар и не чак толкова сериозни недостатъци.
От една страна – не всички plugin-и са взаимно съвместими. В един момент може да се стигне за няколко приложения да имаш няколко отделни Eclipse-а. Това може да е доста трудно за управление, да не говорим, че Eclipse не е точно от най-малките продукти (макар и да е доста по-малък от MS Office примерно). Тоест, да, ще е удобно, но само за доста големи приложения, или за няколко много кадърно написани малки такива.
Друг леко негативен аспект е липсата на възможност за „чистене на боклука“ – т.е. cleanup на работното пространство – например ненужни вече локални промени по файлове – може би има някой plugin, който да го прави това, но поне аз не го знам. Също, не съм сигурен за Galileo версията, но предишните знам, че в определени случаи си пазят стари версии на plugin-и – конкретно – ако plugin-а е бил включен в съответната „дистрибуция“ и след това е ъпдейтван, оригиналната версия на въпросния plugin не може да бъде махната – стои си disabled.
Локализацията също не е много подсилена – помня, че уж имаше някакви plugin-и за локализация, но с Българския нещо не сполучих. Не че за IDE ми е нужно, но за приложения локализацията би могла да бъде голям плюс.
Лично за мен като цяло в Java малко са недодялани платформите за графични десктоп приложения – Swing, Awt, и дори SWT. Не защото са супер бъгави или супер неудачни, а защото изискват доста повече логика от примерно Windows Forms. При това за сравнително незначителни неща. Това покачва сериозно риска от бъгове.
На последно място, според мен графичния интерфейс все още има среда за развитие – например не ми допада открай време customize-ването на лентите с инструменти – видимостта се определя на групи бутончета И елементи от менютата. Признавам обаче, че като за Java базиран GUI, Eclipse и SWT е поне едни гърди напред от останалите решения.
Аз обаче съм положително настроен и се надявам, че нещата ще се подобрят…
13 юли 2009 @ 23:04
Боян, така както си го написал аз не разбрах какво друго освен среда за програмиране е еклипз, честно. Уж не съм много прост, ама на, не схванах.
Ползвах го под федора, за малко (има няколко плъгина за разработка на питон, които се оказаха особено полезни, но не достатъчни, че да ме накарат да направя еклиз основния си редактор за програмиране, не можах да му свикна и това е), не го долюбих. Може би някой ден… сега за сега е просто интересен инструмент, който обаче ще ми отнеме твърде много време да науча. За това си карам с gedit. С няколко написани на питон плъгина се превръща в идеален помощник.
13 юли 2009 @ 23:57
Петър, идеята е, че предлагат база, която да се ползва за големи приложения. Едно подобно приложение е BIRT Business Intelligence and Reporting Tool. Служи основно за правене и моделиране на отчети, но може да се използва и от бизнес хора точно за business intelligence. Нищо не пречи произволно приложение да се мигрира към Eclipse приложение, но основната полза е, ако се прави голямо ново приложение, то да не се губи време за графичен интерфейс, а да се направи като набор от plugin-и. Eclipse предлага различни ‘изгледи’ за различните цели, които изгледи са кръстени ‘перспективи’. Имаш перспектива за разработка на джава, имаш перспектива за уеб приложения, за SQL, зависи от това какви plugin-и има инсталирани – защото тези „перспективи“ пак се предоставят от plugin-и.
Разбира се, всичко това Боян може да го обясни много по-добре, и се надявам да го направи.
15 юли 2009 @ 13:39
Във втория коментар на Васил се съдържа отчасти отговора на първия – аз разглеждам тук Eclipse не като IDE (среда за разработка на софтуер), а като платформа, върху която може да се изграждат цялостни потребителски решения. Васил е прав, че има някои проблеми с съвместимостта на plugin-и и това, че понякога трябва да се рестартира при подновяване. Не трябва да се забравя обаче, че това важи предимно за IDE средата, където имаме множество комплекти от добавки като PDE, EMF, BIRT, J2EE, често SVN, PHP и най-разнообразни XML редактори и валидатори. В един продукт, базиран на Eclipse, всички тези неща ще липсват. Така ще се използва само основния OSGI framework и функционалността за работната площ.
Ако се види plugin папката на Eclipse с всички IDE допълнения, които за нужни за разработка, ще стане ясно защо всичко е толкова тежко и взаимосвързано. Моята е 400Мб. Това като влезе в паметта на компютъра и като включа един Tomcat, виртуална машина, Firefox и Skype, не е учудващо защо двуядрен процесор с 2Гб RAM се затруднява.
Що се отнася до въпроса на Петър, целта ми беше да опиша на възможно най-не техничен език за какво може да се използва Eclipse. Целевата група на горната статия е ръководния персонал, който има известна представа, че се използва Eclipse в разработките, но не знае какво представлява и какви допълнителни възможности предлага. Обяснения за същността на платформата могат да се намерят навсякъде. Аз реших да разгледам един по-различен ъгъл. Ще добавя обаче външни линкове към допълнителни описания на платформата.
Вече за това как точно става публикуването на plugin-и на сървъра и бързото (дистанционно) обновление, ще напиша в следващата статия. Тя ще бъде ориентирана към програмистите и ще представя последния проект, който направих точно по тази тема. Като цяло тук се опитвам да пиша с по-малко технически термини. Целта ми не е да правя научни публикации или tutorial-и, а въведения в технологиите и свеждането им до чисто практическото приложение. Всъщност ще се радвам, ако някой иска да стане съавтор тук и да добавя/републикува ръководства и техно-новини. Нищо не пречи да разнообразим темите.