pi膮tek, 21 kwietnia 2017

Czy warto uczy膰 si臋 Vima? Edytor dla pocz膮tkuj膮cego

Pytanie na dzisiaj - czy warto uczy膰 si臋 Vima?

Na wst臋pie chc臋 zaznaczy膰, 偶e Vima znam pobie偶nie i nie u偶ywa艂em go, jako narz臋dzia do pracy zarobkowej. Tekst pisany z poziomu amatora, kt贸ry wypr贸bowa艂 Vima, odbi艂 si臋 od niego i kilkukrotnie wraca艂. 

Jednym z wa偶nych czynnik贸w, decyduj膮cym o wydajno艣ci pracy programisty, jest dobra znajomo艣膰 edytora tekstu. Dzi艣 jeste艣my rozpieszczani przez tw贸rc贸w oprogramowania i mo偶emy korzysta膰 z takich doskona艂ych (mniej lub bardziej) edytor贸w, jak:
* Sublime text (korzysta艂em z niego codziennie po kilkana艣cie godzin), Notepad++ (dalej popularny w艣r贸d do艣wiadczonych programist贸w i inne podobne edytory).
* Edytory napisane w JS, kt贸re potrafi膮 z grubsza to samo (a nawet nieco wi臋cej, ni偶 ST), czyli Brackets, Visual Studio Code czy Atom. Pierwszy i ostatni z nich, mocno przycina.
* IDE, jak Webstorm, Aptana czy jeszcze bardziej rozbudowane aplikacje, kt贸re bardzo u艂atwiaj膮 prac臋 programisty. Webstorm rz膮dzi!

No i s膮 jeszcze edytory historyczne, rozwijane przez dziesi膮tki lat - Emacs i ten nieszcz臋sny Vim, o kt贸rym (a tak偶e, w kt贸rym) chc臋 napisa膰 ten tekst.
Moim zdaniem, je艣li jeste艣 pocz膮tkuj膮cym deweloperem, nie powiniene艣 przestawia膰 si臋 na Vima, o czym 艣wiadcz膮 powody wymienione poni偶ej.

* Vim wymaga nauki - w "normalnych edytorach", zmiany zapisujesz przez ctrl+ s, a okienko mo偶esz zamkn膮膰 przez ctrl+w. Te skr贸ty s膮 znane ka偶demu userowi Windowsa i umo偶liwiaj膮 szybsze pisanie.

 W Vimie, musisz najpierw pozna膰 spos贸b na wyj艣cie z programu (tu powinien pojawi膰 si臋 偶art o tym, jak w Vimie generuje si臋 losowe ci膮gi znak贸w), otwiera si臋 pliki, tworzy nowe taby czy operuje trybami. To duzy narzut wiedzy i czasu, kt贸ry m贸g艂by艣 lepiej wykorzysta膰 w inny spos贸b. Edytor powinien pomaga膰 pocz膮tkuj膮cemu programi艣cie, a Vim sam w sobie, mo偶e stwarza膰 sporo problem贸w. Pierwszy przyk艂ad z brzegu - na Windows, program po zainstalowaniu nie rozpoznaje polskich znak贸w, chyba, 偶e odpalimy go z pliku vim.exe, a nie z konsoli. Wol臋 nie rozwi膮zywa膰 takich problem贸w, gdy goni膮 terminy zlece艅.

* Konfiguracja Vima jest trudna - korzystanie z domy艣lnych ustawie艅 Vima jest ma艂o przyjemne - nie dzia艂a na przyk艂ad omijanie wstawionych automatycznie nawias贸w zamykaj膮cych przez ich wpisanie (brzmi zawile, ale zna to ka偶dy programista), wy艣wietlanie numer贸w linii (!) czy kolorowanie sk艂adni. Jednocze艣nie, wydaje mi si臋, 偶e Vim nie oferuje zbyt wiele fajnych rzeczy w zamian, a nowoczesne edytory, umo偶liwiaj膮 wykonywanie tego samego, w 艂atwiejszy spos贸b. 

