Live data from Hacker News

Fuze for Nintendo Switch: An easy-to-learn text-based programming language

fuze.co.uk

61–70 of 106 posts

Re: Fuze for Nintendo Switch: An easy-to-learn text-based programming language

#61

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…

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.

Re: Fuze for Nintendo Switch: An easy-to-learn text-based programming language

#62
post #56

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 colore…

I just makes me sad for a developer that actually created that language, who put lots of knowledge and work in it. And then someone (I assume not same person) try to propagate it using such stupid example.

Re: Fuze for Nintendo Switch: An easy-to-learn text-based programming language

#63
post #46

Earlier quoted context omitted.

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

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…

I would suggest that maybe this says something more about you and your natural passion, than whether your first intellectual doodles were on a TV or a monitor.

Re: Fuze for Nintendo Switch: An easy-to-learn text-based programming language

#64

Earlier quoted context omitted.

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.

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 i…

The sad thing is, I'd bet that the developer first turned in something like what you've written, but was then asked to "make it more complex".

I'd like to see a satire done in a code-golf style: you think writing a line to a file in Python is easy? Think again, after you read this 400-character line of lambdas, string interpolation, and chained ternary operators!

Assembly code could be made to look like the sane alternative at the (il)logical extreme.

Re: Fuze for Nintendo Switch: An easy-to-learn text-based programming language

#65
post #46

Earlier quoted context omitted.

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.

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

Yes, you can hook up a laptop to a TV. Then you'll sit down your eight year old and explain all of the messy tooling and errata of :insertlanguagehere:, and after multiple hours of stumbling through an IDE with too many features for them to comprehend (or a CLI environment that simply frustrates them), they'll say "damn, this sucks."

It was without a doubt significantly easier to start programming when the process consisted of hook the Commodore up to the TV, plop in your disks/tape, and write in a dead simple language that can be largely described in a few short pages. We haven't had anything like that for years; a spiritual successor to BASIC on a set hardware and software environment (the Switch) is as close as we'll probably come in this day and age.

Re: Fuze for Nintendo Switch: An easy-to-learn text-based programming language

#66
post #29

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 Swit…

The switch is heavily locked down, and afaik getting into the developer program is expansive and out of reach for most. But with some hacking, we can get around that.

Homebrew is still brewing (excuse the pun). There are two toolchain being developed, libtransistor and libnx. To run the code, We have one public exploit for 3.0.0, and a private full system compromise for 1.0.0 all the way to 3.x, which should be published Soonish.

Disclaimer: I am heavily invested into libtransistor. This toolchain is still in the early days, but an snes emulator, doom and SDL got ported to it, with visual output (software rendered), audio and input.

Work is ongoing to get hardware acceleration, c++ support, and various other things. Some people are trying to port Love2D to the switch, allowing for homebrew written in lua just fine.

And a lot of the console is documented. Check the switchbrew.org wiki out.

Re: Fuze for Nintendo Switch: An easy-to-learn text-based programming language

#67
post #22

Earlier quoted context omitted.

I learned on QBasic and have been out of the game for a long time but how do the kids start out these days? Do they use Python or JS? BASIC seems like the perfect language for complete beginners to start out on due to the lack of things like imports or main methods needed initially.

Scratch is frequently used to teach kids, but my (middle-school-aged) students found actual code in Python and JavaScript to be easier. There was a couple hours of frustration around some syntax things (python especially if you can believe it!) but once they had a good mental model they were much much faster with text than with visuals. Perhaps Scratch is good for the first couple days of learning, but I think the ce…

Scratch then Construct 2 (outputs js)

Re: Fuze for Nintendo Switch: An easy-to-learn text-based programming language

#69
post #33
post #29

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 Swit…

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.

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.

Re: Fuze for Nintendo Switch: An easy-to-learn text-based programming language

#70

Earlier quoted context omitted.

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.

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 i…

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.
Post reply on HN