In February 2015, I got my first programming experience with Scratch. It definitely made me interested in programming, but I don’t think Scratch is a good programming tool to stick with because of the following reasons:
- It goes out of its way to never ever display an error. "(10 + string)" = "NaN" (which will basically eat its way through your calculations), "change to Costume (doesn’t even exist)" does nothing.
- No case-sensitivity except "change to costume (xxx)" and "change to costume (XXX)" are different. This is the only way (except the same with sound, but wtf) to check for case.
- There are two types of variables: Variables and Lists. This basically means no lists inside lists.
- Actually, a variable is always either a number or a string, but it can change on the fly ("set variable x to text" makes it a string, "set variable x to 123" makes it a number) and there is no way to know.
- Technically, there is a way, because when you display variables, the decimal places will be shortened only in numbers, so you can make "var = (join (var) with (ZERO WIDTH))" to get your precious decimal places back.
- Defining a block gives you limited possibilities, even though the features are already built in, but you need to JSON-hack to take advantage of them.
- Working with strings is the most painful thing to do because there is no substring concept.
- The most frustrating of all: When Scratch 3.0 came out, I instantly lost interest. The layout was changed so everything was huge, some mechanics (that, to be fair, were bugs) were removed, and JSON-hacked projects were now unable to load and straight up threw an error.
I could rant about this all day long, but this is supposed to be about me. The next thing I discovered was Python, which would go on to be my main programming language for simple, quick things until today. In 2020, I also started to learn C#, but I don’t use it that much, and Assembly, which is my main focus and the reason I am on stackoverflow.
TL;DR:
- Scratch, but it’s actually trash
- Python, for quick, simple things
- C#, but not as much
- Assembly, my main focus