Language selection for new projects

smarter_than_you davesum99 at yahoo.com
Fri Oct 17 01:03:10 EDT 2003


I can't compete with Alex for credibility, but for WIW -- Python and C
are your best bet.  Python for high-level productivity, C for
interfacing with drivers, low-level libs, optimization, and so on. 
Pyrex may be relevant in the future but I do not consider it mature
enough to trust on a biggish project.

Python + C will give you a very wide spread of capabilities.   The
learning curve is at least 1/2 that of C/C++, possibly 1/3 or 1/4. 
C++ in my experience is a 2-3 year trek to get to a productive level. 
C is about a year, and Python is a few months.

YMMV - smy

"Limey Drink" <bhicking at bhicking.plus.com> wrote in message news:<ZeFjb.11460$kA.2854057 at wards.force9.net>...
> Alex, I don't know how you find the time to write such detailed replies :-)
> but they're very welcome.
> 
> I have the book Learning Python, I think its an excellent book for learning
> the core language but I have noticed on the O'reilly website a 2nd Edition
> being released in December.
> 
> Has the core of the language changed very significantly from the version
> covered in the first edition of Learning Python ?
> 
> By the way, I had no idea of your significance in the Python community,
> since I have been looking for more information on Python I have noticed your
> name on various books and websites so I appreciate information from a highly
> experienced developer like yourself.
> 
> I am taking the first steps in developing/architecting quite a large project
> and there are a lot of skills I need to aquire and also technologies to
> choose for the job, this is not for the benefit of my current employer but
> for myself :-) so I have alot of time to mess around and play with different
> technologies and I can also actually enjoy writing the software without
> silly timescales and sales/marketing types interfering.
> 
> Would you mind if I email you in the future if I am really stuck witha
> problem ?  looool :-)
> 
> Thanks again
> 
> "Alex Martelli" <aleaxit at yahoo.com> wrote in message
> news:rsGib.211918$hE5.7131319 at news1.tin.it...
> > Limey Drink wrote:
> >    ...
> > > Thankyou very much Alex, this is the first time I have attempted to use
> > > this group for information and I am very pleased with the prompt
>  response.
> > >
> > > once again  thanks
> >
> > You're welcome.
> >
> >
> > > By the way, what do you think to Python with regards to productivity
> > > benefits in general and also in comparison to other languages ?
> >
> > Python, in my experience, is the most productive language over its wide
> > range of optimal applicability.  pyrex, a variant of Python which it might
> > be still a bit too early to consider fully mature enough for production
> > use, extends Python's applicability to somewhat "lower levels", in a
>  sense.
> >
> > I have seen people with particularly good mathematical mindsets do wonders
> > with functional programming languages, but I suspect those who'd be more
> > productive with those than with Python for typical applications would be a
> > tiny minority of the population. (This remains to be proven, but as a
> > working hypothesis it seems quite believable).
> >
> > If you're after "tinkering" more than "production-level applications",
>  don't
> > need to consider the issues of group cooperation, or are slowly weaning
> > yourself from the complexity of perl and don't want the shock of going
>  "cold
> > turkey" into the simplicity of Python, Ruby may be a good compromise.
>  Perl
> > itself is too complicated, and other scripting languages (Javascript and
> > variants, VBScript, bash & variants, PHP, IMHO Tcl too though some Tcl'ers
> > will disagree, awk, etc) too feeble, to compete for productivity with Ruby
> > or Python.
> >
> > Other languages which, depending on cultural background, available
> > tools, and problem areas, may be competitive with Python include Lisp
> > (Common, maybe the lesser-known ISO kind, Arc if it ever matures, Scheme,
> > ...), Dylan, Smalltalk -- and no doubt others that I haven't had a chance
> > to try out yet.
> >
> > Looking at the kind of languages that currently appear to rule the
>  roost --
> > C, C++, Java, C#, Visual (and other kinds of) Basic, Object Pascal,
> > Fortran, Objective C, Ada, Cobol, Eiffel -- it does not seem to me that
>  any
> > of them can compete in terms of programmer productivity with the ones
> > listed above (I do not have sufficient experience with _all_ of them to
> > make this claim substantially stronger; I do have susbtantial experience
> > with most, and enough acquaintance with all, to hold this opinion rather
> > strongly) for application areas suitable for the latter (of course, if I
> > had to code, e.g., a Linux device driver, I _would_ use C -- that's not
> > within the application areas suitable for the various languages above).
> > Once-cool weirdish languages such as snobol, icon, etc, should not really
> > be considered for normal production use.
> >
> > If one had infinite time, trying out all languages in the world would be
> > instructive (and, for some, fun).  In practice, I would suggest to
>  somebody
> > who wants to become a professional programmer to start with Python
> > (easiest to learn, yet powerful enough to be a constant companion
> > thereafter, whatever kind of programming one does); then add a lower-level
> > language, and I would suggest C because of its huge importance in both
> > practical open-source tools and existing literature about programming;
>  then
> > add a mind-expanding one of the functional variety (I would suggest
>  Haskell,
> > but some ML variant, or Clean, or Erlang, and others yet, might be
>  favoured
> > by others); then some Scheme or other Lisp again mostly for instructional
> > purposes (chiefly to be able to study the great book, now freely available
> > online, known as SICP -- "Structure and Interpretation of Computer
> > Programs", by Abelson and Sussman).  By the time this course of study was
> > finished, new languages might well have emerged, of course;-).  And, also
> > of course, non-programming languages and non-languages issue should
> > also be studied -- relational databases and SQL, XML and related
> > technologies, networking and protocols, GUIs, algorithms and data
> > structures... (Python helps a lot in playing around with each of these
> > other important technologies and concepts, btw).
> >
> > Somebody who wants to program but doesn't see producing programs as
> > an end in itself, but just as a means to whatever other ends, might be
>  happy
> > just with Python (and a little pyrex on the side, perhaps -- but right
>  know
> > I do not think there are texts to learn pyrex that don't assume you
>  already
> > know some C) and whatever smattering of other computing technologies
> > they may happen to need in their application area.
> >
> >
> > Alex
> >




More information about the Python-list mailing list