DarkLang Intro And First Impressions
Tags: darklang, serverless, beginners, review
Published: 2021-01-08 16:14:56

A colleague mentioned a new language and serverless environment called Dark (or DarkLang if you don't want a zillion unrelated search results). It sounded interesting so I created an account to check it out.

## What Is DarkLang?

Dark is a language, environment, online editor and serverless deployment infrastructure to create and serve backends for your applications. It lends itself well to APIs, bots and even CRUD applications. There's nothing to set up on your machine, everything is done online in your Dark account. Everything you write in their online editor is instantly deployed and consumable.

## How To Get Started

Dark is currently in Beta but they are open for new signups. I created an account on their website https://darklang.com/ and was instantly brought into the online editor to write my first endpoint with a 2 minute tutorial.

![The DarkLang Online Editor and Tutorial](https://dev-to-uploads.s3.amazonaws.com/i/e788g98nfgvwada1mfp6.png)

The guided tutorial helped me create a basic GET endpoint and return a Hello World result. When this was complete it provided a link to open a more complex CRUD example application.

Ellen, one of the founders of Dark, has a great introduction YouTube video which I watched after creating this hello world example.

{% youtube orRn2kTtRXQ %}

From here, Dark has a much more in depth [Your First App tutorial](https://docs.darklang.com/your-first/) which will be my next learning step.

## First Impressions

I'm very intrigued by the absolutely minimal barrier to entry here. No editor or software to install, no dev environment to set up, nothing to run or configure, no deployment. I created an API endpoint with utterly zero fuss. Awesome!

As cool as that is, it brings to mind some questions.

* How do I prevent myself from developing directly in production with all the risks that entails?
* How do I control when a new update becomes live? I saw brief mentions of feature flags, but couldn't readily see how to use them.
* Will there be mechanisms for testing my applications?
* How do I have my own backups of my Dark programs? It seems like if Dark goes down or ratchets up prices, then I'm stuck.
* What even is or will be Dark's pricing model? I'd like to know what I'm getting into.
* How well will Dark scale?
* Version control or collaboration? This seems designed for only one developer to work on a project with no way to roll back changes.
* What if I don't want to use the Dark online editor?
* Committing to Dark seems to be the highest level of trust you'd ever have to place on a tool or service, since you don't have control of literally any part of your Dark applications.

## Other Feedback

At first blush the online editor is snappy, fast and pretty cool. However it lacks many convenience features like the ability to resize the blocks you create to change how long lines will wrap. There seems to be no way to enter blank lines to make your code readable. And comments are just a special kind of variable declaration which makes it so they don't stand out.

Account management is still very Beta. You can't delete your unwanted canvases, rename them or duplicate them if you want to try something out. You can't configure your account profile or even change your name, email and password as far as I can see.

If I was one of the founders of Dark, I would change all my marketing to name this DarkLang not Dark. Anyone googling for future development questions about Dark will never get specific search results because the word 'dark' is so generic and will also bring up articles that mention 'dark mode'. Naming this just 'dark' will make it much harder to promote and use.

Dark has a [product roadmap](https://roadmap.darklang.com/) that mentions some of these concerns.

## Ideas For Uses

* Create mock APIs for testing my applications written in other languages.
* Fast creation of SlackBots and similar.
* Glue to join two or more other APIs together.
* Provide a wrapper for isolating or extending 3rd party APIs.
* Rapid development of demos and proofs of concept.
* API solution for mobile app development.

## Conclusion

For me... I think I will file this under: *"Looks really cool and has potential, but needs to mature. Check it out again in a year"*. :D

--
[Originally Published on Blog.SyntaxSeed.com](https://blog.syntaxseed.com/darklang-intro-and-first-impressions/)