
How to build cross-platform mobile apps with JSON - quincyla
https://medium.freecodecamp.com/how-to-build-cross-platform-mobile-apps-using-nothing-more-than-a-json-markup-f493abec1873#.318bp8pum
======
gambler
JSON is the new XML. Except XML was actually designed to have semantics, while
similar attempts in JSON are just hacks.

In general, JavaScript is becoming the new J2EE. Ambitious ideas, clueless
implementations, insane complexity.

~~~
allover
1\. OP article has nothing to do with JavaScript.

2\. It's not like the JS community is anti-XML, most JS libs/frameworks still
use HTML/XML markup for rendering.

3\. The JS community is vast and diverse - generalisations around 'clueless
implementations, insane complexity' don't make a lot of sense.

~~~
devwastaken
>It's not like the JS community is anti-XML, most JS libs/frameworks still use
HTML/XML markup for rendering.

Its pretty anti-XML outside of node. Pure-js solutions for xml are not as
great as built in features other languages provide, while JS only natively
does JSON.

>generalisations around 'clueless implementations, insane complexity' don't
make a lot of sense.

When you are creating languages that compile to JS and adding entire markup
ontop of it along with literally hundreds of dependencies in any average
project, JS has plenty of insane complexity.

~~~
cocktailpeanuts
> When you are creating languages that compile to JS and adding entire markup
> ontop of it along with literally hundreds of dependencies in any average
> project, JS has plenty of insane complexity.

Like parent said, this project doesn't compile to JS. It's simply a JSON to
native mapping.

------
garrettgrimsley
Typo in title. Should read "How to _build_ mobile apps in JSON." And drop the
"Yes, JSON" bit.

~~~
vog
Not sure why this was downvoted. The click-baity "Yes, JSON" is really
annoying and should be removed.

More generally, the title should be corrected to the actual title, which is
almost fine:

"How to build cross-platform mobile apps using nothing more than a JSON
markup"

Maybe remove the click-baity "nothing more than" part, but other than that,
the original title is much better than the submission title.

------
aaron-santos
So why JSON of all things? When I reached the "write a full declarative
program in JSON" section I was internally screaming "but s-expressions!"

~~~
hinkley
Same thinking, I expect, that gave us XSLT.

~~~
stickfigure
XSLT was proposed as a limited transformation language, and actually (still)
does a very good job of that. And since we're doomed to repeat the past we now
see various XSLT-ish languages being developed for JSON/YAML/etc, relearning
all the edge cases that drove XSLT into its current form.

On the other hand, students of the past will notice that Jsonette looks
awfully similar to Ant build files, which sucked. JSON/XML/YAML is a horrible
way to construct general-purpose programs. Computing languages exist for a
reason.

~~~
hinkley
I spent a lot of time with Ant and was pretty good at it because I understood
the tragically backward 'first writer wins' decision they made and had an
elaborate set of techniques to work around it. That decision and the attempt
to keep all conditional behavior entirely out of the build process wounded it
gravely. The fact that they kept making compatibility breaking changes in
minor version numbers was the genesis of my dim view of Jakarta projects. Once
I started noticing the pattern I couldn't stop.

I think we are finally starting to accept that Turing-complete data is a bug,
despite what the Lisp people have been saying for 50 years, and is not a
feature on the Internet. Microsoft served as the poster child in the 90's.

The tension, I strongly believe, comes during debugging. When you are trying
to figure out why the data doesn't look right, the less the code resembles the
data being emitted, the harder it is to locate the source of the error.
Templating engines get pretty close to addressing that concern, in ways that
transforms or generators don't. So we keep trying to invent a better one. But
once you let a little logic in, everybody wants all the logic.

Ant found the Uncanny Valley, in a way that few other tools have managed. I
think I'm okay with your implication that it was actually worse than XSLT,
which is saying a lot.

[edit] Ant is also the reason I shift uncomfortably whenever someone announces
proudly that a tool was 'designed and implemented on a plane trip'. I'd rather
have code you wrote when drunk than code you made while stuffed in a sardine
can, subjected to noise levels that OSHA would have issues with, and suffering
from altitude sickness. You literally designed this while your brain wasn't
getting enough oxygen.

------
zn44
[http://thedailywtf.com/articles/the-inner-json-
effect](http://thedailywtf.com/articles/the-inner-json-effect)

------
MichaelBurge
That's nothing. I can write a chess engine using nothing more than the Latin
alphabet, Arabic numerals, and a couple punctuation characters. All you have
to do is compose these building blocks in the right way, and gcc will take
care of the rest.

------
relics443
I've seen so many projects like this over the years that claim that they're
the one that will allow for true cross platform app development, and they've
developed a simple abstraction for doing so.

I've never seen any succeed at anything more than the most basic apps.

I put more stock in projects like Xamarin or MOE (and even they aren't
perfect).

~~~
drwasho
I understand the sentiment, which is why I approached Jasonette with some
curiosity mixed with scepticism... which I quickly turned into obsession!

The platform is incredible and I've been able to build a complex app in no
time at all. Give it a try, you'll be surprised. I'm in the Slack room too if
you need trouble shooting.

------
redindian75
It is made by the guy who made TextEthan.

direct link: [http://jasonette.com](http://jasonette.com)

------
degenerate
A heads up for anyone wondering if this can do anything "real" on the phone
(such as, you know, take a picture or access the memory card):

[https://forum.jasonette.com/t/media-in-android-
port/79/2](https://forum.jasonette.com/t/media-in-android-port/79/2)

Short answer: _Sort of_ (on iOS) and _No, not yet_ (on Android)

------
kafkaesq
The framework and approach described might be useful in some cases, but... you
still need to understand CSS, HTML, and... pretty much everything about
webfrontendism to meaningfully design and "build" such an app, of course (even
if you do manage to cram all that metadata into a single JSON file).

So it's a bullshit title, basically.

------
Entangled
If it can be done in JSON it can also be done in YAML.

I pick YAML.

~~~
seagreen
Have you read the specs for both? You should read the JSON spec. It will take
you ten minutes. The YAML spec
([http://yaml.org/spec/1.2/spec.html](http://yaml.org/spec/1.2/spec.html)) may
take you a little longer. . .

~~~
Entangled
S-expressions will take you ten seconds still nobody uses them. YAML is made
to simplify the lives of the reader and the writer, not the parser. Let the
parser suffer, let the coder rejoice. You pick your own level of suffering, I
pick mine. Deal?

~~~
cocktailpeanuts
What language you use doesn't really matter much when you can easily transform
one into another. I think that's exactly the case with JSON and YAML.

------
cryptozeus
But why ? What does it solve ? This is xml xslt alk over again.

