Live data from Hacker News

Software crisis: the next generation (2016)

habitatchronicles.com

41–50 of 66 posts

Re: Software crisis: the next generation (2016)

#41
post #23

Earlier quoted context omitted.

Tuples are just two or more values with separate types lumped together, i.e. (Int, String). For example, in Haskell, to get the elements of a map, there's this function: assocs :: Map k v -> [(k, v)] which gives you an array of tuples, the first element of which is of type k (the map key type) and the second element being of type v (the map value type.)

I asked a question because I assumed that I might not know something about it, since C# has Tuple generic class just for that and if it would be just that, Python would have nothing on C# in that regard. But your comment is exactly what I was thinking about. So, is there something else in Python that is not present in C#?

I doubt it, other than syntactic sugar, which makes tuples really easy to use, like destructuring and construction. I.e. in Python, if you have a function that returns a tuple:

    a, b = f(xxx)
To create a tuple you just do (a, b). In Haskell, you get some other benefits, like tuples being functors (i.e. "things that can be mapped over"):

    map show ("tuple", 5) == ("tuple", "5")
P.S. Not a Python expert, but I think tuples might be enumerable in Python, which works because Python is dynamically typed.

Re: Software crisis: the next generation (2016)

#42
post #36
post #21

Earlier quoted context omitted.

Oh no no. Most software we use daily is barely running, filled with holes, in fact crap. Developed by multiple contractors, barely maintained.

Software I use daily: - Gmail - Google Search - Android - Firefox - IntelliJ - OSX - Slack Except maybe for OSX, none of those fits the definition of "barely maintained" (I'm kidding ofcourse - obviously OSX is maintained too!). I suspect none of it is "developed by multiple contractors" either (though, why would that automatically imply "crap"). None of it is "barely running" - they might have some issues, but they…

I think the flaw in your argument here is that you're only considering software products. A large amount of software does not have a name (beyond internal denomination), and that's where most of the crap is. A lot of the products with names are crap, too, but those are more likely to be worth anything because they are governed by evolutionary processes (bad products are more likely to fail on the market, whereas an in-house accounting solution has no option for failure, just for death march).

> I suspect none of it is "developed by multiple contractors" either

> None of it is "barely running"

You do realize that Android is on your list, right? "Barely running" fits the bill for most Android devices out there, and "developed by multiple contractors" is the primary reason.

Re: Software crisis: the next generation (2016)

#43

>And still, this wouldn’t be so bad, if the crap wasn’t starting to seep into things that actually matter. >A leading indicator of what’s to come is the state of computer security. We’re seeing an alarming rise in big security breaches, each more epic than the next, to the point where they’re hardly news any more. Target has 70 million customers’ credit card and identity information stolen. Oh no! Security clearance…

I didn’t get the impression this post meant to say we just don’t make stuff like we used to, but that the crap we’ve been taking as normal is going to have terrible consequences if we don’t mitigate it somehow soon.

I agree that common practices are gradually getting better, but I don’t think that’s enough. Re: solutions, the author wrote “What are capabilities?” which got discussed here the other day.

Re: Software crisis: the next generation (2016)

#44
post #5

> Anybody who’s seen the systems inside a major tech company knows this is true. Or a minor tech company. Or the insides of any product with a software component. Anybody who's seen the sun rising east and setting west knows that this is true: the Sun rotates around the Earth. The other, less-obvious alternative, is that software is NOT crap, we just like to complain a lot. And it's just so easy & fun to blame everyt…

> Anybody who's seen the sun rising east and setting west knows that this is true: the Sun rotates around the Earth. Just small remarks: technically it's not East and West, it changes. Well, according to the basic physics laws: also yes. Yes because it depends on the observer. No, because it depends on the observer. The Copernicus book was about a theoretical model of an observer outside the planetary system (he didn…

> technically it's not East and West, it changes.

technically I only talked about a subset of people :)

> Yes because it depends on the observer. No, because it depends on the observer.

This gets metaphysical. If the observer's viewpoint is all that matters, the earth is flat (maybe not for you, but for me, and by definition you can't argue with me on that!). An argument that "I find software to be crap" is completely uninteresting and not worth engaging. If that's the only thing he meant... yeah, sure, more power to him, for all I care he may find all news to be fake too.

Re: Software crisis: the next generation (2016)

#45
post #36

Earlier quoted context omitted.

