3 ms·
Perl has had a really rough time. When I was in my Bioinformatics Grad program, back in 2016 I briefly considered learning Perl b/c there was/is still a lot of
by Decabytes 6y ago
Perl has had a really rough time. When I was in my Bioinformatics Grad program, back in 2016 I briefly considered learning Perl b/c there was/is still a lot of tooling written in Perl. I was able to get by and at this point I will probably never learn it for my job. I'm not poopooing the language. I think language design is hard, and it sucks that once a language reaches 1.0 it's shackled by decisions that will come to haunt it decades later.
It really sucks that popular open source projects have to face so much abuse on a daily basis. Sometimes I wonder if this is a product of the internet or programmers in general. I've had plenty of bad experience on stack overflow, and various other programming forums even just asking questions, so I can only imagine what it's like being a maintainer of something people actually use.
If I ever create something popular that people use, I'd probably move it to gnu savannah, or use svn or mercurial, to make it harder to contribute and weed out the haters. But I've never made anything useful enough to warrant that.
- mumblemumble 6y agoMy pet hypothesis is that, if your social life is primarily mediated through a computer, you're effectively performing a version of the Harlow's rhesus monkey experiments on yourself. https://en.wikipedia.org/wiki/Harry_Harlow https://en.wikipedia.org/wiki/Harry_Harlow My much more charitable hypothesis is that it's just easier to take your frustrations with life in general out on the Internet, because it's so easy - especially when you're experiencing stress or anxiety - to lose track of the full reality of the fact that there's another real live person at the other end of the tube. Basically, the Internet encourages us to behave solipsistically.
- xeromal 6y agoI love this idea. I have a pet idea too that's a little different. You know how dogs get fence anxiety which causing them to viciously bark or attack the fence when they see another dog or strange person? Oftentimes, if you open the fence and let them greet the dog or person, they are completely at ease. They just don't like being unable to assess the situation. I see the internet or driving cars as an example of that. You don't see the human behind the computer or car, you just see the enemy and you act accordingly. I think if you had to meet or see that person face to face, you'd automatically have empathy and no longer be a dick.
- mumblemumble 6y agoAgreed. That's actually one of the reasons why I hate driving, and prefer to use public transit whenever possible. I can feel the experience of being in a car making me less empathetic.
- xeromal 6y agoYeah, A lot of people say I've very friendly and I do my best to be a great human bean, but I definitely road rage from time to time and it makes me sad. Self-driving cars and more public transit can't come any sooner!
- MauranKilom 6y agoWord-less xkcd about this: https://xkcd.com/438/ https://xkcd.com/438/
- watwut 6y agoAt least some if not most of these people are doing exactly same thing to people they meant normally. They do it to juniors, colleagues, partners, siblings. But in real life it is easier to tell you off. They do it pretty much anyone who is not in position to set boundaries and stop them.
- nerdponx 6y ago> I think language design is hard, and it sucks that once a language reaches 1.0 it's shackled by decisions that will come to haunt it decades later. Eh. Perl 7 is coming out, and the list of differences with Perl 5 fits in a small blog post [0]. I get that everyone got spooked by Perl 6 becoming Raku, but this is a very narrow change for a new major version. The whole point of bumping to a new major version is that you can make backward-incompatible changes. But when the new version is just a new collection of defaults seems really silly to me. Why not just add a "use new_defaults;" pragma or something that just turns on this handful of new options? [0]: https://www.perl.com/article/announcing-perl-7/?ref=alian.info https://www.perl.com/article/announcing-perl-7/?ref=alian.in...
- orev 6y agoGiven the state of Perl, I really think that launching a Perl 7 is crucial to its survival. Perl 5 has evolved a lot over its time, so it does make sense to draw a line in the sand with the new version number, but more critical is to simply signal that Perl is not dead, and to get people thinking about a “new version” since Perl 6 is now gone.
- ether_at_cpan 6y agoWe haven't really gotten seriously into the discussion yet of what perl 7 will include. All that's happened so far is one person made a premature announcement of what they wanted, (parts of) the community objected, and we backed up and created a governance process. I certainly want perl 7 to be more than what has been so far ascribed to it, to make the major version number change truly worthwhile.
- b2gills 5y ago> Why not just add a "use new_defaults;" pragma or something that just turns on this handful of new options? Umm. Yes exactly. The thing is that it will instead be spelled as: use v7; There is already plenty of precedent for doing exactly that. use v5.10; ## enables the use of `say` `state` etc # use feature qw(say state); use v5.12; ## does the same as above but also ## - makes `use strict` mode the default ## - enables 'unicode_strings' feature # use strict; # use feature qw(… unicode_strings); use v5.16; ## all of the above, plus # use feature qw(… fc current_sub unicode_eval evalbytes); use v5.28; ## all of the above, plus # use feature qw(… bitwise); One question is what quantity and quality of changes are necessary for jumping from `v5.xxx.yyy` to `v7`. There is also a question of what happens if you don't have a `use v_;` or equivalent statement. (This is not an exhaustive list of questions.) --- Personally I would think that `v7` should make the currently experimental signatures the default. It should also make the new Cor class experiment/prototype available with the `class` keyword. (Perhaps even a `method` keyword, but that is not strictly needed.) Since both of those are currently being developed/designed, I think that `v7` should wait until then. --- Other things that `v7` _might_ enable/change is things like the following. (Slightly edited from: https://stackoverflow.com/a/6163129/1337 https://stackoverflow.com/a/6163129/1337 ) I am not necessarily suggesting any of these, they are just possibilities. use utf8; use strict; use autodie; use warnings; use warnings qw< FATAL utf8 >; use open qw< :std :utf8 >; use charnames qw< :full >; use feature qw< say state switch unicode_strings unicode_eval evalbytes current_sub fc postderef_qq bitwise >; no feature qw< indirect >; use IO::Handle; use File::Basename qw< basename >; use Carp qw< carp croak confess cluck >; use Encode qw< encode decode >; use Unicode::Normalize qw< NFD NFC >; END { close STDOUT } if (grep /\P{ASCII}/ => @ARGV) { @ARGV = map { decode("UTF-8", $_) } @ARGV; } $0 = basename($0); # shorter messages $| = 1; binmode(DATA, ":utf8"); # give a full stack dump on any untrapped exceptions local $SIG{__DIE__} = sub { confess "Uncaught exception: @_" unless $^S; }; # now promote run-time warnings into stack-dumped # exceptions *unless* we're in an try block, in # which case just cluck the stack dump instead local $SIG{__WARN__} = sub { if ($^S) { cluck "Trapped warning: @_" } else { confess "Deadly warning: @_" } }; It might even start using object based exceptions by default. Again, one of the questions is what quantity and quality of changes are necessary for jumping from `v5.xxx.yyy` to `v7`. (My only real opinion is that I think that signatures and Cor-like objects should be included. So it should wait until their designs are fully hammered out. The rest can be done in stages with `use v5.xxx.0;` until then.)
- oceanghost 6y agoTrue story... when I was in college (2000 or so) I took a Sysadmin course at university. The course project was to implement something like the AMANDA backup system in Perl. I found Perl insanely frustrating, and hit a deal breaker problem I just couldn't figure out in a timely fashion. I also had no interest in learning Perl as it was clear that it was on its way out even back then. Our grading was largely automated-- the assignment specified what parameters the program took, what the name of the script was to be, where to store the backup files, what format they were to be in, everything. I figured it would be unlikely a human looked at my code... so... So I wrote one line of Perl that passed the command line parameters to a Python script, which did the actual work. Turns out, they did review the code... I got a C which, was probably a courtesy as I was employed by the same university as a system admin.