programming languages

Will My Software Project Fail?

software development concepts

Will My Software Project Fail?

Most software projects fail. But that doesn’t mean yours has to. The first question you should ask is a deceptively simple one: how big is it? Steve McConnell explains in Software Estimation: Demystifying the Black Art: [For a software project], size is easily the most significant determinant of effort,

By Jeff Atwood ·
Comments
Futurist Programming... in 1994

programming languages

Futurist Programming... in 1994

Paul Heberli and Bruce Karsh proposed something they call futurist programming in 1994: We believe there is a great opportunity for Futurist principles to be applied to the science of computer programming. We react against the heavy religious atmosphere that surrounds every aspect of computer programming. We believe it is

By Jeff Atwood ·
Comments
The Principle of Least Power

programming languages

The Principle of Least Power

Tim Berners-Lee on the Principle of Least Power: Computer Science spent the last forty years making languages which were as powerful as possible. Nowadays we have to appreciate the reasons for picking not the most powerful solution but the least powerful. The less powerful the language, the more you can

By Jeff Atwood ·
Comments

.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