Hacker Newsnew | past | comments | ask | show | jobs | submit | cms07's commentslogin

I don't think that's true with Perl at least, unless something has changed dramatically very recently.


If you use it to glue/pipe bunch of tools written in C it can easily be faster.


That's one recommend approach towards Python. E.g. numpy.

The other approach is pure Python and then using PyPy's JIT.


Which often is what you do in Bash with grep, cp, mv, find etc...


I can't wait for the labor surplus to drive down my wages.


At my High School, everyone had to take a Computer Science class for at least 1 year.

My year had 60 students and I'm the only one studying CS/working in the industry. I'm pretty sure your, mine and everyone's wage will be alright.

Yes, only an anecdote, but it's not like everyone is switching from their dreams to become a doctor/lawyer/pilot/xyz to a CS job just because they had a HS class.


That's not how it works.

First of all, teaching everyone computer science will not create more programmers. I doubt that's even the intent.

Second, if there were more programmers, there would eventually be more jobs.

More business people would realize the amount of surplus (assuming it ever happens) and they will find ways to utilize it.

or, more technology startups could spring up.

There are still a lot of problems in this world that technology can solve.


Does teaching algebra drive down the salaries of engineers?

I think that the learning curve between "able to automate simple things in Excel" and "doing software development as a career" is high enough that it's not going to do much to wages.


Growth is not over:

https://research.stlouisfed.org/fred2/series/GDPC1

Edit: To elaborate, the rantings of one economist who has been wrong many times over does not make for a compelling work.


No, but the rate of growth is slower than it was before.


The rate of growth as measured is slower. Example: Assume Netflix lacks the cash flow that Blockbuster had but provides better service - you don't have to drive to take the movies back.

This means there's more consumer surplus but it's harder to measure.


I really find that hard to believe, and historically real growth has averaged about 2% year over year. Just because it has had short-run highs in the 1950s and 2000s does not mean that right now is abnormally low.


That's still a far cry from "growth is over."


Yeah, but headlines/titles are almost always exaggerations. The paper basically says "slower" not "over".


I'm from Oklahoma, and I always wonder how much of our social behavior is based on the fact that Oklahoma was, until recently, Indian Territory and land worked by farmers who came around the time of the land runs. If you're struggling to provide enough food for your family in 1889, there's no way you are letting your children not eat all of their food. I'm sure that is self-perpetuating in some way.


I grew up in Oklahoma. I think the first problem is the gallons of Coke people drink every day. People forget that you can actually drink water when you're thirsty.


I never understood people who proclaim they are thirsty and then grab a coke.


I absolutely love Perl, and I think that the newest versions of Perl 5 have taken much of the good things that Perl 6 promised and added them. I really think that Perl 6 misses the point and removes all of the charm of Perl. Why change sigils and all of these operators? The people who don't like them aren't using Perl anyway, and they won't be using Perl 6 just because it implements them in a more obvious but less meaningful way.

I also don't think the addition of a more mainstream object system is a positive thing, but that's a debate for another time.

Edit: And it's not just about sigils, but about changing things for no meaningful reason, especially things that set Perl apart and make it what it is.


As someone who is relatively new to perl, I think perl 6 is definitely a positive direction. It removes lots of inconsistencies, while providing a clean base for future expansion. For something like the sigils, what's more important - to know that a variable is a scalar, or that it's some kind of hash/array? The second would definitely be less confusing when learning the language.

There are also definitely some good things coming out of perl 6, like this https://www.youtube.com/watch?v=JpqnNCx7wVY


Name some things that they changed for "no meaningful reason".

As you state, Perl 5 has added a number of things that Perl 6 promised. So why would you want Perl 6 to just be what Perl 5 has become? They're two completely separate languages with some shared syntax/semantics.


I mean, if Perl 6 didn't want to be confused with being the same language as Perl 5, it didn't have to increment the version number by one and keep the name. As far as why one would want Perl 6 to just be Perl 5 plus some new stuff, that's really how most languages handle keeping the same name and incrementing the version by one. People who have Perl 5 code and want to keep writing in the same language but with more whathaveyou probably want Perl 6 The Completely Separate Language to go away so that Perl can get the kind of Perl 6 any other language would've gotten by now.


From an outside perspective, the distinction between Perl 5 and Perl 6 is confusing.

Are they literally separate languages?

Did Perl 5 come after Perl 6?


