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 | » ]
John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Conversational Programming Languages (View in Weblogs)
Posted: Apr 23, 2005 3:43 PM
Reply to this message Reply
Summary
Why aren't we developing programming languages that work more like humans really work?
Advertisement

In Accountability in the Classroom, Eugene Wallingford discusses the notion of accountability of students and teachers in the learning (to program) process:

How would a course in spoken German or French differ? My in-class exercises and discussions pale in comparison to what a foreign language teacher can do so naturally: start a conversation with a student! A classroom discussion can grow quite easily to include many students, because each interaction with a student exposes the student's level of preparation and proficiency. Human conversation works that way.

But, why isn't programming more like that? I.e., why are the programming languages in which we work (not) conducive to real conversation?

Why do we keep trying to shoehorn everything and the kitchen sink into general purpose programming languages? Why aren't we creating real programming languages that work for the given problems?


Toby Donaldson

Posts: 8
Nickname: tjd
Registered: Jun, 2003

Re: Conversational Programming Languages Posted: Apr 24, 2005 4:44 PM
Reply to this message Reply
Is Smalltalk a conversational programming language?

John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Smalltalk? Posted: Apr 24, 2005 7:15 PM
Reply to this message Reply
> Is Smalltalk a conversational programming language?

Yes, it's arguably the most conversational of the general purporse programming languages.

John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Programming as Literacy Posted: Apr 24, 2005 7:17 PM
Reply to this message Reply
Eugene continues the discussion with: http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2005-04.html#e2005-04-24T15_13_41.htm

Keith Ray

Posts: 658
Nickname: keithray
Registered: May, 2003

Re: Conversational Programming Languages Posted: Apr 25, 2005 9:59 PM
Reply to this message Reply
human: Make the display font smaller
computer: How small?
human: 12 pints
computer: (Scales font so that the letter M is big enough to cover 12 beer glasses)
human: No, 12 points
computer: Why didn't you say so?

See also Arthur Dent and the Nutrimatic machine.

Matt Gerrans

Posts: 1153
Nickname: matt
Registered: Feb, 2002

Re: Smalltalk? Posted: Apr 25, 2005 11:14 PM
Reply to this message Reply
> > Is Smalltalk a conversational programming language?
>
> Yes, it's arguably the most conversational of the general
> purporse programming languages.


Huh? What's your basis for this assertion?

I reckon if you show Smalltalk to someone who's never seen any programming language that it's just as incomprehensible as any other programming language, if not more.

John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Re: Smalltalk? Posted: Apr 25, 2005 11:34 PM
Reply to this message Reply
> > Yes, it's arguably the most conversational of the
> > general purporse programming languages.

> Huh? What's your basis for this assertion?

Besides studying, building, and using lots of languages (including Smalltalk)? Not a thing. :-)

> I reckon if you show Smalltalk to someone who's never seen
> any programming language that it's just as
> incomprehensible as any other programming language, if not
> more.

Please note the rest of my statement: "...of the general purpose programming languages." As you noted, just because it's conversational relative to the rest of the formal programming languages doesn't make it very useful for non-programmers.

That's exactly my point -- as programmers, we're so used to such horribly non-conversational approaches to programming that even arguably the most conversational of the languages that we use is a joke (in terms of being humanely conversational).

John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Computers are useless Posted: Apr 25, 2005 11:37 PM
Reply to this message Reply
> human: Make the display font smaller
> computer: How small?
> human: 12 pints
> computer: (Scales font so that the letter M is big enough
> to cover 12 beer glasses)
> human: No, 12 points
> computer: Why didn't you say so?
>
> See also Arthur Dent and the Nutrimatic machine.

Gotta love it. Thanks.

"Computers are useless. They can only give answers." --Pablo Picasso

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

Re: Smalltalk? Posted: Apr 26, 2005 5:25 PM
Reply to this message Reply
> Huh? What's your basis for this assertion?
>
> I reckon if you show Smalltalk to someone who's never seen
> any programming language that it's just as
> incomprehensible as any other programming language, if not
> more.

No, definitely less. If you go attend a Squeaknic (afternoon gathering of Squeak fans) and sit with a skilled Smalltalker for a little while, you will be blown away with the high interactivity of the system. You can inspect any live object and invoke its methods, run queries on the running system and modify its behavior in real time. Nothing else comes close. Not Python, not Ruby, definitely not Java or C++.

