From: Rico Secada
Subject: Choosing a new language
Date: 
Message-ID: <20071228162351.f29a3ce4.coolzone@it.dk>
Hi. 

First let me start by saying, please don't let this become a
flame-thing.

Second, I need some advice.

I am a 35 year old programmer, who program in C/C++, PHP and Bourne
Shell almost daily.

I am currently going to start focusing on becoming more skilled at a
few key languages, rather than knowing many (which I do on a more
superficial level). 

My key languages are C, PHP and SH (Bourne Shell), and I have stopped
using C++ because I find that its a C-hack rather than a good design
choice. 

I have made the following decision:

To study Ada and use it instead of C++. I come from a Pascal background
and I love the Ada syntax and wide area of usage. I am also attracted
to Ada because of its usage in the industry.

Now I have three more languages that I am very attracted to, but I
prefer to focus on just one of them:

Python, Haskell and Lisp.

I have been doing some reading and some coding, and I am mainly
attracted towards Lisp because of its ability to "fix a
running program".

But I find that Haskell is a more powerful language. Yet again Python
has a huge user base and many libraries, and it is implemented
everywhere, where Haskell and Lisp on the other hand hasn't. 

I like the syntax of all three, and I have gotten beyond the
"confusion" stage of Lisp parentheses, so they don't bother me at all.

I need advice from people who have been coding in all three, and who
can share some views and experiences.

Please, if you don't know ALL three by deep experience, don't respond to
this thread!

Thanks and best regards!

Rico.

From: Ken Tilton
Subject: Re: Choosing a new language
Date: 
Message-ID: <47751968$0$13835$607ed4bc@cv.net>
Rico Secada wrote:
> Hi. 
> 
> First let me start by saying, please don't let this become a
> flame-thing.

Nice try! Oh, wait, you posted to all the NGs at once... bad try!

> 
> Second, I need some advice.
> 
> I am a 35 year old programmer, who program in C/C++, PHP and Bourne
> Shell almost daily.
> 
> I am currently going to start focusing on becoming more skilled at a
> few key languages, rather than knowing many (which I do on a more
> superficial level). 
> 
> My key languages are C, PHP and SH (Bourne Shell), and I have stopped
> using C++ because I find that its a C-hack rather than a good design
> choice. 
> 
> I have made the following decision:
> 
> To study Ada and use it instead of C++. I come from a Pascal background
> and I love the Ada syntax and wide area of usage. I am also attracted
> to Ada because of its usage in the industry.
> 
> Now I have three more languages that I am very attracted to, but I
> prefer to focus on just one of them:
> 
> Python, Haskell and Lisp.

Python has the users and libs, but those things follow the langue du 
jour and Ruby has already eaten that lunch and Lisp is next, meanwhile 
Python is rather lame when it gets to metaprogramming and other powerful 
deals. Throw in the performance hit and it looks like a total loser. I 
would swap in Ruby for Python and restart the analysis.

> 
> I have been doing some reading and some coding, and I am mainly
> attracted towards Lisp because of its ability to "fix a
> running program".
> 
> But I find that Haskell is a more powerful language.

Really? More powerful than Lisp? You might recheck your istruments. If 
you still think it is more powerful, well, I think one of your languages 
should be the one you consider most powerful. Bit of a no-brainer, that.

> Yet again Python
> has a huge user base and many libraries, and it is implemented
> everywhere, where Haskell and Lisp on the other hand hasn't. 

Where can you not do Lisp?

> 
> I like the syntax of all three, and I have gotten beyond the
> "confusion" stage of Lisp parentheses, so they don't bother me at all.
> 
> I need advice from people who have been coding in all three, and who
> can share some views and experiences.
> 
> Please, if you don't know ALL three by deep experience, don't respond to
> this thread!

Ignored.

kt

-- 
http://www.theoryyalgebra.com/

"In the morning, hear the Way;
  in the evening, die content!"
                     -- Confucius
From: Vityok
Subject: Re: Choosing a new language
Date: 
Message-ID: <7e5d8b97-25dc-4119-80a8-068da738d4ac@s27g2000hsb.googlegroups.com>
On 28 çÒÄ, 17:42, Ken Tilton <···········@optonline.net> wrote:

> Python has the users and libs, but those things follow the langue du
> jour ...

Once upon a time I've coded in Perl, and if you take a look at CPAN,
it has almost everything, but nowdays Python and Ruby are in, and Perl
is not so popular as it was...

I've started to learn Common Lisp because it seems to be the Language
all other dynamic languages tend to become, but due to some obstacles
will
never be.

With best regards,
Victor
From: Ken Tilton
Subject: Re: Choosing a new language
Date: 
Message-ID: <4774f04a$0$9079$607ed4bc@cv.net>
Vityok wrote:
> On 28 ���, 17:42, Ken Tilton <···········@optonline.net> wrote:
> 
> 
>>Python has the users and libs, but those things follow the langue du
>>jour ...
> 
> 
> Once upon a time I've coded in Perl, and if you take a look at CPAN,
> it has almost everything, but nowdays Python and Ruby are in, and Perl
> is not so popular as it was...
> 
> I've started to learn Common Lisp because it seems to be the Language
> all other dynamic languages tend to become, but due to some obstacles
> will
> never be.

I did not realize you had noticed that, nor would I try to persuade you 
of it. Given that you have that insight under your belt, you perhaps 
will conclude with me that it is just a matter of time before more and 
more Seekers of The Way such as yourself (a) also realize Lisp is the 
Rome of languages and then (b) notice that CL is compiled and mature and 
even has a standard and can use any C library and then (c) realize there 
is not even a decision to be made because a decision requires more than 
one path and CL is simply the only way to go. We just have to resolve 
that "Haskell is the most powerful" thing, you have to do Haskell if 
that is true for you.

kt

-- 
http://www.theoryyalgebra.com/

"In the morning, hear the Way;
  in the evening, die content!"
                     -- Confucius
From: Robert Uhl
Subject: Re: Choosing a new language
Date: 
Message-ID: <m3odcajsv4.fsf@latakia.dyndns.org>
Ken Tilton <···········@optonline.net> writes:
>
>> Python, Haskell and Lisp.
>
> Python has the users and libs, but those things follow the langue du
> jour and Ruby has already eaten that lunch and Lisp is next, meanwhile
> Python is rather lame when it gets to metaprogramming and other powerful
> deals. Throw in the performance hit and it looks like a total loser. I
> would swap in Ruby for Python and restart the analysis.

Ruby makes Python look like C performance-wise, while retaining the
readability of Perl.  Not perhaps my choice for a language.

I use Python at work and hack at home in Common Lisp; I'm hoping some
time next year to start doing some Lisp work at the office--we'll see
how that works out.

-- 
Robert Uhl <http://public.xdi.org/=ruhl>
Ash nazg durbatulûk, ash nazg gimbatul,
Ash nazg thrakatulûk agh burzum-ishi krimpatul. 
From: tim Josling
Subject: Re: Choosing a new language
Date: 
Message-ID: <13nbg14bib0kcb5@corp.supernews.com>
On Fri, 28 Dec 2007 16:34:55 -0700, Robert Uhl wrote:

