Интегрисано развојно окружење

Интегрисано развојно окружење (ИРО; енгл. integrated development environment, IDE) је софтверска апликација која пружа свеобухватне погодности програмерима за развој софтвера. ИРО се обично састоји од  уређивача изворног кода, алатки за уграђену аутоматизацију и отклањивача грешака. Неки ИРО-ови садрже компилатор, интерпретатор, или оба, као што су НетБинс(eng. NetBeans) и Еклипс(eng. Eclipse); док неки, попут ШарпДевелоп-а(eng. SharpDevelop) и Лазарус-а(eng. Lazarus) не садрже ове компоненте.

Анџута, C и C++ ИРО за ГНОМ окружење

Граница између интегрисаног развојног окружења и других делова ширег софтверског развојног окружења није добро дефинисана. Понекад су верзија контролног система или разни алати за поједностављање изградње графичког корисничког интерфејса (ГУИ) интегрисани. Многи савремени ИРО имају претраживач класа, објектни претраживач, и класни хијерархијски дијаграм, за употребу у објектно-оријентисаном програмирању

Преглед уреди

Интегрисана развојна окружења су дизајнирана да максимално повећају продуктивност програмера пружајући му уско повезане компоненте са сличним корисничким интерфејсима. ИРО представљају један програм у коме се врши сво програмирање. Овај програм обично пружа многе могућности за ауторизацију, модификовање, састављање, развијање и отклањање грешака софтвера, што је у супротности са развојем софтвера помоћу неповезаних алата, као што су ви (eng. vi), ГЦЦ или мејк(eng. make).

Један од циљева ИРО-а је да смањи конфигурацију потребну да се споји више развојних алата. Уместо тога даје исти скуп способности као једна повезана јединица. Смањење времена подешавања може да повећа продуктивност програмера, нарочито у ситуацијама у којима је учење како да користите ИРО знатно брже од ручног интегрисања свих појединачних алата. Поред помоћи при подешавању задатака, чвршћа интеграција свих развојних задатака има потенцијал да побољша укупну продуктивност. На пример, код се може континуирано анализирати док се измењује, пружајући у тренутку повратне информације када дође до појаве синтаксне грешке. Програмери много брже и лакше исправљају код уз помоћ ИРО-a.

Неки ИРО су посвећени одређеном програмском језику, што омогућава сет функција који најприближније одговара програмским парадигмама језика. Међутим, постоји много вишејезичких ИРО-а.

Док су већина модерних ИРО-а графички, текстуална ИРО-а као што је Турбо Паскал(eng. Turbo Pascal) су  били веома популарни пре широке доступности прозорских система као што су Windows и X Windows систем(eng. X Window System) (X11). Они обично користе функције тастера или пречице за извршавање често коришћених команди или макроа. 

Историја уреди

 
GNU Emacs, прошириви уређивач који се често користи као ИРО на Unix системима

Сам настанак ИРО-а постао је могућ кроз развој преко конзоле или терминала. Рани системи нису могли да га подрже, јер су програми били припремани корисшћењем дијаграма тока, уношени са бушених картица (или папирне траке, итд.) пре него што буду послати компилаторДартмут БЕЈЗИК(eng. Dartmouth BASIC) је био први језик који је креиран са ИРО-а (такође је био први који је дизајниран за употребу док седите испред конзоле или терминала). Његово ИРО (део Дартмутовог система поделе времена)(eng. Dartmouth Time Sharing System) је било засновано на команди, и зато није много личило на графичко ИРО засновано на менију, које настаје тек са развојем графичког корисничког интерфејса. Међутим, оно је спојило уређивање, управљање датотекама, компајлирање, отклањање грешака и извршавање на начин који је у складу са модерним ИРО .

Маестро I (eng. Maestro I) је производ Софтлаба Минхен и то је било је прво интегрисано развојно окружење за софтвер на свету.[1] Маестро I инсталиран је за 22.000 програмера широм света . До 1989. године, постојало је 6.000 инсталација у Савезној Републици Немачкој. Маестро је вероватно био светски лидер у овој области током 1970-их и 1980-их. Данас један од последњих Маестро I могу се наћи у Музеју информационих технологија у Арлингтону.

