Wednesday at Jfokus 2013: Then Was Then, Now Is Now, It's Time to Be Smart (Jonas Bonér and the Final Jfokus Embedded Sessions)
My Wednesday at Jfokus 2013 started in the large auditorium where the conference intro and keynotes took place. It was the first time I'd returned there since Tuesday's conference introduction, and I was at first surprised that this very large venue was being used for general conference technical sessions (I'd expected that those would generally take place in smaller rooms). I sat very close to the front, and watched as people streamed in, filling the hall substantially -- a smaller auditorium clearly would not have been sufficient!
The session was Jonas Bonér's (@jboner) "Building Scalable, Highly Concurrent and Fault-Tolerant Systems: Lessons Learned."
At this point, I'll ask permission to ramble. I'm writing this pre-dawn in a quite chilly room in an old inn in an old English countryside town. I just woke up, and the thoughts kept bubbling up... So, yes, I'll call this a tangent. But, this "tangent" is so pertinent that I'll be coming back to it again and again over the coming months. So, let's get started!
One of the things I really liked about Jfokus 2013 was that, probably more than any conference I've ever attended, it was the one where I most felt "at home" -- I say this with respect to the content, the speakers, the attendees I met. I'm not saying there's anything wrong with other conferences I've attended; I just mean that Jfokus 2013 was centered (at least the parts I attended) on topics, concerns, solutions, necessities, that have been generally at the core of my quite long (more than 3 decades) career in software engineering -- which has included substantial work in data acquisition, data analysis, data display, modeling and simulation, instrument control, high performance computing, etc.
The main Jfokus sessions I attended, combined with the stellar Jfokus Embedded track, were like a re-stirring or a re-filling of the entire mug of coffee that my career has been. Stuff I was working on more than 30 years ago is still relevant today. Indeed, it's suddenly incredibly more relevant than it ever has been, partly due to the "Internet of Things" (IoT). If anyone thinks all this M2M and IoT stuff is just a gimmick someone's trying to promote -- I'll warn you: I watched and actively participated in this "stuff" transforming military technology over the past 3+ decades. Based on that experience, I consider it inevitable that an equivalent, parallel transformation will happen on the consumer side of society in the coming decades.
30+ years ago, I was working in Navy labs (and on Navy ships) connecting these new-fangled "desktop computers" (which each cost 2-3 times my salary) using RS-232 "twisted-pair" wiring and GPIB cables to instruments and custom built boards, making machines do things using servos and control commands, commanding digitizers and multimeters to take measurements, reading the results and plotting them, sometimes analyzing the results and using that as input for determining the characteristics that would define the next command/measure/read/analyze cycle, then executing that... Surely this was all great fun for a recent Physics graduate!
Today we see developers quite entralled with the Raspberry Pi and other new, inexpensive embedded hardware devices. How different is this from what I was doing? And surely, it's just as much fun!
Then there's performance-driven computing. As the sensors grew in capability to measure rapidly and deliver increasingly huge amounts of measured data, I had to explore strange new worlds, like multiprocessor Sun computers; and as the 1990s unfolded I had to learn to transform legacy data analysis and modeling code (mostly Fortran) so that it would efficiently utilize all these processors, using these strange new software libraries where you could create "threads" and "shared memory" and you could send "signals" between the threads. But to get all this to work, you often had to significantly modify the code, because different threads could be executing the same lines of code simultaneously, which created memory issues, there could be memory overwrites, crashed threads, deadlocks, along with final results that changed each time you repeated the run, but the runs always gave the correct answer if you ran with your code wrapped in the mechanics of the debugger (memory extensions and significantly slower processing)...
Hmm... Does any of this sound familiar? Can you see why I felt so, so, so at home at Jfokus 2013?
In the remainder of this post, I'll briefly summarize what I attended and saw on the final day of Jfokus. In the coming weeks, you can expect to see many more blog posts detailing the sessions I attended, and stating why I think this conference was so on target as an expression of where the forefront of software technology currently stands. Or, no, the forefront never stands, it's a mounting wave that relentlessly presses forward. In my view, Jfokus 2013 captured this. My Wednesday experience, I think, from Jonas Bonér's morning session to Terrence Barr's closing Jfokus Embedded 2013 keynote, vividly illustrated these principles.
Jonas Bonér is a Java Champion. I'll try to briefly summarize his thesis [feel free to castigate me on this if you must, Jonas!]: 1) maximizing a specific metric necessarily adversely impacts others (i.e., every strategic decision involves a trade-off, there's no "silver bullet"); 2) applying yesterday's great software engineering solutions to the problems faced today can (and ultimately will) lead to exteme waste of resources and performance bottlenecks -- because the underlying world on which the software runs has changed dramatically (hardware and the network ceaselessly advance, the wave ceaselessly unfolds, so software engineering must change too). I loved that session!
After that, Dale and I packed our stuff, had lunch, and spent time in the Exhibition Hall chatting with various people before they left for their flights home; then we closed out our conference attendance by attending the final sessions in the Jfokus Embedded track:
- David Vonasek: "Making smart meters even smarter with embedded Java technology" - I wasn't surprised that the room wasn't packed, but both Dale and I found this fascinating; Java indeed appears to be the right technology for the problems facing companies that need smart metering to compete and also to reduce cost to customers.
- Andrzej Grzesik: "AirCasting - Crowdsourcing Environmental Data" - a very interesting minisession about an open source project that links environmental sensors via Android phones into a global (or local) backend, with capability for plotting the global data using Google Maps.
- Terrence Barr (@terrencebarr): "Java in the Internet of Things: Smart, Small, Connected" - a great overview of everything Jfokus Embedded 2013 was about, including why we're suddenly talking about an "Internet of Things"; a look at the memory/RAM/ROM/power universe as seen from the perspective of Oracle's design intentions for Java Embedded; a drill-down into what's in the current Java Embedded 3.2 (primary APIs, their functions, capabilities, etc.); a view into where Java Embedded is headed inthe coming years (further cohesion and coherence with Java SE, for example). Terrence also fought off flaky microcomponents (I've been there!) to provide us with successful live embedded app demos.
The moment Terrence's session entered its closing Q&A segment, Dale and I grabbed our Jfokus backpacks, ran to the lobby to collect our bags, then dashed to the airport to catch our own flight.
I look forward to writing the blogs about the individual sessions we attended, as well as some more general posts that analyze the Jfokus 2013 content within the context of where I (and others) see things going today, based on my own many decades of software engineering experience, and my more recent experiences of spending significant amounts of time actively observing technology (especially Java) as it advances...
Jfokus 2013 and Jfokus Embedded 2013 were truly great! I'll again extend our thanks to Mattias for inviting us to the conference, and to Oracle for contributing to our stay in Stockholm!