A collection of articles, ideas, and rambling from a guy who wrote some software that one time.

Saturday, January 28, 2006

Statistical anomaly

According to the sitemeter OS stats for twistedmatrix.com, 43% of Twisted users are using some form of Microsoft Windows.

I don't have any such graphs for Twisted developers, but off the top of my head I would guess that 2 out of 40 developers actually use Windows for anything except games and grudgingly booting into it to fix a couple of Twisted issues per year.  I am not some kind of math genius, but even I can tell that is not 43%.

So - where are you Windows/Twisted people?  If you're really out there, we could use a few more dedicated maintianers that don't totally hate the platform.

13 comments:

ecielam said...

I and many others I know use Windows as a 'terminal' ... firefox + a myriad of open shell windows.

that said, I've considered doing some twisted stuff under windows, but not too seriously.

doofsmack said...

Exact same case here. Windows as a desktop machine.. Firefox, PuTTY, and various other tools, but all my development is being done on a linux box over ssh.

corydodt said...

Windows users hate the platform. That's the problem.

glyf said...

Why??

This was the hypothesis of other Twisted team members that I approached; I thought it was so ridiculous I didn't even understand where they got it from.

Is it a "dodging corporate policy" kind of a thing? Like, you have to run Windows on your desktop but there is no particular requirement on development tools or where you write your code?

ecielam said...

I can't speak for everyone, clearly, but I do it because it integrates much better workflow wise. While I love Linux (and even more, FreeBSD) neither provide a desktop experience that's better than Windows. I haven't used a Mac in fifteen years so I can't compare Mac v Win.

I make corporate policy about this sort of thing (I'm a VP) so that's not the problem :)

glyf said...

I'll just accept that it's a better experience for you, although I think there are LOTS of reasons why Linux offers a superior desktop experience these days, except possibly for anything related to XF86Config or xorg.conf. If you're working primarily on Windows, why not do development there too? Doesn't the "better desktop experience" translate into some kind of improved productivity? There are good Windows-only tools for Python development, too, like PythonWin and HAPDebugger. I definitely don't like Windows but I still occasionally boot into it to make use of some of those tools.

In other words, doesn't doing all your work in a terminal window negate the usability benefits of having a good "desktop experience"? If you're going to do that anyway, Linux has a variety of terminal emulators to choose from, many of them very good and very well-integrated into the desktop, as opposed to Windows which has (as far as I can tell) PuTTY and cmd.exe, which are workable and embarrassing respectively.

The major reason I find check-my-email-here-write-my-programs-there "workflow" so confusing is that it establishes a bunch of unnecessary dependencies. In these heady days of source control and email, it's hard enough to work offline if your intranet has a maintenance issue; by doing development on a different machine, you make it actually impossible. This becomes important if you send a developer to a trade show, where they need to work disconnected, either completely, or just in a location where it's inconvenient to set up VPN access.

Developing on your own workstation gives you an embarrassing amount of processing power, and a fair amount of determinism as to who is working on what when. If you're working on a remote machine in a large company, chances are it's shared, and there are potentially lots of other people binding ports, using up tons of CPU and disk at inconvenient moments, and generally creating impediments to getting work done. At Divmod we do have a few shared machines that we use for development, especially when we're pairing online, but even with such a tiny company I've had issues with bumping into resource conflicts with other developers - usually over port numbers, but occasionally over memory or disk usage too.

ecielam said...

It works well for me because I spend a fairly significant amount of time in Microsoft applications. Outlook, Word, Excel, and Project being some of the big ones. But like I said, I'm an executive, not a developer, so my work requirements are different (75-25 paper-dev breakdown, roughly)

I do develop on a dedicated machine, which does run a full X desktop. I can use it if I want to, but it's just not as efficient for me. So I use putty+ssh and develop that way. I use vim and not any sort of IDE, so that works well.

I do have developers with less paper to push that use a dedicate linux box and run Windows in VMWare to get email access, etc. It's more efficient for them to do their LAMP-style development that way. Most of our developers actually have two or three boxes they use for dev purposes, and how they use them is pretty much up to them. I provide them with whatever tools they want to keep them productive. And some guys have some wierd needs to be productive ($200 ergo keyboards?)

glyf said...

OK, that does sound pretty reasonable. I guess I was filling in your details with the absurd hypothetical situation a bit too much.

BTW, should I be flattered or worried that technology executives are reading my livejournal?

glyf said...

Well, the goal is to make sure that programs written to Twisted's API work properly cross-platform. We're getting closer to that goal, but the point of this post was, if there are people who work on Windows, why don't they help make Twisted seamlessly cross-platform? If you know Windows and you know networking and you know Python, the modifications required are trivial; most of the delay / differences have been due to the fact that nobody on the Twisted team _really_ knows Windows (with the exception, probably, of Justin J., but he is just one guy, and pretty busy).

grimmtooth said...

Sorry to post again on the same thing, but I just thought of something else about coding on Win32. Simply put: documentation. With the posix environment, documentation comes with. A good coder can put together a meaningful program within a couple of days from a standing start, given a that s/he knows how to use the "man" command.

With Win32, I think the only source of information outside of *buying* the SDK is the online knowledge base. It covers everything as best I can tell, but it's terribly inconvenient.

I honestly don't know if full docs are available with the free VS download that MS started publishing a couple of years ago. (I'd download it and find out, but not on my work box, that would not be appropriate).

So there's that, anyway.

Also, clarification; I don't think there's any *one* reason for the statistical skew here. More likely a number of contributing issues, such as this.

justus_p said...

At work we can run whatever we want on our desktop. But the day-to-day practicalities of interfacing with the company require some kind of Windows access. The company email system is Lotus Notes. (Which is also used for scheduling meeting rooms and requesting vacation time.) The expense reimbursement and bug tracking systems are ActiveX components. The version control system is ClearCase with the VOB server running on windows. (This means only Windows clients can use ClearCase's "dynamic views" functionality. Linux clients are limited to "snapshot views". Most people prefer dynamic views.) Nearly every piece of documentation is stored in Microsoft Office one way or another: phones lists are Excel documents, design documents are in Word, and so on. The corporate VPN only recently began supporting non-Linux clients.


A few people do run Linux but they all have either VMWare to deal with the above or have a laptop that runs Windows.


Our target platform is a PowerPC 440 GX running linux so it doesn't matter what you run on your desktop as long as the toolchain -- mostly opensource stuff: gcc, python, perl, etc -- can run on it. Most of us stick with Windows on the desktop.

drifter46and2 said...

I use securecrt at work to get at my linux box at home. I have to use windows at work, that is when I do most of my browsing. I find it indespensible to look at twisted docs while using vi. It actually isn't that bad of a way to develop. As far as Linux on the desktop, its usable, but I won't say its the most enjoyable experience.

glyf said...

Cool, thanks!