Saturday, June 18, 2011

Cloud Hype

"Clouds" is a comedic play.  Cloud hype is closer to hubris.

Remember "network PCs" ?  Just as we were getting X-Windows to actuaries and LAN PC's to underwriters who had been confined to 3270 dumb terminals, an arrogant insurance CEO informed me that hard drives were already a thing of the past (and most were what, 20Mb with 2MB RAM on the PC's?  We had just paid IBM big bucks for our first external RS6000 drive for our one AIX box. Meanwhile the CIO was betting on AS400.  M/F Prolog-based expert systems for underwriters had just been replaced by procedural C + Sql just a fast PC Prolog implementations became available (they had nothing to do after their departmental LAN pension PC system for HR.) Windows 286 had recently been replaced by the extremely buggy 3.0 for 386 PC's with hope for a 3.1 version.  To my utter amazement much departmental software was, er, uhmm, unlicensed.  Especially the price-y APL for actuaries.  WordPerfect was still the standard for PC text and the 99$ word processors were being crushed by illegal schemes ignored by anti-trust law enforcement.  Smalltalk was being priced out of reach as competition collapsed in that niche.

Now, today: just as sold-state drives become a reality (and the Winchester drive from IBM Watson Labs was a big tech leap - or have we forgotten?) we are told that corp's will want to move to "dumb laptop" ChromeBook.

This is not like having an X-Server on a graphical workstation.  Far from it.

And consider this: a really advanced programming language such as Oz is only now moving to being Distributed Oz.

Look at the hackers public "helping hand" site: the vast majority of programmers listed are really only competent in one procedural language: one of Java, C++ or C# (please don't start in on C# as multi-paradigm ...)

While Perl finally begins to take a bow, PCRE remains the standard while not a single text-processing language is in the TIOBE "top 20" PL's (no, Perl is not; SNOBOL was and REBOL, ICON, UNICON, Object Icon and Converge are just as LISP can be a TPL.)  Perl is not a TPL - not any more than Crystal Reports could be called a TPL. Or Tcl's expect. Or grep.

While most programmers remain ignorant of advances in text parsing and constraint handling, the industry commentators would have us believe in the cloud.  Nebulous shibboleth.

The cloud will not respond to the needs of forensic accountants (see the top-seller in the accounting niche for how many of the Big 4 ? )

