157 votes

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

This depends on your definition of high-level and low-level language. When C was developed, anything that was higher-level than assembly was considered a high-level language. That is a low bar to ...
amon's user avatar
  • 134k
148 votes
Accepted

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

The problem is that #1 requires you effectively parse and interpret the entirety of the SQL variant you're working against so you know if it is doing something it shouldn't. And keep that code up to ...
Telastyn's user avatar
  • 109k
148 votes
Accepted

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

To answer the historical aspects of the question: The design philosophy is explained in The C Programming Language written by Brian Kernighan and C designer Dennis Ritchie, the "K&R" you may have ...
gatkin's user avatar
  • 1,369
140 votes

Before OOP, were data structure members left public?

OOP did not invent encapsulation and is not synonymous with encapsulation. Many OOP languages do not have C++/Java style access modifiers. Many non-OOP languages have various techniques available to ...
amon's user avatar
  • 134k
79 votes

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

Because option 1 is not a solution. Screening and filtering means rejecting or removing invalid input. But any input might be valid. For example apostrophe is a valid character in the name "O'Malley". ...
JacquesB's user avatar
  • 59.5k
72 votes

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

In its most basic form, a website serves static files. Mapping the URL path to a file path is the most obvious choice; essentially, it's a read-only FTP site. Then people wanted to change the content ...
Ewan's user avatar
  • 75.6k
71 votes
Accepted

Why was the caret used for XOR instead of exponentiation?

Although there were older precursors, the influential French mathematician Rene Descartes is usually credited for introducing superscripted exponents (ab) into mathematical writing, in his work ...
njuffa's user avatar
  • 1,306
69 votes

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

It isn't that the goto is bad by itself. (After all, every jump instruction in a computer is a goto.) The problem is that there is a human style of programming that pre-dates structured programming, ...
Mike Dunlavey's user avatar
67 votes

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

Why is goto dangerous? goto doesn't cause instability by itself. Despite about 100,000 gotos, the Linux kernel is still a model of stability. goto by itself should not cause security vulnerabilities. ...
Christophe's user avatar
  • 77.2k
65 votes
Accepted

Who did async/await first?

Haskell (2012) There is an async package for Haskell (2012) by Simon Marlow. In case you don't know, Simon Marlow is a lead developer of Haskell. Notes: Simon Marlow joined Microsoft research in 1998 ...
Theraot's user avatar
  • 9,131
60 votes

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

If you're trying to do string processing, then you're not really generating an SQL query. You're generating a string that can produce an SQL query. There's a level of indirection that opens up a lot ...
Joshua Taylor's user avatar
52 votes

Why did BASIC use line numbers?

On early microcomputers editing was line based. You couldn't just move freely around in the source code and edit. You had a single line at the bottom of the screen where you could type commands and ...
JacquesB's user avatar
  • 59.5k
50 votes

Why is int in C in practice at least a 32 bit type today, despite it being developed on/for the PDP-11, a 16 bit machine?

The C standard doesn't specify 32 bits for int, it specifies "at least" 16. https://stackoverflow.com/questions/589575/what-does-the-c-standard-state-the-size-of-int-long-type-to-be In ...
pjc50's user avatar
  • 13.4k
46 votes

Why did BASIC use line numbers?

If you are thinking of BASIC dialects of the 8-bit home microcomputers of 80's, then those computers did not have text editors (unless you bought some word processor application). There was no way to ...
hyde's user avatar
  • 3,754
39 votes

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

You can look to a white paper by Roy Fielding on REpresentational State Transfer (REST) as to the when and the why. The first framework I was aware of that made the distinction between a resource and ...
Berin Loritsch's user avatar
38 votes

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

In the early 1970s, C was a dazzling breath of fresh air using modern constructs so effectively that the entire UNIX system could be rewritten from assembly language into C with negligible space or ...
bud wonsiewicz's user avatar
35 votes

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

The famous Dijkstra article was written at a time when some programming languages were actually capable of creating subroutines having multiple entry and exit points. In other words, you could ...
Robert Harvey's user avatar
31 votes

Before OOP, were data structure members left public?

First, being procedural versus object oriented has nothing to do with public vs private. Plenty of object oriented languages have no notion of access control. Secondly, in "C" - which most people ...
Lewis Pringle's user avatar
27 votes
Accepted

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

Firstly when microcomputers first come out, the software was mostly written on Unix or VMS systems and “cross compiler/assembled” onto the target system. These computer systems were multi user often ...
Ian's user avatar
  • 4,603
26 votes

Where did "exit(-1)" come from?

Almost all Unix computers use twos-complement for integers, and in twos-complement -1 is always "all bits 1" regardless of the word size. If you want the largest possible exit code regardless of the ...
Todd Knarr's user avatar
  • 1,019
24 votes
Accepted

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

The use of self can be traced back to Smalltalk, which is one of the eldest OO languages (the oldest according to python wiki) and influenced the python language designers: There is evidence of a ...
Christophe's user avatar
  • 77.2k
21 votes
Accepted

Code development process for Voyager mission?

(Edit: 12/7/2017, a year later, I found an authoritative answer) In an article on software development for NASA space missions. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf On page 31, ...
BenPen's user avatar
  • 514
21 votes

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

It helps that option #2 is generally considered a best practice because the database can cache the unparameterized version of the query. Parameterized queries predates the issue of SQL injection by ...
JasonB's user avatar
  • 339
21 votes

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

The rationale was the development of alternatives to pointers. Under the hood, any pointer/reference/etc is being implemented as an integer containing a memory address (aka pointer). When C came out,...
Cort Ammon's user avatar
21 votes

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

As I wrote elsewhere on this site when someone referred to the malloc/free memory management pattern as "low-level programming," Funny how the definition of "low-level" changes over time. When I ...
Mason Wheeler's user avatar
20 votes

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

Simply said: They did not. Your statement: Why did SQL Injection prevention mechanism evolve into the direction of using Parameterized Queries? is fundamentally flawed. Parameterized queries ...
TomTom's user avatar
  • 545
20 votes

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

I don't think it's an artefact of modern web application frameworks, it's mostly an artefact of dynamic page serving in general. In the old days there were mostly static web pages, where a software ...
Bergi's user avatar
  • 1,331
19 votes

What is the origin of the C Preprocessor?

From http://www.jslint.com/chistory.html ("The Development of the C Language" by Dennis M. Ritchie): Many other changes occurred around 1972-3, but the most important was the introduction of the ...
James Youngman's user avatar
18 votes

Why did BASIC use line numbers?

In the place and era when Basic was developed, the best available I/O device was a teletype. Editing a program was done by printing (on paper) a listing of the whole program, or the interesting part ...
ddyer's user avatar
  • 4,080

Only top scored, non community-wiki answers of a minimum length are eligible