Showing posts with label Nvidia. Show all posts
Showing posts with label Nvidia. Show all posts

Thursday, 6 February 2025

Tech Democratization in the Era of Artificial Intelligence

There's a term that I have been seeing more of late: Tech Democratization. More precisely, I first heard it while watching this speech by Nvidia CEO Jensen Huang.



"And so I think that democratizing, activating every region, activating every country to join the AI advance, is probably one of the more important things, rather than convincing everybody it's too complicated, it's too dangerous, it's too mystical and only two or three people in the world should be allowed to do that."


To be honest, the first time I heard the term, I was perturbed and more than a little offended. Like what, tech needs to be democratized? As opposed to it being a dictatorship right now? However, after researching the term a bit, it's not as acrimonious as one might think.

So, what is Tech Democratization exactly?

Tech Democratization describes a state of tech where creation of software (web portals, applications and such) can be carried out without relying on the expertise of technically qualified people. In short, laypeople would no longer need tech professionals for these things.

At least, that's the promise of Tech Democratization. It brings the power to create, to the masses, instead of keeping it in the hands of the elite few. More importantly, the power to create without needing a technical foundation acquirable only by years of training. As a concept, Tech Democratization is not new. One could even argue that it started all the way back in the 60s where high level languages were created so that people like me wouldn't need to deal with Assembly, thus opening up possibilities for a less hardcore breed of nerd.

Building without the
need for expertise.

How about frameworks? Frameworks were created back in the day (and are still in use now) to reduce repetition in coding, and thus reduce the amount of code developers needed to write for a typical application. Now that code in scaffolding no longer needed to be written from scratch, surely this meant that application programming was now opened to a lot more people.

Web development came up with content management systems and even entire website builders to allow the man in the street to create websites without needing to know any HTML, CSS or JavaScript. Low-Code platforms bring this to a new level, allowing laypeople to create simple applications without knowing having much of a technical foundation at all.

From this point of view, AI is merely the latest in a long line of innovations that outsource the repetitive parts of writing code to the system, so that the human can focus on the creative bits.

The Scariness of Tech Democratization

AI is a tool made by actual software engineers. Even if non-technical people can now use this tool to create software that would previously be out of their reach, this still does not make them engineers. It sounds obvious now the way I say it, but it is human nature to get carried away by the perception of ones own perceived ability.

The danger is that non-technical people using AI as a tool to generate code, will start thinking that they can replace actual developers. It does not matter whether or not this is true. What matters is that these laypersons, having not actually encountered software development in all its glorious and terrible complexity, will create a few working apps and start wondering what the big deal is, precisely because they are unburdened by that knowledge.

How much should
non-techies control?

Imagine a world in which software that runs air traffic routes or maintains banking transactions, is created with the help of AI and people who don't actually understand software development, but are given the ability to act as if they do. Are you afraid yet? No? Perhaps you should be.

Me? I'm at the tail end of my career. Professionally, there's nothing I could lose to AI that I don't already plan on giving up in a few years. I don't fear losing my job to AI. It's a tiny consequence compared to the terrible implications I just outlined. And that's all I'm doing - outlining those implications. In no way do I think Tech Democratization is a bad thing.

Besides, it would be hypocritical of me to start decrying Tech Democratization now. I, too, am a beneficiary of Tech Democratization. Were it not for the significant effort put in by engineers better than myself, I would not have the tools - databases, operating systems and programming languages - I use so readily today. I recognize and acknowledge my privelege, and would never presume to place myself in the same bracket as the tech professionals who made those tools.

There's a stark difference between developers benefitting from such tools, and laypersons doing the same. Developers have (generally) the technical foundation, in some cases to the point where those tools would merely be helping them do things they already know how to do, but faster. Laypersons, on the other hand, would be hapless infants without those tools, at least where accomplishing those specific technical tasks were concerned. That, I think, is an important distinction.

In conclusion

Look, I'm not some sort of tech elitist or wannabe gatekeeper. I'm just not. But it's one thing to allow the general public the power to write software. It's quite another to consider them on the same level as people who have been doing this for years (or, in the case of Jensen Huang, claim that "everyone is now a programmer"), just because there are tools to help them accomplish the same goals. That is laughable.

Faster than Phelps.

It is absurdity on the level of me claiming to be as qualified an athlete as Michael Phelps just because I can outpace him on a jetski. Or claiming to be as qualified as my family doctor just because I can read up on medical symptoms on WebMD.

Tech Democratization has value. Like all things with value, however, one has to know exactly how far to take it. Speeding up the work of developers or automating away routine tasks is a great idea. Giving every schmuck the tools to write simple apps? Also a pretty good idea. Allowing them to think that software development is actually that easy? There are not enough words in the dictionary to describe what a horrible idea that would be.

Democracy now!
T___T

Sunday, 14 April 2024

How worried should software developers be about Devin AI? (Part 1/2)

It's time to talk about a couple things, regarding AI. All of which have to do with some recent occurences in the software industry.

First of all, Devin AI. It's been the talk of the software industry in recent weeks.


Devin AI is the world's "first AI Software Engineer" produced by Cognition AI. It's an automated system that performs like your average web developer - code, trawl the web for solutions, read documentation, test code and produce reports, among a myriad of other tasks. Except that being a machine, it does all these a hundred times faster.

