5 ms·
Would it be as offensive to call the extra repetition that is inherent in some languages as "blub code", and languages like Arc trying to get rid of the blub(be
by andreyf 17y ago
Would it be as offensive to call the extra repetition that is inherent in some languages as "blub code", and languages like Arc trying to get rid of the blub(ber) in code?
- silentbicycle 17y agoI'd lean toward avoiding "blub" entirely; it sounds like you're implying their code (and brain) is full of mush. You're probably making a face like a fish blowing bubbles while you say it. Be civil! As novel as this may seem, most people who regularly program in languages other than Lisp also consider excessively verbose code to be a bad thing. (Hence the interest in refactoring.) If you're dealing with someone who just started programming a few months ago, they don't have enough experience to know why it's problematic, but then, they probably need someone to be patient and helpful, rather than smug. You can say, "There are some things that are inherently hard to express in some languages that come naturally in others, and until you have experience with a couple different styles of languages, you'll only really know techniques used in your main language. Learning new languages adds new techniques to your problem solving toolkit. It takes a while, but it'll make you a much better programmer in the long run.", and it doesn't make you sound like you're sneering inside. If you want to make the point that the way their language's object framework is designed makes any nontrivial program in it have a bunch of repetitive boilerplate, say that. Name-calling makes people defensive, not likely to consider new ideas.
- ken 17y agoI can't tell if you're trying to be funny or not. If we want to make a point about how a language is better at letting us build useful abstractions, we have to spell out exactly what we mean by that every time, even though somebody has invented a word that macroexpands to exactly that?
- silentbicycle 17y agoIt macro-expands to that, but there's an occasional variable capture bug that has the side effect of making one sound incredibly smug.
- 10ren 17y ago"Blub" is offensive, I agree. I've been bemused at the name-calling. It undermines the factual content and alienates adopters. Why do it? I wonder if an explanation is that name-calling simply isn't regarded as offensive within the community. For example, there's a development environment called "Slime"; and of course the name "Lisp".
- silentbicycle 17y agoThose aren't personal, though. The way "blub" is used is: "You're writing in 'blub', therefore you're a 'blub' programmer, and all you're capable of understanding is 'blub'. Maybe some day you'll wise up and use my 'language for smart people' (LFSP)."
- 10ren 17y agoYes you're right. I was trying to find a way to excuse them, and see them in a kinder light. But you're right. :-(
- twir 17y agoI hate to be "that guy", but I think you all might be misunderstanding the meaning of "blub". Remember, "Blub" comes from the Blub Paradox (http://paulgraham.com/avg.html http://paulgraham.com/avg.html) in which one paradoxically believes that his or her language of choice (let's call it Blub) is the overall best language and that others are no good, usually due to missing some particular feature, or that they are too complicated. An ironic example is that Paul Graham, who I believe is the creator of said paradox, asks rhetorically "If LISP is so great, why doesn't everybody use it?" and later, "I will say that LISP is at the top of the power spectrum." In effect, he's guilty of falling into his own paradox by assuming his language is at the top of the power spectrum, which is no different from assuming some other hypothetical language (that may have more capability than LISP) is too complicated.
- 10ren 17y agoI'm aware of where it comes from. The idea is that people who don't use lisp are so profoundly ignorant, that they don't even know they are ignorant. That's an offensive idea to start with. The second thing is that the word used to denote that concept, blub, is itself offensive, and it's used in an offensive school-yard way ("blub programmer"). It's surprising to see people promoting arc with this approach. But reading your post closely, you're saying that blub strictly only refers to people who believe their language is the best and others are no good. In the avg.html article, it also says "How can you get anything done in Blub? It doesn't even have y." and talks about people looking down on less powerful languages. Therefore, a person programming in Java (or assembly or whatever) isn't a blub programmer unless he believes that language is the best, that others are no good, and he looks down on less powerful languages (maybe a more accurate word for this attitude is "snob".) My experience is that most programmers don't do that.
- Retric 17y agoNot all language cruft is created equil. I find the more more that happens within a line the easer it is to write but the harder it is to read. x = (a = 7 * (b = 14)) + (c = 9 * ((d > 7)? e:f)); Now toss in some casts and the line becomes harder to read, but at the same time it's considered poor from to have 4 assignments on one line. Yet that's valid C, C++, Java, C# etc and it's got fewer symbols so it must be better according to the arc view of the world. So is reqiring one assignment per line cruft or a good idea? How about those assignments? I would argue that one of the most useful mesures of a language is how easy it is to read other peoples code, but then you end up with something like Pascal... PS: I acutaly like mantaining pascal code more than most languages then again it could have more to do with the experence of the people who use Pascal.
- philwelch 17y agoThat's one line, yes, but what a line! That's 20 tokens or so, many of which are weird and hairy (the ? operator, multiple assignments). And in Lisp style you'd have that as multiple lines anyway.
- Retric 17y agoTrue, but my point is it's more tokens if you write it as several lines. a = b = c 2; vs b = c 2; a = b; So token count is still not really what we want to measure even if it's better than line count.
- philwelch 17y ago"it's more tokens if you write it as several lines" As several lines or several statements? x = ____(a = 7 * ________(b = 14)) ____+ ____(c = 9 * ________((d > 7)? e:f)); Same statement, same token count, multiple lines.
- Retric 17y agoStatments, that's in no way easer to parse than that some code on a single line. (Assuming you have collar coding for the ()'s in your IDE.) c = 9 * ((d > 7)?e:f); x = ( a = 7 * (b = 14)) + c; IMO is not that bad, it's the mixing of all the assignments and the conditional that makes it hard to parse, and c = 9 * ((d > 7)?e:f); x = c + (a = 7 * (b = 14)); is fairly readable even if some of the ()'s are not needed. PS: ;'s I thought it was clear that the ;'s denoted lines not the whitespace which is meaningless.