[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::languages

Title:Languages
Notice:Speaking In Tongues
Moderator:TLE::TOKLAS::FELDMAN
Created:Sat Jan 25 1986
Last Modified:Wed May 21 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:394
Total number of notes:2683

73.0. "Proposal for a BOSE Standard Lan" by ORPHAN::NYLANDER () Wed Sep 25 1985 14:02

From:	ELUDOM::BJORK        24-SEP-1985 17:19
To:	CHIP,CHRIS,CINDY,GRACE
Subj:	FYI

From:	SCRIBE::VONSUCK      "Kit von Suck - MKO1-2/C08 264-4515" 24-SEP-1985 17:15
To:	ELUDOM::BJORK
Subj:	For your reading enjoyment!  Thanks for all your help, k

From:	SCRIBE::ROSS         12-SEP-1985 09:19
To:	CARLTON,VALES,DEFELICE,RAMSHAW,VONSUCK,FOSKETT,PEANUTS
Subj:	Sea vs the Bear

From:	PIXEL::LINT         "REX 264-6095-MAIL:MK1-2C2 OFF 2A8" 11-SEP-1985 19:02
To:	@EXTSTAFF
Subj:	koala vs c

From:	REGAL::MCMANN       "DENNIS 381-2700" 10-SEP-1985 14:03
To:	@CPROP
Subj:	DEVELOPMENT OF TRANSPORTABLE CODE IN C - A PROPOSAL

From:	REGAL::MOORE        "Ken Moore" 10-SEP-1985 11:53
To:	DENNIS
Subj:	C proposal




   1  PROPOSAL FOR BOSE STANDARD PROGRAMMING LANGUAGE

        This proposal  nominates  C  as  the  BOSE  standard  programming
   language.  C should be the standard programming language since it is a
   proven, stable language, it has been ported to  and  is  available  on
   many different machines, it is easy to learn and there are many people
   who already know it, and due to the  complete  language  features  and
   easy  debugging  environments,  programmer  productivity  in C is very
   high.



   1.1  Proven And Stable Language

        C is a proven and stable language.  It was developed in the early
   1970s  and  since  then, many compilers have been written based on the
   reference manual written by Kernighan and Ritchie.  There is currently
   an  ANSI  committee  working  on  a  ANS C specification based on that
   reference manual.



   1.2  Portability

        The portability of systems written in C has been proven  in  many
   circumstances.   The  UNIX  operating system, the majority of which is
   written in C, has been ported to a wide variety of machines.   Many  C
   systems, like the type written by BOSE, have been quickly ported.  For
   example, ALLY was ported from a 68000/UNIX to VAX/VMS by one person in
   a  month  -  a similar amount of effort was required to move it to the
   IBM PC.

        It should be noted that is also possible to write C code that  is
   not  portable or just portable to a small number of relatively similar
   machines.  However, it is simple to follow the few number of rules and
   conventions to write portable code.



   1.3  Easy To Learn

        C is easy to learn by either reading books or  taking  a  course.
   There  are  well  over  twenty  books about C available in bookstores.
   Many companies, including DEC's Educational Services, offer courses in
   programming in C.

        When the VICE group learned C, it took each person about a day or
   two to write their first C program, a week to do something productive,
   and no more than a month to feel comfortable with C.  All  members  of
   the  group  were  experienced  BLISS programmers and learned C just by
   reading books.

   Proposal for BOSE Standard Programming Language: C              Page 2


   1.4  Availability Of Programmers

        It is fairly easy to find C programmers outside of DEC.  Most  of
   the  college  students are now exposed to C in at least one course, so
   it is easy to find college hires who  need  little,  if  any,  initial
   programming language training.



   1.5  Compiler Availability

        C compilers are available on a wide variety of  machines.   C  is
   available  on  machines  from  the CRAY 2 through such machines as the
   Commodore and Atari.  Certainly, this is a wider range of of  machines
   that  we're  likely  to  use  in  BOSE, but the point is that C is now
   available on the type of machines that we're likely to be using in the
   future (VAX, PDP, 8088, 80286, 68000, 32032).  Cross-compilers running
   on VAXes are available for many of these target machines.

        C  is  also  one  of  the  first  languages  that   new   machine
   manufacturers  provide.   The  DEC  C  group  is  working to provide C
   compilers for the new RISC machines.  Also, many of the  new  parallel
   processor  companies  provide C compilers first since they usually run
   some version of UNIX.



   1.6  Programmer Productivity

        Programmer productivity in C is fairly high  -  certainly  higher
   than in BLISS.  Programmers are productive since there is a direct way
   in the language to code the desired algorithm.  Also, most C  systems,
   including VMS, provide a C source debugger.  The VMS debugger has many
   features that are coupled with  the  C  language  to  provide  a  good
   development environment.

        The Language Sensitive Editor, developed by TL&E, may  also  help
   improve   programmer   productivity   by   providing  an  editor  that
   understands the syntax of the C language coupled with the compiler and
   debugger.   We  do not yet use the LSE, but at some point we may begin
   to use it and other C productivity tools from TL&E.



   1.7  Language Features

        C has a complete, yet relatively small set of language  features.
   Although  I/O  and  string  handling  are not builtin to the language,
   virtually all compilers  provide  those  facilities  in  a  consistent
   manner.  [I don't think that the manner in which language features are
   provided should be a matter of debate, since such  arguments  tend  to
   degenerate  into  religious battles and it really doesn't matter how a
   function is provided as long as it can be done.]

   Proposal for BOSE Standard Programming Language: C              Page 3


   1.8  Language Environment

        All good C systems provide the common I/O, string, exception, and
   memory  handling interfaces.  Many systems also provide math routines,
   process/task  control  routines,  and  the  'curses'  screen  handling
   package.



   1.9  Performance

        The performance of the code generated by good C compilers is very
   good.   On  UNIX  systems, the code performance by the C compiler will
   directly influence the overall system performance since the  operating
   system  is  mostly written in C, so the compiler writers make sure the
   code quality is high.  On VMS, the VAX C compiler uses the VCG backend
   that  is  shared  by  the PL/I and ADA compilers and so produces good,
   competitive quality code.



   1.10  Cost

        Since C compilers  are  reasonably  priced,  it  will  always  be
   cheaper  for  BOSE  to  purchase  a compiler for a new machine than to
   write one (and a new debugger, RTL, environment  routines)  ourselves.
   For  new  DEC machines, the C group in TL&E is responsible for writing
   the compiler.

        Also, any new VMS C programmer tools we will get for  free.   For
   example, when LSE was developed, it was also tailored for C by TL&E.
T.RTitleUserPersonal
Name
DateLines
73.1TRIVIA::STANSBURYMon Sep 30 1985 10:2614
>   1.6  Programmer Productivity
>
>        Programmer productivity in C is fairly high  -  certainly  higher
>   than in BLISS.  

Can this be proven?  I'd be interested in seeing some figures to backup this 
claim. 

>                   Programmers are productive since there is a direct way
>   in the language to code the desired algorithm.  

Uhm, yes - there are also indirect ways in C to code algorithms ...

Jack
73.2SPEEDY::MEIERThu Oct 03 1985 09:552
Pardon my weak understanding of the subject, but what is a "BOSE Standard
Language"? When you answer that, I'll have some more replies ...
73.3SMILEY::LONGSun Oct 06 1985 23:287
BOSE -  Business and OFFICE systems engineering? (group which includes 
WPS(all versions and DECpage etc) is
is proposing KOALA as the standard language to write all their 
products in. The BOSE products run on VAxes, IBM pcs, etc.

This looks like a counter-proposal to using KOALA as the standard language.

73.4ORPHAN::MEIERMon Oct 07 1985 16:5920
IBM pc's??? You sure? I didn't know Digital ever was, nor planned to be in
the business of developing software that ran on other vendors hardware!

If we truly believe the "One company, one xxx, one yyy" I would venture to
state that Ada will be one of the first (if not the first) language to be
ported to any new hardware/software machines/operating systems DEC
developes. And, I feel Ada is a superior language to write applications
(especially large ones) in. I'm a little biased, but in retropect 5
years from now, I would rather look back and think "Gee, I'm glad we
wrote all these new applications in a modern, structured, typed, industry 
standard language (Ada) rather than in 'C' ..." 

And if you say that Ada doesnt generate code for PDP-11's, I'll say thats
not in line with the "One xxx" message anyway (at least for new product
developement).

I'm sure in this notes file, and in the Ada notes file there are many places
pointing out the virtues of Ada, and how more and more groups within DEC
are or plan to write their new products in Ada. And I'm sure more will jump
on the bandwagon as time goes on ...
73.5DR::BLINNTue Oct 08 1985 01:1030
If I had to choose between Ada and C for writing systems programs, I
suspect I would choose C.  As was remarked, among the advantages of C
are that it is available for many different systems, it is pretty much a
de-facto standard, and most implementations provide production quality
code.

We are already in the business of writing software to run on other
vendors' hardware, particularly the IBM PC.  Consider, for example,
DECnet-DOS.  There is likely to be much more of this occurring in the
future, rather than less.  This is to our advantage.  There is plenty of
money to be made from software (look at, e.g. Digital Research, or at
Lotus Development, or even at Borland, if you don't believe there is
money in the software business).  In the future, it will be beneficial
to us to be able to provide the same business solutions on VMS and on
Unix (our own Ultrix or someone else's box), and using truly portable
languages is a prerequisite to attaining that goal.

BLISS is probably not in the running, for the simple reason that there
are not BLISS compilers for most computer systems.

At the present time, the same argument also applies to Ada.  There are
VERY FEW production quality Ada implementations, although this will
probably change over time.  See note 108.* in the Ada notesfile on this 
cluster for further comments on Ada, however.

The transportability problems of BLISS and Ada apply even more strongly 
to Koala, unless, of course, the Koala implementors believe they can 
port it easily to other systems.

Tom
73.6GALLO::AMARTINTue Oct 08 1985 01:3523
Re .5:

Most C compilers have nothing but a peephole optimizer, and rely on
the programmer to write code goes through the compiler like a watermelon
seed.  (Make as much of that analogy as you like).

Exceptions I know of are Vax-11 C and whatever Tartan Labs is working on.
And whatever Stanford is up to.

(I assume Mike Powell hasn't been sneaking around writing a C compiler
that "does all good things and no bad things, taking no time and no space"
during some weekend, like he did with Modula-2).

Anyone who wants to disabuse me of this notion should feel free to post the
name of their favorite optimizing C compiler (hopefully accompanied with a
representative list of optimizations).  I'd rather know sooner than later.
Still, there are probably 10 optimizing Fortran compilers for every optimizing
C compiler.

Also, BOSE isn't the only organization picking an implementation langauge,
and I have heard rumors that a lot of people are going to be coding in
something that is neither Ada, C, Bliss, Modula-2 nor Koala.  Comments?
				/AHM/THX
73.7SPIDER::ALLISTERWed Oct 09 1985 22:2521
I think that languages must be selected on their applicability to a given
system.  I will not advocate the use of a single language for all applications
(although some languages are more 'universal' than others).  I will certainly
not advocate the use of C as a standard language.  Aside from heavy systems
development, I do not see many reasons to use C for other applications.

The language lacks many modern concepts (do not forget, it was started in late
60s).  It began as a super-assembler and still is one.  The procedure nesting
is primitive, and variable scoping is obsolete.  Only APL provides more ways
to bend a program in a pretzel than C.  Parameter passing allows perverse
degrees of freedom.  Strong typing is unheard of.  Portability is vastly
exaggerated.  C does not have a standard - the language is defined 'by example'
in the well known manual.  C is not so fast -- Bell Labs often use Fortran for
number crunching applications, and even boots VMS (yes!) to replace sluggish
C-based UNIX on up to 30% of their VAXen.  C compilers provide very little
protection -- most Pascal/Ada-style compile-time detectable errors have
to wait until run-time 'core dump' to be found. . . . 

C anyone?  Not me, I've had enough!

-Alex, ex Member of Technical Staff, AT&T Bell Laboratories
73.8HANOI::MOOREThu Oct 10 1985 10:1626
re: .7

While I agree that C is not a 'universal' language, many of your criticisms
are not completely true.  C is language with certain attributes and certain
deficiencies, just like any other language.  There is a standardization
effort, ANSI X3J11, which is getting close to having a proposed standard.
There is definitely a dichotomy on the committee of people who want C to
remain a symbolic assembly language and people who want C to be a useful
medium-to-high level language.  In my opinion, the majority is the latter
group.  As for speed, VAX C is a highly optimizing compiler which generates
code which is typically as good as VAX Pascal or VAX FORTRAN.  It obviously
depends upon the application, but on the VAX speed is not a reason to choose
one language over another.  This is not true universally - VAX C certainly
runs rings around most other vendor's C compilers.  As for strong typing
and static checks in the compiler, true, C does not have much.  Again, VAX
C has much more than most.  However, that does open a market for productivity
tools to support an 'environment' consisting of more than just a compiler
and linker -- re: LSE for a start.  C has it's place.  It is reasonable and
valid language for many languages.  True, it is not an Ada, but would you
want it to be?


		- a totally unbiased language afficionado
		  and former VAX C project member
		                                 
		- Dave
73.9SPIDER::ALLISTERThu Oct 10 1985 12:3216
re: .8

Yes, C has its place and your reply makes a lot of common sense. But having
spent much time battling the "C is panacea" fashion, I prefer to over-critisize.
I do agree that VAX/C is a very good and fast implementation of C. 
C also has a potential for being a very portable language, however most
systems destroy that advantage through non-disciplined usage of OS-dependent
features (shell/DCL/system calls).  And I do not have to tell you that C
rivals APL (in the negative sense) when found in the hands of amateurs.

To sum it up: only a competent project manager/leader should be able
to select C as the implementation language on a project by project
basis, but we are too far from this ideal.  C is fine for what it was
intended, but unfortunately C is often selected for wrong reasons.

Alex
73.10KOBAL::GILBERTThu Oct 10 1985 16:1019
Background:

I learned C once, but don't program in C.  I also consider myself a pretty
good assemby-language hacker (high-performance, etc), and used to be impressed
with the code generated by Bliss, but have become less so (mebbe it's me,
but mebbe it's Bliss).  Anyway, ....

Remark:

I compiled a program doing some interesting character manipulation in VAX C
(an equivalent of which I'd also coded in Macro), and was AWED by the code
generated by VAX C.

Conclusion:

Someone else might conclude that VAX C is a good language, but I don't
like C.  The moral is that -

	 It pays to invest in a good re-usable code generator.
73.11TOOLS::STANFri Oct 18 1985 23:564
But for the sake of "ONE COMPANY", etc., we should have one standard
implementation language.  I don't much care which one it is (we will
improve it as necessary), but it's silly for each group in the
company to have its own standard language.
73.12LATOUR::AMARTINMon Oct 21 1985 03:013
". . .  the determined Real Programmer can write FORTRAN programs in any
language" - from Real Programmers Don't Use Pascal.
				/AHM
73.13GRAFIX::STANSBURYMon Oct 21 1985 10:245
It doesn't appear as though Bill Keating's drive to establish a new 
corporate preferred development language is going anywhere (see #54.7).
What happened?

Jack
73.14MMO03::SANDERSMon Oct 21 1985 11:148
Following along with the "ONE COMPANY", why not use "ONE PHILOSOPHY",
i.e. that of VMS and the Common Language Environment.  We keep preaching
the CLE to our customers and telling them to pick the language that's most
suited for their application, even to write different modules of the same
application in the "right" language.  Why can't we do this within the company.

Isn't VMS itself a combination of BLISS, MACRO, a little of FORTRAN, Pascal,
and DCL?
73.15MMO03::SANDERSMon Oct 21 1985 11:225
RE: .13:

Did you possibly mean note number 42.7?  I looked and note number 54 only
has 6 responses.  Thinking that you might have turned the numbers around,
I looked for a note number 45.7, but there is no note number 45.
73.16SPEEDY::GLOSSOPMon Oct 21 1985 23:2210
RE: .14

If you're interested, VMS has substantial quantities of Bliss, Macro, SDL, MDL,
message source, DCL and CLD files.  In addition, there are a few .FDL files.

There are relatively small amounts of C (CRTL), Pascal (EDF, Encrypt, UV1ROM),
FORTRAN (ERF and MSGFIL) and PL/I (CLIUTL, Monitor, PLIRTL and REG.)
There weren't any CMS elements for Ada (yet), Cobol or Basic.

Kent
73.17GRAFIX::STANSBURYWed Oct 23 1985 12:285
RE: .15

Ooops, yes, I meant 42.7. Thanks for pointing that out.

Jack