01-17-2017 10:55 PM
Would you consider SAS programming an art or having a creative aspect to it similar to art? I have heard how programmers that use other languages think of programming as a "form of art" and was wondering if that applies to SAS.
If so, please describe why.
01-17-2017 11:31 PM
Yes, but I'd apply that to all programming. But it doesn't hold that we'd all be considered masters,
A brief explanation. Only one person is/was the Van Gogh. And what he created is indeed considered art. However, one who has learned and can apply some, most or all of his techniques, and to it well, would also be considered an artist. Not the Van Gogh, but an artist none the less.
We all can't be the Ian Whitlock, the PaulDorfman or the John King of the SAS programming world, just to name a few who showed the rest of us techniques that weren't just solutions, but examples of artistic genius. But, while we may not be included within the group of programming masters, we can still become artists.
Art, CEO, AnalystFinder.com
01-18-2017 02:43 AM
It's no coincidence that one of the books about computing I admire the most is called "The Art of UNIX Programming".
There is also a lot of overlap between conventional arts, especially music, and programming. I'm a musician myself, and I see parallels (working within frameworks - syntax in programming, scales in music - and applying certain methods in places where they fit - think of applying the right guitar lick in the right place of the solo). I know of several programmers who are also accomplished musicians.
You can extend that from programming as such to programming in SAS. In the end you need to have the mindset of a programmer, the language is just a certain environment in which you play that talent out.
PS While writing this, Mendelssohn's Sommernachtstraum is playing in my headphones.
01-18-2017 05:25 AM
Yes. Think of it this way, your code will almost cetainly be read by someone other than you. Therefore you are trying to convey the story of your data and how you processed it to a third person. Ok, your unlikely to spank 50 shades off the booker prize list, but the principal is the same. I often see code that frankly I would just hit delete on rather than look at. We all know the type, no indents, casing all over the place, unfinished blocks etc. and one of the big offenders is the over/misuse of macro language. Nothing does more to make your code unreadable than that. Also, gone are the days of one line code entries, having to come up with funky code which moves bytes around in memory to save some space etc. So using more code to simplfy things, formatting code, are all good.
Also, one thing that I never seem to see mentioned is lifecycle. Code should never be static. So often I go into a new role and am shown their pride and joy, a macro library which has been running since 1902. I know the saying "if it aint broke, don't fix it", however there should be ongoing maintenance, and review of all code. This is called Software Development Lifecycle. Assess new techinques or new functionality. Do you really need that macro _xyz() which saves you typing a few characters on a style command, why not use a company set of templates? Do all those old gplot macros really need to be there, or would GTL make things simpler etc.
01-18-2017 08:53 AM
In many problem-solving disciplines, an elegant solution requires creativity and is often described as "beautiful" by those who can appreciate it. Programming has elegant solutions. Sometimes it is the algorithm that is beautiful, which is to say that the program is an implementation of a beautiful idea in mathematics or computer science.
There is constant debate about whether a beautiful program should be more like poetry (short, pithy, concise) or more like a novel (descriptive, verbose, complete). My opinion is that there is a time and place for both.
01-18-2017 05:06 PM
Definitely, but it doesn't just relate to SAS programming. I once presented a paper (in itself not a great thing, but nevertheless…) where I discussed the aesthetics of computer programming. It's possible and not difficult to make code look good. If it looks good, it probably is good, because the programmer has spent time making it appear just so.
Ugly-looking code, through not being aesthetically pleasing, probably isn't worth the extensive time taken to understand it. I often spend a lot of time, sometimes too much, stripping extraneous bits from code just because it doesn't feel right.
Robert Persig's definition of quality in Zen And The Art Of Motorcycle Maintenance: Quality is what you like.
01-25-2017 01:58 PM
In the '60s and '70s, Donald Knuth wrote The Art of Computer Programming series. The expression is still in vogue today. What is Art? Is it something done with great care and sophistication? Or is it something that has the potential to evoke strong emotions or to inspire new ideas?
If the former, then yes, cooking, woodworking, and programming are forms of Art. If the later, then no, at least not any more, programming which might have had an artistic component in its exploratory phase, is now mostly a craft, just like photography.
When I see one of my programs work well, I just feel like a cabinetmaker sitting on a chair he just built. It feels good, but nothing transcendental.
02-01-2017 04:28 PM
I personally consider SAS programming as an art and a science. Science for obvious reasons due to knowledge of syntax, using programming principles and leaving clues / crumps behind for other programmers to follow
It is an art as some programs or business problems require unconventional techniques. As other distinguished contributors have pointed out, some outside the box creative thinking might be easier for gifted and talented souls that can simplify and make it look easy be it music, painting, acting and so forth. This thought process could be extended to SAS programs from my perspective.
If one is ambidextrous (in the sense of talented in both art and science) they would bring uniqueness to SAS programs similar to other programming languages.
An example that pops in my head is that of Leonardo Da Vinci from 15th Century who was both an accomplished artist and a great scientist, in short "Renaissance Man".
Per History website (http://www.history.com/topics/leonardo-da-vinci):
Great works of Da Vinci include "Mona Lisa" "The Last Supper" and some say that on paper he had created the bicycle, the helicopter, and an airplane.
08-14-2017 02:47 AM
The question is about programming really. To answer it, I will oppose art and engineering, as two forms of intellectual prowess giving birth to new, artificial, designs.
As an (mechanical) engineer, I always wince when I read the term "software engineer". To summarise, while there is no doubt that software development is a highly technical endeavour, it is nothing like engineering, and is much more of an art (engineering is also partly an art of course, to a lesser extend, as it requires human creativity). A good indicator of this (in my simple view of the world) is that when an engineering project is complete, a mechanical object, or electronic circuit, or chemical compound, can be modelled (with software!) and its properties are known. The behaviour is known before any implementation of the design. Good luck with software. The problems that software solves (in all fileds or human knowledge) are vastly more varied than what engineering typically solves, and always require bespoke solutions.
Which is why the quest for no defect software is a pipe dream. Art cannot be perfect. It is too human for that.
OK, I'll get my meds now....