Skip to main content

Questions tagged [history]

For questions relating to past design decisions in programming language design.

Filter by
Sorted by
Tagged with
-2 votes
0 answers

Where can I find the machine code manual of a computer? [closed]

I learnt that the complete set of things that a computer can do, is the set of machine code instructions that it was built to carry out. (Q) Where can I find/access the machine code and/or assembly ...
user1514263's user avatar
6 votes
0 answers

What was the first language to use backslashes as escape characters in string literals?

I assume that C didn't originate the idea that, for example, the sequence \t inside a string literal should mean a tab character, that ...
Karl Knechtel's user avatar
11 votes
1 answer

What prevented fopen() from utilizing macros/flags but not fseek()?

In C, fopen() uses string literals such as "r" or "r+" or ...
CPlus's user avatar
  • 8,261
41 votes
7 answers

Why do (or don't) languages forbid unreachable code?

In Java, the following is a compile-time error, due to the unreachable statement: while(true) { break; System.out.println("unreachable"); } In ...
kaya3's user avatar
  • 19.1k
11 votes
0 answers

Where does Go's datetime formatting pattern come from? And why was it chosen?

Go's time formatting strings are uniquely idiosyncratic, and I have not seen any other language use this sort of system: It is based on the exact timestamp for ...
bigyihsuan's user avatar
  • 1,821
1 vote
2 answers

What is the difference between JS's map and Python's dictionary?

It seems that JS's map and Python's dictionary are equivalent. Is that correct? And if so, why they aren't called the same? Given that JS is newer, why wouldn't the map be called as dictionary as well?...
Ooker's user avatar
  • 175
14 votes
1 answer

What language was the first to treat null checks as smart casts to non-nullable types?

As far as I know, for many decades, in mainstream programming languages, there were only two options to handle null-like optionality: Pointer or reference types are always nullable (the famous "...
Eldritch Conundrum's user avatar
9 votes
2 answers

The history of "finally" in exception handling?

According to Wikipedia: The cleanup behavior now generally called "finally" was introduced in NIL (New Implementation of LISP) in the mid- to late-1970s as UNWIND-PROTECT. This was then ...
Stumpy Joe Pete's user avatar
5 votes
1 answer

Earliest implementation of pattern matching as a programming language feature

As far as I can tell pattern matching was first proposed as a language feature by Burstall (1969). However, it was a proposal for a feature in the language ISWIM, which itself never had a completed ...
Daphne Preston-Kendal's user avatar
8 votes
4 answers

Why are mixed declarations more challenging to implement than forcing all declarations to be at the top of a scope?

C89 had a requirement that all declarations must appear at the top of the scope before any statements: ...
CPlus's user avatar
  • 8,261
45 votes
6 answers

Why do programming languages use the asterisk * for multiplication?

Having had very little math(s) education I'm trying to bring myself up to speed for university, which currently involves teaching myself the times tables, where X ...
Hashim Aziz's user avatar
29 votes
1 answer

Why did JavaScript choose to include a void operator?

In JavaScript, there is an operator void that, given an expression, evaluates it but then ignores the result and evaluates to ...
mousetail's user avatar
  • 8,229
22 votes
3 answers

Why does Haskell use the bind operation instead of Kleisli composition?

In monads, Kleisli composition has the type infix oK: ('b -> 'c monad) -> ('a -> 'b monad) -> ('a -> 'c monad) and it satisfies the nice algebraic ...
Gergely's user avatar
  • 353
13 votes
0 answers

Why were OS/360 PL/I procedure calls so expensive?

In Guy Steele’s famous paper Debunking the “expensive procedure call” myth or, procedure call implementations considered harmful or, LAMBDA: The Ultimate GOTO, he describes the poor performance of ...
Alexis King's user avatar
  • 8,631
19 votes
3 answers

Why does MATLAB have left division/solve?

In MATLAB (and Octave), the \ (or mldivide) and \. operators are provided with the exact ...
Adám's user avatar
  • 3,138
12 votes
2 answers

Why did Objective-C remove `NSZone`?

NSZone is a type representing a memory allocation. NSObject implements the allocWithZone: ...
Bbrk24's user avatar
  • 8,937
6 votes
2 answers

Why does C++ require private methods to be declared with public ones?

C++ and Objective-C both require forward declaration of the methods and fields on a class. Objective-C lets you hide the existence of internal/private methods & fields altogether: ...
Bbrk24's user avatar
  • 8,937