Show HN: Kasaya – A scripting language and runtime for browser automation
All those kind of projects share the same flaw: it uses a DSL instead of an existing language, so tooling&#x2F;documentation&#x2F;testing&#x2F;support&#x2F;modules are going to be very weak, and 100% depending of the creator for the first years, in a domain that is already a niche.<p>It could be a library with good API instead. Or even a special env setup for an existing language with injected built-in and automatic imports.<p>Now you could argue that the goal is to have this &quot;simple DSL that looks like english&quot; so that normal people can use it.<p>This argument has existed since DSL exist, and the result is always the same:<p>- the simplicity of the language will, in the end, limits its usefulness. Not every domain is like SQL&#x2F;HTML&#x2F;CSS, where descriptive is enough. Complex domains need branches, loop, namespaces, etc. Eventually you will be forced to add features in a twisted way to something that was not designed for it and replace its simplicity with ugliness, or restrain yourself and be limited forever. See Ansible DSL for a good, or rather, horrible, example of that.<p>- end users that can&#x27;t use a normal programming language won&#x27;t suddenly become tech saavy because your DSL is simple, but their use case will never stop at simple. So they will start building complex systems as soon as they use it for real, with a limited DSL and their limited ability. The system will become a monstrosity, and you&#x27;ll have no tooling to help.<p>- successful dsl are usually not simple. Css is not. Sql is not. Html is an exception because it has no logic. This has logic.<p>- it looks so cool. It&#x27;s like candy for tech lovers. Even to me: I find it so sexy. And so people will adopt it, ignoring the arguments above. Ignoring the decades of such attempts that ended up in pain behind so many corporate firewalls. There will be many tweets at adoption to talk about how nice it is, but no blog post 2 years later to admit it was a bad idea. And then it will happen again with $new_shiny_dsl_based_tool.