Discussion:
Where is Emacs Lisp taught ?
Jean-Christophe Helary
2018-10-24 15:23:11 UTC
Permalink
I'm trying to gather information about Emacs Lisp and specifically about where it is taught (bootcamps/universities, etc.)

Has anybody information on that?

Jean-Christophe Helary
-----------------------------------------------
http://mac4translators.blogspot.com @brandelune
Emanuel Berg
2018-10-24 16:02:22 UTC
Permalink
Post by Jean-Christophe Helary
I'm trying to gather information about Emacs
Lisp and specifically about where it is taught
(bootcamps/universities, etc.)
Has anybody information on that?
I don't think that Emacs Lisp in particular is
thought anywhere, but Lisp is thought at
universities around the world, sometimes as
part of courses in "functional programming",
where other languages might be included as
well, e.g. Haskell and Erlang (perhaps
sometimes SML).

I did such a course at UU in 2013-02-01 - it
was called "Advanced Functional Programming".

The Lisp wasn't Elisp tho but CL with the
SBCL compiler.

And I think it is better to teach CL than
Elisp, in all honesty...
--
underground experts united
http://user.it.uu.se/~embe8573
Garreau\, Alexandre
2018-10-24 22:24:49 UTC
Permalink
Post by Emanuel Berg
Post by Jean-Christophe Helary
I'm trying to gather information about Emacs
Lisp and specifically about where it is taught
(bootcamps/universities, etc.)
Has anybody information on that?
I don't think that Emacs Lisp in particular is
thought anywhere, but Lisp is thought at
universities around the world, sometimes as
part of courses in "functional programming",
where other languages might be included as
well, e.g. Haskell and Erlang (perhaps
sometimes SML).
Until then I heard they teached scheme from college 2nd year in the
capital of the region (racket I guess, unless it’s mit-scheme), and
everywhere else afaik it’s OCaml in France (maybe nationalism?).
Post by Emanuel Berg
And I think it is better to teach CL than Elisp, in all honesty...
I am not sure. Elisp is often to be considered a bad language, but it
has the somewhat rare and paradoxal double advantage (peculiar to lisp,
but more extreme here) of both having a simple and naive implementation,
and yet being quite high level and extremely close to I/O. It also is
quite much used (I bet its usage proportion is comparable to CL and
scheme united).

Those are obvious advantages when learning programming, and are main
reasons why so far I saw stupidities such as using javascript, (damn)
VisualBasic, or python, taught to students for learning programming:
easy GUI, very imperative style, ability to do more or less functional
stuff.

But in reality, what is important is not GUI, but easy access to I/O (so
to easily develop concrete software that will solve concrete problems so
to better discover how programming is useful), and usage potential:
elisp, unlike scheme so far, has many interesting and powerful libraries
for interacting with the internet, files, keyboard, screen, and these
are extremely easy to use, compared to SDL C programming, VB GUI
programming, GTK interface usage, or even shellscripts sometimes.

I believe, especially in first year, what is important is give to
students what will make them want to pursue their studies, and, if they
fail or stop them, to keep programming stuff. So they need an
environment regularly giving them interesting practical problems, and
making them easy to solve. In this respect, unless using some bad
language such as python or javascript, differently bad languages such as
elisp and bash are going to be way more useful and simple to learn and
not to forgot.

I’d like to see some course introduce “emacs macros”, then some lisp
config, then progressively teach people how to program without them even
knowing it, like I saw it happened to some people before (like first
Gosling Emacs user, beside Gosling himself, iirc). It would be cool.
We need more programming literacy in general population.
Jean-Christophe Helary
2018-10-24 23:30:21 UTC
Permalink
I am really asking about Emacs Lisp, not about any other Lisp dialect.

If it is included in a course on Lisp as a way to manipulate Emacs it's good, but that's really what I want to know.

Jean-Christophe
Post by Garreau\, Alexandre
Post by Emanuel Berg
Post by Jean-Christophe Helary
I'm trying to gather information about Emacs
Lisp and specifically about where it is taught
(bootcamps/universities, etc.)
Has anybody information on that?
I don't think that Emacs Lisp in particular is
thought anywhere, but Lisp is thought at
universities around the world, sometimes as
part of courses in "functional programming",
where other languages might be included as
well, e.g. Haskell and Erlang (perhaps
sometimes SML).
Until then I heard they teached scheme from college 2nd year in the
capital of the region (racket I guess, unless it’s mit-scheme), and
everywhere else afaik it’s OCaml in France (maybe nationalism?).
Post by Emanuel Berg
And I think it is better to teach CL than Elisp, in all honesty...
I am not sure. Elisp is often to be considered a bad language, but it
has the somewhat rare and paradoxal double advantage (peculiar to lisp,
but more extreme here) of both having a simple and naive implementation,
and yet being quite high level and extremely close to I/O. It also is
quite much used (I bet its usage proportion is comparable to CL and
scheme united).
Those are obvious advantages when learning programming, and are main
reasons why so far I saw stupidities such as using javascript, (damn)
easy GUI, very imperative style, ability to do more or less functional
stuff.
But in reality, what is important is not GUI, but easy access to I/O (so
to easily develop concrete software that will solve concrete problems so
elisp, unlike scheme so far, has many interesting and powerful libraries
for interacting with the internet, files, keyboard, screen, and these
are extremely easy to use, compared to SDL C programming, VB GUI
programming, GTK interface usage, or even shellscripts sometimes.
I believe, especially in first year, what is important is give to
students what will make them want to pursue their studies, and, if they
fail or stop them, to keep programming stuff. So they need an
environment regularly giving them interesting practical problems, and
making them easy to solve. In this respect, unless using some bad
language such as python or javascript, differently bad languages such as
elisp and bash are going to be way more useful and simple to learn and
not to forgot.
I’d like to see some course introduce “emacs macros”, then some lisp
config, then progressively teach people how to program without them even
knowing it, like I saw it happened to some people before (like first
Gosling Emacs user, beside Gosling himself, iirc). It would be cool.
We need more programming literacy in general population.
Jean-Christophe Helary
-----------------------------------------------
http://mac4translators.blogspot.com @brandelune
Van L
2018-10-25 03:31:49 UTC
Permalink
Post by Jean-Christophe Helary
If it is included in a course on Lisp as a way to manipulate Emacs it's good, but that's really what I want to know.
The Big Data getting bigger and bigger as times passes;
and, that data won’t fit in Microsoft’s Office apps, for example, Excel,
even if on vdi in the cloud belonging to Nvidia streaming at 15fps,
I think it is important to democracy that journos know Lisp, but that is my 2c only.
Emanuel Berg
2018-10-25 19:01:57 UTC
Permalink
Post by Garreau\, Alexandre
Elisp is often to be considered a bad
language
By whom? Elisp is not considered a bad
language. It is just another Lisp dialect.
I wouldn't recommend it for an industrial style
project - Common Lisp, rather - but for Emacs
purposes it is great and not that different at
all from many other Lisps that are around.

The reason there are so many Lisps is that it
is so easy to do, just the REPL and you have
it. Not that there is anything wrong with all
the other dialects already there. Basically it
is all just Lisp.

And a note on university education.
There aren't really courses on specific
languages anymore, if there ever was (?).
The courses have names that denotes different
themes or aspects of computers/computing, and
then you do stuff with tools and languages to
fit the purpose.

So one course is called "Imperative and OO
Programming", and then you do C (imperative)
and C++ (OO); another course is
"Database Management" and you do SQL; another
is AI and *there* you might do Lisp again (I
forgot about that when I only mentioned
functional programming); with
"Operating Systems" you do C again, maybe even
some assembler language, and bash; and so on
and so forth.

So even if you don't find the word "Lisp"
anywhere doesn't mean it isn't taught
anywhere/-longer. There is hope :)
--
underground experts united
http://user.it.uu.se/~embe8573
Garreau\, Alexandre
2018-10-26 11:43:03 UTC
Permalink
Post by Garreau\, Alexandre
Elisp is often to be considered a bad language
By whom? Elisp is not considered a bad language. It is just another
Lisp dialect. I wouldn't recommend it for an industrial style project
- Common Lisp, rather - but for Emacs purposes it is great and not
that different at all from many other Lisps that are around.
By some people on EmacsWiki at least:
<https://www.emacswiki.org/emacs/WhyDoesElispSuck>
<https://www.emacswiki.org/emacs/EmacsLispLimitations>

What I’ve heard personally is about inconsistency in the language as a
library/interface, and slowness due to naive implementation of lisp,
absence of compiler, commitment to a truely maximally dynamic
architecture, and simplicity (you can’t extend the reader for instance,
contrarily to both cl and TeX).

Beside that (therefore including emacs-specific features), Emacs Lisp is
partially compatible with Common Lisp and I’ve already heard of
applications working almost completely out-of-the-box with no
modification by being evaluated by both Emacs and a Common Lisp
compiler/interpreter.

It is, I believe, in expressivity, still a better language than most
languages, such as javascript, C, or in speed too (as well as
expressivity), probably better than python, and “some old very bad
compilers” I heard (how much compared to java? might be impressive).
But compared to quite unknown languages better known to lispers than to
the average programer, such as FP (maybe APL?), Scheme, CL, Haskell, it
certainly lacks stuff.
And a note on university education. There aren't really courses on
specific languages anymore, if there ever was (?). The courses have
names that denotes different themes or aspects of computers/computing,
and then you do stuff with tools and languages to fit the purpose.
I often feel that’s more an excuse to invisibilize vendor lock-in (even
when only caused by, at least, habits and interfaces), because in the
end you have to spend time with a language, you have your preferences,
and these change a lot the kind of errors students will do. So your
course *will* in the end be tailored by a language, except if it’s
purely theoric, and then it’s bad because harder to grasp, or accepting
arbitrary languages from students, which then can demand an awful
quantity of work to correct if only one student have an unusual and
unknown language.

For instance, I have a “functional programming” course, which is in
ocaml, like almost everywhere I saw in France, because “they don’t know
ocaml” and “dislike lisp because too much parentheses”. And in it at
some point we did 80% of imperative programming, because the Graphics
Ocaml API is purely imperative, so I ended rewriting the whole API in
functional style so to try benefiting purely functional programming.
So in the end it’s not a real “functional programming” course, it is a
fake name, the real object of the course is “ocaml programming”.
So even if you don't find the word "Lisp" anywhere doesn't mean it
isn't taught anywhere/-longer. There is hope :)
Of course, but even looking at the courses *content* lisp is not that
popular, compared to C and python… or C++… or Java …or even javascript
and php separately maybe (taught united they certainly win).
Emanuel Berg
2018-10-26 13:53:19 UTC
Permalink
Post by Garreau\, Alexandre
It is, I believe, in expressivity, still
a better language than most languages, such
as javascript, C
Lisp is different from these languages. So it
is difficult to compare it to any of them. C is
a basic, fast, robust language which is suited
for most down-to-earth things, like the OS and
most Unix (GNU) tools you are probably using
right now (as well as Emacs, for that matter).
The spread of C and UNIX/Unix are
interconnected to a high degree.

