[GoLUG] Scheme -- guile3, may all your parentheses be in the correct order

Barry Fishman barry at ecubist.org
Tue Aug 20 13:01:25 EDT 2024


On 2024-08-20 07:45:39 GMT, David Billsbrough wrote:
> Hello Hendrik,
>
>> The most significant change in the direction of Lisp was the
>> invention of Scheme.
>
>> Which did nothing to change its "strangeness".
>
> It was NOT so 'strange' that it would encourage me to start using the
> *emacs* editor instead of the *vim* editor!
>
> So all should be *good*!

Ouch!

[The following is probably something nobody wants to hear, but I need
 to rant periodically to clear my system.  No need to read on.]

I was a happy VI user a long time ago.

My home computer was a second hand Sun 4/100 running BSD 4.2 Unix.  I
even had a UUCP connection to where I worked and send mail, net news and
files back and forth.  So from my desk at work I could download software
from the internet and copy it to my home system.

I did experiment with Emacs (First Gosling, then GNU as it came along)
but found it too strange to use regularly for editing.  I did eventually
use it as a Mail reader, because it worked well with the Rand MH
mail clients and NNTP news I had been using since my first interactions
on Unix (and ARPAnet) via VT-100 terminals in the 1980s.

Later [1990's] a company where I was working suddenly decided that
Windows NT was the place we all needed to be, and we all got our nice
Sun workstations replaced with PCs, to develop a large C++ system on
Windows NT.

I managed set up Cygwin, but found it not very practical.  There was no
usable VI for Windows.  I needed to move from Perl to Python.  I could
swap the Control and Cap-Lock keys, and use "Brief" bindings which were
close to the Emacs style bindings I was used to from Bash and my use of
Emacs.  I could also build Emacs natively, and with some ported shell
utilities (but not the shell) could get a reasonable Emacs environment.

I could copy over my mail folders and continue to use Emacs for reading
the Mail and Net news.  Emacs served as a beachhead for me to survive on
what I found to be a horrendously hostile Windows environment.

But I still needed to use Visual Studio and Microsoft Word.  I could
however layer my own Emacs style key bindings (but not VI) in Word, and
use the Brief bindings in Studio.  [This is more that I can do with
Gnome4 or Plasma desktops.]

I was therefore forced to get used to the Emacs key bindings, and got
lots of practice.  I even found the C++ language support better in Emacs
than in Visual Studio, which I felt has a less powerful class browser,
especially when I was working with multiple overlapping Window's
"projects".

By the time I left that company I no longer found Emacs strange, and
still continue to use it for most of my software editing, although there
are some things, like editing some record oriented files, that I find
quicker to do in Vim.

I use several Vim extensions to get compatible features between Vim and
Emacs, such as automatically updated timestamps, and lint checks, and
rainbow parenthesis coloring.

But Emacs has a degree of malleability that I can not imagine being
done in any other language but Lisp.  The original Emacs was written as
just a set of bindings on TECO which was very brittle.  However the EINE
port to the Lisp machine and Multics Emacs ports used Lisp and made it
more than just a set of editor Key bindings.  Later ZWEI and Symbolicus
Zmacs developed it into more a programming environment that eventually
influenced the how Gnu Emacs was designed.

Indirectly, using Emacs, along with the problems I had with maintaining
a new large scale, multi-programmer project in a very un-malleable C++
language, started me at moving away from C++ towards Common Lisp, then
Scheme, and later Haskell.  Now I'm not dependent on what language
people will pay me to use.

I have also been using Vala to implement GTK software with some
stability in an environment where Haskell and Gnome projects seem to
like the idea of breaking everyone's software every 6 months.  Although
Haskell breaks it to make it more flexible and "pure", and Gnome breaks
it to make it less flexible.  Unfortunately I can't find another modern
graphical toolkit that lets me control my keyboard bindings.

To me:

 - Vim is great for short line oriented files, or looking at large files
   when you don't want a random keystroke to stick junk in your file
   that you won't see till much later. It interacts well with piping
   sections of your text though external programs and search/replace
   operations.

 - Emacs is great for large files where you need to move around code
   sections and redo nesting or formatting your code.  Its language
   sensitive modes work better with helping you fix issues.  It is also
   better at giving interactive help about your programming language as
   well as its own features.

 - Vala is just C++ with a much better object model.

 - Haskell is just Scheme with every criticism of Lisp taken to heart,
   including those that were wrong.  It does have lazy evaluation and
   curry'ed arguments which is the two areas Scheme is much less
   malleable, but Haskell looses macros and has a crude "Template
   Haskell" means to get around some of the problem.  Haskell does make
   Rust look primitive and ugly with respect to how the same things are
   done in Haskell, which has made learning Rust less attractive for me.

 - JavaScript is just a primitive Scheme with it's syntax changed to
   look like C.  It really shows how lisp syntax works out better
   as an extension language than any infix language.

But, of course these are just my opinions.  And many (maybe most) people
will disagree (or just be board) with hearing it.

Anyway my power just went out.

-- 
Barry Fishman



More information about the GoLUG mailing list