Software I use daily: - Gmail - Google Search - Android - Firefox - IntelliJ - OSX - Slack Except maybe for OSX, none of those fits the definition of "barely maintained" (I'm kidding ofcourse - obviously OSX is maintained too!). I suspect none of it is "developed by multiple contractors" either (though, why would that automatically imply "crap"). None of it is "barely running" - they might have some issues, but they…

I think the flaw in your argument here is that you're only considering software products . A large amount of software does not have a name (beyond internal denomination), and that's where most of the crap is. A lot of the products with names are crap, too, but those are more likely to be worth anything because they are governed by evolutionary processes (bad products are more likely to fail on the market, whereas an…

> You do realize that Android is on your list, right?

I added it later (realized I use it quite a lot and it's unfair to not put it there), but you do get to an interesting distinction: Android runs quite fine on my phone. So when it's barely running, it's a software/hardware mismatch. And products, as long as they're software products, tend to be rather good. When they are part of other products the quality may be more of a "hit and miss".

But, is that a fault of the software? Take cars, I'm sure the software in my car is imperfect, "crap" by some standards.... but, I haven't had it fail. I did have a sensor failure, though. And on the previous car, I've had lots of other hardware failures, and no observable software failures. Would a pacemaker with crappy battery (say, an exploding one) be any better than a pacemaker with crappy software? And how often is the software actually used to mask/work around the crappier parts of the product? That must be quite a lot, and increasing. Sure, the software in a product might be crappy - but products are crappy all the time, so why should the software in some of them make any exception? You buy a cheap pair of sport shoes, you don't expect them to be the same quality as a pair of Nike shoes (and even Nike ones are imperfect)... why do you expect good software on crappy cheap security cameras?

Re: Software crisis: the next generation (2016)

#46
post #41

Earlier quoted context omitted.

I asked a question because I assumed that I might not know something about it, since C# has Tuple generic class just for that and if it would be just that, Python would have nothing on C# in that regard. But your comment is exactly what I was thinking about. So, is there something else in Python that is not present in C#?

I doubt it, other than syntactic sugar, which makes tuples really easy to use, like destructuring and construction. I.e. in Python, if you have a function that returns a tuple: a, b = f(xxx) To create a tuple you just do (a, b). In Haskell, you get some other benefits, like tuples being functors (i.e. "things that can be mapped over"): map show ("tuple", 5) == ("tuple", "5") P.S. Not a Python expert, but I think tupl…

> Not a Python expert, but I think tuples might be enumerable in Python

Yes, they are. More generally, they are sequences and they support indexing, so they are also iterable. In other words, this Python code works:

    list(map(str, ("tuple", 5, {}))) == ["tuple", "5", "{}"]
There is also a variant of a tuple which assigns names to its positions - it's also iterable. They are also allowed to have any length. Other than that, I'm not aware of any superpowers of Python tuples.

Re: Software crisis: the next generation (2016)

#47
post #6

“The reason this stuff is crap is far more basic. It’s because better-than-crap costs a lot more, and crap is usually sufficient. ... ... ... Every dollar put into making software less crappy can’t be spent on other things we might also want, the list of which is basically endless.“ Software is crap because humans on the whole have an extremely difficult time reasoning through all the possible logic flows. Software i…

> All other industries manage to deliver complete, working products; we are the only industry which doesn’t; computers and software never work 100% correctly. Have you ever worked in other industries? This... is not true. We're not snow flakes.

We’re very much snowflakes and what’s even worse, most of us believe we’re special petunias.

Re: Software crisis: the next generation (2016)

#48
post #6

“The reason this stuff is crap is far more basic. It’s because better-than-crap costs a lot more, and crap is usually sufficient. ... ... ... Every dollar put into making software less crappy can’t be spent on other things we might also want, the list of which is basically endless.“ Software is crap because humans on the whole have an extremely difficult time reasoning through all the possible logic flows. Software i…

> I understand now why Keith Wesolowski ditched computers and went to work on a ranch Ha ha! Can't help but think of the Roman emperor Diocletian, who after two decades of a "moderately successful career" decided to leave the office and move to a ranch to grow divine cabbages

Yep, and he kicked it lovely in Solin. Smart guy, unfortunately I’m not there yet, or else I’d ditch too. Sad thing is, I used to live for this profession.

Re: Software crisis: the next generation (2016)

#49
post #30
post #6

“The reason this stuff is crap is far more basic. It’s because better-than-crap costs a lot more, and crap is usually sufficient. ... ... ... Every dollar put into making software less crappy can’t be spent on other things we might also want, the list of which is basically endless.“ Software is crap because humans on the whole have an extremely difficult time reasoning through all the possible logic flows. Software i…

Other industries, for example the automobile industry? Have a look at https://en.wikipedia.org/wiki/Ford_Pinto . And have your received a recall notice for your airbag yet?

For example a car body repair guy will weld and sand the tin and will have something tangible and beautiful to show for it at the end of the day; I’ll work on a piece of code and even if my program is 100% correct and works great... it’s all electrons on pieces of rust at the end of the day transforming one non-existant thing into another non-existant thing. Anybody hiring for race car drivers?

And the only recall on my car is the isolator on the supercharger. Even that’s a maybe.

Re: Software crisis: the next generation (2016)

#50
post #6

“The reason this stuff is crap is far more basic. It’s because better-than-crap costs a lot more, and crap is usually sufficient. ... ... ... Every dollar put into making software less crappy can’t be spent on other things we might also want, the list of which is basically endless.“ Software is crap because humans on the whole have an extremely difficult time reasoning through all the possible logic flows. Software i…

> Software is crap because humans on the whole have an extremely difficult time reasoning through all the possible logic flows. But we have tools and techniques that make this easier. Why don't we use them? Also, I don't think 100% correctness is the ultimate goal of this article. Software is probably nowhere even near that correctness level firstly, and secondly, software is also partly crap because it doesn't run a…

For 20 years I’ve been writing entire applications in AWK, a dynamically typed language, and not once were any of the bugs due to typing. And yet, we’re such a hopeless industry when most of us believe that a strongly typed system is essential for high quality software. It makes me despair even further about this profession.
Post reply on HN