Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
Are GUIs Anti-Social? image

Are GUIs Anti-Social?

Empathy in Tech
Avatar
50 Plays2 months ago

Does accessibility put up it's own kind of wall? Andrea and Ray discuss how GUIs are arguably more AND less "social" than alternatives such as textual interfaces like scripting.

LINKS

Errata: The rumor of South West airlines using Windows 3.1 is likely an exaggeration, see the link above for up-to-date reporting.

HOSTS

ABOUT EMPATHY IN TECH

Empathy in Tech is on a mission to accelerate the responsible adoption of empathy in the tech industry by:

  • Closing the empathy skills gap by treating empathy as a technical skill.
  • Teaching technical empathy through accessible, affordable, actionable training.
  • Building community and breaking down harmful stereotypes and tropes.
  • Promoting technical empathy for ethics, equity, and social justice.

Learn more at empathyintech.com

Transcript

Introduction to Empathy in Tech Podcast

00:00:00
Speaker
Welcome to Empathy in Tech, where we explore the deeply technical side of empathy and the critical need for empathy in technology. I'm your host, Andrea Goulet. I've been using empathy in a technical capacity for over 20 years with a special focus on integrating empathy into developer experience and technical practices. And I've seen firsthand how empathy is the key to high functioning teams and software systems. And I'm really passionate about exploring the research behind empathy and the mechanics of what makes it look like magic. And I'm Ray Myers. I'm a legacy code expert and both an AI enthusiast and AI skeptic. Having been in software engineering as a tech lead in four industries, I love technology, but it cannot exist without humanity. The faster things change, the more we need to remember that. And this podcast, Empathy in Tech, is on a mission to accelerate the responsible adoption of empathy in the tech industry.
00:00:57
Speaker
So let's

GUIs vs. Command Line Interfaces

00:00:58
Speaker
dive in. Andrea, I wanted to talk about a ah quote that got me thinking recently because ah you ever hear something and at once you want to vehemently affirm and deny it.
00:01:14
Speaker
So I think there's there's something very deep going on here, and I'm sure you will have ah some some takes on this, maybe different ones than me. So I was listening to one of my favorite podcasts, ah you know, other than Legacy Code Rocks, of course, which is Co-Recursive and hosted by Adam Gordon Bell, a great show, a very ah technical, but I'd say ah accessible in terms of programming language concepts, if you're interested at all in it. But He had on Jeffrey Snover, who was the person who made PowerShell in which is a scripting language that is kind of the official scripting language in in Windows. If you ever made a bat file in DOS or Windows, well, PowerShell was the grown up version of that that made a lot more things possible. And it occupies kind of an interesting glue space. That's not what I wanted to talk about PowerShell per se. Right. But the quote, which I think is revealing that it comes from them who have had that role, is that gooies are anti-social. Let me pull up the full quote. I realized that the mouse
00:02:26
Speaker
is antisocial. This is Jeffrey Snover talking. The GUI is antisocial. So what's that mean? You have a problem to solve and you solve it with the GUI. What do you have? A problem solved. But when you solve it with a command line interface in a scripting environment, you have an artifact and all of the sudden that artifact can be shared with someone. And it goes on to even more divisive, perhaps.
00:02:49
Speaker
saying that they've never seen anyone use a GUI in a clever way, which I suppose a clever way would be to imagine something that the person who provided them the tool didn't imagine and then use it for that. So do you have any initial takes on this? I do. Yeah, I think it's really interesting. I think that is a very divisive and I think I've had the opposite experience. So you I really like using GUIs. They make a lot of sense to me. And I think to me, it's like it depends on what the goal is. And if the goal is accessibility and the ability to manipulate information easily, then GUIs are often a lot more accessible than command line interfaces and GUI graphical user innov interfaces. So things that you point and click on the mouse.
00:03:43
Speaker
I had this experience where I didn't identify as somebody who coded or programmed, especially early in my career. But I had used this software program. It was a massive database. It was called ACT. It was a content management system that I used for sales.
00:03:59
Speaker
And i hacked the crap out of it i like became a real power user and part of that included creating boolean searches and creating templates and creating my own variables and creating like custom timelines that things would execute on. And you know in writing about all of my experience a friend of mine from high school.
00:04:20
Speaker
like came up to me and said, you're not a salesperson. You're actually a programmer because you're dealing with inputs. You're manipulating the algorithms and how that data is created. And then you're getting different outputs. And that in its essence is programming. And I was like, but I'm just clicking buttons. That's not programming. So I had this idea that real programmers use command line. They use text based editors.
00:04:47
Speaker
And I think this is kind of along the lines of that. It's divisive when it doesn't need to be. Because if we look at how software is built these days, and and I think PowerShell, yeah, I mean, it's got a very specific use case, and it makes a lot of sense if you're talking just about PowerShell. But if you're thinking about it in a broader sense,
00:05:09
Speaker
Almost, like most of the developers I know use some kind of graphical user interface. Like most of the people on the Cory Bates team, like would use JetBrains as like an integrated developer environment where you're using things to point and click and manage your files. And it's usually kind of a combination. Or like for me, like when I'm using GitHub, like I will like I have a memory condition that makes it really hard for me to work in a text-only environment. So for me, knowing that I click a button, it's always in this place, it's going to execute that command, I make fewer mistakes. So I think the interface is separate. It's it's not necessarily like the thing.
00:05:53
Speaker
And yeah, I feel excluded. I feel like this is just another like, oh, you don't actually code. You're not a real programmer. um And the idea of cleverness, I don't know. I mean, my background is clarity is more important than cleverness. And when you make things really usable and accessible, then more people can participate. And to me, that makes it more social.
00:06:22
Speaker
So predictably, I'm very both sides on this one, because I think that there is something real. He is speaking about being deprived from someone who's using, ah you let's say, a limited interface, like a very limited interface that's not meaning to provide all of the power and open ended decision making that the person who made the tool had.
00:06:49
Speaker
And I think he's lumping that in with GUIs and having kind of a reductive view on what GUIs are, which is true of most GUIs, but really not the ones that you're thinking of when you tell these stories. And so that's that's one angle. Like it's a matter of is the is the interface limiting in terms of only giving you a couple of package tasks that I've already conceived of? Or are you able to construct new workflows in it? yeah ah Is maybe the distinction that he could be making that that'd be more precise. But also, I think a lot of us miss what you're talking about, about one format just being inherently easier for you to be comfortable in. and
00:07:35
Speaker
I think when we see you do these very advanced things, you know making ah your own CMS or something, you know our content management system, that we assume it would be just as easy for you to do this the way we would have done it. Like, why wouldn't you do this in a textual interface? Because you're doing things that are equally complex. So I think that's a distinction we we miss that, um you know, cause causes people to use kind of more exclusionary language we don't even mean to be.

