Exploring AI-Assisted Development: My Journey with Aider, ChatGPT, and Claude

I have been experimenting with using AI assistants to develop a notification framework for Business Central. My objective was not to create a functional system but to investigate the potential of AI-assisted development in our field. I have extensively used Aider in JavaScript/TypeScript, .NET, and C++. The second iteration of my version of Wine for BC4Ubuntu is 98% written by Aider.

At the end of this post, I’ve linked the repository where the prompt used for Aider, along with the resulting code, is stored. I didn’t want it to create pages, just the initial boilerplate code.

The AI Assistants: My Digital Collaborators
For this experiment, I chose to work with three AI tools:

  • Aider: An AI-powered coding assistant (https://github.com/paul-gauthier/aider) specifically designed to help with coding tasks.
  • ChatGPT-4o: OpenAI’s large language model, is known for its versatility in generating text and assisting with various tasks.
  • Claude 3.5 Sonnet: Anthropic’s AI assistant, capable of engaging in complex discussions and providing detailed explanations.

The Process: A Dance of Human and Machine Intelligence
Setting the Stage with ChatGPT

I began by asking ChatGPT to create a detailed description of a notification framework for Business Central. The AI generated a comprehensive outline, including entity relationships, data flow, and implementation considerations. This provided a solid foundation for the project, offering a level of detail that would have taken significant time to produce manually.

Coding with Aider and Claude

With our blueprint, I turned to Aider and Claude to assist with the AL programming. Here’s where things got interesting. Aider excelled at generating boilerplate code and suggesting basic structures for our entities.

    Reflections: The Promises and Pitfalls of AI-Assisted Development

    The Good

    • Efficiency: The AI assistants dramatically sped up certain aspects of development, particularly in generating initial code structures and documentation.
    • Creativity Boost: Discussing ideas with the AIs often led to novel solutions I might not have considered.
    • Continuous Learning: The explanations and suggestions provided by the AIs, especially Claude, were like having a knowledgeable mentor always available.

    The Challenges

    • Accuracy Concerns: While impressive, the AI-generated code wasn’t always perfect. Careful review was necessary to catch and correct errors.
    • Context Limitations: The AIs sometimes struggled with Business Central-specific nuances that weren’t part of their training data.
    • Over-reliance Risk: It was tempting to rely too heavily on AI suggestions, potentially stifling my problem-solving skills.

    The Unexpected

    • Pair Programming Feel: Working with the AIs often felt like pair programming, providing a collaborative atmosphere even when working alone.
    • Expanded Perspective: The AIs sometimes approached problems from unexpected angles, challenging my preconceptions and broadening my thinking.

    Lessons Learned: Best Practices for AI-Assisted Development

    Use AI as a Tool, Not a Replacement: AI assistants are powerful aids, but they shouldn’t replace human judgment and expertise.

    • Leverage for Learning: Use AI explanations to deepen your understanding of concepts and best practices.
    • Iterate and Refine: Use AI to quickly prototype ideas, but be prepared to refine and optimize the results.
    • Stay Informed: Keep up with the rapidly evolving capabilities of AI tools in the development space.

    Looking Ahead: The Future of AI in Business Central Development

    This experiment has convinced me that AI-assisted development has a bright future in the Business Central ecosystem. As these tools evolve, I anticipate they will become indispensable for tasks like:

    • Rapid prototyping of new features
    • Automated code reviews and optimization
    • Enhanced debugging and error detection
    • More intuitive and context-aware code completion

    However, the key to success will be learning to work symbiotically with AI, combining machine efficiency with human creativity and domain expertise.

    I’ve shared the results of this experiment, including the notification framework code, on GitHub: https://github.com/SShadowS/Aider.ALNotify

    I invite you to explore it and share your thoughts.

    Flame graphs of BC call stacks

    Quick note: Yeah, I’m back. A lot happened, got married, had a kid, new job. You know, the usual.

    So now we got that out of the way. This is just a quick write-up, as someone most of you know will show it in action at a session at BCTechDays.

    If you want graphs like the following of your BC call stacks, call my web service and I will convert it to an SVG formatted flame graph.

    The web service is open for everyone in these regions and will stay free forever (write to me if you are blocked, and I will whitelist):
    Europe, North and South America plus Oceania.

    The web service: https://github.com/SShadowS/AL-Flamegraph

    Example BC App for calling web service: https://github.com/SShadowS/AL-FlamegraphApp

    A more detailed post will follow next week after TechDays, and it will include a guide for using Pyroscope.