http://en.wikipedia.org/wiki/Greenspun's_tenth_rule
Not saying it's a bad thing
Post
Mon Jan 13, 2014 3:26 pm
#2
Re: I think Limit Theory has fulfilled Greenspun's Tenth Rul
That entire Wikipedia page goes almost entirely over my head.
Post
Mon Jan 13, 2014 3:32 pm
#3
There is NO PREORDER OR DONATION POSSIBILITY
In Josh we trust.
Re: I think Limit Theory has fulfilled Greenspun's Tenth Rul
I don't get it.
Grumblesaur wrote:we're going to need
The Four Word Story Thread|IRC Needs You!|Game FAQKvallning wrote:to get beyond Thunderdome
There is NO PREORDER OR DONATION POSSIBILITY
In Josh we trust.
Post
Mon Jan 13, 2014 3:36 pm
#4
Course, it wouldn't be running at 100 FPS
Re: I think Limit Theory has fulfilled Greenspun's Tenth Rul
Hahaha amazing imageKvallning wrote: I don't get it.
It's probably true. At some point I think everyone who builds a sufficiently large system will start to see that the only way to really collapse all of the complexity is to look at it like...pure math / functionalism, like lisp. So seems a reasonable point I definitely wonder what LT would look like had it been written functionally from the beginning.
Course, it wouldn't be running at 100 FPS
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post
Mon Jan 13, 2014 3:58 pm
#5
Re: I think Limit Theory has fulfilled Greenspun's Tenth Rul
Every time i read about lisp i want to learn it.
I should actually start one time...
Has anyone a good link for learning lisp?
I should actually start one time...
Has anyone a good link for learning lisp?
Post
Mon Jan 13, 2014 4:55 pm
#6
Re: I think Limit Theory has fulfilled Greenspun's Tenth Rul
What LISP fans don't mention (but which Josh correctly did) is that the price you pay for LISP's self-modifying ability to do anything is that, for any significant real-world functionality, LISP code takes more time to write, more time to modify/maintain, and more time to run.
Like most tools, the value of LISP is context-sensitive: it's good for some things, not so good for other things. So while Greenspun's Tenth Rule might be facially true, at a larger (actual real world project development) level it's less meaningful. Yes, at a certain level of code complexity you probably are reinventing some features you get for "free" in Common LISP. But you're also probably getting code that, because it is custom-written in a less general-purpose and thus more performative language, runs faster and can more easily be understood and enhanced by normal human beings.
LISP is awesome... but not for everything.
Like most tools, the value of LISP is context-sensitive: it's good for some things, not so good for other things. So while Greenspun's Tenth Rule might be facially true, at a larger (actual real world project development) level it's less meaningful. Yes, at a certain level of code complexity you probably are reinventing some features you get for "free" in Common LISP. But you're also probably getting code that, because it is custom-written in a less general-purpose and thus more performative language, runs faster and can more easily be understood and enhanced by normal human beings.
LISP is awesome... but not for everything.
Post
Mon Jan 13, 2014 8:21 pm
#7
Re: I think Limit Theory has fulfilled Greenspun's Tenth Rul
I like my languages like I like my games; fun to play with and procedural.
Screw Lisp.
Screw Lisp.
Post
Tue Jan 14, 2014 1:05 pm
#8
Clojure is actually pretty fast too. Certainly not anywhere as fast as Josh's well tuned C++, but faster than you might think. The persistent data structures it is built with are really phenomenal.
Re: I think Limit Theory has fulfilled Greenspun's Tenth Rul
I've definitely been drinking the Clojure koolaid recently. I hate that it doesn't have a static type system (though the core.typed project is working on an optional one, but I'm skeptical), and heterogeneous collections seem like a really bad idea to me, but I really dig the homoiconicity and the community is really productive, creative and responsive. There's even an existing Clojure library that does pretty much what my River project that I sent you recently does (though it lacks laziness and therefore doesn't scale as well I think): http://www.infoq.com/presentations/Cloj ... pt-Javelin.JoshParnell wrote: It's probably true. At some point I think everyone who builds a sufficiently large system will start to see that the only way to really collapse all of the complexity is to look at it like...pure math / functionalism, like lisp. So seems a reasonable point I definitely wonder what LT would look like had it been written functionally from the beginning.
Course, it wouldn't be running at 100 FPS
Not to turn this into an age old functional/imperative flame war, but I actually have to disagree w/ the "more time to write/modify/maintain" bit. Functional programming is a very different mindset than imperative programming, but in a similar, but deeper way that English is a different mindset than Chinese. It doesn't mean Chinese takes more time to write. I just haven't learned it so it takes more time for me since I have to look up each thing in the book first. I recently used Clojure to build a tool to generate a certain type of logic puzzle and found it to be a very low-friction experience. It was much quicker to implement in Clojure and port to C++ than to develop initially in C++. It has taken a few years to get my mind to think functionally, but now that I do it's much more pleasant and quick, and far far less error prone than reasoning imperatively.Flatfingers wrote:What LISP fans don't mention (but which Josh correctly did) is that the price you pay for LISP's self-modifying ability to do anything is that, for any significant real-world functionality, LISP code takes more time to write, more time to modify/maintain, and more time to run.
Clojure is actually pretty fast too. Certainly not anywhere as fast as Josh's well tuned C++, but faster than you might think. The persistent data structures it is built with are really phenomenal.
Post
Tue Jan 14, 2014 4:22 pm
#9
Re: I think Limit Theory has fulfilled Greenspun's Tenth Rul
I understand, negascout. Making that switch took some time when I taught myself LISP [mumpty mumble] years ago. I never got good at it, but I got good enough to know that -- as with many computer programming languages -- once you use it enough it gets easier. There was a time when I was writing everything in various flavors of assembly language.
But to be clear, I didn't just aver that LISP takes more time to write and enhance in a universal way -- I said it takes more time for some problems. There are things it's good at, and things it's not so good at. I could write device drivers in C; I don't think I'd want to try to do that in Prolog. At the same time, there are things I don't want to try to do in C. (That's one reason why I transitioned to Java.)
Which goes back to my point about GTR: yes, you get some stuff for "free" when you choose to use LISP... but there are costs as well. There is no one Perfect Language -- different tools work better for different functional purposes.
I don't think I'd want to live in a house whose builder thought that the only tool he needed was a hammer.
(Note: Josh may prove me wrong with his notion of a node-based visual language for software development. Maybe that is the Perfect Language that can do everything reasonably well. If so, I'll be the first to admit I was wrong... but with respect to Josh, I don't think that's going to happen. Structure implies contextual fitness. But we'll see. )
But to be clear, I didn't just aver that LISP takes more time to write and enhance in a universal way -- I said it takes more time for some problems. There are things it's good at, and things it's not so good at. I could write device drivers in C; I don't think I'd want to try to do that in Prolog. At the same time, there are things I don't want to try to do in C. (That's one reason why I transitioned to Java.)
Which goes back to my point about GTR: yes, you get some stuff for "free" when you choose to use LISP... but there are costs as well. There is no one Perfect Language -- different tools work better for different functional purposes.
I don't think I'd want to live in a house whose builder thought that the only tool he needed was a hammer.
(Note: Josh may prove me wrong with his notion of a node-based visual language for software development. Maybe that is the Perfect Language that can do everything reasonably well. If so, I'll be the first to admit I was wrong... but with respect to Josh, I don't think that's going to happen. Structure implies contextual fitness. But we'll see. )