Live data from Hacker News

Blub Paradox (2014)

wiki.c2.com

21–30 of 63 posts

Re: Blub Paradox (2014)

#21
post #10

Earlier quoted context omitted.

I'd love to know Lisp, just like I'd love to know Python. I have no experience in either (I come mostly from Java, javascript with some Ruby and some ancient C/C++ experience). When I look at Python code, I understand what it does. I don't think I've ever written any Python, but I think I could sit down and be productive within a day. Lisp looks like complete gobbledygook to me. I'd love to be able to understand it a…

But that's because all the languages you know are basically dialects of each other because they all descend from ALGOL, not because they are inherently easier to understand. Similarly, someone trained in Lisp would find things like Scheme and Clojure easier to understand than something like Python because those likewise are dialects of Lisp. I'd strongly recommend studying languages different from ones you know -- th…

I did Prolog back in university. That was really cool. Miranda was our introduction in functional programming there. I don't know Haskell, but I really like some aspects of Scala. But Scala is still not all that different from what I know. Lisp is way more alien than that.

Re: Blub Paradox (2014)

#22
post #10

Earlier quoted context omitted.

I'd love to know Lisp, just like I'd love to know Python. I have no experience in either (I come mostly from Java, javascript with some Ruby and some ancient C/C++ experience). When I look at Python code, I understand what it does. I don't think I've ever written any Python, but I think I could sit down and be productive within a day. Lisp looks like complete gobbledygook to me. I'd love to be able to understand it a…

But that's because all the languages you know are basically dialects of each other because they all descend from ALGOL, not because they are inherently easier to understand. Similarly, someone trained in Lisp would find things like Scheme and Clojure easier to understand than something like Python because those likewise are dialects of Lisp. I'd strongly recommend studying languages different from ones you know -- th…

An objective test of "easy to understand" would be, how close does the code look, to how a programmer might pseudocode it on a whiteboard? I don't recall seeing much significant difference between how Java, Python, or Javascript devs pseudocode on a whiteboard, so it's something approximately close to how a human thinks about it in the absence of syntax issues.

I think Python code looks closer to this pseudocode than Lisp does. Once you become an experienced Lisp programmer, it probably takes little effort to convert that mental pseudocode into Lisp, but I believe it does take intrinsically less effort in Python.

Re: Blub Paradox (2014)

#23
post #18
post #14

Earlier quoted context omitted.

Or, iOS would never took off, because no one would want to write apps for it.

Yeah, there is this weird idea on HN that any language can become popular if some big ecosystem adopts it before it becomes big. The reality is more complicated of course. Familiarity, simplicity, learning curve all matter much more, than people want to believe.

If Steve Jobs when announcing the iPhone SDK had said that Apple's way forward was Lisp and how great the Meta-Object Protocol[1] was for the future, developers, regardless of their beliefs, would have gone and made Lisp popular. Some things have the killer use.

Look at Javascript, it is not a good enough language to have developed without Netscape putting it into the browser. It had the killer application that you were basically forced to use. I love prototype-based inheritance but even NewtonScript was a better language.

1) Steve Job's videos for NeXT explaining objects were pretty amazing

Re: Blub Paradox (2014)

#24
post #10

Earlier quoted context omitted.

I'd love to know Lisp, just like I'd love to know Python. I have no experience in either (I come mostly from Java, javascript with some Ruby and some ancient C/C++ experience). When I look at Python code, I understand what it does. I don't think I've ever written any Python, but I think I could sit down and be productive within a day. Lisp looks like complete gobbledygook to me. I'd love to be able to understand it a…

> Lisp looks like complete gobbledygook to me. Might that be Clojure, rather than Lisp, that you're looking at, without an extensive functional programming background? Some classic Lisp code, too, will look like gobbledygook if you've never had a tutorial, due to unfamiliar symbols. If you don't know what is a "cons cell" or the functions car and cdr , for instance. Surely, you can guess what this is doing: (let ((x…

> unfamiliar symbols. If you don't know what is a "cons cell" or the functions car and cdr, for instance.

Those short, cryptic names are definitely part of it. It's unfamiliar syntax, and overdose of brackets for added confusion, and in the middle of it all, words that mean nothing to me.

Stuff like cout, puts or the printf syntax also take some getting used to if they're new to you, but you get more context with them.

And yes, I can guess what your let and print do, but still, the excessive brackets, unusual assignments and prefix notation, give the whole thing a lot of noise.

Re: Blub Paradox (2014)

#25
post #3

It's kind of interesting in the 2001 essay that invented blub it was suggested as a hypothesis as to >And if Lisp is so great, why doesn't everyone use it? Suggesting programmers in a blub language don't realise it's power. I get the impression in the 18 or so years subsequently that the main reason for the low uptake of Lisp is it's power enables people to write clever code that other programmers have quite a job to…

Lisp isn't really a language so much as a language construction toolkit, because macros are like language features (e.g. any macro you're using needs dedicated support from any tools that you want to use on your codebase).

