Entries from Październik 2007 ↓

Porównanie IDE / edytorów dla Ruby on Rails

Porównanie Rails IDEŻeby firma odniosła sukces, najpierw musi w ogóle powstać. Tu więc najważniejszym elementem jest faza początkowa, czyli startup.
Żeby startup mógł powstać, ktoś musi najpierw go zbudować. Mowa tu o startupie technologicznym / internetowym, więc kluczowym elementem jest w tym przypadku zespół developerski.
Żeby ten zespół mógł stworzyć swój wymuskany produkt końcowy, musi mieć w czym pracować. I tu elementem niezbędnym i koniecznym jest edytor lub środowisko programistyczne (IDE).
Jako że piszę tu o Ruby on Rails, to zanim przejdę do tematów bardziej technicznych, najpierw się skupię na elemencie niezbędnym (pomijając umiejętność myślenia, bo bez tej nawet najlepsze środowisko programistyczne nie spłodzi nawet jednej sensownej linijki kodu, może oprócz scaffold‘ów).

Zróżnicowanie systemów operacyjnych jest widoczne również w przypadku edytorów i IDE (w dalszej części będę tych pojęć używał zamiennie, żeby za każdym razem nie podkreślać, że coś jest edytorem, a coś innego jest środowiskiem programistycznym).
Użytkownicy Mac’ów mają „owiany legendą” TextMate.
Linux ma sporo opcji: jEdit, vim, Cream (bazujący na vim), 3rdRail (płatny, $299) i in.
Jako że jednak uznałem, że wydanie kilku tysięcy złotych na Mac’a tylko po to, żeby mieć dobry edytor dla projektów Railsowych, mija się z celem, pracuję więc pod Windowsami i dla tego właśnie systemu przygotowałem zestawienie porównujące dostępne opcje dla środowisk programistycznych dla Ruby on Rails.
Wraz z upływem czasu i rosnącym „zamieszaniem” wokół Rails (w pozytywnym tego słowa znaczeniu), rośnie również dostępna ilość edytorów. Stopniowo dołączają coraz bardziej znane marki i są tworzone coraz bardziej zaawansowane narzędzia. Jest więc w czym wybierać, w porównaniu choćby do okresu sprzed roku.

Ze wszystkich możliwych opcji dostępnych na dzień dzisiejszy pod Windows, zdecydowałem się wybrać cztery i przyjrzeć im się bliżej. Są to: Aptana / RadRails, Netbeans, e oraz Komodo Edit.
Oto jakie wersje miałem zainstalowane podczas testowania:

  • Aptana IDE build build 0.2.9.17048 (plugin RadRails 0.8.0.200707021211)
  • NetBeans Ruby IDE 20071020152017 (Ruby and Rails plugin v. 0.102.0)
  • e v. 1.0.3
  • Komodo Edit, version 4.2.0, build 281898

Po kolei, dlaczego akurat te:

  • Aptana, bo wcześniej używałem i polubiłem RadRails. Niestety nie mogę stwierdzić, że od kiedy RadRails został przejęty przez Aptanę, wyszło to na korzyść dla tego pierwszego. Możliwe jednak, że z czasem dojdą do ładu i produkt będzie tylko coraz lepszy.
  • Netbeans, bo jest to prawie kompletne, rozbudowane i profesjonalne środowisko programistyczne, które ostatnio zauważyło Ruby i dość dynamicznie szlifuje swoje funkcje w tym kierunku.
  • e (lub też „e texteditor”), bo jest to chyba najbardziej zbliżony „klon TextMate’a” pod Windows. Mimo iż jest płatne (po okresie testowym 30 dni licencja kosztuje $34,95)
  • Komodo, bo mimo iż może mniej znane, ale jest to szybkie i wygodne narzędzie dla projektów w Ruby.