Exploring Low-Code Platforms

00:08:07
Speaker
Yeah, and I think this is probably just getting more divisive with the low-code, no-code platforms. For example, I've been using a tool lately, Webflow, that I really like. And for me, like I know how to build HTML and CSS like stuff from bare-bones text editor stuff. like I could do that.
00:08:30
Speaker
But it's so much time for me because I'm not in the command line all the time. Like I'm not somebody who just like it's part of my work. It's not all of my work. And so I'm really in usinging enjoying using Webflow because I got really frustrated with Squarespace and Wix and some of the other ones that absolutely are more limiting.
00:08:53
Speaker
And I wanted more customization, but I didn't need full-on, I could do everything under the sun. And Webflow was a really great fit for that because it's got really fast visualization, but it also uses all of the principles of you know HTML and CSS, it generates the code. You can go in and you can look at it. You can create customizations. But it kind of looks like Illustrator or you know an Adobe product where it's complex. And like once you learn how to use it, it's like, oh, okay.
00:09:26
Speaker
And I think even they're using lots of programming terms. Like there's a um an agency called FinSuite that uses Webflow a lot. And they came out with a naming convention for the classes called Client First. And I would love to get them on the show, honestly, because like the purpose of it is that they're creating maintainable websites for clients. And so I think then it's like, no, it is social because we're getting that level of customization.
00:09:56
Speaker
that is good enough, but we also are making it accessible and easy to maintain. So you know whether or not it's the command line, and like you can still use the command line in a lot of these places. I don't know specifically about Webflow, but like there's a lot that you can do. So I think it's almost like I tend to be more of a both and like use what works. Like if you need all of the power under the shell, you know, under the shell, if you need all of the power under the sun, like, and you want that like full on customization, go for it. But most people don't need that.
00:10:32
Speaker
And I think especially if you're looking to collaborate with people from other departments or people who don't code as their main thing, then GUIs can be a really great way to collaborate because you're both seeing the same thing and it engages more senses.
00:10:46
Speaker
I think as backend developers, um you know which I'm assuming Jeffrey would also fall into, but that's just what I'm identifying as here, even though i've I've been known to go all over the map, is easy to fall into a trap of devaluing the areas you're less comfortable in. If it's more difficult for me to build a GUI, especially build a good GUI,
00:11:14
Speaker
ah because it's just not what i'm I'm more comfortable in, it might be very easy for me to say, well, you know, the reason that I'm not focused on doing that or that, you know, that I'm not doing that is not because it would be hard for me to do it well, but because it's not important. The things I don't know about conveniently for me are less important.
00:11:34
Speaker
And there obviously was a reason I gravitated to what I did. I see a lot of positive in it, right? I see the power maybe of scripting, taking the hood off the car, having all the access. I've gravitated toward that. I've sort of forgotten what the advantages would be on the other side. But if we want to look at what he wants and not, you know, how he's saying we should get it, I think he wants tools that respect the user's autonomy and respect their ability to um cleverly do things that the provider of the tool didn't anticipate. And I think that that's that's a beautiful thing. And that is something like you're saying you you like about Webflow that it provides that.
00:12:14
Speaker
It provides enough for my use case. Yeah. And there's something to be said. I like to call it an escape hatch. You know, you providing people a certain abstraction. We think for most of the things you're going to want to do that this is going to make that very easy and you should want to make the 80 percent case easy. But then tools are really differentiated by how well they they are ready to grow with you when that's just not enough. Is there an escape hatch to where, hey, this one page I need to make in a different way?
00:12:42
Speaker
Do I have options there? Or is my entire app just going to be ground to a halt ah because we can't escape the initial confines of the system we built it in? Yeah. At Querybase, we have a core value crafting context. So it's that you can't make a technical decision without understanding the use case and understanding the context in which it's going to be used.
00:13:04
Speaker
So let's imagine like you know a um business owner who doesn't code needs to manage some workflow documents. right like They don't need all the customization. They don't need all that power. And I think it's actually way less cognitive load sometimes to just explicitly being told Here's the way to do it because when you don't have the choice. Then it's like okay this is what i I'm gonna do now. As you become more advanced like I think constraining information is really helpful especially for beginners who are first starting to learn.
00:13:44
Speaker
some of these new concepts. And this is something we forget where there's the expert problem, which is another thing where it's like we assume that beginners are going to interact with information in the same way that somebody who's been doing this for 30, 40 years will, but they need those constraints to be able to learn.
00:14:03
Speaker
and Then you will eventually bump up against those constraints where it's like, I don't want this anymore. I need more customization. and that's That's where I was when I was trying to look for a tool. I'm like, I can no longer operate under these constraints. It no longer fits the context and the need that I have.
00:14:22
Speaker
So then it's like, okay, well, what is my need? And now let me go figure out another tool. But my tool was not create something completely from scratch. That's not my goal. My goal is to create a beautiful website that shares information that looks that I'm proud of. And I feel like it conveys the information that I want. You know, doing something completely from scratch on the command line, like the people who are reading the website or who are hiring me to give a presentation, like they don't care.
00:14:52
Speaker
i was built how many people who use it are going to actually like click and inspect and look at the code. that Some will, I'm sure, but like at the same time, what's the context? What's the use case? and When we see it as very much either or, we're envisioning a particular history. yeah you know Conventions that that came into play many, many years ago and in terms of What is GUI? What is textual? What is something else? I mean, you know, kind of the the future is wide open. A designer that has very interesting takes on on where GUIs can go that would be worth looking into is Brett Victor. For instance, he has a talk called inventing on principle. He's very visual first in what he advocates is like as soon as you've modeled the data, you should have ways of visualizing it.
00:15:47
Speaker
like that that should be your first stop even though he is we are coding we are creating very creative very customizable things but he emphasizes don't make visualization in second class and i've come around kind of that point of view of late like i draw a lot more diagrams for people than I used to. If people are just talking, like I will try and draw a picture of what they're saying, even though I don't consider myself a visual person. But I've just seen the the power of it, that people once people can just look at something together and see, Oh, was this really what we had in our heads? There are things that the conversation won't do by itself.

Role of Visual Programming and HyperCard

00:16:26
Speaker
Yeah. Well, it also makes me think about like, so most people who are in software that I know, like a very common origin story is, oh, I got a Commodore 64 and then I learned I could code and that was awesome. And I felt really empowered. And then I started, I don't know if that was you, Ray, but that's the story I hear a lot. An IBM PC jr. for me, but very similar story with a little less pretty.
00:16:52
Speaker
Okay, so my first computer that I got when I was five, right, was the Macintosh, the original Macintosh. I couldn't have run like text-based code really if I wanted to, it was constraint, but I learned hypercard. I didn't even know it was programming at that point, but like I had so much fun like creating all these little cards, and creating and that is a full-on programming language. like Did you ever play Myst?
00:17:18
Speaker
the video game like way back in the day, the computer game. Yeah, I had missed. and They re-released it. if you haven't played It's like my favorite game of all time. It's so good. That was built in HyperCard. But the HyperCard is a visual more visual programming language. I didn't even know I was coding. Honestly, I thought I was playing games until later in my 20s. Someone was like, oh yeah, that was program like that's an like that's an actual programming language. I was like, what? I thought it was a game.
00:17:44
Speaker
and so you know i think that When you go to text-based information, you are intentionally limiting the amount of information that can be shared right because you're only looking at numbers and symbols and letters. But you get so much more visual information. You can use color, you can use I know that there's different um you know ah styles that you can download in your text editor so that you know different functions and things show up in different colors. But in general, it's like you can use diagrams, you can use motion, like you can use a whole lot more information and that additional information can make it so much easier to convey your idea and prevent miscommunications.
00:18:29
Speaker
So yeah, I disagree with the idea that command line is social. I think it can be. If you're in a group of people who just love command line, awesome. But I think as a global argument, I don't see how it holds up. There's something to be said for the command line bringing different programs together.
00:18:52
Speaker
which I don't know if we've addressed and this is maybe one of the last points we'll ah we'll explore, but any GUI, typically that's that application. It's just doing its own thing, right? Very rarely are you going to be able to take one GUI application in another and like jam them together, have the inputs of one become the outputs of another. I mean, they try to do a little drag and drop. We get a little bit of that, but something that the command line does is you're not just limited to like I'm interacting with one program through its command line interface. so And that's the extent of which, you know, however good this program's command line interfaces, but that you can orchestrate multiple ah programs. so And that's something that you rarely see gooies accomplish anything of of that of that level, right? So that's a sense in which programs kind of are sociable within each other.
00:19:52
Speaker
I don't know. What about APIs? Yeah. Well, if you're using an API, then you're you're not using the GUI. Yeah. Well, and I think maybe this is like the people who use the software versus the people who build the software. um But I think, again, it's like it's just the interface, right?

