[30763] in Perl-Users-Digest

home help back first fref pref prev next nref lref last post

Perl-Users Digest, Issue: 2008 Volume: 11

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Wed Nov 26 14:14:31 2008

Date: Wed, 26 Nov 2008 11:14:14 -0800 (PST)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Wed, 26 Nov 2008     Volume: 11 Number: 2008

Today's topics:
    Re: Python surpasses Perl in popularity? <xahlee@gmail.com>
    Re: what's so difficult about namespace? <xahlee@gmail.com>
    Re: what's so difficult about namespace? <nowhere@a.com>
    Re: what's so difficult about namespace? <xahlee@gmail.com>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

----------------------------------------------------------------------

Date: Wed, 26 Nov 2008 08:00:32 -0800 (PST)
From: Xah Lee <xahlee@gmail.com>
Subject: Re: Python surpasses Perl in popularity?
Message-Id: <d36e6717-7e41-4068-bdb0-ba68bf37b473@w39g2000prb.googlegroups.com>

On Nov 25, 2:47 pm, Jorgen Grahn <grahn+n...@snipabacken.se> wrote:
> On Mon, 24 Nov 2008 20:25:51 -0500, david.l...@preisshare.net <david.l...=
@preisshare.net> wrote:
> > QuotingXahLee<xah...@gmail.com>:
>
> >> herald: Python surpasses Perl in popularity!
>
> >> According to
> >> ?TIOBE Programming Community Index for November 2008? at
> >>http://www.tiobe.com/content/paperinfo/tpci/index.html
>
> >> it seems that Python has surpassed Perl in popularity this month!
> > Interesting topic !
>
> Hard to take a popularity index seriously when Logo is at #19 and
> Bourne shell at #32 ... and then they suggest that their readers can
> use it "to make a strategic decision about what programming language
> should be adopted when starting to build a new software system".

your remark is a bit overzealous. After all, we all know that site is
websearh based. Although it not some kinda scientific report, but it
does give some good indication of language popularity, however you
define that.

it is conceivable that logo is somewhat used more than bourne shell.

first of all, Logo is a lisp dialect. (it's one of the rare lisp sans
the parens.) The most famous logo book is the triology titled
something like Computer Science Logo Style, by Brian Harvey, who
teaches at UC Berkeley and now and then still post to
=E2=80=9Ccomp.lang.scheme=E2=80=9D.  (who, like some many veteran Scheme Li=
sp
dignitaries, cries out against the utter fuckup Scheme 6 (aka R6RS))

Bourne Shell, is pretty much replaced by Bash since several years ago.
For example, as far as i know, linuxes today don't have Bourne Shell
anymore. =E2=80=9Csh=E2=80=9D is just a alias to bash with some compatibili=
ty
parameter. That immediately wipe out a huge sector of unixes that
lives on Bourne Shell. This is a good thing. In about 2000 i called
for this. The fucking asshole Sun Microsystems insists on installing
at least 3 versions of shell utilities in several directories... (and
the BSD unixes insist on their inferior stupid versions of shell
tools)

To be sure, Logo is very much a academic lang, mostly for teaching and
for younsters. Much of its code is about drawing graphics. Some other
major use of Logo is in robotics, much associated with the Lego
robotics toys.

While Bourne Shell, as far as i can venture a guess, is still the
primary startup scripts in various unixes.

It is hard to put down exactly which is =E2=80=9Cpopular=E2=80=9D. We have =
to first
define what we mean by popular, of course. Is it number of programers/
users? Popularity in the sense of awareness? Number of software using
them out there? etc.

However, as mentioned before, all things considered, it is conceivable
that Logo is more popular than sh. For one thing, for any use of shell
script other than the machine startup scripts, people don't use bourne
shell anymore. They use bash, maybe tcsh, and probably vast majority
of unix/server shell oriented installation scripts are done in Perl or
python today.

For those interested in languages, see:

=E2=80=A2 Proliferation of Computing Languages
  http://xahlee.org/UnixResource_dir/writ/new_langs.html

It would be fruitful to actually set aside some 3 hours in some
weekend, to read thru these and the Wikipedia articles linked. You'll
get a survey of today's languages, what they are, what they do, their
nature, their field, and where the landscape of languages might be
tomorrow.

plain text version follows.
-------------------------------

 Back to Computing and Its People.
Proliferation of Computing Languages

Xah Lee, 2008-07, 2008-11

There is a proliferation of computer languages today like never
before. In this page, i list some of them.

In the following, i try to list some of the langs that are created
after 2000, or become very active after 2000.

Functional langs:

