andrewducker: (Default)
[personal profile] andrewducker

Date: 2017-09-29 12:14 pm (UTC)
momentsmusicaux: (Default)
From: [personal profile] momentsmusicaux
> What happened to the improved UK plug?

Huh. So actually, genius designer is actually not very good designer who doesn't bother reading the specs and requirements of the thing they are trying to design!

Date: 2017-09-29 02:41 pm (UTC)
calimac: (Default)
From: [personal profile] calimac
That first article is the only article on software that you've linked to and I have read that I have been able to understand.

I'm interested in its discussion of WYSIWYG. This is now so intuitively obvious in word processors that I wonder how many programmers who postdate its introduction are aware that it once did not exist, or could mentally comprehend an environment in which it did not.

Since I did learn word-processing without it, and lived through its introduction and refinement, I am worried about its use as an example, or perhaps an analogy for, a direct connection between the programmer and the result. Because that's not exactly what WYSIWYG is. The "See" in the name refers to what you see on screen and the "Get" to what you get when you print it out, and the way it worked, at least originally, was not to allow you actually to see what the printed document would look like. No, what it did was to develop a way to mock, to imitate, the printed document on screen. Fonts came in two sets: printer fonts and screen fonts, and the match between them was not always perfect (especially in fussy matters like kerning). At that level of fussiness you were back to the pre-WYSIWYG practice of iterative jumping between adjusting the screen and viewing a printout.

The point is that WYSIWYG didn't actually connect the person with the product. It just modeled it, and models can have flaws. I don't know if the fundamental workings of WYSIWYG have changed since then, or if it's just a smoother modeling, but if the latter there's a danger in relying on the kind of practice of which the author uses WYSIWYG as an example and which is here advocated.

Date: 2017-09-29 09:01 pm (UTC)
skington: (chicken)
From: [personal profile] skington
WYSIWYG has changed since then. Yes, it used to be that a word processor would generate PostScript output, and that could subtly diverge from what you had on the screen, but these days the computer is in charge of all layout, and generates a dot-perfect image that it sends to the printer.

I think you still have vestiges of the old approach, where you wrote using special command sequences in one window or mode, and then looked at the output in a preview window or mode (or just printed it out), in specialised maths layout software like LaTEX. And of course you have plenty of programmers who are stubborn holdouts; in my industry, the most common programmer's editor is vim, which uses an ultra-simple keyboard-based interface inherited from the 1970s whose fundamental requirement was "let's not involve any modifier keys like control or alt because we can't afford the bandwidth". As a result its learning curve is almost vertical - there are no menus, button bars, tool tips, and there is only grudgingly colour - but there's an almost macho "I learned how to use it, so can you" approach.

(To be fair, a stripped-down editor that you can rely on being installed on pretty much any machine you connect to, and which will work even if bandwidth is limited, is useful if you're regularly in the business of connecting to random servers and doing stuff on them. But that's no reason for you to use something like that as an editor of choice in the comfort of your own desktop or laptop computer.)

Date: 2017-09-29 09:41 pm (UTC)
skington: (chicken)
From: [personal profile] skington
I have an instinctive wariness when it comes to people saying "if we just use this magic bullet, all our computer problems will be solved!" (With its inherent, implicit, corollary: "you aren't doing these things, therefore you are stupid and wrong".) I remember when the people pushing XML said "all of your systems will be able to talk to each other automatically", and we know how well that went.

So, for instance, the paragraph beginning with "Part of the draw for customers, especially in aviation", describes a waterfall approach, with no automated tests. Maybe you could achieve something similar by implementing a more agile approach to development, and make sure you always had good test coverage? (Obviously for a well-understood industry such as aeronautics you don't want to get too crazy on agile, but there are some techniques that are worth stealing.)

And of course those companies, like car companies, who don't understand yet that they're in the business of writing software, and are cobbling together complicated systems written by the lowest bidder, are in for a world of hurt. But, again, anyone who's been in the industry more than 5 years could have told them that.

People on the cutting edge are just as bad, of course. Front-end Javascript appears to have it particularly bad, with its plethora of flavour-of-the-week frameworks, and language variants which transpile to Javascript; but server-side guys are just as guilty of "hey, check out this cool new thing" syndrome. Now, in some cases they may well be right: certainly let's never code anything in C again, because that way we won't ever have any of the terrible security vulnerabilities that pointer arithmetic and null-terminated strings give you. And the compiler-verified type-safety that many of the functional languages give you is apparently really good, and could avoid many of the problems mentioned in the article. But against that, you have the problem that you then have to reimplement all of the tools the legacy languages have (TLA+ is Java-only, according to a quick skim of Wikipedia), which requires you to realise that those tools were useful. Which, if you're an ambitious 20+ open source guy more prone to just rewriting everything rather than fixing 2+ year-old bugs, you might well not.

Date: 2017-09-30 02:05 pm (UTC)
momentsmusicaux: (Default)
From: [personal profile] momentsmusicaux
The other thing about WYSIWYG is that someone's got to code it in the first place.

So the Mario thing looks amazing, and you can code the game in real-time. But someone had to write something to allow you to do that, something that's just as complex as the game itself if not more.

And how do you WYSIWYG *that* software?

Date: 2017-10-01 01:18 pm (UTC)
momentsmusicaux: (Default)
From: [personal profile] momentsmusicaux
I read somewhere ages ago that it's essential for coding that you see the effect your changes have.
(Eg with web development I am always dumping values of variables to the browser, where I have tools that format them nicely with expandy bits and so on.)
The Mario thing is a particularly nice way to see your changes, but not everything's going to be suited for that.

Date: 2017-10-02 12:28 am (UTC)
skington: (chicken)
From: [personal profile] skington
Still my favourite for "no, the 1990s didn't happen" is the people who read and write email in mutt or similar. And then complain about people who send email in only text/html format.

Date: 2017-10-02 12:31 am (UTC)
skington: (chicken)
From: [personal profile] skington
That's mostly what I meant when I complained about magic bullets. It sounds like a lot of the problems are about proper software engineering: code reuse, code review, all the sorts of things that frankly we've known about since the 1980s, maybe the 1990s if you think about formalising refactoring and TDD. If the problem is "cars are computers now, and Volkswagen et al don't understand computers" the solution isn't "let's fix computers so they work in cars", it's "let's fix car companies so they understand that they're computer companies now".

January 2026

S M T W T F S
     1 2 3
45 6 7 8 9 10
11 12 13 1415 16 17
18 19 20 21 22 23 24
25 26 27 28293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 29th, 2026 05:17 am
Powered by Dreamwidth Studios