Product(s): Base SAS
Overall Comment:"SAS really is amazingly supportive and helpful. Over the years, I have had numerous, in-depth exchanges with technical staff looking into all sorts of solutions to unique problems with me. I am amazed at the level of detail and communication SAS allows. While many companies would just respond with boilerplate like "It doesn't do that, and we're not looking to implement that at this time." SAS actually dives into the problem, gives workarounds, hotfixes, better alternatives, and, if needed, scheduling the item for future development."
SAS is exceptionally reliable. Most of the time, I don't think or worry about SAS, meaning that it's a tool that helps me without getting in the way. I've never questioned its results, and I appreciate the robust design and vetting of statistical procedures, something that I can't say for other products, especially ones that are largely user defined. I often use SAS to check that something done with another software is correct.
There are cases where SAS cannot be properly interrupted, and I wind up having to force stop the program in Windows. This is often the case when querying a server, like SQL Server. Other situations might be a sort, transpose, or statistical procedure on a very large data set. After submitting many x or %sysExec commands, there's no way to interrupt SAS: I must wait until they all finish. There's also no easy way to cancel all remote sessions. Graphics could use an interactive interface between the code and a mock-up. I could change an element in the code, and the mock-up would automatically be adjusted, or I could change the mock-up and SAS would add code necessary to create it. Something similar would be helpful with proc report and tabulate, especially when outputting to ODS. I've spent hours sometimes trying to get certain columns to fit on a page by nudging one column smaller and another larger, etc. Having to run the procedure with the data every time to see these cosmetic changes is super slow. While I understand backwards compatibility, it might be time to change the defaults of some procedures. (For example, with mixed models, it's nearly always the case that Kenward-Rogers 2 should be used for DDFM. The default is containment, which is never really appropriate anymore.) While I'm sure some folks are running code that is reliant on producing the same output, it seems like those would be truly rare cases. Perhaps the next version could change these defaults to best practices, and warnings could be written to the log alerting users that the defaults have changed. SAS also needs functions for title case, which would obey more rules than propCase(), and sentence case to make blocks of text readable.
I work in public health research, and SAS is the gold standard.