niedziela, 14 marca 2010

o Javie słów kilka

W tym poście chciałbym poruszyć tematykę jakże popularnej w dzisiejszych czasach technologi(?) java.
Java jak wiadomo jest orientowanym obiektowo językiem programowania. Główną zaletą javy jest jej przenośność, gwarantuje to specjalna wirtualna maszyna za pomocą której uruchamiane są aplikacje.
Jest wiele przeciwników jak i zwolenników tego systemu, ale nie będę się tutaj na ten temat rozpisywał. Java to temat rzeka więc można się o niej rozpisywać godzinami, ja jednak chciałbym się dziś skupić na tym jak bardzo java wkurwia programistę,swoją bezsensownością.

No więc na początek historia
Niedawno wpadłem na pomysł aby napisać remake gry simant na telefony komórkowe. Jako iż posiadam telefon z dotykowym wyświetlaczem postanowiłem iż gra będzie go wykorzystywać.

No dobrze, pobrałem jakąś tam książkę na temat javy, przeczytałem to co mnie interesuje i stwierdziłem iż nie będę miał problemu z napisaniem takiej aplikacji tym bardziej że język jest promowany jako bardzo przyjemny dla programisty.
Następnym krokiem był wybór ide, borykałem się między Java(TM) ME Platform SDK 3.0 a NetBeans IDE 6.8. Postanowiłem że skorzystam z Java(TM) ME Platform SDK 3.0.
Pobrałem i podczas instalacji dowiedziałem się iż potrzebuje jeszcze jdk, no dobrze, nie zdziwiłem się zbytnio w sumie visual studio też potrzebuje dodatkowych bibliotek.
Pobrałem zainstalowałem, i następnie udało mi się zainstalować samo ide.
Uruchamiam aplikacje, a raczej ide i moim oczą ukazuje się ładnie skrojone gui. Wow, ciekawe czy wygodne -pomyślałem.

Zabrałem się więc za napisanie programu typu hello world
File > New Project > MIDP App. Po przejściu jeszcze kilku kart kreatora, moim oczom ukazał się przykładowy kod aplikacji.
Postanowiłem więc skompilować kod i sprawdzić jak wygląda emulator telefonu.
No więc wybrałem opcje Clean & Build i następnie Run.
Kompilator stał, i stał i stał, a ja czekałem i czekałem, patrzyłem się jak jakaś babcia idzie zaa moim oknem z prędkością szybszą niż moje ide.
Kurwa?-Wydarłem się. Co jest, przecież tak nie możne być. Ctrl+Alt+Delete, nie no aplikacja nie padła.
Sprawdzam plik projektu brak jakichkolwiek skompilowanych plików, nie niech to szlak, pierdolona java.

Poogooglowałem i postanowiłem doinstalować sdk jakiegoś renomowanego producenta telefonów, mój wybór padł na samsunga z racji iż takowej marki telefon posiadam.
Instalacja oczywiście nie przebiegła pomyślnie wyjebało mi jakimiś błędami z brakiem dostępu, i prośbą o przeinstalowanie jdk. No dobrze tylko jak to zrobić :)?
Przeleciałem katalog program files, o w dodaj usuń programy jest.
No i podczas uinstalacji błąd pierdolnął ze pewne aplikacje nie mogą działać bez jdk.
Dobra odinstaluje najpierw Java ME Platform SDK 3.0, uff poszło bez problemów, później jdk i jestem znów na początku. Dobra instaluje wszystko od początku, i następnie sdk samsune. Jupi udało się.
Uruchamiam po raz kolejny Java ME Platform SDK 3.0 i tworze nowy projekt z kodem przykładowym kompiluje, gotowe, uruchamiam, i chuj. Nie działa, aplikacja niby działa i działa ale rezultatów żadnych. No dobrze przejże katalog projektu, o jest, są pliki jad i jar. No dobra uruchamiam je. Ooo... Działa, jak miło. Java kocham cie :).
Jednak moje zadowolenie nie trwało zbyt długo, java jest strasznie, strasznie nie wygodna.
Podam przykład. Mam sobie jakiś tam canvas który mi rysuje i w swoim konstruktorze ładuje zasoby. Wiem że dany np obrazek zawsze będzie dołączony do aplikacji, zawsze będzie załadowany, starczy na niego pamięci. No dobrze ja to wiem ale java mi mówi "-chuj ci w dupe, co z tego że wiesz, jak ja nie wiem"
No i zamiast jednej linijki z kodem
image_tapeta = Image.createImage("/bg.png");
Mamy
try {
image_tapeta = Image.createImage("/bg.png");
}
catch (IOException ex){
ex.printStackTrace();
}
I po co to? Po co mi elementy kodu z których nigdy nie skorzystam, po co zamulać program sprawdzaniem czy coś zostało załadowane, no nic ehhh... jak trzeba to trzeba.

Następną rzeczą która mnie zirytowała ale to już wszystko przez programistów samsunga.
Mam telefon samsung avila, z dotykowym ekranem. Ale za chuja emulator samsungów nie posiada touch screen. I jak tu testować aplikacje? Musisz skompilować, podłączyć kabelek, a do niego telefon, zgrać pliki jar, zainstalować je na telefonie i uchuchomić. A gdzie debuger się zapytam droga javo? A w dupie za przeproszeniem proszę pana. I tym oto "optymistycznym" akcentem zakończę tę notę.

4 komentarze:

  1. Nie rozumiem twojego żalenia się na temat łapania wyjątków... takie coś to podstawa. Jeśli chcesz aby twoja aplikacja miała zamiar działać, bez względu na to czy jakieś czynniki wpłynął na ładowanie się obrazka.

    Nie wiem co chciałeś przekazać tym tekstem, ale zrozumiałem to jako zło konieczne. : )

    OdpowiedzUsuń
  2. Boro trochę cierpliwości :)

    OdpowiedzUsuń
  3. Po to jest wyjątek, gdyby go jednak NIE BYŁO (np. babcia ci wysłała wirusa, który usunął ów plik). Zastanów się trochę chłopie.
    "po co zamulać program sprawdzaniem czy coś zostało załadowane"
    Padłem.

    OdpowiedzUsuń
  4. Stary, chodzi o to iż w plikach jar ciężko uszkodzić tylko jeden plik to po pierwsze, a po drugie chodziło mi o to aby taka operacja nie była konieczna tylko opcjonalna.

    OdpowiedzUsuń