Hacker News new | past | comments | ask | show | jobs | submit login
BASIC gaming-dev app for iOS (inutilis.com)
59 points by gattilorenz on Oct 15, 2016 | hide | past | favorite | 20 comments



Neat idea, but doesn't it run afoul of Apple's allowed apps? I seem to recall something similar that was taken down for allowing "dynamic programming" to be done. Maybe the limitations imposed by the language limit the scope enough? I could be completely off the mark, maybe I'm remembering wrong.


They removed that clause a few years ago :) You can now load code at runtime as long as it's sandboxed. JS inside a UIWebView, for example, is widely accepted.


Can you point to where they removed it. AFAICT it's still in full force. Your example of JS inside a UIWebView is true but anything else is not. The only allowed code loaded at runtime has to be either (a) already in the app or (b) executed by a WebView.

In other words you can't execute downloaded code in BASIC unless that BASIC is implemented in JavaScript running in a WebView

Is your app doing that?

From the current (as of 2016/10/16) app guidelines

2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code, including other iOS, watchOS, Mac OS X, or tvOS apps.

It's also more explicit in the developer license dated 2016/9/21

3.3.2 Except as set forth in the next paragraph, an Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exceptions to the foregoing are scripts and code downloaded and run by Apple's built-in WebKit framework or JavascriptCore, provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store.


> provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store

But does this part not prevent all coding apps? As any code will change the intended behavior of the app simply because you cannot describe behavior of something Turing complete that can be loaded from the web and be changed by anyone?


> provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store

But does this part not prevent all coding apps? As any code will change the intended behavior of the app simply because you cannot describe behavior of something Turing complete that can be loaded from the web and be changed online?


Oh, excellent! Good to know, thanks!


I really wish this myth of "if it's a beginner language, it must be a dialect of BASIC" would die out already.

Yes, BASIC was designed to be a language for beginners. And yes, it actually delivered - in the age when "serious" stuff was written in Algol, PL/I and FORTRAN. Things have changed a lot since then, though.

And there are so many better choices for a beginner PL these days, there is absolutely no reason to go for BASIC other than nostalgic value - which, to a newbie, means nothing.


Right. Even a "slimmed down" version of JS would be suitable for beginners.


I was thinking more along the lines of Lua and Python.

JS would need to be significantly reworked to be a good beginner language, IMO. C-style syntax is not the most readable option, and then there's all the weirdness around types and implicit conversions, strange and non-intuitive design of built-in data structures (object vs array similarities and differences, for example), and weird variable scoping rules.

Lua has pretty much everything that JS has that is worthwhile, but done better (e.g. the only data structure is an associative array, but they all behave the same unless and until you start to customize them). Syntax is more natural and easier to explain, too.

Python is nice in that basic programs are as short as they need to be (i.e. you don't need to import packages or define classes to print "Hello, world"), but it does have the concepts that mainstream "grown up" languages have - the aforementioned packages and classes, for example - and they can be gradually introduced and explored one at a time without distractions. Also, turtle graphics out of the box - still the best way to explain things like recursion, IMO. So, you get a great teaching language, and it doubles as a great general-purpose programming language for serious stuff once the teaching is over.


Basic at least has compilers to native code, while being beginner friendly.


For beginner tasks, it usually doesn't matter - even a dumb AST interpreter will do.

For more advanced stuff, BASIC compilers usually don't generate particularly impressive code, because the language allows so many inefficiencies. Code generation is better if you're strict about your types and explicit about your conversions, but then you might as well just write in C or Pascal.


Oh god, this is like programming on your TI-83 in math class for a whole new generation. :D


I don't know if OP is the developer of the app but I would be interested in knowing if they wrote their own interpreter. I've done a minimal BASIC interpreter in swift as fun project - https://github.com/jdmoreira/foobarbas it would be cool to discuss specifics and compare the implementation.


I'm not, sorry. Just discovered the app and thought it's a lovely idea


Similar in spirit to Pico-8 (desktop), or Petit Computer (DS)?


Nice. Brings back memories of one my first ever computer books I bought circa 1980 to learn programming. Cut my teeth learning how to build games in BASIC using this book [1]

[1] - http://bitsavers.trailing-edge.com/pdf/dec/_Books/101_BASIC_...


It's deja vu of the classic TI99/4a, complete with the wonders of GOTO and GOSUB! What great times. Hunt the Wumpus, anyone?


This is pretty cool, but how many people are actually going to want to learn BASIC just to build games in this app?


I imagine that those of us that still remember it would already be a big customer base. :)


You don't have to learn BASIC. Trust me, it's imperative programming 101. There are just 15 keywords or so. You'll get the hang of it in 5 min.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: