The Artima Developer Community
Sponsored Link

Weblogs Forum
Conversational Programming Languages

22 replies on 2 pages. Most recent reply: May 17, 2005 2:23 PM by Merriodoc Brandybuck

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 22 replies on 2 pages [ « | 1 2 ]
Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: Smalltalk? Posted: May 3, 2005 4:55 AM
Reply to this message Reply
Advertisement
The ability to run code one line at a time (as in any debugger) and edit it on the fly have been features in various IDEs for as long as I have been a programmer (i.e more than 20 years).

They may make part of the development process more interactive but in what way do they make a language more conversational?

Having the computer tell you "x = 3" isn't conversation.

Dennis

Posts: 2
Nickname: shimrod
Registered: May, 2005

Re: Smalltalk? Posted: May 3, 2005 6:01 PM
Reply to this message Reply
All I can say is, try it sometime. Get Squeak or PLT Scheme, a basic tutorial, and give it a whirl. It's quite a different experience from the static-typed languages I spend most of my time in, and the features of the languages themselves are a key part of it.

Matt Gerrans

Posts: 1152
Nickname: matt
Registered: Feb, 2002

Re: Smalltalk? Posted: May 3, 2005 6:50 PM
Reply to this message Reply
Okay, from the Squeak language reference at http://www.mucow.com/squeak-qref.html:


lineCount
"Answer the number of lines represented by the receiver, where every
cr adds one line."

| cr count |
cr Character cr.
count 1 min: self size.
self do:
[:c | c == cr ifTrue: [count count + 1]].
^ count


That's the language. Is it conversational? I think not. Show just the code part to any non-programmer (or even any non-Smalltalk programmer) and I'd like to know what percentage of answers (or guesses) are correct.

Conversational would be when you could ask the computer "how many lines are this in this blob of text?" (...And the computer would then ask "what do you mean by 'line'?" -- or more more likely, look for the substring "lines" and return the number of times it found it).

Matt Gerrans

Posts: 1152
Nickname: matt
Registered: Feb, 2002

Re: Smalltalk? Posted: May 3, 2005 6:52 PM
Reply to this message Reply
Oops, that should have been "how many lines are in this blob of text?" (the one above will probably confound people, not to mention computers)

Steve Donovan

Posts: 24
Nickname: stevedonov
Registered: May, 2005

Re: Smalltalk? Posted: May 4, 2005 6:47 AM
Reply to this message Reply
> Conversational would be when you could ask the computer
> "how many lines are this in this blob of text?" (...And
> the computer would then ask "what do you mean by 'line'?"
> -- or more more likely, look for the substring "lines" and
> return the number of times it found it).

That would be my understanding, in contrast to a mere interactive interpreter prompt (which ain't no conversation.) The computer would constantly have to disambiguate by asking silly questions, but eventually would learn what is meant by all terms in the problem domain.

And then, it would write you a program

It would take skill and knowledge of the machine's limitations to do non-trivial programming, but the transcript of the conversational (and higher-order AI representations) would be available. To write such a system is no easy task, but it doesn't feel impossible.

steve d.

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: Smalltalk? Posted: May 5, 2005 4:48 AM
Reply to this message Reply
> The computer would constantly have to
> disambiguate by asking silly questions...
>
> ...And then, it would write you a program

Reminds me of when I was studying coding at University (in 1985). I can't remember the lauguage we were being taught but the lecturer told us not to make a career out of it since, by the end of the century coders would be out of work and managers would simply be feeding specifications directly into the machines and letting them get on with the coding.

Ironic then that things have actually gone the other way. The current leading edge practice - XP - puts the coder at centre stage and does away with specifications!

V.

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

Re: Smalltalk? Posted: May 5, 2005 6:55 PM
Reply to this message Reply
> Conversational would be when you could ask the computer
> "how many lines are this in this blob of text?" (...And
> the computer would then ask "what do you mean by 'line'?"
> -- or more more likely, look for the substring "lines" and
> return the number of times it found it).


That's just the language too. So far you're not happy with examples, but I haven't seen what you think "conversational" means with any rigor. So make something up.

sometext lineCount.

the computer doesn't have to ask what is a lineCount, it knows. You could fake it though. You could write a doesNotUnderstand handler that fires up a wizard that allows you to define terms as you go. That might "feel" more conversational and it is really trivial to do, and it sounds like it fits what you've described so far.

There are other interesting tools that could be put to use. Squeak has a really freaky tool called a MethodFinder. http://minnow.cc.gatech.edu/squeak/1916

The tricky thing is the 'find by example' feature. You feed MF input arguments and the expected result and it figures out which methods fit that scenario. Such a capability could certainly form a basis for a more conversational system.

Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: Conversational Programming Languages Posted: May 17, 2005 2:23 PM
Reply to this message Reply
Given that the last response was 12 days ago, I'm obviously late to the party, but I have to say I LIKE the fact that I can simply tell the computer what to do and it does it. I have enough conversations in my life that take up more time than they should because conversation is laced with ambiguity, tone, context, inflection, etc. Take any common phrase, say "You're a winner." That has a totally different meaning depending on whether it is addressed to the person who just won a 128 million dollar lottery jackpot or to the idiot that just cut you off because he was about to miss his exit.

Personally, if it was between the computer learning my particular dialect of the English language to figure out how to accomplish a task vs. a person having to learn a computer's particular dialect to perform a task, I can't imagine the computer having an easier time of it anytime soon.

There is still a ton that can be done to automate things and make them simpler, but an actual conversation? If you were to ask the computer to "draw me woody", you would likely hope to get vastly different results if you asked the computer at Pixar vs the computer at Vivid. As it is now, you would probably, at best, get a picture of a log.

Flat View: This topic has 22 replies on 2 pages [ « | 1  2 ]
Topic: Fluid Programming in Lucid Previous Topic   Next Topic Topic: More on languages and objects


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us