You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
-
@suetanvil A lot of those examples were all about refusing to solve the difficult problem and realising you could get away with it, however. Forth and Unix in particular. Even today, Forth tends towards radical iconoclasm.
@athas False, except *maybe* for later Forth. Unix was always "do abstraction layers perfectly or not at all".
I've seen *vast* quantities of bitching about Unix scripting and it *never* turns into anything better. The best you get is PowerShell which is... a thing. (Yes, I know about nushell; no, I don't want to argue about it.)
(And as for Lisp, an army of Lisp weenies is currently tracking you down. I suggest changing your name and running into the wilderness.)
-
(Larry Wall is the exception that proves the rule.)
@suetanvil possibly TeX also
-
You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
Lisp is six functions. Forth is 200 bytes. Unix is just tiny programs and text files. The original web is just a hacked SMTP server sending SGML files. And yet, it does *that*.
The huge, complex stuff--Windows, Java, the modern web--is all the work of mediocre thinkers with big budgets and too little time.
@suetanvil - and then in practical terms, to do anything at all, you need a system (in the form of a web browser) so complex that it can only be produced by a handful of huge corporations.
-
You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
Lisp is six functions. Forth is 200 bytes. Unix is just tiny programs and text files. The original web is just a hacked SMTP server sending SGML files. And yet, it does *that*.
The huge, complex stuff--Windows, Java, the modern web--is all the work of mediocre thinkers with big budgets and too little time.
@suetanvil @bsdphk looking at Kubernetes like

