Live CEOing Ep 829: Language Design in Wolfram Language [DigitCount and More]

Stephen Wolfram leads a design review on Wolfram Language features. The team discusses adding an optional width argument to DigitCount to handle leading zeros in fixed-width numbers, and untangles inconsistencies between ChartStyle and PlotStyle across visualization functions like histograms and bubble charts.
Chapters
Hello, everyone. Welcome to another Wolfram Language Design Review. This is part of our Language Completeness and Consistency series, and we seem to have an apparently modest collection of topics today. Let's start with digit count.
Right? So you sent two questions. One was, shouldn't this have a way to say the total size and yes.
For leading zeros and so on. Right.
Which I, I mean, what, I guess my question is, why would you ever want that?
Okay, Because I, the reason is because I'm trying to count. I've got something where I've got, like, things in some register of fixed size, and I want to know how many zeros, how many ones there are. If everything is leading, you know, if it's led by ones, no problem. But if I want the number of zeros, then I can't tell that unless I know the total size of the number.
Okay? And what if, then the number of lots you give is less than the.
Number of digits and quote only the number of slots? Because the typical case is you're doing something like this. You're doing, you know, it's the comparison between two poles. Let's say something like this, right? So that has leading zeros and something like, you know, integer digits, table of integer digits, whatever. See what I'm saying? Am I making sense?
Sure. But I, I'm saying, you know, if you give integer digits of 12, 34, comma, 3, or whatever the syntax. Imagined syntax for this thing would be.
I guess that's fine. It does that. It's the correct thing. Just does exactly the right thing. Okay, so the maximum value of digit count would be this width argument.
Wait, sorry. When? I don't totally understand when would it ever not just be. Is it not just the max of the width argument and then the current value? Digit count?
No, because the problem is digit count. Let, let me show you. Okay? Let me say. I say digit count of seven, comma zero d digits. Sorry, in base two. Okay. I consider that's wrong. If I have a register of width 5, for example. See what I'm saying? So it's, it's not symmetrical. If I do this, I'll get three, right? But imagine that I was doing the tuples. Look, imagine that my 7 is part of something which I imagine to be part of these tuples. See what I'm saying?
This is not guess, Okay?
I mean, I, I, I've run into this several times, and it just, it's not a big deal. I mean, I can just do integer digits and count the number of digits, right? It's not A big deal, but it's just like. It's an obvious thing to have. Makes sense.
Well, I guess as an optional fourth.
Argument, yes, that's correct.
Danny, do you. Do you see any problem with that? Danny here? Danny is here.
Yeah, but probably he's on mute or something.
Okay, well, I'm going to assume there's no problem, so let's just get it.
And regarding your other question, it's very badly documented, but it is document that you can give a list of digits. So we should just improve the documentation there.
Okay, fine. All right. Dan is saying he can't unmute. Is somebody who is in control of the meeting. Are they able to make it so that he is capable of muting. I don't see that. He's not. He's not. He's not. Muffled. Muscle muzzled. Muffled. Whatever that I can see.
Maybe you can at least make a, you know, write something in chat if he has a strong objection to what's.
Yeah.
About to be, you know.
Okay. Yeah. Right. Okay, let's move on.
Okay.
Okay. Chart style versus plot style. Right.
So. So you complain. Well, you know, how can anybody ever figure this out? And my. I mean, my first reply is that first of all, you know, thing generally things with chart in the name, take charge style on things.
Why?
Okay, well, let us. Because. Because there's. Because they're semantically different.
Okay, explain. All right, Brett, explain.
Scroll down a little bit more.
Right, yeah. So plot style is per function or data set. Charts style slices at different levels of the data.
Right.
So.
So why aren't we allowing both chart style and plot style or renaming them? Renaming chart style as an alternative name. Can. Can the chart style functionality be used in plots?
No.
Why not?
Not at present.
Okay, but that's.
But it also. It also. I don't think it makes sense. Right. It's a semantically different.
Okay, let's go through what it actually is. Right.
Well, yeah. Yes, Stephen, you know, when I prepare an agenda and spend several hours preparing an agenda instead of.
Okay, so why don't you explain. Why don't you explain it? Okay. Explain it.
Well, I was starting to, and then you started complaining.
Okay, well, I'm looking at this example here. So this is saying red, green and red, blue and orange apply to the individual elements here. Right. Whereas in plot styles, they apply to the curves. And I don't actually understand why I'm not seeing a red and a blue here. Oh, because that's a sub list there.
Right.
So if I were to do this.
Well, yeah, so let's go ahead and make it. Let's go through the examples in order, Steven. Instead of just jumping through them. Right. I prepared them in a specific order.
Okay. Okay, Go ahead, please.
So here, right? In, in bar chart, right. If we do red, blue, orange. Right. Then we get what? Right. Each point. Right. That applies to each point. Now, if we did that with plot style, right. We'd get a red curve and a blue curve. And since there's no third data point or third data series. Excuse me. Then in the plot below, we get, you know, some blue dots and some red dots, but no orange dots.
Correct? Yes, I understand. Okay, so, so just to be clear, this is, this is per data set, so to speak, and this is per element in that slot in each data set.
Yes.
Okay. I mean, you know, it's almost humorous that somebody could get that from the name plot style versus chart style. It's embarrassing, but let's go.
Well, that, well, then you should have objected 17 years ago when this was introduced.
Unfortunately, I was not paying enough attention right then. This was a mistake. I, I, you know, it's one of these things where it was like, oh, it'll be okay. It's all great.
And it, well, is chart style, Is chart style consistently always, like per data point? Or, or does it do different things?
The. So, so let's go through the next series of examples. Right? So here, right. If we. Right. So in this case, right. Chart style, we have the, you know, basically adding the list had no effect because it's assumed to be the innermost. When you only have one element, it's applied at the innermost level. Whereas, you know, in plot style, right. The lists are grouping. It's like directive.
I don't understand that at all.
Do, do, do. Well, then, then go down, go down to the last couple of examples.
Okay. But Brett, can you explain to me why that didn't do it? Why that did what it did?
Because the, you know, so chart style, you have multiple lists.
Yeah.
You have a group level. You have. So the, when you did that comma list, green, Right. You have red, blue, orange being set at group level. You know, similar to having a style wrapper around each of those lists.
Okay, so there's a completely different meaning of the subsequent elements in the chart style list. There's some kind of drill down thing. Is that right?
Yes, yes. Which we have. Which I have examples of.
Okay. Okay.
Which is why I go through the examples in order.
Okay.
All right, so, so, right, so then, Right, so, right. And I think we understand why it's orange. Because that extra level of list was like a directive.
Sorry, which one in this case here? Yes, I'm sorry, why it's orange in that case? Because this. No, I don't.
Plot style pre v6 plot styles pre directive, where we had to use list to combine styles.
Right.
That.
That's the same thing as if you had the rective of red, blue, orange, and I understand the last color. It wins.
Okay. Yeah.
Okay, so then. Right, so then if we go back down to the one, that's where you only see the red and blue bars. Right, so. So there we have red, blue, orange and none. Right. So we don't have anything for individual points, but we have something for each group.
And so how does it know that? I don't understand. Because back in the. Because.
Because there's a none. Right? It's a two. It's a length two list with an inner thing. Right.
By default, chart style. When there's lists, lists of lists, you know, as, you know, if it needs to fill in, it's filling nones to the left, essentially by default.
Yeah.
Okay, so explain this to me. So if I say blue art is green, it's just going to ignore the green, right?
Yep.
Right, so that. So, Stephen, delete that green, add an extra level of list.
Okay. If I add an extra level of.
List and then put none before the.
And that'll be exactly the same.
Yep.
Right. So there we're applying things at different levels. So we're not applying anything at the group level, but we're applying things at the point level. And if you have a flat list.
And they replicated at the point level.
Yes. Yeah, we use. There's an example of that below.
Right. I mean, and it's been a bit since I've seen itai's Notebook, but. Okay, there's examples of. Right, so there's sort of using stuff at both levels.
By the way, I don't know why Roger isn't here. He should be here. Could somebody invite him, please?
Yeah.
Thank you.
And Right, yeah. I don't know if this is a feature or a bug, but. Right, so if, if we did none. Right, so the orange wins, which is why one series is orange. And then for the second one, we have none in that list plot there, which is why you don't see the second series. Although if you hover over the right space, you'll. You'll get the. The dynamic highlighting, which highlighting. So not sure if that's.
That's interesting. I was not expecting that.
Okay.
Neither was I. I think it's a bug.
Okay, Right. And so then the next. Well, I think you want to go too. Exactly.
An interesting Buried Treasure type idea. Yes.
Right. I mean, okay, there are some things where, like, even though it's none and it's not shown, the plot still knows about it. You know, so like if you were to say filling goes to, you know, list one goes to list one goes to list two, I think then you would get a line, you know, from the orange point up to where the other point would have been, but you won't see the other point.
Yeah, yeah.
Yeah.
I mean, here's only the style is none. It's not that the point is none. Right. So I think it kind of makes sense that it still have the tool.
I think the Buried Treasure is. Okay.
All right.
But that brings up one more difference between plot style and chart style. Well, I mean, I guess it's chart style at the group level. I mean, like, if you replace one of the blues with none, I think that bar at the moment only shows its border because that's coming from yet another style.
That seems consistent though, right?
Yeah, I think it's consistent. Okay, let's keep going. This is a horrible mess.
I mean, realistically, basically, chart style is way more flexible than plot style.
Right.
So you guys had the brilliant idea of introducing a new symbol and sort of pseudo deprecating the.
No, no, no.
Because it's applying to different sorts of things.
Right. First of all, let's look at the last group of examples and then let's circle back to the first section to get to that point. Because you skipped over the first section and there was actually non trivial content there. Let's. Stephen, let's finish the examples and then jump back.
Okay, Right, so.
Right, so here we have sort of non trivial specs for both. Right. So I have red, blue, and then different levels of opacity. And we see that if I only gave two levels of opacity, then. Right. It reused. Right. It. It was cyclic within the group, which is why we see, you know, in. In. In the next input.
Okay. It's nice functionality. Right, right.
What would it even mean to do that in a plot?
I don't know. Let's look at the list up at the top of what uses what. Right. And. And I mean, because you're saying plots don't have the same kind of grouping structure. Is that what you're claiming, Brett? Can you confirm or deny that?
Correct. I mean, some of it will hopefully eventually change, you know, as tabular progresses.
Right.
But certainly with like function. With function plots, right? I mean, you have the individual curves, right? It doesn't make sense to. At least I don't think there's a sensible discrete list of styles to apply to bits of individual curve. And, and let me point out, so general, you know, there, there, there's, you know, basically the things. You know, basically almost everything has chart in the name. And you know, there maybe are perhaps one or two things that are sort of wrong, but that's basically correct. And not all this functions have a plot style. Right. Contour plot doesn't take a plot style. So, you know, it's not like the.
Contour style, doesn't it?
Yes, right.
Exactly. So, Char, so then why do we object to chart style? To chart, you know, chart functions, taking each chart style.
Because some of them make. Well, okay.
I'm just saying it, you know, you just claiming this was a horrible decision. I think is. Is okay.
But I mean, you know, bio sequence plot, for example. Wait a minute, that's. Yeah. Okay, so I mean, that's something where. I have no idea why biosequence plot. Should take a plot style rather than a chart style. No idea.
Well, I would argue that first of all, it's because it has plot in the name. And second of all, does this have different levels of stuff that you might think so?
Yeah, look, look, it's got a whole.
Right.
I mean, but I mean, I would expect that to be more of a rules sort of thing than plot style. Even like array plot.
Why is this not even documented? Why is it where its options. Oh my God.
Has the same options as graph plot.
And it has the list of all options.
Yeah. Okay.
And what I don't understand is where those different colors were coming from because I didn't see anything that there were two separate strands. Oh, okay. Right. Well then that's just. Right. Then, then it's just like a normal plot. Right? Right. The first.
Yes, it is. Except the colors are brighter for some reason for the, you know, for the basis than they are for curves anyway.
Are they. Or do they just look brighter because they're. They're thicker?
I think they're not the same as. Okay, they are brighter.
Okay, I am so confused. I mean, okay, by the time we've got. You know, what's a Renko chart?
It's a financial thing.
I know that, but why am I getting.
Right. Because those are the entities. So you're. It's going to the entity page.
So histogram. I mean, are there any plots that are filled by default. Yeah. Geograph value plot.
Yes. You know, and stacked list plot.
And so what's the difference between histogram and stacked list plot? Why is one of them have a plot style and one of them have a chart style?
Right. I mean, so, so histogram. I'm totally on board with making it accept plot style and probably even switching it to plot style is the documented option. And it accepts chart style for historical purposes.
That is one that Brett considers a mistake to just get that out in.
Okay, fine.
Explicit.
Okay, so is there anything that doesn't. Okay. What things do not have chart in their name? Because I admit I'm, I'm less concerned about chart style for things with chart in their name.
I think it's just the histogram family. Well, okay. And feature impact plots, it looks like.
Which I'm not sure what is chart labels. See, this is where we go, this is where it's just going to go. It's going to fall off the. I just don't understand why that, why there's a whole family of chart options here. I mean, it's no good if we just say chart style goes to plot style, but we've still got chart element function.
And you're looking at histograms. I mean, I think most of those, I mean chart style, chart labels, chart legends.
I did a jump down for that thing and it jumped to the wrong place. It should have jumped to that being in the center of the page. Can somebody report that as a bug, please?
John, is that a bug?
I don't know if John's paying attention.
John, can you pay attention?
Yeah, sorry, I didn't see it.
Okay, I clicked on the down arrow for chart element function and it opened in this state here. The chart element function right at the bottom of the page.
Yes, I'm well aware of that. That's actually already on my radar as a bug. Yes. Okay, it should, I mean, basically it just should make a much more aggressive attempt to scroll it toward the top.
Yeah, okay, that's fine. By the way, talking of which, did you see my report about reverse closed cells scrolling to the wrong place?
I saw that there was a report. I've not.
It might be a feature I've been on.
I've been on PTO for a little bit, so I've been a bit out of the loop. But I, I, I did see there was a report. It's on my list of things to.
Okay. I mean, it might be to do with blog tools style sheet, but it might be a general thing. Okay, it's super annoying. I see it more often, I think, in the blog tool style sheet. Okay, so this is chart element function, right?
I mean, and that one legit is chart. I, I think.
What do you mean by that?
I mean, to the extent that this is an option shared with bar chart.
For example, I understand that, but what is a chart option as opposed to a plot option? I some kind of pedantic, you know, whale is not a fish story.
So the, you know, the thinking at the time is that for the most part, the plot options don't have as deep of a hierarchy. And whereas the chart, Is it always true? Is it always true? I'm not thinking of any counterexamples off the top of my head.
So the claim is define the difference between a chart and a plot.
So the charts draw distinct elements.
Unless plot doesn't.
I mean, listplot is very special to some extent.
I mean, There are like 10 other functions that are related to it.
There are lots of things that are a different form of list plot, right? But like, list plot with points even is different from list line plot in terms of which when we're exploring stuff with regard to tabular, it's like, okay, for list plot, we can change what the marker shape is and what the style is and what the size is, and we can do all kinds of cool things and map different columns to all kinds of different things. And then you move to like list line plots. Like, what do you do there? Because the line aspect of it imposes lots of constraints on what can usefully be done.
I'm sorry, you're saying list plot on its own with points.
Right?
I mean, conceptual, I mean, that's kind of what we would like to start to incorporate with the tabular things, I think, you know, not for this initial version, but you know, to say, you know, to get into things where it's, here's my, you know, here's my tab, you know, whatever, viz, function of a tabular thing with, you know, 27 columns. And then you start saying, I'm going to use this column, you know, for my X coordinate and this column for my Y coordinate, and I'm going to use this column for color and that column for size. And labels are coming from here and you know, all sorts of things, right, that allow you, you know, way more flexibility than we've had in the past.
Okay, I, I, I want to come back to my original complaint.
Let me, let me just make the observation, right? I feel like a list line plot, right? Is much more similar to plot than it is. I mean, right. The data is different. Right. But you. The thing you see, right, looks like something like you could have gotten from plot. So in that sense, it's. It is sort of a bit of a different beast.
Yes. And so what's your point? I mean. Okay, let's take bubble chart as an example.
So bubble chart is, I think, one of the cases that comes back to what Christopher was asking, I believe earlier on. If it always happens in the same direction and it doesn't.
What do you mean it was in the same direction?
By default, bubble chart colors everything within a set the same. It still has the ability to color differently within a set, but it's not the default.
But I mean, chart style, I just. It's just incomprehensible why it's called chart style and not plot style. Here I. I have a bubble chart. My bubble chart is very much like a list plot, except that I happen to have, you know, things of different sizes. Right. And now I've got chart style. But why. Why isn't it plot style?
I mean, it could accept plots, though. We could make it accept plot style.
But then why is it chart legends and not plot legends?
I think plot legends didn't exist back then.
That's part of the reason. I mean.
Okay, but. But so. So that's why, you know, that's why we're in the jungle and we're hacking through it here. We gotta fix a bunch of this stuff.
So, so can we. Can we look at a. You know, I presume that bubble chart has some examples with chart style, which might give us insight into scroll a little bit.
Same issue.
Oh, God. Okay. I mean, that looks unbelievably like a plot style to me.
Well, yes. Well, you know, give it. Give it the specific. You write a list of list specification, and.
There'S probably one farther down that does that, I would hope.
Charge style goes to 24. I love that. Well, I don't think that's a great choice, but fine, right? I mean, if you did something like, you know, opacity or. Or something.
So that.
Because.
Okay, so it's a mixer. Yeah. I am mystified.
Well, I mean, you have one.
Right? All.
All the one set.
The other point is purple.
One sets green, one sets blue.
And half the point in each of those is. Has opacity 0.3, and the other half is purple.
Because why are they. Why are they in different groups like that? I don't understand. I mean, this is. This is a bunch of triples, right? This is. This is three sets of triples.
Yes.
So what got what?
So the first set got style of red and the second got style of green. The third got style of blue. Within that, every other one is either opacity 0.3, in which case it's affecting the red, blue, green, or it's just straight up purple.
Right. If you had. If you replace purple with, you know, opacity of 0.7 or something.
Yeah, no, I get it. It'll be a mix in there. Okay, my question is. So these hierarchical. The hierarchical styling of things you claim is not a thing. For pure plots, you claim. I might be able to prove you wrong. See what I'm saying that in pure plots, like a parallel access plot, for example, that there isn't. Or a pairwise list plot for that matter, you claim, I think, I consider unconvincingly that there isn't that in. In plots that there is a pure sort of linear collection, a single level list of kind of coordinate assets, basically. Do you see what I'm saying?
I think so. And I think for the most part that is true.
Right. I mean, I suppose theoretically one could imagine a less plot where you wanted every other point in your series to be something and so you could imagine a chart style type.
Yeah, I'd be prepared to give that up because I think that's a pretty obscure thing. I mean, although I agree that you're doing it for these charts. And by the way, there's things like tree form under plot style of just mysterious.
Free form under chart.
Tree form needs to be modernized anyway.
Oh, I see In. In the list.
Right.
And I. Right. That's just because it sort of, I think, passes things on to tree plot.
I mean, Julia set plot is again, a. I mean, I haven't a clue. What. What does plot style do here?
Probably nothing, because that's a color function thing. I don't remember what the syntax is to get the points.
What the hell did that do?
I don't know. It's weird.
Yeah, I mean, Julia. Right?
I mean, it is possible for I think, Julius set plot to generate something that is point based, and for that it supports plot style.
If it doesn't have no plot style. Oh, is the border boundary of the Julia set. That's really weird. Okay, all right. It's amusing. Okay.
Although that is. That is. I mean, that is consistent in the sense that plot style in 2D plots generally is sort of line based and not, you know, full region. Right.
Except when it isn't like in list.
Plot 3D or region plot or.
Yes, but, but, but, but list plot 3D is, is not a 2D plot.
Yeah, okay.
I suppose region plot may be an exception, but in, in, in most 2D plots, right. Plot style is quote unquote, typically, you know, not full dimensional regions.
You know, I wonder what we could do to deal with this. I mean, in other words, let's imagine that you are typing one of these things. I wonder whether there's at least an autocomplete thing that we.
I mean, here's the simple thing. Just type style where. Yeah. When you get to the options position.
Yeah. So type, you know, bar chart of.
You know, data comma.
Hello.
Huh, that's weird.
Do you have. Do you don't. Well, no, don't think there's even a way to turn off the leading. That's weird.
Well, you were expecting that. I would have as soon as I typed that, but it didn't. Wasn't very intelligent about it. I don't think that's a great way to. I mean, I was thinking that we could at least prompt people.
John, are you paying attention? You might want to be paying attention to this.
Calling John. I am now. Okay, so the point is in here we've got a chart style, right?
So you started typing, you know, C and.
No, no, I, I don't by the time I'm typing C. But my point.
Is, is that those are all, you know, the first four are all options to bar chart.
Yeah. So what happens if you start typing plot style? It lets you do it.
Well, I mean it always lets you do it and then it turns it red.
So it favors option names first, but it doesn't omit generic system symbols.
I think the issue is that the.
Fuzzy matching isn't preferring options.
Right. So when we just typed in style and we were hoping it to sort of.
That's not a thing, people.
No, no. If fuzzy matchings always requires a first letter hits. Oh, it's fuzzy after the first letter.
I see.
Oh really?
And this is because the choices that you get, if you don't require first letter hit, they trail off in quality extremely quickly.
Okay, but, but look, look, we've got two issues here. One is how do people ever know that it's really chart style here? Because they're going to type plot style and nothing here tells them. I mean, it will be nice. Maybe we just need special casing in a case like this.
Well, I mean there, there, there is, there is something being given here. You're getting a plot style in red and you're getting a comp, you know, the menu which allows you to go look up the information for bar chart.
The other one.
Oh, fascinating. Chart style isn't in the C Also, that's a bug.
That's a bug.
That's a bug that say we put in chart style and we didn't go back and bother to look at what was there before. So can we get those fixed, please?
Yep.
Maybe contour style also wants to be there. Yeah, I mean, after enough years I finally figured it out. But you can't. You wouldn't believe how many years it took ME to figure it out that I needed to set contour style instead of plot style.
Right. So I mean, they should be down underneath mesh style probably here. Right, Makes sense.
Yep.
Okay, so I'm going to count on you guys going through and fixing those. Okay, but let's. That's one very basic thing. But I claim if you type in plot style here, rather than it just going red and saying it's not an option for. It will be better if it told you. Hey, what about chart style for these ones where we know there's a confusion.
So you're saying this would be a manually curated thing? Because I have no idea how you could do this. No, no, no.
It's not automatic, it's just manual.
Well, that could be a feature. Obviously.
Examples you can think of of this type of pairs. Yeah, well, I mean there's certainly a bunch of them in the visualization functions.
I mean there's a whole bunch of plot versus chart, but. But apart from that.
No, I'm thinking, I'm thinking.
I mean there's stuff even maybe frame.
Versus axis, but it's hard to tell.
Yes, yes, that's a good example. I was very confused by that recently. I was trying to get something to switch off the frame ticks. You know, ticks versus frame ticks, for example.
Yes, but.
But in order to identify that, you have to see basically whether the user is using the frame or the axis because they could be using.
That one's worse because frame ticks and ticks are both legal options.
But that's okay. If we put in the autocomplete. I mean it's a new idea for autocompletes to put essentially see also functions in the autocompletes.
So you're going to write. You're going to write frame T, like for frame text. And then in the. See also, you know, the first thing is going to be ticks and then below it.
No, no, no, it shouldn't be no, no, no, no. It should be frame ticks first, but then ticks could come next.
No, that's what I mean. Like, it'll have. It'll all be a bunch of things that are fuzzy matches to frame T or whatever. Plus ticks.
That's correct. Because frame ticks. Yes, it is fuzzy matching to the thing you haven't yet typed.
I was gonna say it's a different form of fuzzy.
Right. It's conceptually, it's semantically.
I mean, there's some cases where that's gonna work out poorly. I mean, if the fuzzy match was based on ft. Yeah.
Then it's hopeless.
You know, there. I don't know what else matches ft, but it's probably not. We're just trying to drill down at that point.
So it's a bad idea. Right. In that case.
Right.
If they don't write frame ticks, they write, you know, frame tick. You know, they have a typo, and so it's only fuzzy matching frame ticks. Does it still show ticks?
Probably not.
I mean, you know, instead of autocompletion, it could also be a raft on something that's red.
Absolutely. It could be a raft on something that's red.
But I. I feel like that's a better suggestion.
Fine, fine. We could start with that. I mean, in this case, currently, any.
Kind of raft on that red symbol.
Well, I mean, look, in this state, it just turned red. I kind of want to see the thing here, and maybe I want to see it down here or, I don't know, starts. I. I don't know, somehow.
I mean, I think we could also do something post complete. I'd rather do something, you know, post completion than in the middle of completion, because there's.
Fine.
There's lots of ambiguities in the middle of completion.
I'm not horrified.
We don't even totally know what your intent is.
Although I still do think the case of legal frame ticks suggesting ticks would be a good idea, but that's a different thing, and I consider that more luxury than this case. So. All right, well, that's a start here. Okay, so there's some documentation stuff. So let's understand the action items here. There's the possibility of accepting. Of quietly accepting some options. The alternative to that. And we need to assess the two possibilities. It may be better to appropriately, you know, indicate in the autocomplete what's wrong and have people fix it. I think we also need a review, like for the histogram chart style versus plot style. You Know, there's some that are just a little bit crazy. How many are actually crazy? Do you get what I'm saying? So one thing is how many?
I, I, I mean, having reviewed those two lists, I think the set is pretty small. It's not empty.
Good. But fine, so let's go assess which ones are, are pretty crazy and then potentially introduce the version that we want and you know, continue to support but deprecate the other version. Make sense?
Yep.
Then, okay then for goodness sake, let's check all the cross linking stuff in the documentation. We might even want to put lines in the detail section sometimes saying, well, no, probably not. I mean, maybe for frame ticks versus ticks, those kinds of things. I don't know if they had do have lines in the, in the detail section, but they probably should.
I mean, you know, if you look at other style options, you know, there are other options which are, you know, I don't know what the overriding principle here is, but like take a look at trend style, for example.
Trend style T, R E N D.
That's financially thing.
Yeah, yeah, I know.
So I mean one can kind of understand why trend style was introduced. I, I don't feel I have a grasp and it's, I haven't been fully engaged in this meeting, so it's partly my fault. But with, you know, what the underlying principle is. But you know, do all of these kind of star style things, you know, how much sense do they make?
Yeah, well, it's like everything, everything has borders where you know, one side of it it's definitively this, at the other side it's definitively that. And then there's a bunch of stuff in the middle that's unclear.
Yeah. So, and I'm sure that some of them do make sense. I'm sure there, there aren't a large number of mistakes, but there may be some mistakes.
Right. So we should assess whether there are mistakes. Right.
So I mean with like trend style here, Sorry, is there anything wrong with just.
No, I don't think there's anything obviously wrong with this.
Right. Just to be clear, trend style is coloring by first derivative.
Yes, yes. It's colored by, by difference, by first difference. Right.
It's not positionally coloring.
Right. It's a completely different, you know, it's something that's only relevant for a handful of functions and it seems like a fine thing to exist. You couldn't do this with either chart style or plot style or whatever.
Right.
I think the issue is what are the cases where things are confusing. There Are plot family functions like plot label? Is there a chart label? I don't know. Is there a chart label? And what's the difference between chart label and plot label?
So plot label is an option of graphics, right? So it is.
I don't care. I mean, I know that, but I don't care.
Well, right, you have chart labels and plot labels, which are the element labeling options. But everything takes plot label without the S.
What's the difference in chart label? Some plot labels.
Chart labels is able to. Element is. Is able to label at different levels.
Okay, but should functions that take chart labels also take plot labels?
There's no such thing as plot labels. Or is there?
There is.
Okay, well, I've never heard of it.
No, I. Labels label sets in. In like, you know, plot list, plot list line plots.
Oh, those things. Yeah.
Yes.
I haven't.
And it doesn't label critically, though. It doesn't label data point. I mean, it's the same distinction as with. When we saw. With chart style, plot style. It's labeling data sets, not data points. Right, Right.
You know, for those, the point labels are, you know, currently via label function, labeling function. But if you have two sets with five points each and you want to label them, you know, with names of fish and names of colors or something, you know, that's not an easy path or not a straightforward path.
Okay, Are there functions that take both plot labels and chart labels? Could that be?
I. I mean, potentially there could be. I don't think there are.
You have the two lists above, right? You can just take the intersection.
Plot labels would be a subset of chart labels. Because chart labels can label both, you know, can label at every level in the data.
See, this is super confusing. I mean, the fact that, you know, which I didn't even know, the chart labels has this feature OID that it can label at any level. Why can't plot labels label at every level?
What's the second level of plot?
Well, okay, fair enough. But. But why then?
Right? I mean, so perhaps the. Right. I mean, so the chart things assume that your data is categorized in a homogeneous way, right?
What does that mean?
And so what I mean is. So go to chart labels, say, And scroll down a little bit. Okay, so this example, right? So we say. Yeah, so we have one and two. Those are labeling at the group level. And then A, B and C are labeling within each group. But within each group, they're both A.
B and C. Yeah, I get it. Okay.
I don't like that.
What?
The position of the one changed.
Yeah. What Was it before it was up.
Level with the two?
Yeah. You should be able to just command Z to see it, right?
Yeah.
Oh, well, also, the height of the chart changed.
Yes, I think that's the reason it changed. I don't think that's that heinous. But. But I mean, the whole issue about chart charts are hierarchical. Chart label functions and chart style functions are hierarchical. I didn't. I'm sure I knew that once, but I did not remember that. And I do wonder whether there's any possibility of a completion mechanism. I mean, this is the thing we haven't really talked about. There's a user assistant thing we could talk about is you are about to type in a certain position. Could there be some kind of raft that indicates what thing you're filling in there?
That sounds like the code assistance.
Well, what I'm saying is, let's say I say partition, list, comma, and then now I'm about to type here, right? There could be a thing that would say, you know, whatever the name of that argument is, it could say something, maybe.
I proposed a feature like that 15 years ago and couldn't get anyone on board for it. And now we have. Now we have so many things popping up that I. I don't know how we, you know, I. I don't like popping up multiple things at once. I'm sorry, it's just stuff screaming for your attention.
I'm sorry, I missed something. What is the suggestion for the new thing to pop up?
The thing that says that it is width or something? As the next argument, the argument you would type could have a little thing here that indicates you're about to type width here, a reminder of what that argument means.
I think it would be cool. The difficult part, as I see it, would be things that have, like, optional second arguments.
Oh, I know, I know, I know. There's lots of issues. There's lots of issues.
There are lots of issues. I thought through a lot of these and I couldn't get any traction for the idea.
So it was. It was the wrong time. It was the wrong time.
There were. There was software out there that was doing it.
Which dem. Which did it.
Well, and I tried to.
Now we're agreeing that you were right.
Yeah, well, now that I have 10,000 other things to do. Thank you.
Anyway, that's for the user assistance meeting, not for this meeting, I think. But the question here is, and let.
Me point out, right, I mean, if you select right, if you look at the completions after you got partitioned, right, you can get the templates that you then fill in.
Sure. But let me make another point which I think might be more useful. What about if at this point, when you say chart labels, What the hell? Why isn't that. What the hell happened there? Why isn't that giving me an autocomplete option?
Right hand side autocompletes need to be done by hand, which means that they can get overlooked.
No, no, no. That's not what happened here. Oh God, it is. Okay, that's a bug. Another Brett related bug.
What's the bug?
But there's no right hand side here.
There's no generic completion.
Okay, this is what I'm saying.
We have a system where you can specify curated completions either generally or on a per function basis. So it would be possible to put together per function completely.
So what I'm going to suggest here, look at that. That's. That has a completion suggestion.
Yes. But each of those things is conceived, is an actual setting that you could use. I mean, they're probably not the ones that you actually want.
I understand that. I understand that. So what we need is a style here of indicating sort of the fact that it is basically giving you what amounts to just in time documentation for chart style that hints you that you can do this group stuff.
That I.
Right. I mean, so I could do this and it would look like, you know, the completion would be a list, you know, with like the strings, label one, label two, label three. And then the next completion would be a list with a list with the strings, group one, group two.
I think that would be useful. Okay, then I would know how to do something with this.
That's fine.
I mean, but it shouldn't be completions that look like literals of the, like the top ones. It has to be more like, you know, if I do a completion, you.
Know, Brett, something we haven't done but could be done is the completion could complete with placeholders. I tried that one through the placeholders.
I. I tried putting like. What did I do? Did I try putting like placeholders as strings or something? Yeah. And it, you know, just dropped like the input form in or something was like. Okay.
Okay. Well, yeah, if there's a technical limitation, we can figure that out. I'm not too worried about doing that.
If we could do placeholders and option completions, I'm all for it. If we can come up with a mechanism for that.
Okay, then that's an action item for me.
Clearly, Brett, your mistake was that you didn't just put into boxes for placeholder.
Well.
That was a joke.
It's been a while, so I don't remember exactly what I tried.
Okay, I need to. I need to run along here. I think we made progress on this. Let's loop back to this. After absorbing what we've talked about here and come back with, here's what we figured out. Okay. We've got several different paths here. And why is it that all these things that seem like they would be simple discussions are not?
This is a complicated system.
You know, I didn't think this one would be simple, but I thought we would actually get past it onto the third item. I had no expectation of getting to the fourth item.
Fair enough. Okay. All right, sounds good. See you guys soon.
More from Guy

Cheryl Strauss Einhorn | The Human Edge: Smarter Decisions in the Age of AI | Talks at Google

Rachel Glennerster | Innovation and the Center for Global Development | Talks at Google

Rebecca Winthrop | Rethinking the Purpose of Education in the Age of AI | Talks at Google

Dr. Robert Wachter | A Giant Leap: How AI Is Transforming Healthcare... | Talks at Google






