September 2011 usage statistics

I last reported on usage stats back in February, when Windows 7 had finally tipped the scales to become the OS used by the majority of Paint.NET users. I’m going to use a briefer format this time and just report on the OS and CPU stats so that I can spend more time on another blog entry (in other words, no table and no language stats this time).

Windows 7 has hit 55.75% (previously 44.74%), XP has fallen to 32.99% (previously 39.57%), and Vista has tumbled to only 10.98% (previously 15.55). And in other good news, 64-bit has jumped all the way up to 34.26% (from 26.08%), while only 65.74% of Paint.NET users are trucking around with a 32-bit version of Windows (down from 73.92%). If you haven’t migrated to 64-bit yet, I highly recommend doing so! And also be sure to install the latest service pack for the version of Windows that you’re using (SP3 for XP, SP2 for Vista, and SP1 for Win7).

Some other stats that I haven’t included before:

  • Of the Windows 7 users, 37.70% are using the “RTM” version and 62.23% have upgraded to SP1.
  • Of the Windows Vista users, 19.14% are using SP1 while 79.40% are using SP2. Only 1.40% are using RTM (possibly due in part to having dropped RTM support awhile ago).
  • Of the Windows XP users, 2.63% are using SP2 while 97.34% are using SP3 (possibly due in part to having dropped SP2 support awhile ago).
  • About 98% of the user base is using Paint.NET v3.5.3 or newer.

January 2011 usage statistics – Win7 wins

The last time I posted stats was in September, and Windows XP had finally dropped below the 50% mark. This time around, the identified trends are continuing: XP is down, Vista is down, Win7 is up, 64-bit is up. A new update, v3.5.6, was released in November, which brought some important bug fixes and also a few performance enhancements. The overall usage numbers (“total hits to update manifest”) cannot be directly compared between this month and September because the v3.5.6 update changed the interval for automatic update checking from 5 days to 10 days, giving the appearance of less activity. This was done to spread out the bandwidth use for new updates, and was an easy change to justify. Anyway here we go …

Windows 7 is now up to about 45% of the user base, a gain of almost 17% since last time. XP has fallen further to less than 40%, which is a drop of almost 9%. Vista has also fallen, by about 14% down to 15.5% total. An important sum here brings the total of Win7 + Vista to just over 60%, which is the percentage that will be able to run Paint.NET v4.0 upon its release, which will require Vista SP2 as I’ve stated before. 64-bit adoption has also grown another 16% and is now more than 1/4th of the user base, a trend I’m still very happy to see continue. I highly recommend running 64-bit Windows 7! It really is the best configuration for running Paint.NET, and my personal favorite of the 3 major editions of Windows that Paint.NET v3.5.x supports.

The percentage of Russian users continues to gain steadily as well – by almost 20% since September! Other than that, there isn’t a whole lot of change worth mentioning in the rest of the stats.

Work on Paint.NET v4.0 is progressing steadily. I’ve recently added support for the Windows Animation Manager, and have employed it in the image thumbnail list to very good effect! Scrolling and fading animations seem superfluous on first discussion, but they really add to the polish of the application, and I’ve found they even improve perceived performance. I’ve found that interleaving creative and technical work helps to keep things more interesting. I’ve been doing some additional work to enable better use of Aero Glass, such as rendering the image thumbnails up into the title bar area.

I’m also considering a public release of pre-alpha builds, in order to get early and important testing and validation of the new .NET 4.0 platform and related installation changes. Maybe I’ll be able to do this by March! There won’t be a big chunk of new features (compared to v3.5.x), but from a “scientific” standpoint this is a good thing. Testing one thing at a time can be a very good strategy, and I’m quite sure there’s plenty of appetite for newer versions of Paint.NET even if they are pre-alpha bits (not the cereal!). There are a few more changes that need to go in before I feel comfortable doing this, such as fault-tolerant saving. Right now Paint.NET, when told to save, will write directly to the file you’ve already saved – it needs to save to a temporary file first, and then swap over the original file only once that has completed successfully.

Anyway that’s all for now!

Look ma, pie chart!

  September 2010 January 2011  