So the question isn't why we don't develop such languages. The question is why we don't use the ones we have.

My best guess - fear, hype, and prejudice.

Matt Gerrans

Posts: 1153
Nickname: matt
Registered: Feb, 2002

Re: Smalltalk? Posted: Apr 26, 2005 8:38 PM
Reply to this message Reply
Those are all great features, but you're not talking about the language, you're talking about the development environment and tools.

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

Re: Smalltalk? Posted: Apr 28, 2005 12:54 PM
Reply to this message Reply
> Those are all great features, but you're not talking about
> the language, you're talking about the
> development environment and tools.

Its a whole package. I think you think language == syntax. I can't imagine how you'd have a conversation with syntax.

However, I carry on a dialog with Squeak while I develop that is most conversational.

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: Smalltalk? Posted: Apr 29, 2005 7:41 AM
Reply to this message Reply
> However, I carry on a dialog with Squeak while I develop
> that is most conversational.

What are the aspects of this dialog that make it a conversation, as opposed to a command/response sequence?

Vince.

Matt Gerrans

Posts: 1153
Nickname: matt
Registered: Feb, 2002

Re: Smalltalk? Posted: Apr 29, 2005 11:15 AM
Reply to this message Reply
A language is not a conversation. Using a spoken language, you can have deep philosophical discussions with others and you can have insipid meaningless small talk. (Oops. I didn't even intend to make a pun there, but I'll leave it nonetheless).

If I'm reading a book (like say the GOF book for example) and the examples are in the Smalltalk language, then whatever environments/tools/IDEs are available for Smalltalk have no significance to me. The only question is, is the language itself an effective means of communicating concepts to me?

I think your line of reasoning degenerates into quibbling over semantics. Where do you draw the line? Why not say all "languages" are nothing more than sugary syntax on top of machines that essentially have a very small set of real instructions?

Greg Jorgensen

Posts: 65
Nickname: gregjor
Registered: Feb, 2004

Re: Conversational Programming Languages Posted: May 1, 2005 11:42 PM
Reply to this message Reply
> But, why isn't programming more like that? I.e., why
> are the programming languages in which we work
> (not) conducive to real conversation?

The obvious answer is, computers are not people. I'm not sure what you mean by "real conversation," but there are no computers capable of carrying on a real conversation in the sense I think you mean. There are computer programs that can cleverly simulate a real conversation, but those conversations are not real. A real conversation, I think, must be understood by and interesting to all parties. Computers neither understand nor care about anything people have to say.

> Why aren't we creating real programming languages
> that work for the given problems?

Computers and their languages already operate in limited domains; general-purpose langauge is a relative term. To "converse" with a computer in a limited problem domain, you will find all kinds of problem-oriented languages. Excel, for example. Or running a laser fabric cutter. When the problem domain gets bigger -- like writing a program that lets someone program a laser cutter -- the language necessarily has to be bigger and more general-purpose because the problem domain is bigger and more complex.

English, French, Spanish, German (all natural human languages) are general purpose and hard to learn. There are plenty of domain-specific human languages analogous to Excel macros or email filtering rules.

Greg Jorgensen
PDXperts LLC
Portland, Oregon USA

Dennis

Posts: 2
Nickname: shimrod
Registered: May, 2005

Re: Smalltalk? Posted: May 2, 2005 8:36 PM
Reply to this message Reply
> Those are all great features, but you're not talking about
> the language, you're talking about the
> development environment and tools.

No, it really is a language feature. Here's why....

In C++, a function definition is an instruction to the compiler. It sits there, doing nothing, until you compile.

Write a Smalltalk or Lisp program, and functions are defined at runtime. A function goes into a variable just like anything else, and it can be defined on the fly. As a result, you can actually do all your programming at runtime. You can type a couple lines of code, define and populate variables holding data and functions, and all this stuff is floating in memory. There's no separate compile step required (although it's usually available). You type and run a few lines of code, and the results hang around ready for use when you type a few more lines of code.

It's hard for me to envision how this could be made to work so well in C++ or Java. Having variables that contain functions is a key part of it.

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