Nadchodzi środowisko IDEalne…

Rdt w akcji... Od kilku tygodni obserwuję dwa projekty ściśle związane z rozbudową możliwości eclipsowego plugina o nazwie RDT. Plugin ten (znany też pod nazwą rubyeclipse) - zamienia Eclipse w IDE do Ruby’ego, stanowi także podstawę bardzo popularnego środowiska RadRails. Oba projekty rozszerzające możliwości RDT wykiełkowały właśnie nieco ponad grunt… Co to za projekty ?

Pierwszy z nich o ciut przydługiej nazwie Code Completion with Type Inference for Ruby Development Tools project jest tworzony pod egida Google Summer of Code. Głównym celem projektu jest wyposażenie RDT w mechanizm pozwalający na autouzupełnianie tworzonego kodu - podobnie jak to ma miejsce w IRB po wciśnięciu taba. O ogromnym znaczeniu tego mechanizmu dla szybkosci i wygody tworzenia kodu nie ma potrzebny chyba nikogo przekonywać. Aktualna wersja nie oferuje co prawda jeszcze autouzupełniania ale za to posiada bardzo przydatną funkcje ‘Mark Occurrences’ - której brak odczuwałem dosyć mocno od samego początku pracy z RDT. Działanie tej funkcji polega na wyróżnianiu miejsc w kodzie w których występuje zmienna której nazwa znajduje się aktualnie pod kursorem. Oprócz zmiennych lokalnych bieżąca wersja obsługuje także: zmienne lokalne w blokach, globalne, symbole, definicje klas. Screencast prezentujący działanie tej funkcji jest tutaj. Postępy prac nad projektem można śledzić na blogu autora projektu.

Przekompilowałem zawartość repozytorium z aktualną działającą wersją kodu, i umieściłem tutaj do pobrania. Do eksperymentów polecam czystą instalację Eclipse’a (w wersji 3.2).

Drugi projekt jest jeszcze bardziej ambitny. Grupa chłopaków ze Szwajcarii podjęła próbę dodania obsługi refactoringu w RDT. Temu projektowi kibicuję szczególnie, uważam że brak wygodnego narzędzia do refactorowania kodu jest jedną z głównych bolączek przy pracy nad większym projektem w Rubym. Niestety realizacja refactoringu w języku dynamicznie typowanym jakim jest Ruby nie jest zadaniem prostym (w porównaniu np do refactoringu Javy), choć warto wspomnieć, że sama idea i wzorce rafactoringu narodziły się w świecie Smalltalka, który w pewnym stopniu jest protoplastą Ruby’ego (a przy okazji całą praca na ten temat jest tu: http://st-www.cs.uiuc.edu/~droberts/thesis.pdf).

Pomysł na jakim oparli się autorzy projektu polega na wykorzystaniu transformacji drzew AST (które upraszczając sprawę odwzorowywują składnię tak jak ją widzi kompilator) jest to podejście analogiczne z tym znanym z Javy. Aktualna wersja plugina pozwala na zmianę nazwy zmiennej lokalnej, oraz przesuwanie metody w dół hierarchii dziedziczenia. Dodatkowo autorzy dodali możliwość generacji fragmentów kodu tj generację accessorów, generację konstruktora inicjującego atrybuty obiektu oraz generację metod nadpisujących.

Postęp prac nad tym projektem można śledzić na stronie projektu, bardzo ciekawy jest również raport autorów z dotychczasowych prac nad projektem.

Przekompilowaną wersję plugina RDT można pobrać ze stron projektu (tak jak poprzednio polecam czystą wersję Eclipse 3.2)

Ukończenie prac nad opisanymi tu projektami i ich oficjalne włączenie do RDT w znakomity sposób poprawi jakość i tempo powstawania kodu w Rubym. Patrząc na harmonogramy obu projektów ten dzień jest całkiem blisko…
Trzymam kciuki za sukces obu projektów !

[ ]
Spodobało się? Podziel się z innymi: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • Wykop
  • Gwar
  • Digg
  • Technorati

Liczba komentarzy: 2 »

  1. Adam Hoscilo said,

    lipiec 27, 2006 @ 15:47

    Jesli rozwiazania te wejda oficjalnie do RDT to Eclipse+ RDT (tak zreszta jak RadRails) wyjda na zdecydowane prowadzenie wsrod IDE.
    Ja nadal mam nadzieje, ze http://rubyjedit.org/ bedzie sie rownie dynamicznie rozwijal.

    Co do IDE to chcialbym aby jakies IDE Pythonowe szlo w tak dobra strone - tak wiem, ze jest ich troche ale poza Ericiem 3 zadne do mnie nie trafia.

  2. daniel said,

    lipiec 27, 2006 @ 16:07

    Projekt dotyczący autouzupełniania właściwie musi sie zakończyć sukcesem - bo to jest wymagane przez googla żeby wypłacić grant… Co do refactoringu to w raporcie (bardzo zresztą ciekawym) chłopaki piszą, że chcą dyplom na tym oprzeć - więc szanse są imho całkiem spore…

RSS feed for comments on this post · Adres TrackBack

Dodaj komentarz