
Fuze for Nintendo Switch: An easy-to-learn text-based programming language - E765
https://www.fuze.co.uk/nintendo-switch.html
======
drcode
What's great about this is that my daughter and I could use the living room tv
to make a game- Even if the game is simple, it'll be a lot more compelling to
a kid if they can design it themselves and then play it on a giant tv- Looking
forward to trying this!

~~~
rocky1138
I think it's fantastic that it brings us right back to one of the things that
made the first home computers so compelling: the ability to see what you just
did on your TV.

~~~
fsloth
Eh, what. You can connect any modern device to a tv through hdmi and hdmi
convertor. Pc:s, phones, pads...

~~~
rocky1138
I think maybe I'm explaining it wrong. I'm sorry. What I mean to say is that
there was a certain wonder and a strange form of legitimacy that writing
software on a "real" computer that kids got when they were able to type
something into the same device that ran their favourite games/software from
"real" developers and see it show up on the screen just like the big boys.
There was a sense of "Wow, anything is possible now that I can develop real
software!"

The legitimacy of the company that produced Mario, etc. will rub off onto a
new generation of kids and make them feel like they are really playing with
the big boys.

I don't know how to explain this right. I know that I myself still get this
feeling when I see something I wrote running on an actual Atari Jaguar because
I was such a fan of that console when I was a kid. It's like, "wow, I'm
actually a real developer! I made it!"

I start thinking about all the things I can do and all of the possibilities
that are more than just firing pixels on a screen.

It's a form of technological empowerment, and it's something that makes a huge
difference in a kid's life. I know it did for me when I first discovered BASIC
on the Commodore.

~~~
libertine
You're completely right there's a positive emotional response to this - just
like the click when you pressed the cartridge, the same reason Nintendo
brought the _click_ sound to the Switch controls - the sound means "it's fun
time!".

This is about telling stories with your kids - it's a canvas in your living
room for everyone to see, give ideas and encourage - all packed in a box you
have positive emotions towards.

It's not "any device" that can connect to the TV - it's your Switch, and you
can make games on it now!

Fuze can make programming fun :)

~~~
fsloth
My kids would rather play minecraft than code. They can create stuff in it
too. Instant gratification trumps intellectual development 9/10 times if given
free choice. I know some people have the capability to motivate kids in
anything but the only way I know of to redirect mine from games is pulling the
plug.

Yes, I've tried many ways to get them interested on how the stuff they enjoy
actually works, but they prefer to use digital stuff just for entertainment.

~~~
libertine
The problem is how it's being frame - playing minecraft is intellectual
development in a way.

But I get the instant gratification part - which this language, if was well
built, should have small milestones do display progress.

