Tag Info

Hot answers tagged

437

You can thank the IBM punch card for this limit - it had 80 columns:


194

There's a book in Russian, German Noskin, First computers for space applications (Герман Носкин, Первые БЦВМ космического применения), ISBN 978-5-91918-093-7. The author himself participated in many early projects (mostly in hardware) and according to him analog hardware was in favor for a long time, he mentions that space rendezvous tasks didn't use ...


121

As oded mentioned, this common coding standard is a result of the IBM's 1928 80 column punched card format, since many coding standards date back to a time when programs were written on punch cards, one card/line at a time, and even the transition to wider screens didn't alter the fact that code gets harder to read the wider it becomes. From the wikipedia ...


112

Lisp. McCarthy originally specified Lisp in a paper to show that few simple notations are enough to build a turing complete language. He was surprised to find that Lisp could be implemented in machine code (Steve Russel did the first Lisp interpreter implementation). Lisp is widely used for AI programming.


106

Java was originally intended for embedded systems programming. From Wikipedia "Java was originally designed for interactive television". But it became hugely popular for Application and Web programming.


106

It has appeared earlier. In fact, this was the original model of getting access to computing resources back in the 1950s till well into the 1980s, when it was called "time sharing", then in the early 1990s it re-appeared under the name "Client/Server", then in the late 1990s again under the name "Thin Client", then "Application Service Provider". However, ...


97

As mouviciel and Emilio Garavaglia noted, the concept predates computing. However, the first instance of a software loop was the loop Ada Lovelace used to calculate Bernoulli numbers, as described in Note G of her translation of the Sketch of the Analytical Engine Invented by Charles Babbage, by L. F. Menabrea. The Analytical Engine's ability to loop is ...


88

Writing a compiler seems like a much harder problem than an interpreter. That might be true today, but I would argue that it was not the case some 60 years ago. A few reasons why: With an interpreter, you have to keep both it and the program in memory. In an age where 1kb of memory was a massive luxury, keeping the running memory footprint low was ...


81

Pretty much all mature languages are defined by a specification, and compilers or interpreters attempt to follow the standard defined in that specification. But very rarely do they succeed, unless the standard is defined by the author of the language. You can find the C++ 2003 standard, the C# 4 specification, the Java 7 specification and many more online. ...


81

Two of the major influences to C were the Algol family of languages (Algol 60 and Algol 68) and BCPL (from which C takes its name). BCPL was the first curly bracket programming language, and the curly brackets survived the syntactical changes and have become a common means of denoting program source code statements. In practice, on limited ...


81

