Lambda the Ultimate

inactiveTopic Contributors Needed!
started 3/4/2001; 7:43:21 AM - last post 3/5/2001; 11:02:21 AM
Ehud Lamm - Contributors Needed!  blueArrow
3/4/2001; 7:43:21 AM (reads: 1902, responses: 9)
Contributors Needed!
I was away for a couple of days, and when I returned I found no new messages

This may be a good reason to ask people to step forward and help keep this site alive. Please become contributing editors.

Basically anyone who is interested in programming languages can help this site. I have two specific areas where I'd like more action (but all other topics are welcome too). First I'd like more lambda calculus action, natrually. I'd be ahppy to have a weekly (or so) LC riddle of challenge. Can anyone take such heavy responsibility on himself?

The other area which I think doesn't come often enough is declerative programming and languages (Prolog and onwards...)


As they say, the more the merryer: so get in touch.
Posted to admin by Ehud Lamm on 3/4/01; 7:44:10 AM

Bart Meerdink - Re: Contributors Needed!  blueArrow
3/4/2001; 10:15:57 AM (reads: 1542, responses: 0)
Although I'm no expert on programming (languages), I'm interested in the subject (as many are) and like Lambda the Ultimate.

Some, admittedly vague, thoughts about programming:

I think programming languages in isolation generally are insufficient to support the (main) goal of programming: reducing complexity and improving obviousness.

The buzzword 'patterns' may point to a fruitful approach whereby programming would consist of enabling (language independent) code/design-patterns found with a search-engine (matching design comments over a pattern library) in combination with 'smart' preprocessors that allow the programmer to add details or improve the patterns. Ideally, the target-language could disappear from sight almost entirely. Maybe a new road to realize the goals of 'literate programming' (with more help from the computer).

This could also be a good way to standardize large-scale projects.

And possibly, this way aspect-oriented programming (http://www.parc.xerox.com/csl/projects/aop/) could become a mainstream technique to compose applications.

(Maybe I'll try to come up with a more mature version of these ideas later)

pixel - Re: Contributors Needed!  blueArrow
3/4/2001; 12:03:13 PM (reads: 1542, responses: 0)
One thing that worries about language independance, is that it also means using only the common features of languages. You end up with: - no overloading based on parameters (otherwise it's hard for python/perl/tcl/...) - single inheritance - dumb "interface" with no implementation (think java, contrary to ruby mix-ins or haskell type classes) - no parametric polymorphism (doesn't exist in java/C) - no exceptions (C doesn't have any, other languages exception don't cross language boundaries easily) - don't take into account lazy evaluation (suppresses haskell) - no late binding (hard to achieve in C & Haskell(this is changing)) - simple data structures (otherwise need transforming from one high level type to another) - dynamic typing - non functional-oriented - pb of sharing data, garbage collecting

For simple libraries, this is not a big problem to be language independant, but it can be... and costly too! I may have misunderstood what you're aiming at, but seeing the pb of achieving a nice toolkit binding for haskell, i wonder...

Ehud Lamm - Re: Contributors Needed!  blueArrow
3/4/2001; 12:03:35 PM (reads: 1523, responses: 0)
It is great to post any interesting ideas you might have. You can just post them directly to the discussion group.

My message was an attempt to allure more people to be contributing editors, that can post directly to the homepage.

Ehud Lamm - Re: Contributors Needed!  blueArrow
3/4/2001; 12:20:25 PM (reads: 1521, responses: 0)
I was once a fan of language independence. Now I find it as a very confused and confusing idea. Most important advances (think of information hiding, for example, or DbC) only showed their true importance when integrated into programming languages. Ideas that failed to be thus integrated, are usually pretty trivial.

This is a pretty complex issue, which is the focus of much research, and merits much more. That's what component programming is all about.

The EJB and the XSLT are relevant, and also worth reading.

You might also enjoy this paper, about patterns and programming languages.


This discussion should really be in its own thread.

pixel - Re: Contributors Needed!  blueArrow
3/4/2001; 2:17:23 PM (reads: 1518, responses: 0)
the springer link requires authentification :-(

Bart Meerdink - Re: Contributors Needed!  blueArrow
3/4/2001; 2:22:45 PM (reads: 1512, responses: 0)
Part of what I meant (the simple beginnings) is illustrated at http://www.togethersoft.com/together/matrix.html, 3/4 down the page: "Patterns, plus Modeling Components" (forgive the commercial link, I have no connection with them).

When you recognize a pattern, you can import a well rounded and documented template (and that the language is Java is not very important) and go from there. If the template needs considerable change you could decide to improve the template itself instead (including documentation). This template would serve as documentation about the basic structure of the program.

Next step could be to automate finding relevant patterns by using the English documentation as search-argument on a pattern library. This would give the programmer access to tested solutions likely to be relevant in the context.

Next step could be to fill out the template with smaller-scale code templates, so as to minimize ad-hoc exercises in the programming language at hand. Maybe the documentation ultimately could state enough details to allow automatic code generation altogether.

Next step could be to import patterns to integrate other 'concerns' (see aspect oriented programming) like distribution over networks, unit testing, logging, synchronization, security etcetera.

Of course the further you go with automating, the more difficult it is to get it right.

The main idea is to flexibly reuse on the highest level possible, so as to avoid most of the lower-level ad-hoc coding. Ad-hoc code always requires people to 'get into the mind' of the writer, a time-consuming and unreliable process.

ps. the 'patterns and programming languages' paper seems to require a password.

Ehud Lamm - Re: Contributors Needed!  blueArrow
3/4/2001; 10:45:46 PM (reads: 1502, responses: 0)
Try this link instead.

Bart Meerdink - Re: Contributors Needed!  blueArrow
3/5/2001; 4:03:03 AM (reads: 1507, responses: 1)
Thanks for the link, although its main value for me was point me to the better article at http://citeseer.nj.nec.com/bosch98design.html. How easy it is to get immersed this way.

The Bosch article tries to address some key-issues with directly using higher-level patterns, by defining a way to flexibly extend the programming environment with a layered/filtering approach to code generation (in a OO-only context, I must admit). Compare http://trese.cs.utwente.nl (AOP with composition filters).

I'll try to come up with a concept for a separate thread about why patterns should be kept separate from programming languages, even if languages exist that happen to contain support for some patterns.

Ehud Lamm - Re: Contributors Needed!  blueArrow
3/5/2001; 11:02:21 AM (reads: 1576, responses: 0)
I have a feeling that what you are really after is better IDEs. I agree this is a worthy goal. Indeed I have more requirements from such a super-IDE. For example, support for frameworks.

Currently it seems the best programming environments are for Smalltalk and friends (refarctoring borwser etc.).

Some things are being translocated to other languages. Check this out.