-
@suetanvil A lot of those examples were all about refusing to solve the difficult problem and realising you could get away with it, however. Forth and Unix in particular. Even today, Forth tends towards radical iconoclasm.
@athas @suetanvil "refusing to solve the difficult problem and realising you can get away with it" is exactly what software engineering is about. a lot of "difficult problems" turn out to be seventeen simple problems in a trenchcoat, and you only need to solve the one that applies to you; conversely, sometimes *over*generalising a difficult problem turns it into a simpler one - there's a couple of examples of that in Thinking Forth
the point isn't to shy away from the difficult problem, but not to take it at face value - to prod at it until you're absolutely certain you need to solve exactly all of it.
-
You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
Lisp is six functions. Forth is 200 bytes. Unix is just tiny programs and text files. The original web is just a hacked SMTP server sending SGML files. And yet, it does *that*.
The huge, complex stuff--Windows, Java, the modern web--is all the work of mediocre thinkers with big budgets and too little time.
I like the sentiment, but in practice, systems become complex because real humans demand complex behaviors.
The delightful simplicity in lisp and forth works when the problems you solve are delightfully simple and can all be kept in your head at once.
Yes, there are also people who add needless complexity, and that should all be removed, but the fundamental world is super complex and over simplifying only leads to a poor fit to real requirements.
-
@suetanvil possibly TeX also
@clew the thing that makes TeX what it is is metafont, which is allegedly elegant if you happen to be the kind of math genius who can understand it in the first place. (In whose number I am not!)
I'd argue that perl is inherently simple, too; it's like that so you can best express the True Laziness for whatever coding problem you happen to have. It's not hard to argue that this expectation of philosophical discipline prevents perl from being a general purpose programming language.
-
@athas False, except *maybe* for later Forth. Unix was always "do abstraction layers perfectly or not at all".
I've seen *vast* quantities of bitching about Unix scripting and it *never* turns into anything better. The best you get is PowerShell which is... a thing. (Yes, I know about nushell; no, I don't want to argue about it.)
(And as for Lisp, an army of Lisp weenies is currently tracking you down. I suggest changing your name and running into the wilderness.)
@suetanvil@freeradical.zone @athas@freeradical.zone Unix did many bad abstractions. In fact you would be hard pressed to find any that is good from the point of view of what we know today.
But that's not the point. The point is that the industry is rotten when in 40 years it cannot move on from those bad abstractions.
And as you pointed out people do know how to solve many of the problems that unix tried to solve in a better way.
The problem is industry inertia. People get certifications for using the old cruft, it's very very hard to find a job that involves making something new
-
@athas False, except *maybe* for later Forth. Unix was always "do abstraction layers perfectly or not at all".
I've seen *vast* quantities of bitching about Unix scripting and it *never* turns into anything better. The best you get is PowerShell which is... a thing. (Yes, I know about nushell; no, I don't want to argue about it.)
(And as for Lisp, an army of Lisp weenies is currently tracking you down. I suggest changing your name and running into the wilderness.)
> Unix was always "do abstraction layers perfectly or not at all".
That's what Plan 9 did because Unix very famously did *not*.
-
R AodeRelay shared this topic
-
@suetanvil - and then in practical terms, to do anything at all, you need a system (in the form of a web browser) so complex that it can only be produced by a handful of huge corporations.
@philcowans @suetanvil um, no. just because we do it that way *now*, does not mean it's the only way.
-
You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
Lisp is six functions. Forth is 200 bytes. Unix is just tiny programs and text files. The original web is just a hacked SMTP server sending SGML files. And yet, it does *that*.
The huge, complex stuff--Windows, Java, the modern web--is all the work of mediocre thinkers with big budgets and too little time.
> The original web is just a hacked SMTP server sending SGML files.
Actually, it's an enhanced version of 'finger' protocol. SMTP is much more complex.
The fact that the web is literally an extended finger explains so much.
-
I like the sentiment, but in practice, systems become complex because real humans demand complex behaviors.
The delightful simplicity in lisp and forth works when the problems you solve are delightfully simple and can all be kept in your head at once.
Yes, there are also people who add needless complexity, and that should all be removed, but the fundamental world is super complex and over simplifying only leads to a poor fit to real requirements.
Pretty much any problem is easier to implement in Lisp or Forth, because reflection is a first-class feature of both languages.
-
@athas @suetanvil "refusing to solve the difficult problem and realising you can get away with it" is exactly what software engineering is about. a lot of "difficult problems" turn out to be seventeen simple problems in a trenchcoat, and you only need to solve the one that applies to you; conversely, sometimes *over*generalising a difficult problem turns it into a simpler one - there's a couple of examples of that in Thinking Forth
the point isn't to shy away from the difficult problem, but not to take it at face value - to prod at it until you're absolutely certain you need to solve exactly all of it.
@millihertz @suetanvil I think the main lesson is to say "no, that problem is not worth solving 'properly'". Especially if the cost of solving it is high. That doesn't require computer genius; it mostly requires stubbornness and ego. Saying no to features is hard.
-
You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
Lisp is six functions. Forth is 200 bytes. Unix is just tiny programs and text files. The original web is just a hacked SMTP server sending SGML files. And yet, it does *that*.
The huge, complex stuff--Windows, Java, the modern web--is all the work of mediocre thinkers with big budgets and too little time.
@suetanvil as a proud #OpenSCAD user, I find it funny, when big commercial CAD software makes such a big deal out of their new revolutionary parametric design capabilities
-
You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
Lisp is six functions. Forth is 200 bytes. Unix is just tiny programs and text files. The original web is just a hacked SMTP server sending SGML files. And yet, it does *that*.
The huge, complex stuff--Windows, Java, the modern web--is all the work of mediocre thinkers with big budgets and too little time.
@suetanvil all of the gains from Moore's Law _should_ have accrued to the software user, but instead was stolen by corporations to spend on software stack abstractions
want to render a paragraph of text on a webpage? load this 20MB JS bundle
-
@athas False, except *maybe* for later Forth. Unix was always "do abstraction layers perfectly or not at all".
I've seen *vast* quantities of bitching about Unix scripting and it *never* turns into anything better. The best you get is PowerShell which is... a thing. (Yes, I know about nushell; no, I don't want to argue about it.)
(And as for Lisp, an army of Lisp weenies is currently tracking you down. I suggest changing your name and running into the wilderness.)
@suetanvil @athas I feel obliged to link to the classic essay "The Rise of Worse Is Better" (1991) here, which argues that C and Unix succeeded because they did not solve many problems perfectly
-
Pretty much any problem is easier to implement in Lisp or Forth, because reflection is a first-class feature of both languages.
I've built systems with millions of users in Erlang, Haskell, PHP, Typescript, C++, python, and go. I've built editor customizations and embedded scripting in lisp. I've built nothing real in Forth, but hobby projects. Dynamically tag checked languages with self modifying code are maintenance nightmares at scale.
Best experience was Haskell; most pragmatic was Typescript.
Anyway.
-
@athas @suetanvil "refusing to solve the difficult problem and realising you can get away with it" is exactly what software engineering is about. a lot of "difficult problems" turn out to be seventeen simple problems in a trenchcoat, and you only need to solve the one that applies to you; conversely, sometimes *over*generalising a difficult problem turns it into a simpler one - there's a couple of examples of that in Thinking Forth
the point isn't to shy away from the difficult problem, but not to take it at face value - to prod at it until you're absolutely certain you need to solve exactly all of it.
@millihertz @athas @suetanvil "17 simple problems in a trenchcoat"





-
You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
Lisp is six functions. Forth is 200 bytes. Unix is just tiny programs and text files. The original web is just a hacked SMTP server sending SGML files. And yet, it does *that*.
The huge, complex stuff--Windows, Java, the modern web--is all the work of mediocre thinkers with big budgets and too little time.
@suetanvil: "It seems that perfection is not obtained when there is nothing left to add, but when there is nothing left to remove" - Antoine de Saint-Éxupery
-
You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
Lisp is six functions. Forth is 200 bytes. Unix is just tiny programs and text files. The original web is just a hacked SMTP server sending SGML files. And yet, it does *that*.
The huge, complex stuff--Windows, Java, the modern web--is all the work of mediocre thinkers with big budgets and too little time.
@suetanvil IPv4 comes to mind.