The return value of main is to be passed to the operating system (any operating system) in a single, consistent way. The information that the operating system needs to know is "did the program terminate successfully, or was there an error?" If this is a string, the response becomes difficult in different languages. The internals of a Pascal string (first ...


76

Ha, I've done this. Many CPUs have simple, fixed-size instructions that are just a couple of bytes long. For a simple CPU like a Motorola 6800 for example, you could fit all of its instructions on a single sheet of paper. Each instruction would have a two-byte opcode associated with it, and arguments. You could hand-assemble a program by looking up each ...


73

There's certainly a noticeable trend towards functional programming, or at least certain aspects of it. Some of the popular languages that at some point adopted anonymous functions are C++ (C++11), PHP (PHP 5.3.0), C# (C# v2.0), Delphi (since 2009), Objective C (blocks) while Java 8 will bring support for lambdas to the language . And there are popular ...


72

Originally SQL language was called SEQUEL standing for Structured English Query Language with the emphasize on English, assuming it to be close in spelling to natural language. Now, spell these two statements as you'd spell English sentences: "From Employee table e Select column e.Name" "Select column e.Name From Employee table e" Second sounds ...


67

EDIT: Answer from Professor Guibas: from Leonidas Guibas guibas@cs.stanford.edu to of the "Red-Black" term mailed-by cs.stanford.edu hide details 16:16 (0 minutes ago) we had red and black pens for drawing the trees. I believe the term first appeared in "A dichromatic framework for balanced trees" from Leonidas J. Guibas and Robert ...


66

In a sense he was right. The original (pre-spec) versions of HTML, HTTP and URL were designed by amateurs (not standards people). And there are aspects of the respective designs ... and the subsequent (original) specs ... that are (to put it politely) not as good as they could have been. For example: HTML did not separate structure/content from ...


65

From everything I've seen, it's a combination of practical and historical reasons. The (mostly) historical reason is that CPython 1.0 was released in 1989. At that time, C was just recently standardized. C++ was almost unknown and decidedly non-portable, because almost nobody had a C++ compiler. Although C++ is much more widespread and easily available ...


65

Foo and bar come from the US Army WWII acronym FUBAR, "F-ed Up Beyond All Recognition". A whole family of these terms came into widespread use during the North African and Sicilian campaigns (1942-43). Rick Atkinson's excellent Day of Battle: The War in Sicily and Italy, 1943-1944 gives a list of these. For instance a JANFU is a "Joint Army Navy F Up", ...


62

According to Wikipedia, Internet Protocol Version 5 was used by the Internet Stream Protocol, an experimental streaming protocol. The second version (of Internet Stream Protocol), known variously as ST-II or ST2, distinguishes its own packets with an Internet Protocol version number 5, although it was never known as IPv5. The Internet Stream ...


62

0 is false because they’re both zero elements in common semirings. Even though they are distinct data types, it makes intuitive sense to convert between them because they belong to isomorphic algebraic structures. 0 is the identity for addition and zero for multiplication. This is true for integers and rationals, but not IEEE-754 floating-point numbers: ...


59

Because the math works. FALSE OR TRUE is TRUE, because 0 | 1 is 1. ... insert many other examples here. Traditionally, C programs have conditions like if (someFunctionReturningANumber()) rather than if (someFunctionReturningANumber() != 0) because the concept of zero being equivalent to false is well-understood.


57

20 years ago... 1991... Let's see. I was using SunOS and VAX VMS. We wrote code using text editors (vi or edit). I -- personally -- don't use debuggers and never did. Some folks used the adb debugger on SunOS. I actually used it a few times to recover a stack traceback from a core dump file. I have no idea what was available on VAX VMS. I used ...


55

Augusta Ada King, Countess of Lovelace (1815 - 1852) is credited by most as the first programmer. The first program was an algorithm to calculate Bernoulli numbers for Charles Babbage's Analytical Engine, and it appeared in her translation notes of Luigi Menabrea's memoir "Sketch of the Analytical Engine Invented by Charles Babbage", more specifically Note ...


54

Sun Microsystems had back then a bad habit of going through numerous naming changes for its products, and to use confusing name to start with in the first place. What's in a Name, or what does "Java" Mean? Originally the term "Java" was being used to describe indiscriminately: the language, the platform, and some others happened to refer to the JVM and ...


51

In the old days of C, there was no boolean type. People used the int for storing boolean data, and it worked mostly. Zero was false and everything else was true. This meant if you took an int flag = 0; and later did flag++ the value would be true. This would work no matter what the value of flag was (unless you did it a lot, it rolled over and you got ...


50

Per Wikipedia, the first formally released version of Java was 1.0.2, on Jan 23 1996. The first stable version was the JDK 1.0.2. is called Java 1 There's an archive of Java 1.0.2 and all related documentation here: JDK 1.0.2 API reference (book format) JDK 1.0.2 API reference (javadoc format) Java tutorial Java language specification ...


49

The package "gnuit" (GNU Interactive Tools, a file browser/viewer and process viewer) was called "git" in Debian up until 2009-09-09, while git was called "git-core". Therefore, a better graph to look at is: Which shows that the popularity did not rise dramatically (take the green line for the left part until they cross, then take the red line).


48

He actually elaborates on that very topic on the second page of the interview. It's not the technical shortcomings of the protocol he's lamenting, it's the vision of web browser designers. As he put it: You want it to be a mini-operating system, and the people who did the browser mistook it as an application. He gives some specific examples, like ...


46

Loops predate computing. You can find them in musical notation as early as Gregorian chant:



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