Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 14 reacties
Bron: Python, submitter: JanDM

Python is een object-georiŽnteerde programmeertaal waarmee simpele tot complexe platformonafhankelijke applicaties kunnen worden ontwikkeld. De ontwikkelaars van deze programmeertaal hebben enige tijd geleden twee release candidates uitgebracht, namelijk 3.0 rc1 en 2.6 rc2. De 3.0-serie is niet meer backwards compatible met de voorgaande versietakken omdat men de taal wil opschonen van oude code en enkele aanwezige ontwerpfouten wil herstellen. Versie 2.6 zal wel gedeeltelijk forward compatibility aan de 2.x-lijn toevoegen zodat programmeurs makkelijker hun applicaties naar Python 3.0 kunnen overzetten door alvast nieuwe functies te ondersteunen. De complete lijst met veranderingen voor Python 3.0 is op deze pagina na te lezen en voor de lijst van Python 2.6 kan je op deze pagina terecht. De lijsten met veranderingen voor deze release candidates zien er als volgt uit:

What's New in Python 3.0 release candidate 1

Core and Builtins:
  • Issue #3827: memoryview lost its size attribute in favor of using len(view).
  • Issue #3813: could not lanch python.exe via symbolic link on cygwin.
  • Issue #3705: fix crash when given a non-ascii value on the command line for the "-c" and "-m" parameters. Now the behaviour is as expected under Linux, although under Windows it fails at a later point.
  • Issue #3279: Importing site at interpreter was failing silently because the site module uses the open builtin which was not initialized at the time.
  • Issue #3660: Corrected a reference leak in str.encode() when the encoder does not return a bytes object.
  • Issue #3774: Added a few more checks in PyTokenizer_FindEncoding to handle error conditions.
  • Issue #3594: Fix Parser/tokenizer.c:fp_setreadl() to open the file being tokenized by either a file path or file pointer for the benefit of PyTokenizer_FindEncoding().
  • Issue #3696: Error parsing arguments on OpenBSD <= 4.4 and Cygwin. On these systems, the mbstowcs() function is slightly buggy and must be replaced with strlen() for the purpose of counting of number of wide characters needed to represent the multi-byte character string.
  • Issue #3697: "Fatal Python error: Cannot recover from stack overflow" could be easily encountered under Windows in debug mode when exercising the recursion limit checking code, due to bogus handling of recursion limit when USE_STACKCHEK was enabled.
  • Issue 3639: The _warnings module could segfault the interpreter when unexpected types were passed in as arguments.
  • Issue #3712: The memoryview object had a reference leak and didn't support cyclic garbage collection.
  • Issue #3668: Fix a memory leak with the "s*" argument parser in PyArg_ParseTuple and friends, which occurred when the argument for "s*" was correctly parsed but parsing of subsequent arguments failed.
  • Issue #3611: An exception __context__ could be cleared in a complex pattern involving a __del__ method re-raising an exception.
  • Issue #2534: speed up isinstance() and issubclass() by 50-70%, so as to match Python 2.5 speed despite the __instancecheck__ / __subclasscheck__ mechanism. In the process, fix a bug where isinstance() and issubclass(), when given a tuple of classes as second argument, were looking up __instancecheck__ / __subclasscheck__ on the tuple rather than on each type object.
  • Issue #3663: Py_None was decref'd when printing SyntaxErrors.
  • Issue #3651: Fix various memory leaks when using the buffer interface, or when the "s#" code of PyArg_ParseTuple is given a bytes object.
  • Issue #3657: Fix uninitialized memory read when pickling longs. Found by valgrind.
  • Apply security patches from Apple.
  • Fix crashes on memory allocation failure found with failmalloc.
  • Fix memory leaks found with valgrind and update suppressions file.
  • Fix compiler warnings in opt mode which would lead to invalid memory reads.
  • Fix problem using wrong name in decimal module reported by pychecker.
  • Issue #3650: Fixed a reference leak in bytes.split('x').
  • bytes(o) now tries to use o.__bytes__() before using fallbacks.
  • Issue #1204: The configure script now tests for additional libraries that may be required when linking against readline. This fixes issues with x86_64 builds on some platforms (a few Linux flavors and OpenBSD).
C API:
  • PyObject_Bytes and PyBytes_FromObject were added.
Library:
  • Issue #3756: make re.escape() handle bytes as well as str.
  • Issue #3800: fix filter() related bug in formatter.py.
  • Issue #874900: fix behaviour of threading module after a fork.
  • Issue #3535: zipfile couldn't read some zip files larger than 2GB.
  • Issue #3776: Deprecate the bsddb package for removal in 3.0.
  • Issue #3762: platform.architecture() fails if python is lanched via its symbolic link.
  • Issue #3660: fix a memory leak in the C accelerator of the pickle module.
  • Issue #3160: the "bdist_wininst" distutils command didn't work.
  • Issue #1658: tkinter changes dict size during iteration in both tkinter.BaseWidget and tkinter.scrolledtext.ScrolledText.
  • The bsddb module (and therefore the dbm.bsd module) has been removed. It is now maintained outside of the standard library at http://www.jcea.es/programacion/pybsddb.htm.
  • Issue 600362: Relocated parse_qs() and parse_qsl(), from the cgi module to the urlparse one. Added a DeprecationWarning in the old module, it will be deprecated in the future.
  • Issue #3719: platform.architecture() fails if there are spaces in the path to the Python binary.
  • Issue 3602: As part of the merge of r66135, make the parameters on warnings.catch_warnings() keyword-only. Also remove a DeprecationWarning.
  • The deprecation warnings for the camelCase threading API names were removed.
  • Issue #3110: multiprocessing fails to compiel on solaris 10 due to missing SEM_VALUE_MAX.
Extension Modules:
  • Issue #3782: os.write() must not accept unicode strings.
  • Issue #2975: When compiling several extension modules with Visual Studio 2008 from the same python interpreter, some environment variables would grow without limit.
  • Issue #3643: Added a few more checks to _testcapi to prevent segfaults by exploitation of poor argument checking.
  • bsddb code updated to version 4.7.3pre2. This code is the same than Python 2.6 one, since the intention is to keep an unified 2.x/3.x codebase. The Python code is automatically translated using "2to3". Please, do not update this code in Python 3.0 by hand. Update the 2.6 one and then do "2to3".
  • The _bytesio and _stringio modules are now compiled into the python binary.
  • Issue #3492 and #3790: Fixed the zlib module and zipimport module uses of mutable bytearray objects where they should have been using immutable bytes.
  • Issue #3797: Fixed the dbm, marshal, mmap, ossaudiodev, & winreg modules to return bytes objects instead of bytearray objects.
Tools/Demos:
  • Fix Misc/gdbinit so it works.
Build:
  • Issue #3812: Failed to build python if configure --without-threads.
  • Issue #3791: Remove the bsddb module from the Windows installer, and the core bsddb library from the Windows build files.

What's New in Python 2.6 release candidate 2?

Extension Modules:
  • Issue #3886: Possible integer overflows in the _hashopenssl module were closed.
Tools/Demos:
  • Issue #3850: recursion tests in Misc/find_recursion_limit.py can raise AttributeError instead of RuntimeError, depending in which C API call exactly the recursion limit is exceeded. Consequently, both exception types are caught and silenced.
Build:
  • Issue #3617: Include a licensing statement regarding the Microsoft C runtime in the Windows installer.
[break]
XKCD - Python
XKCD -- Python
Versienummer:3.0 rc1 / 2.6 rc2
Releasestatus:Beta
Besturingssystemen:Windows 9x, Windows NT, Windows 2000, Linux, BSD, Windows XP, macOS, Solaris, UNIX, Windows Server 2003, Windows Vista
Website:Python
Download:http://python.org/download/
Licentietype:Voorwaarden (GNU/BSD/etc.)
Moderatie-faq Wijzig weergave

Reacties (14)

Het plaatje klopt niet met de changelog. :P
Old: print "Hello, World!"
New: print("Hello, World!")

[Reactie gewijzigd door Joshua op 30 september 2008 13:59]

