You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I don't think the things I think are missing are going to be revelatory to you: I'm sure many will already be on your roadmap, or have been considered.
Formatting
I'd guess that because of the original focus on building back-ends, there was less need for formatting options within Dark. However, with the move to more explicitly support building Slack bots (great choice, by the way!), there is now a front-end to consider, even if it's mostly textual. Consequently the lack of Date and String formatting makes writing out Slack messages a little bit painful. Even some simple options here would help. As a small aside, I've found the structured editing, while normally useful, can actually hinder here. I wanted to output some text to Slack, but realised I had missed some formatting (space, newline etc). Trying to go back and add another "++" into the output line didn't work. I had to wipe away everything and start again. I've tried this again, and confirmed it happens quite a bit.
Testing
Dark is great for quick prototyping. It's easy to get something up and running quickly. When we switch away from prototyping, it doesn't have the tools I'd like to support long-lived, well-behaved systems. Trace-based development leads to a somewhat declarative style of needs: "here's the kind of message I want to send, so you can deal with it". It doesn't, however, encapsulate intended behaviour of an endpoint. Being able to send multiple messages tell you a little bit about what might be intended, but not in the same way that a test framework would. I'd like a way of writing a small amount of test code for functions, endpoints, and workers so that I know I haven't broken a behaviour I wanted at some point in the past.
Versioning
Again, not that big a deal when prototyping, but it makes me uncomfortable to not have even a simple versioning model. I don't care about branches, or PRs, or a lot of the features in a system like Git(Hub): I just want to be able to mark a known safe point as working with a short comment so I know where I got to, and the ability to clean the slate back to that point. That gives me the confidence to continue building, knowing I can always wipe away my mistakes.
3rd Party Packages
Being able to reuse and share is key to any language growth. If someone else has already written some function I want, like formatting, I want to be able to just pull it in. That requires some method of discoverability too: a repository of packages with good documentation.
Function Documentation
The function documentation is quite sparse. As a (lapsed) Haskell dev, it's fairly familiar to me, but some examples of usage would help a lot of the functions.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
A user says:
Beta Was this translation helpful? Give feedback.
All reactions