I'd like to give praise for the "Target User Group" section on the homepage.
Not only does it say what users the app is for, but also who it is NOT for. I think this kind of information is invaluable in deciding whether or not to use or suggest an app.
I can understand if app developers want EVERYBODY to user their app (whether or not its the best for the job) or if the app developer just doesn't want to take the time to write out who the app is NOT for. But I will praise those who do include that information.
After reading the parent comment - I thought to myself “so what”.
But after reading it on the product page - I fully agree: seeing clearly the targeted personas and out of scope usage significantly elevates my trust in the product and the team behind it.
I like it and I'll take it a step further. I think this is important information for a developer to admit to THEMSELVES at least. Being all things to all people is a route straight to burnout for an open source project.
pip install pyspread works just fine on macOS (assuming you have pip and python installed, which anyone who would be interested in having a python-enabled spreadsheet would have).
Though I'd recommend FreeCAD over OpenSCAD as a 3D modeling tool for most users as an alternative to traditional CAD tools...and therein lies the distro problem.
Gimp is really not great for photo editing IMO - it really shines at photo manipulation. (i.e. it is Photoshop, not Lightroom.)
For RAW development (a la Lightroom), DarkTable and RawTherapee exist. I've only tried the former, and found it incredibly difficult to use.
I also prefer Krita for digital illustration (though maybe that's unfair - it's best at digital painting specifically.) Of course, if you need vector support, Inkscape is the obvious answer.
But why do you even need a distro to begin with just to ship certain software set? Install Arch/Gentoo and install whatever is your preferred software of choice, or hell, you can even do that on any other distro.
OpenSCAD is really good for parametric designs. One of the first things I designed in OpenSCAD was a bicycle sprocket where you could input how many teeth you wanted, link length, how thick, etc. and OpenSCAD would generate the sprocket according to those parameters. I recall seeing a while back that blender was adding support for this kind of thing so I'm sure it's possible, but it was very intuitive in OpenSCAD.
For any large project I'm sure Blender (or FreeCAD) would be a better choice, but as someone with some programming background just starting out, OpenSCAD feels way more accessible.
Blender wasn't originally designed to be used for CAD type applications. It's possible of course, but you're likely better off with something specifically meant for precision CAD models. Specifically for 3d printing, I don't think blender is ideal.
I think most programmers like OpenSCAD - what better way to make parametric CAD models than by writing code?
My understanding is that with CAD software you can go backwards and have (near?) infinite edit history, in a way you cannot with Blender. Which makes it very, very useful.
I see it uses numerical designations for both the columns and rows allowing indexing like a 2D matrix. Nice. One of the many annoyances of Excel is the alphabetic columns that make even less sense beyond 26.
Baby mode?! As a full grown adult, I find the cognitive load of the base 26 arithmetic of "what column is an offset of 8 to the right of AW" to be exactly what I needed to fully forget about what I came there to do in the first place
some of us have some logical dyslexia, so when I see a tuple of numerics, even if you say (this is the row, this is the column, this is the table), when I'm manipulating references, or finding a tuple in the dark, I easily mix up the order of the bits, because lets face it, it's arbitrary.
So, while your logic makes sense, it voids humanity in a rather stark way which I suppose is fine, but it's not like I'm incapable of programming. I just have to be careful about how I name variables and use keywords in python more often than args.
Interestingly, Giles Thomas (the guy behind Python Anywhere) originally developed a Pythonic Spreadsheet application, called Resolver One, and then iterated to a a web-based version, called Project Dirigible.
Python Anywhere eventually span out from Project Dirigible when they realised that it was mostly being used for "generic" Python development rather than being used as a spreadsheet. There's an interesting write-up on this evolution here: https://blog.pythonanywhere.com/197/, and a demo of Dirigible here: https://www.youtube.com/watch?v=2ZoIp-5NaiQ.
It seems to not be a true spreadsheet with dependency tracking and instead it recomputes everything after each change. Whis probably kind-of obvious as how to track the dependencies for arbitrary Python code is not that obvious. But without resorting to some static analysis magic one could just track accesses to the magic S[] during the excecution of the cell, its value cannot depend on anything else than what was accessed during the evaluation.
One issue with this is that arbitrary Python code can have arbitrary side-effects.
Your suggestion reminds me a lot of fine-grained reactivity like in SolidJS, which makes sense, since spreadsheets basically operate on reactive programming. Some great articles by Ryan Carnatio on the topic.
The side-effects thing comes in if a user puts in some side-effect in a dependent cell, which is equivalent to adding side-effects in a memo in reactive-speak.
Not actually "in Excel", though. The Python code runs on Microsoft's servers (they say in the introduction) and Excel is just a client.
There's no reason they couldn't embed CPython in Excel, but maybe the intention was for the online version of Excel to have feature parity without having to compile Python to JavaScript?
the intention is to lock in orgs to their cloud services. This is a value-add. They really know that Excel, Word are "feature complete" and the only way they're going to make money on it is by harvesting and locking in the users.
Not only does it say what users the app is for, but also who it is NOT for. I think this kind of information is invaluable in deciding whether or not to use or suggest an app.
I can understand if app developers want EVERYBODY to user their app (whether or not its the best for the job) or if the app developer just doesn't want to take the time to write out who the app is NOT for. But I will praise those who do include that information.
But after reading it on the product page - I fully agree: seeing clearly the targeted personas and out of scope usage significantly elevates my trust in the product and the team behind it.
Have not used the software, but now I want to try
> While there have been reports that pyspread can be used on OS X, OS X is currently unsupported (can you help?).
I think that would make many non-technical users uncomfortable.
Original Sentence:
> Furthermore, Peter is worried about algorithmic errors and calculation inaccuracies is his complicated tables.
Correction:
> Furthermore, Peter is worried about algorithmic errors and calculation inaccuracies in his complicated tables.
- pyspread for a spreadsheet
- LyX for a word-processor
- OpenSCAD for a 3D modeler
- TkzEdt (or ipe) for 2D drawing
&c.
(and I'd be interested in suggestions for similar software for other tasks, esp. presentations and database work)
Blender for 3D graphics.
Gimp for photo editing.
Inkscape for illustration.
Though I'd recommend FreeCAD over OpenSCAD as a 3D modeling tool for most users as an alternative to traditional CAD tools...and therein lies the distro problem.
For RAW development (a la Lightroom), DarkTable and RawTherapee exist. I've only tried the former, and found it incredibly difficult to use.
I also prefer Krita for digital illustration (though maybe that's unfair - it's best at digital painting specifically.) Of course, if you need vector support, Inkscape is the obvious answer.
I was trying to think of unusual programs with non-standard approaches.
Perhaps rather than FreeCAD either BRL-CAD, or maybe the recently announced Dune 3D:
https://news.ycombinator.com/item?id=40228068
Also, Blender w/ CADsketcher (the Solvespace solver) is quite good:
https://news.ycombinator.com/item?id=34856383
Though maybe Solvespace would be a better match?
https://news.ycombinator.com/item?id=33571555
As power users we may want to do that ourselves, but a lot of people place value in having that curation done for them.
For example: https://alternativeto.net/software/pyspread/
For any large project I'm sure Blender (or FreeCAD) would be a better choice, but as someone with some programming background just starting out, OpenSCAD feels way more accessible.
I think most programmers like OpenSCAD - what better way to make parametric CAD models than by writing code?
The most important difference is that Blender operates on meshes, CAD programs don't.
I think there are a plug-ins for Inkscape for presentations.
His Excel-lence also recommends this: https://www.youtube.com/watch?v=JxBg4sMusIg
The "real" answer is to use names and tables. That and generally not having data flying up down left and right.
So, while your logic makes sense, it voids humanity in a rather stark way which I suppose is fine, but it's not like I'm incapable of programming. I just have to be careful about how I name variables and use keywords in python more often than args.
Pyspread – Spreadsheet with deep Python integration - https://news.ycombinator.com/item?id=30426053 - Feb 2022 (1 comment)
Pyspread – Spreadsheet implementation in Python, cells return Python objects - https://news.ycombinator.com/item?id=7593603 - April 2014 (1 comment)
Show HN: Spreadsheets using Python - Have you seen this? - https://news.ycombinator.com/item?id=1884896 - Nov 2010 (47 comments)
PySpread: A spreadsheet that accepts a pure python expressions - https://news.ycombinator.com/item?id=265132 - Aug 2008 (3 comments)
Python Anywhere eventually span out from Project Dirigible when they realised that it was mostly being used for "generic" Python development rather than being used as a spreadsheet. There's an interesting write-up on this evolution here: https://blog.pythonanywhere.com/197/, and a demo of Dirigible here: https://www.youtube.com/watch?v=2ZoIp-5NaiQ.
Project dirigible ended up being open sourced here: https://github.com/pythonanywhere/dirigible-spreadsheet.
Your suggestion reminds me a lot of fine-grained reactivity like in SolidJS, which makes sense, since spreadsheets basically operate on reactive programming. Some great articles by Ryan Carnatio on the topic.
The side-effects thing comes in if a user puts in some side-effect in a dependent cell, which is equivalent to adding side-effects in a memo in reactive-speak.
(It's very similar to the problem of locking in databases)
https://support.microsoft.com/en-us/office/get-started-with-...
There's no reason they couldn't embed CPython in Excel, but maybe the intention was for the online version of Excel to have feature parity without having to compile Python to JavaScript?
If you want to see this done properly (on some limit) look at pyxll.