Criticism is needed for the idea of a large project

No, I want to do it myself rather than relying on TheftGPT.

... That's not fair.

My issue is I'm stubborn, but honestly, my quest for as long as I've tried anything, is I want the mechanical knowledge, and hate the answer "Someone else knows" Sure, but I want to know. It's not just computation it's a societal issue at the moment, but I will never be satisfied with "Sorry Calli but that code segment is in another compiler" With apologies to Mario. LOL

Oh, I'm that way too. But you represent yourself as constitutionally unable to deal with code in text languages; I was thinking that it's not cheating to use assistive technology to help with disabilities, like my reading glasses.

And having turned the code into blocks, you could then read and understand it!

Guys, there is nothing intrinsically simple in blocks itself.
There is an example blockC code bloP


:snap: project with :gear:> Fade blocks =100
fade100
fade=90

The perceived simplicity is not caused by colored blocks but rather by a limited set and combinations of interlocking parts.
The modern IDEs for text languages have extensive, context-sensitive code completion and color syntax highlighting. You can just select a variable, function name, and parameters from the drop-down list.

Oh, I'm that way too. But you represent yourself as constitutionally unable to deal with code in text languages; I was thinking that it's not cheating to use assistive technology to help with disabilities, like my reading glasses.

The problem here, is, well there's a couple of problems here, but those are rabbitholes all by themselves.

So let's cover the basic one. I'm not disabled. I don't need assistive tech here.

I may be the only active user in the forum who keeps bringing this up, but I'm not the only one, so lets break it down.

Coding is considered hard and complex, and it's taught that way, a lot of people can't process the way coding is taught, and just can't get get there, but the way coding is taught, instead of considering that a systematic defect, it's considered a personal one (ask me how I know) and as such, computing becomes a closed function to me because I'm "stupid" but I'm also stubborn and learned as much as I could about computers anyway.

Come the early 2000's and people start thinking about that in other ways, Wether it's Werkkzeug or Scratch or BYOB, people start looking into alternatives, and they absolutely succeed. People start seeing these languages and start seeing ways back into coding as a whole and they jump all over scratch and snap! because not only can they code now, it's FUN!!!

Come a time and they master it, so they go looking back into that industry, only to find that attitude that fenced them out is still very much there and is still very much focused the same way, but as they now have a handle on programming, they look into things like C or Python and ask themselves "What the **** is this ****"

They've taught themselves on state of the art, and the industry is still messing around with obsolete text code? Disillusioned, they realise they can't do anything about it and leave, this time permanently, and they tell their friends not to bother. It's obfuscation all the way down.

One of the problems, I feel, is when people come in looking at javascript or ways to do things snap! is not designed for, I don't think they're actually looking for either of those, I think they're looking for ways out of the sandbox, because snap! is very much fun, but it is, very much a teaching language and is very much locked down like one.

No, what they want is more.

The perceived simplicity is not caused by colored blocks but rather by a limited set and combinations of interlocking parts.

They want something that does not exist. A block based IDE system so they can write programs and games and understand the deeper mechanics behind the devices they use every day, wether it's a phone or a desktop or somewhere in between, they've been given the tools and the training... but no way to use it, because wether they're right or wrong, (and in my opinion they're absolutely correct) Text languages are obsolete, why should they use that trash?

I've said multiple times, I'm perfectly happy to make that 3rd stage myself, I just need to be able to expand snap enough that I can do it, and my obstacle, is mostly that all the textbooks are written in the eighties, lightly updated in the 2000's and if they're still taught at all, they're teaching javascript and are ignoring things that have changed since then, and as such, are mostly useless.

The thing with snap! is it changed the world. The problem with the world changing, is it's all different now! (I borrowed this from buffy, lightly paraphrased)

What used to be university level is now high school level, but universities are refusing to figure out what they should be teaching now, and no, that's not fair that's a really brutal generalisation, but it's generally true enough.

It's also why I rail against abstraction so hard. Abstraction was fine when computers were known by twenty computer scientists using crays the size of warehouses to solve nothing, and needed to find a way to get more people onto the research... but everyone has a phone or a device now, so that worked, incredibly well, but we're still treating them as impossible black boxes that are indecipherable... and that hasn't been true for a while.

Computation has to adapt instead of sticking it's head in the sand.

