I'm not sure if this is the appropriate section for this question, but there doesn't appear to be a "SAS History" community.
I'm trying to figure out the timeline of SAS releases for PROC DS2 and its predecessor PROC TSPL. I'm putting together a presentation and would like to provide context about where this procedure comes from. I'm hoping some members of the community can fact-check this or help fill in the holes. As best I can tell the sequence of events goes something like this:
Was TSPL/DS2 originally associated with a specific SAS product, or if it was always intended to be part of Base SAS?
Ideally I'd like to be able to attach dates to the timeline--my memory before SAS 9.3 is fuzzy. Is it possible to look up the dates for historical SAS releases? There is a table on Wikipedia, I don't think it's complete.
Any help would be much appreciated!
About SAS releases:
and dates are (all up to 9.2m2 are "to the month", and the blue area is "to the year" precision):
/* Approximate ship dates for major releases of SAS software.
Ignore the day: 01JUN just means "some day in June" */
ods html;
ods graphics on;
data Releases;
infile cards missover dlm=" ";
input Category $ 1-7 Release $ 9-18 Date DATE9. StatRelease $ 5.;
format Date DATE7.;
datalines;
BigBang SAS_Proj. 01Sep1969
Ancient 72 01Jan1972
Ancient 76 01Jul1976
Ancient 79.5 13Apr1981
Ancient 82.4 01Jan1983
Ancient 4.06 01Mar1984
Ancient 5.03 28Jul1986
Ancient 6.01 01Jan1985
Ancient 6.03 01Mar1988
Ancient 6.06 01Mar1990
Ancient 6.07 01Apr1991
Ancient 6.08 01Mar1993
Ancient 6.09 01Oct1993
Ancient 6.10 01Oct1994
Ancient 6.11 01Oct1995
Ancient 6.12 01Nov1996
Ancient 7.0 01Oct1998
Ancient 8.0 01Nov1999
Ancient 8.1 01Jul2000
Ancient 8.2 01Mar2001
Ancient 9.0 01Oct2002
Ancient 9.1 01Dec2003
Ancient 9.1.3 01Aug2004
Ancient 9.2 01Mar2008 9.2
Old 9.2m2 01Apr2010 9.22
Old 9.3 12Jul2011 9.3
Old 9.3m2 29Aug2012 12.1
Modern 9.4 10Jul2013 12.3
Modern 9.4m1 15Dec2013 13.1
Modern 9.4m2 05Aug2014 13.2
Recent 9.4m3 14Jul2015 14.1
Recent 9.4m4 16Nov2016 14.2
Recent 9.4m5 19Sep2017 14.3
Recent 9.4m6 20Nov2018 14.4
Recent 9.4m7 20Aug2020 15.2
Recent 9.4m8 31Jan2023 16.2
;
run;
title "Major Releases of SAS Software";
ods graphics on / height = 800px width = 1600px;
proc sgplot data=Releases noautolegend;
styleattrs datacolors=(blue red orange yellow green);
block x=date block=category / transparency = 0.6;
scatter x=date y=release / datalabel=Release datalabelpos=right
markerattrs=(symbol=CircleFilled size=10);
xaxis grid type=time offsetmin=0.05 offsetmax=0.05 /*min='01Jan1972'd*/
INTERVAL=year
VALUES=('01Jan1969'd to '01Jan2024'd by year) VALUESFORMAT=year4.
;
yaxis type=discrete offsetmax=0.1;
run;
All the best
Bart
PS Source of dates is the internet, but from good places, e.g. blogs of @ChrisHemedinger and @Rick_SAS
Yes, @yabwon 's data and graph is adapted from the one at How old is your version of SAS? Release dates for SAS software - The DO Loop
DS2 was introduced publicly by Jason Secosky at SAS Global Forum 2012, which happened in the waning days of SAS 9.3m2. Customers were able to use it in SAS 9.4, which was release in July, 2013. The goal of the DS2 project was to provide SAS customers with a more modern version of the DATA step. The PDS procedure has more flexibility for pre-processing and post-processing data, thus the use of the init(), run(), and term() methods. It supports a rich variety of data types, programming paradigms from object-oriented programming, and is multithreaded.
As @Rick_SAS says, by the time this feature was named "DS2" and released, it was offered as a more object-oriented, multithreaded version of the DATA step. It can be extended by the use of DS2 packages, which are reusable modules that encapsulate their own feature sets.
When the project began as TSPL (table server programming language), the focus was to bring the power of the traditional DATA step to a process that could be embedded within databases. It's what allows lots of SAS-based code (including model score code) to execute within databases (like Oracle or Teradata) without having to first move the data out into a SAS process. This data movement is often the most time-expensive part of data management, and model scoring needs to be fast especially in transactional systems. DS2 allows you to "bring SAS to the data" and save on all of that.
This embedded process and extension of SQL passthrough is part of the SAS/ACCESS offerings (and there is a SAS product for each database vendor supported), but DS2 itself has always been part of Base.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.