At Sun JavaSoft in the '90s, we had IoT prototypes working well, such as distributed networking, home automation, automobile controllers, and wearable computing.
It's great to see these IoT concepts are coming to fruition.
At Sun JavaSoft in the '90s, we had IoT prototypes working well, such as distributed networking, home automation, automobile controllers, and wearable computing.
It's great to see these IoT concepts are coming to fruition.
But the plethora of interconnected devices that we have and envision today simply didn't exist at that time. If Java hadn't hung in there, we'd be talking about another, more recently created language designed for this purpose.
I remember that Oracle had a Java booth at the San Mateo Maker Faire 2014. I was at the Faire the entire 2 days and would pass the booth every so often in the convention center. I hardly saw anyone take any interest in the idea of Java on embedded devices, and the booth remained empty despite some good presentation with large signs and plenty of floor space.
Anecdotal? Maybe. But I think many device guys would cringe at the idea of something as bloated as Java running on a device. I've done my share of Java on server and Android at Google, and I certainly do. And by bloated, I mean things that come with Java-- large dependency trees, libraries, verbose code etc.
I think both NodeJS and Python are gaining more mindshare on the device-side: https://github.com/rwaldron/johnny-five
If you mean server-side, I would agree more. Java is certainly fast enough to run the data collection frontend. Kafka and Storm are great libraries that you can fit into a Lambda architecture for processing real-time data. And of course there are frameworks like Hadoop, Mahout, etc for the batch processing end.
Still, there's MQTT which isn't Java-centric, and IMO lacks an adequate message broker in Java. And Go is a another good option on the data collection side as well, and will probably get better.