Erlang=E2=86=97. Functional, concurrent. Mostly used in a telecomunication
industry for corcurrency and continuous up-time features.
Haskell=E2=86=97 Oldish, classic functional lang.
Mercury=E2=86=97. Logic, functional.
Q=E2=86=97. Functional lang, based on term rewriting. To be replaced by Pur=
e=E2=86=97.
Oz=E2=86=97. Concurrent. Multiparadigm.
ML Family:

OCaml=E2=86=97
Alice=E2=86=97. Concurrent, ML derivative. Saarland University, Germany.
F#=E2=86=97. Microsoft's functional lang.
Lisp family or similar:

Mathematica=E2=86=97. Computer algebra system background. Used mostly for m=
ath
and research.
NewLisp=E2=86=97. Lisp scripting style.
Arc=E2=86=97. Paul Graham squeezing juice out of his celebrity status.
Qi=E2=86=97. Common Lisp added with modern functional lang features.
Clojure=E2=86=97. A new lisp dialect on Java platform.
Scheme=E2=86=97, notably PLT Scheme=E2=86=97. Used mostly for teaching.
(Dead. Dylan=E2=86=97. Apple's re-invention of lisp for industrial programe=
rs,
active in the 1990s.)
Computer Algebra and Proof systems:

Coq=E2=86=97. For formal proofs.
For much more, see Category:Computer algebra systems=E2=86=97 and Automated
theorem proving=E2=86=97.
Perl Family or derivative:

PHP=E2=86=97. Perl derivative for server side web apps. One of the top 10 u=
sed
langs post 2000.
Ruby=E2=86=97. Perl with rectified syntax and semantics.
Perl6=E2=86=97. Next gen of perl.
Sleep=E2=86=97. A scripting lang, perl syntax. On Java platform.
On Java Virtual Machine:

Scala=E2=86=97. A FP+OOP lang on Java platform as a Java alternative.
Groovy=E2=86=97. Scritping lang on Java platform.
C derivatives:

ObjectiveC=E2=86=97. Strict superset of C. Used as the primary language by
Apple for Mac OS X.
C#=E2=86=97. Microsoft's answer to Java. Quickly becoming top 10 lang with
Microsoft's =E2=80=9C.NET=E2=80=9D architecture.
D=E2=86=97. Clean up of C++.
2D graphics related.

Scratch=E2=86=97. Derived from SmallTalk + Logo.
Adobe Flash=E2=86=97's ActionScript=E2=86=97. 2D graphics. Quickly becomes =
top 10 lang
post 2000 due to popularity of Flash.
Processing=E2=86=97. 2D graphics on Java platform. Primarily used for art a=
nd
teaching.
Misc:

Linden_Scripting_Language=E2=86=97. Used in virtual world Second Life.
Lua=E2=86=97. Scripting.
Tcl=E2=86=97. Scripting, esp GUI.
JavaScript=E2=86=97. Web browser scripting.
Some Random Thoughts

Following are some random comments on comp langs.

Listing Criterion and Popularity

In the above, i tried to not list implementations. (e.g. huge number
of Scheme implemented in JVM with fluffs here and there; also e.g.
JPython, JRuby, and quite a lot more.) Also, i tried to avoid minor
derivatives or variations. Also, i tried to avoid langs that's one-
man's fancy with little followings.

In the above, i tried to list only =E2=80=9Cnew=E2=80=9D langs that are bor=
n or seen
with high activity or awareness after 2000. But without this
criterion, there are quite a few staples that still have some user
base. e.g. APL=E2=86=97, Fortran=E2=86=97, Cobol=E2=86=97, Forth=E2=86=97, =
Logo=E2=86=97 (many variants),
Pascal=E2=86=97 (Ada, Modula, Delphi). And others that are today top 10 mos=
t
popular langs: C++, ObjectiveC, Visual Basic.

The user base of the langs differ by some magnitude. Some, such as for
example PHP, C#, are within the top 10 most popular lang with active
users (which is perhaps in order of hundreds of millions). Some
others, are niche but still with huge users (order of tens or hundreds
of thousands), such as LSL, Erlang, Mathematica. Others are niche but
robust and industrial (counting academic use), such as Coq (a proof
system), Processing, PLT Scheme, AutoLisp=E2=86=97. Few are mostly academic
followed with handful of experimenters, Qi, Arc, Mercury, Q,
Concurrent Clean are probably examples.

For those of you developers of Java, Perl, Python for example, it
would be fruitful to spend a hour or 2 to look at the Wikipedia
articles about these, or their home pages. Wikipedia has several pages
that is a listing of comp langs, of which you can read about perhaps
over 2 hundreds of langs.

Why The List

I was prompted to have a scan at these new lang because recently i
wrote a article titled Fundamental Problems of Lisp, which mentioned
my impression of a proliferation of languages (and all sorts of
computing tools and applications). Quote:

