Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I love Perl. I am most fluent in Perl. I can hack things together in Perl using CPAN modules without pausing, without thinking, and I am most efficient using it. I am happiest hacking Perl at 3AM. I hate whats happened to Perl because Perl 6 has taken so long to ship. Perl 5 is outdated. Moose helps, but its gotten so bad for so long that I can't code in Perl and collaborate with anyone. I write clean Perl, but it doesn't matter - everyone else moved on years ago and disdains it. So I hack Ruby, Python, etc. because I have to.

I hope Perl 6 changes that. Is it ready to use?



No, but this is a good time to play with it ... Rakudo Star should be released in the next 2-3 weeks or so.

Problem with Perl 6 was that it's too ground-breaking, without having the resources of a huge company (like Sun, MS).

But it doesn't matter because you can't find the combination of features it provides in other languages ...

  * full OOP
  * optional typing
  * multi-dispatch
  * macros
  * cool pattern matching
  * functional features ... map, fold are at home ;)
  * continuations / coroutines
  * transactional memory
  * eventually it will be compatible with every package on CPAN
Personally I don't like Perl (either 5 or 6), I'm more interested in Parrot because what is widely viewed today as being general-purpose VMs (the JVM / .NET) are a poor choice for dynamic languages.

Consider that the JVM and .NET are stack-based. Because of that efficient continuations passing style is impossible on top, and that's a PITA because you can build any control structure on top ... tail-calls, closures, coroutines, exceptions, green threads ... can all be implemented efficiently in terms of CPS.

Another thing against the JVM / .NET is that they'll never earn optimizations for dynamic languages that could impact the performance of first-class citizens. You can forget about an efficient tracing-compiler on top of those, simply because such optimizations are not cheap and can impact the performance of Java / C#, and those VMs are not low-level enough to implement it at a higher level.

And for instance, personally I'm skeptic that InvokeDynamic on the JVM will deliver that much performance. Yeah, it provides a mechanism for a monomorphic inline cache, and from there the JVM can do stuff like code-inlining of call-sites.

But it doesn't do tracing of types, which means that code like the following ...

  sum = 0
  for i in range(1000):
      sum += i
will always pay for the price of boxing/unboxing of those primitives, an optimization that current Javascript VMs and LuaJIT 2 are doing.

So if Parrot delivers, it will be one heck of an alternative. Either way, its interface is nice and you can use it right now for prototyping new languages.


Actually, Rakudo Star is probably about two months off at the moment. Q2 was the originally announced timeframe, then April was batted about, but the lead developer has had major family health issues taking up his time, so we elected to push it back towards the tail-end of Q2.

On the other hand, it's already a pretty good time to play with Rakudo Perl 6. It's still got some rough edges, and it's slow, but it's also expressive and powerful.


A tip: It seems the Perl job market varies a lot depending on where you are. If you're willing to move, you can probably get a Perl job. (See history at jobs.perl.org for ideas.)


Language is much less important to me than the actual work, and I can use whatever language I want in my job. The problem is there are so few people who code Perl anymore it makes it hard to collaborate if I use Perl.


My point was that if you check job boards etc, there seems to be lots of Perl jobs/people around. The closest hub to me is probably London.

But if popularity is a factor, then go PHP...


Right, and my point was I don't want a Perl job. I've had Perl jobs, from jobs.perl.org. I don't want a PHP job, nobody would work with me in that language either. Most people use Ruby/Python in my circles these days.

I find language specific jobs incredibly lame. Language is a small factor in what I do. I just want to be able to say, "I'm gonna do it in Perl." and not have everyone groan and not want to work with me on it.


You could have written that "in my circles" part from the beginning. :-)


If you don't define your circle as 'workplaces from jobs.perl.org' then you have trouble using Perl ;)


Well, I do -- at least for a subset of those geographic areas.

Something similar goes for most any language, except (probably) Java and PHP. Unless you already live in e.g. London or some other hub for a given environment.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: