# Transpiler-Based Architecture Design Model for Back-End Layers in Software Development
## 5 Discussion
### About the Technical Aspects  
5.3.1. Compatibility and Debugging  
When working with transpilers, it is challenging to ensure the full compatibility of capabilities across different target programming languages. Consequently, transpilers define their capabilities using their own source language, which guarantees transformability to the target languages. However, there may be specific functionalities that developers wish to incorporate into generic languages. Transpilers often allow the use of external functions to extend the language through references and additional functions and accommodate specific elements of a given programming language. The challenge with using extended functions is that the equivalent implementation must be manually carried out for each supported target programming language in order to maintain broad compatibility with all languages. This means that when utilizing extended functions developers must meticulously implement the equivalent functionality for each supported target language while ensuring that the platform maintains compatibility across all languages. By carefully managing the use of extended functions and implementing language-specific counterparts, developers can strike a balance between leveraging the transpiler's capabilities and accommodating the particularities of the individual programming languages. This approach enables the creation of multi-language software systems while ensuring compatibility and functionality across various target languages. It is important to note that while transpilers provide a powerful tool for code reuse and cross-language development, developers should be aware of the limitations and challenges associated with handling language-specific features while maintaining the overall integrity and effectiveness of the transpilation process. Furthermore, it is crucial to consider a scenario in which a developer wishes to edit the transpiled code directly. If a developer chooses to make direct modifications, they can achieve a unique and customized level of personalization for their specific target language. However, it is important to note that this approach is not recommended within the proposed design model, as the intention is for the code to be transpiled again to any target language during the maintenance, improvement, and evolution stages. When the code is transpiled again, the source code is rewritten, potentially eliminating any customizations made specifically for the target language. Therefore, relying on line-by-line transpilation is not practical or functional within this context. Instead, utilizing extension functions is the preferred approach. By leveraging extension functions, developers can extend the capabilities of the transpiler while avoiding the need for manual language-specific modifications. This ensures that the code can be transpiled efficiently and maintains compatibility across multiple target languages. By emphasizing the use of extension functions and avoiding direct modifications to the transpiled code, the proposed design model aims to strike a balance between customization and maintainability. It enables efficient transpilation and facilitates seamless evolution and updates of software while preserving the broad compatibility offered by the transpiler-based architecture design model. Another viable alternative is to subdivide back-end programming logic into independent layers using interfaces and invocation schemes. This approach allows for combinations of native and transpiled code. By developing the core of the back-end in the transpiler language and incorporating direct customizations in the target programming language, it is possible to deploy them together on the server without mixing them. Through intercommunication libraries, these components can be made to work together seamlessly. By adopting this approach, the core of the product can be developed using the proposed design model while allowing for specific customization in separately developed code.