Један од првих ИРО-а са плагин(eng. plug-in) концептом је Софтбенч(eng. Softbench). 1995. године Компјутервохе(ger. Computerwoche) је прокоментарисао да ИРО нису добро прихваћена од стране програмера, јер су ограничавала њихову креативност.

Од марта 2015. године, најпопуларнија ИРО су Еклипс и Вижуал студио(eng. Microsoft Visual Studio).[2]

Теме уреди

Истицање синтаксе уреди

Едитор ИРО-a обично пружа истицање синтаксе(eng. Syntax Highlighting), које може да покаже како структуре, тако и кључне речи језика и синтаксне грешке у различитим бојама и фонтовима.[3]

Завршетак кода уреди

Завршетак кода је важна одлика ИРО-a, чија је намена да убрза програмирање. Модерна ИРО чак имају интелигентан завршетак кода(eng. intelligent code completion).

Рефактурисање уреди

Напредна ИРО нуде подршку за аутоматко рефактурисање(eng. automated refactoring).[3]

Контрола верзије уреди

Од ИРО-a се очекује да обезбеди интегрисану контролу верзије(eng. version control), у циљу комуникације са репозиторијумима извора.[3]

Отклањање грешака уреди

ИРО служе за отклањање грешака, користећи интегрисани отклањивач грешака, заједно са подршком постављања преломних тачака у едитору, визуелним приказом корака, итд.[4]

Претраживање кода уреди

ИРО могу да обезбеде напредно претраживање кода: у циљу проналажења класа и декларација функција, употреба, променљиве и поља за упис и читање, итд. ИРО може да користи различите врсте корисничких интерфејса за претраживање кода, попут виџета на основу облика[5] и интерфејса на основу природних језика[6].

Визуелно програмирање уреди

Визуелно програмирање је сценарио у коме је обично потребно ИРО. Вижуал Бејзик(eng. Visual Basic) омогућава корисницима да креирају нове апликације програмирањем помераја, прављењем блокова, или код чворова за стварање дијаграма тока или структурне дијаграме који се затим састављају или траже се могуће грешке. Дијаграми тока попут ових, су често засновани на обједињеном језику за моделовање(eng. Unified Modeling Language).

Овај интерфејс је популаризован са системом Лего Миндстормс(eng. Lego Mindstorms) и активно се спроводи од стране бројних компанија које желе да профитирају на моћи претраживача попут оних који су пронађени у Музила(eng. Mozzila). КТехлаб(eng. KTechlab) подржава протицајући код и то је популарно ИРО отвореног кода и симулатор за развој софтвера за микроконтролере. Визуелно програмирање је такође одговорно за снагу расподељеног програмирања(еng. distributed programming) (упореди LabVIEW и EICASLAB софтвере). Првобитни систем визуелног програмирања, Max, је дизајниран по узору на аналогни синтесајзер и коришћен је за развој софтвера музичких перформанса у реалном времену од 1980. године. Још један рани пример је Prograph, систем заснован на протоку података који је првобитно програмиран за Макинтош(eng, Macintosh). Графичко програмско окружење "Grape" се користи за програмирање куфикс робот комплета.

Овај приступ се такође користи у специјалистичким софтверима као што су ОпенЛаб(eng. OpenLab), где крајњи корисници желе флексибилност пуног програмског језика, без традиционалног начина учења истог.

Језичка подршка уреди

Нека ИРО подржавају више језика, као што су: GNU Emacs заснован на C-у и Emacs Lisp-у, IntelliJ IDEA, Еклипс, MyEclipse или Нетбинс, засновани на Јави, или MonoDevelop-у, заснованог на C# -у.

Подршка за алтернативне језике је често обезбеђена прикључцима, допуштајући им да буду инсталирани на истом ИРО у исто време. На пример, Flycheck је модерна синтакса "у лету" која провера екстензије за GNU Emacs 24 са подршком за 39 језика. Еклипс и Нетбинс имају прикључке за C/C++, Ада, GNAT (на пример AdaGIDE), ​​Перл, Пајтон, Руби и PHP који се бирају између аутоматских који су засновани на екстензијама фајлова, окружењу или подешавањима пројекта.

Ставови кроз различите рачунарске платформе уреди

