Why is Funding Perl Core Development So Difficult?
modernperlbooks.com
modernperlbooks.com
Extending Perl beyond what Perl is makes Perl something else. Perl 6 is barely Perl in any classical sense.
The "Swiss Army Chainsaw" was never intended to be Java or C#. Its weaknesses, a lack of formal typing, a small, simple set of core data structures, a terse and convoluted syntax, are actually its strengths.
Just as C++ is not really C, and Java is certainly not C++, Perl would be better suited by some kind of successor language that embodies the Perl spirit without having to carry forward on the same code-base or concern itself with legacy. I don't think Perl 6 is this thing.
But I tend to agree that to a large degree, it's done. Many new features that were mentioned would require major overhauls to the language. You can't just bolt "better parallelism" on to a language, for instance. And macros would make what is already a fairly large language even larger, along with the fact that it wouldn't really buy you that much vs. what you can already do.
They would for me.
Another pattern I use quite a bit is to write an parent application class which has the scheduling and task management behaviors of several subclasses (these subclasses each have separate and idempotent behaviors, such as "fetch newest data from remote server" or "republish static data from templates"). Most of the core behavior of each application is "loop over a task queue and process each individual element", the specific details of each task are so different that it's difficult to abstract further to push more behavior into the superclass. I could go further and use more higher-order functions, but there's a point at which you're building up a long chain of closures closing over closures just to avoid writing a loop, and I'm not sure that's practical.
Basically I want parametric custom control flow.
Will be nice to have something like this.
CloudFoundry seems to be written in Ruby and it looks like a bunch of sys-admin tools.
Chef, Puppet are both written in Ruby and utilized Ruby (or Ruby DSL?).
There's a strong push for Ruby lately and it might be because Ruby is kind of similar to Perl so some sys-admins are okay with that?
Edit: (Python on ubuntu, Powershell on windows, ruby on everything else. Python on ubuntu since it's there out of the box)
And from what i've seen and anecdotally this still seems to be the common case (Java & Perl are the main languages used by companies in the City of London).
But every now and then you will see <insert some new tool> being compared with a <insert classic tool>. And then told since the <insert some new tool> is a little famous now, its likely to replace the <insert classic tool> and that <quote some irrelevant search engine statistic> actually proves <insert classic tool> is dead and <insert some new tool> is actually going to replace the <insert classic tool> in the future.
Then suddenly expect a stream of tweets, blog posts and forum discussions on how useless <insert classic tool is>.
Please replace <insert classic tool> by "Perl","SQL","Php".
Please replace <insert some new tool> by "Python","Ruby","Tcl","NoSQL","Django"..
Please replace <quote some irrelevant search engine statistic> by Google search stats or Tiobe(Which is the same ,but presented differently metric).
While it's good to always review your tools & skills... spending lots of time looking at sparkling new things could be better focused on i) getting work done or ii) improving your proficiency with current tools :)
Sometimes a new tool will come along that truly is a huge improvement on previous tools. But, when those previous tools are "classics", it's pretty rare that the "new" tool is truly that much of an improvement.
There's a reason that these things (bash, sed, awk, perl, SQL, Unix/Linux, etc) are still popular and still going. It's because they're time tested, they're well known, and they work.
When I start writing something, I think about how big I expect it to be. If it's expected to be 50 lines or less, then it's bash for general scripts, and awk for text filtering. If it's expected to be more than 50 lines, I go with Perl. That goes regardless of platform (as it's already available on every *nix platform I use, and Strawberry or ActiveState makes Perl easy to add on Windows).
I'm a sysadmin that does a decent amount of automation and scripting work. Almost all of that is done in Perl. Among the other guys on my team, everyone uses Perl, except for one person who uses Python.
We had one person who came into the team as a Ruby fan. Within 6 months of working with us, she'd become a Perl fan. She told me she'd passed on Perl and gone to Ruby because she'd heard bad things about Perl. After seeing it in use and checking it out a little closer, she realized that almost everything she'd heard "bad" was outdated, incorrect, or overstated.
Outside of my team, I know lots of people who use Perl, a decent number of people who use Python, and a very small number of people who actually use Ruby. Yeah, there's a few high-profile apps in it, and yeah, Ruby on Rails got it a lot of attention for quick and dirty web apps, but it has a long way to go before it'll reach anywhere near Perl (or even Python) is.
The question of the value of technology is a very complicated one. And we'll never be able to work out the good and bad points of the specific dynamic languages, to cooperate and learn from each other, if all discussion gets reduced to trying to make the others look worse. A witty saying never proved anything. At least nothing valuable.
To me, in most cases the witty statements regarding languages (be it Perl 5/6, PHP, Java, or anything else) don't demonstrate insight or experience, but merely a lack of respect for other people's opinions. After all, "they" must recognize that every large enough PHP program is unmaintainable garbage, since "you" were able to recognize that. If they don't, they lack experience. If you can't even imagine that the other party might have a point, you're not trying to have a constructive discussion, but instead are in some kind of a fight for the prize of being right. The problem is, there is no prize. There is no right. Within this game, no-one wins.
To sum up: Less emotion, less absolutism, more technology.
To throw the question back: Do you think Lisp is useless because it's old, or do you think the Lisp of the 80s doesn't have that much to do with the Lisp of 2011, even if the syntax didn't change that much?
As I said above, it's about the value of the technology for you, your project and your team. I can't judge what's of value to you, or why something is of value to you. But you can't judge either why or what is valuable to me. We have reasons to use Perl that aren't pure stubbornness.
Edit: Forgot about the Lisp part. I actually believe that in the world of Lisp/Scheme there were many things that changed for the better, and it was driven by developments such as Arc, Clojure, Racket, Guile and so on. There are people that think every Lisp is unmaintainable, slow, outdated, has no libraries, has no community, has an unsupporting community, and so on. And my point is that the answer is always more complicated than just "they are right" or "they are wrong."
Ruby's tremendous surge of popularity was driven by a new generation of young, passionate developers. I don't see anybody advocating Perl that doesn't already have many years of sunk costs in the language.
If you make an absolute, quantitative statement, you kinda do. If you read what I said below, it's perfectly fine to feel that in your environment there is a shift happening, and I can't judge that. What I'm saying is that you can't extrapolate from that to everybody. And I'm also saying that my and many others opinions differ. All I'm asking for is the minimum respect to not basically call us liars or delusional by implying we just make this stuff up, or are too invested to see the truth.
In my (limited) experience, it is more the anti-crowd that is usually quite invested. Not monetary though, but emotionally invested. Some people in here find it very important that the world hates the things they hate at least as much.
However, I do agree with the notion that perl should just stay perl. Do we really need opaque objects? hygenic macros?
The backer issue is relevant though. I always wondered if Objective-C would have died off in a corner somewhere if not for the iPhone and Apple backing it. Perhaps strong backing from a powerful modern company would do the trick. I'd cast my vote for Amazon :)
I feel it's the same with the work towards a core MOP. It will be hard to convince regular users why the new thing is better, but for people writing extension, auto-documentation tools, or other introspective systems it'd be a huge relief (at least to me). The difference I see is that instead of extending OO in the sense of a framework on top (Object::Tiny, Class::Accessor), you compose in behavioral extensions.
Who, besides Larry, can't drag themselves away from hacking on Perl? I'm assuming those people are all employed. If not, we should get them a job!
Perl 5.14.0 represents one year of development since Perl 5.12.0 and contains nearly 550,000 lines of changes across nearly 3,000 files from 150 authors and committers.
ref: https://metacpan.org/module/perl5140delta
And since the 5.14.0 release on 14th May this year development has continued unabated:
Current release (5.14)
* 5.14.1 on 2011-06-17
* 5.14.2 on 2011-09-26
Patch old release (5.12)
* 5.12.4 on 2011-06-20
Development for next release (5.16)
* 5.15.0 on 2011-06-20
* 5.15.1 on 2011-07-20
* 5.15.2 on 2011-08-21
* 5.15.3 on 2011-09-21
* 5.15.4 on 2011-10-20
ref: Above dates from MetaCPAN and excludes release candidates versions.He can either learn Python 2, in which case he'll have to adjust to Python 3 when it takes off... or he can learn Python 3 and not (yet) have widespread library support.
Learning 2 and then moving to 3 whenever it takes off isn't really that much work, but I can totally understand it having a chilling effect on prospective learners.
Perl is worth studying for any language afficionado but if a friend asked me today which language to begin with I'd strongly recommend Python over Perl.
Community-wise I'd keep an eye on the IronMan aggregator[9] and blogs.perl.org[10].
[1] https://metacpan.org/release/App-perlbrew [2] https://metacpan.org/release/App-cpanminus [3] https://metacpan.org/ [4] http://cpan.uwinnipeg.ca/search?query=Task-&mode=dist [5] https://metacpan.org/release/Task-Kensho [6] https://metacpan.org/release/Plack [7] https://metacpan.org/release/PSGI [8] https://metacpan.org/release/Moose [9] http://ironman.enlightenedperl.org/ [10] http://blogs.perl.org/
Not seeing the big disaster here.
Is that level of funding sustainable?
Disregard him. He sucks candy.
EDIT: The downvotes are acting a ( ) for all the candy suckers. Checkout their useless profiles, and memorize their silly nick's.
ha ha !
Python is huge though. Most people know it, many like it. Though I find far fewer people love python than perl5 or Ruby.
But perl is still there. It's still my tool of choice for most scripting, and for some fundamentally good reasons that are unlikely to change in the near future. Perl scripts fit more naturally into single files. They deal better with the enclosing unix environment (i.e. they expose things like signals instead of trying to abstract them). Operations like pack/unpack and I/O piping work in fewer tokens and more clearly than in other environments.
It's just a great language. It makes me sad that everyone wants to flame about it.
Isn't a good choice for _what_?
One doesn't have to consider "other opinions" or deem them "valid", if one knows them to be wrong. And in our profession we have lots of ways of knowing wrong from right.
Please don't make the mistake of believing a meme.
Most Perl developers are grown-ups who are a) too busy solving problems and b) mature enough to not go and troll every post about a language they don't like.
On the other hand, Perl has attracted a handful of recurring names of amazingly dedicated detractors who seemingly have nothing better to do.
Look out for the sun, I hear it might give you a grayish complexion... :-)
Here you did sweeping personal attacks on Perl programmers, based on some down votes: http://news.ycombinator.com/item?id=3159881
As I suggested, why don't you go to a discussion on Python, or something, and start writing personal attacks there. Then you'll see down votes...
You wrote more than 10% of all comments in that Perl discussion too... Get a life or start writing code for a hobby.
Again, you're projecting. I said "perl fanboys on this site". That's much less broad but you seem to not realize there is anything else?
>start writing personal attacks there
Why do you take fair critiques of the language as personal attacks? I think you need to read pg's essay about ID again.
>Get a life or start writing code for a hobby.
Again with the personal attacks. I have a life and I code for a hobby. That doesn't stop me from correcting fan boys who spread misinformation or distortions of the truth.
Serious criticism like your "With things like this I would like to advocate that Perl be treated as politics" -- over a few down votes?!
That is fair and balanced criticism, not trolling at all..?! Thanks for a good laugh at your chutzpah. Go away.
>>I said "perl fanboys on this site"
Not in this discussion or in the comment I linked to. You said:
perl fans get seriously emotional about perl and start downvoting things they disagree with (much more so than ordinarily happens).
That is a personal attack, without any data, on Perl fans in general. So you flat out lie about what you write, troll.
That was an observation of mine. Perl fanboys are generally not capable of having a dispassionate discussion about perl's faults.
>That is a personal attack, without any data, on Perl fans in general.
Fan = Fanboy. It is a programming language. Being a "fan" of a tool is irrational. One should use the tool that works best (for some definition of best) and when that tool is no longer the best one should switch. Being a "fan" means to follow something even when it's not the best (e.g. Dallas Cowboys fan, even when they hadn't won a game in years). This is an utterly irrational stance for a tool.
By the way, the person who has been issuing the personal attacks here is you with your "go away" and troll accusations. I hope in time you can learn to be more civil in your discussions.
(Why the Hell am I proving things to trolls? :-( )
Edit: And btw, I even irritated pg by arguing with a troll that was arguing quite similar things as danssig, too... :-)
Having seen it, I can't help but say: lol! You took that one sentance to mean pg was upset that you were arguing with trolls? It looks to me like he thought you were trolling! All kinds of other people were still talking to the person you accuse of being a troll but only you got singled out and asked to stop. None of them and not even the alleged troll.
And again it was about perl. I think you seriously need to ask yourself why you're so incredibly sensitive about this subject. No one is criticizing you nor your family. Just a tool that has no feelings or emotions.
You are a liar. Here is his account. It is at Karma -10 and it wasn't used after that troll session.
http://news.ycombinator.com/threads?id=derrickpetzold
He was posting slams of about your level. ("in other words run the f away from Perl if you can unless you are into S&M"). And so on.
>>And again it was about perl.
It is something I use a lot, even for fun. You don't like Perl (not "perl") and write 10-20% of comments in discussions about it.
So you're just bullshitting here, as trolls do. And you got another comment out of me... :-(
Oh my, it seems I've hit a nerve for some reason. In the post where pg called you specially out to stop, other people responded to the "troll". I wonder why it was only you who got singled out.
Further, you're assuming the guy was just a troll. Maybe he came on here, saw that even though this was supposed to be a more sophisticated crowd, there was a lot of perl support here, had one big fight and then decided it wasn't worth his time to bother.
>He was posting slams of about your level.
More misrepresentation from you. Most of his "slams" were a bit over the top, where as I'm just stating facts with less hyperbole than he had.
>You don't like Perl (not "perl") and write 10-20% of comments in discussions about it.
I used perl professional for a torturous 5 years. The internet made the correct decision to move away and I'm not going to stand by and let people use propaganda to bring it back. If you people want to keep on using it, go ahead, but stop dragging new programmers down your career dead-end.
>So you're just bullshitting here, as trolls do. And you got another comment out of me... :-(
The lady doth protest too much, methinks (I really love that one!). I'm having a conversation here. You're constantly screaming "troll! troll!" because you have no useful counter-arguments.
I used perl professional for a torturous 5 years. The internet made the correct decision to move away
stop dragging new programmers down your career dead-end.
I think this is the kind of talk to which reasonable people might object.
You've claimed repeatedly to be serious and only argue facts -- so now you not only lied but admitted to be a liar (in addition to your usual personal attacks; chromatic just noted that you're trolling, which you didn't try to contradict).
But the real problem for HN isn't bad trolls like you, it is fools like me that feed them. Bye.
Citation needed?
>chromatic just noted that you're trolling
Is English your native tongue? He quoted me and then claimed a "reasonable" person would be offended. I pointed out that he's a poor choice to make this call. I don't think a reasonable person would be offended at what I said at all. Only an irrational perl fanboy.
>But the real problem for HN isn't bad trolls like you, it is fools like me that feed them.
I'm not sure "troll" means what you think it does. It doesn't mean someone who has points you don't like but have no good answer for.
>>points you don't like but have no good answer for.
Your "arguments" are personal attacks ("the lady doth protest too much", "irrational perl fanboy", etc, etc) and language slams without motivation (see e.g. list by chromatic).
You have no serious arguments -- e.g. what would be better than CPAN, Moose or MooseX::Declare. (You probably never used them, since you don't even know the name of Perl, but write "perl".)
Thanks for making my weekend, troll.
And here is the crux of the issue, as I've stated in the beginning: you're identifying perl as part of who you are (again, read up pg on ID) and taking negative facts or suggestions as personal attacks. An "irrational perl fanboy" (the only part that would be a "personal attack", though generally directed at unnamed persons) is someone who does this.
>since you don't even know the name of Perl, but write "perl"
lol, I don't know anything about perl because I don't bother myself with your conventions? I don't get why people get sensitive about this triviality. If someone through a fit about people saying LISP instead of lisp or Lisp I would assume they were probably retarded.
Ironically, I probably know perl better than you do. Have you ever written any XS code?
>Thanks for making my weekend, troll.
Again with the personal attacks. Honestly, looking back at this thread you stand out to me as more of a troll. Just as you did in that thread where pg called you out on it.
I took one of your lies and insults (that you had made any "points" I couldn't answer) and you only had more insults and lies.
Enough.
Seriously, some advice -- it is common for some to let out steam by being an asshole to people on the Internet, but your lies and insults doesn't seem like healthy behavior. You should check if you need professional help with whatever ails you.
I'm telling you I see a problem, where I see the problem (you see perl as part of who you are) and you see that as an insult. Or maybe you were even calling my bit about not caring how perl is spelled as an insult?
Insults are obviously your "points"... (chromatic had a similar experience.)
Please talk to a professional. I am serious. You're a bit beyond the usual sad trolls.
That's not what I wrote; you're putting words in my mouth. Even if, as you imply, my brain has been so irreparably damaged by my experience using Perl (among other languages) that I am incapable of rationality, that's still a disingenuous discussion technique.
So if you weren't saying a "reasonable person" would be offended what were you saying exactly? And you accuse me of using "disingenuous discussion techniques"?
This is the same kind of intellectual dishonesty people hate Micheal Moore for. Put some strange part in the movie, which is directing the audience to an obvious conclusion and then claim people are "putting words in my mouth" when they point it out because he never said the specific words.