"The Grid. A digital frontier. I tried to picture clusters of information as they move through the computer. What did they look like? Ships? Motorcycles? Were the circuits like freeways? I kept dreaming of a world I thought I’d never see. And then, one day, I got in." — Tron: Legacy

2012-12-17

Light Table : Factorial fun

Niedawno na kickstarter.com wystartował projekt IDE dla języka Clojure przez człowieka o nazwisku Chris Granger. Dzisiaj zaprezentuję działanie części edytora: Instarepl. Jest to moduł, w którym można testować kod. Ma tę przewagę nad innymi REPL-ami, że widać wyniki działania poszczególnych poleceń. Nie tylko po wykonaniu polecenia, ale też aktualizację innych w historii jeżeli wcześniejszy kod coś pozmienia. Jak dla mnie bajka. Dawno czegoś takiego nie widziałem. Ekran Instarepl jest podzielony na dwa obszary. Z lewej strony mamy edytor kodu, z prawej kod, i wyniki działanaia. W wynikach przez ciała funkcji zamiast symboli przewijają się dane i widać jak przechodzą przez kolejne polecenia. W przypadku pętli zauważyłem, że widać tylko ostatnią iterację.

Light table można pobrać z tej strony. Wymagane jest JDK Javy. Przy pierwszym uruchomieniu program pobiera niezbędne biblioteki. Proces ten trwa dość długo, więc nie należy się przerażać, że aplikacja "wisi". Najlepiej za pierwszym razem uruchomić w konsoli poleceniem "java -jar launcher.jar",  bo będzie widać przebieg instalacji. Program także doinstalowuje biblioteki przy przejściu do części projektowej : Table.

Widok główny Light Table


Widok Instarepl

Jak widać na zrzucie ekranu Instarepl wyjście funkcji, które piszą do standardowego wyjścia (terminal/konsola) umieszczane jest na końcu bloku wyników pod linijką "Output:".

Część Table wygląda tak:


Z lewej pokazują się bloki funkcji, które można edytować. Polecam zapoznać się ze skrótami klawiszowymi, bo w widoku nie ma żadnych przycisków, czy menu z komendami.

Z prawej strony ekranu na górze w lewym okienku jest widok przestrzeni nazw. Każda przestrzeń nazw zawiera funkcje, które wyświetlają się w prawym okienku. Niżej na czerwono jest brudnopis do testowania kodu, a jeszcze niżej w zielonym polu pojawiają się wyniki działania funkcji z brudnopisu lub programu. Widać, że autor wzorował się na browserze kodu Smalltalka. Według mnie to dobre rozwiązanie, a przydałaby się jeszcze możliwość podziału funkcji na własne kategorie.

Dodam, że to IDE jest w wersji alpha, więc zawiera bugi i nie jest tak rozbudowane jak można by sobie życzyć (np. brak refaktoringu).  Jednak w porównaniu do wtyczek Clojure do Eclipse czy Intellij IDEA program ten to ogromny krok naprzód i z przyjemnością się z nim pracuje.

Na koniec załączam gwóźdź programu, czyli film z testowania Instarepl, na przykładzie realizacji funkcji liczącej silnię z testami ze strony 4Clojure.


Pod koniec filmu mam małą przywieszkę z tego względu, że nie zauważyłem błędu w funkcji, a środowisko czasem lubi się przywiesić. Np. w wyniku edycji funkcji, program  wpadnie w nieskończoną pętlę. Ten fakt można poznać po zwiększonym zużyciu procesora, lagowaniu interfejsu i braku reakcji na zmiany kodu (factorial3 zawsze pokazywał 1). To mnie wprowadziło w błąd.

Projekt Light Table jest bardzo ciekawy, więc mam nadzieję, że nie tylko mnie przypadnie do gustu. :)

Brak komentarzy:

Prześlij komentarz