Didn't know you could execute javascript emebedded in an image like that. I used some basic filtering rules, but I can clearly see I have some way to go. I won't sleep tonight until I get this fixed!
EDIT: The glitch in the matrix is no more. Thank you for pointing this out!
As someone who got into coding at age 11 thanks to ROBLOX and it's use of the lua scripting language: I can recommend!
A lot of beginners get discouraged because their program is A: a boring command-line (don't get me wrong, cli is cool), B: too complicated to do something of relevance.
The Roblox-API allows you to do e.g. spawn a explosion in a one-liner: Instance.new("Explosion",game.Workspace)
It allows you to do almost anything a game would need (GUI, networking, physics, databases, you name it), with a very straight-forward API. Checkout https://developer.roblox.com/en-us/api-reference , they also have AWESOME tutorials which also explain some mathematics https://developer.roblox.com/en-us/articles/CFrame-Math-Oper...
Roblox made learning these various disciplines straight-forward and easy, I still benefit from it today!
Though it also taught me some ... less favorable habits, as they are more common place. Think of: Continuously calling wait() until something loaded, Excessive use of globals, overuse of strings, coding single god-functions that do everything (with a frick ton of redundancy).
Remember who the demographic of Roblox is: kids and early teens. The people who create the scripts for it are also fairly young, think teens to young adults. So bad practices are more common here, especially in some YouTube-videos (seriously, some are terrible learning-resources).
I still believe it is easier to teach good habits to folks who have experience with bad habits, than to teach folks who have no experience at all. It's not too hard to find examples of how those issues (e.g., globals, stringly types, god-functions) can backfire once you get to scale, but it's really hard to motivate them when folks are still trying to wrap their head around function calls and variable assignment.
You can impart the concept on those without experience, but what you get is cargo culting. Often better than nothing when used for good, but causes sub-optimal (at best) solutions in some cases where people refuse to acknowledge or don't even see better ways to do something because it goes against what they were taught.
That's not to say I'm free of this. I doubt any of us are truly free of this. That said, recognizing it's a thing means you can try to put something into your design practice/workflow where you sit back and think if there's a better way that's a "hack", and try to honestly examine the pros and cons and whether it's actually the better solution.
This is quite true. We are building a VBA interpreter and the language is full of problematic practices. Go's much-maligned if err != nil pales in comparison to On Error Resume Next. Good static analysis and linting really helps here.
It will be released as open source over the summer. Currently only the interpreter is working. We are still building out the UI builder and editor. Take a look at our earlier comment regarding motivation/business model:
What's your stance on accessibility? I'm worried this tool could be used by enterprises, considering their reliance on VB, so this is pretty important IMO.
Yeah, it would be fun to imagine a language designed with a video game style unlock progression. I remember programming in TI basic with a small number of global variables and subroutines. No scopes, no local variables, functions _couldn't return variables_, you had to manually keep track of which variables a subroutine was allowed to use, and where it would write out its outputs. After a few months with this functions, scopes, and return values seemed like super powers!
Wow I didn't realize it was released in 2006 and there's already programmers entering/already in the workforce that started there. I though it was much more recent.
I learnt to code through Roblox and now work as an engineer in a FAANG company. Of the particularly niche audience of teenagers I met on that platform many also owe their careers in tech thanks to the accessibility and gamification of coding.
My thought was "damn, I thought 2006 was recent". But I'm very happy to have seen the field grow so much. I hope my kids employ some of it in whatever field they eventually choose.
> Though it also taught me some ... less favorable habits, as they are more common place. Think of: Continuously calling wait() until something loaded, Excessive use of globals, overuse of strings, coding single god-functions that do everything (with a frick ton of redundancy).
I feel like that's probably true of everybody's first adventures in programming. Certainly was for all of us who grew up writing BASIC.
Yep, my first experience with programming was TI-BASIC and all I had to go on was the TI-83 manual. I used a lot of GOTO until I figured out how loops worked.
I wouldn't discount Minecraft either! Roblox is probably better for younger children, but I remember being 10 or so and setting up a Minecraft server so my friends and I could play.
Also, if the kid is ambitious, then Minecraft is a stepping stone to Java programming (which may or may not be a good thing overall).
I've worked professionally with a person who found their love for programming by modifying Minecraft mods. I'd say he was far better than the vast majority of bootcamp devs, even without much real work experience.
Finding out what is fun for you is such an important step in self-actualisation and a continued interest.
Roblox is like the AOL of a generation - I was 13 when I first got into programming thanks to AOL and it wasn't because AOL had created a programmable platform and API. AOL incentivized busting into chat rooms, punting other users, exploring hidden areas, and generally doing all sorts of stuff that could only be done programmatically by manipulating the client with whatever IPC APIs your OS made available. This is basically how Mark Zuckerberg got going too, so very possibly the world's next Zuckerberg is hacking on Roblox today.
I remember punting. At one point AOL suspended my account for a month for running a punter. I also remember searching various chat rooms and sites trying to find crackz and warez for expensive software like Adobe Flash, so I could make animated videos. Good times!
There won't be a "world's next Zuckerberg", the virgin soil has been claimed and the moats they built to ensure their ownership can only be taken down by concerted government action.
Really? Gen Z barely even participates in Facebook & IG. I don't think the moat is as impenetrable as they would have you believe. At any rate, the next Zucks are being made on blockchain today, not Roblox.
That's exactly what happened with me as well: I originally started with Lua (knowing only pascal so far) for computer craft and then branched out from there. Now it's my favourite language for everything.
Hands down the best early game automation in kitchen sink packs. Just get a mining turtle, fuel it up and collect resources while you build your base.
And if you have an add-on mod or the cc:tweaked fork that adds better inventory methods, it's possible to build an autocrafter in a sort of DOS style refined storage way :)
If they're "bad practice" but generally lead to favorable results (or almost every result is the result of bad practice), then it might be reasonable to not call it bad practice anymore. While I really love reading concise and beautiful code, I love seeing something work far more.
Is there any particular version of the game you need to be able to code for it? I know for instance - in a vague way - that Minecraft is different in terms of the version that runs on my son's iPad and the Windows version, written in Java.
There are now (historically it was more complicated) two types of Minecraft. The Java type runs on a wide variety of general purpose systems including your Windows PC. On every other platform where Minecraft is still updated it's "Bedrock Edition" which is not Java.
If you buy Minecraft from Microsoft on their Windows store thing I believe you can buy "both" together in some sense, which is a good deal, but obviously programs from the Windows store do not run on an iPad.
Although Microsoft has dipped their toes in the water and sometimes did some PR about it, you can't today mod Bedrock Edition and if you could it would always be a far more limited experience because of how Bedrock Edition works.
For Java Microsoft is doing the most essential work to make modifying it possible, as well as maintaining it, but a huge community actually takes that and runs with it. If you tried to just use what Microsoft makes available then anyone except a Java expert would probably be stuck with toy changes that barely scratch the surface of the game.
For example as a modded player it's hard for me to think about, but there's no electrical power analogue in Minecraft. The modders (not Microsoft, after all their game doesn't have electricity!) added a framework for a single unifying type of electrical power so one mod's steam turbines can power a different mod's plate pressing machine without either of them needing to spend a year designing an electrical energy system they don't really care about.
It's always fascinating what happens when a well organized community starts to develop around easily-modded games. Kerbal Space Program for instance, has people building frameworks, APIs, and resources to make the job of making mods easier.
Part of why it works in KSP's case is that any mod or plugin published to the official forums needs to be distributed with a license.
> Though it also taught me some ... less favorable habits, as they are more common place. Think of: Continuously calling wait() until something loaded, Excessive use of globals, overuse of strings, coding single god-functions that do everything (with a frick ton of redundancy).
For the target audience of roblox, I'd say that all seems absolutely fine. Anybody who wants to continue programming will sooner or later find out about things like local variables, refactoring code into functions, etc.
It probably easier to learn the good habits once the bad ones have bitten you in the ass. It's hard to learn good habits if you don't understand why the bad ones are bad.
I can't speak for OP, but I have a very similar experience:
I was introduced to ROBLOX in late 2008 -- my account was created September 26. I spent the first several months just exploring the platform. It was only a few years old at that point, and had just started the curve upwards on its hockystick graph.
The games were way simpler at the time, and they were genuinely made mostly by kids and young adults, and it showed.
One cool thing I discovered is that not only could you choose to open-source a world, you could publish individual models for anyone to make use of. I saw my first lines of code by grabbing a public model and looking through it to see how it worked.
My first forays into coding was pure "script kiddy": I'd take an existing script, stick it in a new model, and tweak it until I was happy with it. This was often things like taking a model of a sliding door, re-sizing it, and adjusting the script's `for` loop so it would slide the door the full amount I wanted.
I slowly figured out stuff like loops, variables, scope, and flow from that, without ever learning the term or reading a book. I was so engrossed that I asked for and received the Lua Reference Manual for my birthday.
I grew out of the platform's intended audience age early in High School, but I had already transitioned to writing python and making Java mods for Minecraft at that point.
I'm now almost 3 years out of college and doing embedded software engineering full-time. And it does really retain a part of that initial joy; I get the same rush when I write an ISO 8601 parser and see it spit out JSON to AWS, really!
Occasionally I'll log on and check things out. Games are a lot more polished, thanks mainly to the developer program that enables revenue sharing, so people can actually have an income from their creations. The studio and platform have also matured a lot as well. I remember when custom GUIs and dynamic lighting were mind-blowing features we sort of hacked together using tricks like a bunch of semi-transparent spheres anchored at a user's origin to simulate fog.
As a 17 year student from Germany in his last year of school, I only now realize that school was - and still kinda is- a rather positive experience.
Homeschooling is downright terrible(though it's no ones fault)
A lot of us like to think that the sole purpose of school is to educate kids, so they can go into society with a portfolio of knowledge and practical skills. While in reality it is just a part of it. I would argue that "kindergartening" kids, so parents can work a 9to5 job, and socialization are just as - if not more- important.
The pandemic gave us no time to prepare, so education is the only thing that we are able to do. Kids are left to do homework, and nothing else. They do the shitty bits of school without the fun part stripped away.
Currently some teachers VASTLY overestimate how much work can actually get done within 45-90 minutes. Do you really think that kids actually do 90 minutes of work? It mostly boils down to 15-30 minutes of truly productive time, a good chunk of time is spent with chitchat and ... _I don't even know_ .
A skill school never taught very well is time-management.
Any deadline you give to students WILL be procrastinated by most students to the very last second. Thanks to the wonders of modern online-platforms, such as Moodle, you can have deadlines at arbitrary times, such as 12am at night. Late deadlines are made with good intent, but are horrible in practice. Believe me that some student indeed do their homework at 11pm to turn it in at 12 am. Which undeniably is terrible for a kids mental-health.
As a student who gets through school without any effort at all, I am now forced to do repetitive and _stupid_ homework for the sole purpose of being busy. Before I could simply participate in class and show that I understood the material, while others were doing their work I was tolerated to just read a book (as long as I participated in class).
I truly miss just hanging around with my friend :(
Discord just can't replace face-to-face interaction.
The only thing positive aspect is that I have a lot of time to spend on personal projects. I finally feel comfortable with IDA and x32dbg and my C-programming (and Golang, Python) skills have improved greatly :D
Although I often feel unmotivated to actually do personal projects and go through depressive phases :/