In recent years, the rise of Artificial Intelligence (AI) has sparked countless debates about its impact on industries—and coding is no exception. Will AI-powered tools like ChatGPT and GitHub Copilot replace developers? Or are they just tools to help us work more efficiently?
In this blog, I’ll explore these questions by putting AI to the test. From designing a marketing website with HTML and TailwindCSS to building a desktop application in Rust, I’ll show you where AI shines, where it stumbles, and why developers shouldn’t be packing their bags just yet.
But... Short answer... maybe, but also no! Let me explain why I don’t believe AI will take over our jobs—at least not anytime soon.
Example 1: Web Design
Let’s start with a simple example: web design.
If you ask an LLM (Large Language Model) like ChatGPT to build a website for a marketing company, it can generate boilerplate code based on patterns it has learned from sources like GitHub. This is a straightforward task and typically yields decent results.
Here’s what I asked ChatGPT:
“Can you design me a marketing website using HTML and TailwindCSS to market a generic company?”
ChatGPT's Output
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Generic Company</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-50 text-gray-800">
<!-- Header -->
<header class="bg-white shadow">
<div class="container mx-auto flex items-center justify-between p-6">
<h1 class="text-2xl font-bold text-indigo-600">Generic Company</h1>
<nav class="space-x-6">
<a href="#" class="text-gray-700 hover:text-indigo-600">Home</a>
<a href="#features" class="text-gray-700 hover:text-indigo-600">Features</a>
<a href="#testimonials" class="text-gray-700 hover:text-indigo-600">Testimonials</a>
<a href="#contact" class="text-gray-700 hover:text-indigo-600">Contact</a>
</nav>
</div>
</header>
<!-- Hero Section -->
<section class="bg-indigo-600 text-white">
<div class="container mx-auto text-center py-20 px-6">
<h2 class="text-4xl font-bold mb-6">Welcome to Generic Company</h2>
<p class="text-lg mb-8">We help you achieve your goals with innovative solutions and unmatched expertise.</p>
<a href="#features" class="bg-white text-indigo-600 font-bold py-3 px-6 rounded-lg hover:bg-gray-100">Learn More</a>
</div>
</section>
<!-- Features Section -->
<section id="features" class="container mx-auto py-20 px-6">
<h2 class="text-3xl font-bold text-center mb-12">Our Features</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div class="bg-white shadow-lg p-6 rounded-lg text-center">
<div class="text-indigo-600 text-4xl mb-4">🚀</div>
<h3 class="text-xl font-bold mb-2">Fast Delivery</h3>
<p>We ensure quick turnaround times to keep your business running smoothly.</p>
</div>
<div class="bg-white shadow-lg p-6 rounded-lg text-center">
<div class="text-indigo-600 text-4xl mb-4">🔒</div>
<h3 class="text-xl font-bold mb-2">Secure Solutions</h3>
<p>Your data is safe with us, thanks to our cutting-edge security measures.</p>
</div>
<div class="bg-white shadow-lg p-6 rounded-lg text-center">
<div class="text-indigo-600 text-4xl mb-4">💡</div>
<h3 class="text-xl font-bold mb-2">Innovative Ideas</h3>
<p>We bring fresh perspectives and creative solutions to every project.</p>
</div>
</div>
</section>
<!-- Testimonials Section -->
<section id="testimonials" class="bg-gray-100 py-20 px-6">
<div class="container mx-auto text-center">
<h2 class="text-3xl font-bold mb-12">What Our Clients Say</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-8">
<div class="bg-white shadow-lg p-6 rounded-lg">
<p class="text-gray-700 italic mb-4">"Generic Company helped us scale our business in record time. Their team is amazing!"</p>
<h4 class="font-bold">- Jane Doe, CEO</h4>
</div>
<div class="bg-white shadow-lg p-6 rounded-lg">
<p class="text-gray-700 italic mb-4">"The innovative solutions provided by Generic Company transformed our workflow entirely."</p>
<h4 class="font-bold">- John Smith, CTO</h4>
</div>
</div>
</div>
</section>
<!-- Call to Action Section -->
<section id="contact" class="bg-indigo-600 text-white py-20 px-6">
<div class="container mx-auto text-center">
<h2 class="text-3xl font-bold mb-6">Get in Touch</h2>
<p class="text-lg mb-8">Ready to work with us? Contact us today!</p>
<a href="mailto:[email protected]" class="bg-white text-indigo-600 font-bold py-3 px-6 rounded-lg hover:bg-gray-100">Email Us</a>
</div>
</section>
<!-- Footer -->
<footer class="bg-gray-800 text-gray-400 py-6">
<div class="container mx-auto text-center">
<p>© 2025 Generic Company. All rights reserved.</p>
</div>
</footer>
</body>
</html>
The Result
Here’s the result of that code:
Pretty neat, right? The formatting is solid, and the output is clean and functional.
So, What’s the Problem?
AI handles simple tasks like HTML generation well. But what happens when we ask it to tackle more complex problems, such as creating a desktop application in Rust?
Example 2: A Rust Desktop Application
For this test, I asked ChatGPT:
"Can you write me a desktop app using the Rust programming language where I can enter a user's name, press a submit button, and it generates a password for that user?"
ChatGPT's Output
main.rs
use eframe::egui;
use rand::{distributions::Alphanumeric, Rng};
fn main() -> Result<(), eframe::Error> {
let options = eframe::NativeOptions::default();
eframe::run_native(
"User Password Generator",
options,
Box::new(|_cc| Box::new(App::default())),
)
}
struct App {
user_name: String,
password: String,
}
impl Default for App {
fn default() -> Self {
Self {
user_name: String::new(),
password: String::new(),
}
}
}
impl eframe::App for App {
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading("User Password Generator");
// Input field for user name
ui.horizontal(|ui| {
ui.label("Enter user name:");
ui.text_edit_singleline(&mut self.user_name);
});
// Submit button
if ui.button("Generate Password").clicked() {
self.password = generate_password();
}
// Display generated password
if !self.password.is_empty() {
ui.label(format!("Generated password for '{}':", self.user_name));
ui.code(&self.password);
}
});
}
}
// Function to generate a random password
fn generate_password() -> String {
rand::thread_rng()
.sample_iter(&Alphanumeric)
.take(12) // Generates a password with 12 characters
.map(char::from)
.collect()
}
Cargo.toml
[dependencies]
eframe = "0.22" # or the latest version
rand = "0.8" # or the latest version
When I tried to compile and run this code, I encountered errors immediately:
After some debugging, I managed to fix the code.
Fixed Output
main.rs
use eframe::egui;
use rand::{distr::Alphanumeric, Rng};
fn main() -> Result<(), eframe::Error> {
let options = eframe::NativeOptions::default();
eframe::run_native(
"User Password Generator",
options,
Box::new(|_cc| Ok(Box::new(App::default()))),
)
}
struct App {
user_name: String,
password: String,
}
impl Default for App {
fn default() -> Self {
Self {
user_name: String::new(),
password: String::new(),
}
}
}
impl eframe::App for App {
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading("User Password Generator");
// Input field for user name
ui.horizontal(|ui| {
ui.label("Enter user name:");
ui.text_edit_singleline(&mut self.user_name);
});
// Submit button
if ui.button("Generate Password").clicked() {
self.password = generate_password();
}
// Display generated password
if !self.password.is_empty() {
ui.label(format!("Generated password for '{}':", self.user_name));
ui.code(&self.password);
}
});
}
}
// Function to generate a random password
fn generate_password() -> String {
rand::rng()
.sample_iter(&Alphanumeric)
.take(12) // Generates a password with 12 characters
.map(char::from)
.collect()
}
Conclusion
The problem lies in the quality of AI-generated code. LLMs like ChatGPT are trained on massive datasets, but much of that data includes beginner-level or incomplete code. For simple tasks (like a basic To-Do app), AI can produce functional outputs as this is common for tutorials. However, when tasked with more intricate projects, the results often fall short due to gaps in the training data.
The Bigger Picture
Major companies like Facebook have announced plans to use AI to automate coding jobs. While this might sound alarming, consider that these companies will use highly specialized AI models trained exclusively on their own well-maintained codebases.
This is different from public AI tools like ChatGPT, which rely on diverse and inconsistent training data. Even specialized tools like GitHub Copilot or Meta’s “Devin” have faced challenges, as they often introduce inefficiencies, create errors, or generate subpar code.
For now, we can breathe easy: AI won’t be taking our jobs just yet. Instead, it’s a tool we can use to assist us in our work, but it’s far from replacing the expertise and problem-solving skills of human developers.
What do you think? Will AI replace coding jobs, or will we always need a human touch?