🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #6145

Re: What is B&D? (Re: Bondage and Discipline Languages)

#6145
From: Bob Hathaway
Date: Wed, 11 Jan 1989 16:27
57 lines
3644 bytes
David Gudeman writes:
>It's not an analogy, it's a pun.  And it refers to the philosophy of
>language design in which the language designers feel it is their
>responsibility to constrain (hence ``Bondage'') the programmer to
>adhere to certain Disciplines in programming.  Now, ``Police state
>language'' is an analogy.  And it doesn't refer to a paradigm (a way
>in which a given languages encourages the programmer to view
>computation) since there can be functional and logical B&D languages
>as well as imperative ones.

>You don't lable a language ``B&D'' just because you can't do something
>in that language, you call it that because (1) there is something you
>can't do, (2) the designers of the language predicted people would
>>want to do it, and (3) the designers deliberately made it impossible
>because they thought it was a bad thing to do.

This sounds like you don't know programming as well as compiler writers,
language designers, programming language hobbyists, ...  I, and several
others I have talked to can do anything we can do in C in Pascal, Modula,
Ada, etc.  At *worst* we'll resort to medium level programming or operating
system calls, or even external language interfacing although the first two
possibilities are sufficient.  Ada and Modula-2 offer low-level facilities
and Ada doesn't even require explicit context clauses to access the
system package. 
>
>I don't suppose there is much point in arguing language design
>philosophy, since different languages are designed with different
>goals and priorities.
>

This is true but at the risk of sounding elitist, just because you
can't figure out a way to program something in Language X doesn't mean
proficient programmers can't.

Peter da Silva writes:
>Are you using the phrase "dynamically typed" to refer to object-oriented
>languages? I haven't run into this phrase before, and it's quite evocative.

No, although object-oriented languages such as smalltalk are frequently 
dynamically typed.  I usually consider two basic types of polymorphism,
statically checked and dynamically checked, although this is not
the canonical view.   Generics and Milner's type inference system are 
examples of statically checked (typed) polymorphism.  This form can be
accomplished at compile time and offers strong type checking.  Dynamic 
typechecking, which I often refer to as arbitrary polymorphism, is a more
powerful form and usually cannot be accomplished at compile time.  
Traditionally, Strachy defined two forms of polymorphism.  The first is 
ad hoc polymorphism, or operator overloading, where the same function 
name can refer to several distinct subprograms and the parameter
type structure is used to select the correct piece of code.  The second
is parametric polymorphism, (sometimes universal polymorphism contains this 
category), which refers to subroutines which can acept several distinct 
parameter type structures.  Several texts describe polymorphism, such 
Principles of Programming Languages, by Tennet.

Bob Hathaway
rjh@purdue.edu
Technical Details
Message-ID: <5818@medusa.cs.purdue.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!clyde!att!pacbell!ames!mailrus!purdue!rjh
References: <8540@megaron.arizona.edu> <2630@ficc.uu.net> <13293@cup.portal.com> <5795@medusa.cs.purdue.edu> <2670@ficc.uu.net>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!clyde!att!pacbell!ames!mailrus!purdue!rjh
From: rjh@cs.purdue.EDU (Bob Hathaway)
Newsgroups: comp.lang.misc
Subject: Re: What is B&D? (Re: Bondage and Discipline Languages)
Message-ID: <5818@medusa.cs.purdue.edu>
Date: 11 Jan 89 16:27:06 GMT
References: <8540@megaron.arizona.edu> <2630@ficc.uu.net> <13293@cup.portal.com> <5795@medusa.cs.purdue.edu> <2670@ficc.uu.net>
Sender: news@cs.purdue.EDU
Reply-To: rjh@cs.purdue.edu (Bob Hathaway)
Organization: Department of Computer Science, Purdue University
Lines: 57