Hi, the creator here, If you look at how layout is implemented, it's very similar to android linear layout and its intentional. I do have plans for android version :)
Yes, to be precise it's HTML+JS+CSS reinvented. I took lots of inspiration from existing browser standards while developing Jason.
But to be clear, it's NOT one of those html5 hybrid app builders. Jason is a scripting language that you use to manipulate native functions and elements directly. There is no HTML and packaging going on.
Also on the packaging note, the whole point of Jason is you can just write something up quickly and have a functional app running in 5 minutes. No compile, no build, no upload/download, no deployment. All you need is a single flat JSON file and you can share that url with anyone.
Hi I'm the creator of Jason, I was going to wait a bit before I feel ready enough for Show HN but I guess someone already posted :)
Jason came out of my personal frustration with building apps. I think it takes too much time and effort going from an idea to an actual functional app, even if you're an experienced developer.
I really think you should be able to just whip up some script and have it running in 5 minutes, as quick and easy as writing a blog post.
As an example here are two hacker news clients I just wrote up in 2 minutes:
Jason is completely native. It's not one of those html5 hybrid app builders. The JSON script you write is used to directly manipulate these native elements and also can even invoke native device functions such as camera, geolocation, audio/video playback, etc.
In a past project, we had a similar system used where most of the UI of the iOS app was driven by json served by the server. You can definitely do a lot, but the syntax of json had quite some limitation especially when you are trying to code some complex UI actions or add some business logic linked to your dynamic UI.
The system did evolve into using a combination of json and JS using for back then the newly introduced framework JavaScriptCore ... It made everything a lot easier overall since JS is definitely a proper language.
The JS obviously was able to map to native objects and thus performance overall was great. The app is still used by millions of users daily.
I've faced lots of challenges in terms of expressive power while working on Jason, but think I've figured out a lot of them. Could you share some of the challenges you faced? It would help a lot. Thanks!
Looks really cool, thanks for this! If there is one thing holding me back, it's that JSON is a bit of a pain to write manually. Do you have any plans to support a more human-friendly format like YAML[1] or Hjson[2]? I guess I can always manually convert those to JSON, but it'd be neat to not have to.
I'm a huge fan of hjson. I agree it's pain in the ass to write JSON, especially the need to double quote everything. My goal was to release this asap and get actual feedback and work on things people want first.
To answer your question more specifically, as long as you can turn a data into JSON format you can run it on Jason. That's what I do in this tutorial where you can turn any spreadsheet data into JSON and then run it on Jason. http://www.jasonclient.org/spreadsheet/
Good call on getting something out the door quickly and waiting for feedback. Not sure you need to support both YAML and Hjson, just one human-friendly format would be enough, especially as the conversion is easy enough to automate.
My top priority is to make this as extensible as possible, open sourcing is one option I'm considering but it comes with lots of challenges including security issues. I'm still exploring different options, would love to chat, please join the slack channel if you're interested :) http://textethan.us8.list-manage.com/subscribe?u=54e23b3fe61...
19 comments
[ 3.2 ms ] story [ 54.1 ms ] threadBut to be clear, it's NOT one of those html5 hybrid app builders. Jason is a scripting language that you use to manipulate native functions and elements directly. There is no HTML and packaging going on.
Also on the packaging note, the whole point of Jason is you can just write something up quickly and have a functional app running in 5 minutes. No compile, no build, no upload/download, no deployment. All you need is a single flat JSON file and you can share that url with anyone.
Does this make sense?
Jason came out of my personal frustration with building apps. I think it takes too much time and effort going from an idea to an actual functional app, even if you're an experienced developer.
I really think you should be able to just whip up some script and have it running in 5 minutes, as quick and easy as writing a blog post.
As an example here are two hacker news clients I just wrote up in 2 minutes:
ShowHN app: http://www.jasonclient.org/gallery/show/index.html?id=http:/...
HN firehose client: http://www.jasonclient.org/gallery/show/index.html?id=http:/...
Jason is completely native. It's not one of those html5 hybrid app builders. The JSON script you write is used to directly manipulate these native elements and also can even invoke native device functions such as camera, geolocation, audio/video playback, etc.
Please ask any questions, I'm here.
Go ahead and post it as a Show HN when you're ready. We won't treat it as a duplicate.
The system did evolve into using a combination of json and JS using for back then the newly introduced framework JavaScriptCore ... It made everything a lot easier overall since JS is definitely a proper language.
The JS obviously was able to map to native objects and thus performance overall was great. The app is still used by millions of users daily.
Edit: typo and adding more info
[1] http://www.yaml.org
[2] http://hjson.org
To answer your question more specifically, as long as you can turn a data into JSON format you can run it on Jason. That's what I do in this tutorial where you can turn any spreadsheet data into JSON and then run it on Jason. http://www.jasonclient.org/spreadsheet/
Also there's an HTML parser which turns HTML into JSON format and then renders it in Jason (http://www.jasonclient.org/gallery/show/index.html?id=http:/...)
So I'm sure I can add on HJSON and YAML support. BTW please join the slack channel if you're interested, http://textethan.us8.list-manage.com/subscribe?u=54e23b3fe61... I'm happy to chat :)
Good call on getting something out the door quickly and waiting for feedback. Not sure you need to support both YAML and Hjson, just one human-friendly format would be enough, especially as the conversion is easy enough to automate.
Lastly, please join the slack channel if you're interested http://textethan.us8.list-manage.com/subscribe?u=54e23b3fe61... , I'm always there :)
Any chance the code for this will be open-sourced?