> Ken Tilton <···········@optonline.net> writes:
>>
>>> Python, Haskell and Lisp.

> Ruby makes Python look like C performance-wise, while retaining the
> readability of Perl.  Not perhaps my choice for a language.

With Ruby 1.9 just released the performance gap is history (sometimes Ruby
is faster sometimes slower but it is not a decisive consideration).

My experience, admittedly that's only a sample of 1, with Ruby is that it
is easier to learn and easier to read than Python, because it is a lot
more consistent.

Tim Josling
From: Larry Elmore
Subject: Re: Choosing a new language
Date: 
Message-ID: <q5kdj.346$jX4.291@trnddc07>
tim Josling wrote:
> On Fri, 28 Dec 2007 16:34:55 -0700, Robert Uhl wrote:
> 
>> Ken Tilton <···········@optonline.net> writes:
>>>> Python, Haskell and Lisp.
> 
>> Ruby makes Python look like C performance-wise, while retaining the
>> readability of Perl.  Not perhaps my choice for a language.
> 
> With Ruby 1.9 just released the performance gap is history (sometimes Ruby
> is faster sometimes slower but it is not a decisive consideration).
> 
> My experience, admittedly that's only a sample of 1, with Ruby is that it
> is easier to learn and easier to read than Python, because it is a lot
> more consistent.

That's been my experience, as well.
From: Ken Tilton
Subject: Re: Choosing a new language
Date: 
Message-ID: <47765321$0$13894$607ed4bc@cv.net>
Larry Elmore wrote:
> tim Josling wrote:
> 
>> On Fri, 28 Dec 2007 16:34:55 -0700, Robert Uhl wrote:
>>
>>> Ken Tilton <···········@optonline.net> writes:
>>>
>>>>> Python, Haskell and Lisp.
>>
>>
>>> Ruby makes Python look like C performance-wise, while retaining the
>>> readability of Perl.  Not perhaps my choice for a language.
>>
>>
>> With Ruby 1.9 just released the performance gap is history (sometimes 
>> Ruby
>> is faster sometimes slower but it is not a decisive consideration).
>>
>> My experience, admittedly that's only a sample of 1, with Ruby is that it
>> is easier to learn and easier to read than Python, because it is a lot
>> more consistent.
> 
> 
> That's been my experience, as well.

And Ruby now beats Python by 25% on googlefight. That ain't just Rails, 
that has to be Rails first, then, wow, anonymous functions are frickin 
cool, meanwhile GvR almost removed from Python the lame ones he did support.

Game over.

kt

-- 
http://www.theoryyalgebra.com/

"In the morning, hear the Way;
  in the evening, die content!"
                     -- Confucius
From: Daniel Gee
Subject: Re: Choosing a new language
Date: 
Message-ID: <81f271d3-f85b-4fb7-9002-45be5ec82c06@e25g2000prg.googlegroups.com>
> And Ruby now beats Python by 25% on googlefight. That ain't just Rails,
> that has to be Rails first, then, wow, anonymous functions are frickin
> cool, meanwhile GvR almost removed from Python the lame ones he did support.

Why do you really need anonymous functions in python when you can
already declare functions inside of other functions?

Py3k also has the nonlocal keyword.
From: Pascal Costanza
Subject: Re: Choosing a new language
Date: 
Message-ID: <5tpgn5F1d6r7eU1@mid.individual.net>
Daniel Gee wrote:
>> And Ruby now beats Python by 25% on googlefight. That ain't just Rails,
>> that has to be Rails first, then, wow, anonymous functions are frickin
>> cool, meanwhile GvR almost removed from Python the lame ones he did support.
> 
> Why do you really need anonymous functions in python when you can
> already declare functions inside of other functions?

...because without anonymous functions, you're forced to come up with a 
name even if there is no good name for what you want to express.

No language feature is 'necessary'. It's all about convenience.


Pascal

-- 
My website: http://p-cos.net
Common Lisp Document Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/
From: John Nagle
Subject: Re: Choosing a new language
Date: 
Message-ID: <477561af$0$36390$742ec2ed@news.sonic.net>
Rico Secada wrote:
> Hi. 
> 
> First let me start by saying, please don't let this become a
> flame-thing.
> 
> Second, I need some advice.
> 
> I am a 35 year old programmer, who program in C/C++, PHP and Bourne
> Shell almost daily.
> 
> I am currently going to start focusing on becoming more skilled at a
> few key languages, rather than knowing many (which I do on a more
> superficial level). 
> 
> My key languages are C, PHP and SH (Bourne Shell), and I have stopped
> using C++ because I find that its a C-hack rather than a good design
> choice. 
> 
> I have made the following decision:
> 
> To study Ada and use it instead of C++. I come from a Pascal background
> and I love the Ada syntax and wide area of usage. I am also attracted
> to Ada because of its usage in the industry.
> 
> Now I have three more languages that I am very attracted to, but I
> prefer to focus on just one of them:
> 
> Python, Haskell and Lisp.

    I've used every language mentioned except Haskell.

    I'm somewhat fed up with C++ myself.  I've used it for years; I've
written large systems in it, and I have to face that it has a fundamental
problem.  C++ is the only major language with hiding but without memory safety.
C has neither hiding or safety; Java and Ada have both hiding and safety.
No language since C++ repeats that mistake.

    Ada has its advantages, but outside the DoD world, it's more or less
dead.  If you have a security clearance and are interested in real
time avionics programming, maybe.

    LISP has a cult problem.  It's not used much any more, even in the
AI community.  LISP users tend to be too wierd.  The language itself
is OK, but few commercial applications use it.  Viamall, which became
Yahoo Store, is one of the very few major commercial LISP apps.
I've written about 20,000 lines of LISP, but I'll never use it again.

    Actually, the ability to "fix a running program" isn't that useful
in real life.  It's more cool than useful.  Editing a program from
a break was more important back when computers were slower and just
rerunning from the beginning was expensive.

    Python suffers from a slow implementation. Numbers vary, but
10x to 60x slower than C is typical.  The language is quite
powerful, but is held back by the CPython implementation, the
lack of a language standard independent of any implementation,
and a clunky mechanism for linking to external non-Python libraries.
There's no fundamental reason that Python couldn't be made to run at least
as fast as Java, but with the language spec tied to CPython, the
other implementations are always playing catch-up and run far behind the
CPython implementation.

     As languages, C# and Java are reasonably good.  They tend to come
with too much excess baggage in the form of frameworks, run-time systems,
and packagers, but as languages they're fast, safe, and expressive.

     Can't speak for Haskell.

					John Nagle
From: George Neuner
Subject: Re: Choosing a new language
Date: 
Message-ID: <e2san397g3fqop93k7el3doplle6m4r714@4ax.com>
On Fri, 28 Dec 2007 12:54:57 -0800, John Nagle <·····@animats.com>
wrote:

