RubyMine 50% taniej do 14 września

Ja się zgadzam z tym, że tego pisania nie jest tak dużo tylko w części. Pomyśl ile linijek mają średnie/duże projekty. I pomyśl ile tych linijek musisz dziennie przerzucić jak np. robisz refactoring. Oczywiście, są rzeczy nad którymi siedzisz kilka dni i napiszesz kilkadziesiąt czy kilkaset linii, ale nie oszukujmy się, nawet w kilkumiesięcznych projektach idzie to w tysiące. Teraz pracuje nad klientem w emberze, który w CoffeeScript ma ze 4k linii i drugie tyle testów po ok. 3 tygodniach pracy (a nie pracuję nad nim full time). Dodatkowo dochodzi aspekt poznania edytora, żeby móc szybko i zręcznie poruszać się po projekcie - szczególnie jak to jest czyjś projekt, do którego dołączasz.

Dlatego o ile zgadzam się, że samo pisanie (albo raczej edycja kodu) nie jest kluczowym elementem, to jednak jest ważnym aspektem tej roboty.

Obejrzałem:
http://vimcasts.org/episodes/fugitive-vim-working-with-the-git-index/
http://vimcasts.org/episodes/how-to-use-tabs/

i ZROZUMIAŁEM, że tu chodzi o coś innego niż to na czym mi zależy (wygoda i szybkość): swoboda konfiguracji i miłość do konsoli.
Z mojego punktu widzenia to co obejrzałem to dramat, po prostu dramat, masochizm jakiś.

Jeśli chodzi o tabsy i search to nie zauważyłem zbiorczej listy plików z wylistowanymi liniami z podświetlonymi wystąpieniami, które mam w RM. Zamiast tego ręczne skakanie po znalezionych plikach.

Fugative podświetla całe linie (RM w zmienionej linii tylko zmienioną część). Przenoszenie wybranych zmian przez selec+ręczne odpalenie komeny jest słabe (w RM jeden klik myszką na wybranym fragmencie).

Dalej nie oglądałem. Nic na razie mnie nie zachwyciło. Jeśli trzeba opanować kilkadziesiąt (strzelam) komend/kombinacji, żeby swobodnie uskuteczniać typowy dev to ja tylko wyrażam podziw i szacunek dla Waszej fascynacji vimem, której kompletnie nie podzielam.

Nie zamierzam Cię do niczego przekonywać, bo zasadniczo nie zależy mi na tym, żeby vima używała każda znana mi osoba, ale mam kilka pytań, z czystej ciekawości (pytania są głównie o to w jaki sposób coś robisz, tzn. czy korzystasz z myszki, czy z jakiegoś skrótu klawiszowego i jeżeli tak, to z jakiego):

  1. Jak się przełączasz pomiędzy otwartymi tabami?
  2. Jak otwierasz plik w okienku podzielonym pionowo/poziomo?
  3. Jak wywołujesz to wyszukiwanie, wyszukiwanie w otwartych plikach itp?
  4. Jak przenosisz jakieś bloki kodu? (np. musisz wyciąć 5 linijek i wkleić w innym miejscu, albo np. wyciąć tekst między nawiasami itp. itd.)
  5. Jak z reguły otwierasz nowy plik?

Pamiętaj, że do vima jest od cholery pluginów, jeżeli coś robisz odpowiednio często, to szansa, że jest do tego plugin jest dość duża i że różni ludzie różnie z vimem pracują. Ja np. pracuję z między innymi LustyBufferExplorer, który bardzo przypomina pracę z bufferami z emacsa, więc to, że zobaczysz kogoś, kto każdy plik otwiera wpisując “:edit sciezka/do/pliku” (nawet jak już ma go otwartego), to nie znaczy, że każdy vimowiec tak pracuje.

O, to w 2012 wciąż trwa moda na Vima w środowisku rubiowców? Dziwne, biorąc pod uwagę że Vim jest bardzo nieoptymalny pod względem użycia rąk (słynne sublime’owe ctrl-p) i to, że właściwie jedyną niepodważalną (nieobecną w innych edytorach) zaletą Vima jest to, że jest w trybie konsolowym.