Total  hits to update manifest 3,598,716 3,563,906  
Hits per day 116,087 114,965  
32-bit 77.53% 73.92%  
64-bit 22.47% 26.08% alt
Windows XP 43.42% 39.57%  
Windows 2003 0.18% 0.14%  
Windows Vista / 2008 18.14% 15.55%  
Windows 7 / 2008 R2 38.25% 44.74% alt
English 40.33% 37.81%  
non-English 59.67% 62.19%  
German 15.78% 16.01%  
French 7.68% 8.07%  
Portuguese 4.91% 4.67%  
Spanish 5.77% 5.46%  
Japanese 2.46% 2.35%  
Italian 3.77% 3.67%  
Polish 1.39% 1.68%  
Netherlands (Dutch) 1.43% 1.45%  
Russian 10.63% 12.74%  
Chinese (Simplified) 0.66% 0.59%  
Chinese (Traditional) 0.48% 0.46%  
Turkish 0.70% 0.86%  
Korean 0.27% 0.25%  
All other languages 1.02% 1.03%  
Have translations 81.62% 78.87%  
Don’t have translations 18.38% 21.13%  

September 2010 usage statistics – XP no longer on top

The last time I published stats was back in May, and now it’s time for the September edition. The numbers are pretty simple, and the positive trends I reported earlier continue.

Since May, Windows 7’s demographic has increased by 47% (wow!) and now comprises 38% of the user base. 64-bit has shot up by 41% and is now 22.5% of the user base, something that makes me very happy since it was dawdling at <1% for several years. Windows XP is finally below the 50% mark, having dropped to 43%. If you add up Vista and Win7, you get 56.4%, which is very good news. For the first time this means that the majority of Paint.NET users are not on Windows XP! My decision to drop support for XP in the forthcoming v4.0 release (“late 2011,” remember) appears to be a solid business decision, and will let me focus on using newer technologies like Direct2D. Anyone who says “you are dropping support for the majority of your users!!!1” is, well, wrong.

Yay pie charts

  May 2010 September 2010  
Total  hits to update manifest 4,243,221 3,598,716 alt
Hits per day 136,878 116,087 alt
32-bit 84.12% 77.53%  
64-bit 15.88% 22.47% alt
Windows XP 51.20% 43.42%  
Windows 2003 0.21% 0.18%  
Windows Vista / 2008 22.64% 18.14%  
Windows 7 / 2008 R2 25.95% 38.25% alt
English 39.43% 40.33%  
non-English 60.57% 59.67%  
German 15.52% 15.78%  
French 7.99% 7.68%  
Portuguese 5.43% 4.91%  
Spanish 5.78% 5.77%  
Japanese 2.33% 2.46%  
Italian 3.78% 3.77%  
Polish 1.53% 1.39%  
Netherlands (Dutch) 1.37% 1.43%  
Russian 10.31% 10.63%  
Chinese (Simplified) 0.79% 0.66%  
Chinese (Traditional) 0.58% 0.48%  
Turkish 0.95% 0.70%  
Korean 0.32% 0.27%  
All other languages 0.86% 1.02%  
Have translations 81.38% 81.62%  
Don’t have translations 18.62% 18.38%  

Paint.NET shows up on Steam’s hardware and software survey

The good folks over at Valve collect and publish statistics about the hardware that their users have installed. For their latest July 2010 stats, they’ve started including installed software.

Some interesting highlights:

  • 56.82% have a dual-core CPU, 26.57% have quad-core, and 0.00% have 24 cores.
  • 100% have Steam installed. (derr)
  • Over 40% are using Windows 7, more than XP or Vista.
  • 5.81% have Paint.NET installed, vs. The GIMP at 6.26%. Not bad for an app that’s 8 years younger with fewer contributors than you can count on 3 fingers.

I’m looking forward to the next update!

May 2010 usage statistics – Windows 7 reaches 26%, overtakes Vista

Two months ago I published the usage statistics for March 2010. This month’s data shows a drop in usage for the first time (6.3%), as well as a surprising and unexplained nosedive in the Turkish usage base. I checked the web server’s 404 (“not found”) logs, and it doesn’t account for it, so I’m at a loss to explain it.

In any case, the trends that I’m the most interested in are still showing positive gains. The upward march for Windows 7 (+27.9%!) and 64-bit (+21.1%!) continues, which of course is very good news. Windows 7, at almost 26% total share, has now overtaken Windows Vista, and I’m hoping to see Windows XP fall below the 50% mark soon. I expect that to happen within the next 2 months. The percentages for both English and Russian have gone up, although this may simply be a statistical rebalancing from the mysterious Turkish falloff.

Paint.NET v4.0 is progressing steadily. I’m still in the middle of the “MQ” phase, which is a time for investing in code quality and technology upgrades (“MQ” stands for “Milestone Quality”). I’ve established a good programming model for Direct2D and DirectWrite, improved the super sampling quality for Image->Resize, converted Rotate/Zoom to use IndirectUI, and also significantly improved the way error dialogs and crash logs work.

In previous versions of Paint.NET (which includes the latest v3.5.5), a crash brings a sudden halt to the program with an unfriendly and needlessly verbose dialog:

The user then clicks OK and has no idea what to do about it. This dialog violates the principle of “users don’t read errors” (or anything, honestly, myself included!). Even if they did, it’s unlikely that the crash log would make much sense for them. In Paint.NET v4.0 this will still result in the application shutting down, but at least the UI is improved:

Further improvements may involve hooking into Windows Error Reporting (WER) so that crash logs can be uploaded to me automatically (while respecting your privacy settings, of course).

Clicking on the “Show Details” button will give access to a simple “Copy to clipboard” button and “Open crash log folder” link. The crash logs are no longer unceremoniously (and unprofessionally, I might add) dumped to the desktop. Instead, the last 20 of them are stored in the local (non-roaming) AppData directory (e.g., c:\users\UserName\AppData\Local\Paint.NET\CrashLogs). Most people won’t see that many crashes, of course, but I wanted to ensure these couldn’t gobble up an unbounded amount of disk space. The log files are also stored using NTFS compression to further reduce their disk space impact (although they’re fairly small to begin with).

A similar dialog is also used for reporting other errors. For instance, instead of displaying a nebulous “There was an unspecified error opening the file” error, Paint.NET will now tell you that there was an error (not an “unspecified” error) and let you see the .NET exception. For most situations this won’t really improve the situation, but it will greatly aid troubleshooting – on the forum we can simply ask someone to copy+paste the exception details which will help to speed things up.

Other planned improvements include an “operation restart manager” so that insufficient disk space errors (and others) can be recovered from without data loss, as well as the implementation of a “segmented list” class. The latter will help Paint.NET avoid problems with allocating larger and larger arrays for things like polygon lists (among other things). Instead, the array will be broken up into smaller chunks which a 32-bit system can deal with much more easily.

For instance, if a 200MB array needs to be allocated in a situation where sufficient memory is available but a large enough region of contiguous virtual address space isn’t, this will greatly improve the probability that the allocation will succeed. In fact, often times the problem is that a 150MB (for example) array needs to grow to 200MB, in which case a total of 350MB of memory is required to complete the operation! The SegmentedList<T> class will also avoid the overhead (CPU and memory bandwidth) of constantly copying all those blocks of data, at a cost of higher CPU usage when reading and writing to individual elements within the array. It seems to be a fair tradeoff.

Another improvement coming, one which is long overdue, is fault tolerance when saving an image. Currently, Paint.NET always overwrites the file you are saving and this can have disastrous consequences if an error is encountered in this process. The end result is a 0-byte file even for users who’ve been diligent about saving regularly. The solution is simple, involving first saving to a temporary file and then deleting the old one only when the operation has succeeded. You might ask why this wasn’t implemented a long time ago, and I’ll defer to Raymond Chen’s discussion of the Windows taskbar for an explanation.

The installer now has a hard block on having a minimum amount of memory (RAM). I’m occasionally humored with a crash log from a poor Windows XP user trying to run Paint.NET with 96MB of RAM (which is usually 128MB with a sizable chunk carved out for slow integrated graphics). Sorry, but it just isn’t going to be reliable with so little memory available!

I’ll skip the boring pie charts this month. Here’s the usual tabular data though:

March 2010 May 2010
Total update manifest hits 4,528,824 4,243,221
Hits per day 146,091 136,878
32-bit 86.89% 84.12%
64-bit 13.11% 15.88%
Windows XP 55.76% 51.20%
Windows 2003 0.24% 0.21%
Windows Vista / 2008 23.72% 22.64%
Windows 7 / 2008 R2 20.29% 25.95%
English 38.85% 39.43%
non-English 61.15% 60.57
German 14.68% 15.52%
French 7.79% 7.99%
Portuguese 5.20% 5.43%
Spanish 6.02% 5.78%
Japanese 2.24% 2.33%
Italian 3.57% 3.78%
Polish 1.51% 1.53%
Netherlands (Dutch) 1.35% 1.37%
Russian 9.79% 10.31%
Chinese (Simplified) 0.75% 0.79%
Chinese (Traditional) 0.55% 0.58%
Turkish 3.49% 0.95% ?
Korean 0.35% 0.32%
All other languages 0.81% 0.86%
Have translations 79.45% 81.38%
Don’t have translations 20.55% 18.62%