10 years ago, in the dot com days (~1998), where Java, Javascript,
Perl are screaming the rounds. It was my opinion, that lisp will
inevitably become popular in the future, simply due to its inherent
superior design, simplicity, flexibility, power, whatever its existing
problems may be. Now i don't think that'll ever happen as is. Because,
due to the tremendous technological advances, in particular in
communication (i.e. the internet and its consequences, e.g. Wikipedia,
youtube, youporn, social networks sites, blogs, Instant chat, etc)
computer languages are proliferating like never before. (e.g. erlang,
OCaml, Haskell, PHP, Ruby, c#, f#, perl6, arc, NewLisp, Scala, Groovy,
Goo, Nice, E, Q, Qz, Mercury, Scratch, Flash, Processing, ..., helped
by the abundance of tools, libraries, parsers, existence of
infrastructures) New langs, basically will have all the advantages of
lisps or lisp's fundamental concepts or principles. I see that,
perhaps in the next decade, as communication technologies further hurl
us forward, the proliferation of langs will reduce to a trend of
consolidation (e.g. fueled by virtual machines such as
Microsoft's .NET.).

Creating A Lang Is Easy

In general, creating a lang is relatively easy to do in comparison to
equivalent-sized programing tasks in the industry (such as, for
example, writing robust signal processing lib, a web server (e.g.
video web server), a web app framework, a game engine ...etc.).
Computing tasks typically have a goal, where all sorts of complexities
and nit-gritty detail arise in the solving process. Creating a lang
often is simply based on a individual's creativity that doesn't have
much fixed constraints, much as in painting or sculpting. Many langs
that have become popular, in fact arose this way. Popularly known
examples includes Perl, Python Ruby, Perl6, Arc. Creating a lang
requires the skill of writing a compiler though, which isn't trivial,
but today with mega proliferation of tools, even the need for compiler
writing skill is reduced. (e.g. Arc, various langs on JVM. (10 years
ago, writing a parser is mostly not required due to existing tools
such as lex/yacc))

Some lang are created to solve a immediate problem or need.
Mathematica, Adobe Flash's ActionScript, Emacs Lisp, LSL would be good
examples. Some are created as computer science research byproducts,
usually using or resulting a new computing model. Lisp, Prolog,
SmallTalk, Haskell, Qi, Concurrent Clean, are of this type.

Some are created by corporations from scratch for one reasons or
another. e.g. Java, Javascript, AppleScript, Dylan, C#. The reason is
mostly to make money by creating a lang that solves perceived problems
or need, as innovation. The problem may or may not actually exist. (C#
is a lang created primarily to overrun Java. Java was created first as
a lang for embedded devices, then Sun Microsystems pushed it to ride
the internet wave to envision =E2=80=9Cwrite once run everywhere=E2=80=9D a=
nd
interactivity in web browser. In hindsight, Java's contribution to the
science of computer languages is probably just a social one, mainly in
popularizing the concept of a virtual machine.)

Infinite Number Of Syntaxes And Semantics

Looking at some tens of langs, one might think that there might be
some unifying factor, some unifying theory or model, that limits the
potential creation to a small set of types, classes, models. With
influence from Stephen Wolfram book =E2=80=9CA New Kind of Science=E2=80=9D=
 (see:
Notes on A New Kind of Science) , i'd think this is not so. That is to
say, different languages are potentially endless, and each can become
quite useful or important or with sizable user base. In other words, i
think there's no theoretical basis that would govern what languages
will be popular due to its technical/mathematical properties. Perhaps
another way to phrase this imprecise thought is that, languages will
keep proliferating, and even if we don't count langs that created by
one-man's fancy, there will still probably be forever birth of
languages, and they will all be useful or solve some niche problem,
because there is no theoretical or technical reason that sometimes in
the future there would be one lang that can be fittingly used to solve
all computing problems.

Also, the possibilities of lang's syntax are basically unlimited, even
considering that they be practical and human readable. So, any joe,
can potentially create a new syntax. The syntaxes of existing langs,
when compared to the number of all potentially possible (human
readable) syntaxes, are probably a very small fraction. That is to
say, even with so many existing langs today with their wildly
differing syntax, we probably are just seeing a few pixels in a
computer screen.

Also note here all langs mentioned here are all plain-text linear
ones. Spread sheet and visual programing langs=E2=86=97 would be example of=
 2D
syntax... but i haven't thought about how they can be classified as
syntax. (nor do i fully understand the ontology of syntax=E2=86=97 )

----------------------------
This post is posted to:
comp.lang.python,comp.lang.perl.misc,comp.lang.lisp,comp.lang.functional

  Xah
=E2=88=91 http://xahlee.org/

=E2=98=84


------------------------------

Date: Wed, 26 Nov 2008 06:15:58 -0800 (PST)
From: Xah Lee <xahlee@gmail.com>
Subject: Re: what's so difficult about namespace?
Message-Id: <4491627a-eb71-4c2e-81cd-2b9a9bdbcdb6@r15g2000prd.googlegroups.com>

On Nov 26, 5:45 am, Joshua Cranmer <Pidgeo...@verizon.invalid> wrote:
> > i cannot fathom what could possibly be difficult of
> > introducing or implementing a namespace mechanism into a language.
>
> Namespaces go to the very core of a language, name resolution.
> Retroactively adding such a feature is extremely difficult because there
> is a strong chance of accidentally breaking existing code.

could you give some technical detail on this?

i don't know compiler so am probably being foolish here... but i
suppose ultimately name resolution and storage at heart is something
like a hashtable...  namely,

put =E2=80=B9identifier 1=E2=80=BA table
put =E2=80=B9identifier 2=E2=80=BA table

and lookup is just

retrieve =E2=80=B9identifier=E2=80=BA table

and now suppose we introduced namespace, so i imagine the compiler
simply just concat namespace component befor put, and split before
retrieve?

  Xah
=E2=88=91 http://xahlee.org/

=E2=98=84


------------------------------

Date: Wed, 26 Nov 2008 16:06:57 GMT
From: Wojtek <nowhere@a.com>
Subject: Re: what's so difficult about namespace?
Message-Id: <mn.d1e67d8b03a7de56.70216@a.com>

Xah Lee wrote :
> i cannot fathom what could possibly be difficult of
> introducing or implementing a namespace mechanism into a language. I
> do not understand, why so many languages that lacks so much needed
> namespace for so long? If it is a social problem, i don't imagine they
> would last so long. It must be some technical issue?

Simply put:
- it was not in the original language specification
- some hundreds of millions of distributed browsers interpret 
Javascript without namespaces
- to introduce namespaces into the language would require every browser 
to be replaced (at least if the user comes across a site which uses it)

The IT community has enough trouble getting a few ISPs to upgrade their 
DNS software. How are you going to get millions of general users to 
upgrade?

Web stats show that people are still using IE 5...

-- 
Wojtek :-)