[quote=drogus]1) Jak się przełączasz pomiędzy otwartymi tabami?
2) Jak otwierasz plik w okienku podzielonym pionowo/poziomo?
3) Jak wywołujesz to wyszukiwanie, wyszukiwanie w otwartych plikach itp?
4) Jak przenosisz jakieś bloki kodu? (np. musisz wyciąć 5 linijek i wkleić w innym miejscu, albo np. wyciąć tekst między nawiasami itp. itd.)
5) Jak z reguły otwierasz nowy plik?[/quote]
Na podstawie Sublime text

  1. CMD + ALT + Strzałka lewo / prawo
  2. Nigdy nie uważałem za potrzebne.
  3. CMD + SHIFT + F
  4. Zaznacz shiftem, CMD + X / CMD + C? :Y - jeśli blok wyciętego tekstu, to CMD + SHIFT + J
  5. CMD + N dla nowego pliku, CMD + P dla istniejącego :S

@tomash sorry 1/10, jak komandos podchodzący wroga w jaskrawo pomarańczowym kombinezonie z dzwoneczkami.

Za vimem jest to, że odpali się na każdym systemie oraz w konsoli i nie żre zasobów. Jeżeli chodzi o trudność użycia i nauki to jest to (jak wspomniał sarniak) ciągły rozwój i znaczne mozliwości dostosowania (i programowania: vimscript). Parafrazując Herberta “Bóg stworzył vima, by hartować wiernych”. Żeby zrozumieć jakie płyną z vima korzyści trzeba trochę poużywać, czego nie wyciągnie się z oglądania fajnych filmików.
A propos fajnych filmików z vimem: http://vimeo.com/15443936 w ogóle filmiki na blogu Dereka http://www.derekwyatt.org/vim/vim-tutorial-videos/

@Tomash słaby troll, try harder :wink:

@konole podejrzewam, że w rubymine jest podobnie, więc teraz się trochę odniosę do wypowiedzi mleszcza :wink:

Co do podzielonych okienek - popracuj tak trochę na vimie/emacsie i wtedy pogadamy czy dalej Ci to niepotrzebne :wink:

@mleszcz

No więc widzisz. Ja np. nie lubię kiedy mi się nie mieszczą otwarte pliki w tabach na ekranie i muszę cokolwiek zamykać, żeby nawigacja po tabach miała sens. Albo kiedy muszę przeskoczyć kilka(naście) zakładek w prawo i wtedy wciskać kilka(naście) cmd+cośtam+prawo (lub odrywać rękę do touchpada). Albo ręcznie zaznaczać jakiś blok kodu z shift + down,down,down,down,down ( i tak do znudzenia lub odrywać ręce od klawiatury). Albo nie mógł bym się obejść bez fajnego zarządzania otwartymi okienkami (horizontal/vertical split).

Dziwi mnie, że na podstawie jednego czy dwóch filmików formułujesz takie definitywne stwierdzenia (dramat! masochizm!). Nie wszyscy potrzebują funkcji, bez których Ty nie możesz żyć, więc niektórym wystarczy np. w temacie szukania to co nazywasz masochizmem. Ale jeżeli akurat dla kogoś to jest ważne, to można w kilka minut dorzucić plugin (np. https://github.com/mileszs/ack.vim), który robi dokładnie to o czym pisałeś (i pewnie dużo więcej).

Ale się flame war zrobił z tematu o obniżce cen Rubymine. Dobrze, że jeszcze nikt tutaj emacs’a do mieszanki nie dorzucił :wink:

W sumie, nigdy tej wojny nie zrozumiem. Napewno stwierdzenie, że jakiś edytor czy filozofia pracy w nim jest nie dla mnie tylko patrząc na screeny czy video jest nie na miejscu. Tak się nie da. Trzeba przynajmniej z miesiąc (lub dłużej) poużywać na wyłączność aby wyrobić sobie zdanie na dany temat. Sam przeszedłem przez masę IDE/edytorów z Rubymine włącznie aby wylądować na końcu w terminalowym VIM’ie i być o dziwo zachwyconym z szybkości poruszania się po kodzie.

Potęga VIM’a tkwi w tym, że po pewnym czasie nie myślisz jak się poruszać po kodzie. Nie odrywasz rąk od standardowego ułożenia na home row, tylko śmigasz, przeskakując błyskawicznie. Edytor staje się jakby przedłużeniem Twoich myśli. W innych, mniej konfigurowalnych edytorach (emacs’a z tej grupy wyłączam) z reguły jest konieczność bądź użycia myszki (co dla mnie jest po pewnym czasie zwyczajnie wkurzające) albo się gania do strzałek/ lub kombinacji typu alt+ctrl+klawisz. Wybija to jakby z rytmu (wiem, że ciężko to zrozumieć, kiedyś też nie mogłem). W VIM’ie nie ma to miejsca, dlatego IMO jest to dla mnie najwygodniejsze.

Najlepsze (albo najgorsze), że teraz przeglądarki bez podstawowych skrótów VIM’owych nie mogę używać. Dzięki Bogu na Mac’u mamy też “Key4Remap” i “PcKEyboardHack” które pozwalają na fajne modyfikacje i używanie “hjkl” prawie w każdej sytuacji :wink:

Ja też, dlatego nie rozumiem takiego skrajnego rzucania zdecydowanych sądów, jaki to vim jest beznadziejny, jak tu mleszcz prezentował. Super rzeczy się dzieją, konkurencja spora, tylko się cieszyć :slight_smile:

Spróbowałem RubyMine, pewnie za krótko, żeby coś więcej powiedzieć, no i takie 3 myśli mnie naszły:

  1. Ogólnie ma sporo fajnych narzędzi, integracja z gitem, mogłem sobie gałęzie wyświetlić, jakieś bajerki,
  2. ale jest masakrycznie wolny :frowning:
  3. i chyba jednak już nie przerzucę się na nic innego niż vim - tam jest sporo “małych” komend, z których się buduje większe, w IDE każdy nowy skrót to jakaś kombinacja shift, cmd, alt costam - ja się chyba gubię ;).

Myślę, że jeśli ktoś woli IDE od vima / emacsa, to jest to bardzo dobry produkt i warto kase wyłożyć. Tylko do vima, jak już pisałem w żaden sposób tego porównać nie można na poziomie - co jest lepsze, jak tu parę osób próbuje robić.

To jest kwestia wyboru podejścia i swojego sposobu pracy.

E tam wojny :wink: Ja lubię takie tematy, bo staram się mieć otwarty umysł i wierzę, że ktoś może mnie przekonać. Też zaczynałem od wszelkiego rodzaju IDE jak railsy raczkowały i twierdziłem, że vim jest dla garstki zapaleńców, którzy przyzwyczaili się do niego jak dużo edytowali na serwerze. Tak samo później przekonałem się do spróbowania emacsa - też bardzo fajne doświadczenie, emacsowcy mają zupełnie inny styl pracy, kilka patentów przeniosłem do vima. Inna sprawa jest taka, że w tym momencie myślę, że bardzo ciężko byłoby mnie przekonać do IDE, bo nie wyobrażam sobie feature’a który mógłby być na tyle zajebisty, żeby mnie przeciągnąć na coś tak ciężkiego i nie do zaimplementowania jako plugin do vima. Ale kto wie :wink:

@drogus to może po prostu gedit? :slight_smile:

@lewy313 to nieźle podsumował, ale gedita kiedyś używałem. Tak samo jak swojego czasu jedita, eclipsa, radrails (takie coś na eclipsie zrobione), rubymine i textmate’a. Z tego rubymine tylko kilka dni, bo to było całkiem niedawno i tylko sprawdzałem krótko.

To przecież napisałem. Jedyna zaleta tego siedzącego korzeniami w latach siedemdziesiątych edytora.

Nie bardzo wiem na jakiej konfiguracji robisz deweloperkę. Ale jeśli jest to sprzęt na którym odczuwasz różnicę w zużyciu zasobów między SublimeTextem a Vimem, to sugeruję wreszcie podjąć męską decyzję o apgrejdzie.