Bold indicates that Paint.NET ships with the translation. Korean had a translation in v3.36, but not in v3.5+. For Russian, the reverse is true.

March 2010 usage statistics

Here we go again! Last month I published some great numbers showing big gains in the areas of Windows 7, 64-bit, and Russian. This month there really isn’t much to report. Paint.NET usage is up a little, by about 4.3%. Windows 7 has cracked the 20% mark but that isn’t much of a jump since last month. Vista and XP have dropped a little, and 64-bit is showing a small gain (+6.7%). All in all a pretty quiet month, but things are still going in the right direction. (Please upgrade to Windows 7!)

Coding work on Paint.NET v4.0 has been progressing steadily, with a lot of progress being made on what you could call technology upgrades. More importantly I’ve made it past some important decisions. XP support is out so that I can focus on Win7/Vista and use Direct2D, DirectWrite, and the latest WIC (Windows Imaging Component) improvements. I’m hoping to implement a ribbon, although I’m still not entirely sure how to approach MDI with it. I think the current tabs+thumbnails approach works very well, but it may conflict with the official Ribbon UI licensing requirements. The canvas area will be hardware accelerated as much as is possible, and I’m also planning to pull in a docking panels system for the tool windows. Honestly, the transparent floaty windows thing was a neat idea but is starting to show its age, and it doesn’t work well at all on netbooks (1024×600 is a common resolution), or for a non-maximized window. The result is a very cramped UI for many situations. The library I’ve chosen to handle this works very similarly to Visual Studio, and has a lot of happy users already.

Here are some ugly pie charts:

And lastly, here are the raw numbers. Please note that “hits” refers to update manifest text files, not web site traffic in a browser. They are the result of an installation of Paint.NET being active and checking to see what the latest version is. Paint.NET doesn’t check for updates unless it’s open (no TSR’s), and it checks every 5 days at most (longer if it hasn’t been opened in more than 5 days, of course). Thus, these numbers are closer to indicating usage of Paint.NET as opposed to the raw, installed base of users.

February 2010 March 2010
Total update manifest hits 3,922,732 4,528,824
Hits per day 140,097 146,091
32-bit 87.72% 86.89%
64-bit 12.28% 13.11%
Windows XP 56.43% 55.76%
Windows 2003 0.24% 0.24%
Windows Vista / 2008 25.02% 23.72%
Windows 7 / 2008 R2 18.31% 20.29%
English 38.86% 38.85%
non-English 61.14% 61.15%
German 15.34% 14.68%
French 7.76% 7.79%
Portuguese 4.85% 5.20%
Spanish 5.90% 6.02%
Japanese 2.24% 2.24%
Italian 3.56% 3.57%
Polish 1.54% 1.51%
Netherlands (Dutch) 1.37% 1.35%
Russian 9.48% 9.79%
Chinese (Simplified) 0.67% 0.75%
Chinese (Traditional) 0.46% 0.55%
Turkish 3.68% 3.49%
Korean 0.31% 0.35%
All other languages 0.93% 0.81%
Have translations 79.48% 79.45%
Don’t have translations 20.52% 20.55%

Bold indicates that Paint.NET ships with the translation. Korean had a translation in v3.36, but not in v3.5+. For Russian, the reverse is true.

February 2010 usage statistics

I was hoping to publish stats for January, but there was a problem with the web server logs not importing correctly for awhile. Everything’s cleared up though, so here we go!

Right now my primary interest is in planning for Paint.NET v4.0 with respect to determining system requirements. In other words, will it be possible to drop support for XP? The reason I’m trying to answer this is because I want to pervasively use Direct2D, DirectWrite, and DirectCompute while also not incurring an onerous development and testing burden. I want to render everything at high quality, and to use hardware acceleration where possible. These APIs are not available on XP. It appears to be feasible to write a Direct2D-to-GDI+ translation layer, but the other two APIs are not nearly so simple. I cannot justify dropping XP support if everyone’s still using it, or if there isn’t enough of a benefit. This decision must be guided by quantitative data, and not my desire to play with the latest and greatest along with fatigue from supporting ancient systems. One simple solution would be to just keep the last v3.x release available for download until XP support has dwindled far enough. Time will tell.