>    Actually, the ability to "fix a running program" [in Lisp] isn't
>that useful in real life.  It's more cool than useful.  Editing a 
>program from a break was more important back when computers were slower
>and just rerunning from the beginning was expensive.

Speak for yourself.

The ability to patch a running program is very useful for certain
types of embedded applications.  Not every program having high
availability requirements can be restarted quickly, or can be
implemented reasonably using multiple servers or processes to allow
rolling restarts.

I worked with real time programs that required external machinery to
operate and several minutes to reinitialize and recover from a cold
restart.  Debugging non-trivial code changes could take hours or days
without the ability to hot patch and continue.  I know not everyone
works in RT, but I can't possibly be alone in developing applications
that are hard to restart effectively.

That all said, online compilation such as in Lisp is only one of
several ways of replacing running code.  Whether it is the best way is
open for debate.

George
--
for email reply remove "/" from address
From: Stephen Leake
Subject: Re: Choosing a new language
Date: 
Message-ID: <uabnt7h48.fsf@stephe-leake.org>
George Neuner <·········@/comcast.net> writes:

> On Fri, 28 Dec 2007 12:54:57 -0800, John Nagle <·····@animats.com>
> wrote:
>
>>    Actually, the ability to "fix a running program" [in Lisp] isn't
>>that useful in real life.  It's more cool than useful.  Editing a 
>>program from a break was more important back when computers were slower
>>and just rerunning from the beginning was expensive.
>
> Speak for yourself.
>
> The ability to patch a running program is very useful for certain
> types of embedded applications.  Not every program having high
> availability requirements can be restarted quickly, or can be
> implemented reasonably using multiple servers or processes to allow
> rolling restarts.

And in applications like IDEs, dynamically loaded functions are very
important. Improving Emacs is vastly easier because Emacs Lisp is
interpreted. You can make a small change to a function and quickly
determine its effect. That's one reason (among many others :) I have
not switched to GPS (which is written in Ada).

-- 
-- Stephe
From: Joachim Durchholz
Subject: Re: Choosing a new language
Date: 
Message-ID: <fl5418$cvp$2@online.de>
George Neuner schrieb:
> I know not everyone
> works in RT, but I can't possibly be alone in developing applications
> that are hard to restart effectively.

Indeed. An additional case is interactive applications where setting up 
the situation to be tested requires several time-consuming steps.

Regards,
Jo
From: Paul Rubin
Subject: Re: Choosing a new language
Date: 
Message-ID: <7x4pe1on7y.fsf@ruckus.brouhaha.com>
Joachim Durchholz <··@durchholz.org> writes:
> Indeed. An additional case is interactive applications where setting
> up the situation to be tested requires several time-consuming steps.

At least for web development, there are a lot of automated tools that
mimic user input, just for this purpose.
From: Joachim Durchholz
Subject: Re: Choosing a new language
Date: 
Message-ID: <fl62qq$ke2$1@online.de>
Paul Rubin schrieb:
> Joachim Durchholz <··@durchholz.org> writes:
>> Indeed. An additional case is interactive applications where setting
>> up the situation to be tested requires several time-consuming steps.
> 
> At least for web development, there are a lot of automated tools that
> mimic user input, just for this purpose.

Yes, but it still takes time to run to the point you want.
Plus you'd need to integrate such a tool with the debugger.
Plus you'd need to record the user actions, save them somewhere, and 
recall them.

None of that is rocket science, of course, but I have yet to see such a 
thing. (It would be nice to have it though.)

