I like this proposal, and that the book will sufficiently differ from Learning Perl 6 and Perl6intro.com.
Especially the chapters "Splitting off into a module", and "Making a GUI..."/"Handling GUI", and "Running as a service", cought my eye, as such things are of great value to help people make those types of programs, that would impress people with the value of Perl 6.
I concur with Wendy. The proposed book is just what Iâ€™m looking for to go with teaching a course in beginning programming in the fall!
This is a book scope that I would be interested in reading, and following along with / running the project code as it is explained and developed in the successive chapters.
Will the book show in detail both how the project utilises a code development platform (such as Github) to build the application, and how the code is organised, developed and managed utilising an IDE (specifically Comma)?
If not, then I wonder whether this project presents an opportunity for collaboration (perhaps with Edument, or some group of experienced developer folk) to build, alongside the book, an "extended Case Study" utilisation document for the Comma IDE.
If successful this collaboration could perhaps form the template for future "Case Study"-type documentation projects.
The grantee's GUI tutorial[^1] was very well received by the users, suggesting the book would have decently-written content. However, the shortness of the 4-month total time to finish the book that's listed on the grant concerns me a bit. Would this end up being a rushed book full of errors and poorly-written content?
Questions for tyil: what would make this book unique, compared to the other nine Perl 6 books ( https://perl6book.com )? Why should a person read this book, as opposed to reading a couple of already-available docs and tutorials for sub MAIN, GTK, and modules?
I have similar thoughts as Zoffix. tyil's previous writings are good, so I support the proposal, but four months is not a long time.
One suggestion for a topic that I don't think has been covered in a book already is profiling. Perl 6 has a built in profiler, but I have definitely run across people who didn't know that, or how to interpret the results when shown it.
> Will the book show in detail both how the project utilises a code development platform (such as Github) to build the application
Github, GitLab and others are currently not planned to take care of.
> and how the code is organised, developed and managed utilising an IDE (specifically Comma)?
I am interested in using CommaIDE as the editor of choice, since it's made specifically for Perl 6 development. However, I have no access to CommaIDE as of yet. It also won't be available for no price by the time I plan to have the book done. Maybe this can be discussed with the creators of the IDE to see if something can be arranged. I think using a good editor is important to have a usable book for people being introduced to the language.
If possible, I'd like to use CommaIDE, which is not mentioned in the other books as far as I'm aware. I also try to focus specifically on things that make Perl 6 easy to use for real-world application development, such as USAGE info generation using POD declarators.
A beginning user could always teach themselves everything they'd want by reading the online documentation, but a collection of information to get just get started with to write applications is generally more preferred by new programmers.
My intent is to make the user capable to start making actual applications that they can use in practice, specifically terminal-based applications, GUIs and daemons.
The time I estimated (and money required) is a pure shot in the dark, I've never tried to write a full book. I'm not intending to write a "rushed" book, which is why want to open up the sources to everyone to leave comments as I work on it. This allows people to bring in feedback immediately to avoid sloppy written content. I've also marked the resolution of TODOs as a completeness criteria to ensure this.
For the time period estimation, please refer to my answer to Zoffix.
On the profiling topic, I know of its existence, but I've never worked with it. I can ask some local Perl mongers to show me how to use and interpret it and add it to the book. I'm not sure if this fits the target audience.
This kind of book is really needed to spawn a whole new generation of perl6 developers.
As already mentioned, estimating the duration of completing a book is quite hard, but you can do a lot of stuff in 4 months. So I guess that's a +1 for the proposal.
I have updated the grant proposal. The new version can be found here: https://p.tyil.nl/onuy. I have opted to change the time required for a couple reasons:
- I want to make use of Comma as the editor of choice. This would make an easy entry point for new programmers, as this is a full IDE geared specifically towards Perl 6. This means less trouble getting started. However, the community release of Comma is not until 2019. By extending the deadline, I can release the book after the community release.
- As pointed out in some comments, the time estimation may just have been very optimistic. I've spoken about this with some people on IRC as well. I've not written a book before, so I had no prior experience to help me make a good estimation.
- As pointed out in another comment, showing how to use Perl 6 projects with code sharing platforms such as Github could be benificial to include. Automated testing and building of applications is a common practice nowadays, so it would be nice if I could play in to that. Additionally, more people sharing more code could raise awareness about the language itself.
I do want to apologise for the inconvenience of updating the grant proposal, but I'd very much want this book to be useful to a large crowd of new Perl 6 programmers. I don't want to compromise on the quality of the book in any way, and saw this as the best option to take.
> I have updated the grant proposal
The URL in your comment is broken because the automatically generated link included the trailing period.
Here is the https://p.tyil.nl/onuy.
=item Amount Requested: