Szybkość refactoringu? W sensie, IDE za ciebie kodu nie przepisze więc nie bardzo rozumiem.
Analiza kodu w przypadku języków takich jak Ruby sprawdza się raczej słabo. Wystarczy trochę metaprogramingu albo nie standardowych rozwiązań, a już na nic się nie zda.
Różnica pomiędzy RubyMine, a IntelliJ IDEA to znacznie więcej. RubyMine jest nie tyle okrojoną wersją IntellJ (bo to sugeruje, że IntelliJ zawiera wszystko to co RM i więcej), a wywodzi się z niej dodając nowe funkcjonalności. Nie dostępne poprzez pluginy (jak chociażby widoki projektu, analizę modeli i relacji itp. itd.).
Abstrahując - nie róbmy z tego wojny. Osobiście korzystałem z wszystkiego chyba co się da, wliczając w to VIM’a, Emacs’a, Sublime, Atom’a, Aptanę, Netbeans’a, RubyMine’a i wiele innych których już nie pamiętam. Znam ich wady i zalety i nie ma rozwiązania idealnego. Są tylko rozwiązania dla jednych lepsze dla innych gorsze. Podkreślam RubyMine jest bardzo dobrym IDE, ale trzeba być świadomym jego zalet jak i wad (ograniczeń).
Analiza kodu w rodzince IntelliJ jest całkiem niezła. Szczególnie przydaje się to do JavaScriptu.
Nie chodzi nawet o błędy w składni, ale o zasłonięcie zmiennej, czy inne subtelniejsze rzeczy. Zwykły edytor tego nie wyłapie. RubyMine potrafi nawet wyłapać niespójność kluczy w obiekcje JSON’a, gdyż operuje na żywych danych. Także podświetla wszystkie wystąpienie danej zmiennej rozumiejąc jej kontekst leksykalny. Nie widziałem zwykłego edytora który by to potrafił.
Co do IDEA vs RubyMine to IDEA Ultimate ma trochę inny interfejs (musi obsłużyć różne języki) i zmiany są tam dodawane z lekkim opóźnieniem w stos. do RubyMine, PyCharm i reszty “okrojonych” wersji IDEA Ultimate. Jak to piszą: “The Ruby plugin for IntelliJ IDEA is built from the same codebase as RubyMine. Some features may be temporary not available in the plugin because the latest available IntelliJ IDEA bases on an earlier IntelliJ platform compared to RubyMine.” http://devnet.jetbrains.com/docs/DOC-1146
Po bliższym przyjrzeniu się edytorowi Sublime Text stwierdzam że powyżej opisana niemożność wprowadzania danych jest uciążliwa. O ile w przypadku obsługi języka Ruby można ominąć ten problem (dlaczego autorzy edytora od razu nie zadbali o jego rozwiązanie?), to w czasie pracy z Pythonem praktycznie nie ma możliwości ani poprawnego wprowadzenia czegoś z klawiatury, ani rozsądnego rozwiązania tego błędu. Znalazłem w internecie sporo dyskusji o tym niepoprawnym funkcjonowaniu Sublime Text. Po co tworzyć edytor który nie pozwala na wprowadzenie danych za pomocą get albo input?
Wiem, wiem, jestem świeży w tej branży i nie za bardzo potrafię się prawidłowo wysłowić. Chodziło mi o odniesienie się do mojego poprzedniego wpisu o edytorze Sublime Text:
Jak mam jakiś kod w którym (po jego uruchomieniu) trzeba wprowadzić dane z klawiatury, np. na zapytanie o imię użytkownika, to Sublime Text nie reaguje na to. Na StackOverflow znalazłem rozwiązanie tego problemu dla Ruby, ale nie dla Pythona. Edytor SciTe jakoś sobie z tym radzi, a Geany wogóle nie ma z tym problemu.
Uruchamiam go poprzez kliknięcie Tools-Build. Zwykły kod jest wykonywany normalnie, ale ten w którym jest żądanie wprowadzenia danych z klawiatury, nie daje możliwości ich wprowadzenia.
Używam Sublime’a non stop od ponad roku i nawet nie wiedziałem, że tak można nie traktuj go jako żadne IDE gdzie sobie poodpalasz/podebugujesz programy, tylko i wyłącznie jako edytor tekstowy, do całej reszty masz konsolę.
Właśnie i to jest problem, edytorów czy IDE w przypadku rubiego czy pythona nie powinno się tak wykorzystywać, że wykonują ci kod, gdyż działa to nieprawidłowo, lub strasznie wolno. Niestety wprowadzenie takich funkcji do IDE ma chyba więcej negatywów niż pozytywów. W takim wypadku nie warto przyznawać się do korzystania z takiego edytora. Niestety Vimowcy (chodzi mi tutaj o osoby korzystające z konsolowych edytorów tesktowych nie koniecznie tylko vim) jak słyszą, że korzysta się z Rubymina czy innego IDE który sam uruchamia projekt, z góry zakładają, że użytkownik tak właśnie używa te IDE, a nie biorą pod uwagę, że to można używać tylko jako edytor tekstowy z fajnymi feauterami a aplikację uruchamia się z konsoli
Trochę się rozpisałem, ale wyżej opisany problem istnieje i zdarza się bardzo często.
Notepad++ jest chyba aż za bardzo rozbudowany. Jako zamiennik Windowsowego notatnika używam Notepad2, ale niestety on nie koloruje składni Rubiego. Dlatego przerzucę się na zmodyfikowaną wersję, czyli Notepad2-mod. Ona już rozpoznaje kod Ruby.