Sunday, October 19, 2014

Programming Blast from the Past

Odin the Wanderer
So there we were, just two consenting adults lying in bed on a Saturday night, drinking a little wine and watching television.

A topic arose; one personal to my very being.  A topic with a history originating in 1982.  One that is personal and unique to everyone with a similar background.  That topic is...  Now, please don't judge...  Is this...

"How many programming languages do you know?"

Damn.  I poured another glass of wine and thought...  'How many computer languages DO I know?'  The incomplete list, of course starts with ones that I know very well and trails off from there.


  • C#
  • SQL (Including MSSQL and MySQL)
  • HTML
  • Foxpro (Visual and DOS)
  • CA Clipper (Yes, I am old enough to remember CA Clipper.)
  • Java & Javascript 
  • VB (Although, if asked, I will deny knowing this sorry excuse for a language.)
  • Pascal (Includes Turbo Pascal, Delphi GNU Pascal and Fast Pascal.)
  • COBOL (includes mainframe COBOL and Microfocus COBOL)
  • C & C++ (Just enough to be able to navigate a program.)
  • APEX (Salesforces' version of a programming language.)
  • SOQL (Salesforces' version of a data query language.)
  • IBM 370 Mainframe Assembler
  • JCL
  • JES2 (Really more of a command interface than a language.)
  • Visual Objects
That last one surprised me.  I remember that cold winter afternoon in 1994.  We were told to leave the office before the heavy snow hit.  Not being one to ignore my boss, I hopped in my car, lit a smoke and headed home.
There on my front porch was a large ice cold box from Computer Associates.  It was filled with over a dozen blue three ring binders.  The manuals were printed on three-hole copy paper and sealed in shrink wrap.  I had been accepted into the Beta Test program.

Unfortunately, leafing through the manuals and installing the software was the most enjoyable part of this experience.  Attempting to learn VO was neither simple nor enjoyable.  Within two years I had starting coding in Delphi, copied over the VO install disks and re-purposed the three ring binders.

Surprisingly enough,Visual Objects is still around and owned by a company called GrafXsoft.

For those who don't know what VO code looks like, here is a little sample from www2.latech.edu:


TEXTBLOCK HELLOWIN.C  --  (c) Charles Petzold, 1992

/*--------------------------------------------------------
   HELLOWIN.C -- Displays "Hello, Windows" in client area
                 (c) Charles Petzold, 1992

   HELLOWIN.PRG - CA Visual Objects adaptation
                        John Forsberg, 1994

   HELLOEAS.AEF - CA Visual Objects adaptation ( Easy one )
                        Jari Sevon, 1995
  --------------------------------------------------------*/


METHOD Start() CLASS App
     LOCAL oWindow AS Window
      oWindow := Hello{}
      oWindow:Show()
RETURN( SELF:Exec() )

CLASS HELLO INHERIT TOPAPPWINDOW

METHOD INIT(oParent) CLASS HELLO
     SUPER:INIT(oParent)
     SELF:Caption := "The Easy Hello Program"
RETURN SELF

METHOD EXPOSE(oExpEvent) CLASS HELLO

     LOCAL oPoint AS POINT
     LOCAL oBoundBox AS BoundingBox
     LOCAL oDim AS Dimension
     LOCAL nxWinWidth   AS INT
     LOCAL nyWinHeight AS INT
     LOCAL nx AS INT
     LOCAL ny AS INT
     LOCAL cDispString := "Hello Windows !"
     LOCAL nxTextWidth  AS INT
     LOCAL nyTextHeight AS INT

     SUPER:EXPOSE(oExpEvent)

     oBoundBox  := SELF:CanvasArea
     nxWinWidth     := oBoundBox:Width
     nyWinHeight   := oBoundBox:Height

     oDim := SELF:SizeText(cDispString)
     nyTextHeight := oDim:Height
     nxTextWidth  := oDim:Width

     nx := ( ( nxWinWidth - nxTextWidth ) / 2 )
     ny := ( ( nyWinHeight - nyTextHeight ) / 2 )

     oPoint := POINT{ nx  , ny  }

     SELF:TextPrint( cDispString , oPoint )

RETURN 


Can you see why I jumped right over to use Delphi rather than plugging away, trying to learn this?

No comments:

Post a Comment