Number of languages known [was Re: Python is readable] - somewhat OT

Steve Howell showell30 at yahoo.com
Thu Mar 29 11:48:53 EDT 2012


On Mar 29, 7:03 am, Chris Angelico <ros... at gmail.com> wrote:
> On Fri, Mar 30, 2012 at 12:44 AM, Nathan Rice
>
> <nathan.alexander.r... at gmail.com> wrote:
> > We would be better off if all the time that was spent on learning
> > syntax, memorizing library organization and becoming proficient with
> > new tools was spent learning the mathematics, logic and engineering
> > sciences.  Those solve problems, languages are just representations.
>
> Different languages are good at different things. REXX is an efficient
> text parser and command executor. Pike allows live updates of running
> code. Python promotes rapid development and simplicity. PHP makes it
> easy to add small amounts of scripting to otherwise-static HTML pages.
> C gives you all the power of assembly language with all the
> readability of... assembly language. SQL describes a database request.
>
> You can't merge all of them without making a language that's
> suboptimal at most of those tasks - probably, one that's woeful at all
> of them.

I agree with you on the overall point, but I think that Python
actually does a fine job of replacing REXX and PHP.  I've used both of
the latter (and, of course, Python).  REXX and PHP are great at what
they do, but I don't think their slight advantages over Python justify
all the weight they carry--incompatible syntax to Python, archaic
libraries, missing modern language features, etc.

It's great to have languages like C and HTML that carve out their own
strong niches.  No argument there.

On the other hand, if you know Python, then having to contend with the
learning curves and idiosyncrasies of Perl and Ruby might feel more
frustrating than empowering.  Like REXX and PHP, Perl and Ruby
arguably have corners where they are more expressive than Python, but
I'd rather have a boring system written in 100% Python than a Ruby/
Python hybrid.

Python should also be a perfectly good superset of Bash Scripting
language.  (To the extent that Python isn't, there's nothing intrinsic
about the language that prevents you from orchestrating processes.)

> I mention SQL because, even if you were to unify all
> programming languages, you'd still need other non-application
> languages to get the job done.
>

Here I absolutely agree with you.  SQL, to me, is a perfect
illustration of a language that's optimal for a particular task.  Of
course, people still can't resist hiding it behind an ORM.

The web stack is notorious for requiring multilingual juggling.  HTML,
CSS, JS, Python, and SQL are easy enough to juggle, but then you might
also get template languages (with all the interpolation escaping),
config files (XML, YAML, etc.), regexes (possibly multiple dialects),
SQL, testing DSLs (ugh, Cucumber and friends), etc.


> Keep the diversity and let each language focus on what it's best at.
>
> ChrisA
> who has lots and lots of hammers, so every problem looks like... lots
> and lots of nails.

I know you're just joking here, because you're obviously not
advocating for multiple hammers.  You're advocating for multiple tools
in the toolbox.  Which is good, of course.

I think the problem these days is that the programmer's brain is like
a small toolbox.  Maybe twenty tools fit in the toolbox.  Instead of
filling it up with 20 useful tools, a lot of us have it cluttered up
with ten hammers, when only one of the hammers is what we need for the
nails.






More information about the Python-list mailing list