Comma

Why is it called Comma?

It is named after the Comma butterfly. Camelia, a butterfly, is the logo and mascot of the Perl 6 community. We went through hundreds of butterfly names, and Comma came out on top: it's short, memorable, was not used by an existing IDE or related product, and of course "," must be one of the most commonly typed characters when programming in Perl 6.

Is Comma a standalone tool or an IntelliJ (or WebStorm, or ...) plugin?

We provide both. The standalone IDE is for those who are primarily developing in Perl 6, while the plugin is more suitable for those who want Perl 6 development support in an existing IDEA-based IDE (IntelliJ, WebStorm, and so forth).

If you're not sure which you want, or you think you'll want both, we've got you covered! A subscription includes both, and you can get updates on both as long as your subscription lasts.

Why do I have to be a supporter (e.g. pay) for Comma?

Developing a fully-featured Perl 6 IDE is a significant investment. The supporters program helps to cover the costs of Comma development; in return, those supporting Comma get to have it sooner.

Think of it a bit like a KickStarter, except that we've already taken the initial risk ourselves and so you get a working tool from day 1. Of course, this is just the start, and we'll be working to improve Comma in the months and years ahead, to meet the evolving needs of Perl 6 developers.

What is a Comma Supporter subscription?

A Comma subscription provides access to the latest Comma releases, along with support from the Comma development team. When the subscription period comes to an end, you may still continue to use the Comma releases that you have, but will not have access to newer releases.

From 2019, we will offer a free Comma Community edition, along with Comma Complete (with more features) under a 12-month subscription model. A Comma Complete subscription will provide access to the latest Comma Complete releases, along with support from the Comma development team.

We recognize that those who are buying a Comma Supporter subscription will initially receive a product with many features still in development or to be developed. Therefore:

  • Anyone buying a Comma Supporter subscription before 30th September 2018 will receive a 24-month subscription for the price of a Comma Complete 12 month subscription
  • Anyone buying a Comma Supporter subscription after that date will receive an 18-month subscription for the price of a Comma Complete 12 month subscription

The Supporter Program will end in the first quarter of 2019. The remaining time on a Comma Supporter subscription will be translated into a Comma Complete subscription. Once that ends, it will be possible to:

  • Keep using the latest Comma Complete release you have
  • Freely get updated versions of Comma Community
  • Buy another 12-month Comma Complete subscription, to support Comma's ongoing development and get access to releases with the full set of features

Will there be a free Comma version?

Yes. In 2019 we will start to offer:

  • A free Comma Community edition
  • A Comma Complete edition available under a subscription model

Comma Complete will, as the name suggests, include more features than Comma Community.

Is Comma open source?

In the process of producing Comma, we have already made a number of significant open source contributions:

  • Debug (including remote debug) support for MoarVM
  • A Perl 6 client library and command-line interface for the MoarVM debugger
  • The Java::Generate module, which we developed as part of building our custom lexer/parser engine

We did not yet decide on a strategy with regards to a release of Comma itself under an open source license. We firmly believe that code developers deploy into their production systems should be open source, thus why Cro was an open source product from day one. As a development-time only tool, there is less urgency in Comma being released under an open source license. Furthermore, since we intend to provide both a free of cost and a paid version of Comma, we will need to work out a good way to open source the Comma Community features, without the Comma Complete ones, while also working out a contribution policy that doesn't impede us using contributions to Comma Community within Comma Complete also. These are solvable problems, but will need time.

We are aware that an open source release of Comma Community will greatly ease the path for those who wish to write Comma plugins, which is something we are interested to see happen. In fact, this will be our main incentive in doing the work to make an Comma Community open source release happen.

Why is the parser based on the Perl 6 grammar rather than being the Perl 6 grammar itself?

The main reason is that the Perl 6 grammar can happily reject invalid programs (in fact, that's part of its job), whereas a parser serving an IDE needs to accept every program and try to recover in the face of malformed code, which it will be faced with nearly all of the time as the developer types and edits. We also did some things, such as expression parsing, a bit differently, to fit better with the way an IDEA parser is expected to work. Further, since we can't assume we have a perfect parse of dependencies, but should try to show some reasonable highlighting anyway, we apply some heuristics to differentiate type and routine in that case. Finally, we don't try to run `BEGIN`-time code, which a real Perl 6 parser would.