Live data from Hacker News

I finally understand why I'm not allowed to use Lisp

groups.google.com

91–100 of 121 posts

Re: I finally understand why I'm not allowed to use Lisp

#91
post #49
post #44

Earlier quoted context omitted.

You cited a site that routinely makes claims either without citing sources, or with cites to sources that contradict those claims. To a large part, it appears to simply make up stuff, and does not issue corrections when its errors are pointed out. Citing Boycott Novell about software (or about anything, actually) is about equivalent of citing your Astrologer in a science argument.

You keep making ad hominems against techrights rather than addressing the substance of their argument. Why don't you actually address what they wrote in their article?

Sometimes an ad hominem is all that fits.

(Because life is small and a lot of "arguments" one encounters are uninformed ramblings of idiots and/or people who don't know better, not worthy of a reply).

Put that in your logical fallacy pipe and smoke it.

Re: I finally understand why I'm not allowed to use Lisp

#92
post #87

Earlier quoted context omitted.

It's always twice as hard to read code as it is to write code. True. For that reason alone, clever code is usually unmaintainable. How does this follow logically from the first statement? And more importantly, what alternative do you suggest? Are you positing that for a given problem, there is always some alternative solution that is "less clever" and "more maintainable?" If you've never seen folding and unfolding be…

I'd say clever is defined by your audience. If you're writing something that others on your team would consider clever, then you're responsible for making sure they understand it. Even if that means losing whatever time you saved by writing something clever (the advantage is still creating a smarter team though). Responsible developers write a lot less clever code because it means they feel obliged to comment the cra…

Your response assumes that clever code exists to save time writing programs, and that for any problem there are a wide range of equally good solutions possible from "takes a long time to write but is easily readable and maintainable" to "quick to write but impossible to read and maintain by those who don't have doctorates in functional programming idioms."

I don't dispute the existence of code that is unnecessarily clever, but I suggest that sometimes what appears to be "clever" for a given audience is in actuality the local optimum. Attempting to optimize it for readability without further study will worsen the code in some way, such as conflating concerns that have been carefully separated or introducing dependencies.

Re: I finally understand why I'm not allowed to use Lisp

#93
post #79

A better question is whose going to maintain all those for-loops that are buggy because human error means even a basic thing like a loop will get screwed up. Managers are always talking about code reuse but as soon as you pass a function, they are like "Woah thats crazy how can we maintain that" Only managers would think that int accum; for(int i = 0; i is more readable and maintainable than... arr.sum(x => x) Oh loo…

I'm not sure where managers come into the discussion, but the second example is good, but even better like this:

     arr.sum()

Re: I finally understand why I'm not allowed to use Lisp

#94
Somebody uses the following line in the thread: "not because they are good programmers, but rather because they are good communicators".

Hell yeah. Overly-abstract code can be like using variable names x1 to x267 because it is more efficient to type. Time I spend grokking your code is time our website spends offline.

Re: I finally understand why I'm not allowed to use Lisp

#95
post #26
post #18

Earlier quoted context omitted.

For me type inference changes the picture, since it reduces the duplication you see throughout Java-style statically typed code, but doesn't give up all the benefits.

The only benefit I'm aware of is slightly faster code and even then the dynamic version is almost always more readable and easier to maintain and refactor. The ideal would be a dynamic language with optional static typing but I have yet to see a language like that.

"slightly faster" is a bit understated, you're usually talking about statically typed languages being an order of a magnitude faster for things that are computationally expensive. Granted most things aren't, so for a web page or whatnot, it probably doesn't matter; and certainly the expressive ability you gain from dynamic languages might be worth the trade off. But the trade off is undeniably there.

(Try comparing various languages here: http://shootout.alioth.debian.org/u32/benchmark.php?test=all... if you don't believe me)

Some dynamically typed languages can approach the speed of static languages, like Lisp, but they generally do that by introducing voluntary static typing hints, or having a JIT compiler introduce speculative code paths that guess the types coming in after some analysis.

Re: I finally understand why I'm not allowed to use Lisp

#96
post #87

Earlier quoted context omitted.

I'd say clever is defined by your audience. If you're writing something that others on your team would consider clever, then you're responsible for making sure they understand it. Even if that means losing whatever time you saved by writing something clever (the advantage is still creating a smarter team though). Responsible developers write a lot less clever code because it means they feel obliged to comment the cra…

Your response assumes that clever code exists to save time writing programs, and that for any problem there are a wide range of equally good solutions possible from "takes a long time to write but is easily readable and maintainable" to "quick to write but impossible to read and maintain by those who don't have doctorates in functional programming idioms." I don't dispute the existence of code that is unnecessarily c…

I can agree with that. I'd add that if something seems clever you might want to make sure others on your team are aware of it too. At least that way you won't get blamed for being too clever, and more people will understand what's going on.

Re: I finally understand why I'm not allowed to use Lisp

#97

Asked me to sign in to Google Groups. Closed tab.

I do not understand why giving feedback about the usability of the link deserves downvotes. I didn't even understand what had happened when I was suddenly at a google log-in, shrugged, and closed the tab.

I don't comment with the expectation of up votes. Infact, I commented that just to warn others that they'd be staring at a google-wall.

Anyone else remember when you didn't have to log into google groups to look at a newsgroup thread?

Re: I finally understand why I'm not allowed to use Lisp

#98
post #93
post #79

A better question is whose going to maintain all those for-loops that are buggy because human error means even a basic thing like a loop will get screwed up. Managers are always talking about code reuse but as soon as you pass a function, they are like "Woah thats crazy how can we maintain that" Only managers would think that int accum; for(int i = 0; i is more readable and maintainable than... arr.sum(x => x) Oh loo…

I'm not sure where managers come into the discussion, but the second example is good, but even better like this: arr.sum()

In what language are arrays of numbers their own class?

Re: I finally understand why I'm not allowed to use Lisp

#99
post #26
post #18

Earlier quoted context omitted.

For me type inference changes the picture, since it reduces the duplication you see throughout Java-style statically typed code, but doesn't give up all the benefits.

The only benefit I'm aware of is slightly faster code and even then the dynamic version is almost always more readable and easier to maintain and refactor. The ideal would be a dynamic language with optional static typing but I have yet to see a language like that.

You should look into typed racket.

Re: I finally understand why I'm not allowed to use Lisp

#100
post #93

Earlier quoted context omitted.

I'm not sure where managers come into the discussion, but the second example is good, but even better like this: arr.sum()

In what language are arrays of numbers their own class?

To answer my own question: C++

http://www.cplusplus.com/reference/std/valarray/valarray/sum...

Post reply on HN