Lambda the Ultimate

inactiveTopic Inside every API is a programming language struggling to get out
started 9/9/2003; 5:14:40 AM - last post 9/13/2003; 6:27:28 PM
Dejan Jelovic - Inside every API is a programming language struggling to get out  blueArrow
9/9/2003; 5:14:40 AM (reads: 13690, responses: 14)
Inside every API is a programming language struggling to get out

A most excellent weblog post by Erik Meijer regarding areas where APIs are ripe to be converted into programming language constructs.

Erik's weblog is great reading for anybody interested in programming languages, btw.


Posted to general by Dejan Jelovic on 9/9/03; 6:14:28 AM

Dan - Re: Inside every API is a programming language struggling to get out  blueArrow
9/9/2003; 6:19:24 AM (reads: 1121, responses: 1)
Y'know, I'm getting really tired of everyone slagging on perl. Yeah, I know, all the cool kids are doing it, but it's gotten well past tiring. If perl sucks so badly, why bother mentioning it in the first place?

I swear, I'm going to start carrying pies around with me to conferences and pitch them at people who do this sort of crap. (I'll carry spares for any Lisp folks equally tired of Lisp getting slammed)

Daniel Yokomiso - Re: Inside every API is a programming language struggling to  blueArrow
9/9/2003; 6:43:16 AM (reads: 1132, responses: 0)
Y'know, I'm getting really tired of everyone slagging on perl. Yeah, I know, all the cool kids are doing it, but it's gotten well past tiring. If perl sucks so badly, why bother mentioning it in the first place?
I think this (Perl bashing) is really funny, because people say "Perl sucks look at all this line noise" without realising that in their favorite language this single line becames 20+ lines of code and two half-baked libraries.
I don't like Perl because of it's irregular syntax and it's (inexistent) type-system, but I like the way Perl makes things terse (sometimes in wrong ways ;)

Daniel Yokomiso - Re: Inside every API is a programming language struggling to  blueArrow
9/9/2003; 10:18:27 AM (reads: 1056, responses: 0)
Interesting that his blog cites changing the programming language to support new constructs (the obligatory C# reference) but not as a mean to extend the language using macros. So I fail to see what is his point. Create a language which support one million idioms? Use .net and multiple languages, one for each api? Everyone already knows (or at least should) that "library design is language design".

Mark Evans - Re: Inside every API is a programming language struggling to get out  blueArrow
9/9/2003; 1:11:31 PM (reads: 1002, responses: 0)
Gopal Gupta from UT Dallas offers a paper entitled A Language-centric Approach to Software Engineering: Domain Specific Languages meet Software Components, advocating a hybrid approach. (Disclaimer, I neither offer nor imply an opinion about Dr. Gupta's thesis, but would be curious to read some.)

Dejan Jelovic - Re: Inside every API is a programming language struggling to get out  blueArrow
9/9/2003; 1:12:18 PM (reads: 993, responses: 0)
As a good friend of mind likes to say, I've never seen a programming language I didn't like.

From a language purist point of view, Perl is a mess. That, however, doesn't mean that it isn't useful in its domain.

You should also take a look at K, btw. It's the Perl of vector processing to the power of 10. ;)

Dejan

Pseudonym - Re: Inside every API is a programming language struggling to get out  blueArrow
9/9/2003; 7:49:22 PM (reads: 948, responses: 0)
The flip side of this is something that Neil Sharman likes to say: Every part of your program is an API for some other part.

If both claims are true, then every program wants to be a single instruction in some Doman-Very-Specific Language.

Ehud Lamm - Re: Inside every API is a programming language struggling to get out  blueArrow
9/10/2003; 6:00:16 AM (reads: 826, responses: 3)
Talking about concurrency support in programming languages and not mentioning Ada is professional negligence.

Dan - Re: Inside every API is a programming language struggling to  blueArrow
9/10/2003; 10:01:25 AM (reads: 801, responses: 2)
Well... a lot of us have absolutely no experience with Ada, outside the nervous twitches and screams of madness the name invokes in people we know. :)

Whether this is a bad thing or not is a separate issue--it probably is. But, then, talking about concurrent programming without talking about Erlang's probably a bad thing too.

Ehud Lamm - Re: Inside every API is a programming language struggling to  blueArrow
9/10/2003; 11:57:49 AM (reads: 805, responses: 1)
Are you baiting me to say something about perl?

Mark Evans - Re: Inside every API is a programming language struggling to get out  blueArrow
9/10/2003; 12:09:33 PM (reads: 771, responses: 1)

Talking about concurrency support in programming languages and not mentioning Ada is professional negligence.

Me, I'm suprised his Google hunt didn't turn up more information. Concurrency is under-represented in the language world, but solutions are available to those with better Google skills!

We can add to the list Alice ML and Mozart Oz. We're still waiting on Flow Java but certainly Concurrent ML and its contribution to Moby are worthy of note. Incidentally for those interested, the Oz hackers list has some recent threads about minor revisions in their concurrency support for the pending 1.3 release.

Ehud Lamm - Re: Inside every API is a programming language struggling to get out  blueArrow
9/10/2003; 12:28:11 PM (reads: 776, responses: 0)
Our discussion of polyphonic C# may be of interest.

Frank Atanassow - Re: Inside every API is a programming language struggling to get out  blueArrow
9/11/2003; 4:14:16 AM (reads: 698, responses: 0)
If both claims are true, then every program wants to be a single instruction in some Doman-Very-Specific Language.

This is the essence of equational (incl. functional and algebraic) programming languages: every program is built compositionally out of smaller parts, which are themselves programs, and substituting one part for another, equal part always produces a whole which is equal to the original.

Consequently, in an equational language, you can abstract out any subprogram (possibly parametrizing it with some variables), assign it a name, and use the name in place of the body. Do that with a well-chosen (orthogonal, complete) set of subprograms, and you get a library; pick a special syntax for that library and you get a DSL.

Dan - Re: Inside every API is a programming language struggling to  blueArrow
9/11/2003; 12:20:22 PM (reads: 732, responses: 0)
Nah, though I could if you really wanted.

Perl 5 bases its current concurrency model on Unix-style forking and the horrible pain that its first model (based on POSIX threads) inflicted. Parrot's basing its concurrency model on both fork and POSIX threads, as well as some "wow, that's cool!" moments I had when watching the presentation on erlang at LL2.

I fully expect there's a whole range of sources we should be looking at but haven't becase we don't necessarily know they exist. Feel free to point me at places to lessen my ignorance... ;)

Mark Evans - Re: Inside every API is a programming language struggling to get out  blueArrow
9/13/2003; 6:27:28 PM (reads: 564, responses: 0)

Another (Java) concurrency link, Triveni.