Lambda the Ultimate

inactiveTopic Do languages matter?
started 11/6/2002; 1:26:14 PM - last post 11/11/2002; 6:24:33 PM
Isaac Gouy - Do languages matter?  blueArrow
11/6/2002; 1:26:14 PM (reads: 648, responses: 14)
What works in all these cases is that the programs were well thought out and the design was done intelligently, based on a clear and well communicated set of organizing principles. The language and the operating system just don't matter...
What makes a piece of software good has a lot to do with the application of thought to the problem being addressed, and not much to do with what language or methodology you used.
Objecting to Objects by Stephen C. Johnson

Is the main difference source-code volume: write 10x less code and you'll be 10x more productive? (section 7 in Four-fold Increase in Productivity and Quality)

Noel Welsh - Re: Do languages matter?  blueArrow
11/7/2002; 8:23:48 AM (reads: 650, responses: 0)
Do languages matter? Definitely, in my experience. Is it only source-code volume? Perhaps. There is certainly a correlation. It becomes difficult to deal with masses of source code, but with a powerful enough language you should be able to build enough abstraction layers that you raise the language to the level where the real work is done using a concise notation.

Specific complaints/comments about the paper:

- First he says " It is a very difficult argument to claim that the best way to organize expensive slow cycles is also the best way to organize cheap fast ones" and then complains "meeanwhile burning cycles by the bushel in the name of optimization". So are cycles cheap or not? BTW, the C++ compile time problem is unique to that language.

- C++ doesn't support threads or serialization. Well, that's not a strike against OO.

- "OOP Claims Unmasked" He argues that domain specific languages perform better in their domain, and code reuse is hard. These are valid complaints. OOP is certainly not the last word in modularity. Recent research into units and staged evaluation has created systems where you can compose language layers and evaluation times. This is incredibly powerful and its possible that doing so can provide the abstractions to build the type of modularity the author is asking for.

Isaac Gouy - Re: Do languages matter?  blueArrow
11/7/2002; 8:59:26 AM (reads: 653, responses: 1)
For the past few decades, programming language design and implementation research has concentrated heavily in a few notable areas: type theory, functional programming, object-oriented programming, and, of course, optimization techniques. Yet most of the recent commercially successful languages (e.g., Perl, Python, Visual Basic, Java) are not particularly interesting when judged in these domains.
Todd Proebsting at LL2

Isaac Gouy - Re: Do languages matter?  blueArrow
11/7/2002; 10:39:10 AM (reads: 627, responses: 1)
with a powerful enough language you should be able to build enough abstraction layers that you raise the language to the level where the real work is done using a concise notation
Thus reducing source-code volume.
If we take that as given, what else is important in reducing source-code volume, and what else apart from source-code volume matters?

Quality of code libraries?
Specific techniques for composing behaviour? Functional composition vs implementation inheritance vs component interfaces (as-if it were an either-or choice!).

What else matters? - Modularity.
research into units and staged evaluation
Sounds interesting! Please recommend some online reading.

Specific complaints/comments about the paper
The theme of the paper seems to be - OOP is not a silver bullet. I find that hard to disagree with but not very interesting. More interesting would be - is OOP (or technology X) a better or worse bullet than Y, and specifically why?

Ehud Lamm - Re: Do languages matter?  blueArrow
11/7/2002; 11:32:04 AM (reads: 674, responses: 0)
You may enjoy his slides (there are available from his web site).

I agree with the basic argument, but let's not take it too far. First of all, language research and language design are two different things. Good language design (esp. DSL design) is about problem domain abstractions. Thinking about these, is really not the job of programming language theorists.

Second, it is a bit extreme to say that the languages mentioned were not influenced by current thinking. Python, for example, has several language constructs that come from functional programming. Java was influenced by OOP (obviously) and OOP research (e.g., why choose single inheritance over multiple inheritance? Why work so hard to add genericity to the language?)

And oh, all this has very little to do with reducing code size. Sure, when you raise the abstraction level of the language, the amount of code is reduced, but this is a very indirect and unreliable indicator.

Isaac Gouy - Re: Do languages matter?  blueArrow
11/9/2002; 3:49:26 PM (reads: 605, responses: 0)
I did enjoy the slides and the presentation. More about that later.

"Do languages matter?" I was hoping this extreme silly question was so open that it could go off in unforeseen directions. Do languages matter more than intelligent design? More than code libraries? More than...? What matters about languages?

So paraphrasing from one of the comments at LL2 it matters that a capability is in the language rather than in a code library because that changes the way programmers think about the problem.

And oh, all this has very little to do with reducing code size
Maybe we are just looking at the same thing from different directions. Source-code volume by itself makes programming complicated. We can address that by raising the abstraction level of language constructs. I'm looking at source-code volume as a fundamental problem not an "indicator"; it consumes brainpower so designing a language to encourage concise code should be a fundamental goal (Matz' LL2 Ruby talk).
Wondering about the ways in which I find Java more painful than Smalltalk, reminded me how much more "stuff" you have to write/read/understand/debug in Java (language tithe?).

Isaac Gouy - Re: Do languages matter?  blueArrow
11/10/2002; 12:47:24 PM (reads: 597, responses: 1)
a bit extreme to say that the languages mentioned were not influenced by current thinking
Much more extreme than that! The message was that it simply didn't matter - the languages became "successful" for a different reason, the introduction of a disruptive technology.
Does the Java story support that premise? What I read is that Oak had been around for years, being used in a limited way on various projects. Then came web browsers and Two Demos That Changed The World - the introduction of a disruptive technology.

One of the amusing things about individual programming languages is that we choose to hold-tight their identity, after all manner of additions and mutations. Will we reach the point where different languages have more in common with each other, than they do with the original language spec?

why choose single inheritance over multiple inheritance?
After that long-winded introduction, one way to answer this is to look at the Oak spec: p18 "Interfaces solve some of the same problems that multiple inheritance does without as much overhead at runtime." And to look at the histories "The concepts of multiple-inheritance and operator overloading were identified as sources of potential errors, and eliminated in Oak." Was that the result of OOP Research or simply experience with C++?

Java was influenced by OOP (obviously)
Are we making a mistake to think Java was originally anything more than a variation on C++? "His extensions and modifications to C++ (also know as C++ ++ --), were the first steps towards the development of an independent language". OOP was already part of the cloth from which Java was cut.

add genericity to the language?
I think this shows how little they were influenced by OOP research! Weren't generics part of Modula-3 before Oak existed?

Ehud Lamm - Re: Do languages matter?  blueArrow
11/10/2002; 1:19:13 PM (reads: 624, responses: 0)
I guess it depends on your point of view. I think all this shows influence. I guess you'd claim it is not enough influence, and this may be right. But it takes a long time for new ideas to take hold, so I think we shouldn't despair.

Isaac Gouy - Re: Do languages matter?  blueArrow
11/10/2002; 1:36:14 PM (reads: 593, responses: 1)
we shouldn't despair
I'm in complete agreement with that! :-)

it takes a long time for new ideas to take hold
Let's not forget the positive part of the message, which really is a good reason why we shouldn't despair. There's nothing to stop "advanced" programming languages being wildly successful, they just need to be part of a larger change - a disruptive technology.

Ehud Lamm - Re: Do languages matter?  blueArrow
11/10/2002; 3:13:18 PM (reads: 687, responses: 0)
When I first read the slides (a few months ago) I quite liked the message. After listening to the LL2 talk (or at least trying to, the quality via modem wasn't too good) and rereading the slides, I find the conclusion a bit simplistic. For one, I don't see any of the examples given at the end as compelling or ground breaking. Why are these language issues and not libraray issues? What about parser combinators, or Ocaml's macro system, which we talked about on LtU?

Isaac Gouy - Re: Do languages matter?  blueArrow
11/11/2002; 1:46:00 PM (reads: 573, responses: 2)
the conclusion a bit simplistic
I was tempted to say a lot of it was commonsense and obvious (which of course, just means I was in agreement, and after he'd pointed-things-out I understood them). Maybe it's just that my perspective is that of a programming language user not a programming language designer? Maybe you could restate the conclusion and make sure we're talking about the same things.

Why are these language issues and not library issues?
Someone in the audience said it well:

Everybody who uses Java knows that everything is in an extension to Java in the library... The problem is not how do you make solving the problems possible but how do you create a programming language or set of tools that changes the way programmers think about the problem and that's why it's important that these things be in the language as opposed to being in a tool or free in the hardware or in the operating system.
What we are doing with programming languages is really not solving existing problems, but making it possible to think about new kinds of problems - which we ourselves don't know exist yet, until enough people are using our products (sic programming languages).

Ehud Lamm - Re: Do languages matter?  blueArrow
11/11/2002; 2:06:15 PM (reads: 588, responses: 0)
Sure. I agree with this quote (I always go on and on about how languages are abstraction mechanisms, as LtU regulars know). But this still doesn't answer my question. Not everything that helps you think about programming is, or sohuld be, part of the language. What are the benefits of putting these things inside the language?

Ehud Lamm - Re: Do languages matter?  blueArrow
11/11/2002; 2:50:47 PM (reads: 607, responses: 0)
Maybe it's just that my perspective is that of a programming language user not a programming language designer?

I am talking as a language user.

See, I agree that you can have disruptive language technologies. They don't even have to be particularly new in order to be disruptive. Java helped many programmer think about mobile code, simply by utilizing the very old concept of "virtual machine."

What I want to see is how the specific ideas discussed at the end of the talk would effect my programming. Would it be enough to get me to switch langugaes? I am not sure.

Because as a language user I think these crucial language features that make you want to switch, seem small but have great impact. Things like the subtle difference between lexical and dynamic scoping. Or template specialization.

Not huge features that are problem domain specific, and don't really influence or interact with the rest of language, like CSP.

Now parsing facilites would make a nice addition, but as I said - it's already here. Check Perl6, and modern macro facilities.

Isaac Gouy - Re: Do languages matter?  blueArrow
11/11/2002; 6:24:33 PM (reads: 567, responses: 0)
Not everything that helps you think about programming is, or should be, part of the language.
What kinds of thing are you thinking of?

language features that make you want to switch
Let me suggest that your interest in programming languages makes you unrepresentative.
Let me suggest that most programming is dominated by clichéd domain activities - pushing data from database to ui and back again, managing user sessions, blah blah... Give a better way to express solutions for those activities and they'll take functional programming as-part-of-the-package and learn to love it (later) ;-)

don't really influence or interact with the rest of language, like CSP
I've never thought about what a good language-neutral CSP library would be like: I have to trust his judgement on that. Give me a way to express constraints on values in my programming language, and for a while everything will be a constraint satisfaction problem ;-)

Perl6, and modern macro facilities
You missed the smiley! Isn't this a reference to the repeated LL2 jokes on perl regular expressions and mit macros ;-)

How would you characterize Mozart/Oz? A single language? Several DSLs built on top of a core language?

Noel Welsh - Re: Do languages matter?  blueArrow
11/12/2002; 1:40:16 AM (reads: 583, responses: 0)
>> research into units and staged evaluation > Sounds interesting! Please recommend some online reading.

http://lambda-the-ultimate.org/classic/messagx4475 is a good place to start. You can hunt down the references via CiteSeer.