BlueJ i Greenfoot: Najlepsze IDE do nauki języka Java

Mówisz, że chcesz się nauczyć języka Java. To może być zniechęcający język. Może się to nawet wydawać nieprzeniknione, jeśli jesteś nowym programistą. Ale bierzesz głęboki oddech i postanawiasz spróbować. Ok, na początek: potrzebujesz jednego z tych zintegrowanych środowisk programistycznych (IDE), o których czytałeś. Pojedyncza aplikacja, w której można edytować, budować, uruchamiać, debugować i wdrażać aplikację Java, która wkrótce zostanie napisana.

Dostępnych jest kilka popularnych, bezpłatnych środowisk Java IDE: na przykład Eclipse, NetBeans i edycja społecznościowa IntelliJ. Wybierasz jedną, pobierasz i instalujesz, aw bardzo krótkim czasie zdajesz sobie sprawę, że musisz się teraz nauczyć dwóch rzeczy: Java i IDE. Wybrane przez Ciebie narzędzie programistyczne jest tak samo nieprzeniknione, jak język, w którym ma Ci pomóc.

Wpisz BlueJ i Greenfoot, dwa środowiska IDE specjalnie zaprojektowane dla początkujących. Są produktem zespołu z King's College w Londynie (chociaż członkowie zespołu byli czasami powiązani z uniwersytetami w Australii i Danii). Twórcy BlueJ i Greenfoot wybrali zestaw funkcji i projekt interfejsu, aby nie przytłoczyć początkujących.

W rzeczywistości, jak wyjaśnia Neil Brown, główny programista, funkcje BlueJ i Greenfoot są „... ujawniane, gdy użytkownicy do nich przychodzą”. Nie jesteś wrzucony w głęboki koniec basenu. W związku z tym obie zapewniają łatwe wprowadzenie nie tylko do języka Java, ale także do narzędzi i technik potrzebnych do tworzenia aplikacji w tym języku.

Ucz się Java z BlueJ

BlueJ pojawił się po raz pierwszy w 1999 roku, nazwany po prostu Blue. W tym czasie było to zarówno środowisko programistyczne, jak i język. Kiedy pojawiła się Java, narzędzie zostało przebudowane przy użyciu Javy jako języka, a nazwa została zmieniona na BlueJ.

Istnieją wersje BlueJ dla systemów Linux, MacOS i Windows. BlueJ jest również dostępny w formie ogólnej: spakowany jako plik JAR, dzięki czemu można go zainstalować w dowolnym systemie obsługującym Javę. Obecna wersja BlueJ (4.2.2 w chwili pisania tego tekstu) wymaga JDK 11 lub nowszej i jako taka musi być uruchamiana w 64-bitowym systemie operacyjnym. Wcześniej istnieją wersje 32-bitowe, ale nie są już opracowywane.

Po raz pierwszy dowiedziałem się o BlueJ (i Greenfoot), kiedy znalazłem je wstępnie zainstalowane na Raspberry Pi 4, które dostałem w zeszłym roku. Później dowiedziałem się, że BlueJ został zainstalowany na Raspberry Pi od 2015 roku.

Otwórz projekt w BlueJ, a zobaczysz odświeżająco rzadkie okno: pasek menu u góry, pasek narzędzi po lewej stronie dużego obszaru stołu roboczego i mniejszy panel stołu z obiektami poniżej. Przyciski na pasku narzędzi umożliwiają tworzenie klas, definiowanie relacji dziedziczenia lub kompilowanie klas. Klasy projektów pojawiają się w środowisku roboczym jako rodzaj okrojonego diagramu UML i chociaż BlueJ nie jest pełnowymiarowym wizualnym środowiskiem programistycznym, wystarczy, abyś mógł zobaczyć relacje między jednostkami w programie, ale nie stracić z oczu kodu.

Kliknij dwukrotnie ikonę klasy w środowisku roboczym, a jej źródło zostanie otwarte w edytorze, w którym zostanie wyświetlona kolejna pomoc wizualna: podświetlenie zakresu. Dzięki podświetlaniu zakresu zagnieżdżone bloki kodu są dosłownie podświetlane na różnokolorowych tłach, dzięki czemu można szybko zobaczyć obszar objęty metodą w klasie, forpętlę w metodzie, ifinstrukcję w tej forpętli i tak dalej. Struktura kodu jest natychmiast widoczna.

Kliknij prawym przyciskiem myszy klasę w środowisku roboczym, a pojawi się nowe menu, które - w zależności od charakteru i składu klasy - pozwala skompilować klasę, sprawdzić jej zawartość, utworzyć odpowiednią klasę testową (więcej o tym później), wykonać metoda klasy lub utwórz instancję obiektu klasy. Tutaj interaktywność BlueJ zajmuje centralne miejsce.

