Ian Bull

Ian is an Eclipse committer and the Principal Architect for Yoxos Enterprise. Ian co-leads the Eclipse p2 project, serves on the Eclipse RT PMC, the Eclipse Planning Council and the Eclipse Architecture Council. His interests include software architecture, component oriented design, release engineering, human-computer interaction and just about everything related to software engineering. Ian holds a Bachelor and Master's degree from the University of Waterloo and a PhD from the University of Victoria.

Twitter LinkedIn Google+ Vimeo 

Aug 10th, 2016

Smile: Deploying a mobile app has never been so easy

Scanning QR code in the Tabris.js app

Mobile software development is hard. Before you can even write your first line of code you must: download, install and configure the IDEs and SDKs, configure the emulators or connect a device to your machine, build the application archives (apks / ipas) and install these archives on your device. With Tabris.js we set out to eliminate [...]

Leave a Comment
Aug 8th, 2016

Branching Without an if, A Java Puzzle

I returned home late the other night, and saw this tweet in my timeline: Keyboard broken. Write this Java code without using the letter 'f': int bar(Object o) { if (o == null) return 0; else return 1;} Anyone? — Marc Khouzam (@marckhouzam) August 5, 2016 He added a clarifying note that said the ‘?’ [...]

13 Comments
Aug 9th, 2016

Improved Memory Management with J2V8

Memory management in J2V8 has never been easy. Because J2V8 bridges V8 and Java, three different memory models are in play. Both Java and JavaScript provide a managed memory model with their own GC. JNI / C++ which sits in the middle is completely unmanaged. This leads to a complex situation since both JavaScript and [...]

Leave a Comment
Aug 9th, 2016

Java Methods as JSFunctions

When J2V8 was first released, all callbacks from JavaScript to Java required a registered Java method. That is, all Java methods that you wished to invoke had to be first registered with J2V8. For some applications this was fine, but it made for a complex programming model. Furthermore you could not use anonymous inner classes [...]

2 Comments
Aug 9th, 2016

EclipseCon video: Node.js in a Java World

sl1

Last week I finally published the Node.js bindings for Java. These bindings allow developers to embed the Node.js runtime directly onto the JVM through the Java Native Interface. In March I gave a pre-release presentation at EclipseCon on this work, which was recorded by InfoQ. You can check it out at: https://www.infoq.com/presentations/node4j-nodejs-java. The slides are also [...]

Leave a Comment
Aug 4th, 2016

🎉🌞💐 J2V8 Supports 16bit Characters

Screen Shot 2016-07-25 at 3.22.19 PM

When J2V8 was first released, all Java characters passed between Java and V8 were converted to 8bit C-Style strings. For many applications this was just fine, but if your JavaScript contained 16 bit Unicode characters, then you were hosed. When you use the word "hosed" to mean broken, you're probably Canadian. — Wayne Beaton (@waynebeaton) [...]

Leave a Comment
Aug 9th, 2016

TypedArrays — Sharing Memory Between V8 and Java

J2V8 provides the technology to link V8 and Node.js with the JVM. Using JNI, Java developers can directly call V8 and Node.js APIs. This seamless integration brings improved JavaScript performance, NPM modules and the Node.js APIs to the Java ecosystem. An alternative approach could have been to invoke two separate processes (Java and Node.js) with a [...]

Leave a Comment
Aug 9th, 2016

Announcing J2V8 4

After over a year of development, I am very excited to announce that J2V8 4 is publicly available on all supported platforms. J2V8 is a set of V8 bindings for Java. This means that you can embed V8 (Google’s ultra fast JavaScript engine) into your Java applications. J2V8 4 is built on Node.js, which means you can [...]

4 Comments
Aug 9th, 2016

Running Node.js on the JVM

J2V8-with-no-2-and-J

Gone are the days of single vendor lock-in, where one technology stack is used across an entire organization. Even small organizations and hobbyists will find themselves mixing technologies in a single project. For years, Java reigned king on the server. Today Node.js is everywhere. But even with the rise of Node.js and popularity of JavaScript, [...]

4 Comments