reddit / emacs
Emacs as a universal front-end interface
moseswithhisbooks · 2022-03-18 03:09
​
https://preview.redd.it/te5owz9f62o81.png?width=1278&format=png&auto=webp&s=fffef89ea2df2260f473ed45c8d2cca06978157c
moseswithhisbooks · 2022-03-18 03:11
I was cleaning my [init](https://alhassy.github.io/emacs.d/) and ran into this nugget (。◕‿◕。)
arthurno1 · 2022-03-18 06:06
In my opinion, which I have shared here so many times by now, GUI Emacs frame is a supercharged TUI that does anything terminal does, but in much better way and with all extras built in (text editor, shell, multiplexer, scripting language, etc).
_viz_ · 2022-03-18 07:16
Shell and eshell are not terminal emulators, they are shells. term, ansi-term, and vterm are terminal emulators.
Hi_ItsPaul · 2022-03-18 07:22
Does anyone else have trouble tolerating org tables?
Maybe I'm too used to Google Sheets for D&D.
ketoengineer89 · 2022-03-18 09:41
Two diferent tools for different applications. They are not even comparable. The only similarity is table in their name.
Hi_ItsPaul · 2022-03-18 09:54
I was wondering what org table's application was compared to Google Sheets. They're both for spreadsheets, right?
cascanwo · 2022-03-18 10:10
Putting Doom under etc in games... smh
[Source](https://www.reddit.com/r/emacs/comments/f2c99b/you_can_play_doom_inside_emacs_using_eaf/)
thetemp_ · 2022-03-18 11:44
Your init file is a thing of beauty.
sunnyata · 2022-03-18 11:44
Org tables are fine for presenting tabular data. Although it can do basic spreadsheet functionality it wasn't created with that in mind so IMHO it is clunky at best for this purpose. (You may well get someone who says they are more productive with org tables than Libre Office or Google Sheets, and for relatively complex use cases, I'd be interested to hear the details if so.) AFAIK anything beyond calculated columns (like filtering tables in various ways, treating a table as a datasource and creating a pivot table based on it etc) requires bespoke programming, so it's longwinded and error prone compared to an app where someone did that work for you. There are spreadsheet packages designed for these tasks (spreadsheet-mode, csv-mode, others) and I think you're better off using them. Or sticking with what works for you -- despite what some will have you believe, this isn't a church :-)
LionyxML · 2022-03-18 11:50
Please, DO NOT forget about the awesome work from this guys:
[https://github.com/thefrontside/frontmacs](https://github.com/thefrontside/frontmacs)
Kind of lots of things put together with webmode, ts-tide, linters and so on. ;)
LionyxML · 2022-03-18 11:52
Also do not forget `M-x doctor` :P
ramin-honary-xc · 2022-03-18 14:22
I say it often: **Emacs is an app platform.** IMHO it is an even better app platform than the Web, Android, .NET, and whatever Apple is calling their thing these days ("iOS SDK" or something like that?). Emacs gives you direct access to your filesystem, and Lisp is a considerably more powerful language than JavaScript could ever become. If only Emacs had a more DOM-like display model, and was more efficient at animation, I'd probably never even use a web browser except to do work that absolutely required it.
nullmove · 2022-03-18 16:12
Yesterday I discovered `widget.el`. Had to do some data entry, so instead of creating HTML form or such, just used that for simple text inputs, menus, check boxes etc. Emacs now even comes with functions to interact with sqlite database, so basically covered everything I wanted.
titanofold · 2022-03-18 16:13
Org-mode augmented with Weblorg is quite nice.
lisp · 2022-03-18 16:20
Agree with everything except:
1) Scripting Language: elisp... That's gonna be a no for me, daug.
2) Email: I'd vote for notmuch.
trae · 2022-03-18 17:07
I saved this from an HN comment (slightly elided):
> Emacs is often confused as being an editor, but it's not.
> It certainly houses a few different editors, including Vim (as people will often point out eVil is Vim inside Emacs)
> Emacs is basically a text centric computing platform, built with a flavor of Lisp.
> At this point there's several thousand apps / packages.
> It used to be a joke that Emacs is an Operating System that lacks a decent text editor. These days it has several.
> The joke now should be that it lacks a decent logo and marketing department.
That "Emacs is basically a text centric computing platform, built with a flavor of Lisp." is really great way to describe emacs.
[source](https://news.ycombinator.com/item?id=19650942).
trae · 2022-03-18 17:10
I just imagined an alternative timeline where emacs is a mobile platform of choice.
/r/cyberdeck calling: https://www.reddit.com/r/cyberDeck/comments/cat2jt/retrostyled_deck_crossposted_with_rraspberry_pi/
trae · 2022-03-18 17:11
with a name like yours...why not elisp?
Hi_ItsPaul · 2022-03-18 17:59
Thank you so much for the detailed response! I've seen people use it in the bespoke programming way and oof that looked hard, even as a programmer myself.
harizvi · 2022-03-18 19:43
Two frequently used Emacs applications for me that are missing in this list are:
\- calc
\- reading ebooks with nov.el and calibredb.el
[deleted] · 2022-03-18 22:02
Evil isn’t vim. It emulates vim. It has no quickfix menu, certain vim options, etc. many things you have to use a package or write lisp for to achieve similar things in vim or neovim.
lawlist · 2022-03-19 03:08
4th from the bottom of the list. :)
arthurno1 · 2022-03-19 11:05
Yes indeed, I completely agree. One can describe Emacs in different ways, depending on the context, if one is coming to Emacs as a development platform, or as an end-user.
kun-s · 2022-03-22 07:20
Interesting how many references belong to org-mode.
MistakeNotDotDotDot · 2022-03-27 03:30
I can't speak for other lisps, but I'd take Javascript over elisp any day of the week and twice on Sundays:
- No package namespacing
- Having functions be in a separate namespace from variables
- The character type is the same as the integer type, even though these are two entirely different concepts
- The default list type is a linked list
- Printing out a hashtable gives you an ungodly mess
- [The TLS story is a mess](https://lwn.net/Articles/759370/)
- The regex syntax is unlike every other language's (not saying it's better or worse, just that the inconsistency is annoying)
- Lots of APIs like `match-string` that operate by mutating global state instead of just returning their result
Emacs has a lot of good things going for it, and some of the weak spots of the language are actually strengths when viewed as enhancing customization (using global variables means it's easier to script, advice is great, and the fact that there's no encapsulation means you can mess with private implementations if you really need to). But I think it makes a poor application development platform.
ramin-honary-xc · 2022-03-27 09:39
Yes, as an app platform, Emacs leaves a lot to be desired over more modern app platforms. That said, I simply will never like JavaScript or the Web as an an app platfrom. I would never use either JavaScript or Emacs Lisp to develop a large-scale application. It seems to me to be fairly well-acknowledged across the industry that JavaScript as a language is not suitable for developing large applications (simply from the very large number of languages that compile to JavaScript, the buzz around webassembly, and the massive amount of tooling designed to resolve JavaScript's shortcomings), and yet most large applications nowadays are built for the web platform.
I think the philosophy that Emacs is an app platform seems to be a pretty recent idea, historically Emacs has only been seen as an editor, and so people have treated it as such. But I hope this change in perception will lead to some better Emacs-like editors -- Emacs Lisp clones that are backward-compatible with Emacs Lisp but which resolve all the problems you mentioned.
There are alternative Emacs-like editors implemented in better languages like Common Lisp like [Climacs](https://climacs.common-lisp.dev/ ) which seem to be no longer maintained, there have been attempts at rewriting Emacs in Guile Scheme like [Guile Emacs](https://www.emacswiki.org/emacs/GuileEmacs ) which have fizzled out, there are more recent attempts at implementing [Emacs in Rust](https://github.com/remacs/remacs ) which isn't even a Lisp. I am really hoping Guile Emacs or Climacs see a resurrection, that or some other Lisp-based Emacs clone comes along that manages to supplant GNU Emacs. If more people would put efforts into projects like these, Emacs as a platform would be so much better than something like Electron.
But until that day comes, I'll just put-up with Emacs's various idiosyncrasies.
MistakeNotDotDotDot · 2022-03-27 21:39
remacs was intending to rewrite the *core* (which is in C) in Rust; the extension language is still elisp. I know emacs-ng adds support for using JS as an extension language like how neovim can be scripted in lua, but afaik nobody is trying to write an emacs that breaks elisp compat simply because nobody would use it.
I actually enjoy writing in typescript for my web dev projects; the biggest issues I have with it are things like a lack of operator overloading and the fact that you can't key a map on anything but object identity. But I'm a huge fan of static typing in general.
ramin-honary-xc · 2022-03-28 03:58
> but afaik nobody is trying to write an emacs that breaks elisp compat simply because nobody would use it.
Yeah, that makes sense. I mean, there are at least a few dozen decent programmer editors out there, each implemented in it's own language. I think if you are a programmer choosing an editor, you should pick one that is implemented in a language that you like to work with.
So if you like working with Rust, then remacs is great, you can contribute to the core of the Lisp interpreter in Rust, and your Emacs Lisp scripts still mostly work, which is nice. But personally, I would prefer Common Lisp, Guile Scheme, or Haskell, because those are my favorite languages.
> I actually enjoy writing in typescript for my web dev projects;
I guess I envy you, last year I got stuck working on a massive TypeScript code base that was just very poorly written. It was full of copy-pasted code everywhere, unnecessarily large React components with very complicated states, code written in a "functional" style that was completely unreadable (e.g. mapping a 200-line lambda function over a literal list with 3 elements), and all arguments to all functions were typed as either "string" or "any", so basically it was JavaScript with a bunch of useless type annotations.
But when it is done well, e.g. with the Atom editor, or with VS Code, TypeScript can be nice. It is just that unlike Haskell which mandates very rigid types for everything, TypeScript allows you to get sloppy in your typing discipline, and before you know it, your code base gradually devolves into a heap of spaghetti -- that was my personal experience anyway.
MistakeNotDotDotDot · 2022-03-28 04:21
Yeah, I more mean "nobody would use it because it wouldn't be able to use all the huge body of emacs scripts", not "nobody would use it because elisp is their favorite language".
Also, yes, in my personal projects type annotation is mandatory. I avoid `any` unless I *really* have to, any 'string enums' are typed as `type Whatever = "some" | "stuff" | "here"` so I still get typechecking benefits, and I turn on every 'strict mode' thing I can find. Working on the codebase you're talking about seems like hell. :(
I keep wanting to pick Haskell up again, tbh, but I'd need a project to use it for, and I *also* want to learn Racket so I can learn a lisp that isn't elisp...