Zamiast uczy膰 si臋 HTML czy innego JS, tracimy czas na konfigurowanie .VIMRC. Oczywi艣cie, gdy ju偶 dobrze skonfigurujemy sobie edytor, przy ponownej instalacji mo偶emy po prostu skorzysta膰 z gotowego pliku.

*Vim lubi sprawi膰 b艂臋dy niedo艣wiadczonym - Vima mo偶na okre艣li膰 jako "edytor niskopoziomowy", czyli taki, w kt贸rym u偶ytkownik musi zna膰 si臋 lepiej na wielu aspektach dzia艂ania, ni偶 w przypadku edytor贸w standardowych. Zanim zaczniesz pos艂ugiwa膰 si臋 nim r贸wnie sprawnie, jak prostymi edytorami tekstu, minie sporo czasu. Dodatki, takie, jak Emmet, dzia艂aj膮 w Vimie bez problemu, ale ich obs艂uga mo偶e by膰 trudniejsza ni偶 w innych edytorach. Oczywi艣cie, VIM deklasuje m艂odsze programy liczb膮 dodatk贸w.

Podobnie jest z j臋zykami programowania - w przypadku j臋zyka C, zwyk艂e wypisanie tekstu w konsoli czy pobranie danych od u偶ytkownika, wymaga pobrania wielu danych i uwa偶ania na r贸偶ne aspekty. W JS, nie musimy si臋 martwi膰 o takie rzeczy. Vim umo偶liwia dok艂adniejsze operacje (na przyk艂ad kasowanie okre艣lonej liczby rz臋d贸w), ale wymaga te偶 wi臋kszej precyzji od programisty. 

No ale w Vimie pisze wi臋kszo艣膰 wymiataczy...

Osobi艣cie nigdy nie spotka艂em programisty, kt贸ry wykorzystywa艂 by Vima do codziennej edycji plik贸w, a co wi臋cej, w setkach obejrzanych tutoriali na temat JS/HTML/CSS na YouTube, nigdy nie spotka艂em si臋 z osobami pisz膮cymi w tym edytorze. Nie 艣wiadczy to oczywi艣cie o tym, 偶e Vima si臋 nie u偶ywa, a raczej o tym, 偶e inne edytory mog膮 by膰 wygodniejsze.

Podsumowanie
Vim to 艣wietny edytor, kt贸ry staram si臋 (bardzo powoli) poznawa膰. Niekt贸rych aspekt贸w z tego edytora, zaczyna mi tak偶e brakowa膰 w innych programach. 
Moim zdaniem, nie jest on dobrym wyborem dla osoby pocz膮tkuj膮cej w programowaniu webowym czy tworzeniu stron, poniewa偶, generuje on sporo problem贸w, kt贸re unikniemy, u偶ywaj膮c innych edytor贸w. Wi臋kszo艣膰 czynno艣ci w Vimie jest trudniejsza ni偶 w innych edytorach, co jest g艂贸wnym zarzutem w stosunku do niego. Warto jednak pozna膰 przynajmniej jego podstawy, by wiedzie膰, jak zedytowa膰 plik, wykona膰 operacj臋 zapisu i nast臋pnie, wyj艣膰 z pliku. Przydaje si臋 to podczas poprawek na serwerze czy przy commitowaniu zmian w Git. Znajomo艣膰 podstaw Vima mo偶e by膰 niewielkim plusem podczas rozmowy o prac臋, natomiast, u偶ywanie go jako podstawowego edytora, raczej nie.

Nie licz te偶 na wzrost wydajno艣ci pracy lub na to, 偶e dzi臋ki Vimowi b臋dziesz tworzy膰 lepszy kod - 偶adna magia si臋 nie wydarzy. Osoby do艣wiadczone na pewno maj膮 wyrobione zdanie na temat Vima i nie b臋d臋 stara艂 si臋 ich do niczego przekonywa膰. W przysz艂o艣ci, postaram si臋 napisa膰 tekst o u偶ywaniu Vima jako narz臋dzia do pisania artyku艂贸w, oraz b臋d臋 stale rozwija艂 wiedz臋 na jego temat. Pozdrawiam i zapraszam do komentowania.

PS - ten artyku艂 powsta艂 w 95% w Vimie.

Brak komentarzy:

Prze艣lij komentarz