Јуникс програмери могу комбиновати алате командне линије POSIX у комплетно развојно окружење, способно да развија велике програме као што су језгро Линукса и његова окружења. Целокупан Јуникс систем функционише као једно ИРО. Бесплатни ГНУ алати  (ГНУ колекција компајлера (ГЦЦ), ГНУ дибагер (ГДБ), и GNU make) су доступни на многим платформама, укључујући и Windows. Програмери који фаворизују командну линију оријентисаних алатки могу користити уреднике са подршком за многе стандардне Јуникс и ГНУ уграђене алате за изградњу ИРО са програмима као што су Еmacs или Vim. Дисплеј дебагер датотека треба да буде напредни графички фронт-енд за многе дебагере стандардних алата заснованих на тексту. Неки програмери више воле  управљање мејк фајловима и њиховим дериватима са сличним бројем уграђених алата укључених у пуном ИРО-у. На пример, већина сарадника базе података PostgreSQL користе мејк и ГНУ дибагер директно да развију нове функције. Чак и када се гради PostgreSQL за Windows помоћу Visual C++Перл скрипте се чешће користе као замена за мејк него што се ослањају на било које карактеристике ИРО-а. Нека Линукс ИРО као што је Геани покушавају да обезбеде графички фронт-енд традиционалним уграђеним операцијама.

На разним Microsoft Windows платформама, командне линије алата за развој се ретко користе. Сходно томе, постоје многи комерцијални и некомерцијални производи. Међутим, сваки има другачији дизајн и обично ствара некомпатибилности. Већина великих произвођача компилатора за Windows и даље дају бесплатне примерке својих командних линија алата, укључујући Мајкрософт (Visual C++, Platform SDK, .NET Framework SDK, nmake utility), Embarcadero Technologies (bcc32 комилатор, make utility) .

ИРО су била популарна на Епловом Мекинтош класичном Mac OS-у, некада за Мекинтошову програмерску радионицу, Турбо Паскал, THINK Паскал и THINK C окружења средином 1980-их. Тренутно Mac OS X програмери могу да бирају између изворних ИРО као што је Xcode и алата отвореног кода као што су Еклипс и Нетбинс. ActiveState Komodo је власничко вишејезичко ИРО подржано на Mac OS-у.

Вештачка интелигенција уреди

Неке карактеристике ИРО-а могу профитирати кроз напредак вештачке интелигенције [7]. Конкретно, информације се могу прикупити из активности у ИРО међу програмерима, како би се увећале ИДЕ функције [8]. На пример, приступ који се заснива на подацима, доводи до завршетка интелигентног кода.

Мрежно интегрисано развојно окружење уреди

Мрежно интегрисано развојно окружење (Мрежни ИРО), је ИРО заснован на претраживачу који омогућава развој софтвера или веб развој [9]. Веб ИРО-у се може приступити из веб претраживача, као што су Гугл Хром или Интернет Експлорер, што омогућава преносиво радно окружење. Мрежни ИРО обично не садржи све исте карактеристике као традиционални или десктоп ИРО, иако су све основне ИРО карактеристике, као што је на пример истицање синтаксе, обично присутне.

Види још уреди

Референце уреди

  1. ^ "Interaktives Programmieren als Systems-Schlager" Архивирано на сајту Wayback Machine (21. децембар 2008) from Computerwoche (German)
  2. ^ Top IDE index
  3. ^ а б в „Course CS350 Integrated Development Environments”. www.cs.odu.edu. Old Dominion University. Приступљено 10. 10. 2018. 
  4. ^ „Programming software and the IDE”. BBC Bitesize. Приступљено 10. 10. 2018. 
  5. ^ „Eclipse Cookbook - Searching Code”. O’Reilly (на језику: енглески). 
  6. ^ Kimmig, Markus; Monperrus, Martin; Mezini, Mira (2011). „Querying source code with natural language”. arXiv:1205.6361 . doi:10.1109/ASE.2011.6100076. 
  7. ^ Williams, Christina Mercer & Hannah. „AI tools all developers need to try”. Techworld. Архивирано из оригинала 07. 05. 2019. г. Приступљено 07. 05. 2019. 
  8. ^ Bruch, Marcel; Bodden, Eric; Monperrus, Martin; Mezini, Mira. „IDE 2.0: collective intelligence in software development”. doi:10.1145/1882362.1882374. 
  9. ^ „Web-based vs. desktop-based Tools – EclipseSource”. eclipsesource.com. 

Спољашње везе уреди