Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
PicoCalc: A fully-functional clone of VisiCalc for the PICO-8 (lexaloffle.com)
237 points by sea6ear on Oct 3, 2023 | hide | past | favorite | 47 comments


This section early on in the linked VisiCalc manual was actually helpful to me:

> The VisiCalc program was born out of the observation that many problems are commonly solved with a calculator, a pencil, and a sheet of paper — three nearly universal tools. Calculating sales projections, income taxes, financial ratios, your personal budget, engineering changes, cost estimates, and balancing your checkbook are done with these tools.

I've never thought of the spreadsheet as the computer equivalent of paper, pencil, and calculator.

That might sound odd, but coming from a programming background, I've always viewed it as some sort of limited-database-with-limited-scripting-abilities. I've even felt bad about using spreadsheets sloppily – not structuring data properly, applying formulae systematically, etc.

But "electronic paper, pencil, and calculator" does explain exactly how I often end up using spreadsheets, and now I know I shouldn't feel bad about it anymore!


Spreadsheets are often abused as a bad version of a database, but they're pretty good when you just use them for their intended purpose to perform a series of numerical computations that show their work where you can play with it and see how it affects the results


A "spreadsheet" pre-dates computers. It literally was born from paper and pencil to record financial information and transactions in a ledger.

The innovation of the computer spreadsheet program is being able to put formulas in cells and auto-update and reference them elsewhere, all of which previously had to be done by hand (and with an eraser handy).


> program was born out of the observation that many problems are commonly solved with a calculator, a pencil, and a sheet of paper

Few apps for Linux and Android: TreeSheets[0], µMath+[1], Xournal++[2].

[0] https://strlen.com/treesheets/

[1] https://f-droid.org/en/packages/com.mkulesh.micromath.plus/

[2] https://xournalpp.github.io/


