What Early Software Was Influential Enough To Deserve Acclaim?
theodp writes "That his 28-year-old whip-smart, well-educated CS grad friend could be unaware of MacWrite and MacPaint took Dave Winer by surprise. 'They don't, for some reason,' notes Winer, 'study these [types of seminal] products in computer science. They fall between the cracks of "serious" study of algorithms and data structures, and user interface and user experience (which still is not much-studied, but at least is starting). This is more the history of software. Much like the history of film, or the history of rock and roll.' So, Dave asks, what early software was influential and worthy of a Software Hall of Fame?"
'nuff said
Whining because they don't teach Mac history 101 in CS programs?
I sure bet the grad student heard of MS Windows, Word and Excel. I bet he's even heard of CorelDraw, Super Mario Brothers and Pong too.
BTW, the source for MacPaint is available online at the Computer History Museum:
http://www.computerhistory.org/atchm/macpaint-and-quickdraw-source-code/
Written by one guy..in assembly
I'd say HyperCard would be a better choice
#DeleteChrome
Autocad & PowerDraw (now PowerCADD) 2D CAD followed a decade later by SolidWorks 3D for turning concepts into executable designs that were within the realm of price and usability for individual designers.
dBase
Word Star
Turbo Pascal
He mentions Susan Kare but I'd like to give another shout out to her work. We are still using derivatives of her designs, and the brief simplicity of them really led the way for a lot of the icons we use now.
I live in constant fear of the Coming of the Red Spiders.
Because once we forget how this software worked, someone else comes along and does a research project, thinks that they have invented something new, patents it and/or names it after themselves. Then they'll start sending lawyers after other people. I've seen this happening with something as simple as 3x3 convolution matrices and widget libraries. What was common knowledge in personal computer magazines back in the 1980's now seems to be stuff that leads
to patent battles now.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
"Why aren't you one, too?"
OK, maybe that's a little harsh. But it's not completely apparent what value such a detailed review of early software programs would add to a computer science curriculum. It's probably sufficient to note the emergence of the GUI as the major defining element here, and let our poor undergrads get back to studying their bi-directional linked lists.
My opinion: it's not an accident that computer science is a more forward-looking than backward-looking discipline. Students will get more mileage out of downloading the latest version of OpenCV or playing with math in Python than sitting through a boring lecture about primitive computer software apps.
Without the desktop publishing revolution, it's hard to see Apple surviving long enough for Jobs to retake the helm.
Lawrence Person (lawrencepersonh@gmailh.com (remove all "h"s to mail)
http://www.lawrenceperson.com/
http://minnie.tuhs.org/cgi-bin/utree.pl
For the same reason we have a Baseball Hall of Fame, a Football hall of fame, or even simpler, for the same reason we study world history. Know thy history, learn from your mistakes, understand what the best things were made off.
--- "When you gotta do something wrong. You gotta do it right. (Fighter)"
OMG, please tell me you are not old enough to vote too.
We study influential software for the same reason we study the past in any domain: to learn of the forces that shape what is, the human stories that lead to these artifacts, the design decisions and the lessons learned therein. What you see on your desktop today is the current end of a long chain of "obsolete software" that includes MacPaint, and Whirlwind, and any number of earlier systems that bring us to current dominant designs. Economically significant and useful software intensive systems all have such a legacy, and your hubris in so quickly dismissing the value of understanding anything older than your professional lifetime is staggeringly depressing to me. May you never be on any development team that has to grapple with the refactoring of legacy code.
Leisure Suit Larry
Microsoft BASIC and later Visual Basic: Unjustly despised, but introduced many to programming (and the very first ones were marvels of micro-programming too). Also interestingly portable at a time where portability was on nobody's radar.
Spectre GCR, a Mac emulator on Atari ST. A precursor of virtualization in my opinion, and a very smartly done one at that.
VMware for making virtualization available to the masses and enabling the cloud.
AmigaDOS for being the first OS with built-in hardware-accelerated graphics and sound.
The RPL system in the HP28 and HP48 series of calculator. Reverse Polish Lisp and symbolic processing on a 4-bit calculator with 4K of RAM? Seriously?
The Minitel system in France, including nationwide phone directory and dubious innovations such as Minitel Rose (porn in text mode at 1200bps, basically).
Postscript and the whole desktop publishing revolution.
NeXTStep (or whatever the CorRect CapItalizATION is), so far ahead of its time that it took years for it to reach its full potential in the form of iOS.
GeOS (already mentioned by someone else)
Mathematica. Just wow. But also forgotten precursors such as TK! Solver.
Lisp, Fortran, Algol, Pascal, Ada, Eiffel, Smalltalk and a whole bunch of under-utilized languages.
Much lower on the name recognition scale, Alpha Waves, arguably one of the earliest real 3D games, which also influenced the creation of Alone in the Dark.
-- Did you try Tao3D? http://tao3d.sourceforge.net
Lisp 1.5 was the first widely distributed Lisp sytem (and it includied an interpreter AND a compiler). Many people have completely forgotten about it, but among its contributions were to pioneer dynamic programming languages (as are ruby, python, etc, etc) AND garbage collecting. And many other things. It was staggeringly innovative.
Not so much software as software tool, but if you're looking for the most influential and important thing in software, the clipboard probably wins hands down. Without it, most of the web would not exist, for one thing.
It also has the distinction of being invisible - out doesn't even feed back. Nothing comes close to it for ubiquitous power and influence.
"And the meaning of words; when they cease to function; when will it start worrying you?"
Understanding what made such software good back then might help you produce better software now. Who knows, maybe studying various ancient, obscure GUIs could have averted disasters like Windows 8, Gnome 3, and Unity.
Circumcision is child abuse.
You have not gotten the straight answer yet, but the real world economic answer is nothing changes very much, so a well educated individual knows how the newest PR news release about a "new" idea will turn out, given how the exact same idea turned out three times in 1970, five times in the 80s, and twice in the 90s. Even if the outcome is different for tech or non-tech reasons, the challenges, successes, roadblocks, etc, will be the same this time around as the last ten times.
Ah so you're saying that this new language will be a silver bullet which will eliminate programming as a profession because business people will write their own programs, you say? Hmm I wonder if thats ever been claimed before. Naah. If it were you'd have language names like "Business Oriented Language" and stuff.
I've got a totally new idea! We can project manage programming by programmer-hour because the product of programmer times hour is always a constant a given problem. You'd think someone in 1960's mainframe development would have had the same idea, but people back then were pretty stupid so I'm sure my new idea is ... new.
Hey guys, I got a new one. We could assign a noob to work with an old timer and see if the noob learns anything by osmosis. This has never been tried in all of human history so I'm gonna patent it and trademark it and I'm gonna be rich and buy a private island.
To be honest its not as technical as you'd like to think... its kinda like studying ancient fashion to predict what future fashion will look like, seeing as womens fashion is kinda cyclical. So, you're saying after skirts go down, they tend to go up, and vice versa? Holy cow batman! Especially when dealing with trendy style high fashion like UI design or PR.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
That and Norton Utilities made DOS useable.
But XTP's superlative use of the screen area and hotkeys was stunningly competent.
Once in an interview, Dan Bricklin (IIRC) said that in the early days they personally demonstrated VisiCalc at trade show booths. Sometimes accountants would actually cry, as they realized how many hours they'd spent adding up rows and columns of numbers, and how quickly they'd be able to do it with this new piece of software.
You know you've got a killer app when a demo causes members of your target market to realize how much your software is going to change their lives, and they burst into tears.
Q: What does the "B." in Benoit B. Mandelbrot stand for? A: Benoit B. Mandelbrot
Not only is TeX practically the first open source program, it is still in use (rewritten, tho), along with all the tools it spawned.
_why_ modern tools aren't all in XML with back end databases
...because vestiges of sanity inexplicably remain?
Lightwave and the rest of the Video Toaster studio software was influential in that for the first time, you could have a quality video studio stuffed in a single computer. A lot of UHF and independent stations used 'em.
Most valuable program(s) ever. From day one, and still today. Hands down. Best positioned language in terms of "to-the-metal", changes from tool to uber-tool in the hands of anyone who masters assembler and arrives at learning C with that under their belt, can create extremely fast executables if the CPU is really taken into account, or can be extremely simple to implement if a CPU is treated simplistically -- yet your code will still work fine, if a bit more slowly. Made portability something achievable instead of just desired. C is so well positioned that implementing the language's constructs on top of [some random] CPU is a relatively simple exercise, and then you have immediate access to oodles of goodness.
Also the source of a lot of whining and bad programming from poor programmers. But hey, a fine carpentry set doesn't make you a great carpenter, either.
Also a nod out to standard libraries -- also a boon to portability and more.
C++, oC, C#... also worthy of nods, but C is the king.
I've fallen off your lawn, and I can't get up.
... I'll nominate the punch cards as the most solid stack ever
Muchas Gracias, Señor Edward Snowden !
Variation Simulation Analysis Software.
It's a technique for simulating variations in product assemblies. Usually mechanical, but could be of other natures, as well. You model the assembly and it's manufacturing variations, and then "build" some quantity of parts. One can determine how many assemblies will likely meet specifications, the major contributors to out-of-spec assemblies, etc. etc.
The technique was developed during WWII at Willow Run Labs, where it was implemented by the classic "banks of women operating calculators", and is one of the reasons we were able to crank-out all those airplanes that actually worked.
By the 70's it was implemented in an academic setting on mainframes.
A company I worked for obtained rights to VSAS and we ported it to the IBM PC. I did the initial port to Watcom Fortran (there's another one for you!), and then designed a domain-specific language (VSL) and implemented a compiler in C and interpreter in Fortran, so that mechanical engineers didn't have to write their models in Fortran any more. The Fortran models were bulky - with line after line of function calls with zillions of parameters, passing separate X,Y,Z values in the calls. I'd imagine the engineers wore-out the parenthesis keys on their keyboard pretty fast. VSL, on the other hand, had data types for points, lines, vectors, planes, etc. Using an interpreter didn't slow things down, because most of the time was spent in geometric library routines, which were in carefully-optimized Fortran.
I insisted on their hiring a mathematician, and between the two of us, we tweaked it to run faster on the PC than it did on the mainframe. (Engineering professors don't write code that is either fast or mathematically-correct, it turned out...)
And that's when it's use took off. The company founder started as a manufacturer's rep for some Finite Element Modelliing software, so had lots of contacts in the auto industry. (And the company was located near Detroit.) They both sold the software and did also did in-house projects for the auto companies until they ramped-up their own engineers. This allowed the auto makers, for example, to start treating windshields as structural elements (because the hole for the windshield could be manufacturered to precise tolerances), and allowed them to eliminate costly alignment operations, such as when fitting hoods.
It's used by every auto and aircraft manufacturer, every hard disk manufacturer, etc. etc. etc. Basically just about any complex mechanical product you touch was touched by VSAS during design.
I'd imagine you couldn't build an iPhone at an affordable cost or with the quality level of an iPhone without VSAS (or it's equivalent). You wouldn't be able to buy a terabyte hard drive for less than $100.
There's more info on it here:
http://www.plm.automation.siemens.com/en_us/products/tecnomatix/quality_mgmt/variation_analyst/
(The company was acquired by Siemens many years ago.)
Maybe not quite what this post was looking for, which I think was more consumer PC software. But it runs on a PC and has from the beginning of PCs, and has had a large but mostly-invisible influence on just about every tech product we use every day.
A 30-year run is nothing to sniff at, either.
"CS is not about software development, it is a branch of mathematics."
That depends entirely on what college or university you are attending.
Computer science has a meaning for more than just students, and that meaning lies primarily within the domain of mathematics. What gets taught in the name of computer science depends on the institution doing the teaching.