Discuss Scratch

NMario84
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

I'm getting mixed feelings about how Scratch is being used these days. They say that you're only supposed to use Scratch to learn about coding, and people suggest to use some other programming language. Though it is also true that Scratch is used by all ages, and programs/projects made with Scratch can be sold as long as 100% of the assets/material is your own work. I know Scratch is very limited in what we can do, but nowadays I see a lot more block coding based languages around than what we had years ago. Though people STILL suggest text based programming to write video games, stories, etc.Is that still the case today? Maybe. But do we WANT to learn text based coding today? probably not. It depends on who the person is, I guess.

I believe Scratch has come pretty far for what it can do. So, I don't see why we can't keep using Scratch to do what we like. It's like saying "you've learned how to use (_name of text based coding language_) , though maybe you can consider using (_name of new coding language_) instead". Maybe it just comes down to the matter of opinion?

So, TL-DR….. What is stopping us from using Scratch as a platform much as we want to, to write projects, and create games that we enjoy, and other people enjoy?
Scratch137
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

Scratch is designed to make it easier for people of all ages to learn to code, but it is equally geared toward making accessible the tools needed to express yourself creatively, regardless of your level of expertise.

Scratch is where a lot of people learned to code for the first time. Beyond that, it's a massive community where countless people have made a home for themselves, and where they feel comfortable doing what they like best.

What Scratch is not is a community that turns people away for any reason, be it who they are, what they like, or even how good they are at programming. Take a look at Griffpatch, for example. He's a grown man with a family of his own, and his coding skills are incredibly advanced—he could very well take his knowledge and move on to some other, more advanced language—and yet he stays, because it's what he loves and it gives him the opportunity to mentor the next generation of budding creatives and programmers.

Scratch is for everyone, and nothing will ever change that.

Last edited by Scratch137 (Sept. 13, 2024 05:02:09)

NMario84
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

Yeah that's what I figured.

Even though we have people who are like “Scratch isn't professionally used.” or like “No one is going to take you seriously using Scratch.”, and even things like “I wouldn't recommend using Scratch in the real world.”. These kinds of “suggestions” really confuse me. If Scratch really "IS“ for everyone, then we should feel good about using such a coding language to do what we like to do.

I mean… What DO they mean by ”real world" in the given context? In my experience in programming under many different coding environments (including Scratch), You can literally put “Anything you want on any platform” with the right mind set. Though of course, we "DO" have to follow the website rules and guidelines, that much is fair. Otherwise, if you like using Scratch as a video game development platform, I say you should stick with it.
breakfast_for_dinner
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

NMario84 wrote:

(#3)
Even though we have people who are like “Scratch isn't professionally used.” or like “No one is going to take you seriously using Scratch.”, and even things like “I wouldn't recommend using Scratch in the real world.”. These kinds of “suggestions” really confuse me.
i believe since scratch is a children's site, it's automatically perceived as “unprofessional”
awesome-llama
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

Scratch has the capabilities for use in many things as you've mentioned but this is still tiny in comparison with what text-based languages offer, especially paired with engines, libraries, and other resources. I think for most people there is a desire to do things past Scratch's limitations and so it is sensible to suggest to move to them.

You appear to have the perception that text-based languages provide a worse experience compared to block-based and I think for beginners this is true (smaller hurdle). The simplicity and clearly defined blocks may make it easier to learn and use, however, the improvement over text-based languages isn't as significant when you consider the features development environments often provide including syntax highlighting and code completion.

There are more differences I want to list, some of them can be solved or approach some parity with text-based alternatives through updating or modifying Scratch but they're still limited by the nature of it:
  • Copying/pasting code, reusing code, accessing libraries, etc.
  • Version control (e.g. git) (This is very important in projects of a bigger scope)
  • Syntactic sugar (some of what this solves isn't a problem with blocks but not all - any addition of new features risks bloating the number of blocks or their parameters). There's actually a lot more I want to say about this involving language features though it's hard to bulletise. Something I've thought about a lot is how variables and lists are defined in Scratch. You have to manually create them which is time-consuming and promotes reusing variables which is bad practice. Also consider an example of creating a list containing values. In Scratch you have to use a bunch of add item blocks.
  • Runtime performance (notably limited by the interpreter). Scripts also aren't parallelised.

Za-Chary
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

NMario84 wrote:

They say that you're only supposed to use Scratch to learn about coding, and people suggest to use some other programming language.
Who is “they”? It's certainly not the Scratch Team — they encourage creativity of many types.

NMario84 wrote:

Though people STILL suggest text based programming to write video games, stories, etc.Is that still the case today?
I think it is now, and always has been, the case that most instances of “professional” game development will probably happen through some text-based programming language.

NMario84 wrote:

But do we WANT to learn text based coding today? probably not. It depends on who the person is, I guess.
Exactly.

NMario84 wrote:

I believe Scratch has come pretty far for what it can do. So, I don't see why we can't keep using Scratch to do what we like. It's like saying "you've learned how to use (_name of text based coding language_) , though maybe you can consider using (_name of new coding language_) instead". Maybe it just comes down to the matter of opinion?
It's a matter of opinion. There are plenty of reasons why I'm still using Scratch 13 years later as opposed to some other programming language. There's no need to listen to what others tell you to do.

NMario84 wrote:

So, TL-DR….. What is stopping us from using Scratch as a platform much as we want to, to write projects, and create games that we enjoy, and other people enjoy?
Nothing. Scratch on.
Lionwarriorspets
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

Scratch137 wrote:

Scratch is designed to make it easier for people of all ages to learn to code, but it is equally geared toward making accessible the tools needed to express yourself creatively, regardless of your level of expertise.

Scratch is where a lot of people learned to code for the first time. Beyond that, it's a massive community where countless people have made a home for themselves, and where they feel comfortable doing what they like best.

What Scratch is not is a community that turns people away for any reason, be it who they are, what they like, or even how good they are at programming. Take a look at Griffpatch, for example. He's a grown man with a family of his own, and his coding skills are incredibly advanced—he could very well take his knowledge and move on to some other, more advanced language—and yet he stays, because it's what he loves and it gives him the opportunity to mentor the next generation of budding creatives and programmers.

Scratch is for everyone, and nothing will ever change that.
It does turn away fans of a few specific bits of banned media though (due to them being adult + fnaf fans)

Last edited by Lionwarriorspets (Sept. 13, 2024 17:34:11)

yadayadayadagoodbye
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

Text based programming language is simply more flexible and easy to use when creating larger projects. The rigidness of block based languages makes them increasingly annoying when writing long lines of code. Its also generally harder to track the logic in Scratch due to the low usage of custom blocks (as they are unable to return values, unlike other languages)
82BITMYSTERY
Scratcher
500+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

Honestly, Scratch is amazing for getting started with programming, but it's not exactly the best choice for creating super complex projects or games. It's got some limitations that can hold you back, like performance issues, not-so-great graphics and sound, and limited control over hardware. Plus, it's not ideal for working with advanced data structures or customizing the platform to your needs. That being said, Scratch is still awesome for beginners, creating simple games and animations, and quickly testing out ideas. If you're looking to take your projects to the next level, you might want to consider other options like Python, JavaScript, or C#.
BigNate469
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

too bad that you can't make tables in BBCode

Scratch is easy to learn and turing-complete. In the words of former ST member @lightnin, it has a “low floor, wide walls, and a high ceiling”- it's easy to get started with, it can technically do anything a computer can do (Scratch is turing-complete), and can be used to make very complex projects (realistic raycasters come to mind).

That said, it is:
1. Slow. Seriously, so many other text-based (and even some block-based) programming languages take much less time to do just about anything. This does limit what you can do in a reasonable amount of time, but like I pointed out in a post in ATs yesterday, in theory you can also run Blender (an advanced 3D modeling software) on a few pairs of gears- it will just take many, many years to finish.

2. Not as versatile as text-based programming languages.

For example, in most text-based programing languages, you can declare (and set) variables dynamically (they don't all have to exist beforehand, and in many cases can have variable names set dynamically), and functions (My Blocks) can return things- similar to being able to put a My Block into a space for a reporter.

Also, in many compiled languages, you can have very good low-level memory control, and in many programming languages, you can use more than a single core of your computer's processor to do… whatever.

And thanks to the efforts of the Khronos Group, there is a library called OpenGL that you can use to render hardware-accelerated 2D and 3D graphics- in pretty much any programming language you want. Scratch actually uses OpenGL ES 2.0's web port, WebGL, to render the stage.

Text-based programming languages these days can usually create windows, and control the ones they create, something not present (or possible) in Scratch.

Text-based programming languages can also usually connect to phereprals connected to your device in some way, such as Bluetooth or USB, something that while possible in Scratch usually requires that you connect them indirectly through something like a micro:bit.

Last edited by BigNate469 (Sept. 16, 2024 23:27:40)

yadayadayadagoodbye
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

yadayadayadagoodbye wrote:

Text based programming language is simply more flexible and easy to use when creating larger projects. The rigidness of block based languages makes them increasingly annoying when writing long lines of code. Its also generally harder to track the logic in Scratch due to the low usage of custom blocks (as they are unable to return values, unlike other languages)
(Adding on, its just like how people would likely advise you not to use python to create a game, even though pygame does exist and is actually somewhat widely used)
TheCreatorOfUnTV
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

yadayadayadagoodbye wrote:

yadayadayadagoodbye wrote:

Text based programming language is simply more flexible and easy to use when creating larger projects. The rigidness of block based languages makes them increasingly annoying when writing long lines of code. Its also generally harder to track the logic in Scratch due to the low usage of custom blocks (as they are unable to return values, unlike other languages)
(Adding on, its just like how people would likely advise you not to use python to create a game, even though pygame does exist and is actually somewhat widely used)
Don't forget Tkinter - in addition to being included with modern versions of Python, it has an extension called “Turtle”, which is based on Logo's Turtle, which influenced LogoBlocks (and in turn Scratch with the pencil extension)
breakfast_for_dinner
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

TheCreatorOfUnTV wrote:

(#12)
Don't forget Tkinter - in addition to being included with modern versions of Python, it has an extension called “Turtle”
afaik tkinter and turtle are not the same
from tkinter import *
import turtle
Scratch137
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

Lionwarriorspets wrote:

(#7)

Scratch137 wrote:

Scratch is designed to make it easier for people of all ages to learn to code, but it is equally geared toward making accessible the tools needed to express yourself creatively, regardless of your level of expertise.

Scratch is where a lot of people learned to code for the first time. Beyond that, it's a massive community where countless people have made a home for themselves, and where they feel comfortable doing what they like best.

What Scratch is not is a community that turns people away for any reason, be it who they are, what they like, or even how good they are at programming. Take a look at Griffpatch, for example. He's a grown man with a family of his own, and his coding skills are incredibly advanced—he could very well take his knowledge and move on to some other, more advanced language—and yet he stays, because it's what he loves and it gives him the opportunity to mentor the next generation of budding creatives and programmers.

Scratch is for everyone, and nothing will ever change that.
It does turn away fans of a few specific bits of banned media though (due to them being adult + fnaf fans)
Well… that's not really within the spirit of the question.

Obviously, there is content that is not allowed on Scratch. If the Scratch Team deems a topic inappropriate for some users, it cannot be shared.
However, Scratch will not bar a person from participating in the community just because they happen to enjoy that sort of content. It is only once a user has already broken the rules that their access may be restricted.

Last edited by Scratch137 (Sept. 13, 2024 22:05:44)

yadayadayadagoodbye
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

TheCreatorOfUnTV wrote:

yadayadayadagoodbye wrote:

yadayadayadagoodbye wrote:

Text based programming language is simply more flexible and easy to use when creating larger projects. The rigidness of block based languages makes them increasingly annoying when writing long lines of code. Its also generally harder to track the logic in Scratch due to the low usage of custom blocks (as they are unable to return values, unlike other languages)
(Adding on, its just like how people would likely advise you not to use python to create a game, even though pygame does exist and is actually somewhat widely used)
Don't forget Tkinter - in addition to being included with modern versions of Python, it has an extension called “Turtle”, which is based on Logo's Turtle, which influenced LogoBlocks (and in turn Scratch with the pencil extension)
I dont see what Tkinter has to do with python turtle, neither do I see why Turtle is relevant in this case. Tkinter itself is indeed a tool which may be used to create games, but if you're making a game with turtle, then you've got both an insane amount of patience and also insanity
ballyrag
Scratcher
100+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

Lionwarriorspets wrote:

It does turn away fans of a few specific bits of banned media though (due to them being adult + fnaf fans)
If you want you can always use offline Scratch and make your mature content there.
ajskateboarder
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

You can think of Scratch as whatever you want. Whether it's a beginner programming language or a jack of all trades language is up to how you use it
NMario84
Scratcher
1000+ posts

So we're "allowed" to use Scratch, but also kind of not, as some say to use other coding platforms?

ajskateboarder wrote:

You can think of Scratch as whatever you want. Whether it's a beginner programming language or a jack of all trades language is up to how you use it

Yup. That's actually a far point. Everything else that was said here all have their own points.

Speaking of trades language, Scratch has gotten its fair share of all kinds of mods (like turbowarp for example) that use this language as the base. So I don't see why others would think it would be a bad idea to use it as a genral purpose to make whatever you like.

Though I kind of hate the fact there is a 30 FPS limitation on vanilla Scratch. Otherwise, it's a pretty neat programming language.

Powered by DjangoBB