Inclusivity in Programming: GUI and CLI

00:20:09
Speaker
I think also that that definition can be broken down and there's so much nuance that can be there around like what is, a great like if I'm using GitHub desktop instead of the terminal, right? Or if I'm using like visual basics, you know, like there's, there's a lot like,
00:20:33
Speaker
UML, that's a programming language and it's all based in visual information. So I think it's like the lines are so stinking blurred. And if I'm on a team and someone uses a command line to push a change to GitHub and I use the desktop editor, the change is still the same, right? What's the goal here?
00:20:57
Speaker
And in some ways it feels like I've been someone who's been on the outside of software a lot. And I've really struggled with this, like you're not a real programmer. And the idea is like you have to use tools in this specific way. And if you leverage anything that makes it more visual or a little bit easier for you, then you're not doing it right.
00:21:20
Speaker
And I think that's a really dangerous um trope and idea because it sets up an in-group that then it's like people can't collaborate. and like And I think it gets back to that is it anti-social question? Like, yeah, I agree. I think there are definitely use cases where the command line is a better choice, like technically. But again, that's crafting in context.
00:21:50
Speaker
where what is the use case? What are we using this for? Who is going to be interacting with this? What are their needs? I think the other thing, too, is that you know graphical user interfaces make it easier across languages. like If you've got a language barrier, like a lot of the text-based languages, they're mostly in English. And yeah, you can set it to different things, but there's a lot of places where that can go wrong. um yeah And it can make it harder. But if you have visual aids, even, like I think another thing with the command line is that you can take a very purist point of view.
00:22:29
Speaker
And I think my have a point of view is like, they're useful. I'm not saying don't use them. But there are other things, too. And just like, let's use the tools that get the job done. And sometimes it's command line, sometimes it's GUI. And yeah, we've gotten to the really important thing, which is it's all about the goal, right? It's not necessarily about the the means. If you're And we do we want empowerment. And I think we've sliced we've sliced ways in which going too far in either of these directions hampers that and.
00:23:05
Speaker
I guess empowerment and accessibility both. And ah you you can go the wrong way and in in either direction here. But, you know, as we build the systems of the future, how do we at every step for as many experience levels as possible, ah respect the user's autonomy and interests? So what do you think is the most important thing that needs to happen right now, the intersection of empathy and technology, Andrea?
00:23:33
Speaker
Yeah. h Based on the context of this conversation, yeah, I think some of it is that we need to let go of the very 1960s, 70s, 80s idea of what a programmer is and that a programmer only deals in logic and they only deal in text and they only deal in like these things and that it's this very like you know, insular view of what a programmer is because we're using programming principles every day. And regardless of whether or not you are hands on the keyboard in putting text into a command line most of your job, or you're somebody who is
00:24:16
Speaker
you know contributing to multiple different projects or you're participating in a group session like an ensemble. like I think that you know for job roles and functions, yes, there are people who program as the majority of their job.
00:24:37
Speaker
But like programming, and this gets we can have a whole other conversation ray about what is programming because it's declarative languages like what we have with HTML and CSS because those don't actually manipulate information. like Are those programming languages? I've been told they are not. And that is a whole other story that we can do for another time. But yeah, I think it's like the nuance here is useful, but it's it can also be used to exclude people. And when we have so much that we need to focus on in tech to preserve the integrity of not just the technology systems and the code bases, but also our social systems, we have to get as many people involved in the creation of technology as possible. And if we limit ourselves to only command line, we're not going to do that.
00:25:29
Speaker
um So, yeah, I think I think kind of getting away from that trope of like, you know, own like what a real programmer is and in kind of getting away from the reductive and kind of purist ideas, because we all need to know how to program in some way or another. I guess without defining programming, how could we how could we agree or disagree with that? Right. But that's another episode.
00:25:56
Speaker
That's another episode. I've seen Excel be used for some amazing things. And technically that would be called programming under some different definition. Oh, we got to do this. I think it's reasonable to say Excel is the the most widely used programming platform. Yeah. Yeah. But most people who use Excel don't think that it's programming because it's graphical user no interface. You're using a mouse, right? Well, that's that's the trick. That's the trick to get more people to program is just don't tell them they're doing it.
00:26:26
Speaker
Yeah. Yeah. And just kind of letting go of those expectations. What about you, Ray? what's What's your thought about the most important thing that needs to happen? Maybe even more ah fundamental than that is figure out what our goals are.

