Pages

Wednesday, February 23, 2011

Java Bytecode Fundamentals. Part II. Passing parameters

Judging from the feedback, the first Java Bytecode Fundamentals was rather a success. So I though maybe it is worth to continue the series on some other aspects of the topic.

The interesting part of the bytecode is the one that covers method invocation and parameter passing. I have put up a full-blown post here: Java Bytecode Fundamentals: Using Objects and Calling Methods. The article covers how objects are created at the bytecode level, what the opcodes for method invocation are, how parameters are passed to the method invocations and how the return value is passed back. The important part to understand is how the stack is involved into the operations, along with the local variable table taking part in the game.

Just to reveal some parts of the full post, here's the slidecast demonstrating the parameter passing process in method invocation:

Jfokus 2011 in Pictures

Tuesday, February 1, 2011

Technology Radar 2011

ThoughWorks has published the brand new edition of Technology Radar for 2011. Honestly, some of the things look really weird compared to the previous editions. But also some of the technologies mentioned are rather surprising/positive.

Techniques


Real-time business intelligence. The radar says that batch jobs are the outdated form of data processing and business cannot rely on that if one aims to be on global markets. I can say that I have experienced that myself during last 5 years fighting for batch jobs performance for almost every project that I have worked on - the amount of data doesn't allow you to fit into the maintenance window. Moving to real-time or event-based systems/architectures is inevitable as there's the need to distribute the processing load in time. The only thing I wander is why is this still in the Assess phase? It should be Adopted already!

DevOps looks like the new hype to me. I think it will hardly happen at the full scale. It is hard to find good developers, it is hard to find ninja-sysadmins, where do you find good devops?

Automated database deployment - that's an interesting topic for the last few years already. I hardly believe the topic just made it to the radar.

Concurrency abstractions and patterns section mentions Clojure, Erlang, Retlang. That's interesting, as these languages hardly can take the niche of application programming languages like Java or C#, but specifically for concurrency - this is a very compelling alternative. My personal preference is Erlang, and I think it would be a good idea to take a look at Erjang as well.

Catagorization of technical debt. Oh yes, Captain Obvious!

Tools


The first thing I'm thinking of when I hear "Insfrastructure as Code", is Puppet! And what do you know, it is on the radar! :) Some interesting tools are mentioned as well - Vagrant, Deltacloud, Splunk, etc. I only wander why these tools are on the radar - I kind of doubt that these tools are unique.

The biggest surprise in the Tools section is the state of Subversion. AFAIK, Subversion was loosing popularity according to the last year radar's editions, and now it is in the Adopt phase again.

I wonder why JRebel isn't on the list?? :)

Languages


The report suggests that Ruby, JRuby, C# are mature enough to start using these language for production. Well, this somehow correlates with the job posts for JRuby that I have seen last months. Looks rather positive to me! :) On the other hand the report suggests to consider "Java language EOF". You know what - that's a speculation, even if Oracle owns Java now.

javaScript as first-class language? Noooooooooooooooooooooooo!

Scala and Groovy are in the Trial phase... Don't care really.

Domain-Specific Languages is an old technique that we think is significantly under-used.

It seems that the DSL hype is shrinking. Maybe it is partly because that a good API is a DSL in some sense? My opinion is, the biggest problem of DSLs is that they are mostly usable by their authors :)

Platforms


OpenStack looks quite interesting for infrastructure solution. Kind of surprising that KVM has made it right to the center of the radar's target.

Surprising is that GWT is on Hold while Node.js is in Assess phase according to the report. Node.js is probably the argument for having JavaScript as the first-class language. Well, I haven't tried it myself yet and feel quite doubtful about it. Maybe one day...

Heroku looks like an interesting PaaS for ruby devs. I think this is something worth trying if you do ruby development.

Not a surprise, Android has reached the center of the radar, I'd expect an exploading growth of jobs for Android devs despite the Google-Oracle law suite.

ThoughWorks radar is always an interesting read, but it seems to be a little biased as .NET world is almost unmentioned there (OK, C# and F# are on the list, but it is almost unnoticeable) and the most traction is still around the Java platform (yay!).

Disqus for Code Impossible