------------------------------

Date: Wed, 26 Nov 2008 08:33:12 -0800 (PST)
From: Xah Lee <xahlee@gmail.com>
Subject: Re: what's so difficult about namespace?
Message-Id: <d1ba7d9b-bd91-4d31-84e6-20a8d8c85b55@a37g2000pre.googlegroups.com>

Xah Lee wrote:
> > i cannot fathom what could possibly be difficult of
> > introducing or implementing a namespace mechanism into a language. I
> > do not understand, why so many languages that lacks so much needed
> > namespace for so long? If it is a social problem, i don't imagine they
> > would last so long. It must be some technical issue?

On Nov 26, 8:06 am, Wojtek <nowh...@a.com> wrote:
> Simply put:
> - it was not in the original language specification
> - some hundreds of millions of distributed browsers interpret
> Javascript without namespaces
> - to introduce namespaces into the language would require every browser
> to be replaced (at least if the user comes across a site which uses it)
>
> The IT community has enough trouble getting a few ISPs to upgrade their
> DNS software. How are you going to get millions of general users to
> upgrade?
>
> Web stats show that people are still using IE 5...

alright, that's speaks for Javascript.

But how's that apply to, say, Scheme lisp, Emacs lisp, PHP?

In the case of Scheme, i can see that the problem of delay in
introducing namespace is due to the nature of community wanting some
consensus on the most elegant approach.

For emacs lisp, is it prolonged lack of namespace due to lack of
developer resource?

in anycase, the reasons above are social ones. Namely, issues like
backward compatibility, agreement on design, lack of developers. I'd
be very interested if any compiler writer can give technical
perspective on whether introducing namespace to a existing lang is a
problem.

  Xah
=E2=88=91 http://xahlee.org/

=E2=98=84




------------------------------

Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>


Administrivia:

#The Perl-Users Digest is a retransmission of the USENET newsgroup
#comp.lang.perl.misc.  For subscription or unsubscription requests, send
#the single line:
#
#	subscribe perl-users
#or:
#	unsubscribe perl-users
#
#to almanac@ruby.oce.orst.edu.  

NOTE: due to the current flood of worm email banging on ruby, the smtp
server on ruby has been shut off until further notice. 

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

#To request back copies (available for a week or so), send your request
#to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
#where x is the volume number and y is the issue number.

#For other requests pertaining to the digest, send mail to
#perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
#sending perl questions to the -request address, I don't have time to
#answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V11 Issue 2008
***************************************


home help back first fref pref prev next nref lref last post