Idk if it's appropriate, but I'd like to see a code editor so that I can look like an actual programmer rather than a child one (not really).
Let it be a toggle to switch between the blocks mode and the text editor mode. I don't want to make things complicated for 10.0, but just asking IF it's possible.
Also, no Javascript please! (JS hard to work with)
Unfortunately, the only thing similar to looking text based is by changing the fade blocks setting.
If you really want to use text based snap, the closest thing is Tosh, text-based scratch. It doesn't have all the features as snap, but it is scratch, so it's similar.
I do want to mention that I have seen that a user (idk who) was working on a text-based snap mod, but idk if it's even close to being usable.
Fade blocks? I remember seeing it in settings and turning it on, but i don't remember seeing any differences
Upd. Alright i probably confused it with other setting. Yeah i tried fade blocks before, but considering how blocks (mostly operators) combine, it's really still not the best way to see the code. My gf is like a low level code dev, while im into visual dev like scratch/snap, and whenever i ask her to help with something, she gets very confused in blocks, while its pretty easy for me, and its kinda reverse, i get confused in text coding a lot. I think Snap Code Editor is a good idea, because, why not? Snap is in JS right? Aren't blocks just js functions etc? What about just inspecting the text code, without being able to change it?
Fade Blocks hides the blocks away and shows only a text interface, the blocks are still actually there and when you mouse over them you see a faded outline.
Somehow a couple weeks ago, I got a bug that I can't replicate, that had the faded blocks but all the inputs were white as usual, and I actually thought that was really cool.
Ooh, wash your mouth out with soap. Jens gets mad when people say that.
Snap! is implemented in JS. Similarly, JS is implemented in something, which is implemented in something, which is implemented in the machine language of whatever kind of computer you have. By that standard, all programming languages are the same.
But in its design, Snap! isn't based on JS at all. For example, JS claims to use prototyping OOP, but what it actually does is this hugely complicated thing that ends up really being class/instance OOP with the classes renamed "prototypes." Real prototyping is all about a tinkering style of work in which you build one object (one instance) and then use it as the basis for another object, while maintaining the ability to edit the original and see the edits reflected in its children. The only other real prototyping language I know of is Object Logo, from which we got the idea.
As another example, it took us three tries to get gray rings right, namely, with the ring already in procedure-type input slots in higher-order blocks such as MAP, as they appear in the palette. It's a lot harder to understand higher order functions if you have to attach the ring explicitly to the actual procedure-type input.
In fact, imho, the worst parts of Snap! are the ones in which we allow JS semantics to expose themselves to users, such as the hideous error messages and the confusions among zero, false, and the empty string.
If you want to do text programming that feels Snap!-like, learn Scheme and/or Smalltalk and/or APL. Those are the languages that have contributed most to our design. (And Scratch, of course, but it's not a text language.)
My suggestion would be that we would have text editor window in which we would be able to at least view the code. Tho, adding feature to manage it doesn't look difficult too anyway. I still believe it's possible to make, i will make one interesting project covering this idea soon.
i kind of want to recreate tosh's syntax in snap, i am 0 in gui stuff tho, i ll probably need a help from some snap expert to make text editor window after i make syntax, functions for all blocks, and docs
Tosh 's syntax is interesting, but I feel it misses the point. Like you being a 0 on gui, I'm, no matter how hard I try, a zero on everything. Otherwise I'd help.
Which is why I generally, aside from disastrous lightning talks at snapcon! try to keep my opinions to myself, because I can't prove any of it.
It's a good idea, but instead of doing what tosh did, make it a side by side window. Block Scripting on the left hand side and Text Scripting on the right hand side mirroring it what's in the blocks or vice versa.