[HN Gopher] What can be learned from studying long gone developm... ___________________________________________________________________ What can be learned from studying long gone development practices? Author : Hell_World Score : 58 points Date : 2021-08-15 19:46 UTC (3 hours ago) (HTM) web link (shape-of-code.coding-guidelines.com) (TXT) w3m dump (shape-of-code.coding-guidelines.com) | anyfoo wrote: | The article says: | | > Today, structured programming appears remarkably simplistic, | great for writing tiny programs (it has an academic pedigree), | but not for anything larger than a thousand lines. | | Curious. I rather think that structured programming became so | ultra-pervasive in any high level programming language younger | than 50 years old or so[1], that we've lost the extra name for | it. Practically every programming language that isn't either pure | functional (rarer than you think), low level (i.e. assembly), or | very very domain specific (e.g. SQL) is a structural programming | language. | | Examples for "structural programming languages" are C, C++, C#, | Java, JavaScript, python, Go, Swift, Scala, PHP, perl, Rust, D, | ... You get the idea. If a general purpose language does _not_ | follow it, it 's something notable, like Haskell. | | So rather, I think this is an example of something that was | utterly successful, being absorbed into the general fabric of | mainstream programming. It's true that we don't draw as many | flowcharts as we used to, because we got more comfortable with | everyday programming, but they are still how we think about code | a lot, and for complex processes that we want to visualize we | still do draw them. | | [1] Not a scientific estimate. Substitute "not very very old" if | you like. | canadev wrote: | Lots of development practices come back again. E.g. techniques | for optimizing code for computers sometimes make a resurgence for | mobile phones a decade later. | marcodiego wrote: | You'll probably learn more by trying to understand why these | practices are long gone. | johnaspden wrote: | I'm not sure you can call structured programming a fad! | | An awful lot of languages (I'd say all commonly used ones) use | if/then/else, do..while, for..next, and so on, but I can't | remember the last time I saw a program with a complicated control | flow done by gotos. | | Such things were common in the 1970s, in fact the first | professional program I ever read did it that way, and it took me | ages to work out what was going on. | | One particularly confusing technique was to goto a computed | expression. Leads to all sorts of interesting bugs. | | The whole point of structured programming was "Don't do that! You | can do everything you want to do with a small set of restricted | control structures, and the control flow is much easier to read". | | I'd say that idea won so hard that we don't even notice it. | walshemj wrote: | Originally Fortran only had arithmetic if's | | And I agree by the 70's spaghetti code with goto's was on the | way out - though some early GWBASIC code had some gnarly | practices. | galaxyLogic wrote: | It is possible to produce software of great quality if you are | willing to spend a lot of money on it. And if you want to build | big system good quality is a necessity. Else you will discover | like IBM did early on that fixing one bug on average can create | 1.2 new bugs, or something like that. | | The issue is that often the quality is good enough to have | something that works and then the buyer/payer does not want to | spend more. Problem with that is it makes the maintenance and | future adaptations expensive and can turn the system into one | where fixing one bug creates 1.2 new bugs. | | Therefore I think it is wise to err on the side of caution and | spend more on software quality than seems to be needed | immediately. It is a bit like in the early days of bridge- | building the bridges needed to be built stronger than needed | because it was not possible to calculate the safety margins | accurately. | azta6521 wrote: | Yes and no. I'm too amazed by a world which longs for so many | software developers. I mean do they all know that all that | software has to be maintained? That software is one of the most | expensive human artifacts today and that software rots like | hell? | timoth3y wrote: | The real value of studying outdated development methodologies is | that it teaches you how to think about new problems. It will | almost never give you a plug-and-play answer for a problem you | are facing, but it will give you a new a usefully way of looking | at tings. | | Brooks wrote The Mythical Man Month in the 1970's about his | experience in the 1960's and it is still extremely relevant | today. | | When I was starting my software development career in the mid | 1990s and trying to understand how to manage the process, one of | the things I did was write to NASA and request a copy of their | Manager's Handbook on Software Development. | | This was not because I wanted to run things like NASA. That would | have been be horribly inappropriate for a startup dev team. | However, I wanted to understand an extreme; a process where spec | writing, testing and on time delivery were prioritized. | | I never used anything directly from that NASA handbook, but I | learned a lot. | | Almost 30 years later, I still have that book. It's one of my | little treasures. | yourapostasy wrote: | For those wondering, there is the original handbook [1] | available online today. Also an interesting paper on the | process improvement lessons learned applying much of what was | expressed in the handbook [2]. I believe the paper is of more | immediate TL;DR use today for those who do not have the time to | digest the handbook and internalize the lessons to draw from | it. | | [1] https://everythingcomputerscience.com/books/nasa-manage.pdf | | [2] | http://www.cs.umd.edu/projects/SoftEng/ESEG/papers/83.88.pdf | timoth3y wrote: | That's the one! Thank you for posting the link and the | lessons learned. That looks like a great article. | | In the 90s it took a (very friendly) FOIA request, a $5 | processing fee, and three weeks to get my hands on that | handbook. | ptsneves wrote: | Very shallow article. Tl;dr: none. | | I would say that the mythical man month concept has stayed and | still is talked about today even though the book itself is also | hopelessly outdated except maybe in IBM style enterprise | software. | ardit33 wrote: | It was actually an interesting read. | | TLDR: Whatever software building methodology/process you are | using now, is probably crap, and made up by people that don't | really know any better and just making things on the go. | | Eg. He mentioned 'structured programing' was a fad at the time. | Now it is Agile, and its offshoots. | | Best way to deliver software is to have a handful of capable | people and pay them well and get out of their way. The key to | get paid well as a dev. is to be in a project that is | important, life/death for the company. | | I think the most interesting part of the article was the early | job divisions while building software. It didn't make sense, | but it was adopted due to the coorporate culture of the time. | martininmelb wrote: | > Best way to deliver software is to have a handful of | capable people and pay them well and get out of their way. | | That is the gist of one of the essays in The Mythical Man | Month mentioned in the parent. | anyfoo wrote: | "Structured programming" was 100% successful, and we're all | still using it, all the time. It was so successful, that we | don't even talk about it anymore. With few exceptions, it's | just how programming is now. | | Does not invalidate your actual point, though. | Lapsa wrote: | stopped reading at "when I wrote my book" | mavelikara wrote: | > even though the book itself is also hopelessly outdated | | What parts did you find dated? I haven't read it in the last | few years, but I still get reminded of concepts like Second | System Effect every once in a while. | DrNuke wrote: | The (still) relevant (best) practices from the past are all | encapsulated into the standard libraries, that's how CS pays its | duties to the big minds of its past? ___________________________________________________________________ (page generated 2021-08-15 23:00 UTC)