31 października 2026 roku ukazał się Toit v2.0.0. Toit to otwarty, obiektowy język programowania z własnym kompilatorem i maszyną wirtualną, który działa na ESP32. Stabilne wydanie przychodzi po ponad czterech latach wersji alfa. Florian Loitsch wylicza w ogłoszeniu ponad 2000 zmian w repozytorium, ponad 500 tys. zmienionych wierszy i ponad 200 wydań alfa. Ostatnie z nich, alpha.199, wyszło we wrześniu.
Od dawna stabilny, teraz także z nazwy
Toit powstał jako zamknięte oprogramowanie firmy Toitware, a później otwarto jego kod. Toitware zakończyło działalność w 2024 roku i od tamtej pory projekt rozwijają ochotnicy. Według ogłoszenia język od dawna był stabilny, mimo oznaczenia alfa. Numer 2.0 wstrzymywały dwie rzeczy: zaplanowane jeszcze zmiany niezgodne wstecz i zwyczaj czekania na jeszcze jedną ważną funkcję.
Ostatnia z zaplanowanych zmian niezgodnych wstecz właśnie weszła. Funkcje obsługi peryferiów przyjmują teraz numer pinu wprost, więc nie trzeba już każdego pinu najpierw opakowywać w obiekt gpio.Pin. Kto ma starszy kod w Toicie, który korzysta z GPIO, I2C albo SPI, powinien go sprawdzić po aktualizacji. Na nowe funkcje zespół przestał czekać: otwarte propozycje zmian z narzędziem do formatowania kodu, ulepszeniami kompilatora i obsługą kolejnych architektur trafią do następnych wydań.
Co zmienia samo wydanie
Lista zmian w v2.0.0 jest krótka:
- „mnóstwo” poprawek błędów od alpha.199,
- obsługa gniazd uniksowych (Unix domain sockets) przez pakiet
host, - nazwę hosta urządzenia można ustawić w konfiguracji oprogramowania układowego.
Ogłoszenie podsumowuje też, co przybyło od otwarcia kodu. Toit działa na prawie wszystkich odmianach ESP32 i na układzie EC618 z rdzeniem Arm. Dzięki jednemu poleceniu toit nadaje się też do pisania skryptów na komputerze. Menedżer pakietów napisano od nowa, a w języku pojawiły się domieszki (mixins). Doszły „koperty” oprogramowania układowego (firmware envelopes), dzięki którym da się je dostosować bez ponownego budowania SDK, lepsze testy na sprzęcie i podświetlanie składni Toita na GitHubie.
Gdzie Toit stoi obok ESPHome i Arduino
ESPHome opisuje urządzenie w YAML i generuje z tego program w C++. Toit to język ogólnego przeznaczenia, w którym program pisze się samemu. Bliżej mu do MicroPythona, tyle że kod jest kompilowany i działa we własnej maszynie wirtualnej. Najmocniejszą stroną dla majsterkowiczów jest Jaguar: mała aplikacja na ESP32 odbiera skompilowane programy przez Wi-Fi za pośrednictwem wbudowanego serwera HTTP, a polecenie jag watch wgrywa kod i uruchamia go ponownie w około dwie sekundy, bez kabla szeregowego i bez wgrywania całego oprogramowania od nowa. Dodatkowe usługi, na przykład synchronizację czasu przez NTP, instaluje się jako osobne kontenery obok głównego programu.
Kompilator i maszyna wirtualna są na licencji LGPL-2.1, a biblioteki standardowe na MIT. Wersja 2.0 nie zmienia sposobu działania Toita. Daje za to stabilną podstawę: łatwiej oprzeć na nim urządzenie, które ma działać latami, i pisać pakiety, które nie przestaną działać po kolejnym wydaniu.