HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
moritz
json
Perl 62012–2025
moritz / json

json

A tiny JSON parser and emitter for Perl 6 on Rakudo

6Distinct people
15Mentions
0Explicit recommenders
80GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A tiny JSON parser and emitter for Perl 6 on Rakudo

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 8:59:20 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year15 dated mentions

Observed mentions: 2012-10-08 11:10:51 UTC to 2025-06-28 21:22:52 UTC.

01232012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC101
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC000
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC000
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC303
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC202
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC303
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202

What Hacker News says

3 sources
> [lang X] doesn't handle [basic math] correctly among other things. From a recent talk[1], what are x, y, z in the following? x = 7 ÷ 2; y = -7 ÷ 2; z = .1 + .2 - .3 x y z 3.5 -3.5 0 # human 3 ? tiny number # c89; ? depends on compiler 3 -4 tiny number # ruby 3 -4 tiny number # python 2/3 3 -3 0 # bc 3.5 -3.5 tiny number # perl5 3.5 -3.5 0 # perl6 ---- It isn't just basic math. How "long" is the following string? ปฏิบัติจริง 7 characters # human len("ปฏิบัติจริง") = 33 # python 2 len("ปฏิบัติจริง") = 11 # python 3 "ปฏิบัติจริง".length = ? # ruby (For Ruby, I've found "the core language does not provide a way to count [human percei
Read the rest
ved characters]". [3] Is that still correct or out of date?) ---- > Perl suffers from having too many magical operators that makes it hard to reason about a snippet of code. I feel Python strikes the right balance. To quote Larry Wall, "Perl 6 ... has been rethought and rebalanced on every level".[4] It might be interesting for you to pick a couple Perl 5 operators that you consider too magical; then we could look at the merits and demerits of those ops in Perl 5 and their equivalents in Python and Perl 6. > It's very easy to express ideas I have in mind without worrying about the details [of Python, now, and Perl, back in the day] This, of course, has explicitly been a deliberate focus of all the Perls. Part of the point of Perl 6 was to remove the bits in Perl 5 that were problematic (including some "too cute/weird" stuff) and to introduce much nicer higher level abstractions (eg grammars instead of just regexes[5]). ---- I've long encountered vocal folk who underestimate or misunderstand Larry Wall and Perl to an absurd degree. Perl has been focused for over two decades on making it easy to get the right results when doing basic practical things (like integer division and counting characters) and, imo, that ought to be obvious to anyone who looks at the matter carefully. ---- [1] http://www.slideshare.net/Ovid/perl-6-for-mere-mortals and https://www.youtube.com/watch?v=lpu-3UF_b48 [2] http://www.reddit.com/r/perl/comments/2szv7m/beginner_progra... [3] http://unicode-programming.readthedocs.org/en/latest/count-c... [4] http://www.infoworld.com/article/2882300/perl/perl-creator-l... [5] https://github.com/moritz/json/blob/master/lib/JSON/Tiny/Gra...
In The Three Great Virtues of a Programmer: Laziness, Impatience, and Hubris
= About Python regexes = Aiui "The Future of Python Regexes" SO answer at http://stackoverflow.com/a/7066413/1077672 written by regex (and Perl) expert Tom Christiansen (and last updated by him in 2012) is still good info. In brief, https://pypi.python.org/pypi/regex appears to be the path forward for Python. This engine is much closer to the power and Unicode compatibility of Perl 5's default regex engine. = About Perl 5 regexes = Aiui the default Perl 5 regex engine is significantly faster than the 're' regex feature included with Python 2. I don't know how it compares to the new 'regex' module. Regexes in Perl have the advantage/disadvantage that they are syntactically integrated in to the language (a disadvantage if you don't like it being integrated). Since Perl 5.10, a different regex engine can be plugged in and used without requir
Read the rest
ing any change in code that uses regexes (unless an engine uses a different syntax of course). (But it takes a lot of effort to package a regex engine up for use with Perl 5.) A given regex engine can be extended using the overload module. Extending is relatively easy. = About Perl 6 regexes = A whole new ball game, two decades ahead of Perl 5 regexes. http://en.wikipedia.org/wiki/Perl_6_rules http://doc.perl6.org/language/grammars https://github.com/moritz/json/blob/master/lib/JSON/Tiny/Gra... Generally matches Perl 5 regexes feature-for-feature but with a much cleaner syntax. More importantly, unifies regexes and grammars. Currently way slower than Python or Perl 5 regexes. Supposedly will eventually (5 years? 10?) incorporate all the key optimizations in the Perl 5 engine and become faster than Perl 5 regexes.
In Why is perl losing its touch?
One feature which I believe is distinctly available only in Perl 6 is it's grammar feature. ( think class/method based regular expressions that look similar to BNF ) As an example look at this Perl 6 grammar for JSON: https://github.com/moritz/json/blob/master/lib/JSON/Tiny/Gra... Perl 6's best feature is that it combines many features from many languages in a way that allows combining them cleanly, and without any of them feeling like they were glommed on. (unlike Perl 5's object system which was inspired by Python's object system) If you can get past the syntax differences from other languages, and program in it for a while, you may never want to go back to any other language. If you can't get past the syntax, please say that you "don't like the syntax" instead of "it's unreadable" or "it's a write-only language" or "it's difficult to l
Read the rest
earn". ( I for one found it quite easy to learn, and can read it quickly. ) --- Really can you make all of the following examples clearer in any other single language? constant powers-of-two = 2,4,8 ... *; # an infinite deductive list # perhaps that would be more clear as: constant powers-of-two = 2, 4, 8, 16, 32, 64 ... *; # list of pairs using the zip meta-operator (Z) # combined with the pair constructor operator (=>) my @a = 'a'..'z' Z=> 0..*; # ( a => 0, b => 1, etc ) my $new-password = ('a'..'z','A'..'Z',0..9).roll(12).join; # 'ygHIHbi4XgUV' # the zero in the following is to prevent an off-by-one error # when accessing by index # * + * creates a code ref that takes two inputs and numerically adds them together constant fibonacci-list = 0, 1, 1, * + * ... *; # takes about a second the first time it's accessed currently say fibonacci-list[10000].chars == 2090; # if you wanted it to look more like haskell you could write it like this: constant fibonacci-list = 0, 1, 1, &[+] ... *; my @dice-rolls := ('⚀'..'⚅').roll(*); # infinite list of dice rolls # deck of cards using the cross meta-operator (X) # and the string concatenation operator (~) my @deck = 2..10,<J Q K A> X~ <♡ ♢ ♣ ♠>; my @shuffled = @deck.pick(*); # ( .say ) is short for ( $_.say ) # prints the first 6 numbers (0..5) each on it's own line for ^6 { .say } # prints the numbers 0..5 each on it's own line, # possibly randomized, # possibly each in it's own thread ( texas version ) (0..^6)>>.say; (^6)».say; # ditto ( french version ) # ( those were purposefully misusing an auto-threading list operator >> ) # says a random number (1..5), 5 times out of 6 if (0..5).pick -> $number { say $number } if (0..5).pick { say $^number } # ditto --- That was just a sampling of the bread-and-butter constructs (some of which were used in a way that most people wouldn't use them). There are also operators for dealing with Sets for example. ( ⋃ and (elem) being two of them ) see: http://doc.perl6.org/ You can even create new operators the same way you define a subroutine ( That's all they are in the Rakudo implementation, for most of them. ) # common factorial example sub postfix:<!> ( Int \n where * >= 0 ) is tighter(&infix:<*>) { [*] 1..n } say 5!; # 120
In A little thing to love about Perl 6 and COBOL

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.