10 tips on how to prevent business value risk
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Werner Schuster on Mar 06, 2008
Huw Collingbourne VS 2005 Java support is OK but not great. Essentially, Java support is provided via Microsoft's 'Java dialect', J#, which is included in VS 2005. This gives you syntax coloring and some IntelliSense. But in VS 2008, Microsoft has removed J# which means that you don't get any Java support at all. When you load Java code into VS 2008 you really don't have much more than a plain text editor to work in. It wouldn't be that difficult to build a coloring package for Java in VS 2008. This is not something we have committed ourselves to doing but, in principle, we could. Support for a debugger would be more difficult. All in all, I wouldn't recommend Visual Studio for serious Java development. There are far better tools available.InfoQ: Cross language debugging: Can you mix Ruby code and Java code while debugging? I mean, when you suspend a Ruby method that calls into a Java-source method, does the stack view show the stacktraces of both JRuby and Java?
Huw Collingbourne No. The debugger is Ruby only.
Huw Collingbourne We've written our debugger from the ground up in a mix of languages. It isn't based on jruby-debug. Some of the JRuby debugger is written in Java but it calls into C components via the JNI interface for speed. The slow bits (for example, handling user input) are written in Ruby, the fast bits are written in Java and the really fast bits are written in C and X86 assembly language. It uses JRuby's standard event hook methods to link into JRuby. Incidentally, one of the interesting things about JRuby is how compatible the debug/trace system is. It isn't exactly the same as the standard Matz Ruby (MRI) version, but it's so similar that it's easy figure out what's going on. In fact, it's easier to use than the MRI trace system because you don't have to do unpleasant things inside the interpreter to get the required interfaces. Also, JRuby's internal interfaces are easy to follow and use - even if the documentation is almost non-existent.
Huw Collingbourne So far, we haven't been able to benchmark against jruby-debug. It wouldn't build on our machines and, in any case, it's still beta (we think), so a benchmark comparison might be unfair. However, since the jruby-debug is a straight port of the original C ruby-debug into Java, we expect that our implementation will have a similar speed advantage (between 50% and 100%) over jruby-debug as it has over ruby-debug - and possibly a good bit more because of the JNI components. We have been able to benchmark against our own MRI C-based debugger ('Cylon'), however. Our Java version seems to be about 2 to 3 times slower than the MRI Cylon. This is due almost entirely to the speed differences between the JRuby trace function and MRI's C trace function invocation. JRuby itself seems generally to run at about the same speed - possibly a bit faster - than MRI, but nothing startling. We think that where JRuby may win over MRI is in its good implementation of native threads. These are important for server applications.InfoQ: In JRuby 1.1: does the debugger work with interpreted, JITed and AheadOfTime-compiled code?
Huw Collingbourne We haven't discovered any problems with JRuby 1.1 - it's standard Java (apart from the JNI code). But one of the interesting things we found when trying to optimise it was that optimisation tricks that work in C or C++ (i.e. things that make the code go faster) have little effect. In fact, in some cases, they even a negative effect in Java. We suspect that this may be due to the Java HotSpot optimizer. It seems to like you to keep things simple and let it do the work.InfoQ: Do you include any tools to make deploying JRuby on Rails apps easier?
Huw Collingbourne Currently we supply a set of general purpose integrated development tools for Rails - for example, various utilities to save and run scripts without being forced to navigate to a command prompt. But we do not currently have any tools specifically for deploying JRuby On Rails apps.InfoQ: Is this a free version (like the one, if I remember correctly, for IronRuby)?
Huw Collingbourne At this time, it is our aim to provide JRuby support only within our commercial product, Ruby In Steel Developer. You are right, we have recently released a free alpha version of an IDE for IronRuby (which itself is still in pre-alpha) and we will continue to provide a free IronRuby-only IDE after the finished version of IronRuby is released. We don't have any plans at present for a JRuby-only IDE (to be honest, we don't even know if there would be sufficient demand for such an IDE).InfoQ: Is there any editing support for JRuby specific features? Any plans for GUI building support?
Huw Collingbourne Currently we are focussed exclusively on Ruby development and we don't have any plans to expand into Java support. As I said above, there are already plenty of good Java IDEs anyway. We believe our development effort is much better spent on making sure we have the best Ruby IDE possible. As for GUI support. Up to now we have concentrated principally on providing editing and debugging tools. JRuby can take advantage of all the existing features including analytical IntelliSense and a fast debugger with breakpoints, step-into/over, drill-down watch variables and so on.InfoQ: What are your reasons for venturing into the JRuby IDEs market of? Is there a market of VisualStudio developers thinking of using JRuby?
Recently, however, we have started moving towards support for visual design tools of various sorts. Some of our customers are already using the beta version of a drag and drop design environment for Rails (the 'Visual Rails Workbench') which we expect to release at the end of March. That environment will work just as well with JRuby as with standard Ruby. So you will be able to design full-page layouts on screen as an alternative to writing ERb (embedded Ruby) templates in code. We also have a visual form designer built into our IDE for IronRuby. This will let IronRuby programmers create standalone desktop applications in a similar way to C# or Visual Basic. Whether or not we decide to work on support for dedicated visual tools for JRuby may all depend on how much demand there is for such tools.
Huw Collingbourne The simple answer is that we want to give our users the choice of developing for more than just one particular version of Ruby. A couple of years ago, there was only one Ruby interpreter that mattered - the standard Matz Ruby Interpreter. But we have been impressed with the developments of JRuby recently and we feel that JRuby is far too important for us to ignore.Update: The JRuby debugger in Ruby in Steel support has not yet been release - we'll provide the link as soon as it is.
Besides, we have always wanted to make sure that our users don't feel that they are 'locked into' some specific technology from a specific vendor. We want to provide them with the greatest range of choices possible. Currently we think that JRuby offers the best alternative to MRI. Besides, JRuby is still being very actively developed and who knows how important it may be a year or two from now? We don't want to wait that long to find out. Which is why we have decided to support JRuby now.
18 agile and lean practices for effective software development governance
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
1 comment
Watch Thread Reply