Users feed it prompts in natural language. It then produces codes, tests and documentation, based on those prompts. Sounding good, so far? Astounding, even. Words like "groundbreaking" and "game-changing" have been used. Of course, those same words were used when Bitcoin came on the scene, followed by NFTs, and then the Metaverse. I'm not saying that this development will go the same way, but recent history has made it hard not to be skeptical.

For software developers, Devin AI sounds like a useful tool, or a even a nice virtual member of the team. Something that can take care of the tedious grunt work while you concentrate on better things.

For employers, it looks like huge potential savings in terms of developer wages. Hey, why pay developers if an AI can take care of the bulk of their work? And if we're being honest, we all know a team member or two who could stand to be replaced by AI.

Reports tell us that Devin AI has managed to solve a whopping 14% of software problems it was given. This is not sarcasm; I know it doesn't sound terribly impressive especially since we don't know if those problems were FizzBuzz level or banking application level, but bear in mind that it can only get better from there.

The use of natural language to communicate requirements to Devin AI sounds potentially shaky. Seasoned software devs would probably know the correct terms to use in order to get results, but non-technical users are going to have a rough go of it. If even fellow human beings sometimes find it difficult to effectively communicate due to language and cultural barriers (even when they're using the same language and are from the same culture) I can't imagine it being any easier for AI. Granted, I could simply be suffering from a failure of imagination.

Jensen Huang

At Dubai earlier in February, Nvidia CEO Jensen Huang made waves with a speech, which seem to have raised some hackles in the software development industry.


"I'm going to say something and it's going to sound completely opposite of what people feel. You probably recall over the course of the last ten years, fifteen years, almost everybody who sits on a stage like this would tell you it is vital that your children learn computer science. Everybody should learn how to program and in fact it's almost exactly the opposite. It is our job to create computing technology such that nobody has to program and that the programming language is human. Everybody in the world is now a programmer. This is the miracle. This is the miracle of Artificial Intelligence. For the very first time we have closed the gap. The technology divide has been completely closed and this the reason why so many people can engage Artificial Intelligence. It is the reason why every single government, every single industrial conference, every single company is talking about Artificial Intelligence today, because for the very first time you can imagine everybody in your company being a technologist..."


I'll begin by saying that he certainly seems to be saying things that investors and shareholders are going to find appealing. As to how feasible it all is, well... at the risk of sounding like one of those developer elitists I hate, I'm tempted to dismiss that speech also because he doesn't seem to have any relevant software development process. Speechmakers waxing lyrical about things they don't know about is an unfortunate habit which isn't all that uncommon. But hey, for all I know, this guy could be a coding genius, so let's not go there.

Let's be honest. Software developers can be a tremendous pain in the ass to put up with. We can be temperamental, egoistical (a prime example being all the whining I hear online about the audacity of trying to automate our jobs), and have this utterly annoying air of superiority due to being the technical person in the room. And in cases of non-tech companies with very traditional wage structures, trying to pay us competitively while not compromising those structures can be an almighty struggle. Not gonna lie - I can absolutely see the appeal.

Being able to write apps without having to deal with software developers or do the work of learning to code? Pretty much the layperson's tech wet dream.

Then again, I would put significantly more stock in that speech if Jensen Huang were to put his money where his mouth was. Why stop at removing software developers? Why not replace his entire development team at Nvidia with Artificial Intelligence, to produce more Artificial Intelligence?

All this seems like marketing speak. Because there's no way Huang could have meant it all in earnest. My best guess is, this speech was meant for stakeholders who don't necessarily know any better. Sure, AI will generate code for us. That's not new. You know, whenever I want to make an API endpoint call, I use existing software to generate the code for me, in Python or JavaScript or PHP, because I can't be bothered to remember the entire damn sequence in multiple programming languages. Have I lost my job because I don't have to write that code any more? No, it simply means I can work faster and not get bogged down by minutia. Just because something else wrote the code for me doesn't mean I don't have to verify it. And in order to verify it, I need to be able to understand the code.

I've been learning Japanese kanji. Just for fun, you understand. Take the Japanese kanji below. It means "Sunday".
日曜日


The middle character is one of the more complicated ones I learned in the past year. Can I write it? Have I committed it to memory? No, and no. But do I need to? My phone types it out just fine, and I can recognize it right off the bat. Someone who has only studied Chinese characters (like me, two years ago) would read that entire sequence as "day bright day". But someone who hasn't studied Chinese characters or Japanese kanji wouldn't recognize it at all.

There's the analogy. Software devs looking at computer-generated code have a decent chance of understanding it. People who have had a bit of related training might misunderstand the code. If non-tech people look at code,  they're likely to see only gibberish. 

If AI is supposed to generate code, and no one has learned how to code, no one can understand what AI is doing. Still think people should not learn to code?

However, Huang has a real point when he implies that coding as we know it, is about to change forever. That's because with or without AI, the nature of coding has always evolved. In the 1960s, programmers were using punch cards on mainframes to code. Are we doing that now? Later on, languages like COBOL  came into being. How many of us are still using them now? Now we have frameworks and fancy tools to do most of the heavy lifting. We don't even need to indent our own code anymore - we have linters for that.

Get comfortable with change. It's exactly what our industry produces.

Next

Examining the pros and cons of AI.