Anyway, hopes and dreams aside (please upgrade to Windows 7!), let’s see the stats!

The last few months have been huge for Paint.NET since the release of v3.5. The greatly improved performance and Aero UI theme have been very popular, and the “Install When I Exit” update mode has netted me more than a few e-mails full of thanks, praise, and smiley faces (glad you all like it!). I have not been working on new code or features, and instead have focused on relaxing and planning for v4.0. I plan to resume in earnest when Visual Studio 2010 is released; until then, I’m trying to finish Mass Effect 2 (renegade ftw) and BioShock 2. Anyone played Heavy Rain? Talk about mixed feelings; at least it didn’t suffer nearly the same fate as Indigo Prophecy with its awesome beginning that was quickly slaughtered by nonsensical, random plot twists and overly ridiculous quick time event sequences (they should have called it “Dance Dance Simon Revolution”). Oh, and I finally managed to get my Core i7 overclocked to 4.0 GHz by installing this beast.

Overall, usage of Paint.NET is up by a whopping 45%! The other two areas I’ve been hoping for big gains are in 64-bit and Windows 7, and boy are they on a roll! There are 212% more 64-bit users than last July, and Windows 7 is zipping up like a rocket and already claiming over 18% of the user base. Popularity with Russian users is way up, with most other languages staying about the same (technically English is down but this is probably just a result of the increase in the Russian stat).

Window Server 2003 continues to have a negligible number of users. I see no reason to discontinue support (e.g. hard block at install time), as it’s basically the same platform as Windows XP. I do not test with it though, so it’s a “best faith” effort. I don’t have separate stats for Windows 7 and Windows Server 2008 since they report the same version number (6.1.7600), and I don’t track the OS edition (workstation vs. server) with my update manifests.

Here are some ugly pie charts:

And lastly, here are the raw numbers. Please note that “hits” refers to update manifest text files, not web site traffic in a browser. They are the result of an installation of Paint.NET being active and checking to see what the latest version is. Paint.NET doesn’t check for updates unless it’s open (no TSR’s), and it checks every 5 days at most (longer if it hasn’t been opened in more than 5 days, of course).

July 2009 February 2010
Total hits 2,979,631 3,922,732
Hits per day 96,117 140,097
32-bit 94.45% 87.72%
64-bit 5.55% 12.28%
Windows XP 64.97% 56.43%
Windows 2003 0.32% 0.24%
Windows Vista / 2008 32.14% 25.02%
Windows 7 / 2008 R2 2.57% 18.31%
English 42.30% 38.86%
non-English 57.70% 61.14%
German 15.75% 15.34%
French 6.80% 7.76%
Portuguese 6.05% 4.85%
Spanish 6.01% 5.90%
Japanese 2.12% 2.24%
Italian 2.99% 3.56%
Polish 1.52% 1.54%
Netherlands (Dutch) 1.26% 1.37%
Russian 5.41% 9.48%
Chinese (Simplified) 0.83% 0.67%
Chinese (Traditional) 0.60% 0.46%
Turkish 4.32% 3.68%
Korean 0.46% 0.31%
All other languages 1.23% 0.93%
Have translations 83.31% 79.48%
Don’t have translations 16.69% 20.52%

Bold indicates that Paint.NET ships with the translation. Korean had a translation in v3.36, but not in v3.5+. For Russian, the reverse is true.

July 2009 usage statistics

I’ve finally got a little down time since putting out another alpha build for Paint.NET v3.5 tonight (go get it!), so I decided it was a good opportunity to update the usage statistics. The last time I posted an update was last October, and that’s way too long to have gone without an update.

Overall, usage of Paint.NET is up by 9.2%. This is based on the total hits to the update manifest text files. The slow growth isn’t too surprising since there haven’t been any (stable/mainstream) updates to Paint.NET in awhile, and hence not a lot of news or blog posts to draw people to the website. That’s okay though, as version 3.5 is coming soon (more on that in a bit!).

