RSS

Tag Archives: JDK 7

Future Proof… what is it, and or, does it exist?

Look into the crystal ball of tech

In one of my prior posts (http://wp.me/p1IX3y-I) I wanted to try the latest and greatest JDK from Oracle, 7.0 using JBuilder 2006Enterprise.  What made it interesting is that JBuilder 2006 was written with JDK 1.5 (5.0) and was released back in 2005.

One of the discussions that I was part of at one of my old companies was the idea or concept behind “future proof frameworks.”  The conversation would be related to IDEs and Java and it would work something like the following:

Tech person:  We need to move from established IDE/platform (proprietary) because the current one (internal) is way behind.

Me:  Behind, how?

Tech person:  It does not support this or that, or its framework is old.  Only the new platform (open source) will be future proof and not have the issues that the current one has.

Me:  Those issues could be resolved with a little more investment or a change in priority of what needs to happen next.

Tech person:  We spend too much money on the underlying framework.  If we move to the new framework, we won’t have that investment?

Me:  You mean we won’t have the investment in the older framework but we will still have the investment to modify the plug-ins when the framework is updated or modified… so it is the same thing, just one is working on the established in-house framework and one is investment in the new framework.

Tech person:  No, the new framework is future proof, you won’t have those types of things, and those people now working on the original stuff can be put on to new features and plug-ins to help add more functionality.

See you don’t understand future proof.  Since the new framework will have that approach, the needed continual investment into making the underlying framework work, will not be needed.

Me:  It’s the same thing; we will have to put money into the framework interfaces to support our plug-ins and any other plug-ins we include.  Because we have to ensure that any plug-ins from the wild will not interfere with our in-house created plug-ins.  So, we will still have to make changes if any plug-in interference is found.

Tech person:  Again, you don’t understand.  Since the new platform is future proof and the plug-ins are based on that platform, they are also future proof, so the amount of overhead or work will be very minimal because the plug-ins are again, future proof.

Needless to say, this type of conversation went on, and on, and on, and on… and I never won the argument.  However, I was somewhat vindicated that the new framework, which was supposed to be future proof, turned out to be like every other program in history.  It would need adjustments as time went on and the amount of resources to build, maintain, and deliver the product ended up being around the same cost, if not a little more.

After doing my little experiment with JBuilder 2006, I had to smile to myself, as JBuilder was able to handle most of the new Java without any changes.  Were there issues?  Heck yeah, but the fact that the product could still do most of the functionality it was originally designed to do was a great “tip of the hat” to the great engineers and quality assurance people who created and delivered that product.

In a more recent issue,Delphimay be too future proof!  During my time at Borland/Inprise/Borland/CodeGear/Embarcadero, we would have customers still using older versions of Delphi and C++Builder, they would not move.  The product was still producing working code and they understood the limitations of these old products very well, and did not want to change.

Now Vista and Windows 7 are starting to make these customers move to the newer products because the underlying OS is starting to change how it handles things.  Keep in mind thatDelphi5 was released in August 1995, so that was a great product that was very future proof, in a sense.  Most of these developers were still using the older Windows OS(s) and the need was not that pressing.

For me, the great thing about computers and software are that they don’t stand still, they are always evolving, and so they support the future when the future comes.  Having an application or product work in the future when things are different is fine, but most likely that product is not going to support the future, it is only going to work in the future… a much different thing when I think of future proof.  

I mean, I was happy that the JDK worked in JBuilder 2006, but JBuilder did not know of the changes in Java and how to best support those features.  As I stated, things like the latest Tomcat 7.0.19 was outside the realm of JBuilder 2006, 6 years ago, and there would have been no way for JBuilder to support the web changes defined by the later specifications of Servlets, JSPs, and the like.  So, while it again worked… it was a hollow victory in the sense that additional work would need to be done to make it truly support the Java of today.  But, that would be true for any product that was written before the latest and greatest updates were released.

So what are your thoughts on the concept of future proof?  Is there such a thing?

Mike

More to come…

 
6 Comments

Posted by on August 12, 2011 in Opinion, Technology

 

Tags: , , ,

Blast from the past – Future Proof – The concept?

It had been a while since I had used JBuilder 2006Enterprise, so I wanted to do a little test since the Java JDK 7.0 was just released.  Now over the years I heard people talk about how “future proof” the Eclipse framework/platform was or would be.  This was always something that bothered me, what is future proof?

So I loaded up JBuilder 2006Enterpriseand let me first say, wow, what a great coming home.  Don’t get me wrong, I don’t mind Eclipse based Java IDEs, but wow again, it was focused, fast, and had all the tools at my fingertips and could just get the job done.

The first thing I wanted to do was to see if any JDKs, except for the base JDK that was shipped in the product, worked.  I clicked the Tools|Configure|JDK’s menu item.

Configure JDKs

Configure JDKs

As you can see, the only JDK known by the IDE is JDK 1.5.0_03-b07.  So the first test I wanted to do was add JDK 6.0 update 26 and see if I could get it to load and use the JDK for a project I built.

So I clicked the New… button and started the wizard.

New JDK Wizard

New JDK Wizard

I then pointed the IDE to the JDK 1.6.0_26 and clicked the OK button.  It returned to the wizard with the needed information filled in.

New JDK Wizard

New JDK Wizard

I then clicked the OK button to continue.  This returned a newly added JDK 1.6 to my IDE.

JDK added

JDK added

Now it was time to do a couple of quick tests on the JDK and the IDE, and see if it could handle the new JDK or if the IDE, which is written in 100% Java was NOT “future proof” and would be in today’s terms an Epic Fail!

First, I wanted a simple Command-line Java program, using the wizards, I created a simple project, pointed to the newly added 6.0 JDK and wrote one line of code; System.out.println(“hello world!”); hit the run button, and it worked like a champ!

Second, I created a Swing application using the wizard, added a couple of extra lines, added some additional buttons with code, and BAM, worked again like a champ!

I then made some changes to my startup JBuilder.config file and added InterClient.jar (InterBase 2009 and XE) to the system and created a quick CRUD application using dbSwing components, and BAM, worked like a champ!

IDE running CRUD application using JDK 6.0x

IDE running CRUD application using JDK 6.0x

Here is the running Application:

Ugly quick CRUD application

Ugly quick CRUD application

I know, ugly, but that was not the reason for writing the code!  The test was to see if JDK 6.0 would work with a product that was written with JDK 5.0 (1.5.x) and work well.  The answer so far is yes, and the debugger is great as well.  All of the normal features work well.

Now I tried to do a quick Tomcat web-application with a Servlet and another with a JSP using the latest Tomcat 7.0.19.  This has not worked as of yet, but I’ve only spent maybe 20 minutes on the setup… plus, the web-applications are much more different now and that area of Java has changed significantly, so it may be the fact that JBuilder 2006 released in 2005 can’t handle the web side well, but I will have to play a little longer on that if I want to see if it works.

Now what about the newly released JDK 7.0, the first Java JDK from Oracle?  This is not a review of the JDK, as there are a lot of things and writings on JDK 7.0.  This is more of an attempt to see if I can get it to work in JBuilder 2006Enterprisereleased in 2005 written in JDK 5.0.

Added JDK 7.0x to the JBuilder 2006 Enterprise IDE

Added JDK 7.0x to the JBuilder 2006 Enterprise IDE

I Added the JDK with no issues.

I then tried the same programs as before to see how the old JBuilder handled them.

Added New Runtime Configuration to the JDK 7.0 project

Added New Runtime Configuration to the JDK 7.0 project

I setup the configuration to run the Application… well can’t have everything:

First compile attempt: FAIL!

First compile attempt: FAIL!

Most likely I know where the error is:

Using the old Borland Make based on JDK 1.4 compiler

Using the old Borland Make based on JDK 1.4 compiler

Pointing to the JDKs internal compiler, using 7.0's compiler

Pointing to the JDKs internal compiler, using 7.0's compiler

The internal compiler needs to be changed as it was using the Borland Make based on the JDK 1.4 compiler found in JBuilder 8!!!  Changed that to the Project javac compiler and pressed the OK button.

Hit the run button and had the following happen:

Now it works...

Now it works...

Printed Hello World just like I thought it would.

While it worked, there are still issues...

While it worked, there are still issues...

While it does work and I can get things to compile, the code editor is a little out of whack.  The debugger is not working at this point, but that could be for a variety of reasons.  I may have to investigate this a little more.  The Swing Application does work, but again I have some issues with the editor and compiler working correctly but this could be a low-level configuration that I’ve not fixed or DON’T REMEMBER!

Generated Swing application using JDK 7.0 and 7.0's Swing

Generated Swing application using JDK 7.0 and 7.0's Swing

However, as you can see, there are issues with the Swing Designer, which again could be a configuration issue or something to do with the changes in JDK 7.0.

Swing designer issues

Swing designer issues

However, the fact that I got JDK 7 to load, compile, and execute a simple Java application, and a simple Java 7 Swing application, is a fairly strong comment on the fact that JBuilder 2006 while not perfect.  I also wanted to see if I could get the CRUD application working.  Since the Swing designer was broken, I loaded the CRUD application I created with JDK 6.0 and just changed the JDK settings.

Setting the projects JDK from JDK 6.0 to JDK 7.0

Setting the projects JDK from JDK 6.0 to JDK 7.0

I then also needed to change the compiler as I did before:

Setting the internal compiler to JDK 7.x

Setting the internal compiler to JDK 7.x

I pressed the OK button, did a Save All and hit the Run button.

Running simple CRUD application using JDK 7.x

Running simple CRUD application using JDK 7.x

Well, as you can see the CRUD application ran with no issues, the application is still ugly, but it works, and with NO coding changes.  Just to verify the JDK being used, check the red box, it shows the command-line used (another great feature) of JBuilder 2006Enterprise.

I was also able to get other things to work really well, check out the UML visualization tab using JDK 7.0 as the base JDK.

Using some of the advanced tools like UML Visualization

Using some of the advanced tools like UML Visualization

While this does not change the above limitations so far, the fact that JBuilder is working, using, and displaying things from JDK7 does show that JBuilder 2006 is fairly future proof!

 
6 Comments

Posted by on August 9, 2011 in How-To, Opinion, Technology

 

Tags: , , ,