Fifty Years of Software Development

I believe Borland Delphi had PVCS integration in the IDE when it came out in 1995.
And maybe Turbo Pascal before that; I’m not sure as I wasn’t using it, but Borland Paradox for Windows came with a 3d party source control system in the Developers Toolkit in early 90s…
If those are not mainstream?!

Do languages ever die out?

No, they just fade away. Take Icon, for example. It’s cute and had some nice features (like text processing and generators). It’s on the list, but it’s all but unused. You can go find it if you want, but most of the really good or novel ideas are now in newer, more popular languages.

Do languages ever die out? Are there languages from the early days that are no longer in existance and should be on the chart?

I’m amused that scripting languages are included, but 4GL, database reporting languages (RP*) and are not. Also, there are no calculator style programming languages. I recall programming a HP calculator that was the size of a desk in the mid-seventies. I guess this is just for general purpose languages.

I agree with Mark Dominus comments, but what are we mere developers to do.

Nothing. We just do what we do now - we work with what we have, and hope something better comes along in the meantime.

Mark Dominus is a saint. I am so happy somebody else in the universe finally figured out the problem with “design patterns” - they’re stop gap solutions to a broader problem - the languages we’re using today are woefully inadequate for the tasks we’re using them for.

I love the Fowler, et al, crowd, but they’re directing their energies towards the wrong audience. They should be pressuring programming language providers to integrate design patterns right into the language, just as Mark Dominus mentioned.

Jeff -

Your reflections on historical use of source code control are just wrong.

My personal experience was that we were using it at a small, mixed development shop in 1989 - full SCCS/PVCS integration into our scripted build process.

Others have commented on the maturity of text control systems in Unix.

I see this again and again w/PC developers. Just plain ignorance of the past.

I think Jeff’s right about the widespread use of source control. Remember, even if every mainframe programmer alive used it until 1980, there were still perhaps 10 times that many Visual Basic programmers just about a decade later. My current shop implemented source control a few months after I arrived in 1997, in part because after I had fixed a particular bug, had the fix overwritten accidentally, and then fixed it for the second time, I drew a line in the sand and said, “We have to stop writing code for a little while and get past the Sneaker-net era.” Visual SourceSafe has not been perfect, but it has been far, far better than nothing at all.

We used to use PCVS(?) which was a DOS based source control system way before 1999. But the real reason that no one really used source control before then was that modern networking really didn’t come along until about that time. All of the source control tools available only ran under DOS. And they were pathetic. You didn’t have good networking capabilities in products prior to Win95 so it was simply easier to just make backup copies of you source rather than try and share some common code base across a network that took forever to try and setup. People really didn’t trust networks at that time.

The technology in question should probably be “revision control” in general, not CVS.

I used SCCS in college back in the mid 80’s (on cooperative projects). Some kind of revision control was mandated on every job I’ve worked since I graduated in '89. It sure seems to me that it was “in widespread use” since at least then.

CVS started life as a bunch of scripts built on RCS, which has been around since the early 80’s. However, SCCS was created in '72. So the start date should be at least '72 for revision control. That would give a date of '87 or later for general acceptance by your 15 year rule. That jibes pretty well with my experience.

I had missed the part about Mark Dominus, thanks posters for pointing it out.

Is anyone doing something about this recommendation of enhancing a languages with partterns being built-in? Are there good working examples of this? (beside macros to hide the tedious code…)

I hope you’re aware of that OO is a bit older than that book from 1994. About 30 years older actually…

Have to agree with a lot of the posters here re. the use of SCC pre-1999 – our company (Cimlinc) was using RCS on the Unix platform starting 1988-ish. To think about how we had to handle our source code prior to that time makes me shudder.

I used “SourceSafe” before it was owned by Microsoft in the early 90s. We used it for DOS-based application source control. I believe the company that Microsoft bought Source Safe from was called “One Tree Software” at the time.

Today’s version essentially looks the same with a Windows UI.

Just another data point: Microsoft was using source code control internally when I started there in 1989. (A proprietary, internal use only, tool, but that’s another story.) Before that I worked at Control Data where source control was a whiteboard - you wrote your name by the files you were working on.

Somebody asked “What new languages have to offer that older languages don’t have?”… well, the answer is quite complex, but basically I want to say “a lot”. New languages like Ruby have a nice mix between old and brand new ideas that probably will change the way we code forever. I just challenge those who think that “these languages are just scripting toys”, to go ahead and dive in one of them, especially Ruby (and Ruby on Rails)… you’ll really surprise on what you find!

“I believe that source control was not widely prevalent until 1999.”

Uh, no. RCS (and its ancestor SCCS) has been around since the 1970s:

Anybody doing development anywhere near a Unix box was using SCCS or, (after 1980 or so) RCS. There were many home-grown variants of it (DSEE, SourceSafe, MPW Projector). In nearly 30 years of professional software development I’ve only witnessed one shop that didn’t use it (and I fixed that in a hurry when I joined…)

Interesting article – though you might want to rephrase “current thinking in software development” as “dominant doctrine in recommendations for software managers working on consumer / PC projects.” The latter involves an entirely different generation of coders, from what I understand: people who started their careers on (relatively) inexpensive personal computers, perhaps even as hobbyists. They generally lacked awareness of and/or experience with the software tools (versioning filesystems, source control systems, GUI debuggers, “real” programming languages and libraries) common to professionals and academics working on large mainframes and expensive workstations, and also knew little about formal software development methodology (which was arguably a mixed blessing; a few infamous projects failed perhaps because of the old formal style of management).

I can’t imagine that they had a strong desire to talk to old-school Lisp hackers or defense contractor programmers, for example, or even that they had much awareness that such people existed. Why else would Bill Gates have picked BASIC as a language to implement on the Altair? It’s a lot harder to parse than Lisp or Forth, and memory for the parser was presumably at a premium, so it was either out of ignorance or because he wanted to target the hobbyist market.

I have RCS files dated 1984. Professional use of some method
for controlling source versions have been in place for a long
time. The new part is using those tools for collaboration
between institutions.

I remember having to explain source control to a team of consultants at a telecommunications company in 2000. They’d never heard of it before.

Source/Version Control has been around for a long time, but it was mostly in academia and large business. The dividing line is really at hobbyists, small, and medium sized business. While those tools would have been readily available and known to anyone who obtained a formal degree in Computer Science or worked for a large software vendor/defense contractor like IBM or Boeing; they would have been completely unknown to the average person in the 1980-1990s. The average computer users in the 1980s and 1990s were not mainframe programmers and by that point academia had begun to shift to Pascal, C, C++ and ADA. Whether or not they were available before then is really rather moot due to the gradual shift of who the “average” computer user was. So his original argument about the “popularization” of RCS software is still fairly accurate since it was really tied to the proliferation of the Home PC market. As low-cost home computers which were more powerful and readily available for personal businesses so did the market for small and medium size computer businesses.