Stack Exchange Network

Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange

Questions tagged [history]

For questions about the history of programming and computing.

0
votes
1answer
42 views

What was the distinction between module interface files and module implementation files before Oberon?

I'm reading the book "The Go Programming Language" and this sentence in the preface section "The Origins of Go" has me puzzled: One major stream of influence comes from languages by Niklaus Wirth, ...
0
votes
1answer
87 views

What is the original reason JSON used `null` and not `undefined` to represent missing values?

In Javascript, there seems to be or have been an idea that undefined represents a missing primitive OR object value, while null represents just a missing object value. See, for example, this section ...
1
vote
0answers
62 views

How and why did so many different systems of Regex develop differently? [closed]

In Notepad++ * stands for an arbitrary string and . for one arbitrary character (optionally including newlines). In the Linux console * stands for an arbitrary string and ? for one arbitrary character....
-3
votes
2answers
162 views

Why was the caret used for exponentiation in BASIC?

As far as I have been able to find, the first language to use ^ for exponentiation was BASIC, in 1964. Earlier languages, such as Fortran, used other symbols such as ** for exponentiation (although in ...
1
vote
2answers
489 views

Who did async/await first?

Python added the async/await constructs in 3.5 in 2015. The Javascript community made steps towards it for a bazzillion years and finally added a very similar implementation to the draft in ES8 ...
6
votes
2answers
128 views

The programming paradigm behind beginFill/endFill

The only place I have really noticed this sort of programming style is with the graphics engines. Essentially like this: graphics.clear() graphics.setStrokeStyle(myStrokeWidth) graphics.beginStroke(...
45
votes
8answers
12k views

Before OOP, were data structure members left public?

When a data structure (for example, a queue) is implemented using an OOP language, some members of the data structure need to be private (for example, the number of items in the queue). A queue can ...
149
votes
7answers
24k views

Was the C programming language considered a low level language when it came out?

Currently C is considered a low level language, but back in the 70's was it considered low level? Was the term even in use then? Many popular higher level languages didn't exist until the mid 80's ...
4
votes
2answers
432 views

Was Java the first programming language to support inner classes?

The Wikipedia article on the subject of inner classes enumerates a number of programming languages that support nested class definitions. Historically speaking, which programming language first added ...
2
votes
2answers
271 views

Measuring File Churn Over Entire Project History in Git

I'm looking for a way to quantify where my team should spend it's time addressing technical debt in our codebase. One idea for this is to measure file churn (edits over time). I got the idea from this ...
0
votes
1answer
166 views

Why “typeof null == object” will stay in javascript?

I was reading a article about front-end development on Medium, when I stumbled upon an interesting piece of information, which is as follows: The type of a variable can be determined by using the ...
-1
votes
3answers
292 views

How did scientists “source control” hardware switches?

I'm putting together a talk of the history of best practices in software development and we're trying to put together a bit of a timeline of how good practice has evolved. This question talks about ...
9
votes
2answers
752 views

How did the custom of using square brackets for array elements develop?

Many programming language use the syntax a[i] to refer to the i'th element of an array, sequence, or vector a - specifically, C and Pascal (from the late 1960s and early 1970s) do this. On the other ...
2
votes
4answers
696 views

Why is the ampersand (&) a HTML Entity?

I understand the rationale behind why most of the HTML character Entities were created, but I don't understand the purpose behind the ampersand HTML entity. & contains more bits than a & ...
67
votes
10answers
8k views

How and why did modern web application frameworks evolve to decouple URL routes from the file system?

Compared to about 10 years ago I have noted a shift towards frameworks using the style of routing that decouples the URL path from the filesystem. This is typically accomplished with the help of a ...
0
votes
0answers
101 views

Why does GNU AS use different characters for single-line comments depending on the architecture?

The GNU Assembler as uses different characters depending on the architecture to specify single-line comments, such as # on x86, ; on 29k, or @ on ARM. Moreover, regardless of platform, C-style ...
2
votes
1answer
989 views

Does i in for loops means iteration or index? [duplicate]

Does i in for loops means iteration or index? How could I know the original meaning? Some programmers say it's iteration, some say it's index. It seems to me more of an index we start from --- we go ...
1
vote
1answer
197 views

Has the profession of programming gentrified over the years? [closed]

I have the vague sense that programming now is a more high-status job than it was in previous decades; that it used to be looked upon as more rote, manual work. The sense is that, while today fresh ...
17
votes
3answers
835 views

When & why did pointers start to become viewed as risky?

It seems that there has been a gradual shift in thinking about the use of pointers in programming languages such that it became generally accepted that pointers were considered risky (if not outright "...
3
votes
4answers
362 views

Why is it common for naming 2 axis dimensions as width and height instead of length and width?

Pretty much almost all frameworks I use in programming uses the height and width when identifying a flat dimension (without Z axis), but when in math, a 2 axis object is always measured by length and ...
4
votes
3answers
361 views

Why is there both logical operators <> and !=?

The are two operators '<>' and '!=' used in programming languages with the same general meaning. '<>' can be used in PHP, SQL, and Pascal. '!=' seems to be more commonly used. What is the ...
1
vote
4answers
350 views

Why do we prepend the “A” in “API”?

I'm writing some pedagogic material and when I started explaining what an API is I realized I didn't know why we say "application programming interface" instead of just "programming interface". Does ...
0
votes
0answers
145 views

Where did the lambda “it” construct originate from?

I'm learning Kotlin for work right now and I noticed the lambda it construct like: (arrayOf(1, 2, 3)).map { it * 2 } Where the parameter isn't explicitly named and it is implicitly given the it name....
-1
votes
1answer
489 views

Why are we using mutable collections but immutable strings

In three popular platforms I'm familar with(.NET, java, python) strings are immutable but lists are by default mutable. In all languages there is some functional support(linq, streams, list ...
1
vote
0answers
190 views

What programming language first used the 'Safe navigation operator' (?.)?

What programming language first used / invented the 'Safe navigation operator' (?.) ? Unfortunately, the Wikipedia page on this subject does not have information on it and googling yielded no readily ...
0
votes
2answers
609 views

How did software engineers test their code in 19xx? [closed]

There is a plethora of tools available for engineers to test their code these days. However, frameworks like Mocha.js came around only in 2011 with the ascent of NPM. So I wonder what were the ...
1
vote
2answers
101 views

Is artificial complexity commonplace the larger a company or community gets?

It always seemed normal to me that the larger a company gets the less amount of work is put by its employees into making the company profitable. There are obviously no clear marks for this, but I ...
2
votes
1answer
555 views

When was STL formally introduced into C++ standard?

I fail to infer the exact point of historical introduction of STL into actual C++ standard library from the wikipedia article: https://en.wikipedia.org/wiki/Standard_Template_Library It appears to me ...
0
votes
1answer
209 views

When were unsigned types first introduced in programming languages?

Recently I learned that standard Fortran does not support unsigned integers. Fortran is a language with a very long history. I suppose that when Fortran was first designed, there simply wasn't any ...
1
vote
1answer
229 views

What computers did the original Mac team use for development?

There's a passage in Walter Isaacson's biography of Steve Jobs where Jobs moves Andy Hertzfeld to the Mac team by unplugging his computer and driving it over to the Mac building. This got me ...
0
votes
1answer
61 views

What is the best way to store author of change and display changes of every column in temporal table in SQL Server?

I would like to store history of changes in table and also remember author of change. I created temporal table. This table contains ChangeAuthorId column which value I update every time when table is ...
97
votes
10answers
17k views

What kind of bugs do “goto” statements lead to? Are there any historically significant examples?

I understand that save for breaking out of loops nested in loops; the goto statement is evaded and reviled as a bug prone style of programming, to never be used. Alt Text: "Neal Stephenson thinks it'...
0
votes
1answer
167 views

What is the classic triangle problem as a testing idea (Gruenberger) taken from Richard Hamming (1972)

I try to read up on the history of testing and I found an entry that I am having problems researching online. Googeling for Triangle Problems results in geometry hits. I found an entry on a website. ...
7
votes
0answers
398 views

Origins of having both prefix increment(++i) and postfix increment( i++) in the C language [duplicate]

What is the historic reasoning behind having both prefix increment(++i) and postfix increment( i++) in the C language? (this question and this other stack overflow question aren't as complete as the ...
27
votes
1answer
2k views

Why was the caret used for XOR instead of exponentiation?

Not that it's really a problem for anyone that has faced this syntactic issue before, but I see a wild amount of confusion stemming from the use of the caret (^) as the XOR operation in lieu of the ...
59
votes
14answers
13k views

Why did SQL injection prevention mechanism evolve into the direction of using parameterized queries?

The way I see it, SQL injection attacks can be prevented by: Carefully screening, filtering, encoding input (before insertion into SQL) Using prepared statements / parameterized queries I suppose ...
28
votes
2answers
4k views

Code development process for Voyager mission?

Voyager 1 reached interstellar space in August 2012 and is the most distant human-made object in existence. Launched just shortly after its twin spacecraft, Voyager 2, in 1977, Voyager 1 explored the ...
15
votes
1answer
2k views

How did std::vector<bool> come about?

Today, virtually all C++ developers agree that std::vector<bool> was a mistake since it is deceivingly not a container, and its use cases largely overlap with those of std::bitset anyway. How ...
-3
votes
2answers
436 views

Why the most popular general purpose languages have adopted more complex syntax? [closed]

Maybe this question is not going to mean a lot if C and C++ are put into context, but I kept wondering why later languages such as Java and specially C# haven't been made simpler in regards of their ...
2
votes
1answer
137 views

When did PHP introduce type casting?

The PHP website tells you which versions each function is supported in and often the version a function was first introduced in, but it doesn't do the same for older language features. When was type ...
3
votes
1answer
182 views

Why do we use architecture-specific types in C

I think that the type names in Rust are much better than the ones in C. I'd choose f64 over double and u32 over unsigned int or uint_32t any day. Is there any reason (other than tradition) to use ...
17
votes
1answer
2k views

What is the history for naming constants in all uppercase?

What is the history behind the convention of naming constants in all uppercase? My intuition is that it started with the C preprocessor, where people developed a practice to name preprocessor macros ...
7
votes
4answers
1k views

What is the origin of counting from zero in programming languages?

This is a question which I have wondered (and been asked) about for a long time. In (most? all?) programming languages, an index begins at zero for an array, string, etc. I recognize it became ...
0
votes
0answers
154 views

History of the Maybe monad

A lot of languages feature something like Haskell's Maybe monad these days. I was wondering about its historic origin. Wikipedia has no problem explaining what a monad, or specifically the Maybe monad ...
3
votes
3answers
1k views

Why does C# not allow scope-local using Directive?

One thing I do not get with C#'s using Directive is why I can only "use" a namespace at file level, and not within any arbitrary block scope. (using namespace x; of C++ does allow this and certainly ...
21
votes
1answer
5k views

Where did “exit(-1)” come from?

I see in a lot of legacy software and bad tutorials on the Internet that recommend using exit(-1), return -1 or similar to represent "abnormal termination". The problem is, in POSIX at least, -1 has ...
17
votes
1answer
5k views

Why double colon instead of dot?

It is rumoured that early C++ implementations have had dot operator for namespace access. There is an opinion that the dot is more convenient that the modern double colon operator. What was the ...
0
votes
1answer
298 views

Programs = Data Structures + Algorithms [closed]

Niklaus Wirth wrote a book that popularised the informal equation used as a title: “Data Structures + Algorithms = Programs”. I like to write this equation backwards as in the title of the question, ...
1
vote
1answer
160 views

What was the first mass-produced CPU to have an instruction for multiplication?

The CPU I am most familiar with is the Z80 which was first released in 1976. The most complicated mathematical single instructions it has are integer ADD, SUB and closely related instructions, such as ...
31
votes
7answers
2k 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 ...