You can tell if someone is a computering supergenius if their solution to a difficult problem looks like nothing.
-
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.
-
@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.
That’s exactly how I feel about web frameworks and bundling. For most websites, you can just do without.
-
R ActivityRelay shared this topic