Dość dużym zainteresowaniem cieszy się też jEdit, ale miałem z nim zbyt dużo problemów dostosowując go do przynajmniej znośnej pracy w Rails, żeby poważnie rozważać jego kandydaturę, przynajmniej na tym etapie rozwoju. Poza tym jego wygląd naprawdę nie powala, a skoro mam wiele godzin dziennie patrzeć na to, co mam przed sobą na ekranie, to siłą rzeczy wolę, żeby był to twór jeśli nie piękny, to przynajmniej miły. Podobnie z kobietami – jak nie jest piękna, to niech chociaż będzie miła. jEdit niestety w mój gust nie trafił w żadnej z tych kategorii, więc nie ma go w tym zestawieniu.

Wracając więc do pięknych, miłych i czasami nawet posiadających obie cechy naraz. Poniżej zestawienie funkcji i właściwości każdej z czterech opcji. Nie jest to w żadnym wypadku kompletna lista możliwości w żadnym z czterech przypadków – jest tego o wiele, wiele więcej. Jednak te są moim zdaniem ważne pod tym względem, że – bardziej lub mniej – przyczyniają się do pożądanego efektu końcowego, jakim jest przyjemna, szybka i efektywna praca w miłym środowisku (tym razem nie ludzkim, a komputerowym).

Na Google Docs zamieściłem wersję również z angielskimi nazwami właściwości, na wypadek gdyby moje wysiłki tłumaczeniowe okazały się nie do końca jasne dla wszystkich. Oto link: Porównanie IDE / edytorów dla Ruby on Rails: Rails IDE.

Porównanie IDE i edytorów dla Ruby on Rails

Po kolei więc podsumowanie, od „ostatniego miejsca” w tym zestawieniu.

  • Komodo Edit

Komodo Edit jest darmową wersją Komodo IDE ($295,00), jednak nawet wersja darmowa jest dostatecznie dobrym narzędziem, żeby móc polecić go ludziom zajmującym się Ruby on Rails. Może nie jest jeszcze najlepszym rozwiązaniem dla dużych i skomplikowanych projektów, ale dla mniejszych prac na pewno spełni pokładane w nim oczekiwania. Na jego korzyść na pewno przemawia szybkość działania. Stosunkowo prosty i niezaśmiecony interfejs również jest na plus. Możliwość definiowania własnych makr oraz spora ilość już dostępnych pozwala na dostosowanie go do swoich potrzeb. Ocena końcowa: 6. Dla mnie sporym minusem jest brak snippets (z braku polskiego odpowiednika, zostawiam angielską nazwę), który przy dłuższej pracy z Rails jednak daje się we znaki. Wygląd, mimo iż prosty i nienachalny, też mógłby być jednak trochę lepszy. Poniżej screeny wszystkich edytorów, więc można porównać.

  • Aptana / RadRails

Prosty w użyciu i w miarę szybki RadRails po przejęciu przez Aptanę trochę stracił na swojej prostocie, bo zostało dodane dużo moim zdaniem zbędnych rzeczy. Jednak jest to dosyć logiczne, zważając na fakt, że RadRails był przystosowany tylko do pracy z Rails, a Aptana to środowisko programistyczne dla dużo większej ilości języków i framework’ów. Mimo iż na tej zmianie RadRails sporo stracił, to jednak ciągle posiada większość swoich pozytywnych cech. Jeśli chodzi o wygląd, to brak motywów jest tu minusem (wolę pracować na ciemnym tle, więc wszędzie gdzie tylko można zmieniam wygląd – oczy się mniej męczą przy ciemnym tle, szczególnie w nocy). Możliwość dostosowania do swoich potrzeb jest dość spora, więc na upartego można zmusić, żeby Aptana pracowała tak, jak się chce. Ocena końcowa: 7.

  • e i Netbeans