------
micheljansen
This makes me so excited. I grew up just after the BASIC era and my first
computer was a 486 running MS-DOS (without a BASIC interpreter), so my
introduction to programming came quite late. I had endless fun tinkering
around in a commercial product called DIV Games Studio [1]. It included a very
simple language with everything from parallel game loops to video modes, in an
IDE with a debugger, sprite editor etc. You could even compile your games to
DOS executables for distribution. Apparently people are still keeping the
project alive and are making games with it: [http://div-
arena.co.uk/games/](http://div-arena.co.uk/games/)

[1]
[https://es.wikipedia.org/wiki/DIV_Games_Studio](https://es.wikipedia.org/wiki/DIV_Games_Studio)

~~~
sd8dgf8ds8g8dsg
MS-DOS shipped with QBASIC.

[https://en.wikipedia.org/wiki/QBasic#History](https://en.wikipedia.org/wiki/QBasic#History)

~~~
Roboprog
Or GW-BASIC, for people and computers of a certain age.

------
gadgetoid
It's worth noting that FUZE BASIC is a commercial fork of Gordon Henderson's
RTB: [https://projects.drogon.net/rtb/](https://projects.drogon.net/rtb/)

If you want to hack on the code, there's a mirror for the original RTB source
here: [https://github.com/scruss/rtb](https://github.com/scruss/rtb)

It diverged from FUZE back in 2013, though, so it will be quite different but
may be fun for anyone who's more interested in the guts of the interpreter
than the language itself.

------
ajford
Is anyone else greatly annoyed by the FUZE/Python comparison block on the
homepage (fuze.co.uk, ~halfway down the page) that compares the Fuze loop and
Python?

They write the "print" statement like it's damn Java. A simple
`print(outstring)` would have been sufficient, instead of two lines of Java-
esque sys.stdout.write nonsense.

Not to mention something like `colored` and `colorama` or `click` would solve
the colored text thing. Though I'll admit having globals like INK and PAPER
makes things a bit more intuitive for kids.

But the fact that they go out of their way to make the Python example more
intimidating is a little... annoying.

~~~
samfriedman
Including the shebang and encoding at the top, using stdout for some reason,
handling all the color formatting in one dense string...

This smacks of the writers trying to intentionally make their comparison
language look obtuse. A pattern I've seen elsewhere and am never a fan of.

~~~
gadgetoid
This is absolutely what they're doing. It condenses quite easily even to:

    
    
        import random
        import time
    
        while True:
            col = random.randint(30, 48)
            print("\x1b[{}m{}\x1b[0m".format(col, "Hello World"))
            time.sleep(1)
    

Which is still pretty obtuse, but the "random colours" task seems hand-picked
to penalize Python.

It neglects to mention that Fuze has virtually no utility beyond an
educational curio, too, versus Python which is used for many, many things.

~~~
phlakaton
And yet, the example correctly points out that Python, while a suitable
choice, is not the ideal choice when it comes to programming for kids.
Classroom time is precious, and kids need to be able to get right into the
meat of things. Things that are easy for us to grok, like imports and
functions vs methods, are tough for raw beginners. And _no_ kid should be
forced to contend with ANSI escape sequences!

More appropriate would be to compare with some Python programming kit that had
similar graphic environment abstractions:

    
    
      fontsize(4)
      while True:
         ink = rndcolor()
         paper = rndcolor()
         text("Hello, world!")
         sleep(1)
    

But even then, unless you wrap Python with something that handles
imports/globals/etc for you (a la Processing), doing this in Python is still
going to take a bunch of extra gunk.

~~~
gadgetoid
One could argue that Fuze - a commercial programming language - _is_ a bunch
of extra gunk versus the free, open source and widely available alternative of
almost any other language.

But you're right, a fairer comparison would be against a Python learning
environment that sweeps some of the cruft and gotchas under the rug, and
complexity is _very_ tough for beginners.

Speaking from experience running and helping in workshops, I found a lot of
Python learners would name their code "somemodule.py" after the module they're
learning about, and this would subsequently break "import somemodule". So
there's a lot of merit in "safer" environments.

------
felideon
This looks awesome and I can't wait to give it a whirl with my kids.

I am, however, a little concerned about one of Dijkstra's "unpleasant
truths"[0]:

> It is practically impossible to teach good programming to students that have
> had a prior exposure to BASIC: as potential programmers they are mentally
> mutilated beyond hope of regeneration.

I'm not qualified to interpret Dijkstra, so how serious of a warning or truth
is this? Is he just generally polemical?

[0]
[http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EW...](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD498.html)

~~~
romaniv
First, we teach people variables, loops and conditions. Then we teach them
procedures. Then we are horrified that newly minted "programmers" write code
that is a giant mess of nested loops and conditionals, split across
arbitrarily created procedures that manage bloated and fully mutable program
state.

Mental models are important. Life would be better for everyone if people
started learning programming with LISP, Smalltalk, or at least C#'s LINQ in
LINQPad.

~~~
hasanas
Could you recommend a remedy for someone who's spent a great chunk of their
programming experience in misdirection?

I have only recently realised that my terrible misunderstanding of programming
is slowing me a lot.

~~~
noir_lord
Depends on your background, if you are .Net maybe F#, Java maybe Kotlin, PHP
(and I say this as someone who writes PHP as a day job) maybe any other
language in existence.

Functional programming is a completely different conceptual model and even if
you don't use it day to day it teaches you some important principles.

~~~
hasanas
I have been badly taught Java at university (not sure if the course sucked, or
I did, but I am a blunder) and have just found myself drawn into the JS world.
I really enjoy the concepts of OO, but I feel like my knowledge is very
shallow.

Is it good if I rebuild my foundation on JS? I feel like JS is a bit, uh,
messy.

~~~
rubicon33
Do yourself a favor (if you want to be a web developer):

Understand JavaScript deeply.

Write your applications in TypeScript.

------
mmjaa
Does anyone have any experience with developing home-brew or indie games on
the Switch here? I've considered getting one, but I'm limited by the rule
"never buy a system for which I can't develop my own software" .. to what
extent is this true of the Switch?

I'd love to put my Lua-based programming IDE on the Switch, which turns out is
a bit similar to this Fuze project .. but I'm un-certain just how much of the
Switch is locked down and how much is available. Do I have to register to get
full features as a developer, or something?

~~~
j2bax
I haven't checked in on it recently, but last I did inquire, they were being
very selective with developers that they approved for development on the
platform. I think they decided to go with a highly selective quality over
quantity approach unlike what they did on the Wii U which was pretty easy for
just about anyone to get a development kit for.

~~~
kbenson
The original Wii was very selective when I looked into what it took when it
first came out. Do you know whether the Wii U was fairly open _initially_ , or
just towards the end? I'm wondering if they just always start off being
selective to ensure the quality is there initially, and open up more later?

That would make sense, as I think there's plenty of cases where a device
hasn't been selective enough with the marketplace initially, and the deluge of
crap makes people think the market isn't worth using. It's much easier to
shovel crap out the door immediately than it is to deliver a polished product,
so early markets can be quite bad.

~~~
j2bax
It was probably 1/2 way through the lifespan of the Wii U that our team was
approved to develop for the platform. Not sure how restrictive they were
before that.

Everything I've heard is that Nintendo is really trying to keep the quality
bar high on the Switch e-shop though, which I can definitely appreciate. Sucks
for really small shops that don't have the ability to jump through all the
hoops and get approved, but its nice as a player to know the games probably
aren't going to just be gimmicks. That said, the initial release of NBA
Playgrounds on Switch was pretty abysmal... Fortunately they've been working
to clean it up. I guess Nintendo probably just didn't want to be left out on
their initial release and felt like an arcadey basketball game would be a
perfect fit for the Switch demographic.

------
cableshaft
If this is anywhere near as powerful as PICO-8, we could start seeing ports of
those games over to this. In fact, I'd probably port (and finish) my PICO-8
game if it's powerful enough.

------
dash_shi
One quick note, they did not get the google analytics right on their download
page. You can see the JS tracking code under their black head banner at
[https://www.fuze.co.uk/download-fuze.html](https://www.fuze.co.uk/download-
fuze.html).

------
Angostura
I so, so wish something like Fuze was available for ioS. I'm an old-school ZX-
Spectrum tinkerer and I still miss Basic. I can't help thinking it would still
be unsurpassed as a simple (text-based) way of teaching coding to kids.

~~~
robterrell
There are so many things like Fuze for iOS. I've tested a number of them on my
kids over the years, and I'd suggest:

Codea is great. Lua, not basic. Great asset management for games. Pythonista
is pretty good. Python, not basic. Swift Playgrounds is pretty great. Swift,
not basic. You can do pretty much anything, including 3D and AR.

~~~
Angostura
You know what Lua, Python and Swift have in common? None of them are as
immediately accessible as Basic.

Visual programming languages like Scratch et al have risen for a reason.

~~~
robterrell
Swift in a playground is as immediately accessible as basic.

My 5th grade son has been out of school sick this week, and he wanted to
"learn to code" while he was out. Monday he started with scratch on RPi. He
quickly hit the wall there; dragging blocks around was tedious and (from my
perspective) the event model isn't obvious enough or rich enough to what he
wanted (a simple space shooter).

He asked if he could try something where he could type his code. I decided to
let him try swift playgrounds. As of this morning he's worked through the
chapters on commands, composition, functions, for loops, and conditionals.
He's completely baffled by the logic chapter -- he was in tears trying to
understand the concept of NOT, and so I asked him to take a break from it. (I
don't get it... he understand booleans fine, but the idea of negating the
boolean is clearly throwing him.) He skipped ! and did fine with && so shrug.
Fifth graders aren't going to get everything.

I have quibbles with the content progression in the Swift Playground lessons
but overall it's working as intended. It's pretty buggy though -- sometimes
the animated character is clearly on the wrong squares due to an apple bug and
that really hurts learning comprehension.

The real carrot for him, though, is that he's learning the language that iOS
apps are made in. That's really motivating him.

With his older siblings I helped them learn Codea and while Lua is great for
learning, they got hung up on the concept of per-frame update functions, which
is not a Lua thing but a Codea thing. I think an OOP model is a better
metaphor for learners. They had fun in Codea but none of it stuck with them.

My six year old daughter is also working (slowly) through swift playgrounds.
She asked me for help and when I did she berated me for not using camel case.
God help me when she learns about tabs versus spaces.

Anyway: screw BASIC.

------
jamesgeck0
If Nintendo's policies haven't changed since SmileBASIC on 3DS/WiiU, the Fuze
IDE will be the only way to modify your code. Editing on PC or even emailing
it to yourself is right out.

~~~
strmpnk
At least they say USB keyboards are supported. SmileBASIC on the 3DS is great
until you realize you have to use the stylus for all input. I think I’d rather
go back to TI basic on a calculator at that point.

------
Quequau
There's Labview, Scratch, and now I think, Luna. Are visual programming
languages really now so common that we need to specify "text-based" for new
computer programming languages?

~~~
mbel
It makes sense in this context because Switch is a game console with touch
screen and game pad (joy cons) as default input modes. Both of those types of
input are not really typing-friendly, so one may expect that the language will
accommodate for that and be fully or partially visual.

~~~
narag
In the article they say it supports standard usb keyboards.

------
bhouston
Is this an official Switch release sanctioned by Nintendo or do you need to
jailbreak the Switch to run this?

~~~
speps
From the press release PDF: "And just in case you run out, you can create your
own or even purchase additional game packs directly from the Nintendo e-shop."

It also says it retails at 30 USD. I think it's a legit app for the Switch.

------
gjem97
Just to make sure I'm not missing anything, this is not yet available, right?

~~~
MattRix
nope, sounds VERY early honestly

------
LeicaLatte
Hello Bluetooth Keyboard support! Cannot wait to try this.

------
oliyoung
There's no reason i can see yet that this won't pair well with the Labo (since
the Labo uses the joy-con's standard IO to work)

and THAT sounds fun

------
mhd
Looks a lot like BBC Basic.

------
voltagex_
>If you are a budding creative digital artist and are willing to provide game
style graphics, free of any royalty, for use in the release version then in
return, you will be credited within the application and receive a free full
version of the software for both Nintendo Switch and Windows, along with a
selection of merchandising items we may have available at the time. To get in
touch please use the contact page here

How about, you know, paying the artist?

~~~
goldenkey
It's just an offer and you see, those words 'budding' imply amateur work which
might not be worth much. It gets me sore to see innocent things picked to
pieces. I agree on BS internships that use people. But this doesn't appear
malicious.

~~~
voltagex_
You may be right. Wouldn't it be better to run it as a competition or
something in that case?

Anyway, it doesn't inspire confidence - developing a game and getting it
published (especially on a physical Switch cartridge) is much more expensive
than hiring an artist. How do they expect to succeed? Why aren't they
crowdfunding?

~~~
jerf
"Wouldn't it be better to run it as a competition or something in that case?"

Sounds like a worse idea to me. Lots of people do work and only a handful win.
With their current offer, lots of people can do work and lots of people can
win.

Also, the Switch is perfectly capable of using the internet, and has onboard
storage. There is no technical barrier to them choosing 25 winners a month and
offering them as download packs even after release.

------
0d311
... As opposed to all those non-text-based programming languages?

~~~
btown
It's important to distinguish from visual/block-based programming environments
directed at families and children, such as Lego Mindstorms,
[https://scratch.mit.edu/](https://scratch.mit.edu/) ,
[https://developers.google.com/blockly/](https://developers.google.com/blockly/)
, etc.

~~~
masukomi
I disagree. When talking about things you don't need to go out of your way to
indicate you are the same as 99% of the group you are in. It is assumed. You
need to go out of your way to indicate when you are NOT like 99% of the group.

and the fact that it's for the switch doesn't make one automatically assume
it's part of the visual programming group because most of the switch games
were probably programmed with text based languages.

------
MonkeyDan
Just in time for Labo?

------
xchaotic
Sorry to sound so negative, but the closed ecosystem for this is a very bad
fit for encouraging young people to code. They won't be able to share it
amongst themselves, share to other devices such as smartphones etc. There
clearly is a gap in the market and someone with enough resources could come up
with an ecosystem that let's young people code in a simplified environment and
share those results. in fact there's quite a few of such initiatives, it's
just that they are lacking in terms of embracing many modern devices and
latest trends such as sharing via github etc.

~~~
fixermark
Why is "sharing to smartphones" in the set of things we want out of the
technology stack that encourages young people to code?

Smartphones aren't the Nintendo Switch, and (for me, at least) wallpapering
over the differences in hardware platforms is not an exciting part of the
learning-to-code experience.

