You are viewing archived messages.
Go here to search the history.

Owen Campbell-Moore 2021-11-02 18:54:15

Hi All! I’ve created a new Domain Specific Language (DSL) for people to express “product definitions” of consumer products (apps+web apps), which can then be “compiled” into full running software, and a platform that actually generates the app builds, generates and hosts the backend and web apps etc.

My belief is that it is too hard to build consumer software today. This difficulty is in large part because we build at too low a level of abstraction. I believe we should raise the level of abstraction to the conceptual level for defining most features, and only write custom code for things that can’t be expressed at this high level. With that approach, we can compile the high-level abstraction to native UI for all platforms and make developing polished x-platform software ~1000X+ easier.

Would love any thoughts / feedback, and would love to find people interested in this space to collaborate with (and just raised some money to enable that)!

https://www.notion.so/Intro-to-Sutro-raising-the-level-of-abstraction-for-programming-by-multiple-orders-of-magnitude-06f2566973714b3298d8f3cf0ad29c66

Martin Sosic 2021-11-02 19:12:37

Hey @Owen Campbell-Moore, congrats on raising your round and all the progress so far!

I believe we share the same vision of building a DSL for building (web) apps while still giving developers the flexibility to write their own code when needed -> I am co-founder of https://wasp-lang.dev/.

We are aiming for a similar thing, but instead of going for a visual DSL (GUI) we are implementing a textual DSL (programming language) that is then also compiled into JS stack (for now).

We also recently raised a seed round so I think we are in a pretty similar position.

We are certainly in same space and therefore competitors to some degree, but I am actually much more excited to see other people believing in the same vision then I am afraid of competition 😄, so I am looking forward to see how Sutro develops and let me know if I can help in any way.

Also happy to hear any thoughts / feedback on Wasp!

Owen Campbell-Moore 2021-11-02 19:42:23

Likewise! Excited to see where Wasp goes, and good to finally connect since we’re in a similar space!

Jack Rusher 2021-11-03 19:21:49

We open sourced our Clojure computational notebook library, Clerk, today. Here's an example of combining Clerk with my WikiData wrapper, Mundaneum, to interactively ask for some physicists and what they invented/discovered. Not bad.

Konrad Hinsen 2021-11-04 07:06:28

Once more I wish I could use Clojure for my work! The four problems that Clerk addresses are exactly the ones that make me dislike Jupyter. And one of them (no out-of-order execution) would be hard/impossible to port to languages that emphasize mutable data structures.

Andreas S. 2021-11-05 13:58:41

hi Jack Rusher could you put your example(Mundaneum) in a separate repository so one could jump right into it? So a Empty repository only with deps to clear and mundaneum? I'm still only familiar with clojure dependency mechanism using project clj so I could not try this out although I would love to!

Jack Rusher 2021-11-05 17:03:52

Andreas S I'm planning to put a few examples of different fun things in a repo soon. 🙂

Felipe Reigosa 2021-11-04 12:29:01

Hey guys, tiny machine this time. I created a drawing program using only 9 lines of code using MockMechanics. Check out the explanation on youtube: https://youtu.be/LBOjGktRqDI

🎥 short.mp4

Tudor Girba 2021-11-04 13:05:26

Beautiful! I love the explainability of it.

Felipe Reigosa 2021-11-04 13:06:47

Thanks 🙂

Ivan Reese 2021-11-04 16:39:42

This is such a cool project.

Felipe Reigosa 2021-11-04 16:49:13

Thanks Ivan!

Scott Anderson 2021-11-05 04:50:35

I love MockMechanics. So few people are exploring 3D programming that actually utilizes space

Felipe Reigosa 2021-11-05 08:49:47

