Most of the new concepts and tools for programming didn’t exist when I graduated from University with a Masters of Computer Science in 1980. The programming languages I worked with were FORTRAN, APL, PL/I and even Assembler. I picked up Pascal on the job and that led me to Turbo Pascal for personal use and then to Delphi with its object-oriented version of Pascal.
Delphi’s object-orientation introduced in 1995 was to me a totally new concept I had to pick up. I never really needed to learn it in detail since I never wrote low level objects other programmers would consume, but I had to learn enough about it to consumer other programmer’s objects from the packages they wrote.
Also during the 1990’s was the development of Unicode, which finally made every language available in one character set. Windows started supporting it around 2000 in Windows NT and XP. I have several books on it in my library (e.g. Unicode: A Primer) attesting to the time I spent learning about it. Unicode was a necessity for genealogy software and I had to buy 3rd party packages to support it in Behold until Delphi 2009 came out which finally included it.
Now with Delphi XE8, Generics have really taken hold. One of my specialties has always been in data structures and algorithms. Sometimes I just can’t help myself as I really enjoy getting down and dirty with a good algorithm, just as I did a couple of years ago for Ancestral Loops. But now with Generics, many of these methods have become much easier and with them, I will be able to replace my custom-developed b-tree and the 3rd party hash tables that I had been using in Behold.
As far as databases go, they were in their infancy when I was at University. I do recall taking a course on normalizing relational databases, which is to analyze data and to organize it into its primary records based on the common keys that define specific fields. Years later, I refreshed that knowledge when having to do that normalization for work-related projects.
I had the opportunity to work and gain expertise with a hierarchical database system called FOCUS by Information Builders. FOCUS was around before Oracle and Microsoft Access became the big fish. I worked a bit with Access, but had samplings of Oracle and even a bit of the SAP Data Warehouse.
My personal website requirements led me to WordPress, the PHP language, its MySQL database and the six months of my life I spent customizing my blog and forum. If you lived within a few blocks of me during that time, you may have heard me often spouting expletive deleteds due to my continued frustrations with PHP (which I agree is the second worst programming language in the world – the worst one is obvious if you remember Job Control Language (JCL). Do watch this great talk on The Worst Programming Language Ever by Mark Rendle)
But now I’ve got two technologies to take on that are new for me:
1: The SQLite database was first designed in 2000. Since then, it has become the most widely deployed and used database engine in the world. Billions of copies exist because it is in just about everything you use. One major genealogy software package uses it, that being RootsMagic. And it is my choice for Behold’s database, primarily due to its speed, size and universality.
2: Delphi’s new FireDAC framework. This allows high-level and universal access to SQLite or any database. It is like the middleware that gets Delphi to play nice with SQLite.
I’m learning these as we speak. A couple of months intensive work of implementation and I should gain a fairly extensive knowledge in both.
After that, I’ll have more learning coming, including JSON, API’s, Windows 10,…
So don’t ever think any programmer knows everything about programming. Knowledge grows old fast. And new technologies rise faster than Spring flowers.
This continual learning is what makes programming so much of a challenge … and so much fun.