There aren’t too many changes in the demographics of Paint.NET users. Well, the number of French users has dropped from almost 8% down to 6.8%. Turkish has grown in popularity, jumping from 3% all the way up to 4.32% – an impressive relative increase of 44%.

The thing I’m happiest about is the rapid increase of 64-bit Windows. Last October, only 2.66% of Paint.NET users were on 64-bit, but now we’re up to 5.55%. That’s more than double! Windows XP’s share has dropped from 71.65 down to 65%, and Vista has increased slightly from 28% up to 32%. Windows 7 hasn’t even hit general availability and it’s already claiming 2.6% of the user base (which is very good!). I do not have numbers for which release of Windows 7 people are using (Beta vs. RC vs. RTW).

I even ran the numbers to see how many people are using the Paint.NET v3.5 Alpha builds. So far it’s only 0.8%, but that’s perfectly fine by me. The whole point of an alpha is to start out with a small audience! Honestly I thought the number would be less. A beta release should be available soon, and that means it will be offered via the mainstream updater for users who have opted-in to beta updates. I’m sure my inbox will be flooded the next day with crash reports 🙂

I decided to make some pie charts in Excel, for fun (although the colors it chose could use some work) :


And lastly, here are the numbers:

  October 2008 July 2009
Total hits 2,728,795 2,979,631
Hits per day 88,025 96,117
32-bit 97.34% 94.45%
64-bit 2.66% 5.55%
Windows XP 71.65% 64.97%
Windows 2003 0.41% 0.32%
Windows Vista / 2008 27.94% 32.14%
Windows 7 0.01% 2.57%
English 43.20% 42.30%
non-English 56.80% 57.70%
German 15.79% 15.75%
French 7.98% 6.80%
Portuguese 5.85% 6.05%
Spanish 5.39% 6.01%
Japanese 2.00% 2.12%
Italian 3.09% 2.99%
Polish 1.78% 1.52%
Netherlands (Dutch) 1.53% 1.26%
Russian 4.16% 5.41%
Chinese (Simplified) 0.94% 0.83%
Chinese (Traditional) 0.63% 0.60%
Turkish 3.00% 4.32%
Korean 0.47% 0.46%
All other languages 1.34% 1.23%
Have translations 84.71% 83.31%
Don’t have translations 15.29% 16.69%

Bold indicates a language that Paint.NET v3.36 includes a translation for.

October 2008 usage statistics

First, I’m very glad that Obama won the election. It was the first time I’ve ever voted, in fact. I think he will provide some much needed hope and invigoration. Congratulations!

Anyway, on to the stats! I haven’t posted on this since September 2007, and it’s way long overdue for an update.

Since then, usage of Paint.NET is up an amazing 222%. Wow! Vista share has grown a lot, from about 15% all the way up to almost 28%! The share of 64-bit users has also doubled, from 1.24% to 2.66%. Windows 7 is even making a peek-a-boo appearance, at 0.01% 🙂 These are all very good indicators for me. The number of Russian users has grown significantly — it used to be at 1.67%, but is now over 4.0%. Turkish share grew even more — from 0.73% up to 3.0%.

Standard disclaimer: As a reminder, these statistics represent hits to the auto-updater manifests, which means they approximately reveal the Paint.NET application’s usage (as opposed to the number of installed copies). Unless the auto-updater is disabled, it will check for updates up to once every 5 days at application startup. This is done by downloading a text file whose filename is decorated with OS and language information. Having 2.7 million hits to the manifests does not mean that Paint.NET has 2.7 million installations, or 2.7 million active users. It is merely a tool for comparing usage trends amongst different time periods (month to month, in this case).

