Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.python Subject: Re: Python was designed Date: Sat, 26 Oct 2013 10:36:34 -0700 Organization: Nightsong/Fort GNOX Lines: 22 Message-ID: <7xsivoue71.fsf@ruckus.brouhaha.com> References: <18d18c8e-91f0-42d4-8515-a9f8d88301b1@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: mx05.eternal-september.org; posting-host="d94d289a4df6ae47ea4d4f8b2ae808e7"; logging-data="22550"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+wGrRQEEPjXKoDI0FOpL24" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:sGs+j3/PaVQQ5xvQwauj1oma1yw= sha1:DVyLrVrHusHeoMwuggoeU2pfwWc= Xref: csiph.com comp.lang.python:57636 Peter Cacioppi writes: >> Challenge: give some examples of things which you can do in Python, but >> cannot do *at all* in C, C++, C#, Java? > Please. No exceptions is huge. No garbage collection is huge. > But you can do anything with a Turing machine. ... Lumping C, C++, C#, and Java together misses the most important thing. Python, C#, and Java all have a vital capability, that's inherently missing from C and C++, and it's not garbage collection. Namely, you get the ability to write a program and have the assurance that bugs in your code won't overwrite memory at random or make the program segfault. You instead get a reasonable stack trace saying what was going on when the error happened. To riff on Benjamin Pierce, programming is not just about letting you supply the presence of given behaviors (any sane Turing-complete language lets you do that). It's also about ensuring the -absence- of other behaviors, and that in fact is where the heavy lifting of language design is mostly directed. FYI, there is real though imprecise garbage collection for C. Web search for "Boehm garbage collection" should find more info.