Hacker Newsnew | past | comments | ask | show | jobs | submit | DuncanMak's commentslogin

There's also this paper by Alan Kay that talks about the power of spreadsheets:

https://worrydream.com/refs/Kay_1984_-_Computer_Software.pdf

> The dynamic spreadsheet is a good example of such a tissuelike superobject. It is a simulation kit, and it provides a remarkable degree of direct leverage. Spreadsheets at their best combine the genres established in the 1970's (objects, windows, what-you-see-is-what-you-get editing and goal-seeking retrieval) into a "better old thing" that is likely to be one of the "almost new things" for the mainstream designs of the next few years.


Love this convo and the resources. Thanks for sharing this @DuncanMak and @DonHopkins


Yeah, I've been working on Noticias, which is an implementation of NeWS in Typescript targeting the browser.

Initially, I used HTML5 Canvas to draw, but I'm now in the process of switching over to SVG. Once I have demos that I can show, I'll be making the repo public.

If you're interested in working it, please reach out to me, duncanmak@gmail.com.


This article seems like a nice overview of the pros and cons of the Icon expression evaluation system:

https://tratt.net/laurie/research/pubs/html/tratt__experienc...


Kragen, how much of what you said here about Forth also applies to PostScript, do you think?

I have been tinkering with PostScript but not Forth, I grok that PostScript is a lot closer to LISP. A lot of people (without actually learning these languages/systems) say Forth and PS are similar, but I know that's not really the case - their resemblance is fairly superficial.


i agree, and though it is certainly possible to get ensnared in dup exch baling wire in ps, it isn't nearly as common, maybe because you can just 6 dict begin for some tasty recursion-safe local variables when you have the appetite

or maybe because you can't >r r@ r@ rdrop, or because garbage-collected [arrays] remove the temptation to write subroutines with 6 parameters

ps is fairly big compared to forth, not the 16 megs of libgs.so.9.50 but definitely a lot more than 8k

what they have in common is interactive repl orientation, user-defined control structures, great flexibility, lack of static types, and of course rpn

i was going to say 'closures' but of course ps's scoping is dynamic so it lacks them


With PostScript being one of the few successful "mobile code" systems out there, I wonder if PSON will do better than JSON by allowing { procedures }.

With the explicit dictionary stack, couldn't that be used to sandbox the scope and reach of these procedures?



What did you do to learn Postscript? What sort of programs did you write in PS to practice?


Not parent poster, but I did graphs directly in PostScript. The simplest book to start with is the "Blue" book https://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF (from the blog post http://blogs.adobe.com/CCJKType/2016/12/ehandler.html - that book has a lot of examples to really get your feet wet.


I was actually inspired by this blog post: https://www.reddit.com/r/programming/comments/2fwy1y/a_web_s... (page appears to be dead but the conversation is still interesting).

I figured that web servers tend to be pretty fun to write and if someone else has figured out how to do one in PS, I would be clever enough to build one too.

I guess I was wrong about that because I didn't get very far.


Hey Mikel, are the Sk8 sources/binaries anywhere? Is it possible to run Sk8 nowadays if one has access to hardware running classic MacOS?


There seems to be a copy of one of the technology releases here:

https://www.macintoshrepository.org/2625-apple-sk8

I haven't downloaded it and looked at it.

One of the slides at that URL has Dave Yost's Clint Eastwood fillColor displayed in it. :-)

I think you can run it as long as you have a PPC machine. Perhaps one of the Mac OS emulators that emulates the PPC could do it, too, if you had the ROM files.

In case you're not familiar with ROM files, the old Mac OS, before OSX, was not really an operating system in the usual sense; it was really a large subroutine library, the bulk of which was burned into ROMs in Apple hardware. Emulators for the old Mac OS need to have working copies of the contents of those ROMs in order to run the Mac OS. ROM files are a little bit inconvenient to come by unless you have an old working Mac and a tool for copying the ROMs.

Way back in 2004 I proposed an open-source project to build a new SK8-like environment, and even got buy-in from some of the original developers and users of SK8. Then I got terribly sick and didn't work on anything at all for a couple of years. When I finally began to work again, it was with a lot less energy and ambition than I'd had before.


Apple made the source for SK8 available, and someone has posted it on GitHub:

https://github.com/waywardmonkeys/apple_sk8


Nice; thanks!

If you want to build it you'll need a working copy of MCL and a PPC mac. The requirements may be slightly narrower than that. SK8 had some low-level bits that might rely on some details of the Mac System version or hardware. I don't rememberenough of the details anymore, but you might need to try a few different PPC models and system versions. System 7 or 8 is probably a decent bet, as is any mac hardware that was shipped with it.


libgdiplus is fairly stable - you can find use the latest zip from github if you need a source release:

https://github.com/mono/libgdiplus/commit/3ddf7ff28e0876dc39...


In that case, why don't you just put 'throws Exception' on all your methods?


I said "theoretically", did I not?

And there was nothing particularly special about the module aside from the extreme concentration. Every piece of Java I've ever written or even looked at has this same problem on a reduced scale.

My point is to show how utterly broken and worthless the concept is. Either there's a ton of exception-"handling" boilerplate that does nothing useful, or there's "throws Exception" everywhere, itself useless boilerplate that exists only to tell the compiler to buzz off.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: