Intro


This blog is dedicated to open, interoperable manufacturing software and the coolest, latest and greatest things I see every day while conducting business under the banner of Inductive Automation.

Hello, my name is Steve Hechtman and I am president of Inductive Automation. During the span of one day there is more excitement, more discovery than I can possibly keep to myself. This blog is, therefore, my outlet. WARNING: This site is highly biased in favor of the most powerful, affordable manufacturing software in the world - Ignition by Inductive Automation!
Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Java Tops the Charts of Programming Language Popularity

There are two indexes I'm aware of which measure the popularity of programming languages.  The most referenced one is the TIOBE index.  I've watched it for a number of years with Java being in the #1 position usually.  The latest rating for March 2016 shows Java has advanced far out into the #1 position by a long shot. Python comes in at position #5.

The TIOBE index is apparently calculated by an algorithm applied to data found on the web by a web crawler.

Another index is the PYPL index (PopularitY of  Programming Language) which is calculated based on Google Trends and how often language tutorials are searched by language.  According to this index Java is #1 by a massive margin and Python is #2.

There are other corroborating sources.  Inc. Magazine ranks Java as #1 with Python coming in #2.  C comes in at #3.  Another interesting approach is based on job listings for programming jobs such as is reported by CodingDojo and which lists SQL as #1 (though not really a development language as you would normally think of one), Java as #2, and Python as #5.

CodeEval claims to be more of a language predictor based on the languages that over 2000 tech industry employers are testing for.  According to this index, Python has held the #1 position for four years in a row with Java coming in at  #2 and with a huge margin over C++ which is in position #3.

It's interesting to note that Java is the clear leader no matter which approach is used.  Python's rating is more varied, but it is always at or near the top of the list.

For me, it's reassuring to know the language choices we made ten years ago are still top of the list in popularity.



OPC-UA development from the spec

It's amazing what you can accomplish when you abandon preconceived notions. This weekend I toured the SS Red Oak Victory in the old Richmond naval yards (in Richmond, Calif.). The shipyards there were built in WWII. Kaiser built Shipyard #1 in 55 days! But what was even more amazing is that they built ships like the SS Red Oak Victory in something like five days. Can you imagine how long either of these feats would take today?

Well, I think our developers are equally amazing as the builders of these ships and shipyards. They went along blissfully developing the worlds first Java OPC-UA server (and client) directly from the spec and didn't think anything about it. You know, normal day. They didn't know that they were the first. And they also didn't know that it was such a big deal to have written it from the spec. They went to an InterOP conference and found out that no one else had and some folks there were sort of drop-jawed.

Well, that's what really gets me excited around here. We get an idea of what we want to do, and then we do it. No one ever says "that's impossible" or whines "that's hard." If it makes sense we just do it. And believe me there is nothing helter-skelter going on around here either. We look WAY into the future and everything we do aligns. We very carefully study the technology trends and we always plan accordingly. Very soon we'll have another often-requested module that I would classify as nothing short of amazing – of course! And as always, it will be based on open standards. Stay tuned and I'll release details as soon as I can.

Building Applications in Earthquake Territory


Nothing is worse than building your applications on a platform that's constantly in flux. When that platform is your very foundation, your apps are sure to crumble. Take for example COM and DCOM (superseded by .NET stuff), Mobile Windows (abandoned in favor of Windows Mobile 7), VBA (as of July 2007 Microsoft no longer offers VBA distribution licenses to new customers) which has been replaced by a whole string of stuff including Script for the .NET Framework, then VSA (Visual Studio for Applications), but that was deprecated in favor of Active Scripting, but then that was replaced, as far as I know, by VSTA (Visual Studio Tools for Applications) which programs against the .NET Framework. This last one requires purchasing the Visual Studio development environment and compiling your applications.
I couldn't stomach building on a shaky foundation like that, so we didn't. You also won't find me building a home on the San Andreas fault (San Francisco / San Jose area).
From a developer perspective, my vision was and is to develop on a platform that doesn't change for the sake of change. If it's going to change then I want it to change for a good reason. I think that the Java platform accomplishes just that. That is what we wrote Ignition in.
But what about the people who use Ignition? Well, they get Python. A beautiful, forgiving scripting language. No compiling, and it's just the same as it was seven years ago. If we do anything to it at all it will be to embed a newer version which will add features but not take any away.

Running Ignition on HP-Unix???

One of the reasons we chose Java for Ignition is its cross-platform capability. Of course, you would expect that most deployments would be on Windows, which is the case, but there is an interesting trend going on. We are seeing a creep away from Windows and one such case really took me off-guard. One of our customers has deployed on HP-Unix. I didn't even know that was possible.

Then there is the case of one customer who knew us from the days of FactoryPMI and FactorySQL who waited until Ignition was ready because they insisted on running on Macs.

The Linux crowd is really starting to grow and I expect it to dominate on the plant floor eventually. In fact, I have this little blue box from Eurotech on my desk running Ignition on Linux. That little box is good for -40 to +85 degC so you can put it on the plant floor or in the field without any air conditioning whatsoever. And it only consumes 3 watts of power so it's perfect for solar applications. Pretty cool!

As I've mentioned before, I consider each and every Windows version (or even different service packs) a different platform as well, despite apparent similarities. I see a lot of industrial software that isn't supported on Vista or Windows 7 or even XP SP3. But by using Java, we don't care what the platform is being used, for the server or for the clients, and that removes one huge headache for most people.

Why Java?

By now, most know that the Ignition by Inductive Automation platform is programmed in Java. But why?

Few people know that Java is the most popular programming language in the world (See the TIOBE Programming Community Index for September 2010).
Java runs on more types of consumer and embedded devices, smart cards, ATMs, thin clients, PCs, servers, and mainframes than any other language.

Additionally, Java is the "write once, run anywhere" language. This is a major reason we selected Java. By writing Ignition in Java it runs equally well on Linux as it does on OSX, Windows or Solaris. Come to think of it, isn't every version of Windows a different platform? Well, Java spans them all. We don't care who wins the operating system wars or even if no one does.

Java is also highly resistant to viruses. Java appears to have been developed with security as a first concern rather than as an afterthought patch-up. That makes it ideally suited to the industrial environment.

With over five million Java programmers (which makes Java the largest developer community) it is far easier to hire software developers than for other languages, especially right out of school.

Rather than following the flock (look at it, every other major HMI company requires Windows) we took a step back and evaluated what language provided the most portability, security, stability and support—and Java was the clear winner.