Is this true, jens?

Ok, but seriously, Jens doesnt want anybody using any library tbh

Bro best of luck to you, if you make it until tomorrow. Might as well have pinged @banme

I've literally pinged jens for like 10 times...

Nothing has happened.
Besides, I am NOT complaining about Scratch, because if I did, then @bh will ban me. So...

guess i gotta make a memorial project now...

I pinged him once when I first joined the forums and got hit with Jen’s saying publicly to Brian “whoa, please don't call on me. I'm reading these posts and you better want this project to fly below the radar of my furor. bh this is what I'm talking about.” This took me like 10 minutes to find the post so I could paste that. When I read it first I got scared as heck.

You also pinged him twice in two posts.

Your dead meat:/ make the memorial someone.

Why does it even matter if he threatened that? I mean he basically threatens all the libraries constantly so yeah probably. I mean, people agree and disagree on many different things. I feel like this post itself is too short or unnecessary. Plus you did a big no-no and pinged Jen’s, not only that but you pinged him twice. You also pinged him for the simplest and a short question. If you are to ping Jen’s I’d say only do it if Snap! completely broke or all of your projects just got deleted or over written. Please refer to this post. Section 4, Subsection 1 and 2. (4-2,1)

I can change it to a different category...

Please refer to.

Quote doesn't show...

Welp, now it does.

I mean the question itself is just way to short, not a big deal, so yeah.

OH AHHHHHH

I better run away before that happens. Goodbye, good people of the world. I'll leave and live with @oscar_robinson instead.

It was much scarier for me because I literally joined the forums like a week before that.

Seriously thought, in the future to avoid king Jen’s, you should not @ him unless something really bad happens if it’s a question like this, maybe not even bh but a fellow Snapper like me or someone else.

But I did want an official response.

Where's that post where he starts to complain about the libraries?

Well bh has said before that Jen’s doesn’t like some libraries, I’ve seen others quote it. Basically he doesn’t like most libraries. I think he likes Arduino and stuff though. Yeah I don’t keep track of my posts so I do not know.

Oh okay. So it's confirmed then.

I thought he only hated the Getters and Setters library.

What? As far as I know, he just doesn't like the getters and setters and create variables libraries. I'm pretty sure that's the biggest ones he doesn't like.

Of course, none of us can say for sure what jens likes and doesn't like, so I think this conversation has gone long enough.

Sorry for some bad grammar, I posted this after midnight

Yup, I want - and plan - to get rid of the "Create Variables" library, and also of the "Getters and Setters" one, for different reasons.

"Create Variables" is a band-aid kludge that helps other libraries bundle data with their blocks. Some blocks rely on the existence of a global variable to keep track of some setting, e.g. of whether string comparison should be treated case-sensitive or not. That's why when you import that library you need to first run an initialization routine that creates such a variable, or - as it's done lately - we can create such a variable on the fly. What we really need, however, is to simply allow libraries to also include persistent data, such as we're already supporting for exported sprites. Programmatically creating named variables on the fly is only a weak fix to a more general issue that we'll be addressing in future versions.

Aside from this very narrow use-case for which we've designed the "Create Variables" library the main problem I have with it is that is confuses too many users who otherwise can't program their way out of a paper bag. It looks like a solution to the problem of referring to data by a name, but it's not. Instead programmers should learn about key-value associations, data structures, and - most importantly - first-class (anonymous) data. This is especially true for learners that Snap! caters to, because programmatically creating variables on the fly is not readily supported by any other programming language they'll use later, and if you do end up tricking Python or JavaScript into letting you do it you'll be laughed out of the room or frowned upon by those who know better. The reason for that is that you don't need to associate names with data, because you already have the data and you already have a name for it. It's a so-called "tautology", an example of circular logic. The fact that "Create Variables" pops up in the libraries dialog makes it seem as if this were a good programming practice, or that there were a legitimate class of use cases for this kind of meta programming, but that's not true. So instead of educating learners we confuse them and do them a disservice by providing the library.

TL;DR: You never need to programmatically create a variable.

"Getters and Setters" is a different story. That library is now mostly redundant, because we've included almost all of its options in the primitives that are just always there already, plus many more that the library is missing. But some of those settings have been deprecated, even a long time ago, or are no longer supported. By listing those abandoned or experimental settings as options the library conveys the wrong impression that there are "secret" power switches ("smooth animations", "retina display support", ) that - in fact - don't exist (but somehow keep popping up in the forums as fake "solution").

Other settings are problematic, because they don't do what users will expect, or they can - accidentally, or by design - make you loose your work or make Snap unresponsive.

There is also a philosophical design argument between old accomplished hackers like Brian, Ken, and some others, and me, about whether everything that you can do in the IDE "should" also be doable with blocks. But that argument is mostly relevant to curriculum designers and to people giving presentations at conferences. I can't think of any good reason, why a student's mid-term project would need to programmatically resize the stage, switch to and from presentation mode, flip between different palette categories, change the "long form input dialog" or "plain prototype labels" preferences or suddenly turn on keyboard editing and input sliders or force the viewer of a project into another design mode. On the contrary, if a project suddenly does these things it's probably not what the viewer of that projects wants. In my strong opinion the programmer of a project gets to control what happens onstage, but the user of the IDE owns control over the editor. Letting the project programmer take over the IDE is disrespectful towards others and detrimental to sharing your work with others.

TL;DR: The "Getters and Setters" library is outdated, and parts of it are controversial.

"Jens doesn't want anybody using any lib". On the contrary! I've spent most of last year designing and building an extension mechanism that lets us support many more libraries! Plus, I've personally written most of the existing libraries myself:

  • Parallalization
  • List Comprehension
  • World Map
  • Menus (new, currently in dev)
  • Text Costumes
  • Text to Speech
  • Animation
  • Pixels
  • AudioComp
  • Frequency Distribution Analysis
  • Database (together with Jadga)
  • Web services access (together with Bernat)

and contributed to most others. I've even re-written the current "Create Variables" library for the new extension system.

One problem with libraries in the past has been that we relied on them too much. For example, for many years the Higher-Order-Function blocks (MAP, KEEP, COMBINE) and the FOR loop used to be part of the "tools" library, and we had to tell every BJC student to always load that library first when working on any project. So in recent years we've moved to include more features to be just "always available" in Snap. This has lead to other issues, because the number of blocks has increased, so now we need to support microworlds that wish the hide them again :smiley:

Wow, can I use that as my essay for school? :stuck_out_tongue: