Do you speak Java?

poniedziałek, 28 grudnia 2009

Netbeans 6.8 : JavaFX editor

As we almost all* know modern progaming language is not only semantic, keywords, compiler, additional open source and commercial libraries but also a good editor that simplifys and speedups every day development.

I really like JavaFX but  lets be honest here - JavaFX Script is still missing SOME (I don't want to be too cruel here ;) ) of those features so I am very pleased to see enhanced JavaFX editor in latests  NetBeans IDE 6.8 release.
So what new features  do we get  ?
  • Code formating (FINALLY) - yes yes! it is not a joke! prior to NetBeans 6.8 release there was no code formating for JavaFX Script. But lets forget about this, we have it now and it works pretty well(standard shortcut: alt+shift+F).  I hope that from now on  we will never again see so absurd posts like this one 
  •  finding usage - you can search for usage of methods and variables in JavaFX files. But we can not search for Java members usage in JavaFX files :(
  •  rename refactoring - but again just like in "find usage", changing name of java member wont refactor usage of those memebers in javaFX files. But still it is better to have renaming then not having it ;)
  •  moving classes to an other package

As we can see those enhancements are not so big and still lots of refactoring  and cross Java/JavaFX functionalities are missing, but hey! half a loaf is better than none ;)


[*] cheers for all VIMronosauruses - my favorite type of dinosaur :)

piątek, 4 grudnia 2009

JavaFX static members

Some time ago I have read post about 10 interesting things in JavaFX Script. This post was really nice and I have learned that there is build in support to format Dates  But one point  interested me at most,

No support for static functions, variables and constants

I have already made a comment under post on this point but I would like to make it crystal clear.
There IS support for static members in JavaFX Script. Thats true - there is no "static" key word build in the language, but still you can make function or field static. We just have to put it inside class file but outside class declaration.
I.E.
public class MyClass{
  public function memberFunction(){
  }
}

public function staticFunction(){
}

var staticVar;

def STATIC_CONST; 

and thats it. You can call/access them with:
MyClass.staticFunction();
MyClass.staticVar;
MyClass.STATIC_CONST;
It is that easy! maybe not to intuitive for Java developers but still it is not so bad idea - I like it. Do you ?

Demony Przeszłości

Dziś dzięki uprzejmości mojej firmy Pragmatists uczestniczyłem w pierwszym dniu szkolenia "Zwinne Rozwijanie Oprogramowania", prowadzonego przez (nie bójmy się tego słowa) wybitnych praktyków/teoretyków zwinnych metodyk: Pawła Lipińskiego i Krzysztofa Jelskiego. Pomimo, że ze SCRUMem pracuję już ponad dwa lata a z XP 7 miesięcy,  to postanowiliśmy z Pawłem wysłać mnie na to szkolenie celem usystematyzowania mojej wiedzy.

Jako, że wśród uczestników szkolenia mało się znaliśmy (chociaż były również twarze znajome z WJUGa) zaczęliśmy od odpowiedzenia na kilka prostych pytań, między innymi  "czym się zajmuję". Moją szczególną uwagę zwrócił kolega Kamil, który powiedział coś w stylu: "właśnie skończyłem pracę nad kodem stworzonym przez Michała". Buzia mi się zaraz uśmiechnęła do wspomnień, bo domyślałem się o jaki projekt chodzi. Mój pierwszy, który współtworzyłem jako zawodowy programista. A wręcz mój pierwszy projekt który na miano projektu zasługiwał.

Kidy wróciłem do domu poruszyłem niebo i ziemię aby ten kod jakimś cudem zdobyć i udało się! To co zobaczyłem po otwarciu kodu źródłowego, przeszło moje najśmielsze oczekiwania.
To było jak podmuch wiatru znad morza, naszego polskiego morza... jak wiosenny ciepły deszcz na polskiej szlacheckiej wsi...
Ta przepiękna klasa ma ...1109 linii , 22 pola przeróżnych typów, 47 metod, wśród których są 130 linijkowe perełki. W każdej z nich oczywiście nie może zabraknąć zagnieżdżonych ifów w ifach, poprzeplatanych pętlami no i oczywiście obsługą wyjątków.  Aż mi się łezka w oku zakręciła jak popatrzyłem co za potwora stworzyłem.

Chyba powinienem sobie tę klasę wydrukować i powiesić na ścianie by była przestrogą abym nigdy więcej nie był ojcem takiego Frankensteina.

A Kamila, i wszystkich  innych którzy pracowali nad tym kodem, serdecznie przepraszam i współczuję. Mogę tylko zapewnić, że od tego czasu w moim warsztacie programistycznym bardzo wiele się zmieniło, i taka sytuacja nigdy więcej się nie powtórzy.

...
...
Przysięgam!