Another example might be using Emacs on a device without network access.
If we relax "can't" to include "won't", then there are casual users who might want to try Emacs but can't be bothered to set up package archives, etc. Such a user will start it up, say "What, no Python mode?", and switch to something else.
- No http/https connections
- No write access to home directory
- Internal prohibition against downloading/using something which is a "software package"
?
I mean, you don't need to really "build" anything, you just need to install the package:
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(package-initialize)
M-x package-refresh-contents
M-x package-install magit
What would happen if you did that?Any organization with high-value data has a responsibility to try not to be the next Equifax.
Programmers, sysadmins, and DB admins are excellent targets for attackers.
So, it's not actually so crazy to require that all tools be vetted by internal security teams, especially third-party extensions for Turing machines like Emacs.
I love Emacs but its architecture is a nightmare for Blue Team, and the easiest stance is definitely "no installing packages", or just "thou shalt use this IDE and no other".
Since humans default to lazy, I thought that clearly explained why the phenomenon happens.
Perhaps I should have been clearer that I don't think it's the ideal approach, even if I understand where it comes from.
There should be nothing stopping someone just copying and pasting an entire elisp source text from a website into scratch, evaluate the buffer on the spot, and have the exact same functionality as installing the package would.
I'm not saying that retrieving an external package isn't easier, but due to emacs' nature there isn't really sort of delineation based on how the elisp got into the emacs.
It is much easier to ask admin to install emacs and use defaults than to ask to install emacs and packages (and resolve problems that may happen on the way).
The company I'm an on-site (well, usually) contractor for, whose network I use at work, proxies web traffic over HTTP. It's encrypted at the proxy for HTTPS, but everything outbound from the internal network is effectively plain text.
Emacs doesn't allow packages to be installed over HTTP, so in order to use the package repositories, I have to use my phone as a hotspot.
Are you sure about that? I think that you can specify http as usual in the URL:
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
See the instructions here which go to an annoyingly extreme level of ugliness to set the protocol in a paranoid fashion: https://melpa.org/#/getting-started