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!
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.
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.
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!
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.
When I was in middle school, there was this free web host I found[1] that gave you a small amount of storage and allowed you to load in templates and build your site with a WYSIWYG editor. Anyway, the homepage features a single text field where you type in what your website's subdomain would be (eg, website.20megsfree.com). For years that lone little text field was really exciting to me. With a few key presses and a click of the mouse I could create _anything_ on the internet (as far as 13yo me thought anyway!). And it was up to me to decide what went on the internet.
Mine's a different example, but I know exactly what you mean. It was my first opportunity to make a place of my own on a website and almost 20 years later I'm a web developer and the feeling that website gave me had a lot to do with me getting where I am.
I missed the generation of computers where writing BASIC was just a part of owning one. I think it's a shame that writing code isn't a more integral part of life, but I understand why it isn't anymore.
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.
I've noticed this kind of response before - recall that when Dropbox was first shown to HN, one of the responses was something along the lines of "This is trivial to set up with a linux box and (esoteric techno-babble follows)."
Not wrong, per se, but a super-technical HN reader was not the target of Dropbox, and I feel like it's the same situation here.
While you could, I guess, plug your HDMI cable from your computer running your first hello world python program onto a screen, I think there's something much more tangible and incredible to a child to run their own code on the device they usually play video games on. As a 10 year old, I would flux around with the debugger cheat in my Star Wars n64 game and think "well obviously these numbers change the color of fog, but how on earth did they code the actual game? The characters? The lasers?" What's being demonstrated here is "look kids, it IS possible for YOU to write code and run it on a video game console! YOU can become a game developer, if you learn about this stuff!"
Another anecdote - my uncle gave me his old computer to pull to pieces, I wanted to know how it went from circuits to showing Windows on the screen. I finally get to what he kept calling the "motherboard" and "processor," which he said is where most of the work is happening. So I pulled off the processor, disappointed at just seeing more circuits. He said there was even more circuitry inside it, so I cracked it open to find a black blob of I guess silicon. Nothing revealing how it worked! "What'd you expect to find," he asked, "a brain?" Imagine if the gap had someone been bridged by the existence of arduinos back then, or even just redstone in minecraft - a direct link between logic gates and, say, a calculator working.
I know you meant intellectual empowerment but in the current employment market "YOU can become a video game developer" sounds like "YOU too can be a slave and work the salt mines". Where my kids passions take them, I let them happily choose it but it's unlikely I'm going to encourage them to pick one of the most precarious, underpaid shitjobs available to keen minds. I'd rather have them being the capitalist rather than slaving under one. I know not all gaming jobs are like that but given the rising power of companies and the availability of labour (everybody loves video games) it's unlikely to be any better in the future.
Besides, games are not important. They are really fun, but things like medicine, art, literature and mathematics are way more important. All of which programs can empower, sure.
I know we all here love code, but objectively speaking, it's not the best thing in the world unless a person has a specific inclination towards it (like I do, but not all do, and it's totally fine).
Woah, it seems like you feel very strongly about this subject, is that interpretation correct? Why is that?
I feel like statements such as
>games are not important
are very unfair. Same with your assumption that a game developer will be I guess a capitalist slave? What about indie developers? Crowdfunded developers? Dwarf Fortress?
Some indie games that have exploded, off the top of my head:
* Flappy Bird
* Shovel Knight (crowdfunded)
* Divinity and Divinity 2 (crowdfunded)
* Stardew Valley (single developer)
* Minecraft (was a one man passion project)
* Terraria
> I know we all here love code, but objectively speaking, it's not the best thing in the world
What gives you this perspective? Speaking as someone who has tried art/literature, I think it's a false narrative that the "starving artist" is happier because their work is more "fulfilling" or something. I tried that, and yea I loved my art and I loved pursuing it, but it didn't pay the bills, and I still had to have just a regular job to keep it up. A sales job, keeping me at a healthy but relatively insignificant 40k/year, limiting my travel options and forcing most of my time to be spent sustaining my ability to eat and pay rent.
Then I discovered programming - still a creative endeavor! I can work for a company, freelance, work from home, work much better hours, and at that paygrade I could afford to get solid savings that grants me the confidence that I can retire at some point to pursue my writing full time, if I want.
As for medicine, my conversations with friends who have to put up with 10+ years of medical schooling at massive costs only to suffer through 60-80hr workweeks and claw their way up the medical ladder have convinced me that that path is not something I would like to entertain.
> What's being demonstrated here is "look kids, it IS possible for YOU to write code and run it on a video game console! YOU can become a game developer, if you learn about this stuff!"
You do realize that people play game on PC too? The main issue that you are trying to address, i think, is whether there are other frameworks in teaching kids programming with games?
In, fact the part of world where i live in, it is much more expensive to buy a nintendo switch than to assemble a computer and hook it up to your tv and use scratch to teach the kids.
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.
Almost every old wizard-level programmer I've talked to started off by being massively inspired by the ability to program games when they were kids.
A teaching technique as old as teaching - find something the kid is actively interested in and excited about, and sneakily teach them stuff using that.
I introduced my 8 year old to Scratch and he loved it. But generally games and videos they could be enjoying on a device are so distracting in my kids minds they are not really interested in the concept of further education in the subject. They'd rather play Minecraft. Which is totally fine, not anyone needs to be a programmer and I'm not going to jepardize any internal motivation to the subject in the future by being overtly persuasive about it.
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/
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.
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.
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.
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.
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.
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.
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?
By contrast, FUZE (https://fuzebasic.com/bin/FUZEBASIC_Programmers_Reference_Gu...) looks like it has all of the modern affordances you'd expect, like block IF statements, local variables, and the ability to refer to subroutines by name instead of by line number.
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.
If you want to learn about functional programming, something like this could give you fun and relatively painless head start: http://www.4clojure.com/ . Also, you could try to download LINQPad and look at code examples.
If you want to learn about real OOP, I would recommend looking into Smalltalk, learning about design principles behind Xerox Alto/Star and listening to some OOP seminars from mid-80s.
If you want to learn about high-level system design, here are some intelligent people I would listen to: Alan Kay, Rich Hickey, Peter Norvig, Salvatore Sanfilippo.
I would also recommend every programmer to watch through at least one introductory AI class. Not because they necessarily need to work with AI algorithms, but because those classes teach to solve programming problems in a better way than just "write more logic and abstractions".
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.
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.
It’s a bit dated, but read “JavaScript, The Good Parts”. Also, check out the Ramda.js library, which brings quite a few good functional programming (FP) techniques to JS.
Function scope is good.
Closures are good.
Higher order functions are good.
Partial function application is good :-)
Warning: if you get too used to FP style programming in JS, Java will feel quite painful afterward.
My first exposure to programming was basic for the TI calculators. Didn’t even really realize I was programming. The second was Visual Basic. The third was C, and that’s when I really took off, got interested in programming and enjoyed it since.
My experience may nor count for much, as I didn’t dive too deep to either of the first two basics. But I’ve read far too many stories of good programmers getting started on BASIC from code samples they read on books and magazines. So I would say it’s fine.
Also, for all the great things that can be said if Dijkstra, he wasn’t exactly known as a positive motivator, so I’d take his statement with huge grains of salt.
I started as a kid with BASIC on an Apple II, went on to get a computer science degree, and worked as a developer for 22 years before becoming a teacher. The limitations of BASIC actually created a desire in me to learn better languages like Pascal.
My first exposure was to BASIC and I turned out fine, like countless others. Remember that Dijkstra was an academic and a fairly radical one at that; people like him pushed the envelope in the best way, but despite their protests and the inadequacies of the languages, COBOL, PL/I, BASIC, and other such languages are "how the West was won."
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?
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.
Unlike the Wii U, which had a fairly accessible developer program, the Switch is still out of bounds to your average hobbyist developer. Nintendo have been pretty quiet about it too, other than instructing people to get in touch with them if they think they should have access to the Switch dev kit etc.
They've also been very quiet about whether the Nintendo Web Framework, a HTML / JS based set of APIs for the Wii U, would be available for Switch. I hope it is. Unity is great but the NWF would be great for prototyping etc.
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.
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.
They're still in the early stages, but it's promising considering it's from the same team that made the successful Citra 3DS emulator. I know it's not technically "developing on the Switch", but it might give some insight.
Even more progress yesterday, whole system on FW 3.0.2 and below has private homebrew. There's also a homebrew development library already out that you can use right now (on switch 3.0.0 only).
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.
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.
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.
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.
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.
I've taught middle-schoolers coding with scratch and they like it a first but quickly get tired of the interface especially for anything more than 'hello world'. Some even went as far as coding things up in pseudo-code on pencil-paper and then translating to visual/scratch. IMHO the best scratch impls let you switch to python/js without losing fidelity.
I'd argue that Lua is far, far more accessible than Basic. It really depends on the environment in which you stick it, though. Take a look at antirez' LOAD81 for example:
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 ceiling hits pretty fast especially if the kids are really understanding the principles.
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.
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.
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?
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.
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.
>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
It seems like no one is obligated to provide assets if they are not willing to be paid. There are many digital who already provide assets for free and would love to donate to a project such as this.
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.
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?
"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.
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.
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.
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.