Live data from Hacker News

Why I’m Learning Perl 6

evanmiller.org

41–50 of 380 posts

Re: Why I’m Learning Perl 6

#41

> Concurrency is hard and if you want M:N thread multiplexing (i.e. WEB SCALE CODE, where application threads aren’t pinned to pthreads) your options today are precisely Erlang, Go, .NET, and Perl 6. Putting aside the "web scale" jokes ( http://www.mongodb-is-web-scale.com/ ), this statement is still absurd. Every major language, or at least the ones that matter for backend development, has support for thread multipl…

PHP even has it.

Re: Why I’m Learning Perl 6

#42
post #14

Earlier quoted context omitted.

No need for the snark. This isn't fanboyism, though I gladly admit that I'm fond of Haskell. I'm not just namedropping Haskell "just because". He claims those languages are the only one that have green threads. He's wrong. I corrected that.

You're right, that was overly snarky, but your post does come off as use Haskell -> magic. The concurrency stories for Erlang and Go are front and center, very well defined, and obvious. How do you get similar functionality in Haskell (specifically, what libraries do what you are talking about)?

I have no idea where this incredulity even comes from you tools, nor the claim from TFA which was patently absurd. Pretty much every fucking major language not listed has green threads if not built into the core (Python, Ruby) provided as a well known library (Java, C++). And any new language it's pretty much table stakes.

The article claim is so ridiculous it's not even wrong and you go on to snark about a Haskell counterexample. What a complete asshole.

Re: Why I’m Learning Perl 6

#43
post #15

why is everybody saying they are put off by Go? Did we pass the "trend" phase and now it's cool to say go sucks?

For me, other than the fact that I don't need yet another Algol reimplementation in my life, I'm also not interested in code littered with error handling. Also strongly prefer FP.

Re: Why I’m Learning Perl 6

#44

> Concurrency is hard and if you want M:N thread multiplexing (i.e. WEB SCALE CODE, where application threads aren’t pinned to pthreads) your options today are precisely Erlang, Go, .NET, and Perl 6. Putting aside the "web scale" jokes ( http://www.mongodb-is-web-scale.com/ ), this statement is still absurd. Every major language, or at least the ones that matter for backend development, has support for thread multipl…

I'd like to know why people are downvoting this.

People often downvote anything that's remotely negative, even if it is true or merely a critical question.

Re: Why I’m Learning Perl 6

#45
post #14

Earlier quoted context omitted.

No need for the snark. This isn't fanboyism, though I gladly admit that I'm fond of Haskell. I'm not just namedropping Haskell "just because". He claims those languages are the only one that have green threads. He's wrong. I corrected that.

You're right, that was overly snarky, but your post does come off as use Haskell -> magic. The concurrency stories for Erlang and Go are front and center, very well defined, and obvious. How do you get similar functionality in Haskell (specifically, what libraries do what you are talking about)?

"The concurrency stories for Erlang and Go are front and center, very well defined, and obvious."

GHC Haskell basically have the same concurrency story (since ghc 7.0.1 - 16 November 2010 [1]):

- You can start ten or even hundred thousands of threads

- Inside them you can program like having synchronous I/O

- And the runtime handles it efficiently (with epoll/kqueue/...)

The difference is that haskell is less opinionated on the high level concurrency primitives, so you have many choices (sometimes with multiple different library implementations) like: locking, explicit async code, transactional memory, channels... https://hackage.haskell.org/packages/#cat:Concurrency

[1] Release Notes: "On POSIX platforms, there is a new I/O manager based on epoll/kqueue/poll, which allows multithreaded I/O code to scale to a much larger number (100k+) of threads" https://downloads.haskell.org/~ghc/7.0.1/docs/html/users_gui...

Re: Why I’m Learning Perl 6

#46
post #13

It's terrible that you put Erlang on a list with other languges/VMs. >There’s no GIL, so unlike Those Other Languages There is no GIL in EVM as well, but playing with the words you make it look like "all are the same". This does not deserve top HN and just stupid. If your Perl6 VM is _so_ great, why didn't you mention anything about what's really important like preemptive scheduling which has been Erlang's unbeatable…

FWIW, the author is very well-known and respected in the Erlang world for his work on Chicago Boss. Any perceived slights against Erlang are likely unintentional.

Re: Why I’m Learning Perl 6

#47

> Concurrency is hard and if you want M:N thread multiplexing (i.e. WEB SCALE CODE, where application threads aren’t pinned to pthreads) your options today are precisely Erlang, Go, .NET, and Perl 6. Putting aside the "web scale" jokes ( http://www.mongodb-is-web-scale.com/ ), this statement is still absurd. Every major language, or at least the ones that matter for backend development, has support for thread multipl…

I'd like to know why people are downvoting this.

For Python there is no native support for threads because of GIL. You can get around this through multiprocessing etc but these are hacks

Re: Why I’m Learning Perl 6

#48

> Guess what it outputs? Nothing! Just kidding, you’ll see a lot of distressed messages from tasks that passed out wait for the phone to ring, and woke up wearing someone else’s OS thread. Well, as a matter of fact I really got no output at all :(

> Actually, the program will output nothing if you’re using a release of Perl 6 prior to Rakudo Star 2017.07; a caching bug previously caused $*THREAD.id to report an out-of-date value.

Re: Why I’m Learning Perl 6

#49
post #39
post #25

Can Perl6 merge all of its generated VM code into one "package"? One of my favourite things about Go is that you can statically compile everything and then deployment basically becomes scp.

...and then deployment basically becomes scp. And security updates for your deployment become...what?

Rebuild and scp the whole lot again? Not necessarily a big deal.
Post reply on HN