Инструменти: Текстови редактор, IDE
Малко предистория - от повече от пет години си вадя хляба (и бирата), работейки по софтуерни фирми. Формалната ми длъжност е била нещо от типа на “developer”, “web developer”, “programmer”. Имал съм и senior “префикси”; иронично, предвид възрастта ми. Неформално съм вършил разнообразни дейности, едната от които е писането на код. Не смятам обаче, че това ме прави програмист в истинския смисъл на думата. Нямам “formal training”, полу-самоук, полу-научил се от други не толкова самоуки колеги. Програмирал съм, защото така е трябвало. По-горното идва да каже, че разсъжденията ми за IDE/ текстови редактор трябва да бъдат считани за непрофресионални, субективни и непълни.
Преди
През по-голямата част от времето докато бълвах долнокачествен PHP/ HTML, ползвах нелицензирана версия на Zend Studio, към което развих известна непоносимост. ASP.NET-а го жулех на VS.NET + Resharper (JetBrains ще говори много на хората от Java средите). Ползвах и малко eclipse с различни плъгини за JavaScript/ PHP/ RoR. Междувременно съм изпробвал и деинсталирал един тон боклукчави редактори и среди. За текстови редактор ползвах scite.
Сега
Сега съм уморен от IDE аферите. Бидейки малка софтуерна фирма, пипам различни проекти, писани на различни езици. Може би това, което най-пълно ще ми свърши работа е VS.NET 2005, Resharper, Vs.Php, Ruby in Steel, ankhsvn. Което отива към 1000 $ за човек. И още един гигабайт рам за машината, че ще издъхна иначе. Лошо няма. Но ми е сложно. Реших да опитам нещо по-просто. И да, забравих - това пак не решава проблема с ActionScript-редактора.
Enter the Vim
Инструмент, стар като света. Работи под всичко. Може би за първи път го видях преди няколко години от Ники, който го ползваше за някакъв рейлс проект на макбука си. От тогава си го бях оставил като едно наум. Преди няколко месеца реших да зарежа досегашните среди, и да го ползвам за всичко. Трудно е, но стана. Надолу ще отбележа “няколко” спека.
Touch Typing
Рядко си позволявам открита арогантност, но ако се бараш за писач, и не можеш да пишеш без да гледаш в клавиатурата, заслужаваш присмех. Учудващо много “програмисти” не са си направили труда да се усъвършенстват във взаимодействието си с машината. На този тест извадих 56 wpm и две грешки първия път, 61 wpm без грешка втория. Предполагам не е много, но определено е достатъчно. Пробвайте се. Не съм се учил по някаква специална система, но като млад пишлигар си направих сам Das Keyboard като напръсках тогавашната си клавиатура със спрей (Важно! Ако имате лаптоп, не го правете.). Беше грозно, но ми остана като умение (писането, не да пръскам клавиатури със спрей).
Та въпросното умение е задължително, ако ще се яхаш на vim. Всъщност, редактора е мислен да се ползва без мишка (не, че не работи). Което пък води и до другия голям проблем когато мигрираш от ide:
Project Manager
Проджект мениджъра (или файловия експлорър) е нещо, с което се свиква бързо, и трудно се отвиква. Сещате се за какво говоря - да виждаш под-папките и файловете от проекта отстрани. Обикновено от там си правиш нови файлове, триеш, местиш и така нататък. Vim няма такова нещо. Мотах се достатъчно дълго из плъгините, има няколко добри решения за въпросната функционалност. Но те са решения на проблем, който сам си си втълпил - за какво ти трябва да ползваш такъв менджър? Когато редактирам файл, много по-бързо ми е да напиша (ползвайки tab за autocomplete).
:e app/models/cart.rb
Редакция на готови файлове е това, което правиш най много. Генерирането на нови файлове става с rails генератора, или през командния ред.
:!mkdir products
0% мишка.
Интеграция със Source Control
В офиса държим всичко работно свързано в subversion, включает и документите. Файловия share е само за простотии и музика. сложил съм вим скрипта, които дава команди като :svncommit, но обикновено ползвам командния ред или TortoiseSVN за по-сложни операции.
Интеграция с компилатора
До момента не съм ползвал vim за .net проект, и не съм сигурен дали си струва и как ще стане. Разни хора из нета разправят, че правят проекта и компилират с Visual Studio, но си пишат кода във vim. viemu изглежда доста съблазнително. Може би обаче ще си напъна мозъка и инвестирам малко в NAnt билд скриптове (да е жив и здрав дзен учителя Дешев).
IntelliSense
Да искаш истински интелисенс за динамичен език е трудна работа. Vim има (малко трудна за схващане) форма на autocomplete, която довършва думи от текущо отворените файлове, и (което е по-забавно) цели редове. Което просто се утрепва при редакция на CSS файлове, защото пишеш fl, натискаш ^X^L и това допълва до float:left (или float:right, ако имаш). Ако си много извратен можеш да ползваш вградената корекция на правописни грешки като инструмент.
abbr _ed < % end %>
Което автоматично коригира _ed до < % end %>.
По-приветлив вид
Vim е труден за започване. Скоро намерих Cream, който го прави по -лесен за употреба (менюта с конфигурация, нормално поведение на клавиатурата и други).
(Вашия любим feature)
Може би това е най-големият проблем когато мигрираш към нов инструмент. Очакваш от него да ти позволява да правиш нещата по познат за тебе начин. Липсват ти неща, с които си свикнал. Старателно се мъчиш да го изкривиш и да го накараш да работи по познат за теб начин. Съответно не се получава толкова добре, ти се фрустрираш и зарязваш. Подходът в случая трябва да е друг - да забравиш за това как си правил нещата преди, да потърсиш нов поглед към функцията.
Гледам на умението да работя с vim като вид дългосрочна инвестиция. За няколко месеца съумях да не съм тотално зле, и да върша задачите със скорост, близка до това, което правех с по-сложните среди. Въпреки всичко познавам и ползвам пренебрежително малка част от функционалността му. Стремя се да отделям ежедневно по половин час да чета хелп материалите, да преглеждам tips and tricks, да разглеждам скриптове, да се експериментирам. Обществото околко редактора е много добро, има натрупани купища неща изписани за него. Което е важно.
VS Emacs
Искрено се забавлявам с религиозната война на ползвателите на двата редактора. Не познавам emacs, гореспоменатия дзен учител се мъчеше с него няколко месеца, ама нещо го заряза. Може би съм взел погрешното решение, захващайки се с vim, може би emacs е по-добър. По-скоро обаче предполагам, че и двата редактора са достатъчно добри, и всичко зависи от личните ти умения.
InType
Наско ми пусна мухата за този проект (още е в алфа). Вероятно няма да го ползвам, но определено си струва прегледа.
Февруари 18th, 2007 at 6:38 pm
Интересно, от повечето неща понятие си нямам, но и аз имам 56wpm и 2 грешки.
Февруари 18th, 2007 at 7:09 pm
Евала че ползваш vim. Голям съм му фен, макар че отскоро започнах да го ползвам за нещо различно от малки редакции през терминала, смятам че е много готин за писане на код. Също така, пробвал съм с него да си пиша статиите за списанието и се оказа, че освен за код е много удобен и за писане на текст. Разни функции като cas (change a sentence) са доста удобни за това-онова.
Колкото за emacs, религиозната война е една от най-старите наистина, но въпреки че не го ползвам, имам чувството че е доста по-близко до IDE отколкото vim-а. Един програмист при един от клиентите ни го ползваше и правеше много впечатляващи неща - например имаше адски удобен терминал, с който изпълняваше SQL команди от самия emacs, а и си беше написал lisp макроси които правеха бая интересни неща. За нещастие, имаше концептуалната грешка да го ползва за Java и съответно не беше твърде продуктивен (щото си мисля, че Java без IDE не става някак). И мен ме гложди едно такова, че с emacs може да съм по-ефективен в писането на код, но от друга страна, той е бая дебело нещо и зарежда бая бавно
И да, имам едни колеги които пишат бая бавно в офиса и много им се дразня. Дори на единия съм му залепил едни лепенки на клавишите и го карам да пише така докато му хване цаката, щото наистина е голям резил
. А на въпросния тест направих 81wpm и 1 грешка
. Което може би е нещо като личен рекорд, защото обикновено правя доста повече грешки на такива текстове.
Февруари 20th, 2007 at 7:26 pm
Ако пишеш много неща на Рейлс, тези два скрипта ще са ти много полезни:
snippetsEmu http://vim.sourceforge.net/scripts/script.php?script_id=1318
rails.vim http://www.vim.org/scripts/script.php?script_id=1567
Надявам се описанието им да ти стига, ако не, пусни нишан.
Февруари 21st, 2007 at 8:03 am
Много добра реклама правиш на gvim! Чак отидох и си го дръпнах. С cream са наистина добра комбинация. Има няколко дразнения, които може би са част от моята незапознатост за момента, но наистина има потенциал (и е на светлинни години пред гадното vi, заради което ползвах emacs).
Колкото до NAnt, ant, и други подобни тулове, остави ги тия извращения, които ти изтъркват клавишите. XML-ът не е най-подходящият скриптов език. Така и така ползваш Ruby, пробвай Rake: http://rake.rubyforge.org/ . Пак има таскове и зависимости между тях, но всеки таск е обикновен ръби метод, където имаш пълните възможности на езика.
Писането с 10 пръста е задължително за всеки, който работи с компютър, най вече за програмистите. Да кълвеш с 2 пръста, забил нос в клавиатурата, е все едно да караш кола и да се навеждаш да гледаш педалите и лоста за скоростите, като ти се наложи да ги ползваш.
Февруари 21st, 2007 at 10:54 am
Качих се и на рейката (дали не е по-правилно да му викам търмък?), по единия проект писах задачи за мигриране на бази данни, парсване на csv-та, импортване на картинки тем подобни. Много приятна зарибявка, тепърва навлизам.
Ники, rails.vim го имам, ползвам му екстрите. Емулацията на textmate също заслужава да се разгледа.
Февруари 22nd, 2007 at 1:57 am
Аз също преминах през всички възможни IDE-та и специализирани редактори занимавайки се усилено миналата година с RoR. И накрая стигнах до извода, че ми е най-лесно с SciTE и command prompt. Реално единственото, което ми трябва при писане на RoR приложения от един редактор е оцветяване на кода, cut, copy, paste и indent/outdent на кода. subversion-а си го управлявам през командния ред, друго кой знае какво не ми се трябва.
Виж, когато правя desktop приложения на C++, си ползвам C++Builder-а. За тях не мога да си представя да ползвам само редактор (макар, че доста хора го могат), не съм свикнал. Друго си е да си отваряш дебъгери, визуално редактиране на формите и т.н.
Така, че явно съм и в двата свята - KISS за RoR и IDE за Windows-а…
Февруари 22nd, 2007 at 12:19 pm
Има нещо много важно при избора на IDE поне за мене. Когато пишеш нялолко години без да искаш си се научил няколко езика и когато трябва да направиш един WEB проект ти се налага да пишеш на HTML,CSS ,Java Script, XML, Action Script след което следват .. Server Scripts C#,PHP,Java, Ruby … . Е аз искам да имам едно IDE, а не да са отворени няколко едновременно. Решениeто за мене е Eclipse.
На едно място всичко … да иска повече памет, но само това е недостатъка …
Предимствата са всики останали като започнем с цената 0$.
Когато бях на Linux ползвах Emacs … по friendly от vim, но и тогава го научих Eclips a. Моите прогнози са че до 2 години големите IDE Softwares или ще са мигрирали към Eclipse или ще им е подобен типа на направа. Adobe и Borland вече го направиха.
Февруари 24th, 2007 at 8:39 am
Аз много държа да имам и IDE, и малък и бърз текстов редактор. Много е важно да мога да отворя някой JavaScript файл и да набия на произволно място debugger (или alert(”kur”);) без да чакам VS.NET да припали. С еклипстъ е още по-бавно и по-зле
Та затова: SciTE, Notepad++, GVim… имам ги всичките и ползвам каквото е на мода тази седмица.
Май 8th, 2007 at 12:56 am
Искам и аз такава das клавиатура, на теста изкарах 70 и сега се чудя с какъв спрей да я напръскам моята, идеи?
Август 22nd, 2007 at 6:17 pm
Ми след 4 месеца, може и аз да драсна някой коментар.
, има omni completion i snippetEmu plugin, който се стреми да наподобява Snippet-ите в TextMate на MAC-a. А омнито е с C-X C-O.
Ако продължаваш да ползваш Вима, което не знам как се отвиква, ако наистина някой някога го е ползвал сериозно
Препоръчвам ти това инфо - http://www.gravitonic.com/talks/
Март 5th, 2008 at 12:37 am
Tamil Mp3 Song Download
The TrackBack specification was created by Six Apart, who first implemented it in their Movable Type blogging software in August
Април 29th, 2008 at 7:42 pm
mature webcams blonde stripping
fDO14t2 | virtual webcam cybersex