Jeśli jedynym argumentem we flejmie o narzędziu jest “doceniają to tylko wierni / praktykujący, więc musisz spróbować”, to flejm jest przegrany zanim się zaczął.

Parafrazując Herberta, “Bóg stworzył wbijanie gwoździ w jaja by hartować wiernych”. Żeby zrozumieć jakie płyną z wbijania gwoździ w jaja korzyści trzeba trochę sobie tych gwoździ powbijać, czego nie wyciągnie się z oglądania fajnych filmików.

1 Like

Nie żebym był fanem vima, ale to żaden argument. Linux też “siedzi korzeniami w latach siedemdziesiątych”. :wink:

Jasne, ale to nie znaczy że należy przeglądać internet lynxem “bo żre mało zasobów i wszędzie dostępny” :wink:

Oczywiście. Nie znaczy to również, że jak korzenie czegoś sięgają lat 70 to jest to już w dzisiejszych czasach nie użyteczne (lub mniej użyteczne od odpowiedników). To również nie jest żaden argument.

Akurat VIM jako edytor ma zupełnie inną filozofię edycji plików, stąd ciężko go bezpośrednio porównywać z jakimkolwiek innym edytorem. Jeżeli ta filozofia edycji pracy danej osobie odpowiada i jest w niej najwydajniejszy (albo nawet nie, poprostu najwygodniej mu się w niej pracuje) to nie ma kompletnie znaczenia czy jest to “najlepszy” edytor dostępny.

Btw, jeśli ktoś chce rzeczywiście spróbować vima, to polecam:

http://mislav.uniqpath.com/2011/12/vim-revisited/
http://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim (pierwszy post)

Szczególnie arytkuł Mislava jest bardzo przydatny, bo pozwala zrozumieć 2 ważne rzeczy (i przy okazji całą masę mniej ważnych):

  1. nie powinno się zaczynać od dużego vimrc (w szczególności od popularnego configu “janus” zrobionego przez wykatza)
  2. jeśli coś zajmuje za dużo naciśnięć klawiszy do poruszania się lub backspace, znaczy, że sposób jest nieoptymalny

sarniak: swietne linki, dzieki

[quote=sarniak]Btw, jeśli ktoś chce rzeczywiście spróbować vima, to polecam:

http://mislav.uniqpath.com/2011/12/vim-revisited/
http://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim (pierwszy post)

Szczególnie arytkuł Mislava jest bardzo przydatny, bo pozwala zrozumieć 2 ważne rzeczy (i przy okazji całą masę mniej ważnych):

  1. nie powinno się zaczynać od dużego vimrc (w szczególności od popularnego configu “janus” zrobionego przez wykatza)
  2. jeśli coś zajmuje za dużo naciśnięć klawiszy do poruszania się lub backspace, znaczy, że sposób jest nieoptymalny[/quote]

Ależ można porównywać różne edytory, trzeba tylko znaleźć metrykę która pozwoli wszystkie “zmierzyć”.
Ja mam bardzo prostą metrykę: ile naciśnięć klawiszy zajmują mi najczęstsze operacje (otwarcie pliku w projekcie, przełączanie się między otwartymi plikami, podzielenie ekranu celem oglądania 2-3 plików na raz, maksymalizacja okna). Jest to moim zdaniem jedyna słuszna metryka, bo ilość operacji na klawiaturze wprost wpływa na poziom frustracji (a więc i motywacji a więc i produktywności) oraz ewentualne problemy zdrowotne z dłońmi i nadgarstkami (chyba każdy zna co najmniej jednego programistę cierpiącego na zespół cieśni nadgarstka).
Według tej metryki Vim przegrywa z Sublime’em.
Być może da się go skonfigurować tak, żeby mógł nawiązać równą walkę, ale mój czas kosztuje trochę za dużo żeby spędzać godziny na konfigurowaniu narzędzia.

Mnie bagaż filozoficzno-religijny przychodzący z Vimem przeraża o tyle, że jest to jedyny edytor którego użytkownicy przy każdej okazji i wbrew jakimkolwiek argumentom próbują ewangelizować inne osoby na przejście na ich stronę :wink: