Happy Programmers Day - Sept 13 2022

I just wanted to share a small fun video our team made featuring various hello world programs written in different languages:

My personal language list is BASIC, Fortran 4, Forth, Pascal, Modulus2, DOS, Occam, Python, CUDA C, various assembly Z80, 6502, 68XXX, x86, TI340X0, Nat Semi AGCS and I am sure I’ve missed some.
I didn’t list the non-programmable graphics processors - the list gets too crazy.

Happy Programmers Day Everyone

My coding started with BASIC and Fortran in high school. Happy Programmers Day!

2 Likes

Oh wow - Fortran is one of those love or hate things - I am impressed and surprised you had exposure at high school.
Thanks for sharing.

1 Like

In temporal order:

BASIC (on a TRS-80 with 16 KB of memory)
Pascal (on a minicomputer; IIRC it had an 8" floppy drive and a 5 MB hard disk)
Z80 assembly language (on a Microsoft Z80 Softcard with CP/M)
C (Lattice C compiler, on a Sirius 1 running MS-DOS)
Fortran (also on the Sirius 1)
8086 assembly language (under MS-DOS)
LISP (Golden Common Lisp, on a PC)
IBM System /360 assembly language
Ada (on a Sun SPARCstation 1)

1 Like

Wow that’s a cool list.
Programmers with LISP and Ada experience are a seriously exclusive bunch.
I expect you would have some really interesting stories to share.

This was during my university years, not in a professional capacity. We had to pick either LISP or Prolog to expand our horizon beyond procedural programming languages. I still think LISP is pretty cool. IBM /360 assembly and Ada I learned for classes that I picked up just for fun. In the case of Ada I was more excited about getting my hands on the then brand-new SPARCstation 1 than the language itself, although Ada was still fairly new at the time and considered an up-and-coming language because of DOD requirements.

In the late 70’s I learned to program (at roughly the same time) APL on a terminal to an IBM that our high school provided, and 6502 assembly on a MOS KIM-1 6502 SBC. In the early 80’s I also got to play with BASIC on a DEC PDP-11 of some variant. In the same timeframe I also got to play with a Ohio scientific Challenger (6502 “SBC”) and later a Kaypro-1 (Z80, CPM) using BASIC, I think. No actual programming classes in high school. My dad was an electrical engineer so he had a steady stream of computers in this timeframe. When I went to college in the 80’s, the first language I learned was Pascal (CS intro course) followed by Fortran (Numerical Methods) and C (electrical engineering/embedded systems). In grad school I learned TMS 320 DSP assembly language, and used it extensively in my first permanent position, working on digital servos. The first computer I purchased for myself was a Mac-II, in grad school around 1987. I had access to the usual VAX-en and IBM machines in college, and in grad school also got to touch a Sun workstation for doing VLSI design in Magic (designed a parallel booth multiplier, and simulated it), and a SGI workstation for basic graphics/image processing programming. Later my programming mostly coalesced on C/C++. Of course, you can add CUDA C++ to that, eventually, and a bit of python.

The name sounds vaguely familiar. Weren’t those processors also used in the TIGA accelerated graphics cards from the late 1980s, early 1990s?

I wonder how much assembly language programming is still going on these days. Besides x86 / x86-64 assembly language I professionally used SPARC assembly language and then 32-bit ARM assembly language (the latter at NVIDIA :-). But that was almost twenty years ago, and I never wrote a “Hello, world” program with either SPARC or ARM assembly.

When I look at the machine code produced by Clang these days, I sometimes marvel at the clever machine language constructs it uses, and the power of its source-level idiom recognition, e.g. automagically turning a simple bit-counting loop into a count-leading-zeros instruction. The improvement in code quality compared to the compilers of the early 2000s is quite striking.

TIGA was TMS 340 series, which weren’t much like the TMS 320 as far as I know. I never used them. I think they called the 340 series graphics chips. I worked mainly with the 32020, the 320C25, and the 320C50, which were all integer DSP chips that had harvard architecture. TI also had a floating point series, if memory serves that was the 320C30 and others. It seems quaint now that manufacturers marked the transition to a full CMOS process in their product naming. For my grad school work we did a 3-layer perceptron neural network preceded by an FFT to do neural network ops in frequency space on the 32020. The “funded” objective was to detect the sound of breaking glass in a noisy environment, in a real-time detector/sensor. Later, as I mentioned, that experience basically got me hired in my first permanent engineering position out of school, to do digital servos on 320C25 and 320C50. Basically doing PI control with a position loop, a velocity loop, and a “torque control”, for 6-15 axes of control on a machine tool, plus various bells and whistles, like motor torque ripple correction, velocity feed forward, resolver and encoder operation, etc. Closing the loop every 500us/2ms on ~8 axes on 320C25. Competing with GE/FANUC and Siemens, basically.

Yes, my ramblings here are not all “hello world”. Mostly just ramblings. Kind of responding to this:

Thanks for the clarification about the different TMS series. I just remembered that the SuperSPARC that I used just after it came out was also made by TI, and looking at the Wikipedia entry for that, it turns out that the part was called TMS 390. Way too many TMS 3x0 families, I’d say.

That machine tool project sounds cool and quite challenging (for the time) given the high number of degrees of freedom. That is right up the alley of what I planned to do, machine tools and robotics, when I got a surprise invitation to come to Silicon Valley to work on an x86 processor project (a souped-up 486 compatible from an Intel competitor that never became a reality; it got as far as Quickturn emulation).

For me, it might have been either Microsoft Basic on a Commodore 64, or possibly on a Commodore PET at school.

Haven’t heard the word TIGA for such a long time. The TI 34010 was a game changer in its day. I think it was one of the first “graphics processor” to be supported by the GSS Library (before OpenGL) . Little know fact - I provided the GEM / Ventura Drivers for GSS and later for Windows (all in assembly) , they was based on my abstract processor architecture driver which I first shipped on the Hitachi ACRTC in 1987. It only took a couple of weeks after release for Digital Research (of CPM fame), who were in SeaSide/Monterey to track me down to ask how got it to work on the ACRTC since they chief engineers had said it was impossible - no one told me - how was I to know it wasn’t possible - right? So I just did it :) - the ACRTC didn’t have its frame buffer mapped to CPU addressable memory - I expect the chip designers were aiming accelerate AutoCAD and GUI & WYSIWYG “Desktop Publishing” hadn’t reached Chiyoda. Needless to say when DRI needed drivers for FlexOS - they asked me - that was my first ever visit to USA and Silicon Valley.
Drivers were a lot simpler then - only 2D.

Do you still remember that first Hello World ? That feeling of making “this thing” follow your instructions. I still remember the first time I got the an ATOM-1 to flash a few LEDs, the first time I made the “tele-type” respond with prime numbers and the day I booted up my very own BBC Micro. (still have it). I wish for everyone to have their own Hello World Moments in what ever passion they have.
Thanks for sharing.