Perl 6 started around when perl 5.8 was released. Then Perl 5 went stagnant while most of the core language developers were working on Perl 6. After a few years where there were competing implementations of perl 6, and still some wild ideas being tested, folks that still were using Perl 5 watched the rest of the languages develop, and the growing buglist against perl 5, and starting poaching ideas from Perl 6, ruby, python, and improving the Perl 5 runtime.

Eventually, The Perl 5 camp committed to regular releases, and continued renewed development in the engine, and it is still pretty good. But the damage has been done @ this point -- a lot of the community has wandered off to other 'cool' languages and frameworks.

The confusion will continue, especially since it's become clear Perl 6 is quite the departure from Perl 5, and there is a LOT of code in the wild using Perl 5. I've seen some talk of the Perl 5 folks asking Larry Wall to rename Perl 6, but he's declined to do so.

With perl6's grammar support, some folks are working on importing the perl5 grammar into perl6[0]. Fortunately, there's a very rich testing environment(in the form of CPAN) to ensure this effort will be stable.

[0] https://github.com/rakudo-p5/v5/


> a lot of the community has wandered off to other 'cool' languages and frameworks

I am just one such. Half my career was writing Perl. But these days, most of my work is in Ruby and as a longtime fan of Erlang (but never having had the opportunity to use it in production), I'm taking a long look at Elixir+Phoenix. This tutorial wasn't enough to entice me back to Perl, and I'm wondering if there is anything at all that could.

In general we choose a language for their applicability to the problem domain. The focus on text manipulation in Perl 4, and then extension of this with an object framework in Perl 5, made it a shoo-in in the 90s and early C21 when we all needed form parsing, HTML template stuffing, and email mangling tools. In these days of dynamic DOM manipulation and event-driven microservices, it doesn't seem so relevant; whilst Node and Go and Elixir look entirely on point.

If you go look at the Perl 6 FAQ, there's a section, "Why should I learn Perl 6?". It lists a grab-bag of language features, rather than a set of problems that Perl 6's new design can solve. As a result it feels much like a solution in search of a problem. That wasn't even ever true of JavaScript, even though JS took years to come of age.

If I was designing a language today, and I am not, but if I were, I would look at how dominant Java seems to be in the big data community and try knocking it off that perch with appropriate language primitives, constructs and libraries. It seems to me this is the modern problem domain homologous to the bulk text mangling for which Perl originally became famous.


For event-driven microservices, I think Perl 6 is actually a great choice. I have experience writing some small things in Go and Node.js, but Perl 6 offers much more powerful high-level features for handling async, concurrency, and parallelism.

Promise combinators are built into the language to provide composable concurrency. But unlike using something like Q in Node.js, you can truly perform tasks across promises in parallel (and with static typing to boot!)

Perl 6 has channels for when you want Go style semantics, but you also have Supplies for when you want their dual: instead of pushing events through channels you pull them reactively. This allows you to write highly declarative code; see https://gist.github.com/muraiki/222814d5928f648be3c1

I think that P6 will also be awesome for data munging. Here's a pipeline that processes text from a file with 4 parallel workers.

  my $lines = open('foo.json', :r).lines.hyper(batch => 20, degree => 4)
  my $filter = $lines.grep: -> $line { $line ~~ /someregex/ };
  my $json = $filter.map: &from-json;
  my $foos = $json.grep: *<some_property> == 'foo';
  say $foos.list[8];
Since the operations are done in scalar context, they essentially operate lazily, pulling one value through the chain at a time. The pipeline is only activated once coerced to list context at the end, and only enough values as are required to find the 9th match are processed.

I've used Elixir before. It has some great features and having the power of BEAM and OTP is quite awesome. But sometimes the actor model is not what you want. I think that Perl 6 will be not just a great glue language, but also a powerful language for writing multi-paradigm applications that meet the demands of modern systems.


Fyi, Jonathan recently wrote:

> Also, the name channel is evocative of the concept in Go, but our channels aren't like that. They don't block senders until the receiver is ready, for example. While a blocking queue is a very useful thing to have in a language, and we should keep it, we may want to stop calling it Channel, to avoid confusion (and keep the name free for something that has the Go-ish semantics).

(from https://gist.github.com/jnthn/a56fd4a22e7c43080078)

(note that most of the changes mentioned in the gist have since been implemented)


>>I'm wondering if there is anything at all that could.

Ok, I've been following Perl 6 for quite a while and learning it these days. So that I could use it for my day to day work after its production release in Christmas.

If you liked Perl in the past, and like Ruby. You will absolutely love Perl 6. It has a lot more cleaned up syntax. And the language as such is very Perlish. You will enjoy grammars and macros. And please don't think arrival of JSON and XML has solved and eliminated all text processing problems on earth. If anything arrival of any standard format, only emphasizes the importance of good text processing tools. One size fits all approach doesn't work for common place problems. Sooner or later you will see people shoe horning all kinds of solutions into problem domains they don't belong. The net result looks more like a kludge, than a real solution. This is the whole problem facing people today, because we are forced to use solutions which were not invented to solve the problems they were designed to solve.

>>In general we choose a language for their applicability to the problem domain.

Perl 6 is a language designed to provide you tools to work with any problem domain, while adopting without breaking backwards compatibility. If this is your concern, then you only have good news to listen.

>>As a result it feels much like a solution in search of a problem.

iPhone, Unix, C, the original perl itself were all solutions in search of a problem. None of them had prior users or had well marketed audience to begin with. Sometimes people don't know what they want unless they are shown the solution. Tools are not designed based on survey results. Else we wouldn't have cars today, only faster horse carriages.

>>I would look at how dominant Java seems to be in the big data community and try knocking it off that perch with appropriate language primitives, constructs and libraries.

Java as a benchmark is worst design point you can start with. Only reason why Java is even surviving today is because of its enterprise inertia, and unlimited supply of cheap programmers. At some point in time a massive reset to Java way of doing things is imminent. Language as a whole is old, the original platform-independent goal is now common place in all tools. They can't seem to add anything new or useful without breaking backwards compatibility and the power is falling in the face of newer and powerful languages.


Having somehow avoided much Perl for most of my working life, I've recently done quite a bit of it (Perl 5 this is), and I have found it, syntactically, a painful experience when compared to Ruby and Python. The one thing I have loved compared to those two though is the performance. If Perl 6 retains that performance edge it may gather mindshare, but otoh my impression of Perlists that I work with is that they are quite content with Perl 5's warts, so I am not convinced that 6 will have much of an impact.


If I have one piece of advice for people coming from other languages into Perl 5, it's to not be fooled by some similar looking syntax into thinking it should be used like C or any other C-like language. I find assumptions in that vein are often what leads people to painful assumptions about the language.

If I had time for a second piece of advice, it would to be sure you understand context in Perl 5[1]. Everything is based around context, and to not be aware of how it factors in to the current expression often leads to befuddlement (at best) or anger. On the flip side, context is often where Perl shines. I recommend Chromatic's excellent Modern Perl: The Book[1] if you feel any of this might apply to you.

Finally, Perl can be a very Lispy language. Avoiding those parts (map, grep, etc) is sort of like consciously avoiding every even gear when driving a car. Possible, but much more painful than using it as designed.

Edit: Oh, you probably want that reference I implied up above.

1: http://modernperlbooks.com/books/modern_perl_2014/ covers context in multiple sections.


The alternative to v5 is Inline::Perl5[1], which instead of defining a mode that understands Perl 5 syntax and maps it to the underlying Perl 6 runtime, actually embeds a Perl 5 interpreter and handles all the back and forth automatically. The benefit of this approach is that XS modules still work (you can use Per 5's DBI in Perl 6 using Perl 6 syntax).

1: https://github.com/niner/Inline-Perl5


> With perl6's grammar support, some folks are working on importing the perl5 grammar into perl6[0].

If someone just wants to run Perl 5 code, especially from CPAN, Inline::Perl5 is the answer, not v5.


> But the damage has been done @ this point -- a lot of the community has wandered off

Do you think the Perl community should have tried to slow down or reverse the exodus?


Perl 6 is like Python 3, but they decided early on that if it wasn't going to be backwards compatible they might as well go wild with enhancements and fixes to earlier mistakes. As such, while Perl 6 is seen as a successor to Perl 5, it doesn't obsolete Perl 5. There's still plenty of active development and new features happening in Perl 5 (after a lull in development, likely because of Perl 6).

It's widely accepted at this point that the name could and would have been better off as something else, like Perl NG (there is good reason to want to retain some Perl mindshare, it is very related at a language level) or something, but by the point that was realized the damage was done. People still argue over whether they should change it to clear this issue up for the layman, but there are good reasons to not want to give up the long past associated with the Perl 6 name.

It's becoming slightly less important now that Perl 6 can now inline a lot of Perl 5 code and modules (including modules with compiled code)[1].

1: https://github.com/niner/Inline-Perl5


An old but informative article on Perl 6: http://www.perl.com/pub/2006/01/12/what_is_perl_6.html

And a brief blurb from the Perl 6 FAQ that helps explain it a bit:

> Perl 6 is still a very perlish language, following the same underlying ideas as previous versions (sigils for mini-namespaces, There Is More Than One Way To Do It, caring about both manipulexity and whipuptitude, taking many ideas from natural language (like disambiguation through context))

> Perl 6 code feels very perlish. A Perl 5 program using Moose or a similar object system feels closer to Perl 6 than to Perl 1 code

> "Perl" is still a strong brand name, which we don't want to throw away lightly

> It is very hard to find a good alternative name. And no, "camelia" and "rakudo" are not good names for a programming language (even if they are fine for our mascot and the leading compiler)

> Even if Perl 6 changed its name, an incremental update to Perl 5 likely couldn't claim the version 6, because the name Perl 6 sticks in people's head, and will long be associated with what it is today


Are you talking about changing $foo[0] to @foo[0] ?


Microsoft bailed them out to avoid further antitrust inquiries.


That came much later: the Microsoft investment was announced in 1997, at Steve Jobs' first keynote after returning to Apple.


But regardless, I think Apple could have easily ended up just the same as the others without it.


The "bailout" was a payoff for IP infringement and was small potatoes, something like $150 million.


Assuming you mean the Mac IP and if so I believe Microsoft had a cross licensing deal in place which would cover it. It never got to litigation though.


How great was life for the average Cuban in pre-revolution days? I think if I were a Cuban I would be more than skeptical of undoing all of the positive things that have been accomplished since 1959.


Getting your fingernails torn out by the secret police for criticizing the Castro regime isn't too great.

http://www.breitbart.com/national-security/2014/07/02/cuba-a...

Economically, $6,000 GDP per capita isn't much to be proud of, compared to the US aligned Puerto Rico which is at $27,000.

https://www.google.com/publicdata/explore?ds=d5bncppjof8f9_&...


Puerto Rico isn't "US aligned", it's part of the US. There's a pretty big difference.


Yeah, "aligned" is not the right word. But it's not part of the US either. It's not a state. It's in a weird protectorate gray area.

By historical standards the most accurate appellation would probably be "colony".


Capitalistic economies in the region do much better, so who do you want me to compare to who is "fair?" Brazil, Argentia, Chile?

https://www.google.com/publicdata/explore?ds=d5bncppjof8f9_&...

Still 2x Cuba and with usually less fingernail pulling. Communism is a worldwide failure both political, human rights-wise, and economically. Lets stop being "edgy" and defend it for easily garnered anti-US upvotes.


Are we going to ignore the largest carceral state in the world?

We can have a sober criticism of all forms of states and capitalism without insisting on one hand that there are only two possibilities and on the other hand that we must choose one as morally superior.

The imperialist nationalist history of capitalism is more than bloody, blood is what makes the world fertile for capitalism.

I will only briefly mention that leftists have attacked states like the USSR as a form of state capitalism since the days Lenin was still alive. I see little potential in developing this line of thought here.


You don't want to develop that here, that's ok, but It's worth saying that these were not the most common leftist opinions, and the USSR in particular was popular on the left far longer than was prudent, from a modern perspective. (Not saying I wouldn't have made the same mistake as human alive in the 50s)


Totally true. My claim is smaller than I made it seem. I don't like Marxism even though I find some of the analytic tools it provides to be very useful. Even so, I have to give it credit that its largest experiments were very popular with a lot of leftists.


Well, the USSR and other similar states funded a lot of leftist groups (and some still do). It's hard to say what's a "common leftist opinion" when you have to discriminate between people who speak honestly about their opinions, people who only echo the democratic centralist tendency of their party, and people who lie about their true values and goals in order to get resources from nation-states.


Breitbart is bias news.

The dude who died, Breitbart, framed an Obama nominee for secretary of arigculture. He heavily edited a video to make it seems like she was racist.

She ended up suing him.

Just fyi, there are better sources to source.


GDP per capita doesn't mean much when you have food and shelter provided for you. I know most of my income in the bay goes to shelter alone.


Perl is a terrific language. When's the last time you've used it?


A good but unfortunately temporary decision for the working people of France. Good on them.


It's a real shame that Perl isn't a popular language anymore. At least there's still an active community.


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

Search: