programming languages

.net

Defining Open Source

As I mentioned two weeks ago, my plan is to contribute $10,000 to the .NET open source ecosystem. $5,000 from me, and a matching donation of $5,000 from Microsoft. There’s only two ground rules so far: 1. The project must be written in .NET managed code.

By Jeff Atwood ·
Comments
Rethinking Design Patterns

design patterns

Rethinking Design Patterns

Many developers consider the book Design Patterns a classic. So what’s a design pattern? A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object-oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It

By Jeff Atwood ·
Comments
Background Compilation and Background Spell Checking

programming languages

Background Compilation and Background Spell Checking

Dennis Forbes took issue with my recent post on C# and the Compilation Tax, offering this criticism, pointedly titled “Beginners and Hacks:” Sometimes [background compilation and edit and continue] are there to coddle a beginner, carefully keeping them within the painted lines and away from the dangerous electrical sockets along

By Jeff Atwood ·
Comments

programming languages

Gates and Jobs, Then and Now

If you didn’t get a chance to watch today’s historic interview between Bill Gates and Steve Jobs, you should. Finally seeing these two computer industry giants on stage interacting with each other was fascinating and at times even a little touching. * Steve Jobs and Bill Gates Prologue * Steve

By Jeff Atwood ·
Comments
The Best Code is No Code At All

software development concepts

The Best Code is No Code At All

Rich Skrenta writes that code is our enemy. Code is bad. It rots. It requires periodic maintenance. It has bugs that need to be found. New features mean old code has to be adapted. The more code you have, the more places there are for bugs to hide. The longer

By Jeff Atwood ·
Comments

javascript

JavaScript: The Lingua Franca of the Web

Mike Shaver, a founding member of the Mozilla team, has strong feelings about how the web became popular: If you choose a platform that needs tools, if you give up the viral soft collaboration of View Source and copy-and-paste mashups and being able to jam jQuery in the hole that

By Jeff Atwood ·
Comments
Bill Gates and DONKEY.BAS

programming languages

Bill Gates and DONKEY.BAS

It’s hard to imagine now, but in the early days of Microsoft, Bill Gates was an actual programmer. One bit of hard evidence is the BASIC program DONKEY.BAS included with original IBM PCs running IBM DOS 1.10. The history of this weird little program is covered in

By Jeff Atwood ·
Comments

c#

C# and the Compilation Tax

Over the last four years, I’ve basically given up on the idea that .NET is a multiple language runtime. * The so-called choice between the two most popular languages, C# and VB.NET, is no more meaningful than the choice between Coke and Pepsi. Yes, IronPython and IronRuby are meaningfully

By Jeff Atwood ·
Comments
Giving Up on Microsoft

microsoft

Giving Up on Microsoft

Although I am generally platform agnostic, I make no secret of the fact that I am primarily a Microsoft developer. In a way, I grew up with Microsoft – as a teenager, I cut my programming teeth on the early microcomputer implementations of Microsoft BASIC. And I spent much of my

By Jeff Atwood ·
Comments

programming languages

Your Favorite Programming Quote

My all-time favorite programming quote has to be this Nathaniel Borenstein bon mot: It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a

By Jeff Atwood ·
Comments
Basic Design Principles for Software Developers

programming languages

Basic Design Principles for Software Developers

In my previous post, I urged developers to learn a mainstream graphics editing program. This is purely a mechanical skill, so it seemed reasonable for developers to give it a shot. If we can absorb extremely complex development environments, compilers, and databases, why not a graphics editor? But as a

By Jeff Atwood ·
Comments
Programming Tip: Learn a Graphics Editor

programming languages

Programming Tip: Learn a Graphics Editor

One lesson I took from MIX is that software development and graphic design are increasingly interrelated disciplines. Although they are very different skillsets, its important for developers to have some rudimentary design skills, and vice-versa. There’s a lot of useful cross-pollination going on between developers and designers. You can’

By Jeff Atwood ·
Comments