DeepSeek exploded into the world’s consciousness this past weekend. It stands out for three powerful reasons:
- It’s an AI chatbot from China, rather than the US
- It’s open source.
- It uses vastly less infrastructure than the big AI tools we’ve been looking at.
Also: Apple researchers reveal the secret sauce behind DeepSeek AI
Given the US government’s concerns over TikTok and possible Chinese government involvement in that code, a new AI emerging from China is bound to generate attention. ZDNET’s Radhika Rajkumar did a deep dive into those issues in her article Why China’s DeepSeek could burst our AI bubble.
In this article, we’re avoiding politics. Instead, I’m putting both DeepSeek V3 and DeekSeek R1 through the same set of AI coding tests I’ve thrown at 10 other large language models. According to DeepSeek itself:
-
Choose V3 for tasks requiring depth and accuracy (e.g., solving advanced math problems, generating complex code).
-
Choose R1 for latency-sensitive, high-volume applications (e.g., customer support automation, basic text processing).
You can choose between R1 and V3 by clicking the little button in the chat interface. If the button is blue, you’re using R1.
The short answer is this: impressive, but clearly not perfect. Let’s dig in.
Test 1: Writing a WordPress plugin
This test was actually my first test of ChatGPT’s programming prowess, way back in the day. My wife needed a plugin for WordPress that would help her run an involvement device for her online group.
Also: The best AI for coding in 2025 (and what not to use)
Her needs were fairly simple. It needed to take in a list of names, one name per line. It then had to sort the names, and if there were duplicate names, separate them so they weren’t listed side-by-side.
I didn’t really have time to code it for her, so I decided to give the AI the challenge on a whim. To my huge surprise, it worked.
Since then, it’s been my first test for AIs when evaluating their programming skills. It requires the AI to know how to set up code for the WordPress framework and follow prompts clearly enough to create both the user interface and program logic.
Only about half of the AIs I’ve tested can fully pass this test. Now, however, we can add one more to the winner’s circle.
DeepSeek V3 created both the user interface and program logic exactly as specified. As for DeepSeek R1, well that’s an interesting case. The “reasoning” aspect of R1 caused the AI to spit out 4502 words of analysis before sharing the code.
The UI looked different, with much wider input areas. However, both the UI and logic worked, so R1 also passes this test.
So far, DeepSeek V3 and R1 both passed one of four tests.
Test 2: Rewriting a string function
A user complained that he was unable to enter dollars and cents into a donation entry field. As written, my code only allowed dollars. So, the test involves giving the AI the routine that I wrote and asking it to rewrite it to allow for both dollars and cents
Also: My favorite ChatGPT feature just got way more powerful
Usually, this results in the AI generating some regular expression validation code. DeepSeek did generate code that works, although there is room for improvement. The code that DeepSeek V2 wrote was unnecessarily long and repetitious while the reasoning before generating the code in R1 was also very long.
My biggest concern is that both models of the DeepSeek validation ensures validation up to 2 decimal places, but if a very large number is entered (like 0.30000000000000004), the use of parseFloat doesn’t have explicit rounding knowledge. The R1 model also used JavaScript’s Number conversion without checking for edge case inputs. If bad data comes back from an earlier part of the regular expression or a non-string makes it into that conversion, the code would crash.
It’s odd, because R1 did present a very nice list of tests to validate against:
So here, we have a split decision. I’m giving the point to DeepSeek V3 because neither of these issues its code produced would cause the program to break when run by a user and would generate the expected results. On the other hand, I have to give a fail to R1 because if something that’s not a string somehow gets into the Number function, a crash will ensue.
And that gives DeepSeek V3 two wins out of four, but DeepSeek R1 only one win out of four so far.
Test 3: Finding an annoying bug
This is a test created when I had a very annoying bug that I had difficulty tracking down. Once again, I decided to see if ChatGPT could handle it, which it did.
The challenge is that the answer isn’t obvious. Actually, the challenge is that there is an obvious answer, based on the error message. But the obvious answer is the wrong answer. This not only caught me, but it regularly catches some of the AIs.
Also: Are ChatGPT Plus or Pro worth it? Here’s how they compare to the free version
Solving this bug requires understanding how specific API calls within WordPress work, being able to see beyond the error message to the code itself, and then knowing where to find the bug.
Both DeepSeek V3 and R1 passed this one with nearly identical answers, bringing us to three out of four wins for V3 and two out of four wins for R1. That already puts DeepSeek ahead of Gemini, Copilot, Claude, and Meta.
Will DeepSeek score a home run for V3? Let’s find out.
Test 4: Writing a script
And another one bites the dust. This is a challenging test because it requires the AI to understand the interplay between three environments: AppleScript, the Chrome object model, and a Mac scripting tool called Keyboard Maestro.
I would have called this an unfair test because Keyboard Maestro is not a mainstream programming tool. But ChatGPT handled the test easily, understanding exactly what part of the problem is handled by each tool.
Also: How ChatGPT scanned 170k lines of code in seconds, saving me hours of work
Unfortunately, neither DeepSeek V3 or R1 had this level of knowledge. Neither model knew that it needed to split the task between instructions to Keyboard Maestro and Chrome. It also had fairly weak knowledge of AppleScript, writing custom routines for AppleScript that are native to the language.
Weirdly, the R1 model failed as well because it made a bunch of incorrect assumptions. It assumed that a front window always exists, which is definitely not the case. It also made the assumption that the currently front running program would always be Chrome, rather than explicitly checking to see if Chrome was running.
This leaves DeepSeek V3 with three correct tests and one fail and DeepSeek R1 with two correct tests and two fails.
Final thoughts
I found that DeepSeek’s insistence on using a public cloud email address like gmail.com (rather than my normal email address with my corporate domain) was annoying. It also had a number of responsiveness fails that made doing these tests take longer than I would have liked.
Also: How to use ChatGPT to write code: What it does well and what it doesn’t
I wasn’t sure I’d be able to write this article because, for most of the day, I got this error when trying to sign up:
DeepSeek’s online services have recently faced large-scale malicious attacks. To ensure continued service, registration is temporarily limited to +86 phone numbers. Existing users can log in as usual. Thanks for your understanding and support.
Then, I got in and was able to run the tests.
DeepSeek seems to be overly loquacious in terms of the code it generates. The AppleScript code in Test 4 was both wrong and excessively long. The regular expression code in Test 2 was correct in V3, but it could have been written in a way that made it much more maintainable. It failed in R1.
Also: If ChatGPT produces AI-generated code for your app, who does it really belong to?
I’m definitely impressed that DeepSeek V3 beat out Gemini, Copilot, and Meta. But it appears to be at the old GPT-3.5 level, which means there’s definitely room for improvement. I was disappointed with the results for the R1 model. Given the choice, I’d still choose ChatGPT as my programming code helper.
That said, for a brand-new tool running on much lower infrastructure than the other tools, this could be an AI to watch.
What do you think? Have you tried DeepSeek? Are you using any AIs for programming support? Let us know in the comments below.
You can follow my day-to-day project updates on social media. Be sure to subscribe to my weekly update newsletter, and follow me on Twitter/X at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, on Bluesky at @DavidGewirtz.com, and on YouTube at YouTube.com/DavidGewirtzTV.
+ There are no comments
Add yours