Fish are beautiful creatures, but they have one minor issue. The main thing I remember from the years I fished is that fish can be susceptible. If you have a fishing lure that shows off with a bright, colorful, shiny appearance that splashes around just right, fish will lose their minds and go after it, much to their detriment. Note, of course, that these are the same fish that are frightened away if you are making any noise whatsoever in the area, so they aren’t exactly dumb; they just have a weakness.
For many of us, new features and products lure us in for a ride. I know I look forward to September each year to get the next iteration of the iPhone. When Microsoft releases a new version of SQL Server, I start poking at it immediately to find new features and start working on how to use (and write about) those features.
About a month ago, I wrote an editorial called “The Good, The Bad, and Suboptimal of Sticking to What You Know.” One of the commenters had a concern with it, in that it was felt that I was suggesting that you use every new and shiny thing out there. While it was clearly mentioned in the text that not all new features are necessarily valuable (and they did say they didn’t read the whole thing!), I want to do what I can to clarify that point. “Everything that glitters, is not gold.”
When I came up with that horribly long title to the previous post, I did it because I wanted to emphasize this was about simply sticking to what you know and ignoring everything new. I stand by the sentiment that it is terrible to stick your head in the sand and just flat ignore new technology/techniques. The image in my mind for this is someone still using tape drives because it was “good enough when I started, and it is good enough now.” Ask some people like this about backing up to the cloud and they look at you funny thinking “clouds are water vapor.”
That sort of thing is where it really starts to be a concern. New features that can save you time and energy if you just look for them. For example, in SQL Server, there is a new feature called
GENERATE_SERIES. This function will output a table of values for a given range.
GENERATE_SERIES(0,999999) AS numberSeries;
This returns a set of rows from 0 – 999999 with no breaks in the sequence. The best way we typically did this before this function was added was something like this:
;WITH digits (I) AS (--set up a set of numbers from 0-9
FROM (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) AS digits (I))
SELECT D1.I + (10*D2.I) + (100*D3.I) + (1000*D4.I) + (10000*D5.I)
+ (100000*D6.I) AS value
--gives us combinations of every digit
FROM digits AS D1 CROSS JOIN digits AS D2
CROSS JOIN digits AS D3
CROSS JOIN digits AS D4
CROSS JOIN digits AS D5
CROSS JOIN digits AS D6;
I am not sure who first coded this, but if it was Itzik Ben Gan I would not be surprised. Either way, suffice it to say that I would have never devised this method out of my own brain. Before this was devised, most of us would have used a loop and a counter.
First off, the main thrust is that as a T-SQL programmer who has used a numbers table, that you actually hear about
GENERATE_SERIES. The next step is deciding if it is right for you. It is much simpler to code, so it must be great, right? It is new, it is shiny, and why not?
I am not going to answer that question for you here. Both methods have pros and cons, so much like any technical topic, you can boil it down to that well-known programmer answer: “It depends.”
What I am imploring you to do is simple. Keep up as much as you can and know about the different techniques and changes coming as time passes. If you are still backing up using tape drives, better choices are available in 2023 (as there were in 2022, and 2021…).
The point of both of these editorials is simple. Don’t get stuck in a time-period you are comfortable with using tools you are satisfied with, and never change. Be on the lookout for new and better methods, tools, techniques, etc. While everything that glitters isn’t gold, gold does in fact glitter too.
Just don’t be that fish grabbing at something shiny in the water without verifying what it is. Sometimes it is lunch, sometimes it is a scary trip you would have rather avoided!