Let’s see, some other thoughts, especially since I’ve haven’t blogged in a full month:

  • Nehalem, aka Intel Core i7. It rocks! It will be the absolute fastest chip on the planet for Paint.NET, as publicly reported by some benchmarks over at These numbers agree with what I have seen in my own benchmarking. Paint.NET loves cores, loves threads, and loves Nehalem. The 2.66ghz i7-920 will be a very popular chip over the next 3 months. I really hope the next chip generation from AMD packs a punch, to keep things interesting.
  • Windows 7. I’ve been using it a lot, and it’s awesome. I am very encouraged by the direction things are going. I watched many of the PDC sessions on what’s going on with the likes of Direct2D, DirectWrite, and Direct3D, and had to borrow a mop to wipe up my drool.
  • Windows XP. All the new graphics API’s are going to be for Vista/Win7 only. However, I obviously cannot stop support for Windows XP right now (we’ll file that under D for “duh” :)). However, its days are numbered, although it may take another 3-4 years before Paint.NET moves to requiring Vista as a minimum. The numbers you see in these usage statistics will be what drives this type of decision. I didn’t axe support for Windows 2000 until it was clear that it was at 4 – 5% and steadily shrinking.
  • WPF (versus WinForms). I’ve finally started learning it, something that I’ve been avoiding for the last 2 years, partly because it was still very much a “version 1” technology. So far I’m really liking it, and the support for custom pixel shaders is a major enabler. It is now possible for the entire Paint.NET rendering pipeline, including all of the layer blending modes, and including all adjustments and effects, to be done completely on the GPU without resorting to Direct3D or CUDA interop muck. Now if only it had Direct3D 10 and Pixel Shader 3/4/5 support (it only supports D3D 9 and PS 2.0 right now).
  • Fallout 3. It’s very good, and I highly recommend it.
  • Paint.NET v3.5. Don’t worry, it’s not been forgotten about 🙂 I have, however, been taking things “easy”. I was a bit burnt out for awhile, and I just started a new job within Microsoft, so it will not be available in time for the holidays. There are three major work items to complete: a better front-end rendering cache, a rewritten selection outline renderer that does not use GDI+, and final translations.

Here are the numbers:

Total hits 2,728,795
Hits per day 88,025
32-bit 97.34%
64-bit 2.66%
Windows XP 71.65%
Windows 2003 0.41%
Windows Vista / 2008 27.94%
Windows 7 0.01%
English 43.20%
German 15.79%
French 7.98%
Portuguese 5.85%
Spanish 5.39%
Japanese 2.00%
Italian 3.09%
Polish 1.78%
Netherlands (Dutch) 1.53%
Russian 4.16%
Chinese (Simplified) 0.94%
Chinese (Traditional) 0.63%
Turkish 3.00%
Korean 0.47%
All other languages 1.34%
Have translations 84.71%
Don’t have translations 15.29%

Bold indicates a language that Paint.NET includes a translation for.

Other disclaimers:

  • I own stock in AMD, Intel, and Microsoft.
  • I am a Microsoft employee. What I say here is my personal opinion, and not necessarily that of my employer.

September 2007 usage statistics

Overall usage is up only 3.8% for September, which isn’t too surprising nor is it bad. Vista share grew only a very small amount, and 64-bit is basically at the same level it was in August – it’s still disappointingly low. Overall there isn’t really much to say this month that hasn’t been said already for August, or June or July. My bet is that Vista’s share will jump right around Christmas time.

To grow Paint.NET’s userbase further, I think it will take the addition of some killer new features that people have been clamoring for. And maybe some others that they haven’t but will nonetheless be quite awesome.

Revenue was much higher than in August and is still going strong into September, although I have noticed the “new release afterglow” is now starting to wear off (version 3.10 was published on August 24th). Donations always spike very strongly after a new release for about 10 days (by the way, thanks to everyone who has donated! It really does make a difference!). AdSense also takes a healthy jump but doesn’t exhibit the same derivatives. It tends to show a much smaller short-term spike, after which it grows over the following few weeks and then cools off over about the same amount of time. My guess is that a freshly updated web page is simply more valued by AdSense (I could be completely wrong of course). It may be prudent to time a release in order to take advantage of the Q4 advertising spree, as John Chow puts it. By the way, he recently broke past $20,000 / month with just his blog. I would love to accomplish the same with Paint.NET, all while continuing to give it away for free.

As a reminder, these statistics represent hits to the auto-updater manifests, which means they approximately reveal the Paint.NET application’s usage. Unless the auto-updater is disabled, it will check for updates up to once every 5 days at application startup. This is done by downloading a text file whose filename is decorated with OS and language information. Having 1.2 million hits to the manifest does not mean that Paint.NET has 1.2 million installations, or 1.2 million active users. It is merely a tool for comparing usage trends amongst different time periods (month to month, in this case).




Aug. -> Sept.

Total Hits




Hits Per Day













Windows XP




Windows 2003




Windows Vista









































Chinese (Simplified)








Chinese (Traditional)












The rest




Have translations




Don’t have translation