Questions tagged [history]

For questions about the history of programming and computing.

Filter by
Sorted by
Tagged with
38
votes
4answers
11k views

Why can't `main` return a double or String rather than int or void?

In many languages such as C, C++, and Java, the main method/function has a return type of void or int, but not double or String. What might be the reasons behind that? I know a little bit that we ...
1067
votes
9answers
184k views

Where did the notion of “one return only” come from?

I often talk to programmers who say "Don't put multiple return statements in the same method." When I ask them to tell me the reasons why, all I get is "The coding standard says so." or "It's ...
11
votes
1answer
552 views

Why was “self” chosen over “this” for the name of the first parameter of python methods?

What was the rationale for choosing the name self instead of this when defining class methods in Python? Yes, of course, you can name it whatever you want - but the widely agreed-upon name for the ...
10
votes
3answers
6k views

Who are the 1st and 2nd parties?

So, this is pure curiosity. I've heard the term 3rd party, as in, "3rd party library" for quite a while. I wonder why we say 3rd and not 2nd (or 4th)? Who are the first and second parties and where ...
76
votes
3answers
74k views

Why is Python written in C and not in C++?

In Python's tutorial one can read that Python's original implementation is in C; On the other hand, the Python implementation, written in C, (...) I'm very curious why was Python written in C and ...
13
votes
2answers
2k views

Why did programming languages start using = for assignment?

In most early algorithms books, <- referred to assignment and = referred to comparison. But nowadays the only languages that don't use = for assignment are Pascal (:=) and toy languages like COOL. ...
0
votes
2answers
122 views

Stack trace: why printing 'most recent call first'? [closed]

C(++) and co, unlike Python, present stack traces in 'most recent call first' flavor. It may follow the stack frames organization in memory, yet I don't see that as a compelling reason. Two cons: ...
105
votes
11answers
18k 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'...
87
votes
7answers
58k views

What is the history of why bytes are eight bits?

What where the historical forces at work, the tradeoffs to make, in deciding to use groups of eight bits as the fundamental unit ? There were machines, once upon a time, using other word sizes, ...
30
votes
2answers
1k 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 ...
5
votes
4answers
627 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 ...
14
votes
2answers
3k 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 ...
53
votes
4answers
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 ...
1
vote
0answers
74 views

Build automation tools before make? [closed]

I realized that make was "only" invented in 1976 and seems to be one of the first build automation tools (at least it's probably the oldest still in use). But we already had a history of large ...
113
votes
4answers
73k views

IPv4 to IPv6. where is IPv5?

As all of us know that after IPv4 it came IPv6. How this transition happened? I just want to know was there any IPv5 also? or there is any other logic in naming this version of IP as IPv6?
0
votes
1answer
65 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
413 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 ...
5
votes
5answers
4k views

Why was Fortran never used to develop an Operating System?

I'm not a Fortran developer myself, but I'm about to use it a little and found myself wondering why, if it is much older than C but equally as performant as C, was it never used to develop any ...
1
vote
0answers
69 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....
4
votes
5answers
4k views

How did the “Rails can't Scale” meme start?

One meme about Rails is that Rails can't Scale. Is it known how this meme started? Was there a particular blog post that argued this is the case?
7
votes
3answers
941 views

How did people write end-user software in Smalltalk?

There is something I've never understood about Smalltalk, since reading about it in a book when I was a child, tho' I have never used it "in anger". I know that it is turtles-all-the-way-down, that ...
6
votes
2answers
137 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(...
48
votes
4answers
27k views

How could the first C++ compiler be written in C++?

Stroustrup claims that Cfront, the first C++ compiler, was written in C++ (Stroustrup FAQ). However, how is it even possible that the first C++ compiler be written in C++? The code that makes up the ...
545
votes
2answers
202k 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 ...
-2
votes
2answers
222 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 ...
20
votes
1answer
2k views

Why does the .NET framework have no concept of classes as first-class types?

It's well known to those familiar with the history that C# and the .NET framework started out as essentially "Delphi rewritten to feel like Java," architected by the chief developer behind Delphi, ...
44
votes
4answers
5k views

Why are structs and classes separate concepts in C#?

While programming in C#, I stumbled upon a strange language design decision that I just can't understand. So, C# (and the CLR) has two aggregate data types: struct (value-type, stored on the stack, ...
66
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 ...
44
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 ...
8
votes
4answers
2k 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 ...
152
votes
7answers
26k 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
444 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 ...
14
votes
3answers
2k views

Object-Oriented Programming: Why “Oriented”?

I am most of the way through my games programming degree. This is not a computer science degree, so a lot of the theory is eschewed in favour of practical portfolio building and what I see as JIT ...
29
votes
2answers
5k views

Why is the Unix linker called “ld”

Tried to search the web and couldn't find an answer. It might have something to do with "load", but that doesn't make much sense to me. Obviously, "ln" was already taken, but where does that "d" come ...
22
votes
1answer
6k views

What did they call Object-Oriented Programming before Alan Kay invented the term?

Alan Kay claims that "I made up the term "object-oriented", and I can tell you I did not have C++ in mind." What he had in mind, of course, was Smalltalk. But he did not make up object-oriented ...
2
votes
2answers
779 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 ...
18
votes
3answers
935 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 "...
0
votes
1answer
284 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 ...
69
votes
10answers
38k views

Why has C prevailed over Pascal? [closed]

My understanding is that in the 1980s, and perhaps in the 1990s too, Pascal and C were pretty much head-to-head as production languages. Is the ultimate demise of Pascal only due to Borland's neglect ...
24
votes
3answers
3k views

What's the origin of foo and bar? [duplicate]

Possible Duplicate: Using “Foo” and “Bar” in examples I know AT&T labs used them in their Unix days, but do they have even deeper histories?
5
votes
3answers
21k views

Sequel vs S-Q-L [duplicate]

Possible Duplicate: What's the history of the non-official pronunciation of SQL? I hear it every so often, "In sequel server...", and for some reason I cringe every time. Maybe it's because ...
32
votes
2answers
13k views

What's the history of the non-official pronunciation of SQL?

SQL is officially pronounced as /ˌɛskjuːˈɛl/ like "S-Q-L", as stated in Beaulieu, Alan (April 2009). Mary E. Treseler. ed. Learning SQL (2nd ed.). Sebastapol, CA, USA: O'Reilly. ISBN 978-0-596-...
42
votes
2answers
4k 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 ...
17
votes
4answers
2k views

Why didn't the C++ Standard adopt expression templates?

It's my understanding that expression templates as a technique were discovered significantly prior to the original C++ Standard in 1998. Why weren't they used to improve the performance of several ...
20
votes
3answers
6k views

When was source control invented?

I'm aware of many version control systems: CVS, SVN, TFS etc... I've googled for the very first "revision control/version control system" and seen various conflicting answers. When was source ...
-1
votes
3answers
297 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 ...
10
votes
2answers
1k 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 ...
24
votes
5answers
7k views

In what programming language did “let” first appear?

I was wondering about the origins of the "let" used in Lisp, Clojure, and Haskell. Does anyone know which language it appeared in first?
87
votes
10answers
20k views

Why is the sudden increase in number of Git submitters on Debian popcon graph in 2010-01?

Almost every article I've read 1 comparing Git and Mercurial it seems like Mercurial has a better command line UX with each command being limited to one idea only (unlike say git checkout). But at ...
3
votes
4answers
1k 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. &amp; contains more bits than a & ...