Comment by crazygringo
5 hours ago
I disagree. I use screenshots all the time, because it:
- Preserves the full 80 character width without line-wrapping, which destroys readability
- Guarantees monospace, so tabular data doesn't get all misaligned
- Preserves a good coding font, so it doesn't come out as some hairline-width Courier on the other end
- Preserves syntax highlighting, very helpful
Obviously if somebody needs a whole file or whole log, then send the whole thing as an attachment. But very often I'll still include a screenshot of the relevant part. With line numbers, it's not difficult to jump to the right part of the attached file.
Screenshots are incredibly useful for keeping code and terminal output looking like code and terminal output, and not getting completely mangled in an e-mail or chat message being read on a mobile device or in a narrow column.
Key things required for posting to the chat: people reading can read it, people reading can copy and paste it, and people searching can actually find it. It doesn't need to exactly match what you might see in a text editor. Anybody wanting to look at the actual text in context won't be doing it in the chat, but will rather be opening the file of interest in the appropriate tool, and examining it that way; anybody stuck reading the text only in the chat is probably on their phone or something and will be best served by being able to easily see all of it.
For reading purposes, the question of screen width is best left to the reader. They will have the window set to their preferred width, possibly limited by screen size. If the text has to wrap, so be it. It's better that than having to try to squint at your 3713x211 screen grab on an iPhone (portrait orientation). Also bear in mind that even the most basic of font and colour choices (large/small font, dark/light mode) can cause accessibility issues for some readers.
For copying and pasting purposes, images suck. Yes, macOS can do it, sort of, and I expect Windows 11 can do it too, probably to about the same extent. But it's not as easy as having the text right there in copyable form.
For searching purposes, ditto - only worse, because at least when you copy and paste and it comes out wrong, you'll notice. When you search: you just won't find the thing. You'll never know.
> people reading can read it
Which is why screenshots help, for the reasons I gave
> people reading can copy and paste it
Why? If there's something like a user ID or error code that the person needs as text, I'll paste that separately. Stuff I include in a screenshot is for understanding, not copying and pasting.
> and people searching can actually find it.
Which is what the message text around the screenshot is for. Which actually includes the relevant keywords, not random tabular data or lines of code which just add noise to search.
> Anybody wanting to look at the actual text in context won't be doing it in the chat, but will rather be opening the file of interest in the appropriate tool, and examining it that way;
Except when they aren't/can't. The whole point of screenshots is for when they can't access something easily that way, which happens for a million different reasons.
> anybody stuck reading the text only in the chat is probably on their phone or something and will be best served by being able to easily see all of it.
Which is what images make far easier to read without being messed up.
> For reading purposes, the question of screen width is best left to the reader. They will have the window set to their preferred width, possibly limited by screen size. If the text has to wrap, so be it.
No it's not. Wrapping destroys indentation and alignment. It's not "so be it", it goes from readable to literally unreadable. I can't change the width of my phone or a lot of viewing areas. I can always scroll an image horizontally though.
> It's better that than having to try to squint at your 3713x211 screen grab on an iPhone (portrait orientation).
Which is why zooming and panning exist. I don't know where you're getting something silly like 3713 pixels though. But if that's the width of some massive table whose layout needs to be preserved, then so be it.
I feel your argument unnecessarily obtuse.
You keep trying to frame that photo is superior, when, sure... The image is superior in your argument only when it's accompanied with text. So is it the image that is important then? No to mention, that is contingent. If that is your point, then, sure, I don't mind, add a screenshot next to the text but, please, give the text.
All of the points are mostly personal and thus should never be forced on anyone else via a screenshot (as a general rule, though depends on the content)
- no line wrapping destroys readability more since you can't toggle it in a screenshot. Imagine that url on the screenshot taking 3 lines instead of 1 and pushing useful text off screen. Also, forcing 80 on a user of a wider monitor is barbaric.
- And if there is no tabular data (and autoformatted code doesn't do tabular code) you've just lost nice proportional text for nothing
- Syntax highlighting as is commonly used (and as is shown in the blog screenshot) is useless, and is anyway unlikely to match reader's convention
> being read on a mobile device or in a narrow column.
So it can't even be read properly, you have to scroll the screenshot left and right... instead of just reading
Most of the time if someone is sending me code as text (which is by far preferable to a screenshot) I'm copying it out and pasting it into my own editor.
That way I get a width appropriate for my screen (which may be different from yours), text that's still aligned correctly, and uses the font of my choosing (which may differ from yours), and still has syntax highlighting (using the sizes/colors/styles that I'm accustomed to).
Sending the whole file (or a link to it) works well too but screenshots are absolutely likely to be some level of annoying for anyone who isn't you no matter how helpful you think you're being.
Forcing someone else to view code the way you like seeing it isn't always going to be completely obnoxious for them (although you might be surprised by what some people find acceptable) but it does make it difficult/impossible to view it the way I like seeing it (in addition to losing the ability to search/edit)
This isn't about sending 300 lines of code in a screenshot or something.
This is about, "hey, look at these 6 lines which is where I think the problem might be". It's not for pasting in a separate editor, why would you do that? It's about providing quick context even if you're on your phone.
If you want to go inspect that spot in the file once you're back at your computer then go do that. The screenshot is to save you time because often you can answer just based on it.
On my phone is a great example of why I don't want your screenshot of a desktop-wide code editor.
3 replies →
100% this. I fully disagree with the post - screenshots show context/colour/formatting etc that often doesn't even translate properly if you DO try to paste it into some IM or other "text swapping" application.
Sure, if you want someone to reproduce the text of course you'd send them actual text. But to show a problem, a picture is, as they say, worth 1000 words.
> - Preserves the full 80-character width without line-wrapping, which destroys readability
Readability is on the eyes of the final user, they are free to use whatever narrow column width they prefer.
> - Guarantees monospace, so tabular data doesn't get all misaligned
When was the last time a computer shipped without a monospace font? This points at the rare occasion where there's a problem with the setup, but you could also argue that maybe there's a system with a broken image decompressor.
> Screenshots are incredibly useful for keeping code and terminal output looking like code and terminal output, and not getting completely mangled in an e-mail or chat message being read on a mobile device or in a narrow column.
Are you complaining about GMail's rendering maybe? Its awful[^0], but that's more of a GMail problem that could be solved if they wanted.
[^0]: Column width unbounded even on 4k monitors. Weird and inconsistent font sizes across different fonts (monospace is smaller). Reads poorly on phones too.
> Readability is on the eyes of the final user, they are free to use whatever narrow column width they prefer.
For plaintext sure. Not for code or tabular data. It destroys indentation and destroys column alignment and interleaves parts of rows. It's a horrid mess.
> When was the last time a computer shipped without a monospace font?
When was the last time I have to read something in a font I can't control that is forced to be proportional? Oh, constantly. Literally all the time.
> Are you complaining about GMail's rendering maybe?
Yes, and messaging clients, and chat clients, and everything unless it has actual dedicated code blocks that render with a horizontal scroll bar. Which are the exception as opposed to the rule.
> > Readability is on the eyes of the final user, they are free to use whatever narrow column width they prefer.
> For plaintext sure. Not for code or tabular data. It destroys indentation and destroys column alignment and interleaves parts of rows. It's a horrid mess.
I don't think I have seen unaligned html tables, nor unaligned spreadsheets made from CSV/TSV/etc. Images are worse than PDF, so I guess it's 0-stars in the 5-star data tier.
https://5stardata.info/en/
2 replies →
I think slack and other mail/chat clients rescale the image and apply aggressive compression on it. Sometimes they even crop the image or make it so that you need to scroll left and right. Also your syntax highlighting might be annoying to others and might make legibility worse for the receiver, and as other people pointed out most chat/mail clients support monospace code blocks. Plus I agree with all the things that the blog post author pointed out.
> or make it so that you need to scroll left and right
That's the point.
If have an ASCII table that is 150 character columns wide, I'm sending you a screenshot so that you can scroll left and right, rather than have everything end up in a jumble of interleaved overflowing lines that turn into unreadable spaghetti.
This is a feature, not a bug. Not everyone is opening the message on a full-width monitor.
It also allows drawing on top. I find it convenient to screenshot / take picture of some code / error log / terminal output then circle some bit, draw some arrows, or do other types of drawings to draw attention to things.
Emphasizing bits on code-formatted text is not as straightforward and would typically be ambiguous (was this punctuation meant for emphasis or was it part of the original text?).
Pictures are also quick to make and grasp, which is a plus when having to quickly diagnose something with others.
The main complaint in the article about having to type into a search bar instead of copying and pasting doesn't make sense. It's like a word or two at most which you'd have to search. It might even be faster to type than to copy and paste (moving cursor around, etc.).
The error log complaint would also be valid had it been text instead of a screenshot. That was a problem of not sharing enough context, not the format of the message.
My only use of code screenshot is to emulate the "take a look at my screen workflow". It's only meant for the other person to take a quick glance at. Anything further than that is transmitted as a code block or text file.
Yeah. OP has an egocentric bias - it’s not the norm in the world of work sharing that you can faithfully reproduce the live/contextual environment of the sender given the raw string.
(OP’s blog purports to be pertinent to freelance software development).
What about accessibility?
What about it? There simply isn't any information format that's both perfectly accessible and reproduces what you're seeing with perfect fidelity. In the happy path you can make the important parts match, but almost by definition, when someone's reporting an issue it's because what they "should" see and what they are seeing don't align.
3 replies →
I genuinely thought this was a satire until I read `Preserves syntax highlighting, very helpful`.
I feel like I've seen good solutions to both problems before, aren't there vscode extensions that let you just select the code and create a sharable link with all the view type options to appear everyone?
e.g. https://snippetshare.dev/
```
Is widely supported to add code. E.g. in Slack, Confluence...
It's so bad in teams and they put a rather small character limit on it....
Both examples you gave have pretty rough or nonexistent syntax highlighting support.
Who cares? If I really really really need that (I probably won't), I can open up vim, type `:set filetype=whatever`, and paste it in.
1 reply →
It's not widely supported. It's not in e-mail or SMS or Gmail or Docs or Word or a hundred other pieces of software where I communicate.
Yes, I use that wherever it exists. It's great, and you're lucky when it's there. I wish it was everywhere. But as long as it's not, for everything else, there's screenshots.
Even Google chat can do it.
Slack seems to always wrap code blocks. It makes python particularly shit to read.
In my experience copying from some programs preserves long lines. Copying from other programs breaks them at the wrap point. Once the text is cut into lines, pasting can't fix it. I'm not at my computer now so I can't give factual examples. I guess that copying from the output of cat file on a terminal is one of those unfortunate cases.
I do not care about any of those criteria you mention. I want something I can copy and paste myself. Send me text. Just the text.
Except it doesn't use my preferred font, not my don't size, not my colors and I can't copy parts of it as easily and then the stupid chat app scales the image for some reason ot another.
> Preserves a good coding font, so it doesn't come out as some hairline-width Courier on the other end
Let me introduce you to Putty users who never change the default font...
See, imo this is why having a good embedding for code is so important. The best of both worlds is available.