Thanks Scott, that actually surprises me, I feel like I've opened a can of worms (in a good way). There are so many directions to explore, I can't really do it all on my own. Soon MockMechanics will be open source (I'm just fixing some stuff I broke while creating avatar mode) and then hopefully I'll get some help exploring this area.

dnmfarrell 2021-11-05 01:59:10

I can never remember jq's syntax so I wrote a json processor that parses json input onto a stack, and transforms the JSON by chaining simple stack operations together. It feels a lot more natural to me, but maybe I'm too close to the code 🙂 https://github.com/dnmfarrell/jp

Kartik Agaram 2021-11-05 16:48:27

OMG, written in shell! No dependencies. Immediate install.

dnmfarrell 2021-11-05 17:21:57

Hah, thanks! if you get to using it, I'd appreciate any feedback you have

Kartik Agaram 2021-11-05 17:23:29

Yeah. I'm going to keep it in mind next time I reach for jq. It's not very often but it does happen.

Kartik Agaram 2021-11-06 07:04:52

[October 16th, 2021 9:44 PM] ak: Has the utterly brutalist approach to end-user programming ever been tried? Just forcibly package up apps with all their dependencies, along with all the tools needed to edit, build and run them?

For a while now, we've had this notion of "end-user programming" in this community: the ability to modify software while we use it.

https://futureofcoding.org/episodes/033.html by <@U5TCAFTD3> https://www.inkandswitch.com/end-user-programming/ by <@UF6RLAL7J> https://malleable.systems by <@UML4ZEKDK> is also relevant

Here's a sketch for an MVP that provides this experience in the bluntest, most obvious way possible: • Download a framework packaged as a single file, including all necessary dependencies. You download it from an https URL, and that's it, you're good to go. • It only supports *nix platforms on desktop machines. Linux, BSD, maybe Windows Subsystem for Linux. Macs are explicitly out because they're basically not an open platform anymore[1]. And we're going to need an open platform for the sorts of stuff we're planning below. • You can install arbitrary apps from arbitrary sources that run atop the framework. The apps are in interpreted languages and always come with source code. • When you run an app, it always opens on the app first. This is important. There's no REPL or IDE front and center. The interaction modes are whatever the app chooses. • When you run an app, the framework always shows the privileges it has in some consistent part of the screen. The vocabulary and enforcement of those privileges is the major responsibility of the framework. Needing it to be always visible is why you need a desktop machine with a large screen. • The app can ask for privileges, but the framework gives you the ability to lie to the app. Here's a simulated network environment that looks offline or has these honeypots. Here's a simulated file system with almost nothing or a few honeypot files. (Inspired by the Arcan project: https://www.divergent-desktop.org/blog/2020/08/10/principles-overview/#p6) • While running any app, the framework always provides a consistent set of primitives for interacting with the interpreted sources for that app. Imagine a button in the corner that flips a Hypercard over to open an editor on its sources, or something like that. Once you're in the editor you can modify it, run it, get syntax errors, test failures, etc. The editor and build environment themselves are implemented in the framework; for the MVP we'll assume we don't need to support modifying the framework. I wonder how far Glamorous Toolkit is from this sort of experience, <@UE1JQM9HQ> <@UJBAJNFLK>. On one hand it massively over-delivers on the editing framework. The sandboxing stuff is a new frontier with lots of open-ended questions on the best experience to avoid confusing people before they understand how things work.

I'm also thinking about building on something less ambitious for an MVP, like libSDL atop femtolisp or LuaJIT. Maybe also JavaScript :grimacing:

[1] Like, it's great Apple that you eliminated vectors for malicious apps with all the restrictions on installing software. But I already had a perfectly good and healthy and functional relationship with the folks who provide gdb. When you prevent me from installing gdb, that's not cool. It's good to want to protect people from dysfunctional relationships. But to require all relationships to go through a single point is not. /rant

Ivan Reese 2021-11-07 20:09:42

Future of Coding • Episode 53

Scott Anderson • End-user Programming in VR

Scott Anderson has spent the better part of a decade working on end-user programming features for VR and the metaverse. He’s worked on playful creation tools in the indie game Luna, scripting for Oculus Home and Horizon Worlds at Facebook, and a bunch of concepts for novel programming interfaces in virtual reality. Talking to Scott felt a little bit like peeking into what’s coming around the bend for programming. For now, most of us do our programming work on a little 2D rectangle, with a clear split between the world around the computer and the one inside it. That might change — we may find ourselves inside a virtual environment where the code we write and the effects of running it happen in the space around us. We may find ourselves in that space with other people, also doing their own programming. This space might be designed, operated, and owned by a single megacorp with a specific profit motive. Scott takes us through these possibilities — how things are actually shaping up right now and how he feels about where they’re going, having spent so much time exploring this space.

Gray Crawford 2021-11-08 03:01:54

I absolutely loved this episode! Thanks for putting it together, and I loved all the Dreams shoutouts