7 ms·
Hi! Didn't expect this. Mesh is still very much an alpha. Since the last public commit I have been experimenting with: - different text representations of the
by chrispsn 7y ago
Hi! Didn't expect this.
Mesh is still very much an alpha. Since the last public commit I have been experimenting with:
- different text representations of the sheet (to make diffs as readable as possible)
- ways to compress more functionality into the 'boilerplate' included with each sheet.
On the to-do list are:
- persistence (including fixing "save sheet as URL" and local load/save)
- selecting input cells with a keyboard while editing a formula
- a way to include 'standard' spreadsheet formulas such as 'SUM' on-demand in the sheet file
- case-insensitive cell references
- much more polish...
JavaScript's lack of a built-in parser is a real bummer, and it means that while Mesh's backend logic can be written as a spreadsheet, in Mesh [1], the file has to include a third-party JS parser, which significantly slows down the editing process. I'd also like a proper SQL and first-class table support, but we work with what is supported by Internet Explorer 11.
I remain confident that we can substantially improve the status quo of spreadsheets and, by extension, programming.
[1] https://twitter.com/MeshSpreadsheet/status/1019555310363504640?s=20 https://twitter.com/MeshSpreadsheet/status/10195553103635046...
- codetrotter 7y agoThis is really cool! Do you develop all of Mesh in itself exclusively, or do you still use a regular text editor as well? Either way I can certainly see this as being useful. I starred the project on GitHub and look forward to see what more is to come. Aside from the SQL support you mentioned wanting to add, and the various todo-items, are you planning on going beyond the spreadsheet concept? For example with some type of node-based interface, like Unreal Engine 4 Blueprints [1], or like the materials editor in Blender [2]? I realize that might be a vague question, heh. [1]: https://docs.unrealengine.com/en-US/Engine/Blueprints/index.html https://docs.unrealengine.com/en-US/Engine/Blueprints/index.... [2]: https://docs.blender.org/manual/en/latest/editors/shader_editor/index.html https://docs.blender.org/manual/en/latest/editors/shader_edi...
- chrispsn 7y agoThanks! I honestly haven't developed much of Mesh in Mesh, because it's still early in the 'bootstrap cycle' and due to the parse delay issue mentioned above. It's also not nearly as robust to errors as it should be - text editors and traditional spreadsheets allow the user to 'sketch' ideas as discussed by Aaron Hsu [1]. I'd like to stick to a grid for writing 'functional core' logic, but there's potential to use a node interface at the surface of the 'imperative shell', to link up sheets or data feeds (push/pull). I was really impressed by Nodes [2] and I need to spend some time digging into Node-RED [3]. [1] https://www.sacrideo.us/un-structured-programming/ https://www.sacrideo.us/un-structured-programming/ [2] http://nodes.io/story/ http://nodes.io/story/ [3] https://nodered.org/ https://nodered.org/
- dustingetz 7y agoChris do you want to chat? I'm a founder in this space. Can you add contact info here or on github, or open twitter DMs or something:) My contact in profile.
- deleted 7y ago[deleted]
- galfarragem 7y agoThe only two projects I know regarding "visual programming" that I think "are on the money" are Mesh Spreadsheet and Hyperfiddle. Luna-lang, even if in theory is great, didn't click with me. Observablehq is also interesting but I don't have a use case for it. Keep the good work! edit - some remarks to "get there": it must be/feel fast like native Excel, Sublime Text or at least VS code. In another phase, to be a real "programming editor" it would be great if you could use any programming language you want, not just JS. Clojurescript or Elm/Purescript could be a good start. edit2 > ways to compress more functionality into the 'boilerplate' included with each sheet. I think the boilerplate should be somehow hidden from the end user.
- chrispsn 7y agoThank you!
- microcolonel 7y ago> some remarks to "get there": it must be/feel fast like native Excel, Sublime Text or at least VS code. As someone who is working on an Excel compiler, I can tell you it's challenging to make it very fast.
- infinite8s 7y agoIs your compiler running on an interpreted language? I think to make this sort of product fast requires JIT compiling the users expressions, and doing some sort of whole program analysis to pull out the dependencies between cells.
- microcolonel 7y agoI do whole program analysis, and the host is not interpreted. The costs are mostly about the data structures used to store the intermediate values. Automatically selecting whether to make some values contiguous or not is difficult, and the types are a bit complex (basically option types). The sheets I'm working with have around a million expressions, and there are large sparse regions, so the data structures have to be a bit compact.
- tenaciousDaniel 7y agoThis is awesome! I happen to be working on something similar, although it's oriented towards UI design.
- Paperweight 7y agoI wonder if a spreadsheet and its editor could go in a self-contained HTML file. You'd open it in a browser, it modifies its own source code, and you just re-export or "Save Page As" when you're done? Furthermore, maybe the data could be in CSV at the top of the file, in an HTML comment, and the editor could be in HTML at the bottom of the file, in a CSV comment, so the file could be opened in either a browser or Excel? Haha
- chrispsn 7y agoPossibly! Discussed this a little here: https://twitter.com/meshspreadsheet/status/1055430999453052928?s=21 https://twitter.com/meshspreadsheet/status/10554309994530529...
- Paperweight 7y agoProgramatically invoking the "Save As" dialog seems troublesome. Maybe there could be a signed WebExtension blob in the file, too - or it should download the latest updated library script every time the file is opened (although then there are security & CORS issues).
- WorldMaker 7y ago> I'd also like a proper SQL and first-class table support, but we work with what is supported by Internet Explorer 11. If you were thinking about WebSQL, then sticking to IE11 has skipped you over an obstacle course in web standards, because WebSQL was abandoned by the browsers (for good reasons, led by Mozilla and Microsoft trying not to let SQLite bugs define the web platform for decades) and won't be supported again soon, in lieu of the much simpler key-value store called IndexedDB. > JavaScript's lack of a built-in parser is a real bummer eval() wasn't sufficient for your needs?
- macca321 7y agoI'd be really interested in the ability to put in probability ranges for cell values and run monte-carlo simulations to get the final values (Excel+montecarlo has been a pet idea of mine for years but I haven't got the time to do it)