Perl and CPAN definitely do not get enough flowers for their contribution to TDD.
HN user
snapdangle
You might want to go ahead and inform those investors who bought Amazon or Booking.com stock in the early 2000s that their orders of magnitudes of returns were really no such thing.
With which JavaScript version? At the time HOP was written I remember JavaScript still doing all it's for loops in C-style and there was certainly no arrow syntax to make anonymous JS functions manageable.
There were also no functional methods available, as related by the restriction to C-style for loops. (Array Iteration methods didn't appear in the spec until 2009, so I don't see how you could have map or select or anything else functional).
Thank you for taking the time to break this down!
Your description and summary blocks have started me wondering... has there been much work done on converting APL statements to more verbose explanations?
The sigil-to-meaning mapping is likely automatic for seasoned APL programmers but it might make such one liners more effective for evangelist purposes by making them somewhat more self-documenting.
I'd be very interested in reading more about the differentiating features of GNU APL. There is a great big announcement at the beginning of the GNU APL docs that talks of a decision needing to be made around a gap in the ISO specification. Is that the primary source of controversy or is there more discussion I could read somewhere else?
I've been looking for a good "diff" of the language differences between Dyalog APL and GNU APL, as much as to understand the extent of the progress since 'APL2' (or whatever the ISO standard name is considered equivalent to it) as any for any specific list of what GNU APL can't do relative to it's modern commercial compatriots.
(EDIT: Fixed final sentence to be a complete thought/sentence).
True but if I understand correctly (and I'd be happy to be corrected by someone with more K experience), the smaller size of input data should also have an impact on real world parser performance (including the memory usage involved therein).
The original K design was laid out in the 1980s when the constraints were even tighter than what they are today. The utilization of very short operators means not only the interpreter easily fits into cache but also the custom function definitions you have written will as well.
When dealing with high performance computing or real time processing of high volumes of data, any fetch to RAM for loading a function call to dispatch is going to have _some_ impact in a tight loop. Add that up for all the libraries you have loaded for your application verses a ground up implementation in K... Does that whole thing live in L3 along with the VM or intepreter + dependencies underneath it? It's doubtful.
My experience was simply using their Kx's free Developer IDE and experiencing the performance differential on datasets myself. YMMV but my (admittedly limited) experience leads me to believe that there is a serious case to be made for the performance advantages of having all your computational logic living as close to your computational cores as possible.
See also the PhD by author of the OP article where he presents language where:
"The entire source code to the compiler written in this method requires only 17 lines of simple code compared to roughly 1000 lines of equivalent code in the domain-specific compiler construction framework, Nanopass, and requires no domain specific techniques, libraries, or infrastructure support."
Linked from the article, available here: https://scholarworks.iu.edu/dspace/handle/2022/24749
I'm awaiting delivery of a printed Mastering Dyalog APL book while reading this! I landed on kdb+ after seeking a reasonable alternative to the so called "best in class" Elastic Search/Kibana tooling, fell in love with K once I understood that the syntactic terseness is all for the sake of fitting the entire interpreter into L2 cache, and have now landed at the decision that learning Iverson's classic is the only way to satisfy my desire to live a life free of them dang stinking loops!
According the recent 18.0 release presentation, it sounds like they are aware of how different an experience this is relative to other interpreted "scripting" languages. To that end, they have added support for a Run function that will execute with access to to the invocation arguments.
EDIT: They also discuss how the upcoming convergence of .Net Framework and .Net Core is going to have a major impact on their cross-platform capabilities.
That is categorically untrue. Verbal cultures in Australia have kept an accurate account of a coastline that existed over 10,000 years ago.
Meanwhile, the supposed collective knowledge in books is constantly second guessed and taken with grains of salt ("bronze age army sizes couldn't possibly be the size they write that they are", "the winner writes the history", etc).
Thank you for raising this very significant detail to the comment section!
Raku includes an incredible amount of new tools for writing one-liners. Furthermore, you can convert your one-liner into a command line app simply by wrapping the code in a `sub MAIN($pos-arg, :$named-arg) { ... }`.
It's worth checking out the Red ORM, great progress is being made and it feels very Perl 6 native in terms of its semantics.
Perl 6 is my go to scripting language. The concerns about code styles don't apply at that point because it's all me. And the multi paradigm nature of Perl 6 means I can solve any given algorithm using a style that fits how I'm feeling in that moment.
Considering the amount of crap that is heaped on Perl 6 for even daring to exist, maybe in the future you might consider using language that highlights something that you find impressive.
Otherwise it comes off as more cheap shots. Thanks for adding your comment, though! It helps :)
All the companies that got the trillions of dollars in contracts sure think so.
Why is it that no one in astrophsyics seems to understand that electricity has mass?
If Google Podcasts has gone from non-existence to being "one of the most popular platforms" in a matter of months, its actually an insanely good reason not to engage with them at all.
Which are nevertheless accessible from any podcast app.
To suggest that Google trying to muscle into the podcast space by leveraging their search engine to direct people not to the podcast feed but to their own service is in any way equivalent to small creators adding value to their listeners by providing exclusive content is absurd to say the least.
Even at it's slowest, Firefox was never even close to an order of magnitude slower.
Geek culture has zero loyalty, otherwise people would run the product that has moral integrity even if it costs them a few milliseconds in load times.
One explanation is that he made drastic reforms related to the tax collection capacity of the priestly class. This was in addition to/a consequence of his re-conceptualization of the state religion.
After he was deposed by that same priestly class, they did the thing that usually happens -- defiling all monuments and writing a version of the events that put them in the best possible light.
Reini, get off your crazy horse man! No one in the world, including the author of the Parrot threading model, thinks it is the "best" threading model.
To me it seems pretty clear that you said "probably" out of knee-jerk both-siderism.
The UK was always a special-case member of the EU, always demanding it's own uniqueness and pushing neoliberal garbage at every corner. The EU council should never have bent over so far backwards for the UK in the first place and it would have been absurd for them to bend even further. UK exceptionalism can go enjoy it's lonely island time.
Nobody at a concert is going to wait through commercial breaks, for starters.
Also, you might not want your tax dollars going to support professional sports, but many people do. That was my other point. We live in a democracy and the people generally are in favor of sports.
So let the taxpayers vote! If a majority wants to waste their money, then let them. But even then it is an absolute waste no matter your arguments because these are commercial entities backed by obscenely wealthy interests _that can afford to build them themselves_.
This also boggles my mind. The only ones allowed a say in what happens to a city are.. the people just moving to it? Aka the same ones who are responsible for a majority of the current issues?
Sorry, but that seems a bit confused. If there are not enough votes for a stadium, then there will not be enough votes to throw out a candidate for "not backing" a stadium.
Not allowing people a voice in the question and then blaming democracy for it? You can't blame an abstract system of government for sports owners making sweatheart deals that ignore public sentiment.
I believe the point being made is that the _value_ of the crypto system is largely controlled by small groups. Forks rarely achieve the value and status of the prior coin (considering ETC the "fork" here as it was the chain that didn't have the core dev approval).
Furthermore, crypto value is beholden on whales not to just dumping their vast hoards of coins into marketplaces all at once. That is to say, the largest stakeholders in a chain have the opportunity to crush the value of that chain, which means that they have power over other users' choice of chain .
Sorry dude, but the crux of your joke is that elite programmers shouldn't look at Perl 6.. because it took a while to develop?
And it is hardly "tongue in cheek" when you talk trash about the language (which you have never used) throughout this news item.