If I want to write a web application for clients, does it make sense to just expose them to custom hiccup tags that are compiled into real hiccup tags on JVM? Or, does it make sense to inject just the right amount of simple eDSLs into SCI scripts that clients edit in web browser? Other clojure programmers pointed out that I want to avoid a sandboxed execution environment if I can. Does sci make sense for non-programmer clients such as marketing people? I want more perspectives on this.
> Does sci make sense for non-programmer clients such as marketing people? It depends if those marketing people are able to write Clojure, it's a Clojure interpreter after all
I guessed non-technical people can perhaps modify an already written SCI file if the injected eDSLs are simple enough, but other clojure programmers pointed out that custom hiccup tags will do.
I also guess custom hiccup tags will do the job probably.
If they just want to change some layout and some CSS properties, pure EDN is probably good enough.
It seems you got your answer then?
Well, I still prefer SCI syntax a bit because it has parentheses... for a nicer syntax.
you could also use eval in JVM Clojure, but that can be dangerous
In your direct experiences, are non-programmer clients likely to shoot themselves in their feet with SCI?
you could also build a prototype with both and see what people like best?
I guess that's a way.
It's hard to say what people will like best, I can't predict this. There's been a company who used SCI in a similar way for juridical stuff, lawyers etc.
How's the company doing?
do you mean, as a result of that decision? ;)
Yes.
I don't think the welfare of a company can be reduced to one single technical decision. And to be honest, I don't know how they are doing, I don't have this information
Can I tightly control what functions and macros go into SCI interpreter? For example, only a few functions that clients actually need right now.
yes
Someone mentioned the trouble of sandboxed execution. In your experiences, is it more trouble than compiling custom hiccup tags in your JVM server?
Try and make both prototypes, only then can you make a fair comparison between both. I can't answer your questions since I haven't gone through this exercise.
Okay. Thanks for your perspective.
As I conversed with chatgpt, I realized that if SCI eDSL and custom hiccup tags are equally constrained and just different syntaxes, then the one which emits better error messages wins. Better error messages mean better user experience. With custom hiccup syntaxes, I have malli explainers. With SCI eDSL, I can probably use malli as well, or I can use other error generation options? I don't know which one is going to emit better error messages, but the one that emits better error messages wins.
"Better error message" is a very broad description. Syntax/reader error messages? Compile/analysis time error message? Runtime error messages? I stay with my first point. Don't be lazy and actually build some prototype. Don't depend on ChatGPT or any other LLM for advice, but actually get a taste of it by building.
Yes, sir.
I think you are quite on point. I was probably just trying to be lazy.
I found https://clojurejobboard.com/remote-clojure-job/rs-remote-europe-clojure-clojurescript-engineer-remote-lifecheq-remotework.html Lifecheq is a south african company that was still using SCI on 2025 Sep 10 when the job was posted. SCI seems to be used internally by the company's business people.