Martin Heller
Contributing Writer

Write Once? Remember the P-System?

analysis
Feb 7, 20072 mins

My February 2nd posting Small Differences in Vista Can Break Applications drew a comment touting Java as "WORA (write once, run anywhere)" and disparaging Microsoft. I thought it was kind of ignorant, the sort of thing I heard from Amiga-philes 20-odd years ago, but I approved it anyway. My reply at the time was In my experience, Java WORA is in reality WOTE: write once, test everywhere. No development API

My February 2nd posting Small Differences in Vista Can Break Applications drew a comment touting Java as “WORA (write once, run anywhere)” and disparaging Microsoft. I thought it was kind of ignorant, the sort of thing I heard from Amiga-philes 20-odd years ago, but I approved it anyway. My reply at the time was

In my experience, Java WORA is in reality WOTE: write once, test everywhere. No development API is perfect or universal, I’m afraid.

I have embraced and subsequently abandoned numerous programming environments that claimed that a single executable could run anywhere. UCSD Pascal and P-System was the first that I can still remember clearly. I thought portable Pascal was a great idea when I tried it around 1980, as I was then a Pascal fan doing mostly scientific and engineering programming. Alas, its performance on a PDP-11 was much worse than my usual combination of Fortran IV+ and Macro-11, and I was never able to get it to interface with the Industrial Control Subsystem of the PDP-11. It was essentially useless to me for real work.

A few years later, when I was running a software publishing business that developed and marketed engineering software for microcomputers, I tried working with an engineering group in Israel. The professor who was the software architect of the group absolutely loved the P-System, since it was portable and had interpreters that ran on the Apple II and III, the TRS-80, and the IBM PC. When we tried selling the group’s heat exchanger rating codes in P-System form, they bombed. Our customers didn’t want to invest in the P-System. In addition, the mechanical engineering audience didn’t really embrace Pascal.

Sales were much brisker when the group rewrote their codes in Microsoft Basic, because that came in the ROM of the TRS-80 and the IBM PC. Apple II users who wanted to run the codes could buy a Microsoft Z-80 SoftCard, and our customers were much more willing to invest in one of those than in the P-System.

Why? The Z-80 SoftCard ran noticeably faster than the Apple II. The P-System ran noticeably slower than native 6502 code. It was that simple, at least for engineers. It was the difference between getting your answer in 20 minutes and getting it in 2 hours.

The more things change…

Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

More from this author