Python & Ironpython

Total Page:16

File Type:pdf, Size:1020Kb

Python & Ironpython Python & IronPython . An introduction to Python and using IronPython on the .NET Framework Rasmus Nielsen ([email protected]) IT University of Copenhagen March 1, 2010 . Rasmus Nielsen ([email protected]) Python & IronPython What is Python? Python is named in honour of Monty Python Python is an interpreted, dynamically typed, high-level language Python combines remarkable power with very clean, clear, and spare syntax Python is a multi-paradigm language supporting: Object-oriented programming Procedural programming Aspect-oriented programming Functional programming Metaprogramming . Rasmus Nielsen ([email protected]) Python & IronPython Similarities to Java and C] Typically compiled to bytecode, but compilation is implicit Everything inherits from “object” INCLUDING: numbers functions classes . – everything is “first-class” Vast, powerful standard library Garbage collection Introspection / reflection Serialization Parametric polymorphism (Generics) Threads . Rasmus Nielsen ([email protected]) Python & IronPython Similaries to C The Spirit of C ..1. Trust the programmer. ..2. Dont prevent the programmer from doing what needs to be done. ..3. Keep the language small and simple. ..4. Provide only one way to do an operation. ..5. Make it fast, even if it is not guaranteed to be portable. Rationale for International Standard Programming Languages – C Ad 5: Python is not intrinsically fast but IronPython is! . Rasmus Nielsen ([email protected]) Python & IronPython Python vs C/C++/Java/C] Easy to learn, easy to teach No notion of private, public, and sealed, etc. Typing: strong, but dynamic Names have no type Objects have types No "declarations" – just statements Spare syntax, minimal ornamentation: No { } for blocks, just indentation No ( ) for if/while conditions Generally less punctuation – no “;” Everything is “first-class”: object classes, functions, methods, modules . Rasmus Nielsen ([email protected]) Python & IronPython Python extended Look, Ma! Python can do a lot more: Built in support for complex numbers (like Fortran!) Multiple paradigms (OOP, procedural, generic, some functional) Multiple inheritance (like C++) Tuples (like SML) Multiple return values (forget about ref and out) Dynamically typed (like Ruby and JavaScript) Duck typing . Rasmus Nielsen ([email protected]) Python & IronPython Implementations TM CPython (C, Guido van Rossum, 1991) JPython −! Jython (Java, Jim Hugunin, 1997) IronPython (C], Jim Hugunin, 2006) PyPy (Python(!) 2007) . Rasmus Nielsen ([email protected]) Python & IronPython Jim Huginin – creator of Jython – sets out to prove this 6 weeks pass Project fails – PyStone benchmark shows IronPython is 1.7 times faster than CPython 2004: Jim feels obligated to continue the work and eventually demonstrates the first version to Microsoft Microsoft hires him right away! ·· v1.0 (2006) ·· v2.0 (2008) ·· v2.6 (2009) ¹ The Dynamic Language Runtime built for IronPython and IronRuby is injected into vNext of the CLR and C] 4.0 IronPython vNext will be released 1-2 months after .NET 4.0 (v2.6 and v3.1 language compatibility) The story of IronPython 2003: “Fact”: the Common Language Runtime sucks regarding dynamic languages . Rasmus Nielsen ([email protected]) Python & IronPython 6 weeks pass Project fails – PyStone benchmark shows IronPython is 1.7 times faster than CPython 2004: Jim feels obligated to continue the work and eventually demonstrates the first version to Microsoft Microsoft hires him right away! ·· v1.0 (2006) ·· v2.0 (2008) ·· v2.6 (2009) ¹ The Dynamic Language Runtime built for IronPython and IronRuby is injected into vNext of the CLR and C] 4.0 IronPython vNext will be released 1-2 months after .NET 4.0 (v2.6 and v3.1 language compatibility) The story of IronPython 2003: “Fact”: the Common Language Runtime sucks regarding dynamic languages Jim Huginin – creator of Jython – sets out to prove this . Rasmus Nielsen ([email protected]) Python & IronPython Project fails – PyStone benchmark shows IronPython is 1.7 times faster than CPython 2004: Jim feels obligated to continue the work and eventually demonstrates the first version to Microsoft Microsoft hires him right away! ·· v1.0 (2006) ·· v2.0 (2008) ·· v2.6 (2009) ¹ The Dynamic Language Runtime built for IronPython and IronRuby is injected into vNext of the CLR and C] 4.0 IronPython vNext will be released 1-2 months after .NET 4.0 (v2.6 and v3.1 language compatibility) The story of IronPython 2003: “Fact”: the Common Language Runtime sucks regarding dynamic languages Jim Huginin – creator of Jython – sets out to prove this 6 weeks pass . Rasmus Nielsen ([email protected]) Python & IronPython 2004: Jim feels obligated to continue the work and eventually demonstrates the first version to Microsoft Microsoft hires him right away! ·· v1.0 (2006) ·· v2.0 (2008) ·· v2.6 (2009) ¹ The Dynamic Language Runtime built for IronPython and IronRuby is injected into vNext of the CLR and C] 4.0 IronPython vNext will be released 1-2 months after .NET 4.0 (v2.6 and v3.1 language compatibility) The story of IronPython 2003: “Fact”: the Common Language Runtime sucks regarding dynamic languages Jim Huginin – creator of Jython – sets out to prove this 6 weeks pass Project fails – PyStone benchmark shows IronPython is 1.7 times faster than CPython . Rasmus Nielsen ([email protected]) Python & IronPython Microsoft hires him right away! ·· v1.0 (2006) ·· v2.0 (2008) ·· v2.6 (2009) ¹ The Dynamic Language Runtime built for IronPython and IronRuby is injected into vNext of the CLR and C] 4.0 IronPython vNext will be released 1-2 months after .NET 4.0 (v2.6 and v3.1 language compatibility) The story of IronPython 2003: “Fact”: the Common Language Runtime sucks regarding dynamic languages Jim Huginin – creator of Jython – sets out to prove this 6 weeks pass Project fails – PyStone benchmark shows IronPython is 1.7 times faster than CPython 2004: Jim feels obligated to continue the work and eventually demonstrates the first version to Microsoft . Rasmus Nielsen ([email protected]) Python & IronPython ·· v1.0 (2006) ·· v2.0 (2008) ·· v2.6 (2009) ¹ The Dynamic Language Runtime built for IronPython and IronRuby is injected into vNext of the CLR and C] 4.0 IronPython vNext will be released 1-2 months after .NET 4.0 (v2.6 and v3.1 language compatibility) The story of IronPython 2003: “Fact”: the Common Language Runtime sucks regarding dynamic languages Jim Huginin – creator of Jython – sets out to prove this 6 weeks pass Project fails – PyStone benchmark shows IronPython is 1.7 times faster than CPython 2004: Jim feels obligated to continue the work and eventually demonstrates the first version to Microsoft Microsoft hires him right away! . Rasmus Nielsen ([email protected]) Python & IronPython The Dynamic Language Runtime built for IronPython and IronRuby is injected into vNext of the CLR and C] 4.0 IronPython vNext will be released 1-2 months after .NET 4.0 (v2.6 and v3.1 language compatibility) The story of IronPython 2003: “Fact”: the Common Language Runtime sucks regarding dynamic languages Jim Huginin – creator of Jython – sets out to prove this 6 weeks pass Project fails – PyStone benchmark shows IronPython is 1.7 times faster than CPython 2004: Jim feels obligated to continue the work and eventually demonstrates the first version to Microsoft Microsoft hires him right away! ·· v1.0 (2006) ·· v2.0 (2008) ·· v2.6 (2009) ¹ . Rasmus Nielsen ([email protected]) Python & IronPython IronPython vNext will be released 1-2 months after .NET 4.0 (v2.6 and v3.1 language compatibility) The story of IronPython 2003: “Fact”: the Common Language Runtime sucks regarding dynamic languages Jim Huginin – creator of Jython – sets out to prove this 6 weeks pass Project fails – PyStone benchmark shows IronPython is 1.7 times faster than CPython 2004: Jim feels obligated to continue the work and eventually demonstrates the first version to Microsoft Microsoft hires him right away! ·· v1.0 (2006) ·· v2.0 (2008) ·· v2.6 (2009) ¹ The Dynamic Language Runtime built for IronPython and IronRuby is injected into vNext of the CLR and C] 4.0 . Rasmus Nielsen ([email protected]) Python & IronPython The story of IronPython 2003: “Fact”: the Common Language Runtime sucks regarding dynamic languages Jim Huginin – creator of Jython – sets out to prove this 6 weeks pass Project fails – PyStone benchmark shows IronPython is 1.7 times faster than CPython 2004: Jim feels obligated to continue the work and eventually demonstrates the first version to Microsoft Microsoft hires him right away! ·· v1.0 (2006) ·· v2.0 (2008) ·· v2.6 (2009) ¹ The Dynamic Language Runtime built for IronPython and IronRuby is injected into vNext of the CLR and C] 4.0 IronPython vNext will be released 1-2 months after .NET 4.0 (v2.6 and v3.1 language compatibility) . Rasmus Nielsen ([email protected]) Python & IronPython Why IronPython Reasons that CPython programmers might be interested in IronPython include: Corporate credibility (introducing new technologies can be very difficult in some companies, if .NET is already established then you may need no excuse to start using IronPython) No GlobalInterpreterLock – IronPython has no GIL and multi-threaded code can use multi core processors The .NET framework library is very big. Particularly the user interface library Windows Forms is very good. IronPython is easy to embed in .NET applications as a scripting language Easier to extend than CPython (C] is memory managed and C] types can be used directly in IronPython with no wrapping) Silverlight! (Die, ActionScript, Die!) Source: http://wiki.python.org/moin/IronPython! . Rasmus Nielsen ([email protected]) Python & IronPython The problem with object-oriented languages “The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.” Joe Armstrong, principal inventor of Erlang . Rasmus Nielsen ([email protected]) Python & IronPython The world’s smallest C] program – sort of. Listing 1: Hello, World! in C] 1 u s i n g System ; 2 u s i n g System .
Recommended publications
  • Lap Around the .NET Framework 4
    Lap Around the .NET Framework 4 Marc Schweigert ([email protected]) Principal Developer Evangelist DPE US Federal Government Team http://blogs.msdn.com/devkeydet http://twitter.com/devkeydet .NET Framework 4.0 User Interface Services Data Access ASP.NET Windows Windows (WebForms, Entity Presentation Data Services Communication ADO.NET MVC, Dynamic Framework Foundation Foundation Data) Windows WinForms Workflow LINQ to SQL Foundation Core Managed Dynamic Parallel Base Class Extensibility LINQ Languages Language Extensions Library Framework Runtime Common Language Runtime ASP.NET MVC 1.0 (Model View Controller) A new Web Application Project type Simply an option Not a replacement for WebForms Builds on top ASP.NET Manual vs. Automatic Transmission Supports a clear separation of concerns Supports testability Supports “close to the metal” programming experience ASP.NET MVC 2 Visual Studio 2010 Included Visual Studio 2008 (Service Pack 1) Download Both versions built against .NET 3.5 What’s New in MVC 2? Better Separation of Concerns (Maintainability) Html.RenderAction() Areas Easier Validation (Maintainability/Productivity) Data Annotations Client Validation Helper Improvements (Maintainability/Productivity) Strongly-Typed Helpers Templated Helpers ASP.NET 4 Web Forms? Support for SEO with URL Routing Cleaner HTML Client ID improvements ViewState improvements Dynamic Data Improvements Chart Controls Productivity and Extensibility Rich Client Ajax supports both MVC & Web Forms WPF 4 Calendar, Data Grid, DatePicker Ribbon (separate download)
    [Show full text]
  • Ironpython in Action
    IronPytho IN ACTION Michael J. Foord Christian Muirhead FOREWORD BY JIM HUGUNIN MANNING IronPython in Action Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> IronPython in Action MICHAEL J. FOORD CHRISTIAN MUIRHEAD MANNING Greenwich (74° w. long.) Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. Sound View Court 3B fax: (609) 877-8256 Greenwich, CT 06830 email: [email protected] ©2009 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15% recycled and processed without the use of elemental chlorine.
    [Show full text]
  • Introducing Visual Studio 2010
    INTRODUCING VISUAL STUDIO 2010 DAVID CHAPPELL MAY 2010 SPONSORED BY MICROSOFT CONTENTS Tools and Modern Software Development ............................................................................................ 3 Understanding Visual Studio 2010 ........................................................................................................ 3 The Components of Visual Studio 2010 ................................................................................................... 4 A Closer Look at Team Foundation Server............................................................................................... 5 Work Item Tracking ............................................................................................................................. 7 Version Control .................................................................................................................................... 8 Build Management: Team Foundation Build ...................................................................................... 9 Reporting and Dashboards.................................................................................................................. 9 Using Visual Studio 2010 ..................................................................................................................... 12 Managing Requirements ....................................................................................................................... 12 Architecting a Solution .........................................................................................................................
    [Show full text]
  • The Essentials of Stackless Python Tuesday, 10 July 2007 10:00 (30 Minutes)
    EuroPython 2007 Contribution ID: 62 Type: not specified The Essentials of Stackless Python Tuesday, 10 July 2007 10:00 (30 minutes) This is a re-worked, actualized and improved version of my talk at PyCon 2007. Repeating the abstract: As a surprise for people who think they know Stackless, we present the new Stackless implementation For PyPy, which has led to a significant amount of new insight about parallel programming and its possible implementations. We will isolate the known Stackless as a special case of a general concept. This is a Stackless, not a PyPy talk. But the insights presented here would not exist without PyPy’s existance. Summary Stackless has been around for a long time now. After several versions with different goals in mind, the basic concepts of channels and tasklets turned out to be useful abstractions, and since many versions, Stackless is only ported from version to version, without fundamental changes to the principles. As some spin-off, Armin Rigo invented Greenlets at a Stackless sprint. They are some kind of coroutines and a bit of special semantics. The major benefit is that Greenlets can runon unmodified CPython. In parallel to that, the PyPy project is in its fourth year now, and one of its goals was Stackless integration as an option. And of course, Stackless has been integrated into PyPy in a very nice and elegant way, much nicer than expected. During the design of the Stackless extension to PyPy, it turned out, that tasklets, greenlets and coroutines are not that different in principle, and it was possible to base all known parallel paradigms on one simple coroutine layout, which is as minimalistic as possible.
    [Show full text]
  • Design and Implementation of Generics for the .NET Common Language Runtime
    Design and Implementation of Generics for the .NET Common Language Runtime Andrew Kennedy Don Syme Microsoft Research, Cambridge, U.K. fakeÒÒ¸d×ÝÑeg@ÑicÖÓ×ÓfغcÓÑ Abstract cally through an interface definition language, or IDL) that is nec- essary for language interoperation. The Microsoft .NET Common Language Runtime provides a This paper describes the design and implementation of support shared type system, intermediate language and dynamic execution for parametric polymorphism in the CLR. In its initial release, the environment for the implementation and inter-operation of multiple CLR has no support for polymorphism, an omission shared by the source languages. In this paper we extend it with direct support for JVM. Of course, it is always possible to “compile away” polymor- parametric polymorphism (also known as generics), describing the phism by translation, as has been demonstrated in a number of ex- design through examples written in an extended version of the C# tensions to Java [14, 4, 6, 13, 2, 16] that require no change to the programming language, and explaining aspects of implementation JVM, and in compilers for polymorphic languages that target the by reference to a prototype extension to the runtime. JVM or CLR (MLj [3], Haskell, Eiffel, Mercury). However, such Our design is very expressive, supporting parameterized types, systems inevitably suffer drawbacks of some kind, whether through polymorphic static, instance and virtual methods, “F-bounded” source language restrictions (disallowing primitive type instanti- type parameters, instantiation at pointer and value types, polymor- ations to enable a simple erasure-based translation, as in GJ and phic recursion, and exact run-time types.
    [Show full text]
  • Expression Trees 1 Dynamic Language Runtime Overview 5 Creating and Using Dynamic Objects 9 Early and Late Binding 17 Execute Ex
    Expression Trees 1 Dynamic Language Runtime Overview 5 Creating and Using Dynamic Objects 9 Early and Late Binding 17 Execute Expression Trees 19 Modify Expression Trees 21 Use Expression Trees to Build Dynamic Queries 23 Debugging Expression Trees 26 Expression Trees (Visual Basic) https://msdn.microsoft.com/en-us/library/mt654260(d=printer).aspx Expression Trees (Visual Basic) Visual Studio 2015 Expression trees represent code in a tree-like data structure, where each node is an expression, for example, a method call or a binary operation such as x < y . You can compile and run code represented by expression trees. This enables dynamic modification of executable code, the execution of LINQ queries in various databases, and the creation of dynamic queries. For more information about expression trees in LINQ, see How to: Use Expression Trees to Build Dynamic Queries (Visual Basic) . Expression trees are also used in the dynamic language runtime (DLR) to provide interoperability between dynamic languages and the .NET Framework and to enable compiler writers to emit expression trees instead of Microsoft intermediate language (MSIL). For more information about the DLR, see Dynamic Language Runtime Overview . You can have the C# or Visual Basic compiler create an expression tree for you based on an anonymous lambda expression, or you can create expression trees manually by using the System.Linq.Expressions namespace. Creating Expression Trees from Lambda Expressions When a lambda expression is assigned to a variable of type Expression(Of TDelegate) , the compiler emits code to build an expression tree that represents the lambda expression. The Visual Basic compiler can generate expression trees only from expression lambdas (or single-line lambdas).
    [Show full text]
  • Goless Documentation Release 0.6.0
    goless Documentation Release 0.6.0 Rob Galanakis July 11, 2014 Contents 1 Intro 3 2 Goroutines 5 3 Channels 7 4 The select function 9 5 Exception Handling 11 6 Examples 13 7 Benchmarks 15 8 Backends 17 9 Compatibility Details 19 9.1 PyPy................................................... 19 9.2 Python 2 (CPython)........................................... 19 9.3 Python 3 (CPython)........................................... 19 9.4 Stackless Python............................................. 20 10 goless and the GIL 21 11 References 23 12 Contributing 25 13 Miscellany 27 14 Indices and tables 29 i ii goless Documentation, Release 0.6.0 • Intro • Goroutines • Channels • The select function • Exception Handling • Examples • Benchmarks • Backends • Compatibility Details • goless and the GIL • References • Contributing • Miscellany • Indices and tables Contents 1 goless Documentation, Release 0.6.0 2 Contents CHAPTER 1 Intro The goless library provides Go programming language semantics built on top of gevent, PyPy, or Stackless Python. For an example of what goless can do, here is the Go program at https://gobyexample.com/select reimplemented with goless: c1= goless.chan() c2= goless.chan() def func1(): time.sleep(1) c1.send(’one’) goless.go(func1) def func2(): time.sleep(2) c2.send(’two’) goless.go(func2) for i in range(2): case, val= goless.select([goless.rcase(c1), goless.rcase(c2)]) print(val) It is surely a testament to Go’s style that it isn’t much less Python code than Go code, but I quite like this. Don’t you? 3 goless Documentation, Release 0.6.0 4 Chapter 1. Intro CHAPTER 2 Goroutines The goless.go() function mimics Go’s goroutines by, unsurprisingly, running the routine in a tasklet/greenlet.
    [Show full text]
  • Ironpython Und Die Dynamic Language Runtime (DLR) Softwareentwicklung Mit Python Auf Der Microsoft Windows Plattform
    IronPython und die Dynamic Language Runtime (DLR) Softwareentwicklung mit Python auf der Microsoft Windows Plattform Klaus Rohe ([email protected]) Microsoft Deutschland GmbH Einige Anmerkungen • Kein Python Tutorial: • Es werden einige Unterschiede von Python zu C# / Java dargestellt • Die Eigenschaften, Beispiele und Demos beziehen sich auf die Version IronPython 2.0 Beta 4. Die endgültig freigegebene Version von IronPython 2.0 kann andere Eigenschaften besitzen und sich anders verhalten. Herbstcampus 2008 – Titel des Vortrags 2 Agenda • Python • IronPython & die Dynamic Language Runtime • Benutzung von .NET Bibliotheken in IronPython • ADO.NET • WPF • Einbetten von IronPython in Applikationen • Interoperabilität • IronPython & Cpython • Interoperabilität CPython - .NET Herbstcampus 2008 – Titel des Vortrags 3 Historie von Python • Anfang der 1990er Jahre von Guido van Rossum am Zentrum für Mathematik und Informatik Amsterdam als Nachfolger für die Lehrsprache ABC entwickelt • Wurde ursprünglich für das verteilte Betriebssystem Amoeba entwickelt: http://www.cs.vu.nl/pub/amoeba/ • Der Name der Sprache bezieht sich auf die britische Komiker Gruppe Monty Python Herbstcampus 2008 – Titel des Vortrags 4 Charakterisierung von Python (1) • Python-Programm wird interpretiert • Unterstützt mehrere Programmierparadigmen: • Prozedural • Objektorientiert • Funktional • Klare, einfache Syntax • Portabel, verfügbar auf allen Plattformen mit C-Compiler • Windows, Mac OS, UNIX, LINUX, … • Leicht erweiterbar mit C/C++ Bibliotheken • Z. B. Bibliothek
    [Show full text]
  • Working with Ironpython and WPF
    Working with IronPython and WPF Douglas Blank Bryn Mawr College Programming Paradigms Spring 2010 With thanks to: http://www.ironpython.info/ http://devhawk.net/ IronPython Demo with WPF >>> import clr >>> clr.AddReference("PresentationFramework") >>> from System.Windows import * >>> window = Window() >>> window.Title = "Hello" >>> window.Show() >>> button = Controls.Button() >>> button.Content = "Push Me" >>> panel = Controls.StackPanel() >>> window.Content = panel >>> panel.Children.Add(button) 0 >>> app = System.Windows.Application() >>> app.Run(window) XAML Example: Main.xaml <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TestApp" Width="640" Height="480"> <StackPanel> <Label>Iron Python and WPF</Label> <ListBox Grid.Column="0" x:Name="listbox1" > <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=title}" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </StackPanel> </Window> IronPython + XAML import sys if 'win' in sys.platform: import pythoncom pythoncom.CoInitialize() import clr clr.AddReference("System.Xml") clr.AddReference("PresentationFramework") clr.AddReference("PresentationCore") from System.IO import StringReader from System.Xml import XmlReader from System.Windows.Markup import XamlReader, XamlWriter from System.Windows import Window, Application xaml = """<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Title="XamlReader Example" Width="300" Height="200"> <StackPanel Margin="5"> <Button
    [Show full text]
  • CNT6008 Network Programming Module - 11 Objectives
    CNT6008 Network Programming Module - 11 Objectives Skills/Concepts/Assignments Objectives ASP.NET Overview • Learn the Framework • Understand the different platforms • Compare to Java Platform Final Project Define your final project requirements Section 21 – Web App Read Sections 21 and 27, pages 649 to 694 and 854 Development and ASP.NET to 878. Section 27 – Web App Development with ASP.NET Overview of ASP.NET Section Goals Goal Course Presentation Understanding Windows Understanding .NET Framework Foundation Project Concepts Creating a ASP.NET Client and Server Application Understanding the Visual Creating a ASP Project Studio Development Environment .NET – What Is It? • Software platform • Language neutral • In other words: • .NET is not a language (Runtime and a library for writing and executing written programs in any compliant language) What Is .NET • .Net is a new framework for developing web-based and windows-based applications within the Microsoft environment. • The framework offers a fundamental shift in Microsoft strategy: it moves application development from client-centric to server- centric. .NET – What Is It? .NET Application .NET Framework Operating System + Hardware Framework, Languages, And Tools VB VC++ VC# JScript … Common Language Specification Visual Studio.NET Visual ASP.NET: Web Services Windows and Web Forms Forms ADO.NET: Data and XML Base Class Library Common Language Runtime The .NET Framework .NET Framework Services • Common Language Runtime • Windows Communication Framework (WCF) • Windows® Forms • ASP.NET (Active Server Pages) • Web Forms • Web Services • ADO.NET, evolution of ADO • Visual Studio.NET Common Language Runtime (CLR) • CLR works like a virtual machine in executing all languages. • All .NET languages must obey the rules and standards imposed by CLR.
    [Show full text]
  • Faster Cpython Documentation Release 0.0
    Faster CPython Documentation Release 0.0 Victor Stinner January 29, 2016 Contents 1 FAT Python 3 2 Everything in Python is mutable9 3 Optimizations 13 4 Python bytecode 19 5 Python C API 21 6 AST Optimizers 23 7 Old AST Optimizer 25 8 Register-based Virtual Machine for Python 33 9 Read-only Python 39 10 History of Python optimizations 43 11 Misc 45 12 Kill the GIL? 51 13 Implementations of Python 53 14 Benchmarks 55 15 PEP 509: Add a private version to dict 57 16 PEP 510: Specialized functions with guards 59 17 PEP 511: API for AST transformers 61 18 Random notes about PyPy 63 19 Talks 65 20 Links 67 i ii Faster CPython Documentation, Release 0.0 Contents: Contents 1 Faster CPython Documentation, Release 0.0 2 Contents CHAPTER 1 FAT Python 1.1 Intro The FAT Python project was started by Victor Stinner in October 2015 to try to solve issues of previous attempts of “static optimizers” for Python. The main feature are efficient guards using versionned dictionaries to check if something was modified. Guards are used to decide if the specialized bytecode of a function can be used or not. Python FAT is expected to be FAT... maybe FAST if we are lucky. FAT because it will use two versions of some functions where one version is specialised to specific argument types, a specific environment, optimized when builtins are not mocked, etc. See the fatoptimizer documentation which is the main part of FAT Python. The FAT Python project is made of multiple parts: 3 Faster CPython Documentation, Release 0.0 • The fatoptimizer project is the static optimizer for Python 3.6 using function specialization with guards.
    [Show full text]
  • Jupyter Tutorial Release 0.8.0
    Jupyter Tutorial Release 0.8.0 Veit Schiele Oct 01, 2021 CONTENTS 1 Introduction 3 1.1 Status...................................................3 1.2 Target group...............................................3 1.3 Structure of the Jupyter tutorial.....................................3 1.4 Why Jupyter?...............................................4 1.5 Jupyter infrastructure...........................................4 2 First steps 5 2.1 Install Jupyter Notebook.........................................5 2.2 Create notebook.............................................7 2.3 Example................................................. 10 2.4 Installation................................................ 13 2.5 Follow us................................................. 15 2.6 Pull-Requests............................................... 15 3 Workspace 17 3.1 IPython.................................................. 17 3.2 Jupyter.................................................. 50 4 Read, persist and provide data 143 4.1 Open data................................................. 143 4.2 Serialisation formats........................................... 144 4.3 Requests................................................. 154 4.4 BeautifulSoup.............................................. 159 4.5 Intake................................................... 160 4.6 PostgreSQL................................................ 174 4.7 NoSQL databases............................................ 199 4.8 Application Programming Interface (API)..............................
    [Show full text]