Reflecting on Software Development Goals

00:26:43
Speaker
recently had one of the largest IT outages in the history of the world. Yes. And it was caused by a um an update to the antivirus used by Windows, which was put out by CrowdStrike. And a notable fact of many of this outage was that Southwest wasn't hit as hard because they had some system that was still running Windows 95 and even Windows 3.1.
00:27:11
Speaker
Like they had a 25 year old operating system running, right? Which, okay, horrifying that they would. In this case, it saved them. But for the use case that they had, the single purpose system that that was running on,
00:27:26
Speaker
What does it say that they were still able to ah run Windows 3.1 on it and that they actually missed out on a huge problem because ah of that? I mean, maybe we've been thinking about a lot of things the wrong way.
00:27:43
Speaker
a complete halt to software until we can figure out what the heck is going on. Are we done with some of these things at some point? Can we just stick a fork in something and and stop changing it every time? No, we're never done. Events like these, they can open our curiosity to what are we even trying to achieve with software in the world?
00:28:01
Speaker
Oh my gosh, Ray, I like these. We'll have to do more of these, just kind of like small ah little topics of exploration. This has been really fun. And hopefully everyone who's listened, I would love to hear what folks have to say.

Community Engagement and Podcast Mission

00:28:15
Speaker
So um head over to our Discord channel.
00:28:18
Speaker
um And if you're not there already, go to empathyintech dot.com where you can access all the episodes. You can sign up ah for our mailing list and we send out information every once in a while and you'll get access to our Discord server. And just empathy in tech is on a mission to accelerate the responsible adoption of empathy in the tech industry by doing four things. Closing the empathy skill gap by treating empathy as a technical skill.
00:28:41
Speaker
teaching technical empathy through accessible, affordable, actionable training, providing community and breaking down harmful stereotypes and tropes, like we just talked about, and promoting technical empathy for ethics, equity, and social justice. So if you found this conversation interesting, please subscribe, head over to empathyandtech.com, keep the conversation going, and join our thriving community of compassionate technologists. Thank you all for listening, and we'll see you in the next episode.