For questions about the history of programming and computing.

learn more… | top users | synonyms

4
votes
1answer
63 views

How did version control work on microcomputers of the day in the 80s and 90s?

I'm curious to know how programmer teams typically managed their software development back in the 80s and early 90s. Was all the source code simply stored on one machine which everyone worked on, or ...
72
votes
9answers
11k views

Why did BASIC use line numbers?

Why did old BASICs (and maybe other languages) use line numbers as part of the source code? I mean, what problems did it (try to) solve?
1
vote
3answers
150 views

What was the first language that allowed a class to contain a member of it's own type

So, I had to create a class that had a member of it's own type. I looked into why this was possible, which is fascinating. Reading the answer, I find that a lot of work had to go into making this ...
2
votes
0answers
87 views

What was the first mechanical Turing-complete machine ever constructed?

We know that Charles Babbage designed the first Turing-complete mechanical machine - the Analytical Engine - in the 1800s, but it was never actually built (not yet anyway). In recent history, at ...
16
votes
1answer
346 views

What is the origin of the C Preprocessor?

The C preprocessor is attached to C, but it has a completely different syntax from the main language: syntactically significant whitespace (end of line terminates a statement, gap after the macro ...
8
votes
1answer
544 views

Origin of common list-processing function names

Some higher-order functions for operating on lists or arrays have been repeatedly adopted or reinvented. The functions map, fold[l|r], and filter are found together in several programming ...
29
votes
3answers
883 views

Development process used for the code on Apollo 11 missions?

The Apollo missions had technology no more complicated than a pocket calculator. From link here, there's an information about Apollo Guidance Computer (AGC) The on-board Apollo Guidance Computer ...
28
votes
11answers
3k views

Is software innovation still primarily North American and European? Why, and for how much longer? [closed]

Since this site is read by a global audience of programmers, I want to know if people generally agree that the vast majority of software innovation - languages, OS, tools, methodologies, books, etc. - ...
1
vote
1answer
101 views

What was the reason behind using quotes in Go's import statements?

The usage of quotes in Go's import statement strikes me as unnecessary. Typical Go import statements look like: import "foo/bar" import other_name "foo/bar" import ( "foo/bar" x "foo/baz/bar" ...
3
votes
1answer
154 views

What is the origin of “Program to an interface, not an implementation”? [closed]

What is the origin of "Program to an interface, not an implementation" -- does it originate from Design Patterns, 1994, by GoF, or from a computer scientist or from some concepts in computer science ...
4
votes
2answers
341 views

How and when did it happen that, a type is an interface?

I came from a highly functional and procedural background in programming, and never knew that a type is the same as an interface. As in the Design Patterns book by GoF, it says: A type is a name ...
-1
votes
1answer
120 views

Naming choice in Java — clone vs. copy [closed]

We have "copy constructor" but "clone method". This asymmetry in naming puzzles me -- does anyone know for what reason the method was not named "copy" (and interface per analogy "Copyable")? This ...
47
votes
3answers
3k views

What is the exact ingenuity of Unix pipe

I have heard the story of how Douglas Mcllroy came up with the concept and how Ken Thompson implemented it in one night. As far as I understand, pipe is a system call which shares a piece of memory ...
-2
votes
4answers
201 views

Which programming language (or machine language) first used line numbers?

Fortran II (1958) was recorded using line numbers, from what I can tell. For example, the first five columns of this IBM punch card are titled "statement number". Punch card from a typical Fortran ...
33
votes
2answers
2k views

First ATMs programming language

First ATMs performed tasks like a cash dispenser, they were offline machines which worked with punch cards impregnated with Carbon and a 6-digit PIN code. Maximum withdrawal with a card was 10 pounds ...
276
votes
4answers
101k views

What software programming languages were used by the Soviet Union's space program?

I got interested in the Soviet space program and was interested to discover that the software on the Buran spacecraft circa 1988 was written in Prolog. Does anyone know what languages might have ...
2
votes
2answers
131 views

Did labelled loops pre-date for loops?

Was the first implementation of looping control flow effectively the goto (or something like a labelled JMP in assembler) or was there another syntactic construction? for (für) was introduced in ...
29
votes
10answers
7k views

Why is Math.Sqrt() a static function?

In a discussion about static and instance methods, I always think, that Sqrt() should be a instance method of number types instead of a static method. Why is that? It obviously works on a value. // ...
41
votes
13answers
5k views

Why does the assignment operator assign to the left-hand side?

I began teaching a friend programming just recently (we're using Python), and when we began discussing variable creation and the assignment operator, she asked why the value on the right is assigned ...
61
votes
6answers
8k views

Why is the minus sign, '-', generally not overloaded in the same way as the plus sign?

The plus sign + is used for addition and for string concatenation, but its companion: the minus sign, -, is generally not seen for trimming of strings or some other case other than subtraction. What ...
3
votes
2answers
175 views

What was the first language to support convenient user-land recursion?

What was the first programming language to support convenient user-land recursion? I know that early languages did not support it, but can find no specifics on when it was introduced.
8
votes
5answers
550 views

Why does “charset” really mean “encoding” in common usage?

Something that has long confused me is that so much software uses the terms "charset" and "encoding" as synonyms. When people refer to a unicode "encoding", they always mean a ruleset for ...
1
vote
1answer
143 views

What was the first programming language with Enumerations?

I'm reading about Swift enum's in the Swift Programming Language guide and the text was comparing the differences between Swift's enum and C's enum. This made me curious as to where enumerations came ...
29
votes
3answers
2k views

Why does the boolean type in C++ support ++ but not --?

Why does the operator -- not exist for bool whereas it does for operator ++? I tried in C++, and I do not know if my question apply to another language. I will glad to know also. I know, I can use ...
1
vote
0answers
64 views

Where did the tradition of new releases on Christmas Day start? [closed]

Perl 6 is being released on Christmas Day this year. I'm familiar with Ruby having a history of releases on Christmas Day, going back as far as Ruby 1.0 in 1996 if not further. However, a quick scan ...
1
vote
1answer
354 views

History of VanillaJS

When did the trend of saying VanillaJS to refer to pure JavaScript come into widespread. Is the website Vanilla-js the discoverer of the term VanillaJS or was this term used even before the launch of ...
22
votes
5answers
3k views

Why do build tools use a scripting language different than underlying programming language?

I've recently been using some build tools for a Nodejs project at work when I realized that most languages' main build tool/system use a different language than the underlying programming language ...
7
votes
1answer
515 views

static globals and anonymous namespaces in C++

Why did C++ make any distinction between static globals (internal linkage) and symbols in an unnamed namespace (external linkage, but no way to refer to it from outside anyway), when introducing the ...
4
votes
2answers
132 views

Why does ISO 8859-1 contain letter-free diacritics?

ISO 8859-1 contains a few letter-free diacritics: The diaeresis (¨), the acute accent (´), the cedilla (¸) and the macron (¯).¹ Why were they included? As far as I know (please correct me if I am ...
36
votes
2answers
3k views

Where does the term “Red/Black Tree” come from?

A Red/Black Tree is one way to implement a balanced binary search tree. The principles behind how it works make sense to me, but the chosen colors don't. Why red and black, as opposed to any other ...
20
votes
1answer
1k views

Why do arrays in .Net have Length but other collection types have Count? [closed]

In C# for example, arrays have Length property. But other collection types like lists, etc. have Count property. Is there a reason why these two are different? If so I would like to know.
15
votes
2answers
4k views

Who was the first programmer?

Is there some consensus among historians on who was the first programmer ever? If so, who was it and what were they programming on? I find it more interesting to know more about the pioneers of ...
2
votes
3answers
588 views

Why Session has implemented this way in Asp.net

I'm not a Asp.net/C# developer myself but recently had to slightly refactor a Asp.net/C# project and I had to use Session at some point. When working with the session, regardless of the data type that ...
16
votes
1answer
521 views

In what programming language did the use of the percent sign (%) to mean modulo/remainder originate?

In what programming language did the use of the percent sign (%) to mean modulo/remainder originate? This previous post1 explains that the symbol % was likely chosen because it includes a slash, ...
483
votes
2answers
173k views

What is the Mars Curiosity Rover's software built in?

The Mars Curiosity rover has landed successfully, and one of the promo videos "7 minutes of terror" brags about there being 500,000 lines of code. It's a complicated problem, no doubt. But that is a ...
4
votes
1answer
251 views

Genesis of C++ temporary object lifetime extension

I'm revising a proposal to expand the C++ feature where "temporary" objects cease to be temporary when attached to a name by binding a reference. Here's a sample of the classic behavior (not the ...
74
votes
5answers
19k views

Why doesn't Java 8 include immutable collections?

The Java team has done a ton of great work removing barriers to functional programming in Java 8. In particular, the changes to the java.util Collections do a great job of chaining transformations ...
5
votes
4answers
349 views

When did Undefined Behavior in C jump the causality barrier

Some hyper-modern C compilers will infer that if a program will invoke Undefined Behavior when given certain inputs, such inputs will never be received. Consequently, any code which would be ...
7
votes
1answer
344 views

When was Java's 'qualified this' introduced?

I've only recently learned about the qualified this, and was curious as to when was it introduced in the language, as I've been using Java here and there for around 18 years. Oracle keeps only the ...
7
votes
3answers
367 views

Origin of “a method should return a value or have side-effects, but not both”

I read once that a method should either have a return value (and be referentially transparent), or have side-effect(s), but not both. I cannot find any references to this rule, but want to learn more ...
19
votes
7answers
3k views

Why is filesystem preferred for logs instead of RDBMS?

Question should be clear from its title. For example Apache saves its access and error logs in files instead of RDBMS no matter on how large or small scale it is being utilized. For RDMS we just have ...
0
votes
0answers
88 views

What flavor of MUMPS does InterSystems Caché descend from?

I've been reading through an old-ish book on MUMPS ("M Programming", by Walters) to try and get some historical perspective on the language. The book was published in 1997, and provides the following ...
4
votes
4answers
383 views

Why is code sometimes called “listings”?

When reading Programmers at Work (by Susan Lammers), they often refer to code as "listings". Why is that?
9
votes
1answer
161 views

Why does Apache have two separate tools for build and dependency management?

Apache has two separate tools: Apache Maven Apache Ant + Apache Ivy They seem to both fill the same niche. I have two questions: What are the highlights of the main differences between the two ...
1
vote
1answer
191 views

What is the name/origin for this C code indentation style?

Look at the formatting of the variable declarations. I haven't encountered this indentation style in the past, but lately I stumbled upon two different code examples which use this style. Where does ...
28
votes
5answers
2k views

When did the standard for packaging Linux source code become .tar.gz?

When browsing open-source projects that are primarily developed for Linux systems and downloading the latest packages, the source code is always stored in a .tar.gz or .tar.bz2 file. Is there any ...
0
votes
2answers
289 views

Why can't I use an operator like plus sign to concatenate strings? [closed]

Why in Objective-C we should be typing explicit references to methods like stringByAppendingString to concatenate strings, when in some other languages we can use operators for that? For example, ...
62
votes
9answers
12k views

How were the first compilers made?

I always wonder this, and perhaps I need a good history lesson on programming languages. But since most compilers nowadays are made in C, how were the very first compilers made (AKA before C) or were ...
17
votes
6answers
3k views

What came first, the compiler, or the source?

I'm curious about the birth of the compiler. How did programming begin? Did people first build hardware that recognized a certain set of commands, or did people define a language and then build ...
369
votes
9answers
102k views

Why is 80 characters the 'standard' limit for code width?

Why is 80 characters the "standard" limit for code width? Why 80 and not 79, 81 or 100? What is the origin of this particular value?