Why iOS?

Skip to first unread message

Ivan Schuetz

Feb 9, 2013, 1:22:21 PM2/9/13
to visi...@googlegroups.com

I just watched the Screencast from David and read some descriptions about Visi in the webpage.

Was wondering (couldn't find an answer), why is the project for iOS/iPad? Just curious about the philosophical or practical reason behind this. Is this only transitory?


David Pollak

Feb 9, 2013, 6:09:23 PM2/9/13
to visi...@googlegroups.com

I originally envisioned Visi as a HyperCard/Excel style application for the iPad. I envisioned Visi as a way for people who don't self-identify as programmers to build apps for the iPad. These apps would be like the apps that people used Delphi and PowerBuilder and HyperCard and Access to build on other systems. I still think a system like this would be good, but unfortunately, there are a lot of technical and legal hurdles to get such a system built (Apple restricts programming environments on the iPad.)

After talking to a lot of folks, I realized that Visi code had to run anywhere. The original Visi implementation was in Haskell which runs a lot of places... but I realized that if Visi code got compiled to JavaScript, then it could run anywhere (iOS, Android, browser, Java servers, Node servers, inside of CouchBase... anywhere.)

So, I moved Visi over to Scala (I may re-do it in Clojure because I think Clojure has much more of the vibe I want in Visi and I find the compiler bugs in Scala a real downer... but it would mean learning a lot of Clojure idioms which will take time.) Visi is now a compiler that compiles the Visi models into JavaScript.

The screencast takes the emitted JavaScript and the type information (which I will surface as JSON data) and emits Objective-C.

This changes the focus a little an app-builder on the iPad to a part of the Xcode workflow. But nothing in Visi assumes the iPad platform (well... other than the Objective-C output... but that is just a layer on top of the rest of the type inferencer and compiler).

If you're interested, you could take the emitted JavaScript and associated type information and spit out other code. I'm actually thinking of integrating Visi with Lift so that people can express logic in Visi and it will run identically on the client and the server.

Hope this answers your question.




You received this message because you are subscribed to the Google Groups "Visi Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to visi-lang+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Telegram, Simply Beautiful CMS https://telegr.am
Lift, the simply functional web framework http://liftweb.net

Reply all
Reply to author
0 new messages