Dark, the newest language on the block, pegged to make coding 100x easier is a holistic programming language with a structured editor and infrastructure for building backend web services. Currently, in the alpha format, it is aimed at frontend, backend, and mobile engineers. With Dark, the founder wants to remove ‘accidental complexity from coding’; that’s why it combines an editor with a language and infrastructure.
According to the founder of Dark, the language focuses on four main phases of complexity while developing a software product. They are infrastructure complexity, deployment complexity, API complexity, and Code-as-text complexity. However, it is not a general-purpose language, or a general-purpose editor, or general-purpose infrastructure. These complexities are mitigated in the following ways mentioned below:
- Infrastructure Complexity: This defines everything which is involved in working with the machines to run the code. This complexity is mitigated by running the infrastructure compiler within the language.
- Deployment Complexity: This problem relates to the syncing of a product’s code from one machine to another. This complexity is redesigned in such a manner that when a developer writes code into the Dark editor, it will be immediately deployed to production.
- API Complexity: This complexity defines how much harder it is to use an API vs calling a function. This issue is mitigated by making an API call which is is as simple as a function call.
- Code-as-text Complexity: This complexity refers to the miscellaneous problems which are faced by a coder while writing and tooling. Dark mitigates this complexity by renaming the functions with the language’s editors’ search-and-replace functions that don’t understand the difference between a function and a variable.
There are several projects which are currently a good fit for this language, for example, mobile products, SPAs, new microservices in existing architectures and internal tools among others. If a developer does not require a backend outside of regular business logic such as machine learning models, blockchain, real-time systems or streaming video, then this language is a fair fit for building the product. The only disadvantage of this programming language is that a programmer has to spend some amount of time to learn a whole new language as well as using a completely different editor.
- This language provides an automated infrastructure which allows the user to generate and run scalable infrastructures
- The users can use APIs with ease as if they were functions
- The developers who are using this language don’t have to worry about a deployment pipeline as it eliminates the deployment step completely.
Why Use It
Currently, a developer has to face a lot of complexity while building a product such as calling APIs, choosing infrastructures, check codes on git, run tests, among others. This is not only a time-consuming task but also involves lots of complexity. This new language which is tightly integrated with an editor, compiler, and PaaS will allow developers to build distributed applications using high-level primitives.
Deployment can be considered as one of the important factors while developing a product. Understanding the dilemma of a developer, the researchers of this language built it in such a way that the deployments take a mere of 50 milliseconds. Using this language to build a product will surely provide quick and easy deployment to a developer.
Dark is currently in the alpha stage and it will be available to the public in September this year. This new language aims at bringing ease to the developers while building a product. However, the alpha release is surrounded by a set of controversies and it has also been compared to AWS Lambda services. The founder reiterated that though Dark appears similar to Lambda/serverless, the language has several advantages in terms of munging and responding.