Feel free to ignore GenAI for now – a new kind of software developer is being born
- Reference: 1727090170
- News link: https://www.theregister.co.uk/2024/09/23/hightower_interview_part_2/
- Source link:
While the current obsession sweeping the industry is not lost on him, he prefers to focus on other areas. "I actually made a conscious decision on social media. I said generative AI is the one wave that I'm just going to completely ignore."
Last week, The Register wrote about [1]one part of a discussion we had with the coding supremo at Civo's recent Navigate event in Berlin. Today we cover the rest of it.
Most people don't study software development. They study the craft of how to write software. They don't study the art
The coder brought up an analogy to the Olympics when he advocated for government bankrolling of open source, arguing: "Every country invests in their athletes year-round, and they show up to compete at the highest levels, and when they can no longer do so, then the next breed of athletes show up, and there's always a pipeline for them to train to get better, and hopefully we create nice things."
This, he said, would create a pipeline of athletes and coders to future-proof the industry – which needs to redefine what a dev is at the same time as it considers both AI risks and how to capitalize on its rewards.
[2]
He argued that a "pipeline of athletes or developers is important since there is a real danger that over-reliance on AI coding assistants might choke off that pipeline in the future, removing the next generation of engineers."
[3]
[4]
He's not too concerned about this. "If you shift the conversation to 'What is a software developer?' to me, that is a person that understands how to leverage software to solve problems. Today, unfortunately, too much of that time is spent with the ceremony between you convincing the computer what to do by writing code in the arcane language that is purpose-built for the compiler and not the human.
"So that's what we spend a lot of our time on. That means we don't do a lot of rough drafts, we don't do a lot of prototyping, we don't do a lot of models and renderings. We don't go out and talk to every customer and watch them work.
[5]
"But imagine if you had your time back. I think the new software developer would be doing way more of those activities. They would become students of software development. Most people don't study software development. They study the craft of how to write software. They don't study the art."
Hightower's take is that AI coding assistants are not to be feared by developers but instead present an opportunity. Developers won't need decades of experience to draw an input box. Getting the assistant to do what the user wants requires learning how to instruct it rather than learning all the ins, outs, and pitfalls of C++.
[6]K8s celebrates KuberTENes: A decade of working together
[7]Detecting drift and dealing with the Silicon Valley mindset
[8]DevTernity conference collapses amid claims women speakers were faked
[9]Kubernetes goes in for nip and tuck, comes out with 25 'enhancements': We take a look at v1.15
Speaking of his decisions to "completely ignore" generative AI, Hightower tells The Reg : "A lot of people were like, 'Oh my God, how could you miss out on what they consider the biggest wave ever?'
A lot of these things start as waves, and they never make it to shore.
"There are so many waves happening in energy, medicine, education, and politics, and I'm unaware of most of them. And so I guess the question is, where do you focus? Crypto two years ago, three years ago, it was the talk of the town. You had every major brand talking about making NFTs the future of their loyalty programs. Not a word today. And so when I look at this kind of wave today, I look at it and say, that's not the one for me.
"There are so many waves. And I think the real question is, what are we going to finish? A lot of these things start as waves, and they never make it to shore. And we have so many waves we started in the last ten years. We need to finish some of them."
Cloud-native computing
All of which brings us to cloud-native technologies. 2024 is the tenth anniversary of the cloud orchestration platform Kubernetes, of which Hightower became an evangelist.
He cites the example of the technology beneath web browsers: "HTTP is kind of like furniture in many ways. It's a standard thing; the whole world communicates on it. But web browsers are not so standard. They all have different features and experiences, and then you have JavaScript and web frameworks that allow you to express yourself.
"What makes Kubernetes very interesting is if you look at what's inside of Kubernetes, it's very 'furniture': a bunch of VMs and the same loops we were using for 20 years."
[10]
It is the enhancements to the Kubernetes API that excite him, says Hightower, particularly the dialect that allows infrastructure to be described with static typing.
"Python developers love dynamic typing. Is it a struct? Is it a string? Is it a map? Is it a dictionary? Good luck – you will get that when you start processing. And there's a lot of flexibility in that.
"But Kubernetes brings a type system that says, 'You have to get way more mature about this.'
"It's almost like a culture shift... You know how much infrastructure we have yet to describe? We've only described 'put this app over there' and 'put on an IP and load-balancer,' but there are millions of fragments of infrastructure that are yet to be described."
In the future, Hightower expects the API vendors to simply describe a Kubernetes implementation in a way that matches the customer's needs, be it in the cloud, on the edge, or on-premises.
"I would say that GKE, Google's Kubernetes engine, is very different than what Civo is shipping in their on-prem appliance," he says. "They're giving people a flavor of Kubernetes that matches their needs on-premises; those are all different implementations of Kubernetes.
"Kind of like Chrome and Microsoft Edge. They both are using Chromium underneath the hood, but they both offer different experiences."
Hightower sees the same thing happening with Kubernetes. Users can pick and choose what they need, and if what they need isn't there yet, then it can be easily created.
"From cultural standpoints, we just say Kubernetes. The Kubernetes ecosystem. And this is why we have so many more of those logos. All because it's so much easier to create a logo right now.
"If you don't like something, you can mix your ingredients, ship it, just pick your logo, and you're back in the game." ®
Get our [11]Tech Resources
[1] https://www.theregister.com/2024/09/19/kelsey_hightower_civo/
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZvGQpSonb2P5fVKwFPeEIwAAAdU&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZvGQpSonb2P5fVKwFPeEIwAAAdU&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZvGQpSonb2P5fVKwFPeEIwAAAdU&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZvGQpSonb2P5fVKwFPeEIwAAAdU&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[6] https://www.theregister.com/2024/06/12/kubertenes_decade_anniversary/
[7] https://www.theregister.com/2024/04/25/detecting_driftt_and_dealng_with/
[8] https://www.theregister.com/2023/11/28/devternity_conference_fake_speakers/
[9] https://www.theregister.com/2019/06/20/kubernetes_update_115/
[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZvGQpSonb2P5fVKwFPeEIwAAAdU&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[11] https://whitepapers.theregister.com/
That athlete analogy is worrying. Competitive athletes have relatively few years at the top. Then they're discarded. and have to find some other way of earning a living. Some may become trainers, some sports journalists but what happens to the rest? Is this what he thinks should happen to software developers? Does he work for IBM?
Hightower and this subject - HaI
Analog Devices
The use of analogies, when talking about software, people, processes and complexity, is generally a worry.
One person’s analogy is another person’s WTF.
Jira for the LLM anyone?
Let’s consider buggy LLM-generated code. Buggy because it doesn’t fulfil the application requirements or just plain buggy ‘cos it’s wrong.
Who reports this? Who confirms this? Who assigns this for fixing and who fixes this? Do we assume LLMs in the roles?
Assuming a successful fix is created, should this propagate to other LLMs so the same mistake isn’t copied? What process is now followed, if any, and is the benefit local-only, or global?
If the bug was found in some npm library, is the fix checked and merged? Who manages this, or if it’s not managed, what happens? Suggestions?
Reusable software components were supposed to be one of those many, now-tarnished silver bullets. Are we about to discover that we now have a big bag of dodgy, rusting iron filings? Ot doesn’t it really matter because the complexity will be managed and the results will eventually converge to bug-free nirvana?
Don’t mistake this for doomsaying, I’m a fan of predictive code completion. But there’s a case to consider for complexity management and how that’s communicated.
…
"how to leverage software"
Is that bullshitspeak for "use"
"Programming should be easier"
"Today, unfortunately, too much of that time is spent with the ceremony between you convincing the computer what to do by writing code in the arcane language that is purpose-built for the compiler and not the human."
Yes, I'd love to have programming be easier too. The reason programming is hard is because you must clearly and unambiguously state what you want to have happen. Irreducible complexity is irreducible.
"That means we don't do a lot of rough drafts, we don't do a lot of prototyping, we don't do a lot of models and renderings. We don't go out and talk to every customer and watch them work. But imagine if you had your time back. I think the new software developer would be doing way more of those activities."
WE HAD THAT. It was called "system analysis" and "gathering requirements" and it was axed because management saw it as a waste of time and money.
The system I'm working on was developed in the late '90s after 5 months of talking to the users, seeing what they did for a living, and actually sitting down and DESIGNING the system to help them. (edit: yes it's creaky and needs a lot of work, but it's still here because it still gets the job done. edit part deux: and don't think there haven't been something like 12 attempts to replace it that have failed because management won't spend the time & money to do it right)
Today you have a bunch of useless assholes sitting in a meeting room, who have probably never talked to the users, much less know what they do, spouting off nonsense requirements for two hours, then the meeting is over and the software is expected next week. And we wonder why Oracle racks in millions for participating in these circuses. They specifically tailor contracts for "people that have no clue what they're doing"
Re: "Programming should be easier"
Programming is hard because once you have done it then you need to verify that is completely correct ... that's the hardest side of it because it needs you to attempt to fix the problems you find and then return to the verification process again. I'm sure AI is designed to do a good job but it virtually never verifies its programming and most of the errors are seen as your problems, not AI.
The environment when we were coding in BASIC and then starting to use Visual Basic ... so much better to use but with new problems too - I was happy writing code with everything but always accepted that I had to deal with the users function errors. Coders have to do it because code never does it reliably.
Ostrich Hightower
Sticking your head in the sand and pretending AI isn't there won't make it go away.
Time warp capital
Gotta love Berlin! Where Thursdays are Monday's yesterday! ;~}