I'm reviewing Jenness and Cozens' Extending And Embedding Perl and Tregar's Writing Perl Modules For CPAN for the next issue of The Perl Review, and I came across one of my pet peeves about much of the Perl community: Ignoring Windows users.
For example, both books discuss the importance of the make utility in the early chapters. In Jenness & Cozens, a footnote says only "On Microsoft Windows and other operating systems that lack compilers as standard, you'll need to install a version of make." Tregar's book is far more helpful, and provides a URL to the Microsoft website for a download.
Comments? Am I full of it? Any Windows users feel like they're getting short shrift?
I'm beginning to feel that Cygwin Perl is getting there. I use CPAN from my Cygwin Perl installation of 5.8.0 and most everything just works.
So, I run Perl, with make, on Windows with no problem.
I dunno, but expecting authors of modules that use XS to 'make' (pun intended) sure that their stuff runs under Visual.NET C++ is too much to ask. With Cygwin, most XS modules just... work... Or, if they don't you have the tools at hand to figure out why. With ActiveState Perl, if a module doesn't work, you have to be steeped in the Unix AND the Windows world to figure out why.
WARNING: This is an uniformed rant, because I actually haven't done any XS with ActiveState Perl, but I suspect I'm right from things I've read.
Re:Well, with Cygwin Perl...
lachoy on 2002-08-26T03:58:49
IME, if you have the Visual C++ environment installed properly, XS modules build like you'd expect. There are plenty of exceptions -- using Curses or other libraries not generally found on Win32 -- but overall it's generally as simple as on Unix. Because Win32 is monolithic, you can mostly rely on kind-hearted souls to create PPM packages and they'll work as expected as well.Re:Well, with Cygwin Perl...
petdance on 2002-08-26T04:42:23
There are a couple of things wrong with that. First, not everyone has Visual C++. In fact, I'd bet that most people don't have it.As to the PPM packages, those are always terribly behind the times. If anyone wants to be involved in the development of, say, HTML::Lint, which is updated constantly, they're out of luck without a version of make.
All that is what makes it so heartening to know that 1) nmake is available from MS, and 2) that Tregar's book refers to it.
Also, I don't count Cygwin as Windows. It's Unix running on Windows. ActiveState's Perl is a fine fine product. It's just that it's often left behind.
Re:Well, with Cygwin Perl...
lachoy on 2002-08-26T05:55:32
Oh sure, clearly most people don't have VC++. It's just that there's a perception that Perl XS modules are difficult to build on Win32 even with VC++. (Not that you have this perception, just what I was responding to.) Not true.
As for keeping up-to-date: I'm a fairly infrequent Win32 user, but it seems that ActiveState is better than they used to be. And there are different repositories -- like the one Randy Kobes runs, or the one I run -- focused on particular niches.
I entirely agree that most people don't know that make (in whatever form) is available on Win32, and I wish the nmake.exe binary were distributable so it would come automatically with AS perl.
Re:Well, with Cygwin Perl...
djberg96 on 2002-08-26T20:59:15
There are free C compilers for the Win32 environment. I seem to recall using LCC at some point. Pretty sure it comes with some sort of make utility but it's been a while.Re:Well, with Cygwin Perl...
jordan on 2002-08-26T17:34:00
- Also, I don't count Cygwin as Windows. It's Unix running on Windows.
Cygwin is not for everyone, for sure. But, if you are familiar with the Unix world and you want to do development on, say, HTML::Lint, Cygwin will allow you to do that.
I just tried it and HTML::Lint installed and tested straight away. There was something funny about how LWP wasn't able to fetch the modules, but wget was. I think it's the firewall/proxy here at work, because this works fine from home.
- ActiveState's Perl is a fine fine product.
Agreed. I wouldn't foist Cygwin on someone who wasn't very familiar with Unix and the toolchain. The docs and installation of Activestate are really top drawer.
But, nobody who wants to develop code that might be ported to Unix need be left behind if they are on Windows and don't have make when Cygwin is around.
Re:Well, with Cygwin Perl...
barbie on 2002-08-27T19:37:23
The thing with nmake is that it doesn't get advertised very well. Having no Visual Studio of any kind on my Windows box, nmake has got a lot of use out of me, but I'm always surprised to discover how few novices know of it's existence. It would be nice if AS could add a link like they do to the MS installer.As for PPM packages being behind, I have coped very well with the current pace of AS. I often find it a bit unnerving if code is rapidly changing
... what is a stable version to work against? At least AS seem to have a reliable repository of code.
I can't help it. I feel almost dirty every time I tell people that I know such-and-such about Windows this-or-that, or that I know how to code in VB, etc., because I get the very real feeling it reduces any "geek cred" I might have accumulated with them.
I've just kind of gotten used to reading a book and realizing that Windows isn't something the author likes (or is even familiar with). It's part of the reason I'm planning to be switched to all non-MS software at home by 2005 -- all too often, the best books are written by someone who's disdainful or at least neutral in respect to the MS product line.
Re:Windows
jdavidb on 2002-08-26T15:27:19
I've just kind of gotten used to reading a book and realizing that Windows isn't something the author likes (or is even familiar with).
I'm betting familiarity is a major reason, maybe the primary reason, Windows gets "the short shrift" in Perl books. I use Cygwin, but I couldn't tell you how to build a module on Windows "natively." If I set out to write a book about building modules, rather than doing cursory research into the subject, possibly picking up some misunderstandings, and tacking on a section or appendix about building under Windows that is inadequate and incorrect, I'd probably be more likely to say, "I'm sorry; I just don't know how to do this on Windows and don't want to lead you astray."
But it's not because we hate or are trying to ignore Windows users. We simply didn't think to include more information. (Maybe there's also an implicit assumption that if you're doing serious development on Windows, you either have make installed already or you're using Cygwin.)
I also don't know very much about developing on Windows, so it would be Bad to write a lot about it.
There's nothing in the book at all about developing on the Mac. I hope this doesn't mean I hate Mac users, especially since I am one.
But yeah, I agree this was an error, and I will have it fixed in errata and any subsequent editions.
Re:You make a fair point
petdance on 2002-08-26T17:53:07
In my mind, Cygwin is not Windows. Cygwin is Unix on Windows. If I'm a real Windows/DOS programmer (and I was at one point), then I want to use my Perl natively, not thru the Cygwin shell.Also, note that make isn't just for C developers. In the context of much of your book, Simon, (which I'm enjoying a great deal), C and make are going to go hand-in-hand. However, for people who want to write and/or use pure Perl modules, a lack of make leaves them high and dry.
Many times I've had people ask me, as the maintainer of MARC::Record, how to install MARC::Record without make, or worse, when ActiveState is going to put up a PPM, as if I have any control over that.
I guess the BIG issue is this: Part of what we as the Perl Community need to do is actively embrace the Windows community, and help them out. Yes, Windows is not Perl's native land, but let's all work on making it as easy as possible for them.
Maybe someone should do a pure Perl version of make...