is dat verplicht voortaan ? kost weer extra typ werk, jammer
De hoofdletter aan het begin en de punt op het eind zijn ook verplicht. Perl zou een mooie taal voor jou zijn.
Grappig dat in de strip print "Hello, world!" word gebruikt, in Python 3.0 is dat dus veranderd naar print("Hello, world!"). (De reden is dat het zo makkelijker is om een andere print functie te gebruiken en het maakt de taal consistenter) :)

Ik ben ook blij met de nieuwe 'except' syntax: except Exception as e: is toch duidelijker dan het oude except Exception, e:

[Reactie gewijzigd door JanDM op 30 september 2008 14:02]

Cool. Python is imo een stuk beter te gebruiken als web- en applicatietaal dan PHP. Kijk maar bijvoorbeeld naar CMS'en als Plone. Bovendien lijkt het stukken sneller :)

Trouwens, check deze strip: http://imgs.xkcd.com/comics/height.png
(bij de berg onderaan zie je "Whoo! Python" ;) zoals in de strip in deze meukpost )

[Reactie gewijzigd door Sebazzz op 30 september 2008 14:30]

De kunst van het vliegen is jezelf tegen de grond werpen en deze missen.

Python is een taal met veel libraries en een breed toepassingsgebied. PHP zou ook niet slecht zijn als webtaal als men niet langer de fout maakt om PHP met HTML te mixen. Dit is een soort van misplaatste traditie.

Overigens meen ik dat PHP de laatste tijd stappen voorwaarts heeft gemaakt. Beschikt sinds kort over namespaces :P.

Overigens ben ik hiernaar benieuwd:
PEP 3101: A New Approach to String Formatting∂

* A new system for built-in string formatting operations replaces the % string formatting operator.
De kunst van het vliegen is jezelf tegen de grond werpen en deze missen.
Ah, ook een hitchhiker liefhebber. Vergeet niet te vertellen dat je halverwege ook moet vergeten dat je aan het vallen bent.

Ontopic:
Weet iemand hoe je 3.0 naast 2.6 kunt gaan draaien. Aangezien niet iedereen meteen naar 3.0 zal overstappen, maar ik wel wil kennis maken met deze 'opschoning' van de taal zou ik nog 2.6 of 2.5 ook mijn pc laten staan.
Tsja het lijkt me of het een of het ander. Je kunt ze prima beide installeren, maar je moet toch ergens bepalen welke interpreter de '.py' bestanden verwerkt.
#!/usr/local/bin/python2.6
of
#!/usr/local/bin/python3.0
PHP zou ook niet slecht zijn als webtaal als men niet langer de fout maakt om PHP met HTML te mixen. Dit is een soort van misplaatste traditie.
Een beetje serieuze PHP ontwikkelaar doet dat toch ook niet ;)
Python is imo een stuk beter te gebruiken als web- en applicatietaal dan PHP
Dat kun je van veel talen zeggen, het punt is (tenminste voor mij) om goeie hosting te vinden voor die talen. Het is gewoon een feit dat de meeste (betaalbare) hosts alleen PHP ondersteuning bieden.

Als jij mij een Python, Ruby of Java webhost aan kunt bieden voor §30,- per jaar (of iets in die richting) die ook nog eens kwalitatief goed is, hou ik me ten zeerste aanbevolen.
Verwacht niet teveel support, maar voor een 10-tje zit je een jaar onder dak. Mod-python support, maar toen ik de database via python wilde aanspreken liep ik tegen een stenen muur. Al even geleden, dus wellicht nu beter geregeld. .webreus.nl/

20 euro
30 euro
45 euro
of gewoon gratis, geen TLD voor zover mijn Frans gaat.

De laatste geven allen support voor het Django framework.
De 3.0-serie is niet meer backwards compatible met de voorgaande versietakken omdat men de taal wil opschonen van oude code en enkele aanwezige ontwerpfouten wil herstellen.
Zouden ze bij PHP ook een keer moeten doen. Helaas willen die maar eeuwig backwards-compatible blijven.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True