Why does this work in Groovy ?
test = null
test.println(test)
This prints out null. In fact, you can even do this :
null.println("Hello")
Everything depends on your context.
test = null
test.println(test)
This prints out null. In fact, you can even do this :
null.println("Hello")
Will Java programmers ever stop trying to build a better component composition model ? I am tired of seeing folks do this all the time and then shouting from the rooftops that they have nailed the problem. The usual component composition pitch goes like this :
Welcome to Acme component composition, the only tool you need for software nirvana. Reuse is guaranteed, just build Component A and Component B using my new formula. You can test Component A and Component B independently, because I have figured out a clever trick to fool Java’s static type system (Disclaimer – you will have to use my Classloader and my bag of reflection tricks). You can swap out Component B for Component C any time you want – by editing my new spiffy XML file (the next version will give you properties files, YAML files in all languages). This way any deployer (who are generally assumed to be idiots) can switch to using new components. The reason I give you this impressive framework, is because I don’t know what my framework will be used for. But, if I give you the tools to make my framework whatever you want, you can build anything you want with it.
Seriously, just give me libraries and a dynamic language, I don’t want to solve unsolvable problems.
I was reading this article in the latest issue of Newsweek about how speech recognition software has apparently become usable. I have not tried speech recognition software recently. The last time I tried the software managed to produce complete gibberish, I don’t think that was entirely due to my Indian accent. The article analyzed the reasons for why the software had become more usable. Better hardware seemed to be one reason, faster CPUs, more RAM.
The other reason was what caught my attention, apparently the market leader in speech recognition embedded what sounded like a feedback sub system in their software. With broadband connections becoming widely available, users don’t mind if their software talks to the mother ship. In this case, every time the software made a mistake, it sent details on the mistake back to home base. This enabled engineers to tweak their algorithms constantly.
I wonder if Enterprise customers with their myriad firewalls and network security protocols would allow such feedback loops. Yet, without these feedback loops, how can one make a product better ?