Независимо от очевидните доказателства за противното, програмистите са хора. И както всички хора, ние обичаме да се възползваме от свободата си на избор. Независимо дали става въпрос за този избор като вземете червеното или синьото хапче , носенето на рокля или панталон или използване на една среда за развитие над друга, изборът, който правим, ни поставя в една или друга група хора. Изборът неизбежно идва след нашата оценка на опциите. И като направихме избор, ние сме склонни да вярваме, че всеки, който избира по различен начин, е направил грешка.
Можете лесно да търсите в интернет и да намерите стотици дебати за Emacs срещу Vim. Дори да ги прочетете всички, ще бъде невъзможно обективно да изберете победител. Въпреки това, изборът на среда за разработка казва ли ви нещо за качеството на работата, която разработчикът може да предостави? Абсолютно не!
ДА СЕ страхотен разработчик може да напише кода си в Notepad и все пак да доставя страхотни неща.
Със сигурност има много неща, които професионалистите вземат предвид при избора на инструменти за своята работа. Това важи за всяка професия, включително за разработването на софтуер. Доста често обаче изборът се основава на личен вкус , не нещо лесно осезаемо.
Програмистите прекарват по-голямата част от времето в разглеждане на средата за разработка, така че е естествено да искаме нещо хубаво, както и функционално. Всяка среда за развитие има своите плюсове и минуси. Като цяло те са движеща сила на индустрията за разработване на софтуер.
Кои са нещата, които разработчикът трябва да оцени, когато избира набор от инструменти за програмиране като избран програмен редактор? Отговорът на този въпрос не е толкова прост, колкото може да звучи. Разработката на софтуер е близка до изкуството и има доста „размити“ фактори, които отделят шедьовър от надценена колекционерска стойност.
Всеки език за програмиране, било то Java, C #, PHP, Python, Ruby, JavaScript и т.н., има свои собствени практики за развитие, свързани със структурата на проектите, отстраняване на грешки и внедряване. Общото между всички тях обаче е редактирането на код. В тази статия ще оценим различни платформи за разработка от гледна точка на най-често срещаната задача в разработването на софтуер: писане на код.
An интегрирана среда за разработка (IDE) (или интерактивна среда за разработка) е софтуерно приложение, което предоставя цялостни съоръжения на компютърните програмисти за разработване на софтуер. IDE обикновено се състои от редактор на изходен код, инструменти за автоматизация на компилацията и дебъгер и много поддържат много допълнителни приставки и разширения.
Текстови редактори са по-прости приложения. В сравнение с IDE, те обикновено съответстват само на сегмента на редактора на код на IDE. Те обаче често са много повече от това. IDE са създадени да служат за целите на разработването на софтуер, докато много текстови редактори са проектирани да се използват и от не-разработчици.
Статично типизираните езици могат да получат много ползи от IDE. Поради строгите правила за писане е възможно IDE да открива грешки и несъответствия в имената в класове и модули и дори във файлове, директно в редактора, преди да компилира. Тази функционалност се предлага стандартно с много IDE и поради тази причина IDE са много популярни за статично типизирани езици.
Невъзможно е обаче да се направи едно и също за динамично типизирани езици. Например, ако името на метод може да бъде генерирано от самия код, конструиран от поредица от конкати на низове, опитът да се открият грешки при именуване в динамични езици не изисква нищо по-малко от стартиране на действителната програма. Тъй като едно от основните предимства на IDE не се отнася за програмисти с динамичен език, те имат по-голяма склонност да се придържат към текстови редактори като Sublime. Като странична бележка, това е и основната причина, поради която движеното от теста движение за развитие е израснало около динамични езикови общности и не е имало толкова силни привърженици в статичните езици.
Освен редица различни функции за различни езици, всеки редактор за програмиране трябва да има добре организиран и изчистен потребителски интерфейс. Не бива да се пренебрегва и цялостната естетическа привлекателност. Въпросът не е само в това да изглеждате добре, тъй като добре проектираният редактор с правилния избор на шрифт и цветове помага да се намали напрежението в очите и ви позволява да бъдете по-продуктивни.
В днешната среда за развитие стръмната крива на обучение е отговорност, независимо от набора от функции. Времето винаги е ценно, така че добрият редактор трябва лесно да свикне. В идеалния случай програмистът трябва да може да започне работа веднага, без да се налага да прескача твърде много обръчи. Швейцарският армейски нож е практичен и полезен инструмент, но всеки може да го овладее за минути. По същия начин за редакторите за програмиране простотата е добродетел.
Нека разгледаме отблизо потребителския интерфейс, различните функции и възможности и често използваните инструменти, които трябва да бъдат част от всеки редактор на програмиране.
Номерата на редовете, разбира се, трябва да са включени по подразбиране и да се включват или изключват лесно.
Фрагментите са полезни за вмъкване на стандартизирани блокове текст с фиксирано оформление. Програмирането обаче е свързано с това да кажете нещата само веднъж, така че бъдете внимателни с фрагменти, тъй като те могат да направят кода ви труден за поддръжка в бъдеще.
Възможността за lint или проверка на синтаксиса на текущия файл е полезна, както и възможността за стартирането му. Без това средство програмистът трябва да премине към външен прозорец на командния ред, да избере и изпълни правилната команда и след това да премине през съобщенията за грешки, за да намери източника на грешката. Обаче обшивката трябва да е под контрола на програмиста, защото забавянето, направено от власинката, може да прекъсне кодера в решаващ момент.
Вграденият документ е полезен, стига да не пречи, но отварянето на страница на браузъра в дефинициите на класове понякога е по-полезно, особено когато има много свързани класове, които не се разширяват директно. Достатъчно лесно е да изрежете и поставите код от документацията на браузъра към кода, който се записва, така че допълнителната сложност на вградената документация често става по-малко полезна, всъщност по-досадна, тъй като познанията на програмиста за документацията се увеличават.
Попълването на думи е полезно, тъй като е бързо и почти толкова надеждно, колкото документацията за редактиране, като същевременно е по-малко натрапчиво. Удовлетворяващо е да въведете само няколко знака от дума и след това да натиснете Enter, за да получите останалото. В противен случай човек се труди под напрежението на излишното писане, отвращавано от мързеливи програмисти, които искат да напишат ee
а не по-дългите exponentialFunctionSquared
. Завършването на думите задоволява чрез минимизиране на въвеждането, налагане на кохерентно именуване и като не пречи.
Преименуването на променливи и функции в програмата е полезно, но трябва да можете да прегледате промените и да се уверите, че кодът ви не е счупен. Отново, завършването на думата е полезна половина, тъй като работи за всички езици; можете да използвате дълги имена за елементи, които имат дълъг живот, без да се налага да пишете над главата. Можете да използвате препратки към тях чрез по-кратко име локално, за да съкратите изрази, които иначе биха могли да се разпространят в твърде много редове. Ако трябва да преименувате, дългите имена са уникални, така че този подход работи на всички езици и всички файлове.
Изходните файлове понякога могат да растат много. Сгъването на код е приятна функция, която улеснява четенето на дълги файлове.
Намирането / промяната с ограничение на обхвата до локални, инкрементални или глобални с мета символи и регулярни изрази са част от минималното изискване в наши дни, както и подчертаването на синтаксиса.
През годините преминах през редица редактори и ето какво мисля за тях:
Emacs : Един от най-популярните редактори в света. Най-голямата характеристика на Emacs е неговата разширяемост, въпреки сложността на езика му за разширение (дори можете да играете Tetris в него с M-x tetris
). Феновете на Emacs смятат, че интерфейсът, базиран на терминала, е чудесна функция, докато други може да спорят, че това е недостатък. В личния си опит открих, че е твърде много да го осиновя и науча. Сигурен съм, че ако знаете как да използвате Emacs, никога няма да използвате нищо друго, но да се възползвате и да научите цялата култура беше повече, отколкото исках да направя. Независимо от това, популярността му сред разработчиците доказва, че тя далеч не е реликва от старите времена и остава част от нашето бъдеще.
Vi / Vim : Vim е друг мощен редактор, базиран на терминали, и се предлага стандартно за повечето операционни системи xNIX. Освен че имам различен интерфейс от Emacs, моето мнение е практически същото. Ако си израснал на него, сигурен съм, че никога няма да използваш нищо друго. Наличието на Vi умения ще направи живота ви много по-опростен, когато работите чрез SSH и други тесни места и няма да имате проблеми със скоростта, след като се запознаете с натисканията на клавишите. Въпреки че не е толкова трудно да се пробие като Emacs, кривата на обучение все още е доста стръмна и определено може да използва няколко приятни функции на прозоречен редактор.
SublimeText : Верно на името си, SublimeText е красив текстов редактор с множество функции. За разлика от някои подобни редактори, SublimeText е с затворен код, така че не може да бъде модифициран на ниско ниво. SublimeText предлага простотата на традиционните текстови редактори, с лек и бърз потребителски интерфейс. Много разработчици смятат, че е по-лесен за използване от Vim, и това важи особено за новодошлите. Кривата на обучение просто не е толкова стръмна. Докато потребителският интерфейс е минимален и ясен, SublimeText предлага няколко изящни функции, като например намален код на дисплея вдясно от потребителския интерфейс, което позволява на потребителите бързо да превъртат кода си и да се придвижват с относителна лекота. Въпреки че не е напълно безплатна, демо версията с ограничени функции е. Отключването на всички функции ще ви струва $ 70.
Атом е резултат от усилията на GitHub да създаде редактор за програмиране за ново поколение разработчици. Въпреки че все още е в процес на работа, Atom е много способен редактор с оживена общност от разработчици, запалени по нови разширения, JavaScript библиотеки и др. Недостатъците включват някои странности на потребителския интерфейс, възможността някои пакети с добавки да се държат неправилно и докладвани проблеми с производителността при работа с (много) големи файлове. Но проектът е в процес на активно развитие и съществуващите недостатъци вероятно ще бъдат подобрени. Atom е проект с отворен код и той лесно може да бъде хакнат, за да отговаря на вашите нужди.
Нано : Отличен в тесен ъгъл, но не достатъчно богат на функции, за да предотврати неизбежната мисъл да се прокрадва в съзнанието му, че трябва да има по-бърз начин да се направи това, докато човек се бори с натискане на клавишите, за да отстъпи блок код, като същевременно поддържа коментарите подредени в колона 80! Той дори няма подчертаване на текст и не трябва да се използва за нищо повече от промени в конфигурационния файл.
TextMate2 : Най-големият недостатък на TextMate е, че той работи само на Mac. Както се изразиха създателите му, „TextMate въвежда подхода на Apple към операционните системи в света на текстовите редактори.“ Чрез преодоляване на основите на UNIX и GUI, TextMate избира най-доброто от двата свята, в полза на експертни скриптове и начинаещи потребители. Това е редактор по избор за много разработчици на Ruby, Python и JavaScript, с чудесна поддръжка и за Bash или Markdown. В момента на публикуване на тази статия TextMate 2 все още е в бета версия, но вече има много зряла екосистема на приставки, която обещава да я разшири дори извън разширенията на Emacs.
jEdit : Java-базирана и се смята за бавна от някои. Конфигурацията извън кутията може да отблъсне определени хора, но jEdit може да бъде изключително бърз, ако е конфигуриран правилно, както и да изглежда изключително добре.
Затъмнение : Друга широко използвана IDE, Eclipse е много популярна сред разработчиците на Java, но е адаптирана към много различни платформи. Можем да твърдим, че монолитната му архитектура е скала, която ще го издърпа под водата, но все още е една от най-популярните платформи сред разработчиците.
Aptana Studio : Изчерпателно IDE уеб приложение с отворен код. Предлага се като плъгин Eclipse, което го прави популярен сред някои разработчици на Java. Самостоятелната версия е още по-елегантна и предлага редица различни теми и опции за персонализиране. Възможностите за управление на проекти на Aptana също могат да бъдат полезни за програмисти, които са усъвършенствали уменията си в Eclipse. Докато по-ранните версии страдаха от проблеми с производителността на някои хардуерни платформи, тези проблеми бяха решени в Aptana Studio 3 и би трябвало да останат в миналото.
NetBeans : Друг относително популярен IDE с отворен код с поддръжка на различни платформи. Той е малко по-бавен при стартиране от постните редактори като SublimeText и изборът на добавки е ограничен в сравнение с някои алтернативи. Много разработчици на Java обикнаха NetBeans благодарение на безпроблемната SCM интеграция и поддръжката на HTML5. Поддръжката на NetBeans за PHP също се е подобрила в последните версии.
JetBrains : Предлага семейство IDE за Java, Ruby, Python и PHP. Всички те са базирани на един и същ основен двигател. Много способни сами по себе си, IDE на JetBrains печелят все повече последователи. Те обаче не са безплатни решения с отворен код, въпреки че е налице 30-дневна пробна версия и цените са разумни.
Komodo Edit : Komodo Edit има голям потенциал и въпреки това е пълен с досадни малки „увлечения“ и идиосинкразии, които могат да бъдат разочароващи от липсата на ортогоналност. Komodo Edit се чувства претрупан, което е жалко, защото очевидно има огромни възможности. Продължавам да се връщам към Komodo Edit с надеждата, че съм пропуснал някакъв организационен принцип и всеки път съм бит обратно от купчина неорганизирана способност.
Geany : Geany не е основен играч на енергия като много от другите редактори в този списък. Той се определя повече от „какво не е“, отколкото „какво е“. Той не е бавен, няма много наследство от старите дни, няма макро възможност или голяма част от мулти прозорец за буферна способност. И все пак нещата, които прави, се справят достатъчно добре. Може би е най-малко взискателният от всички редактори, който опитах и все още мога да направя 90 процента от това, което бихте очаквали от редактора на програмист. Geany изглежда достатъчно добре в Ubuntu, което е една от причините да го избера като предпочитан редактор.
Би било нахално да обявим само един за най-добрия редактор за програмиране сред тези страхотни инструменти. И има доста редактори, които дори не опитах. Няма универсално решение. Това ме накара да изпробвам редица различни редактори; ако се интересувате повече от дълголетието на редактора, ще искате да прочетете Оценката на Roben Kleene на редакторите на кодове .
В момента използвам Geany, но това е така, защото отговаря на изискванията, които имам. С Geany и много помощ от Perl / Gimp / Audacity / Sox, аз съм в състояние да разработя и поддържам Java кодовата база за Приложения за Android Разработвам, подготвям ги за компилация в различни конфигурации за множество дистрибутори, източник, lint, компилация, dex и произвеждам .apk
файлове и доставяйте тези приложения глобално.
Вашата линия на разработка може да предпише различен набор от изисквания и се надявам да ви спестя малко време в проучванията за най-подходящите програмни редактори.
Свързани: Урок за протокол за езиков сървър: От VSCode до Vim