If you have an hour and 20 minutes to spare you might find this interesting. Uncle Bob reviews computer programming from its inception in 1945 to the near future. My first training code was written in 1959 and I got my first job at IBM in February 1960. Back then we had machines with electro-mechnical relays and a computer with vacuum tubes. My first computer had a drum memory and the second one a ferrite core memory. The 1401 Uncle Bob talks about was that second computer. All the other programmers at IBM were older folks, I was the only "kid," a 21 years old college dropout with an aptitude for computers but otherwise clueless.In 1960 there were about seven IBM computers in Venezuela. One at the IBM Service Bureau where I worked, three in the oil industry, two in government and one in private industry.Compared to the evolution of hardware, the evolution of software has been glacial at best."Uncle" Bob Martin - "The Future of Programming"https://www.youtube.com/watch?v=ecIWPzGEbFcDenny Schlesinger
Compared to the evolution of hardware, the evolution of software has been glacial at best.Yes and no. They have certainly evolved very differently. With hardware, any meaningful innovation which made the resulting machine faster or cheaper or better in any way was copied very rapidly by most vendors and quickly became the new norm. With software, though, astounding differences persisted for amazingly large periods of time. I remember reading an article back in the mid 90s someplace on a study of productivity in which they considered the experience level of the individual programmer, the language used, and the tools available to support writing code. That study found about a 10X difference in actual shops for each of these factors and they were additive, so that there was nearly a 1000 to 1 difference in productivity between the best programmers with the best language and the best tools compared to a neophyte with the worst language and no tools. In most fields, a few percentage points difference in productivity is a meaningful competitive advantage so the idea of 1000 to 1 differences persisting is staggering ... and yet I would bet that were the study redone today there might well be another 10X difference since I am pretty sure that the worst has changed little or none and the best has advanced significantly (in particular, model based development). Many times I have seen examples where a 10 person team is producing more meaningful change at higher quality than a multi-thousand person team.
Compared to the evolution of hardware, the evolution of software has been glacial at best. Interesting comment. Despite that, software investing has mostly been more profitable than hardware investing. "Glacial evolution" implies a broken process . Perhaps AI written software will be filing that gap. Artificial Intelligence (I like to call it" Synthetic Intelligence " )is still in an early stage of development. When Software is writing it's own programs, have we already passed the point where the popular idea of "computers only do what you tell them to do? " no longer true?Think about the large number of smart people who are programmers. At some point will they program themselves into obsolescence?Other than Nvidia I am still having little luck finding those companies likely to benefit the most. I assume that what one supplier can do with synthetic intelligence another will be able to mimic. User industries might be the big winners.I used to own CGNX because it was an obvious beneficiary, but sold it when price went up a lot, because it's actually nothing special.
Despite that, software investing has mostly been more profitable than hardware investing. Of course! Software is asset light and much more "increasing returns" than hardware. You don't have to build another copy of the software to make a sale like you do with hardware."Glacial evolution" implies a broken process. I didn't mean to imply that.Think about the large number of smart people who are programmers. At some point will they program themselves into obsolescence? What I have observed is that writing code is less well rewarded as time goes by except for the leading edge. When I stared we were called wizards, now just geeks. The magic is gone. ;)According to the lecture, programmers double in numbers every five years. They could solve the unemployment problem util AI makes them obsolete.Other than Nvidia I am still having little luck finding those companies likely to benefit the most. Agree, Nvidia is the prime supplier of AI chips.I assume that what one supplier can do with synthetic intelligence another will be able to mimic. Yes, but a big moat is built by the proprietary architecture and eco system of the prime mover as with ARM Holdings. The network effect is extremely powerful but underrated.Denny Schlesinger
"Glacial evolution" implies a broken process.Perhaps the most broken part is that the shops which are at the low end of the 1000 to 1 ratio find what they do to be acceptable instead of discarding it.Perhaps AI written software will be filing that gap.AI may contribute to the extremity of the scale by extending the high end, but it is unlikely to replace the low end except in individual wins. If the people at the low end wanted to change, they would have obvious moves to make to create enormous gains in productivity. The problem is, people don't believe it. 28 years ago I wrote a system which I called specification driven development in which one could provide a definition of a function from a list of specifications and models and supply small chunks of code for the parts which needed to be custom. With this tool my programmers were able to average productivity over a large project of 1000 lines of a 4GL per hour. A line of this 4GL was considered the equivalent of 4-10 lines of C code. By contrast, a C shop would typically produce 10 to 100 lines of code per day. Why would you accept that with the other available ... because you didn't believe it.
Programmers...while looking around Mongo I found contract coders for $25 an hour, plus or minus to program on the DB. These guys are not making a ton. In fact, that is lower middle class for these highly skilled and mission critical tools of production. That compares to AI programmers who are in extremely short supply and demanding mid six figures. $500k a year, plus or minus in some circles. When programming all depends on your specialty and staying on the cutting edge. Tinker
how does a 21 year old get identified as having an aptitude for computers when there was only 7 in the whole country??? Sounds like a right-place / right-time sort of story...-Dreamer
how does a 21 year old get identified as having an aptitude for computers when there was only 7 in the whole country??? Sounds like a right-place / right-time sort of story... Step one: my dad* got me a summer job at IBM, the kind of jobs students get (internship? I don't know what it's called in English). Step two: they must have liked what they saw because when I applied for a real job two departments fought over me! :)They did have aptitude tests back then and I was really good at taking tests. It was the right job for the right guy, I absolutely loved it and was pretty good at it.Denny Schlesinger* My dad had a hotel around the corner from IBM and people from IBM frequented the place, great food! Before my dad took over it was the American Club so it was familiar to the US managers.
This is a topic that I know a lot about. The Venezuelan Captain has me grayed out but that is his problem.I got into programming when I was 36. I spent 10 years in teaching and then put my “retirement money” towards going back to school. That is called going “all in”.It worked out for me. I’ve been comfortably retired for ten years, with the last year being my most successful, investment-wise. Thanks, Donald Trump.I skipped all the old IBM junk and went straight into C Unix programming for the miltary industrial complex. At the forefront of the Internet (Arpanet) we (SRI) had a lot of fun introducing the internet protocols to the US Army. Way before the public internet happened.I left teaching because I wanted to work with the smartest people in the world. I was not disappointed. It was a conscious and deliberate decision.Programmers come in many stripes. I’ve since hired and fired dozens of them. Some are not really that bright. Others are smart but misdirected. Most lack personal awareness skills. Once in awhile you run into somebody who can do the nerd work and also work with actual people. Some are as verbal as anybody on this board. But that is unusual. That was my role, and people paid me well to bridge the gap between normal people and gifted nerds. The difference was that I could be the high output nerd if it was necessary. In this world, you only get street cred by doing, not talking. In summary, I ran into many extremely bright people in the software business. I have no regrets in that department. But I also ran into plain weirdos, smart guys who could not connect with user issues, coders with no apparent talent, and your normal low achievers.Top coders, who eventually turn into team leaders, who can actually verbalize, are worth their weight. These people are hard to find and need to be paid a lot of money because they make a difference.If you have a smart kid then you simply can’t go wrong directing that person to software development. I’ve helped many in this regard and their results have been fabulous. It’s not for everybody. Most simply are not smart enough. We are way out at the far right of the Bell Curve, where only males exist, it appears. Look at the stats and make your own decision. Casciman
great post Casci.Quoted for truth:Top coders, who eventually turn into team leaders, who can actually verbalize, are worth their weight. These people are hard to find and need to be paid a lot of money because they make a difference.This goes for pretty much any engineering type from design to quality and reliability.
The Venezuelan Captain has me grayed out but that is his problem. Not a problem, a blessing. It improves the signal to noise ratio. Being a pragmatists I can also break my own rules when properly cued by reliable sources. NozRydrgreat post Casci. Denny Schlesinger
They did have aptitude tests back then and I was really good at taking tests.My sister interviewed with IBM after college (mid to late sixties) and they gave her an IQ test. As it happened, she had administered and scored the exact same test multiple times as part of a summer job. She told them that, but they blindly insisted she take it anyway. She did really, really, really well of course, and they offered her a job. She didn't take it, and I think the plain stupidity of that testing was one reason.
My first wife was a psychologist. Part of her training was to become accredited as a psychomotrist — a person who administers IQ tests and other psychological measures.For practice, she administered many tests with me as the sole subject. I got very good at memorizing strings of numbers and such.Started out being fairly bright but ended up being a bonified genius. Not really a genius because, as you can see, I spelled bonafied incorrectly.Casciman
Casciman,Great post! Being a history buff, your story of being at SRI during the ARPANET days growing up during the infancy of C and UNIX fascinates me!While not a programmer, I too know a lot about programmers, but more from current times. I'm a UNIX System Administrator. Well, not really anymore, because virtualization, automation, and the cloud are rapidly making that a dying profession as well, therefore I must adapt or die. But I digress.Programmers come in many stripes. ... Some are not really that bright. Others are smart but misdirected. Most lack personal awareness skills. Once in awhile you run into somebody who can do the nerd work and also work with actual people. Some are as verbal as anybody on this board. But that is unusual. ...Top coders, who eventually turn into team leaders, who can actually verbalize, are worth their weight. These people are hard to find and need to be paid a lot of money because they make a difference....If you have a smart kid then you simply can’t go wrong directing that person to software development. I’ve helped many in this regard and their results have been fabulous. It’s not for everybody. Most simply are not smart enough. We are way out at the far right of the Bell Curve, where only males exist, it appears.In many ways things haven't changed. I wouldn't go so far as to say "where only males exist", though. While we are still a majority, women are catching up. We have a fairly high ratio of women at my company, many of them immigrants, mostly from India, but a few from China as well. They are are as smart as, and in some cases smarter than, many of the guys in the company. But that's almost irrelevant. The bigger change I've seen has been the extreme specialization of programmers. I recall when I could go speak with a developer back when C and C++ were the primary development languages. They understood application environment and the various contexts in which their code needed to operate. They could think in scale; how is my application going to work on my desktop vs. the much beefier systems in production, etc.Java has ruined software developers. They now know (and care) about nothing outside the JVM. If it runs find on their laptop that's good enough. Toss it over the wall and let the operations people figure out why it doesn't work in QA, Staging, or Production, I have more lines of code to write!We have people developing applications for the internet who have absolutely no idea how the internet works. They're completely oblivious of how packets transit the network, how one system can figure out where another one is in order to send it data or retrieve data to it, etc.I believe a lot of this is the result of dumbing down computers. Part of it Microsoft's fault, much of it Java's. We've made software development so formulaic that for the large majority that I run into, there is no more than boiler-plate copy-and-pasting to their code. Obviously this doesn't apply to all of them. There are still some truly brilliant coders out there. But they are becoming more and more rare. And, as you pointed out, they're worth their weight for sure! Especially the innovative and imaginative ones!I do think at some point software development will cease to be the lucrative position it is now. It will likely be several more decades before that happens, we are still in the infancy of this industry. And I think AI will change things dramatically. It will likely result in only the smartest of the smart remaining in the profession as AI becomes smarter than our dumbest developers, and then our smart ones, and then our pretty smart ones. And so on up the ladder until you're only left with those who are smart enough to develop AI itself!Anyway, thanks for bringing this up. It's a topic near and dear to my heart. And career :)--Paul
growing up during the infancy of C and UNIX fascinates me!Another little tidbit for your wayback machine. In the late 70s I was heading up an NSF R&D project at UCB developing self-instructional materials and computer-simulated labs to teach college level scientific problem solving (very successful, btw.) The project overlapped with the introduction of Unix to Berkeley, so I transitioned parts of our work from the machine at Lawrence Hall of Science, where the project was housed, to the Unix machine down on the campus. This brought me in contact with some of what would be the founders of Sun. One of my projects was to create a package for nroff/troff, the document formatting tool, since the existing packages were all aggressively Bell Labs specific at that point. I don't know what happened to the package eventually, but I knew that most of the scientific units at Berkeley were still using my package at least a decade later, so it wouldn't surprise me if it made it into the BSD distribution.
nroff/troff were part of both SunOS 4.x and DEC Ultrix. groff was the GNU version.I'm curious, did you ever run into Cliff Stoll ?--Paul - who's been around UNIX a long time, but not that long :)
nroff/troff were part of both SunOS 4.x and DEC UltrixAnd the pre-BCD Unix we had from Bell Labs.I'm curious, did you ever run into Cliff Stoll ?I''m not sure ... my memory for names of casual acquaintances that far back is not great. Sounds vaguely familiar.
Best Of |
Favorites & Replies |
Start a New Board |
My Fool |