Grant Proposal: A Complete Perl 6 Course with Exercises

Category: Grants

Comments (11)


You got several critical comments on your previous version of this proposal ( http://news.perlfoundation.org/2019/03/grant-proposal-create-a-comple.html ). Could you explain what you did with the criticism, and what is different between the two proposals.

I did read both proposals, and I see several differences, but I like to hear your description of those differences. Also, why this proposal should be received better (and approved) than the previous one.

Just to be clear: I really support your proposal, I think it would be a very good thing to have done. I wonder why I did not do that with the previous one. Maybe I was elsewhere and too busy with other stuff... (sorry about that).


My comments on the Complete course grant

1. Increase the percent of video lectures (it is not clear to me how much of the lessons will be accompanied by video lectures, but i am assuming very little, and the the course is primary textual)

2. Publish the course to coursera or edx

3. If you will publish to coursera, make the code examples, mostly on one domain, for example data mining , or text parsing, this will make the course more attractive, and migh attract people interested in the domain, and dont mind using Perl6 as the tool


There were two main comments by the TPF committee and an extensive (rather aggressive) comment from Alex-Daniel.

In the updated proposal, I clearly answered what can be the simplest and reliable solution about hosting the course (answers complain 1).

I removed interactivity completely. It was a nice addition but if that seems difficult, let's skip it for now. It was never the main dish.

A more detailed structure of the course is given (answers complain 2), and more information about who is proposing it, and what I did for teaching other languages.

By the way, as the proposal was submitted about a month ago, let me add another point: my Instagram Python tutorial got 17.000+ subscribers since its launch in March 2019: https://www.instagram.com/amazing_python3/

Regarding Alex-Daniel's comment, if filtering out the rudeness and aggression, and to address the essence, it is all very simple.

First, the doc.perl6.org project has completely different goals and there is no point to mix it with the course and to claim that the course will be not aligned with the docs.

Second, I am offering *a complete product*. TPF either buys it or not. I am the author, and I take responsibility for the content from A to Z and I am happy to correct the errors found in the final product. What was suggested, is essentially creating a product collectively, where other people tell me what to do (and take no responsibility in the result). In this case, the course is not my product, and I am not willing to sign it.


The criticism was fully ignored.

In the comments I suggested numerous times to get in touch with people, mainly those who work on the documentation. Now, I've been busy during the last month, so correct me if I'm wrong, but as far as I know, no attempts to communicate with others were made. Moreover, I tried to contact Andrew using facebook private messages, but got no reply. The thing is, we now have a problem-solving repo which is a good fit for discussing big work, so I suggested to start a ticket there for some feedback before resubmitting the proposal. Unfortunately, this didn't happen. And then, given that the first grant proposal didn't go very well, I was expecting a draft of this proposal to be posted on IRC first for comments.

So we have a lonely wolf who is unwilling to cooperate with others when it comes to integrating their contributions with the rest of the project. I have no clue why that should get any funding. And I'm kinda pissed that the committee didn't explain that in their first rejection.

Even if we give in to the denial of Andrew and for the moment assume that the documentation is absolutely separate from the proposed work (it's not, both projects are very related even if we decide to keep them separate), still, as we will be maintaining both resources in the future (as I previously mentioned, it will likely be maintained by the same people), some compatibility is required. That is, maybe over time some sentences, paragraphs or even pages will need to be moved between the two projects. Unfortunately, we will have incompatible markup (markdown vs pod6) and even different licenses (Artistic 2.0 vs some Creative Commons license). It's a minor detail that can be easily revised, but at this point it's clear that Andrew will do everything his way without giving a single fuck for the work of others.

"The Perl Foundation can offer a different place of hosting static files if that will benefit the Perl community."

Nowadays there are people who are working on the perl6 infrastructure (rba and maettu), and I'd assume that if this thing somehow gets funded and there's a need to host it, they will provide guidance on how to do that. That's something you could've known if you asked. And you'll definitely need to talk to them about your project so that they make sure your stuff doesn't suddenly disappear. Speaking of which…

"The content will be uploaded to a GitHub repository" "For the potential future contributors, it will be accessible via pull requests."

Pretty sure that I'm understanding it right that there's no plan to put it under perl6 organization. So whatever corrections we have to make, we'll need to wait for Andrew to accept them, and then in the end we'll probably fork it because right now it is clear that any cooperation will be difficult.


I wish Andrew luck with their course, but I highly recommend the committee to keep that money for projects that will strengthen the Perl 6 project and its resources as a greater whole.


With the answer of Andrew, I am happy to support the proposal and I hope it gets accepted. Courses like this, with all the material that goes with it, will greatly benefit Perl 6.


+1 from me


Dear Ali,

My proposal is fully about text-based course. The main point here is not only the text but that it is accompanied by exercises and thus it can be used in a class room as a reference to follow.

There are no plans to create any video content here (although it may be a good separate thing produced by other people, and which can based on my materials).

Online course platforms such as Stepic or Coursera were mentioned in the previous version of the proposal as an additional item. Although I do not explicitly highlight it this time, I still think that an interactive variant (where you can type and run the code) will appear one day.

I like your #3 suggestion. I think this can be implementing via tagging the examples and building separate contents pages, where you can see everything related to the given domain.


For starters, I really appreciate the work Andrew is doing for the community. His advent calendar is excellent, the knowledge he's got on Perl 6 is encyclopedic, and he's doing great work with PerlCon. However, I have several reasons to not support this grant proposal.
* First, a course is the kind of thing that can very well be done (and funded) independently. You can send course proposals to Udemy, and even Packt. I did, in fact, submit a Perl 6 course proposal to Packt which was rejected because of my Spanish accent. Andrew will probably have no such problem, since his English is much better than mine. These companies do not, in fact, fund development of the course, so the person has to invest their time and get a delayed return on investment, but still, in the long run the returns will be probably better than an one-time lump payment by the community. This, for me, is the most important obstacle for funding this grant.
* There are priorities in the community. Of course, someone should take care of them and apply for the grant (although I guess TPF can be proactive about it), but right now the whole infrastructure is in disarray, with some sites (design.perl6.org) still down with no perspective to come back up. The rakudo/rakudo repo has 800 issues. perl6/doc 256. The community-maintained modules are slowly decaying, with only some time devoted to them from time to time. The ecosystem is a mess (Alex Daniel's words, not mine, but I kinda agree: https://github.com/perl6/problem-solving/issues/39). We need lots of resources all over, and a course is not going to solve any of them, and might make some of them worse (what when they go after the course to the documentation and find something missing or wrong? What if they raise an issue in rakudo and is not addressed?)
* What will be the objective of the course? If it's to increase the size of the community, I don't think it will fulfill that. If you want to learn Perl 6, there are already many resources available to do so, including a supporting community in the IRC channels or in StackOverflow. Before learning a new language, you need to _want_ to learn it. A bit of marketing (or maybe a lot) is what I think we need, because most of the problems mentioned above could be solved with more human resources.
* Related to that, but not only, a course is only useful insofar it gets you something that tutorials or a book will not: a certificate. It mentions that it's a step by step flow with small lessons with many exercises. But unless you're willing to correct those exercises and give feedback, that's no different from a book. Or a book with accompanying video lessons, if that's what's going to be done. Point is (and this is related to my main point above) without certification, course tutoring or any kind of certification, a course is nothing more than an extended tutorial, and not much more useful than that.

Finally, as a person whose day job is creating and delivering courses, I do have many objections about the course itself. I'll start a different set of bullet points here
* A Perl 6 course shouldn't be addressed to Perl 5 users. The indented target audience is fuzzy, and it's not clear if you need, or need not, have a background in programming, or what kind of background you will need to have. A course needs to have a clear target audience in terms of level and knowledge, as well as amount of time they can devote to the actual course. I don't see that kind of thing in this proposal.
* The structure of the course is "classic" in the sense that it hangs on the syntax, with syntactic groups explained in turn, and starting with the infamous "hello world" (1.4, simple input and output). That's never the best way to learn. Modern languages are not designed to learn the syntax, but to learn the concept and look the syntax up somewhere. Unfortunately, main concepts in this course (like functional programming) are left for Part 5. You can't explain a block (which is essentially a lambda) without explaining first concepts in functional programming (in fact, you can explain no P6 without explaining first functional programming). You can't explain data types (part 1.3) without explaining object orientation, because every object in Perl 6 is object oriented. You can't explain subroutines (part 2.2) apart from data types (part 1.3), because routines are first-class objects in Perl 6 (it's functional). Also, you can't explain the MAIN subroutine (part 1.4) without, well, explaining what's a subroutine (part 2.2). These are just a few examples. The fleshed-out course might have more, or maybe less. But anyway, course design is something that nowadays is based in skills and concepts, and I don't see the concept map or flow explaind here.
* There's a lot of material which would be arguably necessary and which is missing. For instance, testing or creating whole modules for releasing them to the ecosystem. JSON does not seem to receive a single module, and it's needed to understand how to configure almost anything, and it's one of the most used modules in the ecosystem. Smartmatch is also a very important concept and is not receiving any attention, with Junctions (which is also a very important concept) relegated to the last part of the course. Typeclasses are not mentioned (or type smileys). Captures are only mentioned in the context of regexes, not signatures. And so on.

Most of the things I say above are arguable, but their main point is related to what Alex Daniel has said above: a course is a very important thing not to share it with the rest of the community and presenting it as a take it or leave it kind of thing. Even if we all agreed that we need to spend 10K on a course and that you are the right person to create that, we might not agree that *this* is the course, in every aspect of it. Of course, the result of a course after community feedback might be something you might not feel comfortable with, but, again, this is a community-funded project, so you might as well listen to the community before the proposal.

So, unfortunately and as I say at the top, and I'm really sorry, I don't support this grant proposal.


While I applaud Andrew's efforts to publish Perl 6 material (and everyone's effort publishing Perl content), I have trouble understanding what's the added value in comparison with the already published books, including Andrew's.

Several books take several approaches to help a student to learn Perl 6 (summarized here by moritz: https://perl6book.com/). (I even see JJ published a new one on Amazon in the meanwhile (with a low price): https://www.amazon.co.uk/Learning-program-Perl-Getting-programming/dp/1521795789.)

If Andrew's book was commercially published I would probably end up buying it (I have several books), but I don't think this should be done through a grant. Echoing JJ And Aleks-Daniels, the Perl 6 community needs to deal with other problems so it can later welcome a higher volume of new people.


To address something JJ mentioned in his comment.

If you feel there are other items that are worthy of grants, please help them get submitted so we can consider them!

The GC is here to get funding to deserving projects, but we can only consider the ones who have submitted grants.

If you don't think they make sense as a grant (for example maintaining infrastructure), then please reach out to someone (myself included) at TPF to discuss:

https://www.perlfoundation.org/whos-who.html


It seems it was approved - http://news.perlfoundation.org/2019/07/grants-mayjun-2019-votes.html

What I would love to see is a complete video based course on something using Perl6. Something that is to learn X domain, but also you learn Perl6. Lets say writing web crawler, Search engine, distributed database, self driven car or whatever :)

Well said Ali! ++


Sign in to add comment