Domain: lambda-the-ultimate.org
Stories and comments across the archive that link to lambda-the-ultimate.org.
Comments · 122
-
Re:This is not a troll, but a query...
-
Re:This is not a troll, but a query...
So, you don't hang out at Llambda The Ultimate then?
-
Monads AOP?
From everything I've seen about Aspects, they look like a subset of Monads. Monads do the same sort of weaving of separated concerns, but as far as I can tell, monads are much easier to combine, have better granularity, simpler implementation, and a cleaner theoretical basis.
I realize I could be totally wrong, I never did finish reading all the papers on the Minimal Aspect Calculus article on lambda-the-ultimate.org.
Can you give me a better comparison between AOP and monads? -
zerg
C++ Guru Scott Meyers just asked people, "Why do you program in C++?" If that's not relevant to this discussion, I don't know what is... (via Lambda the Ultimate)
-
Logics texts at print.google.comThe service is making texts accessible, I'm glad to say. See Greg Restall's list of logic texts at his wiki, for example.
I posted a story on this to LtU.
-
Enormously good news
There's been a lot of discussion at Lambda the Ultimate about the relationship of publishing and scientific organsiations like the ACM to the interests of the theoretically switched-on hacker community. See, eg. this thread on Journals and Papers.
-
Since you showed up on the /. radar, Paul
Are you going to the LINKS meeting to pitch Arc?
One wonders, with the hint of a tease, whether you'll get it done before Perl6 or C++0x... -
Haskell, declarative parallelismThis is discussed in great detail in this thread on lambda-the-ultimate.org The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. The summary as I see it is
- declarative parallelism will always scale better than threads or whatever else
- micro-optimizations will always be faster than declaractive parallelism
This is the same trade-off as manual memory allocation versus garbage collection. Garbage collection is easier and more automatic than manual memory control in C, but if you put enough effort in a C program will be more efficient than a GC-using program.
So the essence of the answer is that declaractive parallelism gives you development speed, but manual parallelism gives you execution speed. You choose what you want.
I have a two CPU machine right now, and I'm very much looking forward to the rumored SMP version of Haskell that uses Software Transactional Memory. That's gonna rock! -
Re:Work harder at uncovering the good ones
There are plenty of good blogs by physicists, and programmers that I read regularly. I have learned about functional programming languages worth learning from them; about some interesting physics articles, etc.
It is hard to find the good blogs, of course, but once one has found one, he can go on via their blogrolls.
Some good blogs: Bruce Eckel's On the Thought, physicist Jacques Distler's Musings, Lambda the Ultimate: The Programming Languages' Weblog, cosmologist Sean Carroll's Preposterous Universe, etc.
-
Persistence discussion on LtU
You may find a recent discussion on Lambda the Ultimate relevant to your question.
-
Persistence discussion on LtU
You may find a recent discussion on Lambda the Ultimate relevant to your question.
-
Re:How do I code this thing??I don't have much experience or knowledge but there was an interesting article the other week about how the next revolution in programming languages will be a turn towards concurrency:
"Starting today, the performance lunch isn't free any more. Sure, there will continue to be generally applicable performance gains that everyone can pick up, thanks mainly to cache size improvements. But if you want your application to benefit from the continued exponential throughput advances in new processors, it will need to be a well-written concurrent (usually multithreaded) application. And that's easier said than done, because not all problems are inherently parallelizable and because concurrent programming is hard."
Obviously, it's not clear whether this is directly relevant to cell processors, but I think it's at least of passing interest. It's also worth considering whether concurrency-oriented languages like Erlang and Oz could become more important with these sorts of processors (not for games but possibly for scientific work).
See also the discussion of this article on Lambda. -
Re:How do I code this thing??I don't have much experience or knowledge but there was an interesting article the other week about how the next revolution in programming languages will be a turn towards concurrency:
"Starting today, the performance lunch isn't free any more. Sure, there will continue to be generally applicable performance gains that everyone can pick up, thanks mainly to cache size improvements. But if you want your application to benefit from the continued exponential throughput advances in new processors, it will need to be a well-written concurrent (usually multithreaded) application. And that's easier said than done, because not all problems are inherently parallelizable and because concurrent programming is hard."
Obviously, it's not clear whether this is directly relevant to cell processors, but I think it's at least of passing interest. It's also worth considering whether concurrency-oriented languages like Erlang and Oz could become more important with these sorts of processors (not for games but possibly for scientific work).
See also the discussion of this article on Lambda. -
Haskell is a language for writing languages.This is a standard paradigm in the Haskell world. You write a new language that fits the problem domain. These are called Domain Specific Languages
For example, Simon Peyton-Jones wrote a combinator library to describe financial contracts and used it to describe the collapse of Enron. (With fascinating conclusions!)
Paul Hudak has written Dance and Haskore. Dance is a language that describes dance choreography, with a handy OpenGL viewer. Haskore is a music scoring language where code looks like:> cMajScale = Tempo 2
Languages, spoken or programming, or any other means of expression is most efficient when it fits the problem domain.
> (line [c 4 en [], d 4 en [], e 4 en [], f 4 en [],
> g 4 en [], a 4 en [], b 4 en [], c 5 en []])
If this sort of thing interests you, Lambda The Ultimate is a good forum to learn more. -
Most widely-read blogs are not personal
They're usually focused on a specific area that the author is interested in. Joel on Sofware, for example. Or Dan Bricklin's blog. Or the various Microsoft blogs by people working on
.net. Or the Lambda programming languages weblog. Or any of the popular writers and musicians who have weblogs.
This is what people read. Not teenybopper angst and love lore. -
Erlang and other approaches
There's been some discussion of approaches to concurrency recently on the Lambda the Ultimate blog. Erlang is mentioned as well as links to a bunch of other approaches.
-
Willful IgnoranceDiggins makes absurd statements like:
- "As a programmer for over 20 years, I have never been concerned with what a 'type system' is."
- "Every programming language I am familiar with has the same basic concept: values and expressions may or may not have a type."
- "The concept of "term" is irrelevant to the implementation, design and use of programming languages."
See Lambda The Ultimate.
I'm not sure how Heron is going to emerge from the mess of C++ish languages that includes Java (and variants like HyperJ and AspectJ), C#, the also new (but much more active) Scala, the well-grounded Nice, and the nearly complete Aldor.
And there's no way I'm downloading and installing Kylix just to try it out. - "As a programmer for over 20 years, I have never been concerned with what a 'type system' is."
-
more from cdigginsCourtesy of Lambda the Ultimate.
The author of this language seems a bit clueless.
-
On Decimal and floating pointThe What's New document gives a somewhat inaccurate description of the importance of the Decimal type. Naturally, switching from binary to decimal changes which fractions can be exactly represented, but it does not change the fact that some cannot.
The importance of decimal arithmetic is not that it is more accurate than binary, but rather that it conforms more closely to what people expect from using decimal in daily life. These expectations are codified into various social rules such as accounting practices.
There's been some heated discussion of Python 2.4's Decimal, in this very regard, on the Lambda the Ultimate languages blog.
-
Don't extend. Its overrated.
Honestly, its easier to write a recursive descent parser by hand for a programming language than you think, and interpreters are ridiculously easy unless you're worried about making it fast, which is way overrated too. It mattered with 640KB of RAM at 20MHz, but these days, its just stupid to care unless you notice its insanely slow.
First off, if you've not found this link: http://compilers.iecc.com/crenshaw/, then I recommend you start with it. While its about writing a compiler, it really help make parsing much clearer.
Scheme is a good language to check out if you want to start with another design(a scheme interpreter can be written in a few hours, even in C, if you're slick, even if you're not, it would be short project to get 90%).
Some other reference material: Parsing Techniques(free online). Also: Modern Compiler Design by the same guys and well worth the investment. Concepts, Techniques, and Models of Programming Languages, teaches kernal theory of language design, and may open your mind to some other techniques you may not be aware of.
Checking out the archives on Lambda The Ultimate would be wise too. Also, if you're in Boston on December the 4th, you might check out the Lightweight Languages Workshop at MIT.
-
Re:Revolution Needed?
Check out the operating system project written in haskell.
-
Re:Lisp
"The misanthropes that took over comp.lang.lisp are pathetic. I've never seen a techical discussion group that hostile and defensive."
I've never seen technical discussion of such a high calibre, except perhaps lambda the ultimate, where the discussion often goes way over my head.
cllers have to deal with many trolls and many, many I-havn't-read-the-FAQ-ers, neither of whom deserve a lot of attention. Perhaps what you would like is to see a comp.lang.lisp.learn or .newbies for people learning the language? They can get the answers they need from the FAQ, and newbies' questions do get constructive answers.