Obecnie pracuję w Ruby on Rails pół na pół, jeśli chodzi o edytory: połowę czasu (mniejsze projekty, szybkie zmiany, początkowe fazy) w „e”, połowę w Netbeans. Dlatego dałem równe oceny dla obu tych opcji.
Za „e” przemawia jego prostota, szybkość działania, zintegrowanie z SVN (działające trochę bardziej intuicyjnie i prościej, niż w Netbeans), ciągły i szybki rozwój (co bardzo ważne), możliwość zaznaczania również kolumnowo (w pionie) i oczywiście snippets, które działają bardzo dobrze i są ciągle dodawane nowe.
Netbeans natomiast jest według mnie środowiskiem najbliższym tego, żeby można go było nazwać kompletnym. Dobrze rozwiązna nawigacja pomiędzy poszczególnymi plikami (jej brak jest bardzo uciążliwy przy otwartej dużej ilości plików), dokumentacja dostępna bez wychodzenia z edycji (dostępna razem z funkcją autouzupełniania), smart views (podział na kontrolery, widoki, pliki konfiguracyjne itp. według ich funkcji, a nie struktury folderu), nawigacja w dokumencie i powiązanych z nim plikami oraz setki innych funkcji, które są dostępne, jeśli tylko dusza zapragnie.
Na niekorzyść „e” może działać brak podświetlania błędów czy brak możliwości otworzenia kilku projektów jednocześnie, jednak jest to edytor, a nie IDE, więc nie jest to jego celem. W ciągu ostatnich kilku miesięcy od kiedy używam tego edytora, zmiany są wprowadzane szybko i jest ich sporo, więc komfort pracy z „e” rośnie.
Minusem Netbeans jest szybkość. Często się zdarza, że nie jest „błyskawiczny” i trzeba trochę poczekać. Skutki Javy. Jest jednak również bardzo intensywnie rozwijany pod kątem Rails, więc jeśli chodzi o przyjemność użytkowania, ilość funkcji, poprawność ich działania i szybkość dodawania nowych, naprawdę warto mu się przyjrzeć i poważnie rozważyć jako swoje główne narzędzie w podbijaniu świata (oprócz umiejętności myślenia oczywiście, co już jednak wspominałem).

Narzędzia programistyczne są w naprawdę wielu smakach. Każdy lubi inny smak lodów, więc nie widzę dlaczego miałoby być inaczej z IDE. W efekcie końcowym liczy się to, czy dobrze się nam pracuje w tym czy innym środowisku. Radzę więc samemu przynajmniej na krótko wypróbować każdą z opcji i zdecydować się na tą, która będzie „najsmaczniejsza”.
Poniżej – dla porównania – ilość RAM, jaką aktualnie zużywa wszystkie powyższe opcje na moim komputerze. Na ten wynik może wpływać wiele czynników, ale podaję poglądowo, przynajmniej dla zobaczenia jaki jest rząd wielkości. Każdy z edytorów ma otwartych około 10 dokumentów.
// Konfiguracja mojego komputera: 2 GB RAM, Intel Core2 1,83 GHz //

Aptana: 130 MB
Netbeans: 161 MB
e: 28 MB
Komodo: 88 MB

Poniżej screeny (dla tych, co nie chcą ściągać i instalować, a chcieliby obejrzeć). Wszystkie edytory miały ustawione domyślnie białe tło, ale jak już wspomniałem – wolę czarne i dbam o oczy, więc widać tego efekty.

Aptana IDE Aptana IDE

e texteditor e texteditor

Komodo Komodo Edit

Netbeans API Netbeans API

Jeśli macie jakieś inne godne uwagi edytory lub IDE dla Ruby on Rails albo nie zgadzacie się co do którychś moich stwierdzeń (co byłoby całkowicie logiczne, ja np. nie lubię lodów orzechowych albo truskawkowych), zapraszam do zostawienia swojej opinii w komentarzach.

Powody, dla których zostałem freelancerem

Bądź innyJak wskazuje sam tytuł, wcześniej freelancerem nie byłem. Owo „wcześniej” znaczy w moim przypadku około dwóch miesięcy. Do tego czasu moja tzw. ścieżka kariery przebiegała może niezbyt typowo, ale też nie odbiegając daleko od średniej statystycznej, z zaznaczeniem, że jest to średnia statystyczna dla studentów z dużych uczelni.

