q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

Katherine Johnson — Mathematics to the Moon

Katherine Johnson’s mathematical calculations helped guide some of America’s most important early space missions while she confronted the racial and gender barriers faced by Black women in twentieth-century America.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

IronPython

IronPython
Original authorsJim Hugunin, Microsoft
DevelopersDino Viehland,
.NET Foundation
ReleaseSeptember 5, 2006; 20 years ago (2006-09-05)[1]
Stable release
3.4.2 / December 20, 2024; 21 months ago (2024-12-20)
Preview release
3.4.0-beta1 / April 30, 2022; 4 years ago (2022-04-30)
Written inC#
Operating systemWindows, Linux, macOS
Platform.NET Framework, .NET, Mono
TypePython programming language implementation
LicenseApache License 2.0
Websiteironpython.net Edit this on Wikidata
Repository

IronPython is an implementation of the Python programming language targeting the .NET and Mono frameworks. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE.[2][3]

IronPython is written entirely in C#, although some of its code is automatically generated by a code generator written in Python.

IronPython is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages.[4] The DLR is part of the .NET Framework 4.0 and is also a part of Mono since version 2.4 from 2009.[5] The DLR can also be used as a library on older CLI implementations.

Status and roadmap

[edit]

Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006.[6] IronPython 2.0 was released on December 10, 2008.[7] After version 1.0 it was maintained by a small team at Microsoft until the 2.7 Beta 1 release. Microsoft abandoned IronPython (and its sister project IronRuby) in late 2010, after which Hugunin left to work at Google.[8] The project is currently maintained by a group of volunteers at GitHub.

  • Release 2.0, released on December 10, 2008, and updated as 2.0.3 on October 23, 2009, targets CPython 2.5.[9] IronPython 2.0.3 is only compatible up to .NET Framework 3.5.
  • Release 2.6, released on December 11, 2009, and updated on April 12, 2010, targets CPython 2.6.[10] IronPython 2.6.1 versions is binary compatible only with .NET Framework 4.0. IronPython 2.6.1 must be compiled from sources to run on .NET Framework 3.5. IronPython 2.6.2, released on October 21, 2010, is binary compatible with both .NET Framework 4.0 and .NET Framework 3.5.
  • Release 2.7 was released on March 12, 2011 and it targets CPython 2.7.[11]
  • Release 2.7.1 was released on October 21, 2011 and it targets CPython 2.7.[12]
  • Release 2.7.2.1 was released on March 13, 2012. It enables support for ZIP file format libraries, SQLite, and compiled executables.[13]
  • Release 2.7.4 was released on September 7, 2013.[14]
  • Release 2.7.5 was released on December 6, 2014 and mostly consists of bug fixes.[15]
  • Release 2.7.6 was released on August 21, 2016 and only consists of bug fixes.[16]
  • Release 2.7.7 was released on December 7, 2016 and only consists of bug fixes.[17]
  • Release 2.7.8 was released on February 16, 2018 and consists of bug fixes, reorganized code, and an updated test infrastructure (including significant testing on Linux under Mono). It is also the first release to support .NET Core.[18]
  • Release 2.7.9 was released on October 9, 2018 and consists of bug fixes, reorganized code. It is intended to be the last release before IronPython 3.[19]
  • Release 2.7.10 was released on April 27, 2020 and adds .NET Core 3.1 support.[20]
  • Release 2.7.11 was released on November 17, 2020 and resolves issues when running on .NET 5.
  • Release 2.7.12 was released on January 21, 2022 and resolves issues with .NET 6 and removes support for .NET core 2.1[21]
  • Release 3.4.0 was released on December 12, 2022 and is the first release to support Python 3.x.[22]
  • Release 3.4.1 was released on July 12, 2023 and consists of a UTF-8 mode, support for the typing module in the standard library, and various bug fixes.[23]
  • Release 3.4.2 was released on December 20, 2024 and consists of bug fixes, including an issue preventing usage on .NET 9.[24]

Differences with CPython

[edit]

There are some differences between the Python reference implementation CPython and IronPython.[25] Some projects built on top of IronPython are known not to work under CPython.[26] Conversely, CPython applications that depend on extensions to the language that are implemented in C are not compatible with IronPython ,[27] unless they are implemented in a .NET interop. For example, NumPy was wrapped by Microsoft in 2011, allowing code and libraries dependent on it to be run directly from .NET Framework.[28]

Silverlight

[edit]

IronPython is supported on Silverlight (which is deprecated by Microsoft and already has lost support in most web browsers[29]). It can be used as a scripting engine in the browser just like the JavaScript engine.[30] IronPython scripts are passed like simple client-side JavaScript scripts in <script>-tags. It is then also possible to modify embedded XAML markup.

The technology behind this is called Gestalt.[31]

<!-- DLR initialization script. -->
<script src="http://gestalt.ironpython.net/dlr-latest.js" type="text/javascript"></script>

<!-- Client-side script passed to IronPython and Silverlight. -->
<script type="text/python">
    window.Alert("Hello from Python")
</script>

The same works for IronRuby.

License

[edit]

Until version 0.6, IronPython was released under the terms of Common Public License.[32] Following recruitment of the project lead in August 2004, IronPython was made available as part of Microsoft's Shared Source initiative. This license is not OSI-approved but the authors claim it meets the open-source definition.[33] With the 2.0 alpha release, the license was changed to the Microsoft Public License,[34] which the OSI has approved. The latest versions are released under the terms of the Apache License 2.0.

Interface extensibility

[edit]

One of IronPython's key advantages is in its function as an extensibility layer to application frameworks written in a .NET language. It is relatively simple to integrate an IronPython interpreter into an existing .NET application framework. Once in place, downstream developers can use scripts written in IronPython that interact with .NET objects in the framework, thereby extending the functionality in the framework's interface, without having to change any of the framework's code base.[35]

IronPython makes extensive use of reflection. When passed in a reference to a .NET object, it will automatically import the types and methods available to that object. This results in a highly intuitive experience when working with .NET objects from within an IronPython script.

Examples

[edit]

The following IronPython script manipulates .NET Framework objects. This script can be supplied by a third-party client-side application developer and passed into the server-side framework through an interface. Note that neither the interface, nor the server-side code is modified to support the analytics required by the client application.

from BookService import BookDictionary
 
booksWrittenByBookerPrizeWinners = [book.Title for book in BookDictionary.GetAllBooks() 
                                    if "Booker Prize" in book.Author.MajorAwards]

In this case, assume that the .NET Framework implements a class, BookDictionary, in a module called BookService, and publishes an interface into which IronPython scripts can be sent and executed.

This script, when sent to that interface, will iterate over the entire list of books maintained by the framework, and pick out those written by Booker Prize-winning authors.

What's interesting is that the responsibility for writing the actual analytics reside with the client-side developer. The demands on the server-side developer are minimal, essentially just providing access to the data maintained by the server. This design pattern greatly simplifies the deployment and maintenance of complex application frameworks.

The following script uses the .NET Framework to create a simple Hello World message.

import clr
clr.AddReference("System.Windows.Forms")

from System.Windows.Forms import MessageBox
MessageBox.Show("Hello World")

Performance

[edit]

The performance characteristics of IronPython compared to CPython, the reference implementation of Python, depends on the exact benchmark used. IronPython performs worse than CPython on most benchmarks taken with the PyStone script but better on other benchmarks.[36] IronPython may perform better in Python programs that use threads or multiple cores, as it has a JIT compiler, and also because it doesn't have the Global Interpreter Lock.[37][38]

Overview and key features

[edit]
  1. Integration with .NET: IronPython allows you to use .NET libraries and frameworks directly in your Python code. This means you can leverage the extensive .NET ecosystem and access features that are specific to .NET environments.
  2. Dynamic Language Runtime (DLR): IronPython runs on the Dynamic Language Runtime, which is a set of services that support dynamic typing and dynamic method invocation in .NET languages.
  3. Interoperability: You can call .NET code from IronPython and vice versa. This makes it possible to integrate Python scripts with existing .NET applications or use .NET components within Python projects.
  4. Syntax and Semantics: IronPython aims to be as close as possible to the standard Python language (CPython), though there might be minor differences due to the underlying .NET platform.
  5. Performance: While IronPython provides good performance for many applications, it might not be as fast as CPython for some tasks, particularly those that rely heavily on Python's native libraries.
  6. Compatibility: IronPython is compatible with Python 2.x, but it does not support Python 3.x features. This means that some newer Python libraries or syntax may not be available.

See also

[edit]

References

[edit]
  1. ^ "CodePlex Archive". Archived from the original on 2017-12-26. Retrieved 2014-05-30.
  2. ^ "IronPython.net". Retrieved 2013-07-03.
  3. ^ "Python Tools for Visual Studio- Home". Python Tools for Visual Studio. Archived from the original on 2018-01-26. Retrieved 2013-07-03.
  4. ^ "Dynamic Language Runtime Overview". Microsoft. Retrieved 2014-04-01.
  5. ^ "2009-07-02 Marek Safar · mono/Mono@340222f". GitHub.
  6. ^ "Jim Hugunin's blog: IronPython 1.0 released today!". 2006-09-05. Retrieved 2006-12-14.
  7. ^ "Release dates for ironpython". 2008-12-10. Retrieved 2009-01-25.
  8. ^ Clarke, Gavin (2010-10-22). "Microsoft cuts loose Iron languages". The Register. Retrieved 2012-04-05.
  9. ^ "2.0.3". ironpython.codeplex.com. Archived from the original on 2017-12-26. Retrieved 2010-10-16.
  10. ^ "2.6". ironpython.codeplex.com. Archived from the original on 2018-01-13. Retrieved 2010-10-16.
  11. ^ "2.7". ironpython.codeplex.com. Archived from the original on 2018-01-02. Retrieved 2011-03-12.
  12. ^ "2.7.1". ironpython.codeplex.com. Archived from the original on 2017-12-26. Retrieved 2011-12-30.
  13. ^ "2.7.2.1". ironpython.codeplex.com. Archived from the original on 2017-12-26. Retrieved 2012-03-24.
  14. ^ "2.7.4". ironpython.codeplex.com. Archived from the original on 2018-01-16. Retrieved 2014-12-07.
  15. ^ "2.7.5". ironpython.codeplex.com. Archived from the original on 2018-01-26. Retrieved 2014-12-07.
  16. ^ "2.7.6". github.com. Retrieved 2016-08-21.
  17. ^ "2.7.7". github.com. Retrieved 2018-01-05.
  18. ^ "2.7.8". github.com. Retrieved 2018-01-05.
  19. ^ "2.7.9". github.com. Retrieved 2018-10-09.
  20. ^ "IronLanguages/ironpython2". GitHub. Retrieved 2020-06-26.
  21. ^ "Releases · IronLanguages/ironpython2". GitHub. Retrieved 2022-08-08.
  22. ^ "Releases · IronLanguages/ironpython3". GitHub. Retrieved 2023-07-09.
  23. ^ IronLanguages. "Release IronPython 3.4.1 · IronLanguages/ironpython3". GitHub. Retrieved 2026-04-26.
  24. ^ IronLanguages. "Release IronPython 3.4.2 · IronLanguages/ironpython3". GitHub. Retrieved 2026-04-26.
  25. ^ "Differences between IronPython 1.0 and CPython 2.4.3". Microsoft. 2007-12-18. Retrieved 2008-02-09.
  26. ^ Foord, Michael. "New Project: Implementing .NET Libraries in Pure Python". Archived from the original on 2008-08-30. Retrieved 2008-02-09.
  27. ^ Eby, Phillip (15 October 2005). "Children of a Lesser Python". Retrieved 2008-07-09.
  28. ^ "NumPy and SciPy for .NET". Retrieved 2019-04-05.
  29. ^ "Silverlight 5 System Requirements". www.microsoft.com. Retrieved 2019-11-16.
  30. ^ "Write browser applications in Python". IronPython.net. Archived from the original on 2013-03-17.
  31. ^ "Embed Python, Ruby, and XAML directly into your HTML with Gestalt". InfoQ. Retrieved 2026-04-26.
  32. ^ "Original IronPython homepage". 2004-07-28. Archived from the original on February 23, 2010. Retrieved 2007-05-13.
  33. ^ "Shared Source License for IronPython". 2006-04-28. Retrieved 2007-05-13.
  34. ^ "Microsoft permissive license". 2007-04-28. Retrieved 2007-05-13.
  35. ^ "Using .NET objects from IronPython in Resolver One". Archived from the original on 2009-01-14. Retrieved 2008-11-18.
  36. ^ "IronPython Performance Report". Retrieved 2009-10-05.{{cite web}}: CS1 maint: deprecated archival service (link)
  37. ^ "IronPython at python.org". python.org. Retrieved 2011-04-04. IronPython has no GIL and multi-threaded code can use multi core processors.
  38. ^ "Python's Hardest Problem, Revisited". Archived from the original on 2015-10-31. Retrieved 2015-07-15.
