sci

doojin 2026-03-23T12:24:20.644189Z

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.

borkdude 2026-03-23T12:28:40.544339Z

> 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

doojin 2026-03-23T12:29:49.331799Z

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.

doojin 2026-03-23T12:30:39.936249Z

I also guess custom hiccup tags will do the job probably.

doojin 2026-03-23T12:31:09.374679Z

If they just want to change some layout and some CSS properties, pure EDN is probably good enough.

borkdude 2026-03-23T12:31:21.970789Z

It seems you got your answer then?

doojin 2026-03-23T12:31:49.666839Z

Well, I still prefer SCI syntax a bit because it has parentheses... for a nicer syntax.

borkdude 2026-03-23T12:32:35.027629Z

you could also use eval in JVM Clojure, but that can be dangerous

doojin 2026-03-23T12:32:56.021989Z

In your direct experiences, are non-programmer clients likely to shoot themselves in their feet with SCI?

borkdude 2026-03-23T12:33:12.647969Z

you could also build a prototype with both and see what people like best?

doojin 2026-03-23T12:33:31.839099Z

I guess that's a way.

borkdude 2026-03-23T12:34:10.204599Z

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.

doojin 2026-03-23T12:34:39.868139Z

How's the company doing?

borkdude 2026-03-23T12:35:57.200159Z

do you mean, as a result of that decision? ;)

doojin 2026-03-23T12:36:02.703079Z

Yes.

borkdude 2026-03-23T12:36:39.635029Z

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

doojin 2026-03-23T12:37:55.561749Z

Can I tightly control what functions and macros go into SCI interpreter? For example, only a few functions that clients actually need right now.

borkdude 2026-03-23T12:38:07.941379Z

yes

doojin 2026-03-23T12:40:00.937719Z

Someone mentioned the trouble of sandboxed execution. In your experiences, is it more trouble than compiling custom hiccup tags in your JVM server?

borkdude 2026-03-23T12:41:32.864589Z

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.

doojin 2026-03-23T12:41:52.737279Z

Okay. Thanks for your perspective.

doojin 2026-03-23T13:46:52.724629Z

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.

borkdude 2026-03-23T13:49:08.700279Z

"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.

doojin 2026-03-23T13:49:27.901879Z

Yes, sir.

doojin 2026-03-23T13:50:43.455769Z

I think you are quite on point. I was probably just trying to be lazy.

doojin 2026-03-24T03:46:16.990549Z

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.

👍 1