I thought I would share with everyone my latest little time burnerâ€¦ beta testing the WPS (World Programming System.) I’ve only had it a day and have run about a dozen programs through it, and so far, I’m impressed. WPS is a SAS alternative that mimics SAS/BASE pretty darn close. It has a great IDE (it uses Eclipse) for interactive programming and development. You can check out the WPS website at: http://www.teamwpc.co.uk/index.html to see what they have to offer and how they are positioning the product.
So far, the only problems I’ve had running WPS has been with a few programs that use some of the random number generators that I had in the programs. That was easily taken care of by switching the syntax to use CALL RANNOR and CALL RANUNI instead. I was pleasantly surprised to be able to just copy almost all of my SAS programs that I have that read large datasets and create indexes, do some PROC FREQS and PROC MEANS to validate the load and they worked without any changes.
Performance is not on par with SAS, however. WPS is 10% to 20% slower on doing MEANS and FREQS. The data step code is hit or miss when it comes to execution times. Sometimes WPS is a few percent faster and other times, SAS will outrun it easily. I still have not found the elements that account for the discrepancies but overall, SAS is faster. Sometimes, a lot faster.
According to the WPS website, pricing for the PC version is around $600 for first year fees and half that for the renewal. The download is 60mb in size. That amazed me after being conditioned to feed CD’s to SAS over the years.
Below is a list of language elements that are supported.
Append, Compare, Contents, Copy, Datasets, Delete, Export, Format, Freq, Import, Means, Options, Print, Printto, Sort, SQL, Summary, Tabulate, Transpose
DB2, DB2 (z/OS) MySql ,ODBC, SASV6, SASV8, Xport, SPSS, SPSSDIR, SqlServer, Teradata, TeraData (z/OS), WPD (z/OS) WPD1 (Wpd is the compliment of the SAS dataset)
Data Step Statements
ABORT, ARRAY, ATTRIB, BY, CALL, CARDS, CONTINUE, DATA, DATALINES, DELETE, DO,DO, iterative, DO UNTIL, DO WHILE, DROP, END, FILE, FORMAT, GO TO, IF, subsetting IF-THEN/ELSE, INFILE, INFORMAT, INPUT, KEEP, LABEL, Labels,Statement LEAVE, LENGTH, LINK, LIST, MERGE, OUTPUT, PUT, RENAME, RETAIN, RETURN, SELECT, SET, STOP, Sum, UPDATE, WHERE
Data Step Functions and CALL Routines
ABS, ARCOS,ARSIN, ARTAN, BAND, BLSHIFT, BNOT, BOR, BRSHIFT, BXOR, BYTE, CALL EXECUTE, CALL RANCAU, CALL RANNOR, CALL RANUNI, CALL SYMDEL, CALL SYMPUT, CALL SYSTEM, CEIL, CHOOSEC, CHOOSEN, COMPRESS, COS, COSH, CSS, CV, DATE, DATEJUL, DATEPART, DATETIME, DAY, DHMS, DIF, DIM, EXIST, EXP, FLOOR, GETOPTION, HBOUND, HMS, HOUR, INDEX, INPUT,INT, INTNX, JULDATE, JULDATE7, KURTOSIS, LAG, LBOUND, LEFT, LENGTH, LIBREF, LOG, LOG10, LOG2, LOWCASE, MAX, MDY, MEAN, MIN, MINUTE, MISSING, MOD, MONTH, N, NMISS, PUT, QTR, RANGE, RANCAU, RANNOR, RANUNI, REPEAT, RIGHT, ROUND, SCAN, SECOND, SIGN, SIN, SINH, SKEWNESS, SQRT, STD, SUBSTR, SUM, SYMGET, SYSPARM, SYSPROD, SYSTEM, TAN, TANH, TIME,TIMEPART, TODAY, TRANSLATE, TRIM, UPCASE, USS, VAR, VERIFY, WEEKDAY, YEAR, YYQ
Data Set Options
COMPRESS, DROP, FIRSTOBS, IN, INDEX, KEEP, LABEL, OBS, POINTOBS, RENAME, REPLACE, WHERE
%BQUOTE, %* comment, %DO, %DO, (Iterative) %DO %UNTIL, %DO %WHILE, %END, %EVAL, %GLOBAL, %GOTO, %IF-%THEN/%ELSE, %INDEX, %label, %LENGTH, %LET, %LOCAL, %LOWCASE, %MACRO, %MEND, %NRBQUOTE, %NRQUOTE, %NRSTR, %PUT, %QLOWCASE, %QSCAN, %QSUBSTR, %QSYSFUNC, %QUOTE, %QUPCASE, %SCAN, %STR, %SUBSTR, %SUPERQ, %SYSCALL, %SYSEVALF, %SYSFUNC, %SYSPROD, %SYSRC, %UNQUOTE, %UPCASE
AUTOEXEC, BLKSIZE, BYLINE, CENTER, CHARCODE, COMPRESS, DATE, DB2IN, DB2SSID, DKRICOND, DKROCOND, DSNFERR, ECHOAUTO, ENGINE, ERRORABEND, ERRORS, FILEBLKSIZE(device-type), FILESPPRI, FILESPSEC, FILESYSTEM, FILEUNIT, FIRSTOBS, FMTERR, INITSTMT, _LAST_, LINESIZE, MACRO, MACROGEN, MAUTOSOURCE, MERROR, MISSING, MLOGIC, MPRINT, MRECALL, MSGLEVEL, MTRACE, NOTES, NUMBER, OBS, OLDMAC, PAGENO, PAGESIZE, REPLACE, S, S2, SASAUTOS, SERROR, SORTCUTP, SORTEQOP, SORTLIST, SORTMSG, SORTNAME, SORTOPTS, SORTPARM, SORTPGM, SORTSIZE, SORTSUMF, SOURCE, SOURCE2, STIMER, SUMSIZE, SYMBOLGEN, SYSPARM, SYSPREF, USER, VNFERR, WORK, WORKINIT, WORKTERM, WPSTRACE, XCMD, XSYNC, XWAIT, YEARCUTOFF