TTT #22: ChatGPT vs. Gemini in Front-End Development

Stephen CollinsDec 9, 2023

Jumping on the bandwagon, in this week’s issue I compare the newly released Gemini chat model by Google (available to US visitors inside of Bard) and ChatGPT, powered by GPT-4. I’ll compare and contrast their strengths and weaknesses.

Case Study 1: React Tic Tac Toe

In a recent test, both models were tasked with creating a tic-tac-toe game using React. The outcomes were markedly different, highlighting the strengths and weaknesses of each model.

ChatGPT’s Performance

  • Complete Implementation: ChatGPT provided a comprehensive solution, including both the necessary JavaScript and accompanying CSS. This holistic approach ensured that the game was not only functional but also aesthetically pleasing.
  • Attention to Detail: The model included simple yet effective CSS for all classes used in the React component, demonstrating an understanding of the importance of both form and function in web development.
  • First-Pass Success: Impressively, the game worked flawlessly on the first attempt, showcasing ChatGPT’s robust coding capabilities.

Gemini’s Performance

  • Missed Details: Gemini’s solution was lacking in several areas. Most notably, it did not provide the corresponding CSS, which is a crucial aspect of front-end development.
  • Critical Error: The omission of the “useState” import for the Board component was a significant oversight. This error prevented the component from transpiling and running, indicating a gap in Gemini’s understanding of React’s fundamental requirements.
  • Incomplete Implementation: The provided solution did not function on the first pass due to its incomplete nature, highlighting a need for improvement in Gemini’s coding assistance capabilities.

Case Study 2: Recursive Tree UI Menu

Another test involved building a recursive tree UI menu using React. Once again, ChatGPT and Gemini’s performances were compared.

ChatGPT’s Edge

  • Simplicity and Clarity: ChatGPT’s solution was characterized by its simplicity and ease of understanding. This approach is particularly beneficial in coding, where clarity can significantly impact maintainability and scalability.
  • No Assumptions: ChatGPT refrained from making unwarranted assumptions about the requirements, such as the need for url support. This demonstrates a more user-centric approach, tailoring the solution to the specific needs and inputs of the developer.

Gemini’s Approach

  • Over-Assumption: In contrast, Gemini’s solution included url support, an aspect not explicitly requested. While this might be seen as proactive, it can also lead to unnecessary complexity and deviate from the user’s original vision.
  • Older Render Props Pattern: Gemini’s implementation relies on a pattern—render props—that is considered somewhat outdated in modern React development, especially after the introduction of Hooks. This approach, while useful in certain scenarios, can lead to more verbose and less intuitive code compared to the more streamlined and modern Hooks pattern.

Conclusion

The comparative analysis of ChatGPT and Gemini in these React development scenarios highlights ChatGPT’s superior performance in terms of completeness, attention to detail, and adherence to user requirements.

While Gemini shows potential, its current iteration falls short in critical aspects of coding assistance, specifically in understanding and implementing user requirements accurately. As AI models continue to evolve, it’s crucial for developers to choose tools that best align with their needs and the specifics of their projects - and keep up to date with new developments of better tools in the future!

Here are the links to the LLM chats referenced by these case studies:

React Tic Tac Toe Case Study:

React Tree Menu Case Study: