If you have ever worked with static analysis, my criticism is vacuously true.
Hehe! Indeed I haven't. However, I'm sure the Lisp compiler folk have and though I don't really understand what their compilers are doing even after reading about them (e.g. http://common-lisp.net/project/cmucl/doc/CMUCL-design.pdf (somewhat dated now)), fortunately they do seem to work very well. I see the validity of your criticism now but I don't expect (or find in practice) the modern Lisp compilers to be noticably any less clever than e.g a modern C compiler.
It is the absence of the qualification that requires justification.
Why would the Lisp compiler do well on 'small' examples, like the C compiler does, but underperform it on 'larger' examples? Perhaps there are reasons to expect such behaviour but rather than answer a comp. sci. illiterate like me, if you really believe the authors of those papers have been making such serious errors I think you should write your own paper. And if you haven't got the time or inclination to do that, perhaps you could at least explain your criticisms to these fellows: http://books.google.com/books?id=8Cf16JkKz30C&pg=PA21&lpg=PA21 They appear to have used similar reasoning - toy examples and extrapolation - and it looks like they're embarking on a major project to make a better performing R-like system with Common Lisp. But if Lisp really doesn't scale up well, that could turn out to be a futile ambition and a horrible waste of time of course.
but with excerpts in #3 like:... I can only guess that... the performance penalty of Lisp must have been significant.
Our QPX search engine is engineered for speed, speeds that must not be lower than using C and where huge amounts of data must not be bigger than packing them in C structs. Still, QPX is very complicated, and driven by individuals who write large bodies of code. Lisp allows us to define a wide variety of abstractions to manage the complexity, and at the same time we get the speed we want. Once QPX is compiled, one cannot easily tell the machine code from the machine code compiled from C.
(from the other ITA link)
Of course you may have guessed right about ITA's case anyway (and undoubtedly there do exist situations in which Lisp is inadequate for performance reasons - even C is sometimes) but whatever the reasons ITA have for using C and Java as well, there are no similar excerpts in #1 or #2 (or in other examples) and it seems to me they are hardly 'toy' examples.
I am not trying to knock Lisp
Sure - you're just knocking the papers I linked to - and it seems to me that is just as well considering there are at least some anecdotal 'real world' counter-examples to your Lisp performance worry stemming from your (possibly justified) criticism that extrapolation from those papers' findings is, at least logically, invalid. I have always found Lisp easily adequate performance-wise for my own use - but that's just anecdotal too of course.
Good idea.:) I know/you/ were only joking but Lisp has been held back by a ton of widely believed (and massively ironic) mythology and it is very sad. The only thing really wrong with it is the lack of stuff written in/for it because of its grossly undeserved reputation.
...at least for the growing number of UK 'universities' offering Homeopathy etc. BSc courses. Not an easy sell to students equipped with a basic knowledge of chemistry.
I think it must be a matter of personal preference and/or usage pattern which form one considers more readable. Personally, I find s-expressions more readable - especially the more complex ones - because of the uniformity of the functional structure and the natural way in writing Lisp that they are laid out and aligned in two dimensions on the 'page' So e.g:
(setf val (* (- (cos (sqrt 3)) (+ 2 h)) (floor m 11))
as opposed to
val = (cos(sqrt(3)) - (2 + h)) * floor(m, 11)
is preferable to me even though I spend far more time writing maths on paper than I do writing code for computations and might've been expected to find the switch to infix notation jarring. I also like the way the change to prefix form in numerical computations takes away the need to remember (where) to put in the extra brackets one often needs because of considerations of operator precedence.
So, my point stands - Linus is a good coder. Stallman is not.
Not really. I don't know whether you are right or not but the only part of the above unattributed, unreferenced quote that supports your assertion is:
The Emacs source code which we inherited and forked is littered with 1000+ line functions, 6+ levels of nested if-else and assorted other crap that looks like it was being written to violate as many rules of good programming style as possible
- which, if true, would indeed be consistent with the assertion that Stallman is not a good coder (though still not proof of it). But is it even true? The idea that a competent - never mind good - Lisp programmer would do that (in Lisp or any other language) is rather hard to swallow. Does this appalling code still exist?
Beats the hell out of man pages for the POSIX C libraries.
Indeed. One of the things which really exasperates me about the unknowledgeable pseuds who tend to dominate online programming forums is that they don't even know enough to direct learners to the best documentation. The Ubuntu forums were among the worst I've ever seen as far as C programming is concerned: "$ man this" and "$ man that" and never a mention of the GNU libc documentation.
patents cover methods of implementation, and not all encompassing ideas
Not true.
Patent applications are drafted to be as broad as the prior art will allow. Patents claiming "all encompassing ideas" are usually harder to get than narrow ones and at greater risk of later invalidation, but - as Acacia and other trolls are well aware - they are more valuable: http://w2.eff.org/patent/ and software is particularly troubled by them: http://www.researchoninnovation.org/dopatentswork/dopat9.pdf
Why not include it here? Because after 5 years of countering the lies and obfuscation promulgated by the EPO, UKIPO et al here and elsewhere, I had hoped the facts about software patenting in the EU (and UK) would've been pretty well known by now and I'm pretty sick of having to do the basic legwork over and over again. Here's one for you:
Yes, well they're not just wrong to say that FOSS never innovates, they've actually acquired patents bearing on innovations (probably) originally made by FOSS (such as the Enlightenment pager, fundamental aspects of RSS, ICCCM-like extended clipboard formats etc.) As far as I know they haven't yet used any of these patents to steal (no inverted commas) a FOSS developer's own invention and work, but it is not impossible or inconceivable that they might. Their claim that FOSS 'steals' or free rides on their copyrighted [wtf?] and patented "intellectual property" is simply despicable.
I'm no supporter of Microsoft, but I have to point out that they didn't set out to patent item #3.
What do you mean? Of course they "set out to patent item #3" - surely you don't think it got in there by accident!
The broad claims near the top of the list are not the target of the patent - it's the really specific stuff near the bottom which are the 'novel claims'.
Yes they are "the target". Claims 1,7,10 are the independent claims. If you infringe any one of them, you infringe it irrespective of whether or not you infringe any other of the claims. If any claim does not claim a novel invention, it can be invalidated.
It's shocking to know that this omnipresent feature was patented by Microsoft back in 1995 (granted in 1997). I'm not very sure about the implications, though.
Sure it's "shocking" - but it's only news if you've been off-world for the last decade or so and weren't aware that the patent system had long since been brought into disrepute and turned into a tool for extortionists and thieves. Microsoft - hardly the only offender - has applied for many such patents (RSS feed subscription, BlueJ, Enlightenment-style pager, extended clipboard formats, tabbing through links, auto-adding 'www','.com' etc. in URL inputs...) and has been granted many of them. What is special about this one? Now?
In at least two fundamental ways. First, the summary quoted the abstract of the patent, not the claims. The abstract is almost always a simplified extract of the contents of the patent and rarely has any meat to it. Of course it looks obvious.
READ THE CLAIMS TO FIND OUT WHAT IS BEING COVERED BY THE PATENT!! I did. Where in claim 1 is the non-obvious meat you speak of that is not in the abstract?
Doesn't seem so obvious now, does it? Why not?
The second is the fact is that Akamai is a very innovative company that has pioneered a lot of distributed content delivery... It is insane that their work is being shown in this light by Slashdot. It is insane if that invention is Akamai's idea of a contribution to progress and disclosure thereof meriting a 20 year monopoly right to exclude.
This article is one of the most ridiculous ever posted by Slashdot. Not really. The frequency with which articles are posted about hapless re-inventors getting caught out by dreadful patents like this one is rather tedious though.
"The whole of Europe uses a unified system that permits such patents but forces them to jump through rigorous test to cut the crap that is patented in the US and that clogs up the US patenting system and cause endless costs and angst in the software community... See for a brilliant simple description : http://www.iusmentis.com/patents/software/epc/"
Unfortunately the Ius mentis description is dated and misleading anyway:
The Apple patents are good for business and the rest of the computing arena, as they will spur creativity and growth as a work around to the patent issues, assuming no one wants to license the patents. Your claim that the Apple patents (and patents like them) are a good thing is, unsurprisingly, unsupported by the evidence.
I am really struck by the number of/.ers who fall for naive patent system mythology, though I don't blame them for it. However, to any/.er reading this who is pro-free market but who has listened to some of the woo churned out by the pro-software patent cranks and been made to feel uneasy about taking an anti-software patent stance, I say this: do a little nerdish studying of the subject (patent system economics), "dismal science" though it may be, and you'll come to realise you could've trusted your instincts about software patents in the first place. You won't feel you have to be an apologist for crap patents like these Apple ones anymore, you'll have facts and economic science to back you up, and you'll feel a lot better - I know I did.
You could switch them off by putting "(menu-bar-mode -1)" and "(tool-bar-mode -1)" in your.emacs file. Alternatively, you could put "Emacs.menuBar: off" etc. in your.Xresources or similar file if you're using X. All this stuff is in the Emacs documentation.
Hehe! Indeed I haven't. However, I'm sure the Lisp compiler folk have and though I don't really understand what their compilers are doing even after reading about them (e.g. http://common-lisp.net/project/cmucl/doc/CMUCL-design.pdf (somewhat dated now)), fortunately they do seem to work very well. I see the validity of your criticism now but I don't expect (or find in practice) the modern Lisp compilers to be noticably any less clever than e.g a modern C compiler.
Why would the Lisp compiler do well on 'small' examples, like the C compiler does, but underperform it on 'larger' examples? Perhaps there are reasons to expect such behaviour but rather than answer a comp. sci. illiterate like me, if you really believe the authors of those papers have been making such serious errors I think you should write your own paper. And if you haven't got the time or inclination to do that, perhaps you could at least explain your criticisms to these fellows: http://books.google.com/books?id=8Cf16JkKz30C&pg=PA21&lpg=PA21 They appear to have used similar reasoning - toy examples and extrapolation - and it looks like they're embarking on a major project to make a better performing R-like system with Common Lisp. But if Lisp really doesn't scale up well, that could turn out to be a futile ambition and a horrible waste of time of course.
Our QPX search engine is engineered for speed, speeds that must not be lower than using C and where huge amounts of data must not be bigger than packing them in C structs. Still, QPX is very complicated, and driven by individuals who write large bodies of code. Lisp allows us to define a wide variety of abstractions to manage the complexity, and at the same time we get the speed we want. Once QPX is compiled, one cannot easily tell the machine code from the machine code compiled from C.
(from the other ITA link)
Of course you may have guessed right about ITA's case anyway (and undoubtedly there do exist situations in which Lisp is inadequate for performance reasons - even C is sometimes) but whatever the reasons ITA have for using C and Java as well, there are no similar excerpts in #1 or #2 (or in other examples) and it seems to me they are hardly 'toy' examples.
Sure - you're just knocking the papers I linked to - and it seems to me that is just as well considering there are at least some anecdotal 'real world' counter-examples to your Lisp performance worry stemming from your (possibly justified) criticism that extrapolation from those papers' findings is, at least logically, invalid. I have always found Lisp easily adequate performance-wise for my own use - but that's just anecdotal too of course.
Those papers do not show, and their authors do not state, that such a qualification is justified...
http://www.lispworks.com/success-stories/raytheon-siglab.html
http://www.franz.com/success/customer_apps/eda/amd.lhtml
http://www.franz.com/success/customer_apps/data_mining/itastory.php3 (also: http://www.itasoftware.com/careers/l_e_t_lisp.html?catid=8 )
etc.
Nope!
http://www.lrde.epita.fr/~didier/research/verna.06.ecoop.pdf
http://portal.acm.org/citation.cfm?doid=1143997.1144168
http://www.eecs.berkeley.edu/~fateman/papers/lispfloat.ps
Good idea. :) I know /you/ were only joking but Lisp has been held back by a ton of widely believed (and massively ironic) mythology and it is very sad. The only thing really wrong with it is the lack of stuff written in/for it because of its grossly undeserved reputation.
...at least for the growing number of UK 'universities' offering Homeopathy etc. BSc courses. Not an easy sell to students equipped with a basic knowledge of chemistry.
http://dcscience.net/?p=454
http://www.timeshighereducation.co.uk/story.asp?sectioncode=26&storycode=403123&c=1
http://www.timeshighereducation.co.uk/story.asp?sectioncode=26&storycode=404104&c=2
http://www.ucl.ac.uk/Pharmacology/dc-bits/dcpubs.html#fun1 [DC's Nature article, "Science degrees without the science" available here]
Make sure you don't send your kids (or yourselves) to any of these disreputable UK establishments:
http://www.thinkhumanism.com/files/UCAS%20Courses%20on%20quackery.xls [List of UK universities offering fraudulent 'science' degree courses]
I think it must be a matter of personal preference and/or usage pattern which form one considers more readable. Personally, I find s-expressions more readable - especially the more complex ones - because of the uniformity of the functional structure and the natural way in writing Lisp that they are laid out and aligned in two dimensions on the 'page' So e.g:
(setf val (* (- (cos (sqrt 3))
(+ 2 h))
(floor m 11))
as opposed to
val = (cos(sqrt(3)) - (2 + h)) * floor(m, 11)
is preferable to me even though I spend far more time writing maths on paper than I do writing code for computations and might've been expected to find the switch to infix notation jarring. I also like the way the change to prefix form in numerical computations takes away the need to remember (where) to put in the extra brackets one often needs because of considerations of operator precedence.
Word count in region?
M-x how-many RET \> RET
;; URL shortener especially useful with the It's All Text mozilla addon
(defun wb/web-urlp (string)
"Is STRING a web browsable sort of URL?"
(let ((type (aref (url-generic-parse-url string) 1)))
(cond ((eq type nil) nil)
((string= type "http") t)
((string= type "https") t)
((string= type "ftp") t)
(t nil))))
(require 'mm-url)
(defun wb/shorten-url ()
"Replace the URL around point with an equivalent shortened one.
The short URL is provided by metamark (URL `http://metamark.net')"
(interactive)
(catch 'not-web-url
(let* ((bounds (bounds-of-thing-at-point 'url))
(longurl (buffer-substring (car bounds)
(cdr bounds)))
(url (if (wb/web-urlp longurl)
(concat "http://metamark.net/api/rest/simple?"
(mm-url-encode-www-form-urlencoded
(list (cons "long_url" longurl))))
(throw 'not-web-url (message "Not a web URL"))))
(short-url
(save-excursion
(with-temp-buffer
(mm-url-insert url)
(let* ((bounds (bounds-of-thing-at-point 'url))
(metamark-url (buffer-substring (car bounds)
(cdr bounds))))
(unless (wb/web-urlp metamark-url)
(throw 'not-web-url
(message (car (split-string
(buffer-string) "[\r\n]+")))))
(kill-ring-save (car bounds) (cdr bounds))
metamark-url)))))
(if (or buffer-read-only
(text-property-any (car bounds)
(cdr bounds)
'read-only t))
(message "Yankable shortened URL: %s" short-url)
(kill-region (car bounds) (cdr bounds))
(insert short-url)
(message "Yank to recover the original URL")))))
Not really. I don't know whether you are right or not but the only part of the above unattributed, unreferenced quote that supports your assertion is:
- which, if true, would indeed be consistent with the assertion that Stallman is not a good coder (though still not proof of it). But is it even true? The idea that a competent - never mind good - Lisp programmer would do that (in Lisp or any other language) is rather hard to swallow. Does this appalling code still exist?
Indeed. One of the things which really exasperates me about the unknowledgeable pseuds who tend to dominate online programming forums is that they don't even know enough to direct learners to the best documentation. The Ubuntu forums were among the worst I've ever seen as far as C programming is concerned: "$ man this" and "$ man that" and never a mention of the GNU libc documentation.
Not true.
Patent applications are drafted to be as broad as the prior art will allow. Patents claiming "all encompassing ideas" are usually harder to get than narrow ones and at greater risk of later invalidation, but - as Acacia and other trolls are well aware - they are more valuable: http://w2.eff.org/patent/ and software is particularly troubled by them: http://www.researchoninnovation.org/dopatentswork/dopat9.pdf
Why not include it here? Because after 5 years of countering the lies and obfuscation promulgated by the EPO, UKIPO et al here and elsewhere, I had hoped the facts about software patenting in the EU (and UK) would've been pretty well known by now and I'm pretty sick of having to do the basic legwork over and over again. Here's one for you:
http://v3.espacenet.com/textdoc?DB=EPODOC&IDX=GB2437579&F=0
Enjoy!
That's what they want you to believe but search the databases and you'll see that even the BBC itself has software patents granted by the UKIPO.
Yes, well they're not just wrong to say that FOSS never innovates, they've actually acquired patents bearing on innovations (probably) originally made by FOSS (such as the Enlightenment pager, fundamental aspects of RSS, ICCCM-like extended clipboard formats etc.) As far as I know they haven't yet used any of these patents to steal (no inverted commas) a FOSS developer's own invention and work, but it is not impossible or inconceivable that they might. Their claim that FOSS 'steals' or free rides on their copyrighted [wtf?] and patented "intellectual property" is simply despicable.
Just as well really considering how much various academic publishers charged for printed copies of their well made LaTeX documents!
What do you mean? Of course they "set out to patent item #3" - surely you don't think it got in there by accident!
Yes they are "the target". Claims 1,7,10 are the independent claims. If you infringe any one of them, you infringe it irrespective of whether or not you infringe any other of the claims. If any claim does not claim a novel invention, it can be invalidated.
http://en.wikipedia.org/wiki/Claim_(patent)
Sure it's "shocking" - but it's only news if you've been off-world for the last decade or so and weren't aware that the patent system had long since been brought into disrepute and turned into a tool for extortionists and thieves. Microsoft - hardly the only offender - has applied for many such patents (RSS feed subscription, BlueJ, Enlightenment-style pager, extended clipboard formats, tabbing through links, auto-adding 'www','.com' etc. in URL inputs...) and has been granted many of them. What is special about this one? Now?
READ THE CLAIMS TO FIND OUT WHAT IS BEING COVERED BY THE PATENT!! I did. Where in claim 1 is the non-obvious meat you speak of that is not in the abstract? Doesn't seem so obvious now, does it? Why not? The second is the fact is that Akamai is a very innovative company that has pioneered a lot of distributed content delivery... It is insane that their work is being shown in this light by Slashdot. It is insane if that invention is Akamai's idea of a contribution to progress and disclosure thereof meriting a 20 year monopoly right to exclude. This article is one of the most ridiculous ever posted by Slashdot. Not really. The frequency with which articles are posted about hapless re-inventors getting caught out by dreadful patents like this one is rather tedious though.
"The whole of Europe uses a unified system that permits such patents but forces them to jump through rigorous test to cut the crap that is patented in the US and that clogs up the US patenting system and cause endless costs and angst in the software community... See for a brilliant simple description : http://www.iusmentis.com/patents/software/epc/"
Unfortunately the Ius mentis description is dated and misleading anyway:
http://webshop.ffii.org/
http://legal.european-patent-office.org/dg3/pdf/t030424eu1.pdf
Thank you :)
Not the story - the project. What I mean is: how is this new project related to this one: http://tolweb.org/ if at all?
http://researchoninnovation.org/
I am really struck by the number of
You could switch them off by putting "(menu-bar-mode -1)" and "(tool-bar-mode -1)" in your .emacs file. Alternatively, you could put "Emacs.menuBar: off" etc. in your .Xresources or similar file if you're using X. All this stuff is in the Emacs documentation.
Modded troll eh?
How ironic.
Either the mod is himself a troll, or - more likely - he is an imbecile.