Python, Java, and Netbeans links for December 11th, 2008

Thanassis Tsiodras, Dr.-Ing.: The Knight’s Tour in Python. Discussion at Slashdot.

Ted Leung: Python in Netbeans

Thinlet in Netbeans: thinnb

NetBeans Wiki: Getting Started With Python in the NetBeans IDE 6.5

NetBeans Python IDE download

ars technica: Getting a grip on Python: six ways to learn online

Artima: Python and the Programmer: A Conversation with Bruce Eckel, Part I

Elliotte Rusty Harold: Java is Dead! Long Live Python!

/var/log/mind: Java : the perpetually undead language

Bonus link 1 – start it simple: Bokardo: What if Gall’s Law were true?

Bonus link 2 – fight your fear: iBanjo: Programmer Insecurity

Bonus link 3 – Code less: willCode4Beer: Code Reduction or Spartan Programming

Python links for Saturday, November 29th, 2008

news.ycombinator.com: Python+Scipy+Matplotlib vs Matlab?

Drawing Machines: TIOBE Index: Java on top, Python up, Ruby down and no longer in Top 10

Zea Partners: Python Shows Continual Growth in Open Source Projects

Siafoo: Python, Tips, Tricks, and Hacks

YouTube: Python Design Patterns

The Python Challenge

Software Engineering Links for Saturday 13th, 2008

For Mat, Anandhan, and the team: Dobbs Code Talk: Software is a Team Sport: Write-up for the upcoming Software Development Best Practices conference in Boston, MA October 27th-30th. Looks like a good event.

Google: Demystifying the Duplicate Content Penalty: There isn’t one folks. Please get that clear.

From Aaron: Pinax and django-hotclub – a project to build reusable Django apps.

Burningbird: Death to Extensibility: “I can’t help thinking that we should keep the extensibility and just get rid of the Yellow Screen of Death.”

Linux Journal: Programming Python, Part I

Linux Journal: Programming Python Part II

Need to try this: nxml-mode for Emacs.

On the Big Ball of Mud

Brian Foote and Joseph Yoder, Department of Computer Science, University of Illinois at Urbana-Champaign: Big Ball of Mud:

In the end, software architecture is about how we distill experience into wisdom, and disseminate it. We think the patterns herein stand alongside other work regarding software architecture and evolution that we cited as we went along. Still, we do not consider these patterns to be anti-patterns. There are good reasons that good programmers build BIG BALLS OF MUD. It may well be that the economics of the software world are such that the market moves so fast that long term architectural ambitions are foolhardy, and that expedient, slash-and-burn, disposable programming is, in fact, a state-of-the-art strategy. The success of these approaches, in any case, is undeniable, and seals their pattern-hood.

People build BIG BALLS OF MUD because they work. In many domains, they are the only things that have been shown to work. Indeed, they work where loftier approaches have yet to demonstrate that they can compete.

It is not our purpose to condemn BIG BALLS OF MUD. Casual architecture is natural during the early stages of a system’s evolution. The reader must surely suspect, however, that our hope is that we can aspire to do better. By recognizing the forces and pressures that lead to architectural malaise, and how and when they might be confronted, we hope to set the stage for the emergence of truly durable artifacts that can put architects in dominant positions for years to come. The key is to ensure that the system, its programmers, and, indeed the entire organization, learn about the domain, and the architectural opportunities looming within it, as the system grows and matures.

Periods of moderate disorder are a part of the ebb and flow of software evolution. As a master chef tolerates a messy kitchen, developers must not be afraid to get a little mud on their shoes as they explore new territory for the first time. Architectural insight is not the product of master plans, but of hard won experience. The software architects of yesteryear had little choice other than to apply the lessons they learned in successive drafts of their systems, since RECONSTRUCTION was often the only practical means they had of supplanting a mediocre system with a better one. Objects, frameworks, components, and refactoring tools provide us with another alternative. Objects present a medium for expressing our architectural ideas at a level between coarse-grained applications and components and low level code. Refactoring tools and techniques finally give us the means to cultivate these artifacts as they evolve, and capture these insights.

Read the whole thing.

Is Python More Fun Than Java?

I’m a long time Java developer who has been digging into Python these past couple months. Besides the fact that I expect it to be part of my regular tool belt – it is more fun! Brian M. Clapper shares some good reasons why in his piece “Why is Python more fun than Java?”.

In a similar vein, a poster to Hacker News asks What does Ruby have that Python doesn’t?