Otóż najpierw były studia (przez czas najdłuższy jak to tylko możliwe).

Później praca pierwsza → praca druga → praca kolejna.
Płaca niska → płaca średnia → płaca bardzo dobra.

Na dodatek wszystkie prace bez jakiegokolwiek bezpośredniego związku z komputerami oprócz nieśmiertelnych Power Pointów i oczywiście szczytu zaawansowania technologicznego – tabel przestawnych w Excelu.
Podczas pierwszej wizyty w centrali jednej z korporacji gdy chciałem się przedstawić i normalnie opowiedzieć kilka zdań o sobie, usłyszałem “Do you have a presentation for that?”. Na początku przyjąłem to jako średnich lotów żart, ale później się okazało, że byłem chyba pierwszy, który “zaprezentował swoją osobę” bez użycia prezentacji w Power Poincie.

Mimo jednak faktu, że wszystkie poprzednie miejsca pracy nie były związane z IT, ciągle robiłem swoje po godzinach pracy. W tym przypadku swoje = wachlowanie kodem, tworzenie mniej lub bardziej użytecznych programów / serwisów, obmyślanie koncepcji na następny “killer-app” itp.

Dostatecznie długi czas minął i dostatecznie wiele niesamowitych pomysłów nie zrealizowałem, żeby zacząć myśleć o tym, żeby jednak poważniej podejść do tematu. Każdy kolejny niezrealizowany pomysł (brak czasu, zbyt duże wymagane nakłady pracy na realizację po godzinach, świat poza pracą i monitorem, który jest na tyle nęcący, że się domaga trochę więcej niż tylko paru godzin na dobę) pchał mnie coraz bardziej ku decyzji, która zapadła te parę miesięcy temu.
Oprócz tego, było też kilka innych, równie kluczowych elementów:

  • Rutyna – po pół roku w każdej dotychczasowej firmie ilość nowych rzeczy do poznania, nauczenia się, zastosowania, spada praktycznie do prawie niezauważalnego minimum.
  • Poniedziałkowe poranki – uczucie skazańca idącego na stos (albo przynajmniej przestępcy wracającego z przepustki) zaczynając nowy tydzień.
  • Poczucie robienia “czegoś ważniejszego, czegoś, co ma znaczenie”. A raczej jego brak.
  • W związku z powyższym – odczucie, że się powinno być całkiem gdzie indziej (patrz rys. 1).
  • No i patrząc z perspektywy dnia dzisiejszego, mogę z pewnością potwierdzić, że jeden z najważniejszych powodów to chęć zmiany ścieżki A-B na ścieżkę A-C (patrz rys. 2). Udało się bezbłędnie.

A już po uczynieniu kroku milowego, trzeba było sobie odpowiedzieć na pytanie: “co dalej?”.
Pytanie bardzo ważne, ale też niemożliwe do przewidzenia w danym momencie. Z grubsza dróg jest kilka:

  • Freelancing na pełen etat
  • Założenie własnej firmy na podstawie jednego z pomysłów na “killer-app”
  • Rozwijanie stopniowo pomysłu numer dwa, zarabiając przy tym na to poprzez częściową realizację planu numer jeden.

Wybrałem plan trzeci i tego się na razie trzymam.

Freelance - budzik“W kolejnym odcinku”…
…będzie mniej historii, a więcej praktyki (jeśli będzie to artykuł o Ruby on Rails) lub analizy (jeśli będzie o startupach).

PS. Teraz w poniedziałek rano jak włączam radio i słyszę jak prowadzący/a współczuje wszystkim, bo jest właśnie “poniedziałek rano”, to wreszcie nie rozumiem o co mu/jej chodzi (patrz rys. 1, 2)

Był sobie chłopiec…

