Rose Project (April 2017)

Pausing Prune

  1. I strongly believe that the most efficient way to continue with this project is by using “Text as the G in GUI” as I refer to it in my last post. This way, you wouldn’t have to waste any time on building the AST’s display or navigator (because you’d just use the Ace text editor) so you could focus all of your efforts on empowering syntactically correct transformations, a nontrivial problem.
  2. JavaScript has many issues (as I refer to below), so I would focus on a key subset of JavaScript so as to not waste time trying to be compatible with all of the weird parts. The downside to this, of course, is that you wouldn't be able to import a project to Rose, only export it out to JavaScript, but I think that’s a fine place to start.

Better programming paradigms

CycleJS

Elm

Languages for further research

  • Eve — I really admire the people behind Eve but I haven’t been able to wrap my head around it. I probably need to give it more time.
  • Luna — I was pointed to this by Andre Staltz. Seems like it could be exactly what I’m looking for but I was unable to get access with it to play around.
  • Lambdu — seems similar to Luna and Unison. Need to do more research here ASAP.
  • NoFlo, Project Blocks, and Kite are also at the top of my list.
  • Irvin Hwang (who contacted me after he read my last post) shared this list of visual programming langauges that I am hoping to look into soon.

Can we do better than HTML and CSS?

  1. Build an abstraction on top of HTML and CSS, a language that compiles to HTML and CSS. This has the advantage of not having to re-build the common HTML and CSS widgets by hand. For example, the input box is a tricky thing to get right.
  2. Build an abstraction from scratch on top of the HTML5 canvas. This is the route that Jens Monin’s morphic.js library takes. The upside here not having to deal with the finickiness of HTML and CSS, but the downside is rebuilding the entire web frontend UI toolkit from scratch.

Rethinking Precision

Josh Darnit playing the “code your teacher” game with his kids
  1. It could make its best guess about you’re trying to say and run with it. If the computer picks incorrectly, you could notice that and let the computer know it’s not what you meant.
  2. It could tell you that it’s confused and give you a chance to clarify what you mean, potentially by giving you a list of options to chose from.

Not only for beginners

Taking a break

--

--

--

Enabling computational thinking by building tools for thought at futureofcoding.org. Co-creator of thecodingspace.com and woofjs.com

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Reactjs QRcode Generator Library

ReactJs qrcode generator library

The First Corporate Conference

The Apps You Use Daily Built in React Native

Unit Testing JavaScript Code: The Startup Guide

JavaScript Promises. Part 4 — Promise.all, Promise.any and Promise.race

How to integrate React frontend with Node backend

11 Useful Custom React Hooks for Your Next Web App

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Steve Krouse

Steve Krouse

Enabling computational thinking by building tools for thought at futureofcoding.org. Co-creator of thecodingspace.com and woofjs.com

More from Medium

Low-Power Button Replacement with Force-Sensitive Resistor

First steps on blog

My Experience with Colemak

Check out my upgraded Vagrant project