7 ms·
PG’s “blub” thesis is particularly terrible, even for him. It’s just a way for him to euphemistically say that programmers who don’t recognize how much better h
by sidlls 4y ago
PG’s “blub” thesis is particularly terrible, even for him. It’s just a way for him to euphemistically say that programmers who don’t recognize how much better his language is are all dumb. PG’s problem is that he thinks too highly of his own intelligence and can’t seem to understand that his “insights” (especially “blub” style ones) are just not all that deep or useful. So this article is basically deconstructing a garbage thesis that nobody should seriously consider anyway.
- darkerside 4y agoI take it you are a reformed Lisp programmer?
- sidlls 4y agoNo, I just refuse to consider PG to be a walking deity. Personally I have never understood the fascination with his essays. They are generally poorly structured and lacking in any good quality supporting references. If we were submitting his essays in an English or critical thinking class for a grade I suspect the papers would be drenched in red correction ink.
- JoshCole 4y agoYour post would also get a failing grade in an English essay. This says little about your post, because you didn't write it to get a grade in an English class. You are setting up a false evaluation context - it is like watching a competition at the Olympics wherein people fire at a target, but then drawing a circle in your bedroom and saying they missed. Of course they missed: in your post you weren't aiming at an English essay grade so it says nothing about the quality of your post that your comment would fail to get a good grade. In like manner - unless we suppose you are being hypocritical - we can conclude that as Paul was not trying to get a good grade in an English class it matters little whether or not he would receive a good grade within one. The extent to which this false evaluation context is unfair is belied by your need to ignore the actual evaluation context. His essays were written in part to help him think through problems related to starting companies, because he founded and popularized startup incubators. The startup incubator wasn't just successful, it was successful to the point of broad influence. Others have since copied his approach. Now putting aside that the comparison is ridiculous: your guess as to what he would get in grades is probably also wrong: How to Disagree is an example of an essay that would do very well in a Critical Thinking course; actually some people who teach Critical Thinking suggest people ought to read it.
- hajile 4y ago
- politician 4y agoGo’s goto is pretty useful, tbh.
- preseinger 4y agoFor code generators, sure. For code written by humans, never.
- aaaaaaaaaaab 4y agoI guess you don’t use Linux much, because its codebase has tons of gotos.
- maccard 4y agoWhich are only needed because of C's lacking featureset. RAII (c++'s choice, and my personal favourite) and defer (go uses this and it's fine but is more limited), are both far superior to goto for error handling.
- yakak 4y agoYes, for cleanup at the bottom of functions goto is the go to. I think C limits one to using goto or something worse, but there's a good argument that you could go to rust instead.
- Gibbon1 4y agogoto is better than exceptions because goto is scoped.
- kaba0 4y agoThey are orthogonal features. Also, exceptions are not long jumps either, they have well-defined semantics of only traveling through the call stack.
- aaaaaaaaaaab 4y agoI’ve been saying this for years; PG is just (more) benign version of Thiel.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- colordrops 4y agoThe idea that languages are on a single dimensional linear continuum of objectively better or worse is the most flawed notion in, and foundation of, the article.
- deleted 4y ago[deleted]
- Animats 4y ago> PG’s “blub” thesis is particularly terrible, even for him. How do you tell what your language is missing? That's a real issue. If you ask people, they usually ask for incremental improvements. Useful directions for work: - Much of programming today is hooking thing A up to things B, C, and D. All have constraints. Are they properly satisfied? How do you tell? Secondary problem: If they don't quite connect, and you can't change them, can you bash them into connecting? Type theorists work on the first of those two issues, but usually ignore the second. - Much software is plumbing plus algorithms. Classically, algorithms were the center of attention. But today, most of the algorithms are off the shelf, while each system has unique plumbing. Should languages be plumbing-first? Attempts in this direction (modules, APIs, CORBA, XML schemas, JSON schemas, REST, etc.) have usually assumed a master-slave relationship, where one side defines an interface and the other struggles to match it. Is a symmetrical approach possible? - You can have all the CPUs you want, but they're not going to speed up much. We've been at 3-4 GHz for well over a decade now. Parallelism in languages has improved quite a bit, but it's improved from "it's not the language's problem" to "we have some reasonable primitives now". Not to "as easy as sequential". - Why does the complexity of web pages seem to grow without bound, despite them not doing all that much more? - When it really, really needs to work right, software isn't that good. Even for small programs. Consider Solidity and the track record of smart contract hacks. - Some things don't need to be Turing-complete. We don't have good ways to make them. Older technologies, such as ladder diagrams, decision tables, and simple regular expressions, have fallen out of favor. Some of those are exhaustively testable, which is useful.
- pdimitar 4y ago> - You can have all the CPUs you want, but they're not going to speed up much. We've been at 3-4 GHz for well over a decade now. Parallelism in languages has improved quite a bit, but it's improved from "it's not the language's problem" to "we have some reasonable primitives now". Not to "as easy as sequential". Mostly correct but there are exceptions: Erlang/Elixir and Golang in particular make concurrent and parallel code extremely easy to write and 99% of what can go wrong is already taken care of for you. Rust makes pretty good strides as well, and OCaml 5.0, once stabilized, promises to give you an ML language with GC memory management and very good parallel primitives that its community will likely quickly develop further. It's super strange to me that most programmers actually refuse to acknowledge that there is such a thing as the right tool for the job (not talking about you, you obviously are more open-minded, judging by your comment). That seems to be the bane of the modern programming -- the people and their bias. A lot of us became wannabe council of elders. And I completely agree that non-Turing-complete technologies are extremely useful. I've been preaching for a configuration language that deliberately omits several important things (like passing functions around or recursion) so you can never hack a system through a malicious config. Alas it seems nobody cares until I sit down and write it... > - Why does the complexity of web pages seem to grow without bound, despite them not doing all that much more? Sigh. I'd like to know as well. Likely the newer generation are a bit spoiled and feel they can pile complexity on top of other complexity forever? Or, much more likely, nobody sticks around for a long time in their workplace and they are like "frak that, the next guy is gonna fix it"? Who knows. But it's indeed severely not okay.
- dang 4y agoPlease don't cross into personal attack in HN comments, regarldess of how wrong someone is or you feel they are (or who they are). Your comment also crosses into internet psychological diagnosis ("PG’s problem is that he thinks [etc.]"), which is particularly sloppy and nasty. There's basically never enough information to justify this, since none of us has a mind reader. You can make your substantive points without any of that, so please do that instead. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html