Saturday, January 29, 2011

Facts and Views

The very powerful and the very stupid have one thing in common. Instead of altering their views to fit the facts, they alter the facts to fit their views . . . which can be very uncomfortable if you happen to be one of the facts that needs altering. --Doctor Who

Thursday, January 27, 2011

Civilized man

Civilized man refused to adapt himself to his environment; instead, he adapted his environment to suit him. So he built cities, roads, vehicles, machinery, and he put up power lines to run his labour-saving devices. But somehow he didn't know where to stop. The more he improved his surroundings to make life easier, the more complicated he made it. So now his children are sentenced to 10-15 years of school, just to learn how to survive in this complex and hazardous habitat they were born into. And civilized man, who refused to adapt to his surroundings, now finds he has to adapt and re-adapt every hour of the day to his self-created environment. For instance, if it's Monday and 7:30 comes up, you have to dis-adapt from your domestic surroundings and re-adapt yourself to an entirely different environment. 8:00 means everybody has to look busy. 10:15 means you can stop looking busy for 15 minutes. And then you have to look busy again. And so your day is chopped into pieces, and in each segment of time you adapt to a new set circumstances. No wonder some people go off the rails a bit...

Friday, January 14, 2011

Begin from the beginning

Once upon a time a programmer came across a book describing a funny
programming language. It had an unfamiliar syntax, equal didn’t mean
equals, and variables weren’t allowed to vary. Worse, it wasn’t even
object-oriented. The programs were, well, different....
Not only were the programs different, but the whole approach to pro-
gramming was different. The author kept on and on about concurrency
and distribution and fault tolerance and about a method of programming
called concurrency-oriented programming—whatever that might mean.
But some of the examples looked like fun. That evening the programmer
looked at the example chat program. It was pretty small and easy to
understand, even if the syntax was a bit strange. Surely it couldn’t be
that easy.
The basic program was simple, and with a few more lines of code, file
sharing and encrypted conversations became possible. The programmer
started typing....

Guess which programming language i am talking about ;-)

Saturday, January 1, 2011

Java mistakes which should be corrected in future.

These days i am re-iterating all my language concepts especially java concepts. Actually i am reading a book called Java: The Good Parts. So reading this after doing a good amount of ruby coding gave me some understanding of things which i would like to be changed in Java Future versions.

1. Primitive Types : Primitive types certainly breaks the notion of "everything is an object". It makes special rules for those small types. Yes Autoboxing is smart thing and we dont need to thing about conversion anymore but we can go one step ahead and replace primitives types by real objects and compiler can take care of optimization.

2. Static : First thing i learned in my pairing session at ThoughtWorks was not to use Static as much as possible instead create a singleton object. Reason again it breaks the "everything is an object" model.We lose the freedom to override the behaviour as static calls are are linked compile time. And testing a static method is lot more tough task as mocking is cumbersome.

3. Checked Exceptions : Because nobody use them anymore. Most of the time if problem occurs we can't do much other than telling user something wrong happened and continue or shutdown.

4. Every Object is a Lock Object : This i realized while reading the book and i was like what. I am doing java programming now for three years and i didnot realized this we can take lock on every object while writing synchronised block because every object has in-built lock. This sounds pretty waste of resource. Instead we can start using explicit Lock object like we do in C++.

If we try to make these changes than the resulting java will not be compatible with its previous versions but it will be lot more cleaner and awesome language.
And i also want ruby/python hash like datatype. It is so so awesome just like swiss army knife ;-).

I wanted to start the year with a bang just the way i ended last year thats why this post. So happy new year to all.
Cheers,