envd icon indicating copy to clipboard operation
envd copied to clipboard

discussion(lang): Python or Starlark

Open gaocegege opened this issue 3 years ago โ€ข 12 comments

Maybe we can also support python SDK for envd.

gaocegege avatar May 30 '22 06:05 gaocegege

What's about nix?

Xuanwo avatar Jun 02 '22 08:06 Xuanwo

Nix is too hard to learn for data scientists, I think.

gaocegege avatar Jun 02 '22 08:06 gaocegege

/cc @Thrimbda

gaocegege avatar Jun 02 '22 08:06 gaocegege

The learning curve of nix is too steep. We also found an interesting project https://github.com/maxmcd/bramble using starlark as the frontend language for nix.

VoVAllen avatar Jun 02 '22 08:06 VoVAllen

Actually, I don't think Nix is a good choice, it's a little bit hard to use, even for the developer.

Python or Lua would be better, I think

Zheaoli avatar Jun 07 '22 08:06 Zheaoli

I really love the concepts of Nix. But it is too hard.

Maybe we could refer to the design of Nix(OS) in some degree.

gaocegege avatar Jun 07 '22 08:06 gaocegege

It's also valuable to take sbt a look: https://www.scala-sbt.org/

Xuanwo avatar Jun 07 '22 09:06 Xuanwo

@Xuanwo

I heavily used scala when I was at the university. And the sbt makes me suffer. :smile:

I am wondering which part you think sbt is great.

gaocegege avatar Jun 07 '22 10:06 gaocegege

https://docs.earthly.dev/ Earthly seems cool too!


I am wondering which part you think sbt is great.

Honestly, I know very little about sbt, just FYI (this is why I said take a look).

Xuanwo avatar Jun 12 '22 13:06 Xuanwo

Yep, if you read the readme of earthly, you will find that the graph

is learnt from earthly readme.

gaocegege avatar Jun 12 '22 13:06 gaocegege

One question is that as we support more OS and languages (e.g. R language), does it still make sense to use Starlark? We may still be fine since Starlark is simple enough.

terrytangyuan avatar Jun 12 '22 14:06 terrytangyuan

I suggest starlark since we can provide extensible syntax to users. Then they can use their own func without forking envd.

load("user-defined-func")
user-defined-func(xxx)

Just like https://github.com/tilt-dev/tilt-extensions or Bazel does.

gaocegege avatar Jun 12 '22 14:06 gaocegege

I am closing the issue. But feel free to leave comments if there is any problem.

gaocegege avatar Oct 07 '22 12:10 gaocegege