The biggest difference between ChatGPT and Bard is the Large Language Models (LLMs) they are powered by. ChatGPT uses the Generative Pre-trained Transformer 4 (GPT-4), while Bard uses the Language Model for Dialogue Applications (LaMBDA). Also, ChatGPT is developed by OpenAI, while Bard was built by Google.
In terms of capabilities, both do very similar things. Programmers can use ChatGPT for:
- Suggestions: Both models can suggest the correct syntax and parameters for functions and other code constructs.
- Completion: It can complete code that you have started writing.
- Debugging: It can help you identify errors and problems in your code.
- Explanation: It can explain the code that it generates, or code you input.
Both models were trained on a massive dataset, including Common Crawl, Wikipedia, books, articles, documents, and content scraped from the internet. However, Bard is a little different in that it was trained on conversations and dialogues from the web, while ChatGPT was trained mostly on scraped general content.
Both products are still under development, Bard a bit more so than ChatGPT. But to really show how these differences actually matter in a practical sense, here’s how they work when tested against each other.
Testing ChatGPT and Bard against each other
We chose seven categories to test the chatbots against each other, based on what we felt were the most relevant: code generation, problem solving, refactoring code, debugging assistance, third-party plugins/UI extension, ease of use, and cost. Let’s preface this by saying this is not a rigorous scientific comparison, but rather a handful of tests mixed with our hands-on experience to date.
1. Code generation
The bread and butter of what we want it for, right? For this, we fed in the following prompt: “Write a function in python that returns a list of 100 prime numbers.”
Bard’s coding attempt
def get_prime_numbers(n): """Returns a list of prime numbers up to n.""" primes =  for i in range(2, n + 1): is_prime = True for j in range(2, i): if i % j == 0: is_prime = False break if is_prime: primes.append(i) return primes def main(): """Prints a list of 100 prime numbers.""" primes = get_prime_numbers(100) print(primes) if __name__ == "__main__": main()
Looks solid, but does it work? In our experience, chatbots can sometimes create code that doesn’t run, even going as far as to invent functions! That’s one reason having AI-generated code in production with no human oversight would be very bad. So let’s test it out and see.