The cloud will not respond to the need of health insurers to have smarter software and health providers to have smarter software (see the decade's repeat top-seller in that niche - so critical to controlling rising debt in USA and Canada.)

The cloud as a source of medical e-records will not reduce medical costs (await an unintended consequence in billing.)

The cloud is not the answer in logistics as so many diesel-burning haulers run dead-head on highways or back-and-forth in cities such as Vancouver, Canada (where the pollution drifts away and up into the higher Fraser valley) or that yellow-pancake-cloud hanging over the city of Toronto.

Just as we get multiple-CPU's we are to believe in the cloud (with USA and GB at not even in top-ten nations for internet connections.)

Common wisdom: the bottlenecks tended to be I/O and/or database accesses.  The historically single biggest PC design flaw: I/O.  The dominant database is SQL Oracle who now   effectively own Java.  Note the ties of C# to Microsoft, C to unix.  IBM had to buy iLog even after the critical contributions of Watson labs to constraint programming (old Prolog is now viewed as a subset of a constraint logic programming strategy.)

The two critical languages never embraced by Microsoft: Prolog and Smalltalk.  The Apple difference is that they dumbed-down a Smalltalk as Objective-C for programmers more comfy with C-syntax (Objective-C is the principal iPhone app language; when Apple stole from Nokia they stole from the company running Smalltalk in phones; Ericcson originally banned its own invention, Erlang. No kidding. C-only, please.  Mercury now generates C or Erlang.)

Less common: the internet relies on HTTP with its connection restrictions.  So the cloud will become the "private cloud" and then the "privately switched cloud" and the lessons of, say, 1989, can be re-learned in, say, 2019.

JavaScript is now being touted as the server-side solution. JS has a fine lineage back to Self and inlining ( aka Google V8), but a lot has happened in programming languages since the mid-80's.  Without programmers able to work in multiple paradigms, abandoning the power of the client to run domain specific software is folly.

Those who will run such software: the high-end consultants and trouble-shooters.  That trend will not help to bring down medical costs or prevent another Lehman Bros where a large part of the problem was the software used on the laptops of the E&Y auditors ( a trail that leads right back to the software run by the auditors at Enron.)

Is Drools on JBoss part of the answer ?  IBM's acquired iLog and jLog ?  Not likely.  Too little, too dumbed down (not that for some tasks a "dumbed-down" language is not great, as Erlang has shown repeatedly.)

The critical software in audit is the worksheet component.  If it resides in a procedural framework, suitable forensic options are unlikely to emerge.  Cross ChromeBooks off the lsit for those EU auditors faced with Bulgarian government ministries, departments and agencies and those soon to be faced with Macedonia and Montenegro.

Maintainable software: server-side in the cloud at least one major bank and on major insurer have demonstrated that Smalltalk need not be visible (let the web UI be whatever) but we still lack a Smalltalk with fully integrated rules, logic and constraint handling.  Traits in Smalltalk may achieve this.

Programming languages do matter: it is better to generate C code but have textual code which is maintainable, documented than to have C++ code that takes a few years to write and that is near impossible to evolve.

At the core of many of the leading "niche" software packages that prevent controlling medical costs are inadequate C libraries that programmers fear to touch.  DLL's were intended to prevent this.  Dot net will not help here as its dynamic languages fail to integrate rules and constraints in the manner in which they are integral to say, Oz.

Until a US congressional committee investigates the software used by auditors and risk managers, we will not be free to discuss was remains not in the cloud, but enveloped in a smoke-screen fog.

At least least outside the cloud, we can ask and be told what was running on those auditor laptops, which version, when last updated and with which customized features.  Those are apps are software as desktop user applications.  With replaceable SIMM drives, we could even ask for the read-only chip which was in use in that "laptop".  Yes, there is an associated IT cost.  But compare the costs of inadequate pricing control and audits in healthcare and in banking.

And the OS on the ChomeBook - welcome back to the past: a unix.

And the hope for getting around HTTP 1.1 limitationd in the Cloud: that other dinosaur, TCP/IP connections.

And this is without even mentioning the vulnerability of the G3 or G4 cloud in the case of any major international conflict, e.g., China blaming uncontrolled civil unrest on the West, in, say, 2019.  Not to mention chaotic sunspot flare-up.

Remember, 1989 was touted as the "year of unix" when it was the year Microsoft undermined developers of ...

From IBM to Microsoft to Google, while the lesson of evolution is variation and alternatives. Java, C++ and C#:  the majority of 'hackers' have less to offer than we might hope.

Friday, June 17, 2011

Curl Graphics: extensions packages

There are beautiful page changing options to be seen in the early edition of COM.CURL.EXT over on SourceForge.

These are extensions to the Curl web-content language from and rival anything else available for dynamic business applications on web or desktop.

It is hard to imagine a business having to choose from among ONLY Adobe Air, Microsoft Silverlight and the various Googlisms when the Curl option is now so strong visually (it was always very strong as a framework and in terms of security.)

Other extensions which are not at all eye-candy include spreadsheet-like "worksheet" objects which should interest many of the large corporations already using Curl internally (a third-party package has long been available in Japan.)

Thursday, June 16, 2011

Processing 1.5.1 for artists and others

There is a new release of the Processing programming language from MIT.  It is intended for artists and creative talents.  For non-programming kids, MIT has scratch and Microsoft has kodu while Smalltalk has both e-toys (as found on OLPC) and the Croquet/Cobalt projects.

The revisions in 1.5.1 have some notable admissions.

Needless to say, Processing is not to be found on the top-20 TIOBE language index on which Lua has now appeared ( and on which Smalltalk-ish Objective-C is rising.)

But which language will rise as Android becomes dominant?

Tuesday, June 14, 2011

Private Cloud

Microsoft is marketing the private cloud as the new corporate solution.

Think of it as cloud meals: you fired your kitchen staff to switch to salads from any caterer, appetizers from any caterer.  Now Microsoft will not just cater to you, they will, uh, set back up that  kitchen you dismantled - with catering called in as needed ...

Or are they marketing "dry water" at a time when aquaduct infrastructure is looking suspect ... will there soon be a new dry water tank up atop the IT shop?  Remember the water-cooled M/F - was that water outa the cloud or the main?  Did IBM bring out a dowser before that TOS/360 went behind the glass?  A ribbon-cutting or a rain-dance?

The private cloud.  Wasn't there a Joe Capp comics character with one of those?  Ah, yes, Joe Btfsplk.  Next someone will offer private vapourware.  Very steam punk.  Just don't let someone tell you that's fog - that's your shared cloud on the road ahead.

Thursday, June 9, 2011

Squeak MVC

At the blurb for 4.2 says
  and legacy MVC support
but the first test that I make gives a ScheduledControllers that is nil.
Both BitEditor and FormEditor appear unusable.
I looked in Monticello and the Universe browser but I see no relevant package to retrieve.
The package ToolBuilder-MVC retains this gem:
"Answer whether I am the currently active builder"
"This is really a way of answering whether 'Smalltalk isMVC'"
ScheduledControllers ifNil:[^false].
So something is amiss.  I am looking for a dependency framework - events, or Announcements or whatever in this image.

In Kernel-Objects package the Object class has a class variable DependentsFields.

In Kernel-Model package Model has an instance var named dependents.

But I see no tests for MVC.

There had been a Tweak package and a project to revive MVC in Squeak.  Perhaps more interesting is Announcements in Pharo and the coming changes to Model-View-Presenter in Dolphin Smalltalk.

Abstractions are needed.  MVC could be complex and Morphic seems best for direct manipulation rather than for traditional GUI applications.  I like the admissions made at Dolphin for their candor - and I like working in Dolphin when all that I need is a Windows app or tool over at

note:  the method >>isMVC  is not available.

BUT.  There is an answer.  You need to start a new project which is an MVC project.

And now you are in as old a Smalltalk as you can imagine: an ST-80.  Oh vey.  This is not offering an MVC option.  This is a collapsible Model-A in the cargo space of your auto-plane.

This is not Smalltalk the programming environment, but Smalltalk the split-environment for a house divided among partisans, some laboring under a tax of 90%, some under a flat-10%.

Wednesday, June 1, 2011

Converge 1.2

A new version of the "alpha" stage or phase of the Converge programming language is available: version 1.2 at from Laurie Tratt.

Converge is a pythonic version of Icon (or UNICON or ObjectIcon) if you will - which is curious as Python generators probably come from Ralph Griswold and others' Icon programming language. It is prototype-based with goal-directed evaluation and generators.

Converge shares with its predecessors more than generators: it is something of a logic language almost in the way that Erlang is almost an LP.  Converge uses success/failure instead of true/false and unlike the processes of Erlang, uses co-routines which can be reset.

These Icon-ic languages could be called string-oriented (and ObjectIcon is also UNICODE compliant) and descend from the efforts to replace SNOBOL4 - itself perhaps the first unintended "free" language for processing text as string data.

Converge provides an alternative to macros in the form of compile-time meta-programming.  As with macros in other languages, a substitution occurs, but these CTMP substitutions are specific to this language (relying on the AST) but are called with an explicit splicing notation (in this regard I prefer Curl from - they are documented with both the binary downloads and in the GIT codebase. Note: the substitutions occur before the VM has generated instructions.

In the years since the GOTO of SNOBOL was rejected by academics, layers of goto have crept into the mainstream languages first as exception handling jumps and then as aspects or as labeled break statements.

An ICON language continues to be used by one large USA agency (if one can infer from budget disclosures.)

At this time there are two mature ICON variants: Icon 9.5 and Unicon 11.7 (both freeware.)

My own preference at the moment is ObjectIcon 2.4 but if you like prototype-based over class-based then you may want to stay close to the Converge project - I know I will.