News for hackers. Stuff that matters.
Re:On the history and justification of the C programming lan... by stcredzero on Thursday August 18, 2016 @01:33PM (#12314595)
This completely misses the key factor: (most) computers were not big or fast enough to run high level languages back then

From the 1st paragraph, that's what I thought they were going to talk about:

totally contradicts real reasons why C is designed the way it is. Even back then, there were better languages/OS's [1] that cheap hardware just hadn't caught up to. That cheap hardware's limitations, and them alone, drove the design decisions of BCPL, B, and then C.

But you're right, they're mostly talking about the compilers.

So anyone who could come up with a high(er) level language that would run on smaller machines was a winner.

I think that's what the Objective-C folks were thinking. I guess the author would lament that they chose C as the other partner.

Only C has survived into the modern era

Forth was around in those days. So was Smalltalk and Lisp. So maybe, "survived as more than a niche language?" (Forth and Smalltalk are really from the 70's. You could argue that only Lisp is from "those days.")

Re:On the history and justification of the C programming lan... by dboreham on Thursday August 18, 2016 @05:40PM (#12316513)
I suppose I was thinking of the set of languages commonly used back then for programming smaller computers. Smalltalk definitely wasn't aimed at small machines. I guess I just woudln't include Forth and Lisp in that set. Not sure exactly why to be honest. Forth certainly ran on very small machines. Both were considered "weird" where I came from, but I acknowledge that isn't a universally held view ;)
Re:On the history and justification of the C programming lan... by hga on Thursday August 18, 2016 @05:52PM (#12316577)
Lisp first ran on a vacuum tube computer, it was definitely "small", and it can certainly run fairly nicely on current "small" machines, although not "very small" like I recall of Forth.

Smalltalk's machines weren't all that large by today's standards, memory was 128kB, expandable to 512kB per Wikipedia, but expansions were addressable only by bank switching. 128kB is the same memory budget as the Unix PDP-11/45's for a single process.

Re:On the history and justification of the C programming lan... by stcredzero on Friday August 19, 2016 @03:01PM (#12322599)
I've seen emulations of those early Smalltalk machines running at simulated speeds. It was definitely "leisurely." A word to the wise tech innovator: It doesn't matter how amazing the technology is, wait until you can deliver good UX.
Re:On the history and justification of the C programming lan... by nickpsecurity on Thursday August 18, 2016 @08:11PM (#12317167)
Didn't know Smalltalk constraints were similar. Might have to add Smalltalk in the essay somehow. Which computer did LISP start on again?
Re:On the history and justification of the C programming lan... by dalke on Thursday August 18, 2016 @08:26PM (#12317214)
Re:On the history and justification of the C programming lan... by nickpsecurity on Thursday August 18, 2016 @11:05PM (#12317735)
Thanks! Wow. That's some tough hardware to work with. So, both Fortran and LISP developed on the same machine. Guess I just never thought about the LISP hardware given I started with the AI books & went straight to modern work. Had I done so, I'd have wondered less about whether it could work in constrained environments haha.
Re:On the history and justification of the C programming lan... by dalke on Friday August 19, 2016 @07:11AM (#12319226)
You view things perhaps too much through modern eyes.

For them, that was some amazing hardware to work with. A lot of new ideas were tested out on the 704.

Re:On the history and justification of the C programming lan... by nickpsecurity on Friday August 19, 2016 @09:13AM (#12319705)
Oh yeah, Im sure. Im using modern eyes intentionally in context that many people think a LISP or dynamic language can't run on constrained hardware. The 704 was pretty constrained by today's standards. Refutes that claim.
Re:On the history and justification of the C programming lan... by dalke on Friday August 19, 2016 @10:41AM (#12320319)
No, you weren't using "modern eyes intentionally in context". You wrote "I'd have wondered less about whether it could work in constrained environments", and your description comes across as unintentional. That's what I'm referring to.

I grew up with microcomputers. My first machine had 16K, which I think is about what a 704 had. There's a lot you can do with 16K. Altair BASIC ran on 4K machines. Even modern micropython, meant for microcontollers, works in 64K, and that language wasn't designed to be space efficient.

Oh, and from http://edn.embarcadero.com/article/20693 :

> Turbo Pascal version 1.0 shipped on one floppy disk. The total number of files on the disk was 10. Total floppy disk space used was 131,297 bytes. Total size of TURBO.COM (including the integrated development environment with compiler, Wordstar-style editor, and run-in-memory system) was 33,280 bytes.

Re:On the history and justification of the C programming lan... by nickpsecurity on Friday August 19, 2016 @08:01PM (#12324341)
"No, you weren't using "modern eyes intentionally in context". You wrote "I'd have wondered less about whether it could work in constrained environments", and your description comes across as unintentional. That's what I'm referring to."

You're putting a lot of weight into words I wrote casually. The intended meaning was that I hadn't investigated what a good, useful-today implementation of LISP could do in what would be a highly-constrained system today. Particularly, on cheap microcontrollers used in embedded systems. I have seen LISP's like femtolisp that use around 1K for implementation with good performance. So, original LISP being able to run on a 704 implied quite a lot to me.

On other hand, BASIC and Pascal are low-level, static 3GL's. They're easy to compile efficiently into efficient code even without much optimization. I pulled it off for BASIC without knowing much about compilers. I'm sure it took talent to get the mix of functionality and efficiency in stuff like TurboPascal or some of the Altair apps. It's not telling me much about how a dynamic LISP will work on those platforms, though, given its execution style is so different. Especially if I code in a way that doesn't penalize readability or maintenance for efficiency.

Fortunately, there's a pile of papers I can go through if I want to determine an optimal way to do that. Many of which are from 70's-80's. The 704 result just tells me embedded impact could happen if I kept it efficient. Micropython work is also impressive. I hope the point of my reply is more clear now.

Re:On the history and justification of the C programming lan... by nickpsecurity on Thursday August 18, 2016 @08:08PM (#12317162)
I didn't know about vacuum tubes hga brought up. However, Chez Scheme posted here a while back started on 8-bit systems. PreScheme is a C competitor that's highly efficient. PICO LISP link has one plus others in the comments. So, they can be done.

https://news.ycombinator.com/item?id=10210931

https://en.wikipedia.org/wiki/PreScheme

http://lambda-the-ultimate.org/node/2124

Re:On the history and justification of the C programming lan... by dalke on Thursday August 18, 2016 @01:57PM (#12314821)
Fortran and Cobol are still widely used.
Re:On the history and justification of the C programming lan... by stcredzero on Thursday August 18, 2016 @02:51PM (#12315288)
"Only Lisp" from my short list above. There are others.