Deciding on Pico-8 vs Tic-80 for teaching tweenagers to code. They're very similar systems - either is fine.

I think Pico-8's 128-pixel-wide screen is too small for coding on. Tic-80s is 240 which is nearly twice as wide. Yes, you can use an external text editor for both, but I think that's a distraction for people starting out.

Tic-80 has slightly better graphics - two layers, more colours. But I don't think that matters for the kids learning.

Otherwise very similar - anything I'm missing?

@TomF Playdate? TIS-100?
@jkaniarz I meant, anything else to differentiate between the two.
@TomF Pico-8 has a source code limit of 8k tokens so you likely won’t reach the 64k byte limit that they both have.
@TomF with tic-80 they can join byte jams like @FieldFX 's once they get confident enough which is a lof of fun in itself but they can also download the code from past jams which is super fun to learn from
@TomF biggest difference is Tic-80 doesn't have any artificially imposed performance bounds
@mrsbeanbag For proper retro programming, I regard that as a problem - the limits are the point. But for what the kids will be doing, they won't notice either way.
@TomF well they might, it's probably not that hard to hit the limit and get frustrated at how slow your program runs. although that could be educational in itself.
@TomF I dont know about those models but I will chime in to say I think theres value if they can see the raw board directly with own eyes. like how Arduino/RaspPi class were by default. cuz has psychological effect of emphasizing the nitty gritty reality of what is truly running their software and bringing it to life. the weird blob of wires and chips and circuits that the machine's thoughts pulse along. even being able to point them at the frequency timer (still crystals? dunno) can make it stick
@synlogic4242 I agree, but I'm 8 timezones away, so it's a bit tricky :-(
@TomF I used TIC-80 and Python for a small class I taught. It made it easier to avoid Lua weirdness, and some of the students already had a little Python exposure.
@TomF don't have a strong reason for why, but TIC 80 just has everything you need and it works well. It's also good for learning tricks, like scan line interrupts to update palettes. You can use it at the most basic level, and then you can go deeper. Same might be true for Pico but don't have the experience to say.

@Lacey For the demoscene stuff, Tic-80 is clearly better. Racing the beam, more colours, two display planes - there's a lot of potential there. I don't like the lack of performance model, and I also think textured triangles is just blatant cheating, but oh well.

I think these kids will take a while to get close to these levels of coder skills. But you never know!

@TomF the performance bit is a pain. Took me a while to get used to that!
@Lacey The Pico-8 is what - 4 MIPS or so? That's twice as fast as an Amiga, with a quarter of the pixels. Luxury!
@TomF they are far more forgiving than the machines they initially appear to be like. I'm sure Pico is the same but a great thing with TIC for new developers is that everything is safe. i.e. try and draw outside of the screen and nothing bad will happen
@TomF I haven’t seen any for Tic-80, but you can get/make actual hardware for Pico-8. Once they’ve made some progress or as a milestone/reward, being able to mess around on a little device and take their thing and show friends may increase the cool/motivation factor

@TomF Language? I'm certain you're able to help with anything, but PICO locks you into Lua which again is a design constraint I like.

I was going to suggest Picotron if you wanted more screen space but with a caveat: I adore the PICO family but as a hobbyist, I've been struggling with how some of the backend metaphors work on Picotron in execution. The documentation isn't quite where I would like it to be (specifically PODs - I cannot figure them out) but PICO-8 is very well documented.

@DJTentMode Lua is totally fine. I actively dislike Python for all sorts of reasons, and I don't know the other languages, so I'm not going to be teaching in those :-)

Pico-8 has the funky 16:16 fixed-point number format, which I actually kinda like for the retro feel. But again I don't think these kids will even notice.

I am dubious about Picotron. I don't like the "workstation" feel. We shall see...

@TomF I've never ran into overflow problems in P8 in my own work and I have enough experience to ask about how numbers are internally represented. I don't think it will matter.

Post their progress! My oldest wrote a text adventure in Python for her coding class and it was great fun (except how I kept dying and she kept laughing at me).

@TomF i would not want to teach lua solely because i think 1-based indexing is such a bad idea.

(its what i learned when starting out in gwbasic; later learning c and assembler, i had to unlearn that habit again before i could understand how 0-based indexing made most problems simpler and less off-by-one prone)

@vfig @TomF I started with VB and I turned out fine and so did you, I'm not sure 1 based array are a real block to learning programming. Besides, you can force 0 base index array if you want in pico8
@greenmoonmoon @vfig This is the thing. All the best coders started in BASIC and we all survived. Lua is 10x better in every way!The kids will be fiiiiiiiiine.
@TomF Both are excellent choices.

@TomF If you're explicitly "Lua is fine" I understand TIC-80 to be Actually Standard Lua which they can take elsewhere, while PICO-8 is more its own dialect in ways beyond just the floating point.

If they'll be plausibly advancing to Love2d it's a shorter hop from Tic-80.

Part of me wants to compare this to MS vs Sinclair BASIC but I shouldn't OH NO TOO LATE

@mcmartin All BASICs are heretical, but I agree some are a little more heretical than others.

Sinclair Basic had the finest substring handling of any of them though.

@TomF Hmmm, isn't it about the same as the Atari's? I guess you don't have to dimension them in advance.

I will happily allow that Sinclair (well, Spectrum, anyway, I think ZX80/81 lack it) had the best LOAD and SAVE commands of the pack.

@mcmartin I agree that

LOAD *"m";1;"MYFILE"

is totally fantastic syntax of course it is :-) (the Microdrive made things a tad complicated)

@mcmartin Anyway, to all my lovely coders out there, I want to stress.

THE LANGUAGE DOESN'T MATTER. You can learn a language in days. I have literally forgotten how many languages I once knew and have now forgotten.

This is why I say "know the next level down". Once you do that, the actual language you're using is irrelevant. Switch it out - whatever. Because you weren't thinking in that language anyway, right?

@TomF @mcmartin I believe the BASIC on the Enterprise 128 is quite advanced, it is even indented like a modern language, plus the hardware is very Amiga-like for an 8-bit machine. It’s a pity they took too long to get to market and sank along many others.
@TomF Just don't get Pico-7. It's not a fantasy console, it's a negative pressure wound therapy device. I had a Pico-7 attached to my back for a week, not pleasant.
:)
@TomF does tic80 have the equivalent of pico8's flip()? I couldn't find it, and these days I use that paradigm a _lot_.

@Farbs @TomF I can't see any direct equivalent to flip in tic-80. Although one benefit is that I'm actually looking in the source code to check if it's an undocumented feature. :)

(Hmm, I really need to get back to modifying Tic-80 to work as a library so I can run it inside of other games like the System Shock 2 Game Pig)

@Farbs As I understand it, Tic-80 just displays whatever is in the framebuffers (it has two planes) after you exit the TIC() function.

You can then "race the beam" with the BDR() command if you want, but otherwise it's assumed that all the code in TIC() runs, THEN the screen is displayed all at once.