473,396 Members | 1,886 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Python design strategy (was Python evolution: Unease)

Viile writes -
Type declarations are a feature that might benefit IronPython and
Jython more than they would CPython.


How much is this part of Guido's decisionmaking process?

Guido is , IMO, very much a strategist, as well as a language designer.

That's good, I think.

However it seems to me he is much more comfortable discussing
language design with the community. then he is in discussing
strategy.

That, I think, is a strategic decision.

Understandable, in fact.

Nonetheless, I have been uncomfortable with this strategy in the past.

For my own reasons.

But had no good basis to question the strategy, as strategy..

With the language design issue now on the table, I think I can
go further and question the strategy, as such.

The question of *why* needs to be fully discussed with
the community as part of this exercise, IMO.

The "why" that does not give the BDFL's strategic
thinking its due weight will not be a fully honest discussion.

But what is the BDFL's strategic thinking. Will he stay vague?

That it will help certain kinds of projects has been mentioned by Guido.

Which specific projects now underway of which he is aware?

Why is it important to accommodate those projects?

What is Guido's motivation, at this level? Can we ask? Can he answer?
In some specifics?

To implictly direct the converstaion to the highly technical,.
and implicitly assert community concensus should be reached
strictly from a language design perspective on the merits, assures us
more community damage then is necessary in sorting this one out.

Because we won't be having the real conversation.

IMO.

Art


Jul 18 '05 #1
1 1398
aj******@optonline.net wrote:
Viile writes -
Type declarations are a feature that might benefit IronPython and
Jython more than they would CPython.


How much is this part of Guido's decisionmaking process?


One major reason to allow optional static typing is to aid specializing
compilers. A language called "Self" had a type system even more
dynamic than Python's, and it was capable of getting to quite
reasonable speeds doing dynamic analysis and specialization. In
fact, PyPy is quite likely to get great optimization from the
declarations as well as IronPython and JPython.

If for some reason you know the arguments to a function are all
integers, you can create a translation of that function that
only operates on integers, and you can often discover that
operations not only on the arguments, but on partial results,
can all be kept as integers. These operations can be translated
into very simple operations that avoid method lookup, and can
therefore run much faster. If, conceptually, some set of
functions and methods always are called with specific types,
those functions and methods can have very high-speed (relatively)
implementations for fairly little cost in compiler complexity.
Such specifications could be spread through the standard library
(if only in the most obvious of places), and provide a _very_
_substantial_ speed improvement for less investment than almost
any of the other techniques around.

Remember, at the core, all current CPUs operate on one or two
data types: integers and floating point. Wherever they must
distinguish types they must use conditional branches, the slowest
operation on the fastest CPUs being produced today and in the
relatively visible future. Even when the type specification
is advice about the most common type path, rather than a strict
guarantee of the type, code can be generated that does the test
before choosing which path to choose, and have fast code on the
type-specific path.

--Scott David Daniels
Sc***********@Acm.Org
Jul 18 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

65
by: Anthony_Barker | last post by:
I have been reading a book about the evolution of the Basic programming language. The author states that Basic - particularly Microsoft's version is full of compromises which crept in along the...
44
by: Iwan van der Kleyn | last post by:
Please ignore if you are allergic to ramblings :-) Despite a puritan streak I've always tried to refrain from language wars or syntax bickering; call it enforced pragmatism. That's the main...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.