Sabon - Start …a przynajmniej chłopiec z punktu widzenia iluzorycznej i enigmatycznej „blogosfery”. Chłopcem był, bo w owej blogosferze nie uczestniczył, czyli że bloga swego nie posiadał.
I nie z chęci stania się „mężczyzną”, ani też z naśladownictwa, jednak od dzisiaj powstaje nowy twór blogosferowy (nigdy nie lubiłem tego słowa, więc będę ograniczał jego uzywanie do minimum). Z potrzeby ustruktyruzowania swoich przemyśleń, skrystalizowania przemyśleń i chęci skonfrontowania ich z szerszym gronem.

Na tym blogu mam zamiar umieszczać treści w przeważającej mierze z trzech dziedzin:

Dlaczego akurat te tematy?
Po kolei:

  • Freelancing, bo jestem freelancerem. Świeżo upieczonym (parę miesięcy) jeśli chodzi o „full time”, ale dość długo już działającym, jeśli chodzi o „part time”.
  • Startupy, bo oprócz bycia freelancerem pracuję też nad swoim(i) projektem(ami), co w przyszłości może się przerodzić w nowy startup (wizja optymalna) bądź nie dożyć do tego etapu (wizja katastrofalna).
  • Ruby on Rails, bo w tym właśnie się specjalizuję i w tym robię swoje projekty.

Nie będę poruszać zaś tematów, na których się nie znam bądź też z którymi nie miałem bezpośredniej styczności na tyle, by wyrobić sobie o nich zdanie.
Nie mam też zamiaru tylko i wyłącznie tłumaczyć na polski tego, co się pojawia w sieci po angielsku. Mieszkam w Polsce (Wrocław), tutaj pracuję, więc będę się na tym właśnie skupiał. Trendy światowe są dla mnie interesujące na tyle, na ile dotykają i wpływają na polskie realia. Często te wpływy są pośrednie i oddziaływujące w bardzo inny sposób, niż na swoim macierzystym rynku anglojęzycznym.

Jeśli zaś chodzi o blogi i język angielski, to nasuwa się od razu skojarzenie związane i z jednym i z drugim: „content is king”. Król jednak nagi chodzić nie powinien. To nic, że nader często tak właśnie paraduje, ale jednak nie powinien. Żeby go trochę oblec w szaty, poniżej zapowiedź pierwszych dziesięciu artykułów, jakie się pojawią na tym blogu. Jak już wszystkie 10 będzie online, to może nie będzie to jeszcze król, a zaledwie zaściankowy szlachcic czy pośledni książę i może nie będzie miał przepysznych szat, ale przynajmniej nie powinien mieć czego się wstydzić i będzie mógł wyjść do ludzi bez świecenia oczami.
A oto i artykuły, wraz z kategoriami, do których będą przypisane:

  1. Przyszłość startupów internetowych w Polsce (startupy)
  2. Znaczenie lokalizacji geograficznej startupów (startupy)
  3. Znaczenie zasięgu rynku docelowego startupu (lokalny / globalny) (startupy)
  4. Porównanie IDE / edytorów dla Ruby on Rails (Ruby on Rails)
  5. Analiza SWOT dla Rails w Polsce i na świecie (Ruby on Rails)
  6. Ataki SQL injection Iniekcja SQL w aplikacjach Rails (Ruby on Rails)
  7. Możliwość wypromowania się będąc freelancerem (freelance)
  8. Nabycie i utrzymanie potrzebnych umiejętności (freelance)
  9. Powody, dla których zostałem freelancerem (freelance)
  10. Dlaczego powstaje stosunkowo mało serwisów mimo ciągle zmniejszającej się bariery wejścia (freelance / startup / Ruby on Rails)

Artykuły te będą się ukazywać niekoniecznie w takiej kolejności jak powyżej, ale na pewno każdy z tych tematów zostanie poruszony.
Żeby nie przegapić tego, który Cię interesuje, najlepiej od razu subskrybuj RSS i wtedy na pewno nic Cię nie ominie.

/ AD 2007 / Sabon (Radek Sienkiewicz) /