Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
SC-IM – An ncurses spreadsheet program for the terminal (github.com/andmarti1424)
130 points by laktak on Aug 29, 2020 | hide | past | favorite | 39 comments



I highly recommend that anyone interested in improvements to spreadsheets check out Teapot—it has a really cool 3D cell indexing system, a type system, and lots of other features that make it fundamentally much more advanced than Excel in many ways.


A three dimensional spreadsheet sounds interesting, but the teapot site doesn’t appear to have a link to documentation on how to it works.


The download includes fairly decent documentation (although I agree it would be nice to be able to view it on the site).


I'd also like to point out the spreadsheet functionality of org-mode as a terminal based spreadsheet.

I actually started using org-mode for this feature. I had been using sc-im, but found it limiting, especially the because you cannot pass a range of cells to a custom function. In org-mode this is no problem at all, plus there are many more built in functions.


The original Lotus 1-2-3 was 'terminal' based too ....


Sure, and Visicalc before that, probably others.


I believe that VisiCalc was the first to ship a functional spreadsheet. I remember watching RichHarris’s “Rich Harris - Rethinking reactivity” video introducing Svelte 3, and he discussed an earlier academic spreadsheet concept.

https://m.youtube.com/watch?v=AdNJ3fydeao

I used the following “terminal” spreadsheets

VisiCalc on a Radio Shack Model III

Microsoft MultiPlan on MS-DOS

Lotus 1-2-3 on MS-DOS


An interesting product! It was shipped by a company (if I remember right) called "Personal Software" or some such. They marketed software they collected from individual developers.

VisiCalc was their one runaway success. So much so, they changed their name to VisiCorp.


Far less likely to support modem formats and features, though.


Visidata is a cool for exploring tabular data sets, but not a spreadsheet.


I first discovered sc by accident: sc was the "fast" abbreviation for "score" on the MUDs I was working on at the time. made for an interesting shock and great find once I realized what it was.

I still use sc sometimes, especially when I want super-easy computations in a very small window without a ton of extra "chrome" getting in my way. it makes layout math very easy and fast.

it made me smile seeing it, and seeing the grey link show up here on HN.


I've been using sc for many years. As others have noted, it's lightweight and fast. Some of it's unusual features are:

1. Each cell can contain both a label and a value, so you don't need an extra column to label numeric values.

2. Cell editing is done using vi keybindings.

3. Files are stored in a very readable, pure text format.

The biggest drawback of sc is there is no undo. If you delete something by mistake, you can't bring it back. This is the biggest reason to choose SC-IM, IMHO.

