To ogólny przegląd funkcji. Żeby zobaczyć wszystko, trzeba przejrzeć spis poleceń.
turtleSpaces opiera się na pełnej implementacji środowiska Apple (LCSI) Logo. O Logo mówiono, że jest „najpotężniejszym i najprzyjaźniejszym dla użytkownika językiem komputerowym, jaki kiedykolwiek zaimplementowano na komputerze osobistym”. (David Thornburg)
Logo jest językiem „funkcyjnym”, opartym na „prymitywach” (poleceniach), które przekazują sobie nawzajem wyniki – można je łączyć w łańcuchy, aby pobierać, obliczać i przekształcać dane na różne sposoby, zanim się je zapisze albo na ich podstawie coś zrobi.
Użytkownicy mogą tworzyć „procedury”, które zachowują się dokładnie tak jak prymitywy (i mogą je zastępować). Procedura może przyjmować parametry i zwracać wynik, zupełnie jak prymityw. Weźmy prymityw product , który mnoży dwie liczby:
to product :a :b
make "result 0
repeat :a [make "result sum :result :b]
output :result
end
W ten sposób faktycznie zastąpiliśmy product własną procedurą.
Logo pomyślano pierwotnie jako językowy plac zabaw dla dzieci. Dlatego bardzo dobrze radzi sobie z napisami i „listami” (zbiorami „elementów”), takimi jak [pig duck cow] czy [[Bob 53][Frank 22][Sue 34]]. Jest wiele prymitywów do budowania, porządkowania i przestawiania list oraz napisów, które w Logo nazywa się „słowami”.
Żółw trafił do Logo później, ale stał się jego najbardziej rozpoznawalnym elementem. Żółw to graficzny „kursor”, który porusza się względem samego siebie, inaczej niż w „bezwzględnych” systemach graficznych (choć w Logo można też pracować bezwzględnie). Mówisz żółwiowi, żeby się przesunął i obrócił, a on robi to względem swojego położenia i orientacji.
W turtleSpaces znacznie rozbudowaliśmy możliwości żółwi:
Żółwie mogą zajmować wiele space ów i mogą być rozmieszczone w różnych przestrzeniach (newspace selectspace). Każda przestrzeń to nieskończone trójwymiarowe płótno.
Każdy żółw może być kamerą – wybiera się go przez setview. Położenie kamery względem jej żółwia zmienisz przez setviewpoint. Żółwie działają też jako światła: mogą być reflektorem, światłem punktowym albo nie świecić wcale.
Procedury i zmienne (containers), a także szereg ustawień, są przypisane do konkretnego żółwia. Kontenery można share ować między żółwiami, a procedury udostępniać przez specjalnego żółwia libby (bibliotekę).
Żółwie są „prowadzone” przez workers , czyli wątki procesów. Jeden worker może prowadzić wiele żółwi (po kolei) albo wiele workerów może prowadzić wiele żółwi. Wiele workerów może nawet (próbować) prowadzić tego samego żółwia! Workery i żółwie to nie to samo. Pomyśl o żółwiach jak o samochodach, a o workerach jak o kierowcach.
Do turtleSpaces można połączyć się przez telnet i sterować workerem z terminala albo z innej aplikacji (API).
Tradycyjne żółwie Logo potrafią tylko rysować linie albo wypełniać obszary, ale ponieważ turtleSpaces opiera się na OpenGL, mamy do dyspozycji wiele innych shapes , które można tworzyć, w tym:
Voxele i quady można speckle ować (czyli pikselizować w stylu Minecrafta). Można tworzyć rysunki pikselowe (zarówno dwu-, jak i trójwymiarowe) i używać ich jako speck
Wśród prymitywów dźwiękowych są tradycyjny toot (tone), noise (generujący biały szum), playnotes , a muzykę stworzoną we wbudowanym tracker ze odtworzysz przez playmusic. Możesz też skorzystać z syntezatora mowy swojego systemu operacyjnego przez say (macOS i Linux)
turtleSpace ma użytkowników. Aby korzystać z turtleSpaces, „logujesz się” jako użytkownik.
Przestrzenie robocze użytkowników zapisywane są jako foldery „turtleSpace” (TSP). Foldery te zapisują każdą zmianę wprowadzoną w procedurach i pozwalają wrócić do dowolnego etapu pracy (undo , redo). To, co wpisujesz w wierszu poleceń, również jest zapisywane.
Migawki powstają przy save albo takesnapshot – punkt zapisu to stan, do którego przywracana jest przestrzeń robocza przy wczytywaniu. Możesz jednak pracować dalej i wrócić do stanu „bieżącego” przez load autosave. Trwałą „okładkę” (używaną w cat alogu) utworzysz przez takecover
Wiersz poleceń ma historię, którą można odczytywać programowo (historycount historyitem historylist).
Gdy pierwszy raz otworzysz IDE, żółwica Shelly oprowadzi cię po nim: pasek menu, przestrzeń robocza, przyciski uruchamiania, konsola, widok 3D i Przykłady. Trwa to około minuty, a Shelly może czytać na głos. Aby obejrzeć ją ponownie, wybierz Pomoc → Powitanie. Tę samą wycieczkę możesz też przeczytać na stronie.
Gdy program zatrzyma się z błędem, Shelly się pojawia i proponuje, że Claude go wyjaśni. Co to znaczy? wyjaśnia błąd ogólnie. Wyjaśnij to w moim kodzie wyjaśnia, co poszło nie tak w twoim programie. Spróbuj literówki:
forwrd 50
Pomoc Shelly przy błędach pojawia się, gdy jesteś zalogowany.
Po zalogowaniu edytor ma kartę Claude, asystenta kodu AI, w której możesz zadawać pytania o Logo i o swój program. Okrągły przycisk Claude w prawym górnym rogu edytora tekstu i obszaru Bloków daje trzy możliwości: Comment procedure dodaje komentarze do procedury, Explain with Claude wyjaśnia procedurę albo cały program prostymi słowami, a Teach Me How zamienia go w Turtorial.
Odpowiedzi AI mogą być błędne, więc je sprawdzaj. Co jest wysyłane, opisuje sekcja AI features w Polityce prywatności.
Turtorial to lekcja, którą Shelly tworzy z programu. Zamiast podać gotową odpowiedź, prowadzi cię krok po kroku, abyś sam zbudował ten program, z podpowiedziami, krótkimi pytaniami i przyciskiem Sprawdź moją pracę. Dopasowuje się do poziomu ucznia na podstawie zdobytych odznak; bez takich danych zakłada, że zaczynasz od zera.
Turtorial zaczyna się w pustej przestrzeni roboczej, więc jeśli masz niezapisane zmiany, najpierw zapyta o ich zapisanie. Jeśli przerwiesz w połowie, wybierz Pomoc → Resume, aby wrócić do miejsca, w którym skończyłeś, w tej samej przeglądarce. Trzeba być zalogowanym.
Potrzebujesz pomysłu? Codziennie w konsoli przy starcie IDE pojawia się nowe twórcze słowo. Zmienia się o północy UTC. Zrób coś na ten temat, przy publikacji oznacz to tagiem Dzisiejsze hasło i zobacz w galerii, co zrobili dziś inni.
IDE i ta strona są dostępne w językach English, Español, Français, 日本語 i Polski. Język wybierzesz w Ustawienia → Język. Polecenia Logo we wszystkich językach pozostają po angielsku, więc przykłady kodu działają wszędzie.