@bglbgl gwyng 아하, 그렇군요! 인프라 구성을 선언적이지 않은 언어로 작성하는 것에 대한 우려도 조금 드는데, 그런 면에서는 어떤가요?
@hongminhee洪 民憙 (Hong Minhee) Pulumi가 TS로 선언적인 DSL을 만들어 놓았고 그걸 쓰는 식입니다. 대신 범용언어 기반이다보니 그 중간중간 필요한 못된짓을 할수있따는 장점을 취할수 있지요.
If you have a fediverse account, you can quote this note from your own instance. Search https://hackers.pub/ap/notes/019647a2-cd0c-7311-97ce-95b59e5a0696 on your instance and quote it. (Note that quoting is not supported in Mastodon.)
설정이나 명세를 튜링완전한 언어로 기술하면 안되지 않나, 튜링완전한 언어는 프로그램을 짤때 써야하지 않나란 의견이 있는데, 난 오히려 반대라고 생각한다.
설정/명세를 기술한 코드는 그걸 평가해서 어떤 값을 한번 구하면 끝이고, 임의의 입력에 대해 종료함을 보장할 필요가 없다. 그리고 그 코드의 실행은 서비스 단에서 이루어지는게 아니고, 서비스를 만들고 운영하는 과정에서 이루어지기 때문에 종료되지 않는것에 대해 훨씬 안전하다.
반대로, 실제로 돌아가는 프로그램(말이 좀 이상하지만 excuse부탁드림)이야말로 튜링완전한 언어로 짜면 안된다. 우리가 튜링완전한 언어로 개발하는 이유는 우리가 만드는 프로그램을 기술하는데 필요한 자유도가 얼만큼인지 모르고 작업해야하기 때문에 그렇다. 종료하지않는 엉터리 코드를 짤 가능성을 받아들이면서도, 당장 뭔가 만들긴해야하니까 그런 선택을 하는 것이다.
즉 튜링완전성은 메타프로그래밍을 할때만 허용되는것이 (적어도 이론적으론) 정당하다고 생각한다.
RE: https://hackers.pub/@bgl/019647a2-cd0c-7311-97ce-95b59e5a0696