Hacker News new | ask | show | jobs
by wircho 4015 days ago
Hi everyone. The author here. A couple of answers to much asked questions:

Why JSON? Mainly because it makes it natural to embed JSON objects into code that's otherwise purely functional. Also, as @detaro pointed out, it saved us the time to build our own parser.

Why not use an interpreter/compiler for an existing functional language? Building our own language allows us to control the reach of the code and prevent malicious stuff. Having our own compiler is also useful when threading and networking matters as much as it does to us, since there is simultaneous front end and back end processing.

The result is a very simple syntax for API aggregation where we take care of all the hard part in the background :)

1 comments

So security through obscurity, well done.
It's more straightforward than this. Think of it as a more comprehensive Yahoo Pipes or IFTTT, where the nice graphical interface is not yet released publicly. So for now developers can just write the raw JSON. Yes, a LISP interpreter would have done that job (as would a library written in some other programming language). However you are not allowed to download code into an iOS app (precisely for security reasons), and so we're downloading items from a predefined documented list of macros. This simplicity, in turn, makes creating a graphical interface a lot easier, without sacrificing the fact that the structure is as flexible as a functional programming language.
So your language is not turing complete?
I would say it's not, since it lacks conditional branching, although one could argue that you can simulate a Turing complete system on a Relevant card by having a user indefinitely tap on a button that refreshes it at the next state.
Understood, I stand corrected. Anyway, I would have used some kind of non-turing complete stack language.