Using everyday English language to write Meteor application

Human to describe app, machine to write code

Following text is source code:

My dear computer,

I want site with three pages: home, customers and about.
In home page I want jumbotron with title: "This application is written in human language!", text: "Human to describe app, machine to write code!", button url: "customers".
Please create one collection: customers.
In customers collection I want three fields: name, address and e-mail.
In customers page I want CRUD for customers collection.
In about page I want text: "This application is written in human language using Meteor Kitchen, code generator for Meteor".

That's it, please create this application for me.

Text is input file for Meteor Kitchen and produces this application.

Input file written in English is supported from version 0.9.43. It’s in early stage and doesn’t support all meteor-kitchen features yet, but is already impressive.

Try it yourself - no docs yet (working on it) but try to play with text and see what you’l get.

Text is translated to .json using human2machine npm module - code is ugly (I wrote it in rush) - contributions are highly welcome!

Enjoy! :smile: (and please let me know what do you think)

15 Likes

I can see a really fun demo video of using this with speech to text to make an app by talking to your computer.

9 Likes

Seems like a really awesome concept! :smiley:

1 Like

OK, http://generator-human2machine.meteor.com is online tool - now you can describe app in English and then build and download Meteor app or Android .apk on click - just like that!

Enjoy! :smile:

1 Like

So whats the first thing that comes to mind that would prevent the step from language to boilerplate to change to like full blown app. There’s AI that summarises things, isn’t it possible to like get a hang of whats important in text and create those classes and etc.

Ambiguities will be the stumbling block. Thus it will result in a programming language (i.e. fixed grammar and keywords) which is both less flexible and way more verbose than a “real” programming language.

It has been tried before.

It’s difficult to create full app by just describing it using everyday language, but this thing saves me from typing .json for generator. When I need quick boilerplate (when testing / trying something), I just write few sentences and result is functional app with pages, router, collections, publications, subscriptions etc. (and online human2machine tool also generates functional Android .apk - cool isn’t it? :wink: )

BTW, here at my “kitchen table” I got latest not-yet-published version of meteor-kitchen capable of generating Meteor+React apps, I believe I’ll publish it this week (v0.9.58). And now, because human2machine just generates input file for meteor-kitchen, you’ll be able to generate Meteor+Blaze and/or Meteor+React apps in English! (maybe first react app ever written in English? :smiley: )

2 Likes

FTFY. While it looks nice, I still deem it impractical - in the same way that speech2text dictation never really took off, save for some quite specialized cases.

I’m also curious as to how react works in the boilerplate thing. It’s a front end thing, so is it like almost complete sort of thing- no need to learn react. I say I got multiple choice dropdown upon whose selection other fields disspear and appear or something?

human2machine is pretty cool. Are the following items implemented?

  • using user accounts (auth, google auth, etc)?
  • joins (e.g., I have customers and accounts and I want to see the collections for customers then the collection of accounts for a customer)?

@afrankel currently, answer to both your questions is: Not yet. Meteor kitchen can do that, but you cannot do it in English.

But, “human2machine” is now integral part of new GUI for Meteor Kitchen (coming soon, not published yet) and plan is to continue improving it in the (near?) future.

:slight_smile:

1 Like