Most of what people in the real world are doing with spreadsheets would be better done with a database, but spreadsheets are more approachable so they use them instead. Making SQL a requirement for MBA programs would make business much better in the long run. (there are more things a MBA program could teach than there is time so I'm not advocating that they actually do this)


I’ve often wondered if just being able to change the “type” that applies to rows within a spreadsheet would be useful.

A general use string type being the current default, there’d be lots of benefited use cases to locking down rows (heading rows aside) as having to be safe format, or a number etc.


In Excel have you tried selecting a row and select the Text or the Number type from the ribbon "Types" drop-down (oddly named the "Number" section of the Home ribbon tab because it was classically the "Number" tab of the Format Cells dialog, which still exists if you click the expando button on the ribbon section)? (I find it easier to select columns and set types by columns, but I don't know what your spreadsheets look like.) It doesn't "lock" the type and an editor can still change the type for an individual cell, but you can still set (and save) better default expectations.

(Text is the safe string format that isn't as "magic" as General, the default. It's also the type you get if you use the " prefix in General.)

It's interesting to note here that the weird "magic" of Excel's default General "type" is pretty directly VisiCalc's fault because they had similar types but wanted to keep entry "simple" and decided to just guess types as people wrote cells with a handful of special character prefixes to override types. That legacy will likely forever live on. Excel could name General "VisiCalc Backward Compatibility" and it wouldn't entirely be wrong.


What Excel calls the Data Validation feature?


Sort of, but that is super brittle, doesn't quite have an understanding of "types" and is not really feature complete


My experience has been that teaching MBAs SQL just leads to MBAs desiring to execute Access-designed SQL statements (with horrifying execution plans) on Production database servers and expect to see the results in Access. That way lies its own madness.


They are different tools. Spreadsheets allow for much faster iteration than SQL.

Following some strict "best practices" when using spreadsheets gets you 80% of the way there. The other 20% is functionality that doesn't exist yet, but can be done.


For sure, but business runs on spreadsheets and most of them are places where SQL is clearly a better fit. Complex iteration is faster in SQL as well, though for simple problem sets spreadsheets are faster.


When I first got my very first Palm Pilot I recognised one thing: what the minimum computer needed would be and how much that little gadget could do that, otherwise, would tie me to my desk (or force me to carry my laptop.

In the end, most of the time, our day to day needs can be covered by very simple software - text editors, spreadsheets, messaging (including email), threaded discussions, and not that much else.


The designers of the Palm Pilot carried a chunk of wood with a stack of post-it notes and a pen for months. At the end of each day they looked at all those post-its and tried to figure out how they could make the gadget do that job. It became very focused on the things that people want to do without using a larger computer.


Happy to see a comment like this. One thing I'd add to the list is spaced repetition software for memory strengthening. When you have a moment, you can go over things and strengthen your own memory.

Is a spreadsheet even necessary on the go? Might be better to just have a calculator and store values in a text file?

Also, music? Or is this really a luxury? Truthfully I think yes. But maybe there are some "sound programs" which are "necessary" (like white noise generation)?

I'm sure a lot of us have had this line of thinking many times, but it'd be nice to have a discussion around it :)


> Is a spreadsheet even necessary on the go? Might be better to just have a calculator and store values in a text file?

You might be right technically, but one of the features of a spreadsheet is that it stores formulae. (Like a programmable calculator.) Even better, it does it spatially (which fits the way many people remember things), so after a while you can train yourself to put "kilometers driven here, amount of liters of gas there, and your gas usage per 100km is over there" etc. You can do this in a text file, too, of course (see e.g. https://www.gnu.org/software/emacs/manual/html_node/calc/Emb...), but a text file is essentially 1-dimensional, which may be a drawback here.


I know, but the problem with that is now each cell is essentially a calculator, and it only makes sense to store numbers, and even on small devices, dealing with spreadsheets isn't the greatest because of screen size. Building discipline also to record data like this just to review once in awhile sounds like a lot of work, vs just opening "L/100km.txt" and calculating. Heck, you could make the calculator program be able to open files where each line is a number and operate on that.


> Is a spreadsheet even necessary on the go?

Necessary, no, not by any means. But it is certainly a very-nice-to-have. Something far simpler than Excel would do but as it runs on my phone and I have a licence, why not?¹

> just have a calculator and store values in a text file?

That would be something new to learn and/or a manual process.

I use spreadsheets for little repetitive calcs, or even non-repetitive ones that I want to remember after I've lost the bit of paper from my pocket that they'd otherwise be on. This doesn't happen on-the-go often, but when it does it is handy to have something that lets me go back and edit the calcs easily, and automatically keeps the results rather than me copying them from calculator to notepad. The middle ground that is a logging calculator app could deal with some of these use cases, of course, as long as it has the range of functions a reasonable spreadsheet has (usually I'm just totting up money, but sometimes time-base calculations are useful, or unit conversions (though 1.609 sticks in my mind better than I remember what Excel's CONVERT() function calls miles so usually those are done from memory not with a built-in function), and so on).

--

[1] other than the fact it seems to have sync problems, so I never trust it to edit workbooks created elsewhere


> Also, music?

I'd say music is fair. The notion of using a desktop computer to listen to music was always a bit strange to me.

Also, a phone, because it's very useful to remain connected (I instruct everyone who works with me that, if they want synchronous responses, they should phone me. All other are asynchronous with low QoS.


Somewhat random, but spreadsheets continued to evolve after VisiCalc (obviously).

Here is one by the inventor of VisiCalc, Dan Bricklin, on github: https://github.com/DanBricklin/socialcalc

Audrey Tang (who happens to currently serve as the Minister of Digital Affairs of the Republic of China (Taiwan)) created the Node.js port of SocialCalc, EtherCalc: https://github.com/audreyt/ethercalc

Audrey made a fascinating write up of SocialCalc for The Architecture of Open Source Applications https://aosabook.org/en/v1/socialcalc.html


Audrey Tang also wrote a simpler spreadsheet for another AOSA book: https://aosabook.org/en/500L/web-spreadsheet.html


These books are such a gold mine yet I constantly feel like it's hard to motivate myself to buy one and properly read it through. Suggestions?


Start with the 500 lines one, and read the first half of one chapter.


I've never used it, Lotus Improv seems like it was awesome https://www.youtube.com/watch?v=rgGmKD87U3M (plus the 80s–90s vibes of this video are simply incredible)

I think there's still a ton of room for spreadsheet tech to evolve, but nobody seems to really be trying anymore, because Excel is the Gold Standard that everyone seems comfortable with.

for example: why do neither of the mainstream spreadsheet apps (Excel, Google Sheets) have first-class support for row and column headers? seems like an absolute no-brainer to me, and everyone who has worked in spreadsheets for more than thirty minutes.


Improv was interesting — and then there was Wingz (https://en.wikipedia.org/wiki/Informix_Wingz), another very forward-thinking SS from the early days. I'd love to see a history & comparison of early SS/WP/DB applications in order to see what ideas were tried & left behind because they were too outside the norm for the day or required too many resources which could be reclaimed & worked into today's software.


Numbers has some good incremental improvements. It does have first-class support for headers, and even uses them for references which makes things absurdly clear in comparison to the plain A1 format. Multiple tables per sheet is also particularly great IMO.

The web version was mostly replete last I used it half a decade ago, including realtime collaboration with mac and iOS.


> first-class support for row and column headers

Excel provides Tables for that. Outside tables, you can define named row or column ranges, and reference them by name, including their intersections. The names are just not displayed in the headers (use Tables if you want that).


emphasis on "first-class"


Tables have first-class row and column headers, I would say.


I'm arguing tables being contained within sheets effectively make column/row referencing "second-class".


Couldn't agree more. It's absolutely a no brainer. I'm actually building an app to try to bring first-class support for row and column headers (and much more)


An improv video, thanks for the link. I only have the contemporary magazines with analysis of it.


Cool that Dan Bricklin still writes software, open source no less.

The other name's familiar too. (Looked it up) Audrey Tang also started Pugs which prototyped Perl6 in Haskell while it was being designed.


Given by just the github account, his last activity was 13 years ago; his personal website last had a post in 2018 though (http://www.bricklin.com/default.htm). He / his company made some iOS apps as well.


>open source no less.

Dual license CPAL + Artistic.

They are both OSI approved, but uncommon.


Sadly their license is terrible.


I worked on something similar and I am so happy to see someone take it to the next level :)

https://twitter.com/radiofreejohn/status/780664363631935488

and

https://twitter.com/radiofreejohn/status/784050276198080513


Slightly OT:

For those who have used TIC-80 or PICO-8 to introduce their young (e.g 7yo) kid to programming by modifying games, what games did you start with? And any other tips?


I used a platformer game with levels, I dont remember its name, but the levels were very difficult, and at some point when my daughter was very frustrated I showed her how to edit the level variable and skip to the next level, and also how to modify the map.

We did two games by following tutorials on youtube. Platformer tutorial: https://www.youtube.com/watch?v=q6c6DvGK4lg&list=PLyhkEEoUjS... and also a top down adventure game: https://www.youtube.com/watch?v=J1wvvbVQ5zo

My daughter is 12, so things are different, but we didnt go much further than that with pico8. We moved to python then arduino/microbit/etc and then to c and now to riscv assembler, and will circle back to python in a year or so.

When she was 7-8 we spent more time with physical things, arduinos and etc (clap and light turns on kind of things) like this one: https://www.youtube.com/shorts/EVXavpNGYEc


I had quite some success applying my own LOAD81 to a few children.

https://github.com/antirez/load81


That looks seriously cool. Just the colors give me goosebumps :)

completely offtopic:

My dream is to build a super cheap child friendly computer, that the kids can build themselves, has a software keyboard that directly polls the gpio pins so that kids can modify their keyboard instead of having a keyboard controller (just so there is less mistery in what happens when a key is pressed). And the OS is something inspired from LEAP: https://www.youtube.com/watch?v=o_TlE_U_X3c that allowing you to evaluate code and apply it to your current file. A bit like your LOAD81 but with text.

I have a prototype now: https://github.com/jackdoe/programming-for-kids/blob/master/... but it has a long way to go.


This looks seriously cool. May I ask how old your daughter was when you started working with her on this?


Wow. I opened the triangle demo and I felt like I was transported back in time to when I had an Acorn Electron and would type in BASIC programs from listings in magazines.

I was about 10 then. I hope my son (7yo) starts to find this stuff interesting soon.


I think p5.js [1] is difficult to beat when it comes to in-browser creative coding, games included.

Daniel Shiffman has a YouTube playlist of various videos about making games with p5.js [2].

There is also p5play [3], which was made specifically for educational game development.

[1] https://p5js.org

[2] https://www.youtube.com/watch?v=AaGK-fj-BAM&list=PLRqwX-V7Uu...

[3] https://p5play.org/index.html


I wish the community focused on an open source platform like TIC-80[0].

0. https://tic80.com/


Before Steve Jobs was selling iPods and iPhones he was selling the ability to run your VisiCalc spreadsheet on an Apple II


very cool!




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

Search: