Challenges of Cross-Language Library Translation
summary
Describes translating a C# client library for RavenDB into Java and PHP, rejects Swagger Codegen or AI when the client embeds cluster node‑balancing logic, tests a 3,000‑line "God" class by copy‑paste and uncomment and unblocks features with start with BDD happy‑path tests. Evaluates transpilers (Haxe/J2CL) as brittle and out of date, recommends separate infrastructure from business logic with adapters, domain date/time types, avoid method/constructor overloading; result: derived clients take about an hour or two per feature to implement.
AI-written summary · about
chapters (15)
- 0:00Introduction and setup
- 1:12Why cross-language libraries matter
- 4:33Challenges of multi-language clients
- 6:01API client generation limits
- 8:10Code transpilation drawbacks
- 9:35Strategies for library translation
- 12:08Copy-paste translation method
- 14:19Starting with tests
- 16:15Separating business logic
- 17:41Handling date and time
- 18:44Avoiding primitive obsession
- 19:05Using adapters for external code
- 20:31Avoiding method overloading
- 22:17Conclusion and key strategies
- 23:26Q&A session
related talks
37mMultilingualism makes better programmers - beyond PHP and JavaScript
51mOne VM to Rule Them All? Lessons Learned with Truffle and Graal
52mPolyglot on the JVM with Graal: One VM for Java, node.js, Ruby, R, and C++!
49mJava's Hidden Gems: Tools and Libraries
51mReal World Lean Java Practices, Patterns, Hacks, and Workarounds
01h 04mA Tour of New Language and Library Features
31mSimplifying and Optimizing Life on the Edge with Graal
02h 49mJava meets AI: Build LLM-Powered Apps with LangChain4j
