6 ms·
I always get discouraged by the fact that I'd have to buy-in to the Lisp language to even get going with Emacs. It just doesn't compete with the ease-of-use of
by oxff 4y ago
I always get discouraged by the fact that I'd have to buy-in to the Lisp language to even get going with Emacs. It just doesn't compete with the ease-of-use of data / declarative configuration of VSCode's JSON approach, plus it takes me trivial amount of time to have, say, Node development environment running inside a container with VSCode. I don't even know if you can do that with Emacs to begin with.
- BeetleB 4y ago> I always get discouraged by the fact that I'd have to buy-in to the Lisp language to even get going with Emacs. You can't be further from the truth. I was a power Emacs user for almost a decade with virtually no Elisp knowledge. I could set variables, but as an example, couldn't write a loop or function. Of course, once you know elisp, you'll find excuses to use it.
- anthk 4y agoEmacs comes with an elisp guide I think. https://www.gnu.org/software/emacs/manual/html_node/eintr/index.html https://www.gnu.org/software/emacs/manual/html_node/eintr/in...
- midislack 4y agoYou can learn enough lisp to get started in fifteen minutes if you already know some other computer programming language.
- froh 4y agoDo you mean "remote development", ssh/scp-ing with the container? I did remote development with emacs in the late 1990s so slightly I'm confused what you consider so special about working with containers?
- heywoodlh 4y ago> Do you mean "remote development", ssh/scp-ing with the container? I think they are referring to the integration of VSCode with Docker. I.E. build, deploy and run your project in a clean container environment quickly using a workflow that is intuitive to VSCode users. That being said, I know for me it would be fairly trivial to workout this same type of integration for myself with Vim. Although I am not an Emacs user I am positive it wouldn't be difficult to do something similar. I don't really see this as a feature I would ever care to implement or find important for myself. EDIT: to be clear, I am a Vim user and do not find VSCode intuitive at all -- but I have seen how it seems to really work well for a lot of people
- morelisp 4y agoEmacs uses the same mechanism to work inside a container as it does to work over SSH, which is also the same mechanism it uses to work as a different user on the same machine, and pretty much anything you can get something FS/shell-like on. Multiple container runtimes, k8s clusters, git repositories, etc. It's essentially a full VFS layer, although (like most VFS layers) it's clunky if you try to compose certain things. E.g. remote debugging isn't going to work on your HDFS cluster... https://www.gnu.org/software/emacs/manual/html_node/tramp/index.html https://www.gnu.org/software/emacs/manual/html_node/tramp/in... https://www.gnu.org/software/emacs/manual/html_node/tramp/Customizing-Methods.html https://www.gnu.org/software/emacs/manual/html_node/tramp/Cu...
- ParetoOptimal 4y agoI posted how to do it without ssh using docker-tramp elsewhere in thread FYI.
- grumpyprole 4y agoThe average Emacs user writes occasional lisp to customise its behaviour. I don't know any VS Code user that writes JavaScript to customise it. VS Code obviously does have larger mindshare and that does bring some very polished commercial plugins.
- bryanrasmussen 4y agoI did write some brackets customization, but then I went to VS Code because of performance issues and figured, damn, I'll just stick with the default.
- baby 4y agoThat's one of my issue with OCaml as well. All the config is using some made-up language that looks like lisp (with no extension file)
- eadmund 4y ago> It just doesn't compete with the ease-of-use of data / declarative configuration of VSCode's JSON approach What‽ S-expressions are head-and-shoulders better at declarative configuration than JSON. Compare these two options (the JSON is from https://cloud.google.com/appengine/docs/admin-api/creating-config-files https://cloud.google.com/appengine/docs/admin-api/creating-c...): { "deployment": { "files": { "example-resource-file1": { "sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/example-resource-file1" }, "images/example-resource-file2": { "sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/images/example-resource-file2" }, } }, "id": "v1", "handlers": [ { "urlRegex": "/.*", "script": { "scriptPath": "example-python-app.py" } }, ], "runtime": "python27", "threadsafe": true, } vs. (app (deployment (files (example-resource-file-1 "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/example-resource-file1") (images/example-resource-file2 "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/images/example-resource-file2"))) (id v1) (handlers ("/.*" (script "example-python-app.py"))) (runtime python27) (threadsafe true)) And that's just a naïve translation — a more diligent reinterpretation would be even better. Still, even the relatively-thoughtless translation is demonstrably better, easier to grok and think about.
- oxff 4y agoI might just be legitimately stupid. I find the JSON immediately readable.
- ParetoOptimal 4y agoIts just familiarity. Given equal experience with reading json data and lisp data you'd almost certainly prefer the much shorter (but lossless) lisp data.
- ParetoOptimal 4y ago> to buy-in to the Lisp language to even get going with Emacs. It just doesn't compete with the ease-of-use of data / declarative configuration of VSCode's JSON approach, hmm... do you know about M-x customize ? > Node development environment running inside a container with VSCode. I don't even know if you can do that with Emacs to begin with. Install docker-tramp.el and then `C-x C-f /docker:image_name: RET` to open a dired buffer in the container. `M-x shell RET` for a shell in container. Use this often? Make a bookmark with `C-x r m bookmark name RET`, then next time get to it from your bookmark list accessible with `C-x r b`.
- patrick451 4y agoI guess this just all opinion on both sides here, but personally I find the declarative JSON approach to a huge turn-off. I dislike json for anything I have to write and maintain manually. And I find most anything declarative to be rather miserable. Sooner or later, you want some kind of logic, so end up with these bizantine DSLs where doing something as basic as a conditional feels like putting a man on the moon. From terraform's HCL to ROS launch files, I have yet to meet a declarative framework that actually makes sense.