up to date books?
johnjsal at NOSPAMgmail.com
Fri Aug 19 00:24:35 CEST 2005
Thank you very much for that response!
aleaxit at gmail.com wrote:
> John Salerno wrote:
>>Just one more quick question: I'm basically learning programming for
>>fun, and I'm concentrating on C# right now. Python seems interesting,
>>but I was wondering if I should even bother. Would it supplement C# in
>>any way, or can C# do everything Python can?
> C# and Python are both Turing-complete (net of limitations to finite
> amounts of storage, in the real world), so of course "they can do"
> exactly the same things as each other in some pretty strong sense -- so
> can machine language, Fortran, ...
> Exactly because of this, this is hardly ever a sensible question to
> ask. It clearly can be more _convenient and practical_ to "do some
> thing" in C# than machine language, because C# is a higher-level
> language than machine language, which increases your productivity (this
> applies to most tasks, but for a few things, such as some
> interrupt-response routines in embedded systems, machine language can
> instead be vastly more practical and productive).
> Similarly, Python is a higher-level language than C#, which further
> increases your productivity (and again this applies to most tasks, but
> for a few lower-level things C# may in fact be more practical and
> Besides considerations connected to the language themselves, similar
> issues (pushing the same way) apply to their implementations -- Python
> vs C# as well as C# vs machine language. As far as I know, to deploy
> C# applications you need a dotNet runtime (or perhaps a Mono runtime,
> if you find it robust enough for your purposes); with machine language
> you'd be restricted to a particular family of CPUs (or emulators
> thereof, such as VirtualPC to emulate intel CPUs under MacOSX with
> PowerPC CPUs). Similarly, with Python you can deploy on the same
> runtimes as you can with C# (using the IronPython implementation, which
> compiles Python to Microsoft CLR intermediate-code) -- but
> alternatively you can deploy to JVMs (with the Jython implementation),
> to a variety of architectures and OSs using a Python-dedicated
> runtime/VM (with the classic, CPython implementation), to some Nokia
> cellphones (Series 60 ones, I believe) using the Python runtime which
> Nokia has developed and released, one day to the Parrot VM, etc, etc...
> in practice, therefore, Python pervades more niches than C#, and thus
> offers more practical deployment options, just like C# is more
> pervasive and deployable than machine language. However, I believe the
> language-level (and therefore programmer-productivity) issue will be
> even more important in most cases.
More information about the Python-list