Effective lisp organizations will generally use a small handful of general-purpose macros throughout their codebases - but at that point you might as well standardise that handful of macros as a language in its own right and you'd have better tool support, better interoperability between libraries (since you don't end up with different libraries choosing slightly different macros for the same thing) and so on.

Also lisp is a blub language compared to a language with a modern static type system. It's not that people don't want lisp-like expressiveness, but it turns out other languages can offer more without compromising on that.

Re: Blub Paradox (2014)

#26
post #20

Earlier quoted context omitted.

> Lisp looks like complete gobbledygook to me. Might that be Clojure, rather than Lisp, that you're looking at, without an extensive functional programming background? Some classic Lisp code, too, will look like gobbledygook if you've never had a tutorial, due to unfamiliar symbols. If you don't know what is a "cons cell" or the functions car and cdr , for instance. Surely, you can guess what this is doing: (let ((x…

> Surely, you can guess what this is doing: Only if you got far enough in your background/education to understand prefix notation. Most people aren't there.

All the other languages OP mentioned make a good deal of use of prefix notations.

f(x,y) is a prefix notation and so are command languages: "command arg ...". Statements like "while (x) { y }" or "return z" are also a prefix notation, as well as declarations like "struct foo" or "int x, y".

Re: Blub Paradox (2014)

#27
post #15

Earlier quoted context omitted.

But that's because all the languages you know are basically dialects of each other because they all descend from ALGOL, not because they are inherently easier to understand. Similarly, someone trained in Lisp would find things like Scheme and Clojure easier to understand than something like Python because those likewise are dialects of Lisp. I'd strongly recommend studying languages different from ones you know -- th…

> not because they are inherently easier to understand I'm honestly not sure that that's true. I would bet money that someone who primarily works in Lisp would still have an easier time sitting down and reading Python code than someone who works in Python sitting down and reading Lisp, because I think it might truly be inherently easier to understand. There is intrinsic meaning in: x = 5 let x = 5 etc., insofar as th…

There is no such thing as "intrinsic meaning", and I think you might be confusing "human language" and "english-like". There is astonishing variation in human language.

Re: Blub Paradox (2014)

#28
post #17

Earlier quoted context omitted.

> If iOS had required Lisp instead of Objective-C, then Lisp would have been popular right now. It could have dragged iOS popularity with it. Pushing, promoting or forcing something is not enough for it to become popular and widely used.

Given the hype and the company, there was no way Lisp would have drug it down. The only way for it to affect iOS was to provide a worse environment than the web apps. People would have found a way just as the reluctant found a way with Objective-C. Ask Sun about Java and their promotional campaign. When a teacher at a community college in North Dakota gets a call and sent a book to help him decide to teach their lang…

> People would have found a way just as the reluctant found a way with Objective-C

But the people most likely to develop iOS apps at the start were likely already familiar with Objective-C, I think, due to it being the favoured app platform on OSX, no?

Re: Blub Paradox (2014)

#29

Earlier quoted context omitted.

Given the hype and the company, there was no way Lisp would have drug it down. The only way for it to affect iOS was to provide a worse environment than the web apps. People would have found a way just as the reluctant found a way with Objective-C. Ask Sun about Java and their promotional campaign. When a teacher at a community college in North Dakota gets a call and sent a book to help him decide to teach their lang…

> People would have found a way just as the reluctant found a way with Objective-C But the people most likely to develop iOS apps at the start were likely already familiar with Objective-C, I think, due to it being the favoured app platform on OSX, no?

I would have thought the same thing, but if you look at a lot of the early app developers, they did come from other platforms. It was easier for an OS X developer, but there were a lot of new people who complained about Objective-C but just got on with it. A lot of early tutorials are really geared to the bigger group of new developers.

On a side note, I really do believe the people behind Swift hate Objective-C and a lot of the old complaints are "solved" by Swift.

Re: Blub Paradox (2014)

#30
post #15

Earlier quoted context omitted.

But that's because all the languages you know are basically dialects of each other because they all descend from ALGOL, not because they are inherently easier to understand. Similarly, someone trained in Lisp would find things like Scheme and Clojure easier to understand than something like Python because those likewise are dialects of Lisp. I'd strongly recommend studying languages different from ones you know -- th…

> not because they are inherently easier to understand I'm honestly not sure that that's true. I would bet money that someone who primarily works in Lisp would still have an easier time sitting down and reading Python code than someone who works in Python sitting down and reading Lisp, because I think it might truly be inherently easier to understand. There is intrinsic meaning in: x = 5 let x = 5 etc., insofar as th…

I have created non trivial projects in PHP and Ruby and have used a lot of other languages to do things before moving to Clojure... probably about 5 years programming before using my first lisp.

For me I find that s-expressions are the easiest thing to comprehend. Every other language is loaded with syntax and with lisp it's just mainly just (function args).

I wanted to test your argument and I have never looked at common lisp before, I just skimmed some source code from this project https://github.com/stumpwm/stumpwm and it's extremely easy for me to parse.

Comparing this to new variants of Javasscript that seem to come out biannually with some new syntax, I have no idea what's going on and have to look up references on syntax to begin to understand anything.

I guess at the end it's subjective, but lisps have ruined other languages for me.

Post reply on HN