The point dardoro was trying to make with fading blocks is that blocks don't make as much difference to most people as you think, leaving out small children, because you can get most of the same benefits with text editors that do automatic coloring. (Especially if they zebra color! Are there any like that?) That's why I, with respect, use the analogy, if you prefer, of disabilities to make the point that you can use assistive technology without an official disability (farsightedness doesn't count as one, since Benjamin Franklin, or whoever it was invented glasses, oh yeah not him, he invented bifocals, I remember now) (I have a cognitive disability: old age), and you don't have to invent the assistive technology yourself; you can use it to enable you to learn how to build other stuff, eventually including the assistive technology I guess, but there's no need to start there.

You can use blocks to program your phone; that's App Inventor. It'll do anything the text languages do with the phone.

Oh, and

Snap! can do anything you want, right now. What I think you mean is that you want us to invent some of the lower levels of abstraction in the code you want to translate, so you can take care of the higher levels of abstraction.

P.S. Okay, I confess, I like blocks, but I don't like coloring text editors. I think a lot of the problem is that they choose the colors to work on white backgrounds, so I have to choose between two possible ways to get a headache.

Nope. No, I'm happy to do that, it's something I've wanted to do for ages. I don't want you to do anything that breaks snap or breaks it's teaching power, because that's the key to snap!

What I would like and why I'm stuck, is because well, I'm sure I could find source code to plenty of text editors or tile editors or whatever, in sourceforge or github, and I already have the source to dosbox and werkkzeug, and because one of C++ features was meant to be object oriented programming and message passing, in theory, snap can already do a lot of what I want. I just need to find a way to figure it out.

Werkkzeug in particular was a node editor disguised as an art program for example, and cornelious207's node editor is an incredible demonstration that snap is perfectly capable of that already.

All the component's I want are already available... just not in snap, and the only person I expect to add to them is me.

The point dardoro was trying to make with fading blocks is that blocks don't make as much difference to most people as you think

That's my point too though, like I'm saying that I really don't like text, but I've also said at multiple points that text is block is text is, and "lego batman's" snapblocks extension to discourse is an incredible example of that too. Snap is a text language with an emoji filter on it... and for some reason, that filter helps me A LOT. Who knows why, It's probably me that's the issue (It is totally me)

The sky is the limit to snap! But my sky is not yours.

You say "expand snap" and I say "make abstractions," and I think we're talking about the same work.

Maybe? Maybe not? Like, the text editor at first would just use the stage, but eventually it'd be it's own morph, split the scripting stage in half, half block half text. So, basically like scratchblocks in snap, but not really.

If that's what you're thinking of by abstraction, then sure... but that's not really an abstraction is it, if the editor is visible? And as it'd be a morph, and eventually a custom morph, the code behind it would likely be visible too, so not really? Iunno.

I mean, you seem to think there's something standing in the way of you doing what you want to do, and that some change/library in Snap! would make it possible. Trying to be helpful...

Mostly the limitiation is I just can't read text code. Like, I have an idea what I want to add to snap and why, and it goes beyond the text manager idea, but that's just a baseline, eventually, the whole point is I'll expand snap enough to be able to re-write the whole thing myself into a program that has no commonalties with snap beyond blocks, and even then maybe not.

The issue is me. It always has been.

Yeah I get that.

Anyway, Enough of this. I hijacked a pretty decent thread... again lol.

Breaking down concepts to teach kids how to code is cool, and I really wouldn't mind a modern scorched earth or gravity wars, even if I'd make them super complicated and only fun to myself lol.

I know tile stuff because I'm a huge fan of shooters, even if scale has changed over the years, but I wonder how you'd break down Scorched. A terrain system at the least, physics for the weapon control, a different strand of physics for the weapon effects, because Scorched had some pretty wacky weapons, you'd need list manipulation for it's economy too.

How about Gravity Wars, at first thought that appears simpler because it's in a solar system and you just randomise planet locations, but even the planets could effect shot path, as that screenshot indicates. I pissed off my brother once by making a shot that did a loop de loop around every planet in the system and the sun atleast once and then cleaned him up, he thought I was cheating lol, but I just watched the path of each shot and added it together lol.

So atleast a baseline each planet needs a co-ordinate and a weight, and the weapons need to calculate those against it's path...

I don't know about other people, but in my editor (vscode), there isn't zebra coloring, however I do get a colored line around text inside any kind of brackets, allowing me to click somewhere inside brackets, and see which brackets it's for. Of course the brackets are also alternating 3 colors, so it is kind of like zebra coloring.

i completely agree that there should be a much more capable block based ide (i have plans for one that iteratively compiles to webassembly) but how is text obsolete? text is the reason i can use git on all of my programming projects regardless of language. text is the reason i can use any text editor i want instead of whatever bad one some block editor might come with. text is the reason projects like cursorless can work on every programming language. text is the reason i can mix multiple programming languages in one file. text is the reason i can pipe my code through any terminal command to find, replace, view, and otherwise manage my code with little effort.

programming is using basic tools, basic data, and basic operations to get complex tasks done. if any of those parts are complex it becomes limiting. the complex sprite and pen system in snap and scratch causes management of the sprites to be difficult for complex projects, and pen to be slow when what you really need is the fastest simplest lines you can get. the complex file formats of snap and scratch are the reason i can't version control my projects.
complex monolithic tools are always limited. text is basic data, so that you can use and make basic tools.

for beginners, text does absolutely have some issues, but from what i've seen nerdy kids do i don't think it's the real blocker. most nerds 8-15 will do the jankiest nonsense and jump through absurd hoops to get what they want, as long as they can get a solution (even if quite bad) for any step. the key is that they can find it, and then follow basic steps to actually do it.

let's pretend to be a kid for a bit.

vbscript error boxes are simple. i found it on youtube as a kid! i write the weird text into notepad, save it, and then change the 3 letters at the end when saving it.

making an exe file is hard. i want my program to have a custom icon on my computer and do all the things real programs do. first i have to look it up myself because nobody makes any cool youtube videos about this. google "how to make an exe" the first result wants exe program code. google "how to write exe code". first result is the same, second result makes absolutely no sense. i don't have a hex editor and i don't know how to use one.
i tried searching youtube and found this. what project? what is this program?

you probably know already there is no "exe program code", the wikihow article is flat out wrong. it's vague enough that you could spend days trying.

the issue i had with switching to full text programming languages was the horrible tooling and advice. my issue with every programming language now is still the tooling. i still can't get any compiler to do what i actually want and by the time someone mentions linking it's a lost cause. c comes broken, they fight against even the most basic improvements, and every other language is forced to work with it because nobody has made anything better.
this is the main reason my language will compile to wasm, i refuse to work with c.

there's a whole lot more i could get into, programming tools not being available on chromebooks and being difficult to install on windows, the whole process of trying to do it then and now, the horrible antipatterns in nearly every programming language, "easy" languages often making things much worse, but i'd need to take a month to research and write a full article for that.

on that note, i think the two best usability improvements for snap would be:

  • yellow warning banner on unshared projects to say that you have to click the share button to let others see it. always on project page and appears in the snap editor when the url is in the clipboard.
  • saved files that actually open in snap when you doubleclick them. currently the best way i can think of to do this is an html file with the snap webpage as an iframe, and then postmessage the project data. a horribly long query parameter would in theory also work but i feel like that would just crash some browsers.

Could you say more about this? I've always thought of the ease of management of sprites as one of the brilliant inventions of Scratch, as well as how they sneak in the Big Idea of multithreading, usually thought to be an advanced feature among adults.

Yes, I would support both of those. On the second one, don't operating systems have a way to associate a script with a file extension? Something like

%BROWSER https://snap.berkeley.edu/run#run:file:/%PATH

P.S. I think we agree on the big point, which is that a language for learners shouldn't be the same as a language for production programmers. I am more extreme about this than I think you are; I like dynamic scope for learners. :~)

Yes, but browsers in those days couldn't open local files in a simple manner.
A year ago, this used to work for a Snap stored on the local file system@Win10

"c:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
--disable-web-security
--allow-file-access-from-files
--kiosk
file:///D:/work/Snap/snap.html#run:file:///D:/work/Snap/Examples/copter.xml

Now, the simplest route seems to be a desktop :snap: to overcome browser limitations.
Maybe Snap4Arduino or Snapp will work.

This.

You're exactly right here. Computation has this insane desire that the only way forward is backward, and it's frustrating as all get out.

As to your "not all text is obsolete" comment, yeah, you're correct on that too, I've said in this thread and elsewhere on this forum that text is block is text is, and that half the problem with blocks is the assumption that there's a whole lot going on to make the blocks, and, let's be clear, there is, but the way I see blocks is text code with an emoji whitespace.

My main goal is tooling that I can use, always has been, but for as long as the industry buries it's head in the sand and as long as I can't read text code in snap, that problem is going to be there. (and that's a me problem, not a snap! problem)