Klasy można zestawiać indywidualnie; nie musisz odbudowywać całego projektu, jeśli zmodyfikowałeś jedną klasę. Wybierz wykonanie metody klasowej, a pojawi się okno dialogowe z monitem o wprowadzenie metody. Wprowadź dane wejściowe, kliknij OK i pojawi się kolejne okno dialogowe, pokazujące zwracaną wartość i typ danych.

Jeśli utworzysz instancję klasy, na tablicy obiektów pojawi się ikona reprezentująca nowy obiekt. Podobnie jak w przypadku klas, możesz kliknąć prawym przyciskiem myszy ikonę obiektu i sprawdzić zawartość obiektu. Możesz także wykonywać indywidualne metody instancji obiektu; pojawiają się okna dialogowe (jak powyżej) do wprowadzania argumentów wejściowych i wyświetlania zwracanych wartości.

BlueJ nie byłby kompletnym IDE bez debuggera. Możesz ustawić punkty przerwania debugera w BlueJ w taki sam sposób, jak w innych IDE. W edytorze wystarczy kliknąć kolumnę po lewej stronie docelowej linii kodu źródłowego. Kiedy podczas wykonywania wyzwalany jest punkt przerwania, otwiera się wyskakujące okienko debugera BlueJ, pokazujące wątki, stos wywołań, zmienne blokowania statycznego i wystąpienia, a także znane elementy sterujące debugowaniem (krok, krok do, kontynuuj i zatrzymaj). Po raz kolejny przejrzysta prezentacja BlueJ nie stoi między tobą a zadaniem.

Jak wspomniano powyżej, BlueJ może utworzyć klasę testową z menu prawego przycisku myszy ikony klasy. Klasa utworzona automatycznie jest szkieletową klasą testową JUnit (JUnit 4 jest zintegrowana z BlueJ). Składa się z pustego konstruktora setUp()i tearDown()metod. Możesz albo zbudować metody testowe, otwierając źródło klasy w edytorze, albo użyć pewnego rodzaju wbudowanego kreatora, który - poprzez serię okien dialogowych - poprowadzi cię przez proces tworzenia metod testowych.

Podobnie BlueJ zapewnia pomoc w tworzeniu aplikacji graficznych JavaFX i Swing. Dostępne są samouczki, a praca z samouczkiem JavaFX ujawnia rzeczywistą korzyść z używania zdolności BlueJ do wykonywania metod na obiektach „na żywo” (podczas działania aplikacji). W rzeczywistości możesz zobaczyć wynik wywołania metody w komponencie graficznym.

Wbudowane interaktywne samouczki BlueJ pozwolą Ci oderwać się od ziemi. Jeśli potrzebujesz jeszcze więcej materiałów edukacyjnych, książka Objects First with Java , napisana wspólnie przez twórcę BlueJ, Michaela Köllinga, wykorzystuje BlueJ jako środowisko programistyczne, aby przedstawić podejście początkujących do programowania obiektowego w Javie.

Ucz się Java z Greenfoot

Zbudowany na BlueJ przez tego samego twórcę, Michaela Kӧllinga, Greenfoot jest bardziej wyspecjalizowanym IDE niż BlueJ. Podczas gdy BlueJ jest często używany w ramach wstępnych kursów programowania na poziomie uniwersyteckim, Greenfoot jest skierowany do młodszych użytkowników; zaledwie 14 lat. Aby przyciągnąć i przyciągnąć uwagę młodszych odbiorców, Greenfoot został stworzony jako „proste środowisko Java IDE i animacja”. Co oznacza, że ​​służy do tworzenia gier.