[edit]

Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

No preview image
Wikipedia

IronPython

IronPython is an implementation of the Python programming language targeting the .NET and Mono frameworks. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE. IronPython is written entirely in C#, although some of its code is automatically generated by a code generator written in Python. IronPython is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages. The DLR is part of the .NET Framework 4.0 and is also a part of Mono since version 2.4 from 2009. The DLR can also be used as a library on older CLI implementations.

MORE →
Wikipedia

SharpDevelop

SharpDevelop (also styled as #develop) is a discontinued free and open source integrated development environment (IDE) for the .NET Framework, Mono, Gtk# and Glade# platforms. It supports development in C#, Visual Basic .NET, Boo, F#, IronPython and IronRuby programming languages. The IDE can still be downloaded and continues to be used by developers working on C# .Net Framework projects. The last release of SharpDevelop was only aimed at C# projects. There was little significant development to the .NET Framework following this release, and this version remains a valid option for developers targeting that platform. Support for other project types is available in the 4.X series releases, but they may not be compatible with later versions of the .NET Framework.

MORE →
Wikipedia

Jim Hugunin

Jim Hugunin is a software programmer who created the Python programming language extension Numeric (ancestor to NumPy), and later created Python implementations for the Java Platform (Jython) and for Microsoft .NET platform (IronPython); he has also co-designed the AspectJ extension for the Java programming language. He worked for Microsoft from 2004 to 2010, mainly on IronPython and Dynamic Language Runtime. In October 2010, after Microsoft abandoned the IronPython project, Hugunin left Microsoft to work for Google. On his personal website, he described Microsoft's decision regarding IronPython as "a catalyst but not the cause of my leaving the company", and said that having "a healthy relationship with Open Source code and communities" at Microsoft was "possible" but "felt like trying to fit a square peg into a round hole". According to LinkedIn, Jim left Google in May 2013. In December 2017, Jim launched a beta version of a cloth simulator called Artful Physics.

MORE →
No preview image
Wikipedia

Dynamic Language Runtime

The Dynamic Language Runtime (DLR) from Microsoft runs on top of the Common Language Runtime (CLR) and provides computer language services for dynamic languages. These services include: A dynamic type system, to be shared by all languages using the DLR services Dynamic method dispatch Dynamic code generation Hosting API The DLR is used to implement dynamic languages on the .NET Framework, including the IronPython and IronRuby projects. Because the dynamic language implementations share a common underlying system, it should be easier for them to interact with one another. For example, it should be possible to use libraries from any dynamic language in any other dynamic language. In addition, the hosting API allows interoperability with statically typed CLI languages like C# and Visual Basic .NET.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

Which heavyweight champion was known as the “Brown Bomber”?

Joe Louis.