Developers each have their favorite IDE, an experience they are familiar with. The challenge is, how to get the advanced capabilities they want with every language into every IDE simply.
Language Server Protocol (LSP)
In 2016 Microsoft introduced LSP taking an important step in the way of editor agnosticism (separation of editor and language tool). This facilitates decoupling development tools from client-server architecture where the client can connect to any number of language servers [see Figure-1]. Before LSP was introduced, every dev-tool vendor provided their own solution (plugins) for syntax-checking, code completion or go-to-definition like services to each programming language separately, and generally, these plugins could not be re-used by other tools. Now, using the LSP approach, any vendor can publish their solutions into the marketplace of tools that support LSP as an extension, and others can use this extension in their dev-tools. E.g. …
Changing user experiences across tools and platforms is frustrating and time consuming and this applies to troubleshooting and debugging which are two important diagnostic methods where wasted time can directly impact the business.
In this blog we describe next generation debug technology using the Debug Adapter Protocol  for mainframe code, therefore keeping the user experience the same across languages or platforms.
Debug Adapter Protocol (DAP)
In a previous blog we described the Language Support Protocol (LSP) which brings the magic of modern editing capabilities in modern IDEs for Mainframe Languages (COBOL, HLASM, REXX and JCL). To extend the consistent experience to debugging we need more magic— Debug Adapter Protocol. Before DAP was introduced, debugging support in dev-tools was provided for each language-debugger separately [see Figure-1]. DAP abstracts communication between the dev-tool’s debugging user experience and the language debuggers. To make this happen we need a Debugger Adapter , which adapts the debugger to the Debug Adapter Protocol. This means any dev-tool can connect with any number of different debuggers via debug adapters. Also, using the DAP approach, any dev-tool vendor can implement their debug adapters and publish them into the marketplace as freely available extensions. E.g. …
Day to day developers deal with how to improve performance of slow operations. The challenge is, how to get the most performant result, the right concurrency model and to choose which programming language offers the best solution.
Nowadays, threads (in computing) are used in many real-world applications, like when we are doing online banking transactions, buying airline tickets, ordering food, or many others. To do multithreading correctly requires deep knowledge of all components (e.g. Java, database transactions or Mainframe CICS, and business knowledge such as banking, etc.) involved. …