Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
On 2026-08-13 04:18, Lawrence D?Oliveiro wrote:
Perl was a major advance on, I would say, two counts: it
popularized regular expressions, and it popularized hash tables.
Regexps were popular from many Unix tools before Perl came up.
It was Ken Thompson who first put them in such practical use. And I
would guess it was in ed. And from ed, grep sprung as an executable.
And hash tables were popular from Awk, which influenced Perl as
well.
The rich syntax of Perl has never been too kind on me, but I always
wrote Perl happy (unlike Java, which always had the same fate of
Basic [to me]).
And the reason I don't use Perl myself: if the program gets larger,
I choose Common Lisp.
On 2026-08-13 17:25, Anton Antimo wrote:
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
On 2026-08-13 04:18, Lawrence D?Oliveiro wrote:It was Ken Thompson who first put them in such practical use. And I
On Wed, 12 Aug 2026 10:16:25 +0200, bixbox wrote:
Perl was a major advance on, I would say, two counts: it popularizedOn the subject of Common Lisp, I find it more than disturbing when >>>>>> a codebase lacks the basic usage of hash tables.
https://www.sbcl.org/manual/#hash-table-extensions
unless you find some code base that use hash table all over the place. >>>>> :)
regular expressions, and it popularized hash tables.
Regexps were popular from many Unix tools before Perl came up.
would guess it was in ed. And from ed, grep sprung as an executable.
Yes, and add all the grep variants, then sed, awk, pager programs,
ex/vi, expr, and more (tcl, m4, lex may be amongst them but I'm not
sure they had regexps from the beginning).
And there was a C-library available, so one could easily add regexp
functions to own tools!
And hash tables were popular from Awk, which influenced Perl as well.And the reason I don't use Perl myself: if the program gets larger,
I
choose Common Lisp. The rich syntax of Perl has never been too kind on
me, but I always wrote Perl happy (unlike Java, which always had the
same fate of Basic [to me]).
Oh, I've never seen Java and Basic mentioned in one sentence before.
At least we have got some nice abbreviated forms for regex elements
from Perl; mostly syntactic sugar, maybe, but very useful, IMO. Good
that they spread also into other regexp supporting tools so that you
don't have to buy Perl just for the accommodating regexp formulations.
On 2026-08-13 04:18, Lawrence D?Oliveiro wrote:
On Wed, 12 Aug 2026 10:16:25 +0200, bixbox wrote:
On the subject of Common Lisp, I find it more than disturbing when
a codebase lacks the basic usage of hash tables.
https://www.sbcl.org/manual/#hash-table-extensions
unless you find some code base that use hash table all over the place.
:)
Perl was a major advance on, I would say, two counts: it popularized
regular expressions, and it popularized hash tables.
Regexps were popular from many Unix tools before Perl came up.
And hash tables were popular from Awk, which influenced Perl
as well.
On 2026-08-13 04:18, Lawrence D?Oliveiro wrote:
On Wed, 12 Aug 2026 10:16:25 +0200, bixbox wrote:
Perl was a major advance on, I would say, two counts: it popularizedOn the subject of Common Lisp, I find it more than disturbing when
a codebase lacks the basic usage of hash tables.
https://www.sbcl.org/manual/#hash-table-extensions
unless you find some code base that use hash table all over the place. >>>> :)
regular expressions, and it popularized hash tables.
Regexps were popular from many Unix tools before Perl came up.
It was Ken Thompson who first put them in such practical use. And I
would guess it was in ed. And from ed, grep sprung as an executable.
And hash tables were popular from Awk, which influenced Perl as well.
And the reason I don't use Perl myself: if the program gets larger, I
choose Common Lisp. The rich syntax of Perl has never been too kind on
me, but I always wrote Perl happy (unlike Java, which always had the
same fate of Basic [to me]).
On Wed, 12 Aug 2026 10:16:25 +0200, bixbox wrote:
On the subject of Common Lisp, I find it more than disturbing when
a codebase lacks the basic usage of hash tables.
https://www.sbcl.org/manual/#hash-table-extensions
unless you find some code base that use hash table all over the
place. :)
Perl was a major advance on, I would say, two counts: it popularized
regular expressions, and it popularized hash tables. Putting those two features together made for an extremely useful high-level language,
which is what I think finally killed BASIC.
In article <115jbp0$189sr$1@dont-email.me>,
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
On 2026-08-13 04:18, Lawrence D?Oliveiro wrote:
Perl was a major advance on, I would say, two counts: it popularized
regular expressions, and it popularized hash tables.
Regexps were popular from many Unix tools before Perl came up.
And hash tables were popular from Awk, which influenced Perl
as well.
Hash tables for fast lookups had been known for decades before
awk was written, and regular expressions applied to text
processing predate Unix by some years. Thompson's paper
described a technique (what has come to be known as "Thompson's Construction") used on the IBM 7090 computer, predating Multics.
[...]
On Thu, 13 Aug 2026 02:18:14 -0000 (UTC)
Lawrence D?Oliveiro <ldo@nz.invalid> wrote:
On Wed, 12 Aug 2026 10:16:25 +0200, bixbox wrote:
On the subject of Common Lisp, I find it more than disturbing when
a codebase lacks the basic usage of hash tables.
https://www.sbcl.org/manual/#hash-table-extensions
unless you find some code base that use hash table all over the
place. :)
Perl was a major advance on, I would say, two counts: it popularized
regular expressions, and it popularized hash tables. Putting those two
features together made for an extremely useful high-level language,
which is what I think finally killed BASIC.
I would not call popularizing regular expression an advance.
IMHO, their popularity is rather unfortunate fact of computing life.
They are major attractor of mistakes and major source of surprize.
On 2026-08-14 14:30, Michael S wrote:
On Thu, 13 Aug 2026 02:18:14 -0000 (UTC)
Lawrence D?Oliveiro <ldo@nz.invalid> wrote:
On Wed, 12 Aug 2026 10:16:25 +0200, bixbox wrote:
On the subject of Common Lisp, I find it more than disturbing when
a codebase lacks the basic usage of hash tables.
ÿÿ https://www.sbcl.org/manual/#hash-table-extensions
unless you find some code base that use hash table all over the
place. :)
Perl was a major advance on, I would say, two counts: it popularized
regular expressions, and it popularized hash tables. Putting those two
features together made for an extremely useful high-level language,
which is what I think finally killed BASIC.
I would not call popularizing regular expression an advance.
Thanks for your opinion.
IMHO, their popularity is rather unfortunate fact of computing life.
They are major attractor of mistakes and major source of surprize.
Yes mistakes can happen everywhere, even when writing of posts
("surprize"). :-)ÿ And surprises appear where ignorance rules.
Regexps, OTOH, while appearing cryptic to the uninitiated, allow
in a compact way powerful search and match expression. Emulating
them by code is IME much more error-prone, though. They actually
help to reduce programming errors; this is my experience. (YMMV.)
Personally I used and appreciated them from the beginning. And
whenever I came in system contexts where they were not available
(back then typically in MS contexts) I cursed these systems for
their outdated primitive concepts that just made ones live hard.
You may be too old to learn or master them now but for the younger
folks around I strongly suggest to learn the concept of Regular
Expressions and identify where they can advantageously be used. It
certainly pays!
Janis
[...]
While I think it is reasonable to learn the ideas of regular
expressions, and a little of the simplest and most common types, I don't think it is practical for anyone to learn to "master" regexs.
For one thing, there are a dozen different variations.
And while a lot of
people find them useful on occasion, few need them regularly enough to
be confident in writing them (or reading them, which can often be harder).
Fortunately, there is no good reason for mastering them unless you
really do have a lot of use of them.
There are countless online
"generator" sites for them, as well as for testing them or interpreting existing ones (when you are faced with the "fun" of debugging someone
else's regex).
Like most things, they can be a useful tool, but some people get overly smart about them and produce monstrosities that no one understands and
are impossible to debug or maintain.ÿ Keep them reasonable, and they are fine.
While I think it is reasonable to learn the ideas of regular[...]
expressions, and a little of the simplest and most common types, I
don't think it is practical for anyone to learn to "master" regexs.
For one thing, there are a dozen different variations. And while a
lot of people find them useful on occasion, few need them regularly
enough to be confident in writing them (or reading them, which can
often be harder).
I've never really used Basic and while I tried dove into Java with a
lot of enthusiasm (as I did with C++ after feeling I was very good
with C), I really couldn't continue---too much bureaucracy, I felt.
In article <8733wijb3w.fsf@safunu.org>, Anton Antimo <anton@safunu.org> wrote:
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
On 2026-08-13 04:18, Lawrence Dƒ??Oliveiro wrote:
On Wed, 12 Aug 2026 10:16:25 +0200, bixbox wrote:
Perl was a major advance on, I would say, two counts: it popularizedOn the subject of Common Lisp, I find it more than disturbing when >>>>>> a codebase lacks the basic usage of hash tables.
https://www.sbcl.org/manual/#hash-table-extensions
unless you find some code base that use hash table all over the place. >>>>> :)
regular expressions, and it popularized hash tables.
Regexps were popular from many Unix tools before Perl came up.
It was Ken Thompson who first put them in such practical use. And I
would guess it was in ed. And from ed, grep sprung as an executable.
Ken certainly popularized their use, though not in ed: it was in
QED, which predated ed by some number of years, and was used on
CTSS. Thompson's CACM paper on NFA simulation predated Unix
(and thus ed) by a year or so:
https://dl.acm.org/doi/10.1145/363347.363387
- Dan C.
Paul Rubin <no.email@nospam.invalid> wrote:
tfb <tfb@work.it.out> writes:
No single language has 1% of constructs anyone might ever want.
If I can code fluently in a language, that is, I can think entirely
about the application-level problem I'm trying to solve and not putting
much effort into choosing language constructs, then it's supplying 100%
of what I want at least at that moment. That's great.
Here's the thing: you are one person. There are, shockingly, other people
in the world who might want to write programs. You may also have noted
that more than one programming language exists. Although you are clearly happy with whatever language it is you use and never inclined to look at anything else, perhaps some if these other languages might exist because other people might want a different set of constructs, don't you think?
I have no idea what you're talking about.
Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> wrote:
I have no idea what you're talking about.
You really don't, no.
Hint: I am not talking about whether you know the language you are using
well enough, but whether the language you are using provides the constructs you need to address the problem you are solving in it succinctly.
I simply accuse you of having poor reading comprehension, and even worse writing comprehension.
I simply accuse you of having poor reading comprehension, and even worse
writing comprehension.
Do you really think that a thread about language extensibility and whether any given language could have enough co structs to satisfy all posdible
users of that language had suddenly changed topic to how familiar an individual was with a given language? Really? Oh well.
Yes, because that's how human to human real world conversations work.
Being strictly /on topic/ without any deviation is a social construct invented by psychopaths for psychopaths. It's because they can't deal
with real human to human interactions, and have to /hide themselves/,
and pretend.
All. The. Time.
You are being dangerously close to expose yourself as a psychopath, so I suggest you stop replying to me, and /touch grass/ or something.
Do you really think that a thread about language extensibility and whether any given language could have enough co structs to satisfy all posdible
users of that language had suddenly changed topic to how familiar an individual was with a given language?
Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> wrote:
Yes, because that's how human to human real world conversations work.
Being strictly /on topic/ without any deviation is a social construct
invented by psychopaths for psychopaths. It's because they can't deal
with real human to human interactions, and have to /hide themselves/,
and pretend.
All. The. Time.
You are being dangerously close to expose yourself as a psychopath, so I
suggest you stop replying to me, and /touch grass/ or something.
I must admit to being pretty amused by how quickly some random internet buffoon, who very obviously is not a native English speaker, has moved from accusing me of poor English reading comprehension ? and 'writing comprehension', which as a native English speaker I assume must mean 'comprehensible writing', but I dunno ? to saying I'm about to expose
myself as a psychopath because I 'can't deal with human to human interactions' (which is ... funny). (I half expect the same person is now wondering whether I'm using an LLM because of the spaced dashes. Hint:
no.)
And now, because I admit to laughing at you, it will no doubt confirm whatever pop-psychology rubbish you want to believe about people you've
never met and never will. No: quite ordinary people laugh at fools, it
turns put: there's a whole genre of comedy based on that.
So be it.
tfb <tfb@work.it.out> writes:
Do you really think that a thread about language extensibility and whether >> any given language could have enough co structs to satisfy all posdible
users of that language had suddenly changed topic to how familiar an
individual was with a given language?
Fluency does matter.
If fluency in a language lets me do most of my daily tasks with at most occasional inconvenience, I'd call the language satisfactory. Stuff
like macros make inconvenient things convenient. They don't make the impossible possible. And if the language makes enough everyday things convenient, it's ok with me if some inconvenient ones are left over.
So I haven't felt lack of macros to be a serious shortcoming of non-Lisp languages. There are usually alternate mechanisms offered, like
function decorators in Python.
Fluency does matter.
If fluency in a language lets me do most of my daily tasks with at most occasional inconvenience, I'd call the language satisfactory. Stuff
like macros make inconvenient things convenient. They don't make the impossible possible. And if the language makes enough everyday things convenient, it's ok with me if some inconvenient ones are left over.
So I haven't felt lack of macros to be a serious shortcoming of non-Lisp languages. There are usually alternate mechanisms offered, like
function decorators in Python.
There would probably be some extremists who would say, well, if only
everyone saw and understood the blinding light of (Python|Ruby|Lisp)
then they would achieve true happiness.
It should be possible to write functions in an existing language which
map constructs expressing that new (or borrowed) idea into the
existing language. Those functions have a name: macros.
tfb <tfb@work.it.out> writes:
There would probably be some extremists who would say, well, if only
everyone saw and understood the blinding light of (Python|Ruby|Lisp)
then they would achieve true happiness.
The Blub fallacy. Yes it applies to CL just like to anything else.
It should be possible to write functions in an existing language which
map constructs expressing that new (or borrowed) idea into the
existing language. Those functions have a name: macros.
Meh, if the old language can express the new idea at all, then the new
idea isn't that big of a change. Like try implementing Scheme
continuations as macros in CL.
There's a theoretical paper by Felleisen about what really adds
expressive power to programming languages. Sadly, I don't understand
it, but maybe someday.
https://www2.ccs.neu.edu/racket/pubs/scp91-felleisen.pdf
Like try implementing Scheme continuations as macros in CL.Doug Hoyte does it in Let Over Lambda.
https://www2.ccs.neu.edu/racket/pubs/scp91-felleisen.pdfCare to share what you don't understand about the paper?
Anton Antimo <anton@safunu.org> writes:
Like try implementing Scheme continuations as macros in CL.Doug Hoyte does it in Let Over Lambda.
I don't see how that is possible, other than by using the Turing
completeness of CL macros to implement Scheme, more or less.
Continuations automatically give you stackful coroutines and that
requires runtime support that's not built into CL. I haven't read that
book though.
| Sysop: | Tetrazocine |
|---|---|
| Location: | Melbourne, VIC, Australia |
| Users: | 9 |
| Nodes: | 8 (0 / 8) |
| Uptime: | 245:21:46 |
| Calls: | 220 |
| Files: | 21,513 |
| Messages: | 83,782 |