Unfortunately, the menu commands in SC-IM are not the same as the ones in sc, which is a real problem on a keyboard-based spreadsheet and you have developed sc muscle memory :(. SC-IM's help menu is also hard to read in narrow terminal window, because it uses fixed-width line endings that cause every line to improperly wrap. The fact that sc is included by default in most, if not all, Linux distributions makes it so convenient to install and use I likely won't ever change.


Cool. I use original sc almost every day. Is this from the same code base?


Genuinely curious, what reasons are there to use this instead of a GUI spreadsheet application?


Among other things, terminal based programs support flexible remote workflows via ssh and tmux.

Edit: It's slightly off topic, but it might be easier to understand the draw of terminal based interactions in the context of a larger toolchain and workflow. So for example: ssh for remote access, tmux or Emacs for session management and program tiling, ranger or similar for file management, and Emacs or a Vim equivalent for text editing. Mainstream DVCS and build automation tools all provide full functionality via command line. A terminal based spreadsheet program is an obvious fit for such a toolchain.


You can use VNC/RDP to remote into a graphical session. Graphical vs. terminal are both arbitrary binary streams over SSH, the computer doesn't care. There's no advantage to the terminal based one other than maybe less network utilization. I'd resort to that if I were traveling and only had my mobile phone's data as internet.


> You can use VNC/RDP to remote into a graphical session.

I didn't mean to imply that you couldn't. Rather I aimed to provide a broader sense for why someone might find a terminal based spreadsheet program useful.

> There's no advantage to the terminal based one other than maybe less network utilization.

I have to strongly disagree here. My experience with remote graphical environments, even on a wired LAN, has been less than satisfying. I suspect that a large factor for me is the latency; it doesn't take much to make a GUI feel "wrong" to me while a text based interface will just feel slow but not really bother me.

On top of such personal preferences, consider the overhead of running a graphical environment in every container or VM you might happen to make use of.


I'm not a fan of LibreCalc, and I don't know of many other GUI spreadsheet programs for Linux. A terminal-based program is also attractive because it can easily be scripted.

I once had to use sc-im because when I tried to open a ~very~ large file it crashed all the GUI programs I tried.


Gnumeric and Calligra Sheets are 2 other GUI spreadsheets for Linux. Calligra is the name for what used to be the KOffice suite from the KDE project.

I can't speak to the usefulness of either especially since I have no idea what your use case is.


Terminal programs tend to be faster (particularly on boot time) and have better support for keyboard shortcuts. I haven't tried this project out though...


Generally:

   - Quick startup
   - Reasonable RAM usage
   - Well-designed keyboard navigation
   - Conveniently launches from the commandline


You’re pretty much guaranteed to own your data forever. You also don’t have to deal with major UI changes where features are rearranged all the time. It’s also pretty VCS-friendly.


> You’re pretty much guaranteed to own your data forever.

Don't I have that with Excel too, in practice?


I’m not sure. Two observations:

I have dozens of Word documents created on Windows in the mid-90s that current Word versions refuse to open.

Excel for Mac keeps subtly adding four years to every date field if the file was originally created in Excel for Windows.


I guess in the case where you don’t have access to a desktop environment.

I’m also curious to know if there’s a reason to use this if you do have access to a gui...


Speed. Simplicity. All you want to do is update a single value or insert a row into a spreadsheet? You can probably be done using the terminal application before Excel even finishes opening.

On my computers, I use Excel so rarely--around once a month or so-- and do full reboots so rarely that it always interrupts me as soon as I open it to finish applying an update to office. And of course, since I'm on Windows, Excel has locked the file (usually just a csv, but one with a dozen or more columns, so hard to do with a text editor) so nothing else can open it in the meantime, and I have to wait several minutes for the modal popup to go away before I can finish appending a timestamp to the end of the file.


Coming from a DOS background, this gave me nostalgia for Lotus-123.


This pairs well with WordGrinder, a word processor (not text editor) for the terminal.

http://cowlark.com/wordgrinder/


Visidata isn't exactly a spreadsheet, but deserves a mention.

https://www.visidata.org/


SC original authors are James Gosling and Mark Weiser (!)


Remember Lotus 123? Quattro Pro?

There was a time where terminal spreadsheets was the regular way to work with spreadsheets.


No really about the software itself but it's fantastic it uses regular 'ol make (and it looks like it provides a BSD makefile too!).

I'm seeing more and more of what I feel are bloated and unnecessary build systems, ninja, cmake, etc.


I used sc back in the day for many light tasks. I had no idea that James Gosling was an author. (Or didn't know who James Gosling was, at the time.) It's great to see that it's being maintained in some form!


I used Visicalc in the early 80s (maybe first around 1982). Reminds me of a colorful version of that.

Did some awesome things with Visicalc and Wordperfect back in the 80s.


I absolutely adore sc(1) and enjoy whiling away time by crapping lovingly hand-crafted data in it.


ncurses gives it arrow key navigation, this is cool. Every single distribution needs this to run WITH disk partitioning software. EVERY.

As it is, I have to slipstream DOS box, and run as-easy-as... royal pain. Best reason to run linux ever. ( besides the nifty tee shirts )


Fun fact, the author of sc James Gosling went on to design the java programming language.


Nurses. Sadly. The other thread using python to do a II has more platform because python And its Screen have more platform.




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

Search: