background preloader

The case for Python

Facebook Twitter

Militarizing Your Backyard with Python: Computer Vision and the Squirrel Hordes. Python (and Other Dynamic Languages) Coming to the Enterprise, Like It or Not CIO. CIO — Java and .NET may be the staples of enterprise application development, but there's no doubt that the use of dynamic languages such as Python and PHP in the enterprise is exploding, albeit from a low base.

Python (and Other Dynamic Languages) Coming to the Enterprise, Like It or Not CIO

There's a strong body of anecdotal evidence to back up this assertion, and job posting rates for these languages monitored by Indeed show that, while Java and .NET job vacancies have been largely static, Python and PHP job posting numbers are going through the roof. What's driving enterprises to increasingly code in dynamic languages, and is it something you should be encouraging? Let's look at several key aspects of programming languages—scalability, performance, developer productivity and security—to see how Python stacks up to Java and .NET.

Productivity: Python Code Is Cleaner, But Does That Matter? One argument is that dynamic languages let your developers be more productive, since they can get the same coding tasks done more quickly. Continue Reading. Why PHP Is Fun and Easy But Python Is Marriage Material. Dynamic Languages Strike Back.

PyPy faster than C on a carefully crafted example. Good day everyone.

PyPy faster than C on a carefully crafted example

Recent round of optimizations, especially loop invariant code motion has been very good for small to medium examples. There is work ongoing to make them scale to larger ones, however there are few examples worth showing how well they perform. This one following example, besides getting benefits from loop invariants, also shows a difference between static and dynamic compilation. In fact, after applying all the optimizations C does, only a JIT can use the extra bit of runtime information to run even faster.

The example is as follows. Def add(a, b): return a + b And y.py: from x import add def main(): i = 0 a = 0.0 while i < 1000000000: a += 1.0 add(a, a) i += 1 main() For C, x.c: double add(double a, double b) { return a + b; } and y.c: double add(double a, double b); int main() { int i = 0; double a = 0; while (i < 1000000000) { a += 1.0; add(a, a); i++; } } Results? Hence, PyPy 50% faster than C on this carefully crafted example. Cheers, fijal. Dynamic Languages Strike Back. Some guys at Stanford invited me to speak at their EE Computer Systems Colloquium last week.

Dynamic Languages Strike Back

Pretty cool, eh? It was quite an honor. I wound up giving a talk on dynamic languages: the tools, the performance, the history, the religion, everything. It was a lot of fun, and it went over surprisingly well, all things considered. They've uploaded the video of my talk, but since it's a full hour, I figured I'd transcribe it for those of you who want to just skim it. This is the first time I've transcribed a talk. Unfortunately I wound up using continuation-passing style for many of my arguments: I'd occasionally get started on some train of thought, get sidetracked, and return to it two or three times in the talk before I finally completed it.

I didn't transcribe Andy's introduction, as it seems immodest to do so. Technical corrections are welcome. The talk... Thank you everybody! So I'm going to be talking about dynamic languages. All right. Does anyone here know how to use a Mac? So!

Bruce Eckel on Python