25 November 2005

Moscow Notes

I have been to Moscow for 14 days, between 7-21 September.I was there for busiess so I had little time to travel around the city, but i have few things to note.

The first shock in Moscow was to learn the truth about the Kremlin Palace, for all my life, similar to lots of Turkish people, I thought that the nicely architectured building with several towers having onion like tops with several different colors was the Kremlin Palace.That is wrong!!
That building is the St. Basil's Cathedral, it is an old Russian Orthodox church and Kremlin is the place with log red walls behind the church!

St Basil's Cathedral

I stayed in hotel Russia,just opposide the Kremlin is the largest Hotel in Eastern Europe with nearly 3000 rooms.It is consisted of four, 12 floor parts.The hotel is three star, rooms are little bit old but it is very near to red square,kremlin...

Hotel Russia

Another interesting point is the lack of legal taxies, all legal taxies reside in front of some hotel or club.In the streets, every single car is a potential cab.Since petrolium is cheap in Russia, most of the russians take guests on their way an try to earn some money.The price is 100 Rubles for most of the places, just wait near the road, they will slowly approach to you with your car so that you can start negotiation. A typical conversation will be

you -Club x,hotel y (name of the place)
driver -says something in russian and you don't understand
you -skolko? (meand how much)
driver - says some number in russian,again you don't understand
you - cto ? (means hundred, this is the only russian number you know)

after this point if the driver insists, you may raise to cto bedisiat (hundred and fifty) or insist "cto normale" (one hundred is the normal price)

So few people can speak English, even in the most touristic places like Arbat Streen the sales people can not speak English. Mostly young people can speak a little.

When it comes to Clubs, Moscow has an entertaining night life,on fridays and saturdays everyone goes out, all the clubs are so crowed, on thursdays and sundays clubs also have lots of people.On mondays, russians don't go out, they just rest, even most of the clubs are not open on mondays.

Paris: My favourite club.The music and athmosphere is nice, age average is little higher in this club. Enrance is 200 rubles on thursday and sundays, 300 Rubles on friday and saturdays and free on other weekdays.Paris is one of the few classes open in Mondays.Drinks are normal priced.
Karma: Nice music,nice place, 300R entrance on fridays.
Fabrique : Loud techno music,no entrance fee.Most elite people.Expensive drinks
Propaganda:Most are foreigners, the atmosphere is not as warm. Drinks are cheap.
Club Che: Lanina music, warm atmosphere.Make rezervation before you go..
Hungry Duck: This place is said to be the craziest club in the world but I went there in a weekday.Regular bar,nothing special, noone crazy.Dark and cold atmosphere
Etaj:Good dinner, nice price
Hard Rock Cafe: As the name implies. It is on Arbat street.Also has a souvenier shop.
Cruiser : Nice place to eat, nice food.

Why I Hate Java Swing API ?

I have been developing Java applications professionally since 2000, if you add collage days, it becomes 1998(the old java 1.0 days with strange event model, remember the handleEvent() method? )

I believe Java is a very successful programming language,it has fulfilled all it promised.WORA(Write Once Run Anywhere), garbage collection (no dangling pointers), build-in threading support in the language,several APIs(servlet,jdbc,javamail,jsp,rmi,) making life easier and standadized...It is a perfect fit for building robust, scallable, enterprise level server side applications.

But when it comes to client side, unfortunately things are not the same

Whenever I have to build some GUI using swing, a sudden pain starts in my stomach.
I do totaly understand that swing is an extemely flexible development API with is MVC based architecture, and I agree with this but that's all.In today's world where buzz words like 'abstraction', 'resusability' have great importance, swing is a failure.

What makes swing diffucult to develop is, if you have to develop something more complex that adding a button on a canvas or setting a label's text you need to do lots of lots of tricks.

Suppose you want to make some rows of your table uneditable, suprise! there is no such functionaly, neither JTable not DefaultTableModel has it.Solution?, of course with swing you can do anything.Now you 'just' have to subclass DefaultTableModel, then code your own table model's isCellEditable() function

The same applies if you want to make some columns invisible, you should again introduce a brand new table model class , and aggange getColumnCount() accordingly.
The same story applies for most classes in the API.

The question is: where is abtraction,where is reuseablity? where is rapid application development using the API model. I can not reuse DefaultTableModel even for such simple and basic invisible column/uneditable row needs.

As a concusion java is the superior language for server side development, but for client side development I still miss the Delphi days..