Nathan Torkington writes an update to the drive to sponsor Damian Conway for a year. Go to http://registration.yapc.org/ to find out more.
As of midday Wednesday, regular contributions to the "Sponsor a Hacker" project total just over $16,000 of the $27,500 needed. At $27,500, Blackstar's matching contribution will take it up to the $55,000 it'll take to get Damian full-time next year.
We, the Perl community, only have two more days to get this figure to a point where it looks likely that the rest can be made. Damian's University wants to know whether he'll be out on Perl work (please please please) or teaching undergradutes how to use C++.
If you haven't pledged to the fund, please do so now. This is our chance to start a new model of user-community involvement in open source projects. This way we get a leading light of the Perl community working on Perl, with no possible corporate taint. If your company uses Perl and wants to return something to the community, a $1000 donation would be an excellent way to show it.
To recap: we still need another $11,000. Your pledge will bring us closer.
Thanks,
Nat
if the sponsorship happens, i hope a better website will be put up, perhaps a weblog/diary. this could details what damian is thinking about doing with the year, provide a forum to ask him question (which he would be free to ignore), maybe a central calendar of speaking engagements.
thanks
kellan
This isn't antagonistic at all. The fact is that YAS is still _very_ young and has not even selected its 'true' board yet. The work done so far has been mostly through Kevin's efforts, with help from Kurt DeMaagd (and others I'm probably slighting).
Once this is resolved (hopefully with successful results) I'm sure we'll be able to take the next steps, which include selecting our 'real' board (currently the board is Kevin and Kurt but this is just temporary.
After that, hopefully people will pitch in to help with the web page and such. And its never to early to start thinking about YAPC::North::America 19101 too!
-dave
Well, first of all, it's not too bad. We can take the money that was collected, and then collect some more in order to finance Mr. Conway for the 2001/2002 scholastic year. He might miss some of the perl 6 action, but the perl world will survive I think.
The real question is if we, or more precisely Damian Conway actually want to do this? This reminds of what Richard P. Feynman said about the Princeton Institute of Advanced study. If you are not familiar with it check the following URL:
http://www.dartmouth.edu/user/samwick/feynman.html
What he was actually saying was that since the people who are present there were releaved of their obligations, they became less productive.
A better approach, IMO, would be to offer Dr. Conway some job that has to do with perl. I don't suppose a job as a CGI programmer would be satisfying enough for an academe like him, so I guess we need to think of something in the University or at least in High School teaching.
I think perl has a great potential as a language for learning about programming (i.e: "Intro to Computer Science in perl") or as a vehicle for learning various different topics such as advanced programming, databases, distributed programming, data structures, graph algorithms, text processing, and others.
Of course convincing the academia that perl is a good language for such purposes is a different matter, and I'm not sure Conway's university in particular will want to be a pioneer in this field.
Well, first of all, it's not too bad. We can take the money that was collected, and then collect some more in order to finance Mr. Conway for the 2001/2002 scholastic year. He might miss some of the perl 6 action, but the perl world will survive I think.
Err...that's what we're doing. Raising money to fund my research for 12 months.
The real question is if we, or more precisely Damian Conway actually want to do this?
Oh, yes! Damian Conway definitely wants to do this.
This reminds of what Richard P. Feynman said about the Princeton Institute of Advanced study...that since the people who are present there were releaved of their obligations, they became less productive.
Feynman was a great physicist, but not a great psychologist. Not all people are externally motivated. Some of us are compelled to strive, without the need for cattle prods.
Besides, what makes you think this funding comes without obligations? Many generous individuals within the Perl community have contributed large amounts of their own hard-earned cash to make this happen. Companies like Stonehenge, VALinux, and O'Reilly have each given us $1000's of dollars. Blackstar has given us nearly $30,000!
To their great credit, every dollar was donated "no strings attached". But the trust that implies only makes me feel more obligated to give everyone who has contributed the best possible value for their money.
Apart from the fact that it would be immoral to accept this funding and then not produce, it would also effectively ruin our chances of making this kind of "community patronage" an integral part of future Perl development. I am not going to be the guy they point to as proof that it doesn't work.
A better approach, IMO, would be to offer Dr. Conway some job that has to do with perl. I don't suppose a job as a CGI programmer would be satisfying enough...
"Not that there's anything wrong with that!"
You're correct: CGI programming is not what I want to do. I regularly decline job offers of that type (and for considerably more than $55K per year
...so I guess we need to think of something in the University...
That's what we've done. The money we've collected will be used as a grant to my University, specifically to fund me as a full-time researcher for Perl.
...or at least in High School teaching.
You credit me with far too much fortitude, if you think I would ever take on that supremely demanding, utterly unappreciated, and often physically dangerous role!
Perl certainly has potential for teaching advanced algorithms, but it is not IMHO a good first teaching language. Take a look at The Seven Deadly Sins of Introductory Programming Language Design and then count how many of them Perl commits.I think perl has a great potential as a language for learning about programming (i.e: "Intro to Computer Science in perl") or as a vehicle for learning various different topics such as advanced programming, databases, distributed programming, data structures, graph algorithms, text processing, and others.
As Larry has pointed out, Perl wasn't designed to be easy to learn; it's designed to be easy to use, once learned. That makes perfect sense, since you learn it once, but use it far more often.
Of course convincing the academia that perl is a good language for such purposes is a different matter, and I'm not sure Conway's university in particular will want to be a pioneer in this field.
You're exactly right. What many university's teach nowadays is almost entirely driven by industry's stated needs and student's expectations. So they teach Java and C/C++.
What Perl needs, in order to make inroads into academia, is to make inroads into the corporate and student consciousness. To do that, it needs several things, one of which is someone like me devoted to showing how powerful this programming language can be: coding cool software, writing about it, and getting out there to spread the word.
And that's the plan for 2001.
<rant>How do I get to include the original message in this reply?</rant> Oh never mind.
Well, first of all, congratulations for getting the complete grant after all. Here are my comments on your comment on my comment.
1. What I wanted in my suggestion was to delay the funding to the next year (Re: "2001/2002"). The original plan was for this to take place this year which is the scholastic year of 2000/2001.
2. I'm not certain whether Feynman was a great psychologist or not (BTW, most of the psychologists who were considered great were actually frauds), but I happen to agree with him at this point. My (hopefully constructive) suggestion is that you will make a list of things that you will work on through the next year: like writing (another) book on perl, prepare slides for a university course that will use it, work on a useful module, re-write Slashcode from scratch (something I'm planning to do), do something else which is perl-related, or something else which is work-oriented but not perl-related. Keep yourself busy.
3. I used to work as a CGI programmer, and it was OK, although I now consider web-publishing to be the back-yard of the IT world. If working in web-publishing is the only job I found, I probably would take it, but I hope to look for something more stimulating, whether perl-related or not (probably not). I'm not planning to work for the academia for a long time though.
4. I think perl is a good first programming language, (although Python may be better), or at least certainly much better than C/C++ or Java. The reason for that is that you can easily teach a subset of perl, and then expand on it as you need it. Perl's weak typing also make it much easier on programmers. I don't have the time at the moment to explain on it so sorrt?
4. Perl's acceptance by the industry - some of perl's features make it hard to be used commercially. Namely: weakly typing (which makes it slow), being a symbolic language (which also makes it slow, but also makes it harder to protect source code), and the fact that it is usually interpreted.
I have used Argo/UML, which is a Java program, and I was not able to run it side by side with GNOME, without experiencing delays. And my computer has 64 MB of RAM and 1 GB of swap, and I was using IBM's JDK for Linux. Now imagine what happen if this thing was written in perl...
Yes, I know that soon computers will have more RAM and perhaps more speed, but like I said, I'm not sure if perl will ever become the main language used by programmers. But it still a good language that can be used in the academia, becuase it enables a progammer to write, run and debug, a lot of code quickly without too many hassles and with a lot of programming power.
Cut and paste works for me.
I'm not certain whether Feynman was a great psychologist or not (BTW, most of the psychologists who were considered great were actually frauds), but I happen to agree with him at this point.
Any suggestion that states that people who are relieved of obligations will necessarily become less productive is self-evidently false. As Damian pointed out, some people don't need someone holding a paycheck, noose, or 10-ton weight over their head to be motivated to produce. Some people, like Damian, are motivated by other factors which don't change an iota just because the source and type of funding changes. If you think Damian's motivation or productivity will be lessened by this, you are, simply, wrong. In fact, I'd not be surprised if it increased, for the reasons he gave. That said:
My (hopefully constructive) suggestion is that you will make a list of things that you will work on through the next year:
That would be a good thing, and I believe it is part of the plan.
re-write Slashcode from scratch (something I'm planning to do)
Why would you want to do that? I don't understand.
Yes, I know that soon computers will have more RAM and perhaps more speed, but like I said, I'm not sure if perl will ever become the main language used by programmers.
I'm not sure it isn't already.
Thank-you.Well, first of all, congratulations for getting the complete grant after all.
What I wanted in my suggestion was to delay the funding to the next year (Re: "2001/2002"). The original plan was for this to take place this year which is the scholastic year of 2000/2001.
Aha! The source of our confusion is revealed. I'm an Australian academic. Like your academic years, ours run from early Autumn to late Spring. Unlike yours though, our antipodean Autumn is March and our Spring is October. So our academic years are calendar years. That's why this grant runs (just) through 2001.
Great minds think alike. There is already a preliminary version of just such as list.My (hopefully constructive) suggestion is that you will make a list of things that you will work on through the next year: like writing (another) book on perl, prepare slides for a university course that will use it, work on a useful module, re-write Slashcode from scratch (something I'm planning to do), do something else which is perl-related...
I think perl is a good first programming language, (although Python may be better), or at least certainly much better than C/C++ or Java. The reason for that is that you can easily teach a subset of perl, and then expand on it as you need it.
Having taught introductory programming to several thousand freshman, in several languages, for the past 10 years, I can assure you that teaching a subset of a language is not a successful strategy. I have tried that approach on three separate occasions, and it just doesn't work.
As I explained in the "Seven Deady Sins" paper, it fails for two reasons:
Perl's weak typing also make it much easier on programmers.
I believe it's a mischaracterization to describe Perl's typing as weak. Weak typing is the kind that is inconsistently applied, or subvertible. For example, C's indiscriminate cast mechanism, or its void* (anti-)type.
What Perl has is dynamic typing, which is great for the experienced programmer, but pure hell on beginners. For them, static typing works much better: "see, this variable stores an integer, because up here you declared it integer, and so it will always store an integer..."
some of perl's features make it hard to be used commercially. Namely: weakly typing (which makes it slow), being a symbolic language (which also makes it slow, but also makes it harder to protect source code), and the fact that it is usually interpreted.
I don't think this is so. Perl is widely used, it just isn't talked about. That's our problem. Management want to use Java (because Sun has spent billions of dollars convincing them they want Java); Sysadmins and programmers want to use Perl (because they have to actually get the job done!)
One the my (self-appointed) roles next year will be to try and increase Perl's profile on management radar, by being a serious academic who's also a "loud and proud" advocate of Perl.
some of perl's features make it hard to be used commercially. Namely: weakly typing (which makes it slow), being a symbolic language (which also makes it slow, but also makes it harder to protect source code), and the fact that it is usually interpreted.
I don't think this is so. Perl is widely used, it just isn't talked about. That's our problem. Management want to use Java (because Sun has spent billions of dollars convincing them they want Java); Sysadmins and programmers want to use Perl (because they have to actually get the job done!) One the my (self-appointed) roles next year will be to try and increase Perl's profile on management radar, by being a serious academic who's also a "loud and proud" advocate of Perl.
</quote>I didn't said perl was not widely used, I just said it cannot be used for every purpose you'll need. For example, writing gcc in perl is a bad idea. Or for that matter, my Freecell solving program (check here) would not have been able to solve a 1000 boards in 12 minutes had it been written in perl instead of ANSI C. So, if you want to have speed, and/or not to reveal your source code, then perl is not suitable for you. And in the commercial world that is 90% of the cases from which corporations are expecting to make money.
What I do agree is that there is too much hype about Java. Sun has the right to promote Java, but many people over-estimate it. Hell, I even think perl is much more suitable than Java for programming most web applets, the only problem being that perl's applet technology (if existant) is not built into most browsers. Maybe someone should hack it into Mozilla...
Oh well, who is John Galt?
Or for that matter, my Freecell solving program (check here) would not have been able to solve a 1000 boards in 12 minutes had it been written in perl instead of ANSI C.
I smell a challenge
So, if you want to have speed
I'd almost be willing to wager someone could, using modules from CPAN, do the job of your freecell solver as fast or faster using Perl. And of course, speed is relative to the problem set and the use pf the code. You will not get noticably better speed in a C web backend than you will from a well-designed mod_perl application. Sometimes, C is required for speed. But sometimes, even when speed is important, going to C gains you no speed.
So... Perl in Uni can be a very good thing, but NOT at first year level.
I'd amend that to say that it MIGHT not be good at a first year level. It certainly was great for me when I learned Perl as my "first" language (well, not including BASIC, 10 years previous).
<quote> I'd almost be willing to wager someone could, using modules from CPAN, do the job of your freecell solver as fast or faster using Perl. And of course, speed is relative to the problem set and the use pf the code. You will not get noticably better speed in a C web backend than you will from a well-designed mod_perl application. Sometimes, C is required for speed. But sometimes, even when speed is important, going to C gains you no speed. </quote>
Well, when I first wrote this program, I wrote it in perl, and it was slow at hell. It took it several minutes to process a couple of dozen of iterations. I did not write very well (I should have serialized the states, used vec() to manipulate them, and store the previous states of the DFS scan in a hash instead of a linear unsorted array), but still there was a lot of overhead involved. When I converted it to C using a sorted array with a sort margin it was much faster, and exited after a fraction of the time. Eventually I managed to solve some boards while implementing only part of the functionality I wanted the program to have. When I implemented the rest of the functionality it was much faster.
In the versions since then, I implemented state storage using a balanced binary tree or my own customized hash-like collection, which made it at least 50 times faster. And that's just the broto speed, when invoking several processes, not the net speed.
The reason why C will always be faster is because I nest a lot of loops inside each function. (I think I sometime reach at least 8 of them). And loops in perl are much slower than C.
Not to start a perl vs. C holy war here, but since the perl interpretr is written in C, it makes sense that you can always write a C program that will do the same thing as the equivalent perl program at least as fast. If you know how to effectively program in C, that is.
Theoretically, I can create XS bindings for my C program, put it on CPAN and claim it is now a perl program that runs equally as fast. But that's cheating because I'm using C. Had perl been JIT compiled (spitting on the floor three times), then maybe it would have been faster, but since it isn't, it cannot handle some tasks efficiently enough.
There are always trade-offs in life, and sometime you have to trade speed for ease of use. If you want to prove the opposite, then I challenge you or whoever is reading this, to write an equally fast or faster program in perl using the same algorithm. Freecell Solver is distributed under the public domain so the source code is at yours disposal.