[HN Gopher] Emacs Lisp shorthands as namespacing system
___________________________________________________________________
Emacs Lisp shorthands as namespacing system
Author : gjvc
Score : 78 points
Date : 2022-11-27 19:18 UTC (9 hours ago)
(HTM) web link (andreyorst.gitlab.io)
(TXT) w3m dump (andreyorst.gitlab.io)
| georgeoliver wrote:
| I'm surprised Unison's approach hasn't caught on more widely.
| ISTR Joe Armstrong of Erlang was experimenting with something
| similar in a related domain,
|
| https://joearms.github.io/published/2015-03-12-The_web_of_na...
|
| https://news.ycombinator.com/item?id=2580383
|
| (The OP is a very well written article btw, nice work!)
| ahungry wrote:
| I've been using https://github.com/Malabarba/Nameless for awhile
| now - it's functionally very similar to the new Emacs shorthands
| feature.
| nonrandomstring wrote:
| For me, Python's "from library import module as myname" is
| unbeatable. I like to choose my own namespaces and assign
| whatever bits of a lib to it as I feel like. It seems robust and
| flexible.
| nerdponx wrote:
| This usage is so idiomatic and ubiquitous that you can see
| "np." or "pd." or "plt." in just about any code and assume that
| the user is using Numpy or Pandas or Matplotlib.
|
| Now that I think about it, I really should set up a "snippet"
| to type this for me: import matplotlib.pyplot
| as plt import numpy as np import pandas as pd
| soulofmischief wrote:
| I prefer JavaScript's idiomatic approach:
| import anyNamespace from 'module.js' import { subModule }
| from 'module.js' import { subModule as anyName } from
| 'module.js'
| rtpg wrote:
| the biggest problem with JS's is extremely incidental, but a
| total mess in practice. If you type from left to right it's
| impossible for auto-complete to help you with member names
| (since it can't know what module you're looking for!)
| nequo wrote:
| Python really got that right. In Haskell, it's similar:
| import qualified Foo.Bar as Baz
| smcl wrote:
| Importing a namespace under an alias exists in a few languages
| sureglymop wrote:
| Somewhat unrelated but does anyone know how this website was
| made? I like the layout and have been wanting to start a blog for
| some time, this looks perfect.
| gjvc wrote:
| This tool https://www.wappalyzer.com/ will tell you.
| the-smug-one wrote:
| Right-click -> Show source
| CharlesW wrote:
| https://andreyorst.gitlab.io/posts/2022-02-22-new-look/
|
| TLDR: Hugo + Rocinante theme (https://github.com/mavidser/hugo-
| rocinante)
| sureglymop wrote:
| Thank you a lot, exactly what I wanted to know :)
| nerdponx wrote:
| I don't like the conflation of "-" as both "word separator in the
| name" and "namespace". I prefer keeping the "/", so you would get
| "snu/lines" instead of "some-nice-string-utils/lines". Otherwise
| I think this article is great, and I don't see why more languages
| don't use this kind of system, instead of dumping all symbols in
| the imported namespace into the current namespace.
| sillysaurusx wrote:
| I went back and forth on this.
|
| Using / has one major disadvantage. You can't name macros
| w/stdin, w/stdout, w/file, etc.
|
| It's short for "with-". It's only a few characters, but it adds
| up.
|
| Admittedly it's more important in arc, where brevity is a
| feature, not a bug.
|
| On the other hand, having a full separator for the namespace is
| worthwhile. One idea I toyed with is:
|
| my-func@pkg
|
| So the namespace is on the right, not the left.
|
| But I decided this is even worse, even if it does match e.g.
| how we ssh into things.
|
| Ultimately it's hard to beat a global namespace with prefixing
| conventions.
___________________________________________________________________
(page generated 2022-11-28 05:00 UTC)