JavaScript, I've heard, isn't what it once was,
and maybe it even shares some features with
Lisp today. But it isn't Lisp. Lisp is like the
Pythagoras' theorem of computing. So it
doesn't lend itself to language wars.
Post by Garreau\, Alexandre
So in the end it’s not a real “functional
programming” course, it is a fake name, the
real object of the course is “ocaml
programming”.
These paradigms (imperative programming,
functional programming, etc.) are more like
models for your mind to start thinking in
certain ways, i.e. to enhance your
understanding. They aren't really instruction
booklets what to do. Lisp were there before
them and if you want to, you can program in any
style with Lisp. Perhaps the language in itself
inclines naturally toward a more functional
style, but even that is optional.
--
underground experts united
http://user.it.uu.se/~embe8573
Stefan Monnier
2018-10-26 15:41:06 UTC
Permalink
Post by Garreau\, Alexandre
What I’ve heard personally is about inconsistency in the language as a
library/interface, and slowness due to naive implementation of lisp,
absence of compiler, commitment to a truely maximally dynamic
architecture, and simplicity (you can’t extend the reader for instance,
contrarily to both cl and TeX).
BTW, regarding reader macros, the reason why I opposed it was not
"simplicity" but because I consider it to be a misfeature in the form
it's done in CL and TeX, and even with alternative designs there's still
the issue of the security impact to let `read` run arbitrary code.


Stefan
Garreau\, Alexandre
2018-10-27 10:50:43 UTC
Permalink
Post by Stefan Monnier
Post by Garreau\, Alexandre
What I’ve heard personally is about inconsistency in the language as a
library/interface, and slowness due to naive implementation of lisp,
absence of compiler, commitment to a truely maximally dynamic
architecture, and simplicity (you can’t extend the reader for instance,
contrarily to both cl and TeX).
BTW, regarding reader macros, the reason why I opposed it was not
"simplicity" but because I consider it to be a misfeature in the form
it's done in CL and TeX,
I think I missed the mentioned thread… can you point me to it? or was it
the one on fancy quotes (then it’s not that much developed, was it?)?
Post by Stefan Monnier
and even with alternative designs there's still the issue of the
security impact to let `read` run arbitrary code.
any dynamically modifiable function, that is, afaik, any lisp non-core
function, can already be modified to do that, and if it’s done to
automatically execute unsafe and/or not trustworthy code, that’s an user
(or whoever changed it to do so) error, isn’t it?

so how this is more important for `read' than other I/O (`print',
`message', `minibuffer-message'…) or language (`eval', `apply',
`apply-partially'…) functions?
Drew Adams
2018-11-14 23:27:55 UTC
Permalink
To come back to the question about learning programming
through Emacs and Emacs Lisp, I happened to reread this
RMS article today:

"EMACS: The Extensible, Customizable Display Editor"
This paper was written by Richard Stallman in 1981 and
delivered in the ACM Conference on Text Processing.[1]

Section "Blue Sky"[2] says this, apropos:

The programmable editor is an outstanding opportunity to learn to program! A beginner can see the effect of his simple program on the text he is editing; this feedback is fast and in an easily understood form. Educators have found display programming to be very suited for children experimenting with programming, for just this reason (see LOGO).

Programming editor commands has the additional advantage that a program need not be very large to be tangibly useful in editing. A first project can be very simple. One can thus slide very smoothly from using the editor to edit into learning to program with it.

----
[1] https://www.gnu.org/software/emacs/emacs-paper.html
[2] https://www.gnu.org/software/emacs/emacs-paper.html#SEC29
Stefan Monnier
2018-11-15 03:08:12 UTC
Permalink
Post by Drew Adams
Programming editor commands has the additional advantage that a program need
not be very large to be tangibly useful in editing. A first project can be
very simple. One can thus slide very smoothly from using the editor to edit
into learning to program with it.
Of course, after 30 years of development, most of the things a beginner
will want has already been coded up, so the beginner's reaction nowadays
is to look for a package which provides the thing he's longing for.
Missing this opportunity to learn to hack along the way.


Stefan
Drew Adams
2018-11-15 04:47:34 UTC
Permalink
Post by Stefan Monnier
Of course, after 30 years of development, most of the things a beginner
will want has already been coded up, so the beginner's reaction nowadays
is to look for a package which provides the thing he's longing for.
Missing this opportunity to learn to hack along the way.
Yes, and there's a lot more that's changed in
those 30 years. Still the basic lesson holds.
t***@tuxteam.de
2018-11-15 08:04:09 UTC
Permalink
Post by Stefan Monnier
Post by Drew Adams
Programming editor commands has the additional advantage that a program need
not be very large to be tangibly useful in editing. A first project can be
very simple. One can thus slide very smoothly from using the editor to edit
into learning to program with it.
Of course, after 30 years of development, most of the things a beginner
will want has already been coded up, so the beginner's reaction nowadays
is to look for a package which provides the thing he's longing for.
A beginner nowadays will scream "Eeek! Text! What is this?" (yeah, very
much tongue in cheek ;-P

Actually, I (as an oldtimer) have the pleasure to meet a very diverse
bunch of "beginners", some of which really enjoy poking at things the
same way it has ever been. For those, Emacs is always a temptation...

One of the biggest assets of Emacs is that you not only can hack at
it, but that it tells you the way (the Lisp machine heritage, I suppose).
Post by Stefan Monnier
Missing this opportunity to learn to hack along the way.
Hm. As of late (perhaps it's the beginning of dementia?) I rather have
the impression that things haven't changed that much. Of course, being
a "professional programmer" has become way more boring, nowadays you
just stick components together without knowing too much about how they
work [1]. But hacker mentality somehow survives, it's just that the
percentage of hackers needed in the field of software munging (I don't
dare call it "engineering", yet) is shrinking, as it is to be expected
in a maturing field. At least, in our current social context.

Phew :-)

[1] http://lambda-the-ultimate.org/node/5335
(I can't find the original reference, but the discussion there
might give you an idea)

Cheers
-- tomás
Bob Proulx
2018-11-15 20:01:40 UTC
Permalink
Post by Stefan Monnier
Post by Drew Adams
Programming editor commands has the additional advantage that a program need
not be very large to be tangibly useful in editing. A first project can be
very simple. One can thus slide very smoothly from using the editor to edit
into learning to program with it.
Of course, after 30 years of development, most of the things a beginner
will want has already been coded up, so the beginner's reaction nowadays
is to look for a package which provides the thing he's longing for.
Missing this opportunity to learn to hack along the way.
I remember a master carpenter who said when new people came to him
applying for a carpenter job that he would ask them to build two
sawhorses by way of interview. By their work and results he could
judge if they were competent enough to hire or not. The task is one
that can be easily accomplished by someone trying to hire on as a
carpenter in a short amount of time. And sawhorses are always useful
to have around a job site.

I have often felt that in recent years we have lost the idea that a
tool builder should build their own tools.

Bob
Gene
2018-11-17 15:41:57 UTC
Permalink
Post by Drew Adams
To come back to the question about learning programming
through Emacs and Emacs Lisp, I happened to reread this
"EMACS: The Extensible, Customizable Display Editor"
This paper was written by Richard Stallman in 1981 and
delivered in the ACM Conference on Text Processing.[1]
<snip>
Post by Drew Adams
Educators have found display programming to be very suited for
children experimenting with programming, for just this reason (see LOGO).
`Display programming'?
Really?

Now we know why the venerable Richard Stallman's name was not listed as a co-author of Turtle Geometry.

ref: https://duckduckgo.com/?q=Turtle+Geometry+(book)

I see no movement of either Scratch or Snap! to promote either the translation or re-presentaion of their pixel-based `display'
-- as in `display programming' --
into `cell based' -- EG `text' -- `display programming'.

Yet emacs does support SVG, which, like logo, is a Vector-based form of `display' which most of us would call `graphics';
so it would seem that SVG *might* be used to represent the line segments produced by turtle graphics via Logo, Scratch, and Snap!.

ref: https://duckduckgo.com/?q=emacs+SVG

Through this search I just discovered the possibility of SVG graphics being inlined in org-mode files is some cases, depending on the OS emacs is running atop.

https://emacs.stackexchange.com/questions/17545/inline-svgs-in-org-mode

`Display Programming' ... humpf!

G
Post by Drew Adams
----
[1] https://www.gnu.org/software/emacs/emacs-paper.html
[2] https://www.gnu.org/software/emacs/emacs-paper.html#SEC29
Francis Belliveau
2018-11-17 17:39:34 UTC
Permalink
I am running emacs Version 26.1 (9.0) on OSX 10.13.6
I know that I downloaded and installed this earlier this year and have not used Java-mode, or c-mode, with this version until today.

When I try entering Java-mode I get an error indicating that there is a problem, with a key-map. This happens with c-mode also. Clearly there is something wrong with the install, but I have no clue where to look for the problem.

Setting debug-on-error provides the following information:

Debugger entered--Lisp error: (wrong-type-argument keymapp nil)
define-key(nil "\003\005" c-macro-expand)
autoload-do-load((autoload "cc-mode" 889279 t nil) java-mode)
command-execute(java-mode record)
execute-extended-command(nil "java-mode" "java-mode")
funcall-interactively(execute-extended-command nil "java-mode" "java-mode")
call-interactively(execute-extended-command nil nil)
command-execute(execute-extended-command)

Any help will be appreciated.

Thanks,
Fran
Eli Zaretskii
2018-11-17 17:51:12 UTC
Permalink
Date: Sat, 17 Nov 2018 12:39:34 -0500
I am running emacs Version 26.1 (9.0) on OSX 10.13.6
I know that I downloaded and installed this earlier this year and have not used Java-mode, or c-mode, with this version until today.
When I try entering Java-mode I get an error indicating that there is a problem, with a key-map. This happens with c-mode also. Clearly there is something wrong with the install, but I have no clue where to look for the problem.
Debugger entered--Lisp error: (wrong-type-argument keymapp nil)
define-key(nil "\003\005" c-macro-expand)
autoload-do-load((autoload "cc-mode" 889279 t nil) java-mode)
command-execute(java-mode record)
execute-extended-command(nil "java-mode" "java-mode")
funcall-interactively(execute-extended-command nil "java-mode" "java-mode")
call-interactively(execute-extended-command nil nil)
command-execute(execute-extended-command)
Any help will be appreciated.
Does "M-x list-load-path-shadows RET" give any clue?
Francis Belliveau
2018-11-18 12:34:40 UTC
Permalink
No, There is only one "shadow" listed and that is "sort". Getting rid of that did not help.
Post by Eli Zaretskii
Date: Sat, 17 Nov 2018 12:39:34 -0500
I am running emacs Version 26.1 (9.0) on OSX 10.13.6
I know that I downloaded and installed this earlier this year and have not used Java-mode, or c-mode, with this version until today.
When I try entering Java-mode I get an error indicating that there is a problem, with a key-map. This happens with c-mode also. Clearly there is something wrong with the install, but I have no clue where to look for the problem.
Debugger entered--Lisp error: (wrong-type-argument keymapp nil)
define-key(nil "\003\005" c-macro-expand)
autoload-do-load((autoload "cc-mode" 889279 t nil) java-mode)
command-execute(java-mode record)
execute-extended-command(nil "java-mode" "java-mode")
funcall-interactively(execute-extended-command nil "java-mode" "java-mode")
call-interactively(execute-extended-command nil nil)
command-execute(execute-extended-command)
Any help will be appreciated.
Does "M-x list-load-path-shadows RET" give any clue?
Francis Belliveau
2018-11-18 15:32:59 UTC
Permalink
All,
At this point I must apologize to the list here for my initial question. It seems that I broke my cardinal rule to check customizations for issues before resorting to asking a question here.
Eli's suggestion cause me to realize that I had forgotten to check all my customizations when I installed this new version some months back.
As it turns out there is a piece of code in one of my customizations that is the culprit.

(if (need-extra-port-fixes-p)
(progn
(defvar c-mode-map ()
"Keymap used in c-mode buffers.")

;; c-inside-parent-p was taken from c-mode.el of emacs-19.30
;; because it loads cc-mode.el which doesn't have this function.
(defun c-inside-parens-p ()
(condition-case ()
(save-excursion
(save-restriction
(narrow-to-region (point)
(progn (beginning-of-defun) (point)))
(goto-char (point-max))
(= (char-after (or (scan-lists (point) -1 1) (point-min))) ?\()))
(error nil)))
))

I can see a couple of funny things here so I am back here asking some better questions. You can assume that (need-extra-port-fixes) is true, since this is causing a problem, but that part of the code is not important.

First, I am not sure about the comment that mentions c-inside-parent-p, I assume that is a typo and what I am trying to do is "import" this function from a previous version.
This clearly runs while loading a custom package that relies heavily on knowing if "point" is within parentheses.
I expect that c-mode has yet to be initialized when this runs and some portion of behavior has changed with regard to c-mode-map being created by this code and then later used when c-mode is actually initialized.

Second thing is why would such code be putting this defun into c-mode-map without any keystroke?

Third, is there a newer function that I can use in place of this?
I have clearly not spent any time digging deep into elisp in a long time and therefore do not know what has been developed

Looking forward to learning more.
Thanks for your help.

Fran
Post by Francis Belliveau
No, There is only one "shadow" listed and that is "sort". Getting rid of that did not help.
Post by Eli Zaretskii
Date: Sat, 17 Nov 2018 12:39:34 -0500
I am running emacs Version 26.1 (9.0) on OSX 10.13.6
I know that I downloaded and installed this earlier this year and have not used Java-mode, or c-mode, with this version until today.
When I try entering Java-mode I get an error indicating that there is a problem, with a key-map. This happens with c-mode also. Clearly there is something wrong with the install, but I have no clue where to look for the problem.
Debugger entered--Lisp error: (wrong-type-argument keymapp nil)
define-key(nil "\003\005" c-macro-expand)
autoload-do-load((autoload "cc-mode" 889279 t nil) java-mode)
command-execute(java-mode record)
execute-extended-command(nil "java-mode" "java-mode")
funcall-interactively(execute-extended-command nil "java-mode" "java-mode")
call-interactively(execute-extended-command nil nil)
command-execute(execute-extended-command)
Any help will be appreciated.
Does "M-x list-load-path-shadows RET" give any clue?
Francis Belliveau
2018-11-27 01:06:55 UTC
Permalink
I know that I am likely in the minority, but I find all those colors in my code distracting so I wish to turn it all off.
The documentation says how to turn it on, but that is the default and my attempts to turn it off have met with failure.

First, I am running a pre-built download of emacs Version 26.1 (9.0) on OS-X Version 10.13.6

My first attempt was to place the line
(global-font-lock-mode nil)
in my .emacs file. That did not work.

Then I placed it into my c-initialization-hook function.
At first, that seemed to work for a .h file, but not a .cpp, or .java, file. What is strange here is that both the .h and .cpp claim to be running "C++ mode".
However, it seems to function differently depending on the order that files are loaded. The first file opened (.h, .cpp or .java) is not colored, but the next two are colorized.

At this point I am confused since this should not be a toggling function call, and it should only be getting called once any way.

I had also placed it into the various "load each time" hooks with funny results that could have also been due to the order that I was loading files.

The documentation seems to indicate that just putting it in my .emacs file should be all that is necessary to take effect globally, but since it does not seem to work that way I am asking what is the correct mechanism to turn this off?

Your help will be greatly appreciated.
Fran
Stefan Monnier
2018-11-27 02:38:27 UTC
Permalink
Post by Francis Belliveau
My first attempt was to place the line
(global-font-lock-mode nil)
in my .emacs file. That did not work.
Of course not: a nil argument turns it on, as the docstring says. Try

(global-font-lock-mode -1)

But personally I don't like colors either but kept font-lock:
I simply changed the faces to use bold/grey/italics instead of colors.


Stefan
Francis Belliveau
2018-11-30 21:50:23 UTC
Permalink
First: Thank you Stefan for your answer.

I will endeavor to rerun my experiments and document the results in a more scientific manner.

To be clear, what I am trying to do is eliminate the colors being applied to text in all my files. My understanding from the documentation is that if I add (global-font-lock-mode -1) to my .emacs file before I load any modes, the effects should be globally disabled. Therefore, "failure" in this case is when various portions of my text is being shown in different colors.

I am not sure that it matters, but for clarity, my .emacs setup opens up with the window split vertically so that I can see two buffers simultaneously.
For the experiments below, I always open the application from my dock so that no file is loaded. Then I usually open my .emacs file first, in the left half, then the code files in order on the right. Where I open another file first, it is done in the left side and the others on the right.

1. Placing this in my .emacs file does not seem to have any effect. Lisp, C++ and Java modes all show text in lots of colors.

2. Removed it from main .emacs and placed it in my 'c-initialization-hook' produces the following curious effects:
a) Load .emacs shows Lisp mode with lots of colors
b) Load foo.h shows C++ mode with lots of colors, but the colors are gone from the .emacs text
c) Load foo.cpp shows C++ mode all in black
d) Load foo.java shows Java mode all in black

Curious about the .h file being colorized, but loading it eliminated the colors from the .emacs buffer.
I switched between these 4 buffers in the the two sides and the coloring stayed firm with the buffer contents as expected.

I restarted emacs without any .emacs changes and loaded the files in different order.
- .emacs, foo.cpp, foo.java, foo.h
Same effects, Lisp shows colors that go away when the first C++ file (foo.cpp) is loaded with lots of colors and all others are in black.
- .emacs, foo.java, foo.h, foo.cpp
Same effects, Lisp shows colors that go away when the first file (foo.java) is loaded with lots of colors and all others are in black.
- foo.h, .emacs, foo.cpp, foo.java
This time foo.h is colored, and remains that way. All others are black.
- foo.java, .emacs, foo.h, foo.cpp
- foo.cpp, foo.h, foo.java, .emacs
Both of these tests showed the first file remained all colored, and the others all black.

3. Put it back into the main .emacs code, and left it in the 'c-initialization-hook'.
- .emacs, foo.h, foo.cpp, foo.java
This produced the same results as in 2 that .emacs first showed itself all colored and then turned black when foo.h was loaded and shown all colored. The other files were also all black.

I do not understand why there is any "file load order" dependency, or why the first CC mode file seems to "rob" the Lisp mode buffer of its color. I use the term "rob" with tongue-in-cheek.

The order of things in my .emacs file is:

;; disable all colorization stuff
(global-font-lock-mode -1)

(defun my-load-once-code-hook ()
"My function to load when a code-mode is initialized the first time"
(progn
;-(setq flb-dbg-val '1)
(global-font-lock-mode -1)
;-(setq c-basic-offset my-tab-width)
;-(my-require 'sce)
;-(if c-mode-base-map
;- (define-key c-mode-base-map "\C-m" 'c-newline))
;-(flb)
))

;; set all the load-once stuff for coding
(add-hook 'c-initialization-hook 'my-load-once-code-hook)

;;;;;;;;
I expect that this is more than enough for you all to digest for now.
My obvious next step would be to move on and place this in a 'c-mode-common-hook' but I wonder if I should remove the other two uses first?
Does anybody have any other ideas?

Thanks for taking the time for reading all this. I will appreciate any help I can get with chasing down the reason for this.

Fran
Eli Zaretskii
2018-12-01 07:55:02 UTC
Permalink
Date: Fri, 30 Nov 2018 16:50:23 -0500
To be clear, what I am trying to do is eliminate the colors being applied to text in all my files. My understanding from the documentation is that if I add (global-font-lock-mode -1) to my .emacs file before I load any modes, the effects should be globally disabled. Therefore, "failure" in this case is when various portions of my text is being shown in different colors.
I am not sure that it matters, but for clarity, my .emacs setup opens up with the window split vertically so that I can see two buffers simultaneously.
For the experiments below, I always open the application from my dock so that no file is loaded. Then I usually open my .emacs file first, in the left half, then the code files in order on the right. Where I open another file first, it is done in the left side and the others on the right.
Maybe the above does matters, as I'm not on macOS, so maybe there's
something macOS specific involved here; in particular, I have no idea
what does "opening application from my dock" mean.
1. Placing this in my .emacs file does not seem to have any effect. Lisp, C++ and Java modes all show text in lots of colors.
Just doing this one thing, i.e. having a .emacs that says only

(global-font-lock-mode -1)

disables colors in both Lisp (including *scratch* buffer and any Lisp
file I visit) and C/Java files I visited.

Do you have anything else in your .emacs in addition to that single
line? If so, perhaps those other things are the culprit. What
happens if you leave just the above single line in your .emacs, and
then restart Emacs?
This is definitely not the right thing to do, so let's disregard what
you get when you do this. (c-initialization-hook is only relevant to
C-like languages, which is not what you want. And if you do anything
from that hook, you should only change local values,
i.e. font-lock-mode and not global-font-lock-mode; the latter is a
global mode, so it is inappropriate to turn it on or off from a mode
hook.)
I do not understand why there is any "file load order" dependency
Because you are changing a global setting from a hook that is called
when the first C-like file is visited.
Francis Belliveau
2018-12-01 14:33:39 UTC
Permalink
Thank you Eli, I found found the problem hidden elsewhere that was toggling things. Understanding is everything.
By the way "Starting from the dock" is the same a clicking an icon on the desktop. It just starts the application without any arguments.

I am now at the point of not liking what this is doing because, as Eli said, all coloring has been disabled. I did like seeing the colors in buffers like the output of "grep".

So I removed the statement from my .emacs file and placed (font-lock-mode -1) in my 'c-initialization-hook' with the intention of only disabling colors in my coding modes.
That seems to disable it for only the first file loaded, but not the others. As Eli suggested, this does not have any effect on Lisp mode; that buffer is always colored. My guess here is that placing it there does not step on the defaults for all future mode initializations like I would have expected.

So I moved if to my 'c-mode-common-hook' and that did the trick.

Thanks to all who read through my details. I hope that it will help others to understand these things.

Fran
Post by Eli Zaretskii
Date: Fri, 30 Nov 2018 16:50:23 -0500
To be clear, what I am trying to do is eliminate the colors being applied to text in all my files. My understanding from the documentation is that if I add (global-font-lock-mode -1) to my .emacs file before I load any modes, the effects should be globally disabled. Therefore, "failure" in this case is when various portions of my text is being shown in different colors.
I am not sure that it matters, but for clarity, my .emacs setup opens up with the window split vertically so that I can see two buffers simultaneously.
For the experiments below, I always open the application from my dock so that no file is loaded. Then I usually open my .emacs file first, in the left half, then the code files in order on the right. Where I open another file first, it is done in the left side and the others on the right.
Maybe the above does matters, as I'm not on macOS, so maybe there's
something macOS specific involved here; in particular, I have no idea
what does "opening application from my dock" mean.
1. Placing this in my .emacs file does not seem to have any effect. Lisp, C++ and Java modes all show text in lots of colors.
Just doing this one thing, i.e. having a .emacs that says only
(global-font-lock-mode -1)
disables colors in both Lisp (including *scratch* buffer and any Lisp
file I visit) and C/Java files I visited.
Do you have anything else in your .emacs in addition to that single
line? If so, perhaps those other things are the culprit. What
happens if you leave just the above single line in your .emacs, and
then restart Emacs?
This is definitely not the right thing to do, so let's disregard what
you get when you do this. (c-initialization-hook is only relevant to
C-like languages, which is not what you want. And if you do anything
from that hook, you should only change local values,
i.e. font-lock-mode and not global-font-lock-mode; the latter is a
global mode, so it is inappropriate to turn it on or off from a mode
hook.)
I do not understand why there is any "file load order" dependency
Because you are changing a global setting from a hook that is called
when the first C-like file is visited.
Gene
2018-10-26 18:05:13 UTC
Permalink
Post by Emanuel Berg
I did such a course at UU in 2013-02-01 - it
was called "Advanced Functional Programming".
The Lisp wasn't Elisp tho but CL with the
SBCL compiler.
And I think it is better to teach CL than
Elisp, in all honesty...
Having read the other responses posted thus far,
this seems like the best grafting point from which to ramify
another branch of thought for our consideration.

Too many CS and math types
-- both perverted by these pro forma, would-be `formal' would-be sciences --
reveal their theoretical biases, paradigms, and frameworks by such comments.

Elisp is NOT merely an `inferior' lisp which `sucks';
it IS a top-notch, SUPERIOR Domain-Specific Language.

ref: https://en.wikipedia.org/wiki/Domain-specific_language#Other_examples

IMNSHO, dumb asses compare the execution of lisp code against unflattering and bone-headed standards when they use `programming languages' -- such as C -- rather manual-mode TYPING which the users of OTHER text editors MUST perform manually BECAUSE their text editor either has NO `extension language' or one which SUCKS as bad as elisp is libeled and defamed through comparisons with general-purpose programming languages.

In this regard, I regard it more-foolish to cast elisp as an inferior lisp or Functional Language than it is to portray it as a Superior Domain-Specific Language coincidentally supporting the functional paradigm and the lisp-family -- minus Logo -- supporting syntax which facilitates meta-programming, macros, and all sorts of wholesome goodness.

When I'm using emacs it's not the speed of the elisp execution which matters; it's MY speed -- my Personal Operating System Speed -- that matters!

How much time and personal processing am I saving by using elisp as a Domain Specific Language which saves me time and hassles I'd have to endure as Opportunity Costs if I were to use another whole tool box of non-interoperable apps ... most of which can't be (as) easily automated or yolked together as elisp packages and libraries?

The missing Course is NOT one which emphasizes `functional' this or `lispiness' that ... it's one which keeps it's eyes upon the prize: "Exploiting the hell out of Emacs Lisp as a Domain-specific language which saves YOU time by allowing YOU to outsource and delegate time-consuming, tedious, otherwise-MANUAL operations!"

Computer time is cheaper than dirt; YOUR TIME is priceless.

The Domain-specific Language Point-of-View and Paradigm allows YOU to make better value judgments than other PoVs which emphasize less-important factors and considerations.

Think about it!

Cheers!
Gene
Jean-Christophe Helary
2018-10-27 00:54:58 UTC
Permalink
Gene,

Thank you for this remark. I totally agree with you. elisp should be considered a domain specific language and not be compared to general purpose languages in general.

Hence the difficulty to find places that teach elisp, since such places would rather teach general computing, than domain specific computing.

Jean-Christophe
Post by Gene
Post by Emanuel Berg
I did such a course at UU in 2013-02-01 - it
was called "Advanced Functional Programming".
The Lisp wasn't Elisp tho but CL with the
SBCL compiler.
And I think it is better to teach CL than
Elisp, in all honesty...
Having read the other responses posted thus far,
this seems like the best grafting point from which to ramify
another branch of thought for our consideration.
Too many CS and math types
-- both perverted by these pro forma, would-be `formal' would-be sciences --
reveal their theoretical biases, paradigms, and frameworks by such comments.
Elisp is NOT merely an `inferior' lisp which `sucks';
it IS a top-notch, SUPERIOR Domain-Specific Language.
ref: https://en.wikipedia.org/wiki/Domain-specific_language#Other_examples
IMNSHO, dumb asses compare the execution of lisp code against unflattering and bone-headed standards when they use `programming languages' -- such as C -- rather manual-mode TYPING which the users of OTHER text editors MUST perform manually BECAUSE their text editor either has NO `extension language' or one which SUCKS as bad as elisp is libeled and defamed through comparisons with general-purpose programming languages.
In this regard, I regard it more-foolish to cast elisp as an inferior lisp or Functional Language than it is to portray it as a Superior Domain-Specific Language coincidentally supporting the functional paradigm and the lisp-family -- minus Logo -- supporting syntax which facilitates meta-programming, macros, and all sorts of wholesome goodness.
When I'm using emacs it's not the speed of the elisp execution which matters; it's MY speed -- my Personal Operating System Speed -- that matters!
How much time and personal processing am I saving by using elisp as a Domain Specific Language which saves me time and hassles I'd have to endure as Opportunity Costs if I were to use another whole tool box of non-interoperable apps ... most of which can't be (as) easily automated or yolked together as elisp packages and libraries?
The missing Course is NOT one which emphasizes `functional' this or `lispiness' that ... it's one which keeps it's eyes upon the prize: "Exploiting the hell out of Emacs Lisp as a Domain-specific language which saves YOU time by allowing YOU to outsource and delegate time-consuming, tedious, otherwise-MANUAL operations!"
Computer time is cheaper than dirt; YOUR TIME is priceless.
The Domain-specific Language Point-of-View and Paradigm allows YOU to make better value judgments than other PoVs which emphasize less-important factors and considerations.
Think about it!
Cheers!
Gene
Jean-Christophe Helary
-----------------------------------------------
http://mac4translators.blogspot.com @brandelune
Emanuel Berg
2018-10-27 17:27:11 UTC
Permalink
Post by Jean-Christophe Helary
Hence the difficulty to find places that
teach elisp, since such places would rather
teach general computing, than domain
specific computing.
In theory yes, and in practice I think that is
what they do most of the time.

Still, the step from whatever
industrial-strength Lisp to Elisp isn't exactly
a grand leap, and you don't have to be
a CS/math type to do it, really.

There is also the reversed movement, i.e.
people who discover Lisp thru Emacs and Elisp.

If one were to quantify these tendencies, when
you do a university course in programming, it
feels like a heck of a job, it takes forever
etc., but compare that to all the Joe Emacs
hackers all around the world who use Emacs
every day and fiddle with Elisp with all their
(our) wierd projects...

Perhaps some decades ago the industry and
university share was much bigger (the "Lisp
Wars" and all) but today I wonder if not Emacs
in particular is "The Moor's Last Sigh"?
--
underground experts united
http://user.it.uu.se/~embe8573
Garreau\, Alexandre
2018-10-28 00:27:53 UTC
Permalink
Post by Jean-Christophe Helary
Gene,
Thank you for this remark. I totally agree with you. elisp should be
considered a domain specific language and not be compared to general
purpose languages in general.
emacs lisp *can* and *is* used as a general purpose language.
Post by Jean-Christophe Helary
Hence the difficulty to find places that teach elisp, since such
places would rather teach general computing, than domain specific
computing.
I’m unsure. In my college they teach 2 or 3 languages a semester, so to
give a wider look at what exists, I heard. Many of them must be quite
specific. And indeed, for instance, they teach C all the years along,
but only some OCaml at the beginning, as OCaml is to be considered more
specific by most people (except its advocates, but then that may work as
well for elisp and most languages).
Jean-Christophe Helary
2018-10-28 01:16:00 UTC
Permalink
Post by Garreau\, Alexandre
Post by Jean-Christophe Helary
Gene,
Thank you for this remark. I totally agree with you. elisp should be
considered a domain specific language and not be compared to general
purpose languages in general.
emacs lisp *can* and *is* used as a general purpose language.
If you consider Emacs as a virtual lisp machine, yes. If you consider Emacs as a text editor, much less so.

Teaching elisp as strictly a lisp dialect, removes it from its utility as being Emacs extension language.


Jean-Christophe Helary
-----------------------------------------------
http://mac4translators.blogspot.com @brandelune
Garreau\, Alexandre
2018-10-28 02:47:52 UTC
Permalink
Post by Jean-Christophe Helary
Post by Garreau\, Alexandre
Post by Jean-Christophe Helary
Gene,
Thank you for this remark. I totally agree with you. elisp should be
considered a domain specific language and not be compared to general
purpose languages in general.
emacs lisp *can* and *is* used as a general purpose language.
If you consider Emacs as a virtual lisp machine, yes. If you consider
Emacs as a text editor, much less so.
Teaching elisp as strictly a lisp dialect, removes it from its utility
as being Emacs extension language.
I don’t consider emacs as a text editor but rather a shell, a UI, a
environment, system. And emacs-lisp is the main (currently only)
language to program using this amazing UI, system, environment, shell,
etc..

Just as if you take lisp machine lisp, and remove the lisp machine, the
kernel, all I/O, etc. you removes its utility as lisp machine extension
language.
Alan E. Davis
2018-10-28 07:04:52 UTC
Permalink
First, I am not a programmer. I have a different perspective. I see Elisp
as an integral component of Emacs---the Extensible Self Documenting
Editor. That is the very core of it. This is sets itself apart from any
other editor. I will never be an expert at lisp, but I can extend Emacs
while refering to documentation of the editor and Elisp, all at my
fingertips. It is a stroke of brilliance, just one of the reasons I am
grateful for the work of Richard Stallman.

Emacs fell into my hands unexpectedly, just when I seriously needed a tool
for my project developing a lexicon of animal names in a Pacific language
complex. I was looking for an editor that I could make a simple macro to
type letters with diacritical marks. Multi-Edit seems to me to work just
fine. It was all I had, provided to me by a lingust. The trial version
was "free", in dollars and cents terms; yet it was a form of cripple ware:
to get the full use of it would require a manual, which would cost 350.00,
an impossible sum for me. Emacs came with an amazing manual.

I had seen the very name of the Free Software Foundation, and, not knowing
anything about it's purpose or cause, I wrote to request some free
software. I lived on an isolated island, so it took some time before I
received a package with 13 3-1/2" disks, with a port of Emacs to Windows
3, called Demacs, and a suite of unix utilities ported to Windows 3 by
Cygnus, if I recall correctly. This was in about 1992. Unix tools were
perfect for my intended project of "digitizing" a growing body or data on
animal names. Sort and string manipulation utilities were most welcome.

So I had a toolkit of unimaginable utility, perfectly suited to my need.
Elisp was part and parcel of it all. I had some limited familiarity with
computers, so I was able to work my way though the documentation---all of
it included as part of Emacs, and available just when one needed it. This
is another part of the brilliant scheme that is Emacs: the TexInfo
documentation could not be easier to use.

I haven't told this story often enough, but it is beside the point. The
point is the Elisp is integrated with the editor, making it quite unique in
my experience. It can be learned independently, absent any course, though
I admit I have struggled to learn the little that I have, and to do
complicated things I needed help. I would think that a course in Elsip
would be extremely interesting. First, one needs to find a young person
whose interests align well with the tool.

Enough said. Too much.

Alan Davis
Post by Garreau\, Alexandre
Post by Jean-Christophe Helary
Post by Garreau\, Alexandre
Post by Jean-Christophe Helary
Gene,
Thank you for this remark. I totally agree with you. elisp should be
considered a domain specific language and not be compared to general
purpose languages in general.
emacs lisp *can* and *is* used as a general purpose language.
If you consider Emacs as a virtual lisp machine, yes. If you consider
Emacs as a text editor, much less so.
Teaching elisp as strictly a lisp dialect, removes it from its utility
as being Emacs extension language.
I don’t consider emacs as a text editor but rather a shell, a UI, a
environment, system. And emacs-lisp is the main (currently only)
language to program using this amazing UI, system, environment, shell,
etc..
Just as if you take lisp machine lisp, and remove the lisp machine, the
kernel, all I/O, etc. you removes its utility as lisp machine extension
language.
--
[Fill in the blanks]

The use of corrupt manipulations and blatant rhetorical ploys ...---
outright lying, flagwaving, personal attacks, setting up phony
alternatives, misdirection, jargon-mongering, evading key issues, feigning
disinterested objectivity, willful misunderstanding of other points of
view---suggests that ... lacks both credibility and evidence.

---- Edward Tufte (in context of making presentations)
Van L
2018-10-28 07:28:05 UTC
Permalink
Post by Alan E. Davis
First, one needs to find a young person
whose interests align well with the tool.
Perhaps the talent pool to source from is the
next generation learning on the Raspberry Pi
platform.
Emanuel Berg
2018-10-28 17:07:24 UTC
Permalink
Post by Alan E. Davis
First, I am not a programmer. I have
a different perspective. I see Elisp as an
integral component of Emacs---the Extensible
Self Documenting Editor. That is the very
core of it. This is sets itself apart from
any other editor. I will never be an expert
at lisp, but I can extend Emacs while
refering to documentation of the editor and
Elisp, all at my fingertips. It is a stroke
of brilliance, just one of the reasons I am
grateful for the work of Richard Stallman.
Emacs fell into my hands unexpectedly, just
when I seriously needed a tool for my project
developing a lexicon of animal names in
a Pacific language complex. I was looking for
an editor that I could make a simple macro to
type letters with diacritical marks.
Multi-Edit seems to me to work just fine.
It was all I had, provided to me by
a lingust. The trial version was "free", in
dollars and cents terms; yet it was a form of
cripple ware: to get the full use of it would
require a manual, which would cost 350.00, an
impossible sum for me. Emacs came with an
amazing manual.
I had seen the very name of the Free Software
Foundation, and, not knowing anything about
it's purpose or cause, I wrote to request
some free software. I lived on an isolated
island, so it took some time before
I received a package with 13 3-1/2" disks,
with a port of Emacs to Windows 3, called
Demacs, and a suite of unix utilities ported
to Windows 3 by Cygnus, if I recall
correctly. This was in about 1992. Unix tools
were perfect for my intended project of
"digitizing" a growing body or data on animal
names. Sort and string manipulation utilities
were most welcome.
So I had a toolkit of unimaginable utility,
perfectly suited to my need. Elisp was part
and parcel of it all. I had some limited
familiarity with computers, so I was able to
work my way though the documentation---all of
it included as part of Emacs, and available
just when one needed it. This is another part
of the brilliant scheme that is Emacs: the
TexInfo documentation could not be easier
to use.
Thanks for sharing this story. I enjoyed
reading it.
--
underground experts united
http://user.it.uu.se/~embe8573
Emanuel Berg
2018-10-28 17:03:47 UTC
Permalink
Post by Alan E. Davis
First, I am not a programmer. I have
a different perspective. I see Elisp as an
integral component of Emacs---the Extensible
Self Documenting Editor. That is the very
core of it. This is sets itself apart from
any other editor. I will never be an expert
at lisp, but I can extend Emacs while
refering to documentation of the editor and
Elisp, all at my fingertips. It is a stroke
of brilliance, just one of the reasons I am
grateful for the work of Richard Stallman.
Emacs fell into my hands unexpectedly, just
when I seriously needed a tool for my project
developing a lexicon of animal names in
a Pacific language complex. I was looking for
an editor that I could make a simple macro to
type letters with diacritical marks.
Multi-Edit seems to me to work just fine.
It was all I had, provided to me by
a lingust. The trial version was "free", in
dollars and cents terms; yet it was a form of
cripple ware: to get the full use of it would
require a manual, which would cost 350.00, an
impossible sum for me. Emacs came with an
amazing manual.
I had seen the very name of the Free Software
Foundation, and, not knowing anything about
it's purpose or cause, I wrote to request
some free software. I lived on an isolated
island, so it took some time before
I received a package with 13 3-1/2" disks,
with a port of Emacs to Windows 3, called
Demacs, and a suite of unix utilities ported
to Windows 3 by Cygnus, if I recall
correctly. This was in about 1992. Unix tools
were perfect for my intended project of
"digitizing" a growing body or data on animal
names. Sort and string manipulation utilities
were most welcome.
So I had a toolkit of unimaginable utility,
perfectly suited to my need. Elisp was part
and parcel of it all. I had some limited
familiarity with computers, so I was able to
work my way though the documentation---all of
it included as part of Emacs, and available
just when one needed it. This is another part
of the brilliant scheme that is Emacs: the
TexInfo documentation could not be easier
to use.
I haven't told this story often enough, but
it is beside the point. The point is the
Elisp is integrated with the editor, making
it quite unique in my experience. It can be
learned independently, absent any course,
though I admit I have struggled to learn the
little that I have, and to do complicated
things I needed help. I would think that
a course in Elsip would be extremely
interesting. First, one needs to find a young
person whose interests align well with
the tool.
Thanks for sharing this story. I enjoyed
reading it.
--
underground experts united
http://user.it.uu.se/~embe8573
Emanuel Berg
2018-10-28 17:14:52 UTC
Permalink
Post by Emanuel Berg
Thanks for sharing this story. I enjoyed
reading it.
Oups, another post from the newsgroup from me!
Old habits die hard. Perhaps I should kill the
group from the Gnus group buffer so the
technology itself will prevent my own
stupidity. I have actually had some success
with that earlier in life, so I don't see why
it wouldn't work again.
--
underground experts united
http://user.it.uu.se/~embe8573
Gene
2018-10-30 19:30:48 UTC
Permalink
Post by Alan E. Davis
First, I am not a programmer. I have a different perspective.
I see Elisp as an integral component of Emacs---the Extensible Self
Documenting Editor.
That is the very core of it. This is sets itself apart from any
other editor.
I will never be an expert at lisp, but I can extend Emacs
while referring to documentation of the editor and Elisp, all at my
fingertips.
It is a stroke of brilliance, just one of the reasons I am
grateful for the work of Richard Stallman.
We can certainly be grateful that he followed the lead of *someone else* who first pimped out the emacs of day with a lisp REPL.

ref: https://en.wikipedia.org/wiki/Gosling_Emacs

I suppose that somebody wanting to add a lisp to a text editor today might attempt to shoe-horn in s7 scheme, script fu, or such.
Post by Alan E. Davis
Emacs fell into my hands unexpectedly, just when I seriously needed a tool
for my project developing a lexicon of animal names in a Pacific language
complex.
Alas, if only Margaret Mead and Gregory Bateson had emacs available during their field work in the Pacific!
Post by Alan E. Davis
I was looking for an editor that I could make a simple macro to
type letters with diacritical marks. Multi-Edit seems to me to work just
fine. It was all I had, provided to me by a linguist.
The trial version was "free", in dollars and cents terms;
to get the full use of it would require a manual, which would cost 350.00,
an impossible sum for me.
Emacs came with an amazing manual.
I had seen the very name of the Free Software Foundation, and, not knowing
anything about it's purpose or cause, I wrote to request some free
software.
I lived on an isolated island, so it took some time before I
received a package with 13 3-1/2" disks, with a port of Emacs to Windows
3, called Demacs, and a suite of unix utilities ported to Windows 3 by
Cygnus, if I recall correctly.
This was in about 1992. Unix tools were
perfect for my intended project of "digitizing" a growing body of data on
animal names. Sort and string manipulation utilities were most welcome.
So I had a toolkit of unimaginable utility, perfectly suited to my need.
Elisp was part and parcel of it all. I had some limited familiarity with
computers, so I was able to work my way though the documentation---all of
it included as part of Emacs, and available just when one needed it. This
is another part of the brilliant scheme that is Emacs: the TexInfo
documentation could not be easier to use.
I haven't told this story often enough, but it is beside the point.
The point is the Elisp is integrated with the editor,
making it quite unique in my experience.
It can be learned independently, absent any course, though
I admit I have struggled to learn the little that I have, and to do
complicated things I needed help.
I would think that a course in Elisp would be extremely interesting.
I'm thinking that `a' one-size-fits-all course couldn't possibly
be as useful to one and all using a domain-specific language capable
of such a broad spectrum of domains spread out before some a broad spectrum
of users.

When I'm trying to `sell' emacs to those weened-on and accustomed-to Word processors, GUIs with Pull-down menus, and such I not only do NOT pitch elisp as a selling feature, I recommend they use nothing BUT the pull-down menus for the first 3 weeks for fear that the command-line like minibuffer used with M-x will scare them away and back to something more `User friendly' ... EG GUIized pull-down menued touch screen stuff ... just like they are now imprinted-upon.
Post by Alan E. Davis
First, one needs to find a young person
whose interests align well with the tool.
As contrasted with old dogs dating their emacs back to '92?
I was using UEdit and micro-Emacs on a Commodore Amiga back then; neither had elisp.
Though a year later I was using AMXlisp on the Amiga to do assignments in course in which fellow students were using common lisp.
Post by Alan E. Davis
Enough said. Too much.
Not enough!

What personal preferences, factors, and preferences do you imagine could be factored into lessons customizable to a broad assortment of humanity?

We have multiple intelligences tests now, which transcend reductionist single-number IQ.
We have an assortment of temperament tests which seemingly would allow some dispatching code elisp itself could use to present someone/anyone with a temperamental orientation and multiple intelligences configuration with a lesson apropos for that particular student.
Post by Alan E. Davis
Alan Davis
Thanks for the period piece, Alan!

Now I'm wondering if a quarter century from now a comparable personal account will appear which starts with something like, "It was 2018 and I and my friends were not as smart as our phones. A true friend turned us on to something retro ... this ancient text editor which some MIT hackers started in the previous century. ...."

I'm painfully aware that those of us in the 70's, 80's, and 90's didn't have the glut of free and/or dirt cheep `apps' which the modern touch screen users have available.
I'm thinking that emacs, gnutils, and such are going to be a hard sell for those spoiled by touch screens, GUI OSes, and the inability to touch type.

As much as I'd like to see mainstream folk using emacs and elisp, I've noticed the chasm between those of us qualifying as literate or semi-literate and the point-and-click `geniuses' expanding beyond capacity to quantum leap ... let alone their interest.

Thanks again!
Gene
Stefan Monnier
2018-10-30 19:46:36 UTC
Permalink
Post by Gene
We can certainly be grateful that he followed the lead of *someone else* who
first pimped out the emacs of day with a lisp REPL.
ref: https://en.wikipedia.org/wiki/Gosling_Emacs
AFAIK this someone else followed the lead of those who implemented
Multics Emacs.


Stefan
Nick Dokos
2018-10-30 20:33:03 UTC
Permalink
Post by Stefan Monnier
Post by Gene
We can certainly be grateful that he followed the lead of *someone else* who
first pimped out the emacs of day with a lisp REPL.
ref: https://en.wikipedia.org/wiki/Gosling_Emacs
AFAIK this someone else followed the lead of those who implemented
Multics Emacs.
https://en.wikipedia.org/wiki/Emacs#History
--
Nick

"There are only two hard problems in computer science: cache
invalidation, naming things, and off-by-one errors." -Martin Fowler
Emanuel Berg
2018-10-31 11:20:35 UTC
Permalink
Post by Nick Dokos
https://en.wikipedia.org/wiki/Emacs#History
OK, another URL. Thanks!
--
underground experts united
http://user.it.uu.se/~embe8573
Emanuel Berg
2018-10-30 20:28:09 UTC
Permalink
Post by Stefan Monnier
Post by Gene
We can certainly be grateful that he
followed the lead of *someone else* who first
pimped out the emacs of day with a lisp REPL.
https://en.wikipedia.org/wiki/Gosling_Emacs
AFAIK this someone else followed the lead of
those who implemented Multics Emacs.
Is there are place anywhere on the web where
the history of Emacs, and not just GNU Emacs,
is collected?

Like this book, only Emacs, not UNIX/Unix?

@book{quarter-century-of-unix,
title = {A Quarter Century of UNIX},
author = {Peter Salus},
publisher = {Addison-Wesley},
year = 1994,
ISBN = 0201547775
}

PS. Couldn't send this thru Gmane! Back to
gnu.emacs.help!

Can't authorize on Gmane - tried twice:

This message was created automatically by mail
delivery software. A message that you sent
could not be delivered to one or more of its
recipients. This is a permanent error.

auth-***@auth.gmane.org INVALID_ADDRESS, ERROR_CODE :550, ERROR_CODE :unknown user

Received:from raspberrypi.zoho.eu (c-5c95225c.08-680-7570702.bbcust.telenor.se [92.34.149.92]) by mx.zoho.eu
with SMTPS id 1540930958951929.168670029879; Tue, 30 Oct 2018 21:22:38 +0100 (CET)

Message-ID:<***@zoho.eu>
Date:Tue, 30 Oct 2018 21:22:38 +0100
From:Emanuel Berg <***@zoho.eu>
User-Agent:Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)
To:Gmane Autoauthorizer <auth-***@auth.gmane.org>
Subject:Re: gmane.emacs.help: Authorization required
Content-Type:text/plain
--
underground experts united
http://user.it.uu.se/~embe8573
Drew Adams
2018-10-30 20:32:17 UTC
Permalink
Post by Emanuel Berg
Is there are place anywhere on the web where
the history of Emacs, and not just GNU Emacs,
is collected?
Here's one place. And you can add to it.

https://www.emacswiki.org/emacs/CategoryHistory
Nuno Silva
2018-10-31 02:14:59 UTC
Permalink
Post by Emanuel Berg
PS. Couldn't send this thru Gmane! Back to
gnu.emacs.help!
This message was created automatically by mail
delivery software. A message that you sent
could not be delivered to one or more of its
recipients. This is a permanent error.
Received:from raspberrypi.zoho.eu (c-5c95225c.08-680-7570702.bbcust.telenor.se [92.34.149.92]) by mx.zoho.eu
with SMTPS id 1540930958951929.168670029879; Tue, 30 Oct 2018 21:22:38 +0100 (CET)
Date:Tue, 30 Oct 2018 21:22:38 +0100
User-Agent:Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)
Subject:Re: gmane.emacs.help: Authorization required
Content-Type:text/plain
Did you change your "From:" address?

As far as I can tell, the Gmane Autoauthorizer has stopped working
several months ago. (See gmane.discuss)

Using already authorized addresses works, but using new addresses or
posting to groups where you haven't posted before won't work.
--
Nuno Silva
Emanuel Berg
2018-10-31 11:23:57 UTC
Permalink
Post by Nuno Silva
Did you change your "From:" address?
As far as I can tell, the Gmane
Autoauthorizer has stopped working several
months ago. (See gmane.discuss)
Using already authorized addresses works, but
using new addresses or posting to groups
where you haven't posted before won't work.
Indeed I have. I had to change my e-mail
because Zoho blocked my outgoing mail.
Probably because I sent too much they thought
I was a spammer :)

But: Oh, no! This means I can't access all the
other Gmane groups either! Is someone working
on this problem?
--
underground experts united
http://user.it.uu.se/~embe8573
Nuno Silva
2018-11-02 01:33:45 UTC
Permalink
Post by Emanuel Berg
Post by Nuno Silva
Did you change your "From:" address?
As far as I can tell, the Gmane
Autoauthorizer has stopped working several
months ago. (See gmane.discuss)
Using already authorized addresses works, but
using new addresses or posting to groups
where you haven't posted before won't work.
Indeed I have. I had to change my e-mail
because Zoho blocked my outgoing mail.
Probably because I sent too much they thought
I was a spammer :)
Did they block *only* outgoing? In that case, you could still use the
old address with gmane.
Post by Emanuel Berg
But: Oh, no! This means I can't access all the
other Gmane groups either! Is someone working
on this problem?
--
Nuno Silva
Emanuel Berg
2018-11-02 08:38:30 UTC
Permalink
Post by Nuno Silva
Post by Emanuel Berg
Indeed I have. I had to change my e-mail
because Zoho blocked my outgoing mail.
Probably because I sent too much they
thought I was a spammer :)
Did they block *only* outgoing? In that case,
you could still use the old address
with gmane.
With the old mail, they blocked sending.
So I can't send to anyone.

With the new mail, because of Gmane, I can't
verify on it so I can't send to it. Do you
think they will fix this problem soon?

Yes, I'm aware of the mailing lists, I'll set
it up with Gnus and mail splitting from at
least the equivalent to gnu.emacs.help so
I don't do the "break thread" all the time.

Compared to Gmane (i.e. a Gmane that works),
mail splitting is an inferior method but
I suppose it is better than breaking the
threads for everyone else but me, as it still
works in gnu.emacs.help, as said.

Maybe we can solve it like this instead, all of
you guys come over to Usenet? :)
--
underground experts united
http://user.it.uu.se/~embe8573
Nuno Silva
2018-11-03 12:41:40 UTC
Permalink
Post by Emanuel Berg
Post by Nuno Silva
Post by Emanuel Berg
Indeed I have. I had to change my e-mail
because Zoho blocked my outgoing mail.
Probably because I sent too much they
thought I was a spammer :)
Did they block *only* outgoing? In that case,
you could still use the old address
with gmane.
With the old mail, they blocked sending.
So I can't send to anyone.
But can you still *receive*?

If you are already authorized with gmane for the groups you participate
in with that address, then you shouldn't need to send anything. You
might just want to be able to receive in case somebody sends you an
off-list reply.

(And you could always send e-mail messages through some other mail
server which is not too picky about what goes in From:)
Post by Emanuel Berg
With the new mail, because of Gmane, I can't
verify on it so I can't send to it. Do you
think they will fix this problem soon?
I don't know. I do hope it gets fixed.
Post by Emanuel Berg
Yes, I'm aware of the mailing lists, I'll set
it up with Gnus and mail splitting from at
least the equivalent to gnu.emacs.help so
I don't do the "break thread" all the time.
Compared to Gmane (i.e. a Gmane that works),
mail splitting is an inferior method but
I suppose it is better than breaking the
threads for everyone else but me, as it still
works in gnu.emacs.help, as said.
Maybe we can solve it like this instead, all of
you guys come over to Usenet? :)
--
Nuno Silva
Emanuel Berg
2018-11-03 15:24:52 UTC
Permalink
Post by Nuno Silva
But can you still *receive*?
Yes.
Post by Nuno Silva
If you are already authorized with gmane for
the groups you participate in with that
address, then you shouldn't need to send
anything.
I'm not authorized because, as you pointed out,
I had a change of e-mail address, and
authorization is down on Gmane.
Post by Nuno Silva
You might just want to be able to receive in
case somebody sends you an off-list reply.
This always worked before. Am I breaking it
now, you mean?
--
underground experts united
http://user.it.uu.se/~embe8573
Nuno Silva
2018-11-04 21:25:37 UTC
Permalink
Post by Emanuel Berg
Post by Nuno Silva
But can you still *receive*?
Yes.
Post by Nuno Silva
If you are already authorized with gmane for
the groups you participate in with that
address, then you shouldn't need to send
anything.
I'm not authorized because, as you pointed out,
I had a change of e-mail address, and
authorization is down on Gmane.
But if you can receive mails sent to your old address, which is already
authorized, why don't you use that one with gmane?
Post by Emanuel Berg
Post by Nuno Silva
You might just want to be able to receive in
case somebody sends you an off-list reply.
This always worked before. Am I breaking it
now, you mean?
No, don't worry, you aren't breaking anything related to that.
--
Nuno Silva
Emanuel Berg
2018-11-05 20:51:13 UTC
Permalink
Post by Nuno Silva
But if you can receive mails sent to your old
address, which is already authorized, why
don't you use that one with gmane?
Because I can't send from it anymore.
Zoho blocked outgoing mail from it for whatever
reason, maybe I moved too much stuff around
they thought I was a spammer or the account had
been compromised.

This address, also from zoho, is also much
faster, perhaps the proximity to the .eu
servers or whatever, and now that I have
changed, I'm sticking to it.

I hope Gmane will fix its issues soon so I can
authenticate and then start using the
Gmane group.
--
underground experts united
http://user.it.uu.se/~embe8573
Emanuel Berg
2018-11-01 13:02:56 UTC
Permalink
So it seems to be correct that I don't have
access to the following groups anymore.
Which are all the Gmane groups I currently use!
Not that I would have access to any other, were
I to add them.

I can't even bring this up on gmane.discuss!

Maybe ditch the authentication scheme
altogether? Because if new people cannot come
and use Gmane, it will be even worse than
Usenet (new people *can* come to Usenet, only
that never happens).

6 gmane.comp.shells.zsh.devel 1560 44462
6 gmane.comp.shells.zsh.user 279 18894
6 gmane.comp.sysutils.docker.devel 51 3373
3 gmane.comp.sysutils.docker.user 11789
6 gmane.comp.sysutils.dtrace.user 4921 4921
6 gmane.comp.video.image-magick.user 22290
6 gmane.emacs.erc.general 1454
3 gmane.emacs.gnus.general 84436
3 gmane.emacs.gnus.user 18907
6 gmane.emacs.help 118544
3 gmane.emacs.w3m 9810
--
underground experts united
http://user.it.uu.se/~embe8573
Emanuel Berg
2018-11-01 13:07:11 UTC
Permalink
Post by Emanuel Berg
I can't even bring this up on gmane.discuss!
OK, I see that it has already been brought up
there. Yeah, that's true, I can still *read*
the material, just not participate!
Perhaps a good exercise in... err, whatever.
--
underground experts united
http://user.it.uu.se/~embe8573
Nuno Silva
2018-11-02 01:23:45 UTC
Permalink
Post by Emanuel Berg
Post by Emanuel Berg
I can't even bring this up on gmane.discuss!
OK, I see that it has already been brought up
there. Yeah, that's true, I can still *read*
the material, just not participate!
Perhaps a good exercise in... err, whatever.
It is not the same as posting through gmane, but it is possible to post
to gmane.discuss through e-mail (gmane-***@quimby.gnus.org, I
think?).
--
Nuno Silva
Emanuel Berg
2018-10-31 11:19:59 UTC
Permalink
Post by Drew Adams
Post by Emanuel Berg
Is there are place anywhere on the web where
the history of Emacs, and not just GNU
Emacs, is collected?
Here's one place.
https://www.emacswiki.org/emacs/CategoryHistory
OK!
Post by Drew Adams
And you can add to it.
Well, Holly would, if she could! But I don't
know the history, even of GNU Emacs. But I'll
read what's there, for sure.
--
underground experts united
http://user.it.uu.se/~embe8573
Drew Adams
2018-10-31 14:22:21 UTC
Permalink
Post by Drew Adams
Post by Emanuel Berg
Is there are place anywhere on the web where
the history of Emacs, and not just GNU
Emacs, is collected?
Here's one place.
https://urldefense.proofpoint.com/v2/url?u=https-
3A__www.emacswiki.org_emacs_CategoryHistory&d=DwIBAg&c=RoP1YumCXCgaWHvlZ
YR8PZh8Bv7qIrMUB65eapI_JnE&r=kI3P6ljGv6CTHIKju0jqInF6AOwMCYRDQUmqX22rJ98
&m=jRSwNyn-
9pBTdL_HjPHdrNistgXgDpmamwDfKAp03lw&s=sgKqjTDATfVms1VWKkUdNnfykQn-
YjZfWW1xA3iJ5J4&e=
OK!
Post by Drew Adams
And you can add to it.
Well, Holly would, if she could! But I don't
know the history, even of GNU Emacs. But I'll
read what's there, for sure.
You can also comment on it. For example, if you want to
say something or ask something about a page, such as the
"Emacs History" page, just click the "Talk" link at the
page bottom. That takes you to page "Comments on Emacs
History", where you can enter comments.

It's pretty simple. In sum, you can edit wiki pages,
and you can comment on wiki pages.
Emanuel Berg
2018-10-31 16:01:19 UTC
Permalink
You can also comment on it. For example, if
you want to say something or ask something
about a page, such as the "Emacs History"
page, just click the "Talk" link at the page
bottom. That takes you to page "Comments on
Emacs History", where you can enter comments.
It's pretty simple. In sum, you can edit wiki
pages, and you can comment on wiki pages.
If I were to add to the Emacs wiki, I would
post all my Elisp there that makes sense, and
even tho it is just a small fraction, it would
still be all but a full time job!

Speaking broadly, I love the Wikipedia idea,
and I often use it for quick information, but
it never appealed to me to take an active part
there, on any Wiki that is. Too much
interactive web programming, I guess.

But keep it up all of you who do, of course!
--
underground experts united
http://user.it.uu.se/~embe8573
Van L
2018-11-09 09:16:24 UTC
Permalink
Post by Emanuel Berg
If I were to add to the Emacs wiki, I would
post all my Elisp there that makes sense, and
even tho it is just a small fraction, it would
still be all but a full time job!
This link explains the gnus.

https://www.nytimes.com/2018/10/24/science/wildebeest-muscle-efficiency.html

I odn’t know where that goes on the Emacs wiki.
Gene
2018-11-10 17:02:32 UTC
Permalink
Post by Van L
Post by Emanuel Berg
If I were to add to the Emacs wiki, I would
post all my Elisp there that makes sense, and
even tho it is just a small fraction, it would
still be all but a full time job!
This link explains the gnus.
https://www.nytimes.com/2018/10/24/science/wildebeest-muscle-efficiency.html
I don’t know where that goes on the Emacs wiki.
The term `muscle memory' comes to mind.
Though I'm not sure this would help for taxonomic purposes either.

Bart Simpson's "Don't have a cow, man!" might be modified to "Don't have a 1/3 of a cow, man!, given the Gnu's status as a lightweight yet-to-be-domesticated, yet-to-be-bloated bovine.

But all of this is udderly ridiculous when trying to either `teach' or learn elisp.

G
Daniel Nemenyi
2018-11-04 12:17:03 UTC
Permalink
Post by Drew Adams
Post by Emanuel Berg
Is there are place anywhere on the web where
the history of Emacs, and not just GNU
Emacs, is collected?
Here's one place.
https://www.emacswiki.org/emacs/CategoryHistory
Here's another.

Stefan Monnier and Michael Sperber, `Evolution of Emacs Lisp'
(2018)
https://www.iro.umontreal.ca/~monnier/hopl-4-emacs-lisp.pdf
Gene
2018-10-28 02:11:12 UTC
Permalink
Post by Jean-Christophe Helary
Post by Garreau\, Alexandre
Post by Jean-Christophe Helary
Gene,
Thank you for this remark. I totally agree with you. elisp should be
considered a domain specific language and not be compared to general
purpose languages in general.
emacs lisp *can* and *is* used as a general purpose language.
If you consider Emacs as a virtual lisp machine, yes.
If you consider Emacs as a text editor, much less so.
Teaching elisp as strictly a lisp dialect,
removes it from its utility as being Emacs extension language.
Isn't this the problem with any/every narrow-scoped portrayal of any and every would-be `subject' in a given Universe of Discourse?

When anything is beheld from only one Point-of-View, one worldview, one prejudicing lens the necessarily subjective observer learns the prejudicial cognitive framework along with the material/subject portrayed as figural ONLY in the contextual backdrop in which it was contrasted.

As a text processor it might behoove one to meditate on the fundamentals of tickertapes of characters.

If one has been biased by other languages supporting `strings' one might project that bias upon 1D vectors/arrays/strings which can be thought-of-as or ALSO-thought-of-as said vectors or arrays ... all of which can be dealt with a `sequences' which elisp supports, but perhaps not common lisp, scheme, GIMP's script-fu, or AutoCAD's autolisp or visual lisp, etc,

And what about `rectangles'?
What's up with rectangles of text?
One might not encounter them with sed, ed, nano, pico, gedit, or any given word processor.

Which features of elisp lend support to various major modes, programming language syntaxes, screen scraping, computational linguistics, boilerplate generation, data entry ... whatever is of interest to YOU?


Which features of elisp allow it to outsource processing via faster programming languages?

When would one want to enclose elisp in a ".el" file ... and when might it be better to include elisp source in an org-mode code block, perhaps along with source code from those faster, `sucks less', presumably *better* programming languages?

How can elisp allow an emacs user to splice-together `code' from several programming languages, launch apps and/or processes which generate `text' which is subsequently inserted in one-or-more buffers?

These seem the kinds of questions one might ask oneself pursuant to exploiting emacs as both a work shop of interoperable tools AND an artist studio.

FWIW
Jean-Christophe Helary
2018-10-28 02:21:43 UTC
Permalink
Post by Gene
Isn't this the problem with any/every narrow-scoped portrayal of any and every would-be `subject' in a given Universe of Discourse?
When anything is beheld from only one Point-of-View, one worldview, one prejudicing lens the necessarily subjective observer learns the prejudicial cognitive framework along with the material/subject portrayed as figural ONLY in the contextual backdrop in which it was contrasted.
You're correct. Thank you.


Jean-Christophe Helary
-----------------------------------------------
http://mac4translators.blogspot.com @brandelune
Gene
2018-10-30 17:35:39 UTC
Permalink
Post by Jean-Christophe Helary
Post by Gene
Isn't this the problem with any/every narrow-scoped portrayal of
any and every would-be `subject' in a given Universe of Discourse?
When anything is beheld from only one Point-of-View, one worldview,
one prejudicing lens the necessarily subjective observer learns
the prejudicial cognitive framework along with the material/subject
portrayed as figural ONLY in the contextual backdrop in which
it was contrasted.
You're correct. Thank you.
To whatever extent I either `am' or merely appear `correct' the thanks belong to Gestalt Psychologists, I suppose.

Thanks for thanks, mon ami!


For those interested in transcending single-framework mentalities I recommend cognitive reframing, and my own notion of multi-framing in which one develops and maintains several cognitive frames for concurrent use.

ref: https://en.wikipedia.org/wiki/Cognitive_reframing

Cheers!
Gene
2018-10-27 18:40:30 UTC
Permalink
Post by Jean-Christophe Helary
Gene,
Thank you for this remark.
I totally agree with you.
elisp should be considered a domain specific language and
not be compared to general purpose languages in general.
For me as an IS-ist
-- rather than should-ist or could-ist --
it's simply not a point of what it `should' be compared-to
as we can't stop others from making silly or unflattering comparisons.

It CAN be used as a Domain Specific Language.
Post by Jean-Christophe Helary
Hence the difficulty to find places that teach elisp,
since such places would rather teach general computing,
than domain specific computing.
Heavy Sigh.
Alas, most of the would-be `free world' employs forced-assembly day-care concentration camps tasked, in the name of `education',
with inculcating as-if `teaching'.
So I understand how you or most would have a teaching-centered worldview.

Have you considered a learning-centered, autodidactic approach?

If you could, the answer to the gist of your question might be "Here!"

;v--- DIY lesson for self-paced, self-directed learners of Elisp as a DSL

; Assuming one is familiar with the would-be `mathematical' notion of inverses,
; yet has a mind open enough allow inverses to be performed in a
; non-numerical domain,
; here, for your consideration, are a pair of elisp inverse functions:

; split-string & mapconcat, if and only if the same delimiter/glue is used.

; example:

(progn
(setq
text-sample
"Alas, most of the would-be `free world' employs forced-assembly day-care concentration camps tasked, in the name of `education', with inculcating as-if `teaching'."

delimiter ; for use with split-string
" "

glue ; for use with mapconcat
delimiter

text-sample.parts
(split-string text-sample delimiter)

text-sample.reconstituted
(mapconcat (function identity) text-sample.parts glue)

)
(when (string= text-sample text-sample.reconstituted)
"Proof of inverses"
)

) ;progn


;^--- DIY lesson for self-paced, self-directed learners of Elisp as a DSL

Where IS elisp LEARNED?
Within.

Perhaps others would step forward with an elisp demo, tutorial, pro tip?

I'd like to believe that those of us wishing to LEARN elisp can learn from each other as well as rummaging around elisp manuals and intros in the process of self-paced, self-directed learning.
Emanuel Berg
2018-10-27 19:27:05 UTC
Permalink
Heavy Sigh. Alas, most of the would-be `free
world' employs forced-assembly day-care
concentration camps tasked, in the name of
`education', with inculcating as-if
`teaching'. So I understand how you or most
would have a teaching-centered worldview.
Have you considered a learning-centered,
autodidactic approach?
I'd say almost all programmers are autodidacts
to a very large extent, and it doesn't matter
if they were once students, or carried on as
teachers themselves to this very day. It is not
a "mutex" situation :)
--
underground experts united
http://user.it.uu.se/~embe8573
Garreau\, Alexandre
2018-10-28 00:52:48 UTC
Permalink
Post by Gene
Have you considered a learning-centered, autodidactic approach?
Speaking of teaching, this subject normally does not reguard
autodidactic approaches, as these are implied: I’m pretty sure most of
elispers already taught it themselves, maybe, at best, using the
Introduction, the Reference manual, or tutorials and examples on the
internet. The question is how successfull and easy would it prove to
try to use it to teaching programming, until succes, to a large crowd of
student, whose majority shouldn’t give up: autodidactic approach doesn’t
allow that, as people will either succeed, give up, or ask others on the
internet (and then that’s less and less “autodidactic”: that’s just
informal, extrascholar).

If that’s about autoditactic-centered approach *in teaching*, then I
like it, but I’ve yet to see it be implemented correctly, because the
point of teaching is interaction (dynamically checking with users for
how relevant and efficient are your teaching content and resources) and
supervision (trying to creatively find and develop new ways of
explaining to suparts of users who may still not understand while other
would).

Otherwise I’ve heard many stories on some private school in France
(namely, 42), which are extremely disliked, commonly as a swindle (it’s
part of a schema based on extreme fund-cutting: their students have to
pay (for material, among other things) and their teachers (when they
exist), as their computers, aren’t paid), as their organizations
globally try to promote a form of “collaboration” based on heavily
aggressive competition and others exploitation until enough, where
students have to figure out the course, be the firsts at doing so, then
help the others (so to climb in hierarchy and make them formally in debt
of them), all that most of time without teachers (while interaction with
them might lower you in the course), and trying to get favors from other
students.

This is an extreme, where autonomy is used to make up a not-financed,
financial-sink (almost nothing is invested, everything ends in
shareholders, I heard), hardly bearable hierarchy, but I’d like to see
an extreme on the other end, that’d still be scholar teaching.
Jean-Christophe Helary
2018-10-28 01:11:33 UTC
Permalink
Post by Gene
I'd like to believe that those of us wishing to LEARN elisp can learn from each other as well as rummaging around elisp manuals and intros in the process of self-paced, self-directed learning.
I believe that's what free software is about.

My original inquiry was not about where one could learn elisp, but what learning institution is actually teaching it, which is vastly different :)


Jean-Christophe Helary
-----------------------------------------------
http://mac4translators.blogspot.com @brandelune
Garreau\, Alexandre
2018-10-28 00:19:57 UTC
Permalink
Post by Gene
The missing Course is NOT one which emphasizes `functional' this or
"Exploiting the hell out of Emacs Lisp as a Domain-specific language
which saves YOU time by allowing YOU to outsource and delegate
time-consuming, tedious, otherwise-MANUAL operations!"
Computer time is cheaper than dirt; YOUR TIME is priceless.
Indeed, that’s what I meant when I said that I/O and high-level user-end
facilities were what would make elisp a fantastic language for learning
programming, *nonetheless* (I said this only to moderate what I was
saying about how great would elisp be as a teaching language) the fact
it is not as good as it could as a general language (that statement
being made just because indeed, people find elisp great, so want to use
it as a general-purpose language, and then become disappointed as they
see it could be, but it’s difficult to make it so).

In studying, what’s important actually is not the speed of the language,
nor if it can run on a supercomputer or in space, nor even, if it’s easy
to read and write (unfortunately), but if students will find it useful:
so in the end, the libraries win. And for now, python, for exactely
that reason, is winning. While emacs libraries and interface to users,
their content, and their internet, is amazing and have even more amazing
potential (imagine if something such as Gnus could become a
user-friendly user-agent for people learning how to use a computer and
the internet, instead of DRM-ridden heavily-exploitable Mozilla
software).

That’d also give yet another good and practical reason to learn (hence
prefer) emacs to gedit (note most people I knew who discovered gedit and
difference between pure text and odt, became to use gedit instead of
libreoffice: imagine if they knew emacs), visualcode, eclipse or
code::blocks (or vim, but that’s yet another minority), bring more
users, more non-only-text-editing users, and quicker push emacs for even
better interfaces and improved security.
Gene
2018-10-30 17:22:36 UTC
Permalink
Post by Garreau\, Alexandre
Post by Gene
The missing Course is NOT one which emphasizes `functional' this or
`Exploiting the hell out of Emacs Lisp as a Domain-specific language
which saves YOU time by allowing YOU to outsource and delegate
time-consuming, tedious, otherwise-MANUAL operations!'
Computer time is cheaper than dirt; YOUR TIME is priceless.
Indeed, that’s what I meant when I said that I/O and high-level user-end
facilities were what would make elisp a fantastic language for learning
programming, ...
Not only elisp as a would-be stand-alone language, but emacs as the dynamic engine providing the elisp REPL and the workshop-full-of-tools environment it provides.


To wit, folks are doing reproducible research via org-mode's code blocks ... although usually via a single language.

ref: https://www.youtube.com/results?search_query=youtube+reproducable+research+with+emacs

Can you imagine a self-paced, self-directed learner working his or her way through a programming problem hosted on Rosetta Code?

ref: http://rosettacode.org/wiki/Category:Emacs_Lisp

There are so many languages supported by code block feature of Org-mode that the student can perform their very own n-way comparative linguistics research.
Post by Garreau\, Alexandre
... *nonetheless* (I said this only to moderate what I was
saying about how great would elisp be as a teaching language)
It could be, if one started from a Natural Language Processing perspective.
I'd like to see someone start with the Noun-Phrase and Verb-Phrase `lists' from a Linguistic Typology perspective using two-or-more families of languages ... say Germanic languages (including English) and Romance languages.

ref: https://en.wikipedia.org/wiki/Linguistic_typology

If lisp can encode `trees' then why not sentence structure trees?

ref: https://duckduckgo.com/?q=Sentence+structure+trees&t=ffsb&ia=web


All too often the teaching of `programming languages' requires that the servile, obsequious, fawning `student' emphasizes syntax over semantics as he or she forfeits self-directed self-pacing while subordinating his or her curiosity to FEAR ... fear of a `bad grade', fear of not COMPLETING an `assignment' vis-a-vis some arbitrary and capricious `dead line', fear of losing position in class standing, etc.

It might be interesting to see a semantics-first approach to LEARNING computer languages from this sort of more_Natural-Language-Semantic_THAN_CS-syntactic approach.

I'm all for displacing didactics with mathetics.

ref: https://en.wikipedia.org/wiki/Mathetics

Cheers!

I'd certainly like to see Rosetta Code's assortment of coding examples re-presented via one-example-per-Org-mode_file via the exploitation of code blocks.

ref: https://duckduckgo.com/?q=org-mode+code+blocks&t=ffsb&ia=web
Van L
2018-10-31 03:54:19 UTC
Permalink
Post by Gene
To wit, folks are doing reproducible research
via org-mode's code blocks ... although usually
via a single language.
John Kitchin’s
org-mode is awesome
playlist show and tell
is awesome. 🍿
Thanks!
Eric S Fraga
2018-10-31 10:42:07 UTC
Permalink
Post by Gene
To wit, folks are doing reproducible research via org-mode's code
blocks ... although usually via a single language.
Yes, probably true. In my case, although most code blocks might be in
one given language, e.g. Julia in my case these days, there always other
code blocks in the same file for processing results, in languages such
as awk, sh, gnuplot, R, ... It's this aspect that makes org very
powerful for reproducible research.
--
Eric S Fraga via Emacs 27.0.50 & org 9.1.13 on Debian 9.5
Gene
2018-11-02 19:34:50 UTC
Permalink
Post by Van L
Post by Gene
To wit, folks are doing reproducible research
via org-mode's code blocks ... although usually
via a single language.
John Kitchin’s
org-mode is awesome
playlist show and tell
is awesome. 🍿
For those who'd like in on the awesomeness:
https://duckduckgo.com/?q=John+Kitchin%E2%80%99s++org-mode&t=ffsb&ia=videos
Post by Van L
Thanks!
I'm happy to have provided the hint.

Gene
Gene
2018-11-02 20:45:18 UTC
Permalink
Post by Gene
Post by Van L
Post by Gene
To wit, folks are doing reproducible research
via org-mode's code blocks ... although usually
via a single language.
John Kitchin’s
org-mode is awesome
playlist show and tell
is awesome. 🍿
https://duckduckgo.com/?q=John+Kitchin%E2%80%99s++org-mode&t=ffsb&ia=videos
Post by Van L
Thanks!
I'm happy to have provided the hint.
Gene
Richard Melville : Oct 25 11:18AM +0100
Post by Van L
repositories, I understand there is a gap where
it might not work seamlessly, and that this is
what is actually happening.
Now that you have Emacs-26 why not use EWW which comes pre-installed.
I've stopped using Emacs-w3m in favour of EWW,
mainly because EWW comes with the DuckDuckGo search engine.
This said ...

(eww
"John Kitchin org-mode"
)
;^-- to eval-last-sexp place `point' (EG cursor) here above then press C-x C-e

Gene
Continue reading on narkive:
Loading...