However, for web applications, I found a far easier variant: I just 
reload the page being debugged. (I have to make sure that the backend is 
in the same state when reloading, but that's usually easy to accomplish.)
So web pages are one area where code modification during debugging is 
less important.

Desktop programs with a large internal state are an entirely different 
kettle of fish, of course.

Regards,
Jo
From: John Thingstad
Subject: Re: Choosing a new language
Date: 
Message-ID: <op.t33zyzdzut4oq5@pandora.alfanett.no>
P� Sat, 29 Dec 2007 19:16:09 +0100, skrev Joachim Durchholz  
<··@durchholz.org>:


> However, for web applications, I found a far easier variant: I just  
> reload the page being debugged. (I have to make sure that the backend is  
> in the same state when reloading, but that's usually easy to accomplish.)
> So web pages are one area where code modification during debugging is  
> less important.
>

Haveyou looked at selenium?

I quote:

Selenium is a test tool for web applications. Selenium tests run directly  
in a browser, just as real users do. And they run in Internet Explorer,  
Mozilla and Firefox on Windows, Linux, and Macintosh. No other test tool  
covers such a wide array of platforms.
Browser compatibility testing. Test your application to see if it works  
correctly on different browsers and operating systems. The same script can  
run on any Selenium platform.
System functional testing. Create regression tests to verify application  
functionality and user acceptance.

There is also a Lisp interface cl-selesium though I can't find the code on  
the net now.

--------------
John Thingstad
From: Joachim Durchholz
Subject: Re: Choosing a new language
Date: 
Message-ID: <fl802v$l8d$1@online.de>
John Thingstad schrieb:
> Skrev Joachim Durchholz <··@durchholz.org>:
> 
>> However, for web applications, I found a far easier variant: I just 
>> reload the page being debugged. (I have to make sure that the backend 
>> is in the same state when reloading, but that's usually easy to 
>> accomplish.)
>> So web pages are one area where code modification during debugging is 
>> less important.
> 
> Haveyou looked at selenium?

Yes. I couldn't get it to work.
I think it's more regression testing than debugging though. If that's 
correct, it's less pertinent to this subthread (which is already well 
off-topic already).

Regards,
Jo
From: Daniel Weinreb
Subject: Re: Choosing a new language
Date: 
Message-ID: <BAqdj.2011$cq5.97@trndny06>
"The purpose of a programming language is to let software developers
express their intentions as simply and directly as possible."

To Mr. Secada, who started this thread: you really have to say more
about what it is you're trying to accomplish.  For example, if
you want to learn radically new ideas, Haskell makes a lot of sense,
just because it's so different.  If you want to write web sites,
it's not clear that Ada provides modern and powerful tools
for that, and you might want to look into Ruby on Rails.  It
depends a great deal on your ultimate purpose.  (Joachim
Durchholz's post already said this very well.)  Please let
us know, and we can provide much more useful help.

If you work for an employer, or if you join an existing open
source project, you may have very little ability
to influence what language you write in!  Only if
you're writing for yourself or starting a new company
or project do you usually get to make that choice.

In fact, that's so important that I might as well just stop
right there.  But I can't help myself... :)

If you're willing to expand the range of languages you
might want to learn, Ruby is getting quite popular. And
you could do worse than to check out the new language Scala.
If you want to see my own quick reations, see:
http://dlweinreb.wordpress.com/2007/12/25/the-scala-programming-language-my-first-impressions/

As for Common Lisp (henceforth "Lisp"):

You mention that Lisp "isn't implemented everywhere".  Well,
maybe not everywhere, but quite a lot of places.  See my
paper at http://common-lisp.net/~dlw/LispSurvey.html.  If
you want to run on a Cray-1 you are out of luck, but for
Unix, Linux, MacOS, and Windows you have many options.
There are also many links in the paper to arguments
about the virtues of Lisp, which you ought to take a look
at.  (And I recently wrote an essay about what people
generally complain about re Common Lisp, to be fair.  See:
http://dlweinreb.wordpress.com/2007/12/25/complaints-im-seeing-about-common-lisp/

And now, in response to Mr. Nagle:

John Nagle wrote:

> 
>    LISP has a cult problem.  It's not used much any more, even in the
> AI community.  LISP users tend to be too wierd.  The language itself
> is OK, but few commercial applications use it.  Viamall, which became
> Yahoo Store, is one of the very few major commercial LISP apps.

Sorry, but that is not true.  There are a lot more important apps
written in Lisp.  You can find pointers in my paper (above).  See
especially my own employer, www.itasoftware.com.

My point is not that Lisp is hugely popular. My point is that
it has been used in enough applications that it is well-established
that it can be used for real applications.

(Haskell, on the other hand, has not been used for many serious
commercial apps to the best of my knowledge, but people have
shown that you can actually do some real things with it.
The one that I think is cutest is the implementation of
the new Perl 6 language, of which the one in Haskell 98 was
the first and perhaps still the only!)

As for Lisp users being "weird", come now, you can do better than
ad hominem attacks.

> I've written about 20,000 lines of LISP, but I'll never use it again.
> 
>    Actually, the ability to "fix a running program" isn't that useful
> in real life.  It's more cool than useful.  Editing a program from
> a break was more important back when computers were slower and just
> rerunning from the beginning was expensive.

Even if you don't edit from breaks, the fact that you can abort
out of an error, make a small edit, incrementally recompile into
the Lisp environment, and retry your program is incredibly useful.
A fast debugging loop is so important, and harder to obtain when
you are working with serious, large software.  The app I work on
is many hundreds of thousands of lines of code, and I would not
want to have to rebuild it (even recompiling one file and then
loading all the files) every time I made a small change.  I
would like Java far more if I had an implementation that could
do this; I've seen such, but they haven't taken hold for some
reason.  (In fact, I think Sabre-C could do this!  Long ago.)

And Durchholz is very right when he says: "An additional case is
interactive applications where setting up the situation to be tested
requires several time-consuming steps."  Absolutely!


> 
>    Python suffers from a slow implementation. Numbers vary, but
> 10x to 60x slower than C is typical.  The language is quite
> powerful, but is held back by the CPython implementation, the
> lack of a language standard independent of any implementation,
> and a clunky mechanism for linking to external non-Python libraries.
> There's no fundamental reason that Python couldn't be made to run at least
> as fast as Java, but with the language spec tied to CPython, the
> other implementations are always playing catch-up and run far behind the
> CPython implementation.

As much as I am a born-and-bred Lisp guy, there's quite a lot
good to say about Python.

I think 60x C is an exaggeration. It depends on what you're doing.
But what's really important is where you're spending your time
and whether the CPU speed of the language is actually the limiting
factor.  It isn't as important in an I/O bound program, for example.
Or it might spend its time waiting for a user or in network latency.

We use Python for many components of our system that are absolutely
performance-critical and it turns out to be plenty fast enough.
(Common Lisp is used for the most complex component, but not
most of the others.)

Another strategy is to use Jython, and find the (usually very few)
crucial methods and rewrite them in straight Java.

Meanwhile, coding in a language that makes programming easier
often lets you come up with better algorithms or techniques
than you'd end up producing in a clunky language like C,
which can result in immensely improved performance.

And if each run of your program is three seconds faster
but it takes you three months longer to develop it, that
may or may not be worth it, depending on your situation.

I have not noticed that the Python hackers have any problem with
the language not being standardized enough.  I have never, ever
seen this as a practical issue.  I have not heard of CPython
and Jython being incompatible (up to version 2.3).

By the way, another advantage of using Jython is that you
end up with .jar files that are quite easy to port, in case
that happens to be an issue.  Plus you get all the Java
libraries, which might matter a lot.  Everything depends on what
you're doing.

Jython is about twice as slow as CPython, or at least that's
what you usually hear.  On the other hand, I bet that if you
run the JRockit implementation of Java (free from BEA), you'd
get more like the same performance as CPython.  Someone ought
to try that.

IronPython is actually twice as fast as CPython, if running
on .NET is appropriate for what you're doing.  This is
measured in the "pystone" benchmark; all of there performance
figures may vary significantly depending on what you're doing.
IronPython and Jython will keep getting faster as the
underlying VM's keep being improved, and IronPython
specifically will get more and more of a boost from
the DLR (Dynamic Language Runtime).  See my OOPSLA report:
http://dlweinreb.wordpress.com/2007/10/28/3/
and recent material from Jim Hugenin of Microsoft.  (Yes,
non-Microsoft CLR implementations seriously exist.)

How hard it is to link to external libraries may or may not
matter to this user.  It's not terribly easy in many languages.
On the other hand, there are often not that many needs for it,
and the ones that are common are often already done for you
(I bet it's easy to find Python modules to link to some
powerful crypto numeric packages, for example; so many people
use Python.)

Python is an exceptionally clean and easy-to-learn language.
The same certainly cannot be said for Ada.  I don't know
Haskell but I'd guess it's small and clean.  Common Lisp
is big and design-by-committee, but if you learn it from
a good textbook ("Practical Common Lisp" is one), this
isn't a big problem.


> 
>     As languages, C# and Java are reasonably good.  They tend to come
> with too much excess baggage in the form of frameworks, run-time systems,
> and packagers, but as languages they're fast, safe, and expressive.

Too much?  Those things are quite useful, when used properly.  Yeah,
they're good languages too, especially if you like lots of
explicit type declarations on variables.

> 
>     Can't speak for Haskell.
> 
>                     John Nagle
From: Tobias C. Rittweiler
Subject: Re: Choosing a new language
Date: 
Message-ID: <874pe2q12n.fsf@freebits.de>
Rico Secada <········@it.dk> writes:

> Now I have three more languages that I am very attracted to, but I
> prefer to focus on just one of them:
>
> Python, Haskell and Lisp.

Haskell is an imperatively functional language; Lisp is a functioning
imperative language.

Learning one is by no means a substitute for learning the other.

Judging from your background, you'll probably fall in love more easily
with Lisp.

  -T.
From: Gary Scott
Subject: Re: Choosing a new language
Date: 
Message-ID: <c4fdj.3196$lo5.2593@newssvr19.news.prodigy.net>
Rico Secada wrote:
> Hi. 
> 
> First let me start by saying, please don't let this become a
> flame-thing.
> 
> Second, I need some advice.
> 
> I am a 35 year old programmer, who program in C/C++, PHP and Bourne
> Shell almost daily.
> 
> I am currently going to start focusing on becoming more skilled at a
> few key languages, rather than knowing many (which I do on a more
> superficial level). 
> 
> My key languages are C, PHP and SH (Bourne Shell), and I have stopped
> using C++ because I find that its a C-hack rather than a good design
> choice. 
> 
> I have made the following decision:
> 
> To study Ada and use it instead of C++. I come from a Pascal background
> and I love the Ada syntax and wide area of usage. I am also attracted
> to Ada because of its usage in the industry.
> 
> Now I have three more languages that I am very attracted to, but I
> prefer to focus on just one of them:
> 
> Python, Haskell and Lisp.
> 
> I have been doing some reading and some coding, and I am mainly
> attracted towards Lisp because of its ability to "fix a
> running program".
> 
> But I find that Haskell is a more powerful language. Yet again Python
> has a huge user base and many libraries, and it is implemented
> everywhere, where Haskell and Lisp on the other hand hasn't. 
> 
> I like the syntax of all three, and I have gotten beyond the
> "confusion" stage of Lisp parentheses, so they don't bother me at all.
> 
> I need advice from people who have been coding in all three, and who
> can share some views and experiences.
> 
> Please, if you don't know ALL three by deep experience, don't respond to
> this thread!
> 
> Thanks and best regards!
> 
> Rico.
And the good old standbys Fortran 95/2003 and REXX.

-- 

Gary Scott
·················@sbcglobal dot net

Fortran Library:  http://www.fortranlib.com

Support the Original G95 Project:  http://www.g95.org
-OR-
Support the GNU GFortran Project:  http://gcc.gnu.org/fortran/index.html

If you want to do the impossible, don't hire an expert because he knows 
it can't be done.

-- Henry Ford
From: Joachim Durchholz
Subject: Re: Choosing a new language
Date: 
Message-ID: <fl3atm$955$1@online.de>
I don't know all three languages, but I know you won't get a useful 
answer unless you say what purpose you want to learn any of these 
languages for. To expand your mental scope? To improve your CV? To use 
as a new workhorse for your daily work? If it's the latter: what kind of 
work do you do?

Regards,
Jo
From: smallpond
Subject: Re: Choosing a new language
Date: 
Message-ID: <583f7b72-7060-4879-b9bf-aa8e6c80c21e@n20g2000hsh.googlegroups.com>
On Dec 28, 12:15 pm, Joachim Durchholz <····@durchholz.org> wrote:
> : what kind of work do you do?
>

Trolling
From: ···········@gmail.com
Subject: Re: Choosing a new language
Date: 
Message-ID: <04d16dba-0c87-42cf-b493-5e78375f7b36@y5g2000hsf.googlegroups.com>
On Dec 28, 10:23 am, Rico Secada <········@it.dk> wrote:
> Hi.
>
> First let me start by saying, please don't let this become a
> flame-thing.
>
> Second, I need some advice.
>
> I am a 35 year old programmer, who program in C/C++, PHP and Bourne
> Shell almost daily.
>
> I am currently going to start focusing on becoming more skilled at a
> few key languages, rather than knowing many (which I do on a more
> superficial level).
>
> My key languages are C, PHP and SH (Bourne Shell), and I have stopped
> using C++ because I find that its a C-hack rather than a good design
> choice.
>
> I have made the following decision:
>
> To study Ada and use it instead of C++. I come from a Pascal background
> and I love the Ada syntax and wide area of usage. I am also attracted
> to Ada because of its usage in the industry.
>
> Now I have three more languages that I am very attracted to, but I
> prefer to focus on just one of them:
>
> Python, Haskell and Lisp.
>
> I have been doing some reading and some coding, and I am mainly
> attracted towards Lisp because of its ability to "fix a
> running program".
>
> But I find that Haskell is a more powerful language. Yet again Python
> has a huge user base and many libraries, and it is implemented
> everywhere, where Haskell and Lisp on the other hand hasn't.
>
> I like the syntax of all three, and I have gotten beyond the
> "confusion" stage of Lisp parentheses, so they don't bother me at all.
>
> I need advice from people who have been coding in all three, and who
> can share some views and experiences.
>
> Please, if you don't know ALL three by deep experience, don't respond to
> this thread!
>
> Thanks and best regards!
>
> Rico.

Can't say much about others but my experience with C, C++ (20 years),
C# and Ada so far:

C is too primitive, too much labor. I use C only on embedded platforms
with limited availability of other languages.
C++ for the years of use I have identified the following trouble
spots:
  - Templates not always instantiate the way you think they should
  - Lack of typing restrictions: typedef is a bad joke
  - #define/ #ifdef should not be part of any high level language
  - no support for concurrency even simple threads

C#/Java are pretty good except for reliance on garbage collection.
Try the application that goes through 10Mb per second data crunch and
witness the hick ups.

Ada: in my first project.  To summarize experience so far
  - More complex takes longer to learn
  - Takes some paradigm shift from pointers, callbacks to tasks/
message/rendezvous mentality
  - Some keywords seem to be redundant
  - Takes more time to think through data structures, interfaces and
tasks
  - That can in turn result in better code
  - Anything having to do with life safety better be coded in Ada

George
From: ·········@gmail.com
Subject: Re: Choosing a new language
Date: 
Message-ID: <fc8d33ee-6d1c-482e-b6c4-9127d0597d7a@t1g2000pra.googlegroups.com>
On Dec 28, 10:23 am, Rico Secada <········@it.dk> wrote:

> I am a 35 year old programmer, who program in C/C++, PHP and Bourne
> Shell almost daily.
>
> I am currently going to start focusing on becoming more skilled at a
> few key languages...

Python and Ruby. They are the future of programming and are here and
useful today. Both excellent languages... similar yet different. I use
both for general purpose programming (I do not do Web development
mostly systems programming). You can do things in minutes with them
that would take days in Java or C++. You can write very portable code
in either language (Windows, Linux, BSD, Mac, Solaris, etc.)

Ada is airline/dod blessed. Hardly used elsewhere. Best of luck in
finding skilled, affordable Ada programmers outside of major cities.
The others you mentioned are research projects of math and CS (applied
math professors)... and are not generally applicable to real-world
problems. Interesting projects though.

Best of luck,
Brad
From: Samuel Tardieu
Subject: Re: Choosing a new language
Date: 
Message-ID: <87d4sp6rg3.fsf@willow.rfc1149.net>
>>>>> "Brad" == byte8bits  <·········@gmail.com> writes:

Brad> Best of luck in finding skilled, affordable Ada programmers
Brad> outside of major cities.

Which is why it may be a good idea to learn it and earn a lot of $$$ :)
From: Rico Secada
Subject: Re: Choosing a new language
Date: 
Message-ID: <20071230030756.baccde6c.coolzone@it.dk>
On Sat, 29 Dec 2007 23:56:12 +0100
Samuel Tardieu <···@rfc1149.net> wrote:

> >>>>> "Brad" == byte8bits  <·········@gmail.com> writes:
> 
> Brad> Best of luck in finding skilled, affordable Ada programmers
> Brad> outside of major cities.
> 
> Which is why it may be a good idea to learn it and earn a lot of $$
> $ :)

I have yet to see a job offering in which Ada is wanted, atleast in my
country there is none.
From: George Neuner
Subject: Re: Choosing a new language
Date: 
Message-ID: <udsgn31kc8g2u7b882k9bfnr1hc72g77oo@4ax.com>
On Fri, 28 Dec 2007 22:07:12 -0800 (PST), ·········@gmail.com wrote:

>Ada is airline/dod blessed.

Airline blessed maybe.  The DOD revoked its Ada only edict because
they couldn't find enough Ada programmers.  AFAIK, Ada is still the
preferred language, but it is not required.

George
--
for email reply remove "/" from address
From: kevin  cline
Subject: Re: Choosing a new language
Date: 
Message-ID: <81737bc2-99df-4295-b894-19d3ba47662e@c4g2000hsg.googlegroups.com>
On Dec 30 2007, 10:38 pm, George Neuner <·········@/comcast.net>
wrote:
> On Fri, 28 Dec 2007 22:07:12 -0800 (PST), ·········@gmail.com wrote:
> >Ada is airline/dod blessed.
>
> Airline blessed maybe.  The DOD revoked its Ada only edict because
> they couldn't find enough Ada programmers.  AFAIK, Ada is still the
> preferred language, but it is not required.

As if there were such a thing as an 'Ada programmer'.  Any decent
programmer
should be productive in Ada long before their security clearance is
approved.
The real problem the DoD has is that defense work is not attractive to
the best and brightest.
From: Tim Roberts
Subject: Re: Choosing a new language
Date: 
Message-ID: <1m3pn3pntfj99vd85gedvplrlonv96p1ea@4ax.com>
kevin  cline <···········@gmail.com> wrote:
>
>As if there were such a thing as an 'Ada programmer'.  Any decent
>programmer should be productive in Ada long before their security 
>clearance is approved.

That's only true because the security clearance process has become so
complicated.  Ada is not a trivial language by any means.  Even an
experienced C programmer is going to find enough sharp edges to send him
back to the reference manuals on a regular basis. 

>The real problem the DoD has is that defense work is not attractive to
>the best and brightest.

Bull crap.  You don't HEAR about them because of that same security
clearance issue, but some of the most complicated and certainly some of the
LARGEST computing systems in the world come out of the DoD.  You don't
create reliable large systems using a corral full of bright-eyed college
new hires.
-- 
Tim Roberts, ····@probo.com
Providenza & Boekelheide, Inc.
From: kevin  cline
Subject: Re: Choosing a new language
Date: 
Message-ID: <b5b7d63b-1af2-440f-80ac-d520b1301083@d4g2000prg.googlegroups.com>
On Jan 3, 1:32 am, Tim Roberts <····@probo.com> wrote:
> kevin cline<···········@gmail.com> wrote:
>
>
>
> >As if there were such a thing as an 'Ada programmer'.  Any decent
> >programmer should be productive in Ada long before their security
> >clearance is approved.
>
> That's only true because the security clearance process has become so
> complicated.  Ada is not a trivial language by any means.  Even an
> experienced C programmer is going to find enough sharp edges to send him
> back to the reference manuals on a regular basis.
>
> >The real problem the DoD has is that defense work is not attractive to
> >the best and brightest.
>
> Bull crap.  You don't HEAR about them because of that same security
> clearance issue, but some of the most complicated and certainly some of the
> LARGEST computing systems in the world come out of the DoD.  You don't
> create reliable large systems using a corral full of bright-eyed college
> new hires.

I didn't say anything about what the DoD built, or attempted to
build.  I meant that
the most talented young programmers find companies like Google and
Amazon or other
startups more attractive than defense work.  I worked at a Defense
software startup
in Dallas for ten years.  I know how it worked.  Organizations like
Texas Instruments D-Seg hired a lot of new graduates, mostly from
second-tier midwestern
public schools, and put them to work writing defense systems.

With cost-plus contracting, companies bill the DoD by the hour, making
a fixed fee for
each hour charged.  As long as a programmer has the necessary
credentials, their productivity
makes no difference to the company's income.  Once the contract has
been won, labor saving
suggestions have no value.  I know of at least one case where a very
talented programmer
realized that several man-years of manual effort could easily be
automated, but his suggestion was
rejected because it would have left a dozen cut-and-paste programmers
with no work.

With that sort of grind-it-out project management, talented people who
came
to Dallas to work for TI or E-Systems didn't tend to stay in defense
very long.
Many were cherry-picked by the growing telecomm industry, where a
talented developer
could make a huge difference to the bottom line.
From: ··············@lycos.com
Subject: Re: Choosing a new language
Date: 
Message-ID: <4268a143-587b-4a1c-a9e8-d5ce1ab39442@n20g2000hsh.googlegroups.com>
It's not easy to answer this question, and the choice of language is
quite influenced by what's your use of it.

Python/Ruby and Java (and C#, sometimes, on Windows) are often a safe
bet today (for work purposes too), they have lot of libraries and they
are efficient enough for their purposes. But despite being flexible
those two pairs of languages have different purposes.

Haskell is a good language, it has much less libraries and today its
speed is comparable to Python/Psyco one, it may require some time to
adapt your mind tuned to older language to its nearly-pure functional
style. Today I don't think it's a language for newbies. In the future
maybe it will become more useful for work too.

Bye,
bearophile
From: Xah Lee
Subject: Re: Choosing a new language
Date: 
Message-ID: <d4c99a72-6ae9-403e-936a-374e5c2af6dc@d21g2000prf.googlegroups.com>
2007-12-29

Rico Secada wrote: $B!V(B... Now I have three more languages that I am very
attracted to, but I prefer to focus on just one of them: Python,
Haskell and Lisp.  ... I need advice from people who have been coding
in all three, and who can share some views and experiences.$B!W(B

I have been coding all 2, namely Lisp and Python, while still dragging
my ass about learning Haskell.

as others have said, choosing a language for practical programing
largely depends on your purpose. (of course you knew that) Web
programing? PHP and Javascript and HTML/CSS and SQL/db you need. Unix
sys admin? Knowing Bash and Perl is in your favor considering the
states of the affairs. You want to do language research and AI? Lisp
and Haskell etc, of course. You want the ultimate text processor?
Emacs lisp. (beats Perl like you would beat your neighbor's child) You
want build light-sabers and spaceships in the Second Life virtual
world? Linden Script Language, is inevitable. You want to write device
drivers for Operating systems? Enduring the torture of C will benefit
you in long run.

Now, suppose your fancy brain told you that you want one to rule them
all for your kingdom of pure hobby, then the choices runs down to your
taste of course. You could, for example, imagine yourself to be the
king of bits, and enrapture yourself for the persuit to be the master
of all assembly languages. On the other hand, if you imagine to be the
supreme intellilect who wants the most high-level, expessive language
of all, with one line equals to one billion of a assembly, one million
of java, one thousand of lisp, there's Mathematica you can try. (with
few thousand dollars in your pocket to be able to begin this journey)

Sure, but you want us to comment on Python and Lisp and Haskell sans
scenarios.

In that case, my opinion is that Python sucks ass, Lisp and Haskell
rules.

Let me tell you, since you know PHP, that PHP and Perl are practically
identical in their high-levelness or expressiveness or field of
application (and syntax), and, Perl and Python are pretty much the
same except their syntax. In general, PHP, Perl, Python are the same.

(i have over years of industrial experienc with Perl and PHP since
1997, and just personal dabbling with Python since 2005. See my
tutorials here:

$B!z(B Perl and Python tutorial
http://xahlee.org/perl-python/index.html

$B!z(B PHP tutorial (meager, only started writing it this month)
http://xahlee.org/php/index.html

$B!z(B Emacs Lisp tutorial
http://xahlee.org/emacs/elisp.html

$B!z(B Linden Scripting Language tutorial (Second Life)
http://xahlee.org/sl/ls.html

O, and a Java tutorial
$B!z(B Java Tutorial
http://xahlee.org/java-a-day/java.html

)

  Xah
  ···@xahlee.org
$B-t(B http://xahlee.org/

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

Rico Secada wrote:
Hi.

First let me start by saying, please don't let this become a
flame-thing.

Second, I need some advice.

I am a 35 year old programmer, who program in C/C++, PHP and Bourne
Shell almost daily.

I am currently going to start focusing on becoming more skilled at a
few key languages, rather than knowing many (which I do on a more
superficial level).

My key languages are C, PHP and SH (Bourne Shell), and I have stopped
using C++ because I find that its a C-hack rather than a good design
choice.

I have made the following decision:

To study Ada and use it instead of C++. I come from a Pascal
background
and I love the Ada syntax and wide area of usage. I am also attracted
to Ada because of its usage in the industry.

Now I have three more languages that I am very attracted to, but I
prefer to focus on just one of them:

Python, Haskell and Lisp.

I have been doing some reading and some coding, and I am mainly
attracted towards Lisp because of its ability to "fix a
running program".

But I find that Haskell is a more powerful language. Yet again Python
has a huge user base and many libraries, and it is implemented
everywhere, where Haskell and Lisp on the other hand hasn't.

I like the syntax of all three, and I have gotten beyond the
"confusion" stage of Lisp parentheses, so they don't bother me at all.

I need advice from people who have been coding in all three, and who
can share some views and experiences.

Please, if you don't know ALL three by deep experience, don't respond
to
this thread!

Thanks and best regards!

Rico.
From: Tim Roberts
Subject: Re: Choosing a new language
Date: 
Message-ID: <vapin392sle5q8vunbrf8fctivfno2iqk1@4ax.com>
Xah Lee <···@xahlee.org> wrote:
>
>Let me tell you, since you know PHP, that PHP and Perl are practically
>identical in their high-levelness or expressiveness or field of
>application (and syntax), and, Perl and Python are pretty much the
>same except their syntax.

I agree with the fundamental sentiment here, but it's important to note
that the syntax difference between Perl and Python is an enormous
consideration.

The biggest problem with Perl's syntax, in my view, is that it is darned
near impossible to write Perl code that can be read and understood later,
by anyone, including the author.  I've used both languages extensively, and
even with all of that experience, it takes considerable effort for me to go
back to the Perl scripts I wrote 4 or 5 years ago and grasp what they
actually do.

With Python, on the other hand, much of the source code reads like English
prose.  It's certainly possible to code "write-only" sequences by abusing
comprehensions and generators, but obfuscations like that are the exception
rather than the rule.
-- 
Tim Roberts, ····@probo.com
Providenza & Boekelheide, Inc.
From: Achim Schneider
Subject: Re: Choosing a new language
Date: 
Message-ID: <20071231231610.0157b084@solaris.tower>
Tim Roberts <····@probo.com> wrote:

> Xah Lee <···@xahlee.org> wrote:
> >
> >Let me tell you, since you know PHP, that PHP and Perl are
> >practically identical in their high-levelness or expressiveness or
> >field of application (and syntax), and, Perl and Python are pretty
> >much the same except their syntax.
> 
> I agree with the fundamental sentiment here, but it's important to
> note that the syntax difference between Perl and Python is an enormous
> consideration.
> 
> The biggest problem with Perl's syntax, in my view, is that it is
> darned near impossible to write Perl code that can be read and
> understood later, by anyone, including the author.  I've used both
> languages extensively, and even with all of that experience, it takes
> considerable effort for me to go back to the Perl scripts I wrote 4
> or 5 years ago and grasp what they actually do.
> 
> With Python, on the other hand, much of the source code reads like
> English prose.  It's certainly possible to code "write-only"
> sequences by abusing comprehensions and generators, but obfuscations
> like that are the exception rather than the rule.

Should I start a flame war? Shouldn't I?

It's New Year's Eve, after all, fits quite nicely.

Perl excels on executing braindumps. Python is quite good in that area,
too.

Haskell, too, but only if you think Haskell. And Haskell has style.
Good style. Very good style, to be exact. 

In the end that means that you can't read your Perl and Python programs
'cos your brain was a bit muddy at the time you wrote it.

Well, with Haskell this would never happen, as you wouldn't have ever
been able to write such atrocious code in the first place.

You would rather think about the problem in detail, get disabused by
old aunty typecheck, abstract, and write completely unintelligent code
_after_ understanding that your brainmuddiness was actually complete
clarity, it was the language you were trying to implement it in that
made it muddy.

And now please all stop posting and let me get completely drunk in
relative peace.

-- 
(c) this sig last receiving data processing entity. Inspect headers for
past copyright information. All rights reserved. Unauthorised copying,
hiring, renting, public performance and/or broadcasting of this
signature prohibited. 
From: Joost Diepenmaat
Subject: Re: Choosing a new language
Date: 
Message-ID: <871w92xyhs.fsf@zeekat.nl>
Achim Schneider <·······@web.de> writes:

> Tim Roberts <····@probo.com> wrote:
>> I agree with the fundamental sentiment here, but it's important to
>> note that the syntax difference between Perl and Python is an enormous
>> consideration.
>> 
>> The biggest problem with Perl's syntax, in my view, is that it is
>> darned near impossible to write Perl code that can be read and
>> understood later, by anyone, including the author.  I've used both
>> languages extensively, and even with all of that experience, it takes
>> considerable effort for me to go back to the Perl scripts I wrote 4
>> or 5 years ago and grasp what they actually do.
>> 
>> With Python, on the other hand, much of the source code reads like
>> English prose.  It's certainly possible to code "write-only"
>> sequences by abusing comprehensions and generators, but obfuscations
>> like that are the exception rather than the rule.
>
> Should I start a flame war? Shouldn't I?
>
> It's New Year's Eve, after all, fits quite nicely.
>
> Perl excels on executing braindumps. Python is quite good in that area,
> too.
>
> Haskell, too, but only if you think Haskell. And Haskell has style.
> Good style. Very good style, to be exact. 
>
> In the end that means that you can't read your Perl and Python programs
> 'cos your brain was a bit muddy at the time you wrote it.

I think this is exactly what I wanted to say but much better expressed
:-)

Also: I hear people bitch and moan about Python closures. Perl has
closures that do everything you expect from them and do it well.

This may or may not influence your estimates of each language. It sure
makes me apprehensive of python, but then I haven't given python any real
shot (I think python's OO __blablabla__ things are ugly enough to
disregard it).

Joost.
From: Joachim Durchholz
Subject: Re: Choosing a new language
Date: 
Message-ID: <fldor1$jsv$2@online.de>
> Xah Lee <···@xahlee.org> wrote:
>> [...] PHP and Perl are practically identical in their
>> high-levelness or expressiveness or field of application (and
>> syntax),

That must have been a very, very distant point of view with narrowly 
squinted eyes.

Regards,
Jo
From: Tim Roberts
Subject: Re: Choosing a new language
Date: 
Message-ID: <jv3pn39pqju7lbmqlp5k2k2l6vctf168s2@4ax.com>
Joachim Durchholz <··@durchholz.org> wrote:

>> Xah Lee <···@xahlee.org> wrote:
>>> [...] PHP and Perl are practically identical in their
>>> high-levelness or expressiveness or field of application (and
>>> syntax),
>
>That must have been a very, very distant point of view with narrowly 
>squinted eyes.

Do you really think so?  It seems clear to me that the syntax of PHP was
heavily influenced by Perl.  PHP lacks the @array and %hash weirdnesses,
but most PHP code will work just fine as Perl.
-- 
Tim Roberts, ····@probo.com
Providenza & Boekelheide, Inc.
From: Joachim Durchholz
Subject: Re: Choosing a new language
Date: 
Message-ID: <fliu10$h8n$1@online.de>
Tim Roberts schrieb:
> Joachim Durchholz <··@durchholz.org> wrote:
> 
>>> Xah Lee <···@xahlee.org> wrote:
>>>> [...] PHP and Perl are practically identical in their
>>>> high-levelness or expressiveness or field of application (and
>>>> syntax),
>> That must have been a very, very distant point of view with narrowly 
>> squinted eyes.
> 
> Do you really think so?  It seems clear to me that the syntax of PHP was
> heavily influenced by Perl.  PHP lacks the @array and %hash weirdnesses,
> but most PHP code will work just fine as Perl.

Quite unlikely.
It won't even parse. PHP code starts with <?php, which is AFAIK not 
valid Perl. (Anything before <?php will be copied out to stdout, which, 
again, isn't Perl semantics. Anything between ?> and the next <?php will 
be copied through, too.)

I'm not sure whether a PHP function definition would parse in Perl or 
not. It's possible that it may - but then, I don't think it will run 
unless you use a humongous compatibility library.

Taking another step back, Perl has namespaces and can access shared 
libraries directly. PHP has no namespaces, and you need to recompile it 
to access yet another shared lib.
Libraries are very, very different. The thing that I last stumbled over 
is that both have an extremely different approach to FastCGI: PHP 
strives to isolate the programmer from it, Perl gives the direct 
approach. (This is a philosophical difference. PHP library functions 
tend to cover up for platform differences, Perl gives you the 
definitions needed to detect and handle differences.)

If you take another step back, yes both languages are procedural, 
interpreted languages and use $ in front of every variable.

Regards,
Jo
From: ········@oltrelinux.com
Subject: Re: Choosing a new language
Date: 
Message-ID: <df58067a-3516-428a-a43c-d11aaab242a4@i12g2000prf.googlegroups.com>
> Python, Haskell and Lisp.
>
> I have been doing some reading and some coding, and I am mainly
> attracted towards Lisp because of its ability to "fix a
> running program".
Why not Erlang then?
http://www.erlang.org
From: Achim Schneider
Subject: Re: Choosing a new language
Date: 
Message-ID: <20071229161119.72a5dccf@solaris.tower>
Rico Secada <········@it.dk> wrote:

> 
> Second, I need some advice.
> 
http://www.nondot.org/sabre/Mirrored/AdvProgLangDesign/

Learn, or better said understand, those and then choose wisely.

Lisp throws lambda calculus right into your face, which is a good
thing. Scheme might be the better choice, it's lexically scoped:
http://mitpress.mit.edu/sicp/
There are also video lectures with people with funny hats speaking wise
words.

For lisp, (and also a good read if you go for scheme, same with the
wizard book above the different way round), the book of choice is
http://www.paulgraham.com/acl.html

Python is Yet Another Scripting Language, borrowing concepts from more
advanced languages. You might want to go for the real thing instead,
although it's certainly nice.

Haskell is to scheme what a basketball basket is to a trash bin. It's
typed strictly and pure, but with some effort you will also be able to
throw your trash through the basket as well as find a trash bin big
enough for your ball
. 
-- 
(c) this sig last receiving data processing entity. Inspect headers for
past copyright information. All rights reserved. Unauthorised copying,
hiring, renting, public performance and/or broadcasting of this
signature prohibited. 
From: Arnaud Delobelle
Subject: Re: Choosing a new language
Date: 
Message-ID: <b9fb6af6-19d7-409a-b1ea-5dc93324bd63@i29g2000prf.googlegroups.com>
On Dec 29, 3:11 pm, Achim Schneider <·······@web.de> wrote:
[...]
> Lisp throws lambda calculus right into your face, which is a good
> thing. Scheme might be the better choice, it's lexically scoped:http://mitpress.mit.edu/sicp/
> There are also video lectures with people with funny hats speaking wise
> words.

Common Lisp has lexical scoping as well (although defvar allows you to
declare dynamically scoped variables).

--
Arnaud
From: John Thingstad
Subject: Re: Choosing a new language
Date: 
Message-ID: <op.t330rrd1ut4oq5@pandora.alfanett.no>
P� Sat, 29 Dec 2007 18:58:30 +0100, skrev Arnaud Delobelle  
<·······@googlemail.com>:

> On Dec 29, 3:11�pm, Achim Schneider <·······@web.de> wrote:
> [...]
>> Lisp throws lambda calculus right into your face, which is a good
>> thing. Scheme might be the better choice, it's lexically  
>> scoped:http://mitpress.mit.edu/sicp/
>> There are also video lectures with people with funny hats speaking wise
>> words.
>
> Common Lisp has lexical scoping as well (although defvar allows you to
> declare dynamically scoped variables).
>
> --
> Arnaud
>

More precisely defvar, defparameter, progv  and (declare (special var))  
create variables with dynamic scope.
let and let* do as you said use a lexical scope. (unless you use a declare  
as above)


--------------
John Thingstad