Skip to content

Create Clojure/Babashka Proof of Concept for a Core Component #396

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
bhouston opened this issue Apr 27, 2025 · 0 comments
Open

Create Clojure/Babashka Proof of Concept for a Core Component #396

bhouston opened this issue Apr 27, 2025 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@bhouston
Copy link
Member

Create Clojure/Babashka Proof of Concept for a Core Component

Summary

This issue proposes creating a small proof-of-concept implementation of a core MyCoder component in Clojure with Babashka runtime to evaluate feasibility and identify potential challenges before committing to a larger migration effort.

Related Issues

Objectives

  • Implement a small, self-contained component from the MyCoder codebase in Clojure/Babashka
  • Demonstrate interoperability with the existing TypeScript codebase
  • Evaluate performance, code complexity, and developer experience
  • Document findings and challenges encountered

Suggested Components for POC

Consider implementing one of these components:

  1. Logger System: A relatively self-contained utility with clear boundaries
  2. Configuration Loading: Loading and parsing configuration files
  3. Basic LLM Provider: A simple implementation of one LLM provider (e.g., Anthropic)

Deliverables

  • Working Clojure/Babashka implementation of the selected component
  • Tests demonstrating functionality equivalence with the TypeScript version
  • Performance benchmarks comparing the implementations
  • Documentation of challenges, solutions, and lessons learned
  • Recommendation on whether to proceed with further migration

Technical Considerations

  • How to handle TypeScript's type system in Clojure (consider using clojure.spec)
  • Approach for async operations (core.async vs. promises)
  • Integration with existing build system
  • Testing strategy

Next Steps

Based on the results of this POC, we can make a more informed decision about whether to:

  1. Proceed with a larger migration effort
  2. Implement select components in Clojure while keeping the core in TypeScript
  3. Remain with the current TypeScript implementation

Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant