• 0 Posts
  • 16 Comments
Joined 10 months ago
cake
Cake day: October 19th, 2023

help-circle

  • I’ll start from the last question, to me, if you don’t use elisp, don’t use emacs. To me this is why I still use it, because there is a lisp machine running under it and everything can be manipulated and configured with elisp. Otherwise there are probably better editors these days. You can obviously use it without elisp, if there’s a library or mode that you love and (thanks to the power of elisp) have not found elsewhere, but even that is limited, since you need elisp to configure and manipulate it to fit your use-case the best. And to be honest, copy-pasting stuff without understanding will take you so far and you won’t know why things don’t work when they do, like with every programming language.

    But is lisp worth learning? A definitive yes. As you found out, it’s a different animal. Not just the syntax, but the way everything works. It requires you to think differently. I often say that learning new languages mean “how does if/else work, how does for/while works” basically figure out how do all the regular tools for logic and flow control look like in that language and your mostly set, only lisp does not have those “regular tools for logic and flow control”. And on top of that, it’s based on a wholly different paradigm than what the other languages are based on. It’s a hefty task to climb and you must climb it if you want to get to the stuff that is important, like writing stuff that you can run and get results from, and that’s before we get to the real insane stuff, the true homoiconicity (here’s another word for you) of lisp, the idea that code is data is code, which is truly rare in computing (despite what some fans of other languages will tell you, there are only 2-3 actual homoiconic programming languages and lisp is the most commonly used of them all) and is very hard to wrap your head around.

    So is it worth it? yes, for two reasons. Learning languages that use different paradigms always improves your abilities since you now have more ways of thinking about stuff. Learning Erlang made me a better Javascript programmer just because Erlang has a different way of thinking about everything that C languages take for granted.

    Second, learning lisp in particular will improve you as a programmer. I don’t know why exactly (Not a CS theoretician), but I believe it has to do with the way computers actually “think”. Lisp, as its many detractors will say, is written in a way that is closely connected with the way a computer runs a program, after it’s been disassembled away all the niceties of syntax and suchlike, but before its been interpreted down to assembly. It’s the closest you get to programming in AST trees (another word for you) without actually doing that (and without going insane). Once you climb that mountain you will, guaranteed, be a better programmer, just because you will have better understanding of how is your code being run (guarantee not guaranteed).


  • That’s the point, it isn’t. Emacs is not core with plugins. You have the core engine which is C and is interpreting everything, including the lisp code that governs emacs, and you extend and manipulate that lisp code with your own.

    So first, there is not a core in the sense that most other programs see it. The core is not emacs. It’s a lisp interpreter. Geared towards e-lisp and using e-lisp in a way that creates emacs, in the sense of buffers and windows and frames etc, but it’s not “emacs” in the sense that vim’s core is the program itself. I am not that familiar with VScode architecture, and I know it runs over electron and V8 etc, but it does have the VScode “core” on top of those, which you can’t change, only tack into, with plug ins, which brings me to the next issue:

    There are no “plug ins”. Plug ins mean you attach a to b without influencing b other than using b’s resources. When you plug in a lamp, the lamp doesn’t rewrite your electricity, it just uses it. When you write lisp code, you can change fundamental elements in emacs, you can manipulate how emacs does things not just relating to your part, but to everything in emacs. You can basically rewrite emacs itself. You can’t rewrite vim or VSCode or any other editor that you use.

    I also don’t understand what is the difference between the model in the way it has been used so far to what you see now. To me it’s the same one, just different takes on the model, some more permissive, some less extensive. Just because X comes with batteries and the kitchen sink and Y comes bare bones does not change their architecture, and the idea of giving the user a scripting or configuration API to manipulate stuff while keeping the core away is as ancient as computers. That’s basically how Operating Systems and programming languages work, and a lot of programs come with this model (or at least pretend to).





  • erez@alien.topBtoEmacs@communick.newsI love emacs
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 months ago

    First, you’re imagining. Second, having to switch all day between your dark modes and the rest of the world (sites, documents et al) that are on white background is much more “fatiguing” to your eyes, but you don’t notice that because you convinced yourself that drawing colorful characters on a blackish background is better.


  • erez@alien.topBtoEmacs@communick.newsI love emacs
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 months ago

    Keep in mind that I did not mention either of those by name, you did, so you’re debating yourself rather than me. I’m just saying that making a tool, any tool, work best for your use case doesn’t mean you can’t achieve the same result with another tool, or set of tools after similar customization etc.


  • erez@alien.topBtoEmacs@communick.newsI love emacs
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 months ago

    Once you learn how to navigate, customize, workaround and enhance a system in a way that fits your need, yes, good luck using another tool that you now need to learn how to navigate, customize, workaround and enhance to use in a way that fits your needs, ha!




  • erez@alien.topBtoEmacs@communick.newsi wanna try emacs
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    Emacs is the opposite of the Unix way, as are many of the GNU tools. It’s the opposite of “each tool does one thing and does it well” and is a “one thing will do everything, sometimes well and sometimes less”. And since you already have a solution you are using, and are committed to the cargo cult of VI keybindings, then there’s no reason for you to try emacs.


  • I’m aiming at both sides. I have used a library in work that had a utf8 issue, and started digging through the issues on GitHub, only to find that each such issue was flagged as “wont fix” and the reason was 'no activity on this issue for X amount of time". Which is a tactic I would get fired for had I tried it. I pointed this out and immediately got “we-hell, Pull Requests are welcome”. Which is rather not helping. Also, turns out it’s a matter with a dependency of that library, which you only found if you went through each issue. But then again, that guy was publishing that library out of the goodness of his heart, so you can only bitch up to a certain point. It’s kinda odd because that bug caused me to waste a day and that meant I wasted my employer’s money on the issue. So this “labour of love” and voluntary effort can cost people money due to the “I’m not getting paid to do this” attitude sometimes involved with the project. IT is a double edged sword.


  • If I understand correctly, you are asking why is documentation using bad code examples that are not explanatory and/or usable?

    If so, then I believe we can exonerate the emacs community from this issue as this is an industry-wide problem. I recall trying to figure out what a .NET class do from the generic unusable examples given in MS code, and more recently trying to divine meaning from the almost usable but never truly so code examples in Angular documentation. And you’ll see that everywhere. I got used to ignore documentation and just read the code. Tests sometimes help as they are actual programs that use the stuff in question, but it does seem like writing good, usable documentation is an art form no one bothered to master. Or even apprentice in.

    There’s a reason to that, code examples are written by people who are experts in the technology they are documenting. They have no way of knowing what is needed for someone new to understand in order to use it, so they default on writing the most basic code example they can come up with. It’s a known issue and you eventually learn to live with it.

    Also, don’t bother complaining. You are getting this great tool (either emacs or Org-Mode) free and due to the great effort of its writers and maintainers (and I am always amazed at the scope of things that were created this way, it’s truly something to be proud of), so be thankful that it actually has documentation and besides, if you don’t like something, fix it and send them the patch, don’t complain! I mean, you won’t get to write that patch because you can’t understand the program due to its documentation, but hey, who said life is fair.