HyperPad behaviours through text like regular programming
-
@Deeeds I kinda don’t like AppleScript though, maybe for people who don’t program a lot though, since I’m used to using symbols etc rather than keywords. It’d be cool to have semicolons optional though, and I love to use them sometimes to have two short pieces of code on one line.
Also, the only thing required in C# when making functions is “void FuncName”,
-
@Kamdroid said in HyperPad behaviours through text like regular programming:
Also, the only thing required in C# when making functions is “void FuncName”,
functions maybe.
Methods... I dunno...
Either way, C# is one of the most verbose of all dynamic languages. It make Swift and Kotlin look positively succinct and modern.
-
@Deeeds Aren’t methods and functions practically the same thing (in C#), though functions are not from a class, and methods are?
Either way, they are technically the same thing, just a different term, so thus it would be the same as declaring a “function” (as I called it, however I believe ‘method’ is the more correct term)
-
@Kamdroid There's a "technical" difference.
Methods are functions that are part of a class hierarchy, including being able to be called on the Class itself... if they're a Class method.
Or that's how I like to think of them.
Methods need to be called by their object/instance or class. You can't really call a method without that "address" in some form or another.
Functions can best be thought of as functions (duh) that don't need to be called by an object, they're there, waiting to be called in isolation. So they're already scoped to wherever you are calling them from.
Again, that's how I think of the difference. It's probably mostly made up semantics... so I can know the difference for myself, when I'm making a mess, for myself. As I often do.
For languages like C++ and Objective-C you can have and use (and often do) both methods and functions (more pure C-ish) and blend them together because C is still a big part of what can be done, and C definitely doesn't have methods. It's all functions.
Functions (in OOP) can be called inside instances because they're scoped to their class, more often their instance. You could, I suppose, think of functions as private methods of an instance. If you wanted to. I just did ;)
Then there's Categories, which might be the coolest part of Objective-C. They give you the ability to "inject" functionality into otherwise inaccessible places, even dynamically, at which point the boundary between method and function gets really thin because this is done just about anywhere in your code.
The saddest thing about Swift is that we'll eventually have to say goodbye to Objective-C.
-
@Kamdroid Sorry. Forgot to address the C# part of your question.
I'm pretty sure all that public static void guff means method... in a class.
But it's been a LONG time since I even considered thinking about considering C#
I liked Boo.
-
@Deeeds I don’t think so, pretty sure it’s just depends if they’re independent (not in a class), or are in a class.
But anyway, my point was that you don’t need to specify a method’s access type or if it’s static, unless you want to override its default behaviour.
The only thing required is the return type and name -
Skimming through and hoping I didn't miss the point, a custom language would be finest.
For instance,
INT OBJC = 0
INT OBJPS = 0
INT MAX OBJPS = 15FOREACH [[OBJECT] in [SCREENVIEW]]
IF [[OBJECT] is [BEHAVIORS.FX.ISPLAYINGSOUND]]
OBJPS = OBJPS +1
IF [[OBJPS] > [MAXOBJPS]]
BEHAVIORS.FX.STOPSOUNDEFFECT (OBJECT)
ENDIF
ENDIF
OBJC = OBJC + 1
IF [[OBJC]>[250]]
PROJECT.SETGRAPHICSQUALITY (PROJECT.GETGRAPHICSQUALITY - 0.1)
PROJECT.SETSOUNDQUALITY (0.5)
ENDIFThis would allow hyperPad to formulate behaviors and change settings using this logic, erase the text after parsing the behaviors into a project, and not anger apple. With some work, of course :)
-
@Thecheater887 However, I was thinking of more mainstream syntax, like C#.
If they made a language like that with everything needing to be upper case, I’d just stick with visual coding..
-
@Kamdroid In one of your earlier posts you mentioned new programmers needing a simple syntax.
This cannot be overstated. It's IMPOSSIBLE to overstate this requirement.
But that's not all that's required.
The grammatical rules need to be as easily understood as possible, too.
The creation process needs to be as elegant and simple as possible.
C#, whilst making a lot of sense to you, is one of the most verbose general languages on the planet, for lots of reasons, and about as far from ideal as any known language.
Please read my post about the requirement of this being an intermediary language, linked above.
C# isn't that, either.
If you're going to get as complex and involved as C#, you might as well use Swift and begin porting hyperPad to Swift, because it'd be less effort and a friendlier language. Despite Optionals needing to be explained.
// just watched my iPad crash whilst typing this, it was sitting on the Behaviours Editor, doing nothing... Full iPad restart, in front of me. First time I've seen that in a while.
-
Probably the best example of a command based language that was designed for discoverability and new users was Logo.
Which was based on Lisp, something all programmers (of any worth) seem to agree was the best language, ever. In.The.World! (Summon your inner Jeremy Clarkson voice when reading the above sentence)
I prefer Swift, but that's because I like this capacity, a lot:
myFunkyFunc(block: () –> ()) –> (){}
-
I don't know if you guys realize, but apple doesn't allow apps to expose internal libraries to users. They also don't allow code to be uploaded or shared from within apps, and don't allow code to be executed in apps if it wasn't pre-compiled and included in the app.
This means ALL traditional coding languages are out of the question. Additionally, any language that would need to be executed, or packaged alongside a program would be unacceptable.
Heck, I'm not even certain a custom-command language that is interpreted into in-app functionality as I showed above is acceptable, but it's a lot more acceptable than anything else here.Thanks Apple.
-
@Thecheater887 Yes, this is well known. But it's (quite recently) been extremely relaxed compared to the past. Part of that is a result of the iPad Playgrounds app becoming a thing.
Part of it is a more relaxed stance on these sorts of matters.
And, yes, what I'm proposing is an intermediary, representative, custom command language doing nothing more than exposing the internal activities of a sandboxed, approved creative app's process. Much like automators and things like IFFFF or any other highly abstracted "language" are currently doing.
The key to a chance of approval is that it be limited to the functionality of the underlying app, nothing else possible, and that that already be approved and obviously limited to activity within itself.
This means downloading URL based images and other stuff is definitely OUT. Not an option. Only user created and hosted content (on device) and the App's existing and already approved content and its in-app purchasable content (which is also approved, obviously).
Allay the fears of Apple, basically. Understand why this rule originally existed and play within the spirit of their intentions and concerns.
-
Some people have trouble believing me on first take, probably because I'm sure of myself and somewhat arrogant in writing. In person, I'm far worse.
No need to believe me, read this instead: https://twitter.com/palmin/status/871980560943636480
-
@Deeeds what’s wrong with downloading url based images?
-
@Thecheater887 I thought educational apps could upload and share code, as long as the user could view and edit it?
-
Apple has in fact relaxed the rules. But, some of the other stuff we're doing make it so they wouldn't be too happy (like the hub).
They're still pretty strict though.Also, this is a huuge undertaking and not something we're prepared to do right now. There are some stuff in the works for exported projects and being able to interact with swift or objective-c outside of the app. But it will be unlikely to ever function within the app.
@Thecheater887 welcome back, you disappeared for a while :).
-
@Murtaza Another suggestion: Kill the hub.
Or just let it die. It's distracting from the core attraction of interactivity creativity and an idea from an era of the old internet. An internet that is no more.
There will never be another kongregate, and we've all since moved and grown into being connoisseurs of mobile gaming, social networking and instant messaging.
-
@Deeeds What, why get rid of the hub? You surely can't get rid of and redo everything?
-
You surely can't fight Apple.
The Five Knights of the Future's Round Table:
Google
Amazon
Apple
Facebook
Microsoft// Oracle
If you're in a situation where your product in some way goes against their policies, but is reliant on their platform(s), you only have two options:
- Die Slowly but Surely
- Follow their policies and have a chance to thrive
Apple has made it clear that they consider themselves to be the hub for all forms of entertainment, and that this is their "software" and "service" industry initiative.
Picking a fight with Apple over where people consume or communicate about what they make in your app that's provided via their app store to their devices is... well, frankly... stupid.
Facebook is 1 million times the idea of any and all game hubs, and replaces all of them, forever... with the exception of PS Network, Xbox Live, Steam which are platforms in their own rights, based on enthusiasts which make up a significant but small section of society.
-
@Deeeds I like the hub, and there are some good games on there that aren't on the AppStore yet.
It's also a great way to get others to test your game and receive feedback, and it can be used for free so people who don't want to invest money can still share their creations.
If apple continues to allow it I think it should stay. If the hub gets removed, I'm sure someone else (probably me) would make their own hub.