78 karma · joined April 30, 2015
It's demonstrated in this short video: https://www.youtube.com/watch?v=3Ea3pkTCYx4
You can try it out in your browser at: https://codepen.io/kgr/full/yLQyLjR
Just select the game you want to to run from the top-left list box, then press the "Compile" button and you'll see the translated JS source in the right text-area. Then press the "Run" button to run it.
The source code for the compiler is available at: https://github.com/kgrgreer/foam3/tree/429f2fd2b4cef0e37996a...
I explain this a bit by means of a simulation in this video: https://www.youtube.com/watch?v=3Ea3pkTCYx4
A quick explanation is provided in this video: https://www.youtube.com/watch?v=S4LbUv5FsGQ
And more details can be found at: https://github.com/kgrgreer/foam3#videos
FOAM is a modelling framework that generates cross-language boilerplate for you, but it takes a much broader view of what constitutes boilerplate than most systems. Typically, it can generate between 95-98% of a working cross-language cross-tier system.
FOAM helps you create features for modelled data. Features include things like a Java/Javascript/Swift classes to hold your modelled data, code to marshall to/from JSON/XML/CSV/etc., various GUI Views, and support for storing your data in various databases or file formats. However, FOAM models are themselves modelled, meaning they're afforded all of the above benefits as well. This lets you apply the MVC technique of having multiple views work against the same underlying data-model concurrently (say a grid and a pie-chart in a spreadsheet), so that you can choose the best view or views for your current need. When treated this way, your code is no longer text (but it can be, if that's one of your views), and you can easily view and store it in many different ways and more easily programmatically manipulate it.
A little late for that. I see that my Chrome browser is currently using 2.66GB of RAM (for about 40 tabs, or about 65M per tab). I remember when I first started using Java, my whole computer only had 8M of RAM, and while it has gotten larger, I think it is still considerably lighter weight than a web app, despite also giving much richer APIs and multi-threading. The advantage of web apps isn't that they're lighter weight from a systems resource point of view, but lighter weight from a user's effort in installing and using the app, point of view (now that Applets are gone).
https://toronto.ctvnews.ca/premier-doug-ford-to-hold-first-n...
To continue your analogy, if 95% of your house were made of glue, and 85% of the cost of your house was to buy glue, then that would be some cause for concern. That is pretty close to the truth for software.
I think this the most important problem in software development to be given the least amount of attention, or even awareness. Another new MVC framework, build tool, or even programming language, isn't going to solve this problem. First we need to acknowledge the problem.
Videos:
1. The FLOW Shell: https://drive.google.com/file/d/0B6Qg3A0fSZHoNk5EX3ZkREEwbUk...
2. FLOW 2D Turtle Graphics: https://www.youtube.com/watch?v=4wO_RrftJTE
3. Background: https://www.youtube.com/watch?v=-fbq-_H6Lf4
"Risk compensation is a theory which suggests that people typically adjust their behavior in response to the perceived level of risk, becoming more careful where they sense greater risk and less careful if they feel more protected. Although usually small in comparison to the fundamental benefits of safety interventions, it may result in a lower net benefit than expected" -- https://en.wikipedia.org/wiki/Risk_compensation
Something like a GmailMVC would be better.