The future position of ObjectScript
Tags: python, react, eap, beginners
Published: 2022-01-19 16:41:46

If you develop in IRIS you are confronted with two major phenomena:

  * an incredibly fast and excellent designed data storage engine
  * a scripting language to work on this storage engine, actually named ObjectScript 

<!--break-->

### Storage engine 

<p style="margin-left: 40px;">
  It is a hierarchically organized storage concept and was considered as<br />"old-fashioned" when "relational" was the Buzzword of the season.<br />Though - if using its strengths - it outperformes with its slim and efficient<br />construction all its "Sumo"-shaped competitors.<br />And this is still true and unbroken since day 1.<br />It's amazing to me how those competitors copied over time various features<br />of this storage engine indirectly confirming the quality of the basic concept.
</p>

### ObjectScript    

<p style="margin-left: 40px;">
  Looking at the language it is rather easy to separate the rather narrow set of language <br />elements that manipulate and navigate the storage engine that has seen just a few<br />extensions and some polishing over decades. I call this the <strong>CORE.</strong> <br />Its companions are <strong>Navigation</strong> (mostly similar to other languages)<br />and <strong>Cosmetics</strong> (everything to manipulate data content).
</p>

<p style="margin-left: 40px;">
  <u>Navigation</u> is an unavoidable structural requirement but has seen several additions<br />mostly for programmers' comfort. Not required but similar to newer languages.
</p>

<p style="margin-left: 40px;">
  <u>Cosmetics</u> is the fastest-growing field and until today its offers surprise me every<br />now and then. Its existence results from history where the Storage Engine was also<br />part of an operating system and nothing else on the HW. 
</p>

### History

<p style="margin-left: 40px;">
  From the past, developers were used to write applications with ObjectScript.<br />Even InterSystems did this on large scale (Interoperability aka Ensemble,<br />Analytics aka DeepSee, Health*...)  ObjectScript was/is the "can all, does all"
</p>

<p style="margin-left: 40px;">
  But ObjectScript was rather a "Lonely Ranger". Attempts to have something more<br />popular on the market was BASIC. (Already a "dead horse" at that time.)<br />The chance to jump on the JavaScript wave was missed ~15 years ago.
</p>

<p style="margin-left: 40px;">
  The availability of a wide range of language adapters could  hide the dimension<br />of the issue for some time, But it never reached the strength that the main <br />competitor showed when PL/SQL was frozen and replaced by Java. 
</p>

### Today

<p style="margin-left: 40px;">
  I see the number of qualified developers in ObjectScript shrinking over time by pure<br />demoscopic effects. Finding and educating developers willing to write ObjectScript<br />is a hard exercise that I experienced personally several times. And even if they are<br />bright and highly skilled it is no guaranty that they will stay with you.<br />Demand is still rather dramatic.
</p>

<p style="margin-left: 40px;">
  In front of this background, I see the upcoming of <u>Embedded Python</u> as full-size <br />language at the same level as ObjectScript as a major step forward with IRIS .<br />Navigation and Cosmetics are covered in public and adding the CORE functionalities<br />doesn't require a dramatic learning step. So we see a much larger market of skilled<br />development resources and the isolating uniqueness of ObjectScript and <br />its limitations is broken.
</p>

### Future

<p style="margin-left: 40px;">
  > With Python, I see a lot of new energy entering the world of IRIS. <br />After all, a step that some competitors did quite some time ago and this<br />flaws of "never seen anywhere else" has been overcome.
</p>

<p style="margin-left: 40px;">
  > The paradigm: <em>"I write it, just because it is possible"</em> will be broken.<br />This releases us from a series of reinvented wheels.
</p>

<p style="margin-left: 40px;">
  > ObjectScript will still live in parallel and have a significant role in all<br />activities close to the storage CORE. No one (hopefully) will use it for <br />business logic or mimic interfaces that are available on a much<br />larger scale outside already.  
</p>

<p style="margin-left: 40px;">
  > ObjectScript will shrink to a dimension that we see today for C, C**<br />or for code in whatever Assembly language. Existing applications<br />will not be affected. The way Python was integrated seems to be<br />a guaranty for a smooth migration without time pressure. 
</p>

<p style="margin-left: 40px;">
  > Today's ObjectScript developers will not lose their jobs nor run<br />out of demanding work. There are enough challenging tasks left<br />around database design and maintenances. <br />But they could get rid of (in my eyes) unattractive tasks of<br />CSS styles, coloring web pages,  . . . .
</p>

<p style="margin-left: 40px;">
  > Not to forget the demanding challenge to read and understand <br />existing code and interpret and communicate its content and logic.<br />"GolfCode" may look like fun, but it is a deadly earnest business<br />logic in many old traditional written applications and even some<br />utilities in "%SYS".
</p>

<p style="margin-left: 40px;">
  > I see today's developers as the priests of ObjectScript similar to the<br />Egyptian priests understanding hieroglyphs, reading "The Book of Dead"<br />and celebrating their miracles.
</p>

July 15th, 2021