I love and hate Java

I used to think Java was the one of the best languages going, which is to say, it's the marginally acceptable one among the set of complete loser languages that we have to work with out here in the real world. Java was far more pleasant to work with than C++ or Perl or even COBOL and Assembler. When I started using Java back in 1996, it felt like an old friend, like finally I was back using a real object oriented system. However recently, as I started coding in it again, I found a lot of things about Java that irritate me. 

The fact is that there are four completely different things that go by the name "Java";

* A language.
* An enormous class library.
* A virtual machine.
* A security model.

Oracle/Sun would like you to believe that these are all the same thing, and that the name "Java" implies all of them, but this is marketing fiction. Worse than that, the fact that they has tried so hard to push this idea has done grievous damage to the acceptance of Java.

Java, the language is, overall, a very good thing, and works well.
Java, the class library is mostly passable. Java, the Virtual Machine is an interesting research project, a nice proof of concept, and is basically usable for a certain class of problems (those problems where speed isn't all that important: basically, those tasks where you could get away with using Perl instead of C.) Java, the security model is another interesting research project, but it only barely works right now. 

The whole "write once run anywhere" idea (which is to say, the virtual machine) is a wonderful idea, and I wish it the best of luck. But it's still not true yet. It might be someday: in the meantime, I'd like to write programs in Java today, the way I can write programs in C today. So I have to recompile for every architecture on which I want to run. Ok, I wish I didn't, but that's what I have to do today anyway, but I have to do it in C instead of Java.

Virtual machines are cool. Security models that allow network-distributed code are cool. Serialization and agent-like behavior is also cool.

But these are not what I'm most interested in. There are a lot of people who are most interested in those things, but me, I just want to write a program that will run on some suitable number of hardware architectures. Sure, I am happy distributing binaries for each architecture to do that. Sure, having one binary that ran on everything would be nice, but you know, it's just not a hard requirement.

Published by theirishduck

I love the ability where I can plan, prioritise, design, develop and deliver blended learning solutions for a variety of markets. I love to consult and advise about the best use of digital learning and improve design standards in line with evolving ways of working. I also enjoy to keep up to date with, understand and regularly recommend emerging technologies and practice to improve individuals, teams and organisational capabilities. With over 12 years digital learning experience and demonstrated experience in both instructional design and eLearning development, I have also a lot of experience conducting training needs analysis including how to leverage principles such as design thinking and root cause analysis to understand and address performance gaps. I also have led many facilitation workshops and even presented at iDesignX and Game Developers Conferences both here in Australia, Wales and in the United States. I bring loads of coding experience in Java, ASM, C++, HTML, JavaScript, SCORM and xAPI, as well as proven capability using Adobe Captivate, Trivantis Lectora and Articulate Storyline 360 Studio authoring programs. Of course, Adobe Creative Cloud is also part of my toolbox which I also use daily. Being taught traditional and advanced 3D animation techniques, I love hand drawing and polymer clay sculpture, but can also use the Blender, 3D Studio Max, Maya and Softimage applications. With strong multimedia, training and programming backgrounds, I understand modern learner behaviour including micro and social learning, I am very familiar with most LMSes and app-based (XCode and Android Studio), adult learning models and e-solutions. I also possess the ability to manage multiple projects simultaneously, whilst being pro-active in delivering work independently with minimal supervision, but enjoy working in teams. I've been told I am a resilient, relationship focused guy which can manage and navigate conflicting views and stakeholders/subject matter experts.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: