Newsgroups: comp.lang.python,comp.lang.java,comp.lang.perl.misc,comp.infosystems.www.authoring.cgi,comp.lang.misc,comp.lang.tcl,comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!cnn.Princeton.EDU!gw1.att.com!news.bu.edu!transfer.stratus.com!jjmhome.jjm.com!smds!rh
From: rh@smds.com (Richard Harter)
Subject: Re: RFD: Programming Language Feature Matrix
Message-ID: <1996Jan14.234628.6035@smds.com>
Organization: SMDS Inc.
References: <199601051418.AA21353@gateway.fedex.com> <4cm6lc$eob@csnews.cs.colorado.edu> <4cmat1$nb1@mtinsc01-mgt.ops.worldnet.att.net> <4cnhh6$pi7@csnews.cs.colorado.edu>
Date: Sun, 14 Jan 1996 23:46:28 GMT
Lines: 145
Xref: glinda.oz.cs.cmu.edu comp.lang.python:8020 comp.lang.java:16169 comp.lang.perl.misc:17257 comp.infosystems.www.authoring.cgi:20027 comp.lang.misc:24300 comp.lang.tcl:40994 comp.lang.scheme:14811

[followups have been set to comp.lang.misc; if you wish to add or restore other
groups, please include comp.lang.misc in the newsgroups]

In article <4cnhh6$pi7@csnews.cs.colorado.edu>,
Tom Christiansen  <tchrist@mox.perl.com> wrote:

This is a followup to Tom's original posting.  The original has expired on my
machine; I have a print out but not a file copy.  The general idea is
intriguing and the initial cut is promising.  There are some caveats and
suggestions that I will raise.  As a general complaint the orientation is a
bit command line scripting language specific and even a bit perl-centric.
This is would be alright if the feature list were restricted to comparing
command line scripting languages but Tom was proposing that it be useful for
a generality of languages.  It should be understood that there is much more
that could be said; this posting is just a fragment.  Also Tom should be
commended for a good initial start.

As an organizational issue I suggest that a three level hierarchy be used,
major area, topic within major area, and feature within topic.  An example of
a major area are usability factors, e.g.

	Usability Factors
		Availability
			Unrestricted free source
			Free source with restrictions
			Single vendor
			Multiple vendors
		Fully supported platforms
		Nominally supported platforms
		Documentation
		Stability
		Robustness
		Distribution
		Ease of learning (ramp up)

I would put patterns under text processing.  Also I would use a more specific
title such as string matching expressions.  The present list does not cover
pattern matching ala icon or prolog.  It is a bit misleading to only consider
regular expressions or subsets thereof.  First of all regular expressions are
not the whole of text processing; secondly what one wants is the degree of
coverage of text processing.

In the text processing area one also wants the degree of support for
internationalization and extended character sets.  For some classes of
applications one wants to know the extent of date manipulation and format
conversion.

There is nothing about iterators and generators (unless I missed it).  There
is very little about alternate computing paradigms.  Significant features of
languages like APL, ICON, and Prolog are not represented.

A feature may be present in various ways with differing impact on ease of use.
For example, a feature may be a language intrinsic, a language intrinsic
requiring special syntax, supported by function calls to a standard library,
supported by function calls to an optional library, or supported by an include
file mechanism.  Similarly the level of OS support may vary a great deal.  

There is nothing at all about support for math.  For some application domains
math support is irrelevant; for other it is critical.  Here is a tentative
breakout for math:

Mathematics
	precision
		32 bit binary integers
		32 bit binary floating point
		exponential notation
		fixed point decimals
		big int with special syntax
		intrinsic big int
		big fixed point with special syntax
		intrinsic big fixed point
		big float with special syntax
		intrinsic big float
		double precision
	complex arithmetic
		not supported
		supported by OO classes
		supported by function call
		supported by special syntax
		intrinsic
		math functions overloaded for complex arithmetic
	vector operations
		not supported
		apply/mapcar
		intrinsic vector functions
		operator overloading for vectors
	vector functions
		sum
		product
		min, max
		inner product
		outer product
	matrix functions
		transpose
		inverse
		sum
		product
		eigenvalues/vectors
		operator overloading for matrices
		trace
	higher math functions
		transcendentals (sin,cos,log,...)
			floating point
			double precision
			unlimited precision
		statistics (mean, std dev,...)
			floating point
			double precision
			unlimited precision
		exponentiation
			not part of language
			supported by standard library
			supported by optional library
			integer exponents only
			separate square root
			real exponents with positive base
			complex base and exponents
	number system base conversion
		hex/octal/binary <-> decimal in ints
		hex/octal/binary <-> decimal in floats
		arbitrary base conversion in ints
		arbitrary base conversion in floats
	multi-dimensional arrays
		composition
		slice
		cartesian product
		re-dimensioning
	intrinsic numerical analysis
		integration
		differentiation
		fourier transform
		laplace transform
		roots of equations
	symbolic math
		formal integration
		formal differentiation
		formal algebra
		numerical evaluation of forms
		code generation

-- 
Karma Cola hits the spot!                       | Richard Harter, SMDS Inc.
Eight-fold way, that's a lot.                   | Phone: 508-369-7398
Bodhi Dharma and Sutras too,                    | SMDS Inc. PO Box 555
Karma Cola is the Cola for you.                 | Concord MA 01742