Aby zrozumieć Greenfoot, musisz najpierw poznać jego terminologię. Projekt Greenfoot to „scenariusz”. Każdy scenariusz ma „świat”, który jest polem gry. To dwuwymiarowy pojemnik zamieszkany przez „aktorów”. Uważaj tutaj - aktor Greenfoot nie jest szczególnym rodzajem obiektu zorientowanego obiektowo, współbieżnego programowania o tej samej nazwie (patrz //en.wikipedia.org/wiki/Actor_model). Aktorzy Greenfoot są pionkami w Twojej grze.

Aktor Greenfoot ma atrybuty i metody (cechy i zachowania). Cechą charakterystyczną aktora jest jego wygląd - ikona wyświetlana na świecie, która reprezentuje tego aktora. Greenfoot zawiera różne obrazy aktorów, które pomogą Ci zacząć, lub możesz stworzyć i zaimportować swój własny obraz.

Wizualna aranżacja Greenfoot jest lustrzanym odbiciem BlueJ. Głównym oknem Greenfoot jest świat. Po prawej stronie pionowy pasek narzędzi jest wypełniony diagramami dziedziczenia klas projektów. Zazwyczaj na pasku narzędzi znajdują się dwa „drzewa” dziedziczenia, jedno zakorzenione w Worldklasie bazowej , a drugie w Actorklasie podstawowej . Klasy pochodne rozgałęziają się od tych dwóch korzeni.

Podobnie jak w przypadku BlueJ, dwukrotne kliknięcie ikony klasy otwiera skojarzone z nią źródło w oknie edytora. Edytor Greenfoot jest identyczny z BlueJ, co nie jest zaskakujące, ponieważ prawie cały BlueJ działa pod Greenfoot. Tak więc edytor Greenfoot ma podświetlanie zakresu BlueJ, a debugger Greenfoot działa dokładnie tak, jak BlueJ.

Zmodyfikuj klasę w edytorze, a jej ikona na diagramie dziedziczenia będzie kreskowana. Oznacza to, że klasa musi zostać ponownie skompilowana, zanim będzie można jej użyć do utworzenia wystąpienia obiektu. Ponadto wszystkie obiekty na świecie pochodzące z tej klasy stają się rozmyte (nie są już wyraźne), aby pokazać, że są teraz nieaktualne. Na szczęście, podobnie jak w BlueJ, możesz kompilować klasy indywidualnie.

Po utworzeniu wystąpienia aktora możesz umieścić go w świecie, przeciągając i upuszczając jego ikonę w okienku świata. Ściśle mówiąc, nie musisz umieszczać aktora w świecie, zanim będzie można przywołać jakąkolwiek metodę aktora. Kliknij aktora prawym przyciskiem myszy, aby wybrać metodę do wywołania. Jeśli metoda wymaga parametrów wejściowych, zostanie otwarte okno dialogowe, w którym można podać parametr.

W świecie Greenfoota czas musi płynąć, aby aktorzy mogli się poruszać. Ale to świat cyfrowy, więc czas płynie w tyknięciach wewnętrznego zegara - pętla aktualizacji. Dwa przyciski - Act and Run - sterują wykonywaniem tej pętli. Kliknij przycisk Act, a pętla uruchomi się raz. Kliknij Uruchom, przycisk zmieni się na Wstrzymaj, a pętla będzie działać do momentu ponownego kliknięcia przycisku, aby ją zatrzymać. Te przyciski są oczywiście niezwykle przydatne do testowania i debugowania gry.

Jeśli musisz zawiesić sesję tworzenia scenariusza i chcesz kontynuować od miejsca, w którym przerwałeś, możesz uratować świat (co jest o wiele mniej dramatyczne, niż się wydaje). Greenfoot przechwyci lokalizację i stan aktorów na świecie i zakoduje te informacje do metody wywoływanej przez konstruktora aktorów. Wynik: Twoja scena składa się ponownie, gdy następnym razem uruchomisz Greenfoot IDE.

Co się dzieje podczas gry, gdy zderzają się dwaj aktorzy? Albo coś wybucha? Gra musi mieć efekty dźwiękowe. Greenfoot może importować pliki .wav do scenariusza, a metody pozwalają odtwarzać te dźwięki po wyzwoleniu określonych zdarzeń. Nic nie stoi na przeszkodzie, aby pożyczyć którykolwiek z dźwięków dostarczonych z różnymi samouczkami na stronie Greenfoot. Ale jeśli chcesz stworzyć swój własny, Greenfoot zapewnia wbudowany rejestrator dźwięku. Możliwości edycji rejestratora są proste, ale użyteczne. Zasadniczo jest to system „przechwytywania i przycinania”.

Wreszcie, jeśli potrzebujesz pomysłów na grę, wykraczających poza te zawarte w samouczkach Greenfoot, witryna Greenfoot roi się od scenariuszy stworzonych i przesłanych przez użytkowników z całego świata. W niektóre można nawet grać online. Jakość jest, co zrozumiałe, nierówna, ale różnorodność gier świadczy o wszechstronności Greenfoot.

Odskocznia do programowania w języku Java

Według twórcy Michaela Kӧllinga, podczas gdy BlueJ jest zwykle używany na uniwersyteckich kursach programowania, Greenfoot nadaje się do użytku w szkole średniej. Niemniej jednak, niezależnie od wieku, możesz uzyskać mnóstwo kilometrów z obu IDE, jeśli właśnie postawiłeś stopę na drodze do samokształcenia Java.

Poza wspomnianymi już samouczkami na stronach BlueJ i Greenfoot znajduje się znaczna ilość materiałów pomocniczych. Wspomnieliśmy już o podręczniku BlueJ; istnieje również podręcznik dla Greenfoot, Wprowadzenie do programowania z Greenfoot . (Informacje o zakupie można znaleźć w witrynach internetowych).

Żadne środowisko IDE nie jest odpowiednie do tworzenia gotowych do użycia aplikacji Java na poziomie przedsiębiorstwa. Ale jako pojazdy wprowadzające dla każdego nowego użytkownika Java, sprawdzają wszystkie pola i nie obciążają cię paskiem narzędzi i złożonością menu. Są solidnymi, płynnymi krokami prowadzącymi do profesjonalnego rozwoju języka Java.