Interesting Links for 29-09-2017
Sep. 29th, 2017 12:00 pm- The Coming Software Apocalypse
- I'm not completely sold by this. There are areas where it definitely makes sense, but I'm not sure how it would fit into a lot of the work I see. But I'm prepared to be convinced.
(tags: software design complexity ) - China to shut down North Korean companies
- (tags: china NorthKorea )
- Edinburgh set for first all-electric buses
- (tags: Edinburgh buses transport electricity )
- What happened to the improved UK plug?
- (tags: uk design electricity )
- If you have any interest in Robert Heinlein then you should take a look at this new book on his work
- (tags: scifi heinlein )
- Brexit: European Parliament to propose Northern Ireland stays in single market
- (tags: europe UK NorthernIreland )
- In people with OCD, actions are at odds with beliefs
- (tags: belief behaviour psychology )
- Self-esteem in kids: Lavish praise is not the answer, warmth is
- (tags: children parenting )
- Floating Point Visually Explained
- (tags: numbers mathematics programming computers )
- Amazon developing three new sci-fi series: Lazarus, Snow Crash and Ringworld
- (tags: Amazon scifi tv )
- Does Adding Expensive Housing Help the Little Guy?
- (tags: housing economics )
- A large chunk of British "exports" are actually people selling gold from London vaults
- And because this mostly leaves the EU it distorts our trade balances
(tags: uk gold Europe ) - EU justice commissioner resists calls for legislation on online hate speech
- (tags: freespeech europe hate )
no subject
Date: 2017-09-29 12:14 pm (UTC)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!
no subject
Date: 2017-09-29 02:41 pm (UTC)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.
no subject
Date: 2017-09-29 09:01 pm (UTC)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.)
no subject
Date: 2017-10-01 01:08 pm (UTC)no subject
Date: 2017-10-02 12:28 am (UTC)no subject
Date: 2017-09-30 02:05 pm (UTC)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?
no subject
Date: 2017-10-01 01:09 pm (UTC)Although "break your code into small bits, and then see what comes out depending on how you tweak what goes in/internal parameters" is a fairly standard part of unit testing/TDD, i's just not as visual.
no subject
Date: 2017-10-01 01:18 pm (UTC)(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.
no subject
Date: 2017-10-02 12:31 am (UTC)no subject
Date: 2017-09-29 09:41 pm (UTC)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.
no subject
Date: 2017-10-01 01:06 pm (UTC)My understanding is that the answer to "Let's never use C again" is "Rust". But that's just an observation from a distance ;-)