Posts

Showing posts with the label advocacy

Does Microsoft take Dynamic Languages Seriously?

My belief is that the answer to the question in the title of this entry is an emphatic yes. Microsoft have poured a lot of money into IronPython, IronRuby and the Dynamic Language Runtime and have demonstrated a consistent commitment since the inception of IronPython. What they haven't done is build full support into their premier development tool, Visual Studio. The reason for this is that it is a very difficult problem. Visual Studio is built around statically typed languages. Features like intellisense, refactoring and code navigation all rely on having type information which is absent in languages like Python and Ruby. (The way they are implemented in Visual Studio requires that information I mean.) What Microsoft have done is provide example integration in the form of IronPython Studio, which frankly sucks . Many important features are fragile, broken or missing altogether. Good IDEs like PyDev and Wing do provide these features, so it is definitely possible - it just requi...

Why IronPython Podcast and Best of MSDN Ebook

I recently wrote an article for the UK MSDN (Microsoft Developer Network) newsletter called Why IronPython? This article made it into the collection of the thirteen best technical articles of 2009: You can download these articles as a free ebook in XPS or PDF format, or read it online: FREE MSDN Flash eBook of the best 13 technical articles of 2009 The UK MSDN Flash developer newsletter contains great short technical articles written by UK developers both inside Microsoft and in the broader developer community. This eBook pulls together these great articles in one place. There are thirteen articles in this second edition covering Python, Inversion of Control, Behavior Driven Development, Silverlight and more. The MSDN Flash newsletter is run by Eric Nelson. He also has a podcast and we recorded an episode together about Python, IronPython, PyCon and various other topics: MSDN Flash Podcast 018 – Michael Foord discusses IronPython A great chat with Michael Foord, author of IronP...

Why IronPython?

This is a short article I wrote for the UK MSDN Flash newsletter (a Microsoft newsletter for developers). Unfortunately the online versions of these newsletters aren't being updated at the moment; so instead of linking to it I'm reproducing it here. Why IronPython? One of the new features in .NET 4.0 is the dynamic keyword, building on the Dynamic Language Runtime. A major reason for dynamic is to enable easier interaction with dynamic languages like IronPython. But if you're a dyed in the wool C# or VB.NET programmer why should you be interested in IronPython? Much of the discussion here applies to other dynamic languages, including IronRuby, but Python is my particular area of expertise. IronPython is a .NET implementation of the popular open source programming language Python. Python is an expressive language that is easy to learn and supports several different programming styles; interactive, scripting, procedural, functional...

Choosing a DLR language: IronPython or IronRuby?

.NET developers interested in dynamic languages but still wanting to stay within the .NET ecosystem have an interesting choice - IronPython or IronRuby? Simon Segal, who has been adding scripting support to his Entity Framework profiler , has been pondering this question: Which DLR language should I choose? Is it now IronRuby vs. IronPython. For my part so far I have delved into IronRuby and started to employ it for scripting my C# applications. Why did I choose IronRuby over IronPython? It began with curiosity in the Ruby language in general and led inevitably to IronRuby. I quickly acquired a taste for Ruby but there is something nagging in the back of my mind and I can’t get to the bottom of it - “did I choose the right language” and really after all “does it matter which one I choose?” Given Pythons relationship to C and my emotional connection to the C family of languages, would IronPython have been a better choice? Certainly IronPython is further down the track and more mature th...

Why Choose IronPython over C#?

Matthew Harelick just asked (on the Python.NET mailing list of all places) why he should consider using IronPython: My background is primarily UNIX. I have been programming in C, TCL, Perl, and Python in UNIX and Linux for a long time. I recently started working in Visual Studio and C#. Visual Studio and C# make everything very easy. Python was nice when you didn’t have the convenience of Visual Studio and intellisense with a nice debugger. In the windows world I see no major reason not to use C#. Why would I want to use IronPython? A lot of C# developers feel the same way, why should they consider another language? Here is my answer: Both Python and C# are 'general purpose' programming langugages suited to a wide range of problem domains. Choice of programming language is therefore usually a matter of aesthetics, what you are used to, personal workflow, issues within a team and so on rather than a matter of which is more appropriate to the job. Obviously there are exce...

An IronPython Presentation

Tarn Barford is another .NET developer interested in IronPython. He has just done a presentation for the Victoria .NET user group and the slides and his notes are on his blog: IronPython Presentation Python Basic information about the language and its background. Would have liked to have added meta programming or at least “...” to the paradigms. I think it’s a fantastic language so I’ll mention it’s expressive, fun, productive or whatever adjectives I’ve got in my head at the time. People using Python I really want to demonstrate that Python is real language, being used by real people, to write real code. I probably should also have mentioned Google App Engine here which I’ve been tinkering with a bit recently and think is pretty cool. IronPython The Python language on .Net. Most of the demo is doing cool stuff in .Net with the Python language. I think it goes further than this and allows developers to use their own paradigms and patterns to do .NET development. C# and IronPy...

Why do I use IronPython?

Davy Mitchell has written a brief blog entry explaining why he uses IronPython: Why do I use IronPython? 1) Time is critical so that fact I can learn more .Net and Python at the same time is just great. 2) The Framework is substantial, stable and well maintained. In CPython I am frustrated by non-core libraries getting out of sync (some 2.4, some 2.5 etc months apart). 3) Python is a good application language, a good scripting language and it is currently the best and most mature one for .Net. The IronPython team are helpful and responsive too. It is also maturing very well. 4) IronPython makes it easier to get the best out of Windows - it is a more natural fit than CPython. 5) Winforms is nicer than WxPython :-) wxPython itself is great but can’t disguise the C style API enough for me. Nightmares of MFC development return too quickly!! 6) Silverlight is a great solution for Python in a browser. Nothing comes close in the CPython world. Don't get me wrong - I have 3 versions of CP...

Python is the easiest language in which to do interesting things

Larry O'Brien is a .NET blogger who is a fan of IronPython and Resolver One . Larry is also a writer for the SD Times technology website. One of his recent articles is on Python, IronPython and Resolver One (amongst other things). It starts well: " Python is the easiest language in which to do interesting things ". Python: Arbitrarily Interesting As a .NET developer he naturally goes onto talk about IronPython and then discusses IronPython in Action . For fellow dilettante Python programmers, I recommend the book “IronPython in Action” by Michael Foord and Christian Muirhead. Soon to be published by Manning (I reviewed a preprint), the book is particularly strong in providing simple-but-not-simplistic illustrations and tables that clarify behind-the-scenes structural elements. Visual Studio screenshots may be a little more common than I’d like, but for those new to the VS environment, these may be welcome. The cheek , there's maybe four or five screenshots of Visu...

Why Use IronPython

My boss has a blog ! Even better, he's actually writing entries occasionally. He recently answered a question on the Joel on Software discussion board about whether or not a new company should consider using IronPython: Why Use IronPython? He cites the advantages of IronPython as: All of the .NET libraries are available. UIs look nice. I’ve never seen a pure traditional Python application that looked good, no matter how advanced its functionality. We use a bunch of third-party components - for example, Syncfusion’s Essential Grid - without any problems. Reasonably decent multithreading using the .NET libraries - CPython, the normal Python implementation, has the problem of the Global Interpreter Lock, an implementation choice that makes multithreading dodgy at best. We can build our GUI in Visual Studio, and then generate C# classes for each dialog, and then subclass them from IronPython to add behaviour. (We never need to look at the generated code.) When things go wrong, the CL...

Polyglot Python

Adam Wolf decides to learn a new programming language - and in attempt to thin out the number of possibilities he limits the field to those that he can use for both desktop application development and with Silverlight. Naturally this brings him to IronPython. Polyglot Python " The winner is IronPython, a dynamic language used in conjunction with the new .Net Dynamic Language Runtime. Python was created in the 1980s by Guido van Rossum, who is now working at Google. The Python language is a wrist friendly language due to its terse syntax and no need for the normal text enclosures like C# and VB.Net. The language comes with the “batteries included” and this refers to the numerous libraries that come with the language, which will enable you to write almost any type of software. The IronPython implementation on the .Net platform has full access to these standard Python libraries as well as the full .Net Framework. " As an added bonus he decides to learn by reading the early acces...

Resolver Systems: A Python Success Story

One of my colleagues, the newly nuptialed Mr. Jonathan Hartley, decided that working through summer was definitely not what cool cats should do - and promptly disappeared to the states for a sabbatical. Still, he hasn't entirely frittered the time away on fun and sunning himself and he can prove it because he's written up a 'Python Success Story' which is now part of the collection on the Pythonology Website run by Wingware . This tells the story of Python at Resolver Systems , including how and why we chose IronPython - and how that choice worked out so well for us. IronPython at Resolver Systems (Jonathan's Blog entry) IronPython at Resolver Systems: Python Learns New Tricks Resolver Systems is a two year-old start-up based on the outskirts of London's financial district. Our first product, Resolver One, is a desktop and web-accessible spreadsheet aimed primarily at the financial services market. It is written entirely in IronPython, and directly expose...

Python (and IronPython) for Executives

ophirk has published a great essay on getting Python / IronPython accepted as a development language within the company he works for: Python for Executives IronPython has worked well for them because of easy integration with C# and the .NET infrastructure. He lists the four main fears that their managers had to face in adopting Python: Recruiting - It turns out that smart and innovative people are attracted by Python .Innovative smart people can also learn Python very quickly. Risk - in one year we had only five cases where a Python specific bug occurred. We had many more ASP. NET, JavaScript, HTML and even Java specific problems. Maturity - not only is Python very solid, so is IronPython. The code is stable, the smart features work, the community is responsive and the libraries are rich. The only downside is the IDE and Visual studio integration, but this is progressing as well. Performance - Python flexibility allowed extremely fast optimizations at the system and algorithmic le...