Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Damian Conway On Perl 6 and the Philosophy of Programming

Soulskill posted about 3 months ago | from the secretly-being-developed-by-blizzard dept.

Perl 132

M-Saunders writes: Perl 6 has been in development since 2000. So why, 14 years later, hasn't it been released yet? Linux Voice caught up with Damian Conway, one of the architects of Perl 6, to find out what's happening. "Perl 6 has all of the same features [as Perl 5] but with the rough edges knocked off of them", he says. Conway also talks about the UK's Year of Code project, and how to get more people interested in programming.

cancel ×

132 comments

Sorry! There are no comments related to the filter you selected.

But (0)

Chrisq (894406) | about 3 months ago | (#47383667)

Will it run on HURD?

Re:But (2, Funny)

Waffle Iron (339739) | about 3 months ago | (#47383693)

Will it run on HURD?

That will have to wait.

The HURD developers have just noticed that their code would be more elegant if it were implemented using the new features of a modern programming language, so they're now starting a ground up rewrite of the HURD kernel in Perl 6.

"The real problem..." he explained (1, Funny)

Anonymous Coward | about 3 months ago | (#47383671)

"Was that we wrote Perl 6 in Perl 5. What the hell were we thinking? It's Perl all the way down."

Re:"The real problem..." he explained (5, Insightful)

jez9999 (618189) | about 3 months ago | (#47383719)

No. The real problem is that it is not backwards-compatible with Perl 5, making its rate of adoption guaranteed to be almost zero.

Re: (5, Insightful)

Anonymous Coward | about 3 months ago | (#47383741)

See also: Python 3

Re: (1, Insightful)

rubycodez (864176) | about 3 months ago | (#47383823)

or even Python 2.6 and Python 2.7, they're different langauges.

that immaturity regarding backward compatibility is the big problem with open source, Linux is even worse with the fluid kernel ABI

Re: (4, Insightful)

RoccamOccam (953524) | about 3 months ago | (#47383961)

or even Python 2.6 and Python 2.7, they're different langauges.

Hyperbole, much? I don't think that I've had to change any of my thousands and thousands of lines of code to accommodate the move from 2.6 to 2.7 (if I did, it was so minor that I can't remember doing it). Adding features does not make them different languages.

Re: (1)

Anonymous Coward | about 3 months ago | (#47384763)

I remember having to make exactly one change: to replace a class with its instance as __enter__ / __exit__ no longer work as class methods.

Or Java 1.5 vs 1.6 vs 1.7 (0)

Anonymous Coward | about 3 months ago | (#47384129)

Yes, we do have Java applications that we haven't upgraded. Mostly because they work so there's no reason to touch them.

Re: (0)

Anonymous Coward | about 3 months ago | (#47384185)

Fortran is very good about backwards compatibility...can still compile and run Fortran-77 programs in the newest incarnations...

Re: (0)

Anonymous Coward | about 3 months ago | (#47385405)

Fortran scales from my mobile class processor to top500 super computers.

Re: (0)

Anonymous Coward | about 3 months ago | (#47385855)

This. The "old" languages still work and work beautifully. People would be surprised at just how many shops still use Fortran. I prefer the older, more polished languages myself. Perl is by far my favorite language for general sysadmin duties. While I'm not an accomplished programmer, I use Perl for making my life easier. It lets me work smarter not harder. I struggle sometimes with understanding Perl's "noise", but at the same time, I love the language and what it lets me do. I would love to take formal Perl 6 language classes and actually use the language in a more meaningful way.

Re: (0)

Anonymous Coward | about 3 months ago | (#47385935)

And, fortran crushes C in benchmarks, without a header file with crafty macros to obscure the code.

Re: (1)

Grishnakh (216268) | about 3 months ago | (#47385599)

Wrong. Linux doesn't need a static ABI, because the device drivers are all distributed as part of the kernel. Only makers of proprietary modules, and sycophants and nay-sayers complain about the Linux kernel not having a static API and ABI for kernel modules.

If you're talking about application code, the kernel is static on that. You can take binaries from 15 years ago and run them on a modern Linux kernel. The problem you'll usually run into is that the libraries that binary links to are not fully backwards-compatible, including glibc. That's not a kernel issue. In practice, it's rarely an issue at all; even glibc is very stable. The other libraries, OTOH, are a different matter (things like gtk, Qt, and myriad other small libraries). Even here, though, there's a pretty good effort to maintain some backwards compatibility. Most distros have qt3 compatibility packages, for instance, if you need to run applications built with Qt3. But if you've wrote an application 15 years ago that only uses kernel system calls, it should work just fine now.

The problems with Perl6 and Python are real, though, and I think do hurt their adoption a lot. It's a real PITA if you can't run an older program because the newer versions of its interpreter aren't backwards-compatible.

Re:"The real problem..." he explained (2)

xorsyst (1279232) | about 3 months ago | (#47383769)

Precisely. How long have we had Python 3.x now? And almost everyone is still using 2.x

Re:"The real problem..." he explained (-1)

Anonymous Coward | about 3 months ago | (#47383821)

Python 2 is horrible trash. It makes me want to vomit. Three is a greater number than two, and for good reason.

Re:"The real problem..." he explained (1)

Grishnakh (216268) | about 3 months ago | (#47385605)

Yes, but people don't want to dig up all their older programs and modify them just because the language has changed and is no longer backwards compatible. Inertia is a very powerful thing, and these language developers have really screwed up by forgetting this.

Re: "The real problem..." he explained (0)

Anonymous Coward | about 3 months ago | (#47383859)

Wrong been using python3.x for ~12months. some people don't like change and prefer to whine - meanwhile in the real world people like me get on with it - Quietly.

Re: "The real problem..." he explained (5, Informative)

CRCulver (715279) | about 3 months ago | (#47383935)

Wrong been using python3.x for ~12months. some people don't like change and prefer to whine - meanwhile in the real world people like me get on with it - Quietly.

I'm not a professional developer, but I do meet a lot of Python devs, and I always ask them which version of Python their shop is developing for. The answer so far has always been Python 2, often Python 2.5 or Python 2.6.

Recently I wanted to write up a new application for something since existing ones don't fit my particular needs, and do it in Python 3 since I prefer its Unicode handling, but virtually all the libraries I could think to use were still Python 2 only, and a look at the mailing lists showed that these libraries' developers were positively hostile to Python 3 ("if you want to start a Python 3 fork, fine, but you'll get zero recognition or help from me").

Anecdotal? Sure. But still enough to get one down.

Re: "The real problem..." he explained (-1)

Anonymous Coward | about 3 months ago | (#47384055)

Reaaaly!
Which libraries? Which developers?
Since you failed to mention any, I'll answer with the default:

Crappy libraries and bad developers (aka whiners). RIP

Re: "The real problem..." he explained (4, Informative)

Anonymous Coward | about 3 months ago | (#47384095)

The statistics do not support your observation. Of the major powerhouse python projects, over 80% have python 3x support. Here [appspot.com] is a site that tracks the top 200 python packages.

Re: "The real problem..." he explained (4, Informative)

CRCulver (715279) | about 3 months ago | (#47384123)

My observation consisted of two parts which you have erroneously conflated. When it comes to professional devs, shops may nonetheless continue to work with Python 2 even if major libs are ported to Python 3, because Python 2 is what they are used to and those major libs will continue to support Python 2 for years to come.

The second paragraph represented only my experience as a casual Python user. Yes, big-name libraries have been converted, but there are still loads of smaller apps and libraries that appeal to hobbyists that are Python 2-only and will remain so until someone outright forks them away from their current, Python 3-hostile administrators.

Re: "The real problem..." he explained (-1)

Anonymous Coward | about 3 months ago | (#47384147)

Well as a hobbyist get off you complaining butt and fork? You might learn something rather than listening to these professional whingers.

Re: "The real problem..." he explained (1)

Dutch Gun (899105) | about 3 months ago | (#47384251)

That's been my impression of Python as well. Fragmentation and stagnation, despite some assurances to the contrary. Granted, impressions don't necessarily equate to reality, but there you go.

It feels like some language devs tend to discount the importance of backward-compatibility for developers, or the longevity of code in general. People complain about all the cruft of C++ (which it does have in spades, of course), but part of the enormous success of C++ was undoubtedly due to the refusal of the standards committee to impose wholesale incompatibilities upon the language, even when that would have made serious improvements, and of course, the original decision to make C++ compatible with C as a starting point. Had they done otherwise, the result likely would have been the stillbirth of the language or the later fragmentation or damn near stagnation you see in Python, where years after the release of 3.x, developers *still* are stuck on 2.x because of the compatibility issues.

Re: "The real problem..." he explained (5, Interesting)

radtea (464814) | about 3 months ago | (#47384969)

Fragmentation and stagnation, despite some assurances to the contrary

I use Python both professionally and for fun (and C and C++ professionally) and don't get this impression at all. Major upgrades to shipped languages take time. The willingness to impose one-time incompatible changes for the sake of long-term improvements takes guts, and can certainly go wrong, but can very well be worth it.

As someone who worked in C and C++ pre-standardization, I recall (perhaps erroneously) that the new standards broke a fair bit of existing code, albeit in minor ways. And of course Microsoft's broken C++ compiler in Visual Studio 6 resulted in a vast amount of borken code when they finally caught up to the rest of the world.

That said, I haven't moved to Python 3 yet, although I believe all the libraries I really care about have now migrated. I tend toward late-adoption, though, and my sense of the Python community is that everyone accepts we are eventually going to move to 3. Big changes take years, so it's no surprise that lots of developers are still on 2.x. The real watershed will be when a few major libs (wxPython, say) drops 2.x support.

In contrast, my impression of Perl 6 is that it's the language of the future, and always will be. It appears so different from Perl 5 that it's a little weird the same name is being used, and it has mostly resulted in sucking the oxygen out of Perl 5 development.

Re: "The real problem..." he explained (1)

Grishnakh (216268) | about 3 months ago | (#47385619)

As someone who worked in C and C++ pre-standardization, I recall (perhaps erroneously) that the new standards broke a fair bit of existing code, albeit in minor ways. And of course Microsoft's broken C++ compiler in Visual Studio 6 resulted in a vast amount of borken code when they finally caught up to the rest of the world.

Yes, but there's a big difference: C and C++ are compiled languages. So if your application was built with some older compiler, and now C++ has been standardized and your application doesn't compile with the new compilers, that's only a problem for you, the developer. Your users won't see it, because they're using the compiled form, which still runs just fine (unless the OS has changed to break it of course).

When an interpreted language breaks backwards compatibility, everyone is affected. Users suddenly can't run the program when their interpreter is updated.

Re: "The real problem..." he explained (1)

jma05 (897351) | about 3 months ago | (#47386261)

Well. I do write Python. I have seen no cause for hostility. I still write in Python 2.7 (there is no reason AFAIK to still use 2.5 or 2.6 other than just not bothering; 2.5 is just too old) but intend to switch whenever Linux distros make 3.x the default.

> "if you want to start a Python 3 fork, fine, but you'll get zero recognition or help from me"

That's pretty anecdotal. Here is something a bit more objective.
http://docs.continuum.io/anaco... [continuum.io]
Of the 197 Python 2.7 packages from Anaconda distro, 141 are there in 3.x. So it is 71.5% there among the more common packages. At large, pypi shows 3.3 at 35% of 2.7 or 50% of 2.6.

Re:"The real problem..." he explained (1)

jbolden (176878) | about 3 months ago | (#47384191)

Python 3 is much less of an improvement over 2 than Perl 6 is over 5. For better or worse the changes are much larger. A better comparison is Oak to Java, C++ to C# or VB6 to VB.NET

Re:"The real problem..." he explained (0)

Anonymous Coward | about 3 months ago | (#47385115)

Simple rewrite libraries that work in Python 3...

Re:"The real problem..." he explained (2)

jbolden (176878) | about 3 months ago | (#47384179)

Werl first off Perl6 has a Perl5 mode so it is backwards compatible. But even if that weren't the case Perl may have lost a lot of momentum but I don't see any reason that non backward compatible languages can't thrive. For example neither JavaScript nor ActionScript was backwards compatible with their parent language (ECMAScript) and both languages did rather well. Java was not backwards compatible with Oak. Perl itself was not backwards compatible with awk/sed scripting. Etc... There are a lot of cool ideas in Perl6. If they can get a hearing they might be successful. They just lost a tremendous amount of time.
 

Re: "The real problem..." he explained (0)

Anonymous Coward | about 3 months ago | (#47385053)

Every major version of Lua is backwards incompatible. The past 10 years has seen 5.1, 5.2, and 5.3. And in our community we love it. The reason it has so many powerful features (much more advanced than python) is because the VM developers are free to take out trash that has proven ineffective and replace it with something more sane, even if it means breaking a core API. For example Lua 5.2 has lexical environments with _ENV which replaced setfenv. They both allow to interpose global variable lookups for parts of code, but _ENV is much more elegant and less hacky.

Re:"The real problem..." he explained (0)

Anonymous Coward | about 3 months ago | (#47385079)

For example neither JavaScript nor ActionScript was backwards compatible with their parent language (ECMAScript) and both languages did rather well.

ECMAScript came after Javascript so why would JavaScript be backwards compatible with it?

Java was not backwards compatible with Oak.

Which is pretty irrelevant since next to no one used Oak.

Perl itself was not backwards compatible with awk/sed scripting.

Well, yes, since Perl is not a new version of either of those. Why would it have been?

Your examples are horrible and pretty much not analogous to the situation at hand.

Re:"The real problem..." he explained (1)

phantomfive (622387) | about 3 months ago | (#47384353)

No. The real problem is that it is not backwards-compatible with Perl 5, making its rate of adoption guaranteed to be almost zero.

I believe the intention is to have compatibility, through Parrot. I believe this is also a major reason it hasn't been released yet.

Re:"The real problem..." he explained (2)

NoNonAlphaCharsHere (2201864) | about 3 months ago | (#47383777)

In other words, even they couldn't maintain a large codebase written in Perl.

Re:"The real problem..." he explained (1)

eriks (31863) | about 3 months ago | (#47384117)

What?! No. He Doesn't say that anywhere in the interview, and it's only true for the "v6.pm" implementation of Perl6. Rakudo is implemented in C, Perl6 and NQP. Pugs is written in Haskell. then there's the PGE, and Perlesque, and other stuff too.

Re:"The real problem..." he explained (0)

Anonymous Coward | about 3 months ago | (#47385101)

The person you responded to was making a "joke". They are pretty new so I'm not surprised you've never heard of them before.

Re:"The real problem..." he explained (1)

cpghost (719344) | about 3 months ago | (#47385779)

Perl 6 in Perl 5, as in Lisp in Lisp?

Perl 6 now with Duke Nukem Forever (0)

Anonymous Coward | about 3 months ago | (#47383697)

Perl 6 now with Duke Nukem Forever.

Just one more thing.

Fourteen years? (-1)

Anonymous Coward | about 3 months ago | (#47383709)

Come on! In fourteen years you can develop your OS from scratch. Bearing in mind that Perl is noting more than a scripting language, what the hell have they been doing?

Re:Fourteen years? (3, Funny)

broknstrngz (1616893) | about 3 months ago | (#47383793)

Growing beards.

Re:Fourteen years? (1)

jma05 (897351) | about 3 months ago | (#47384077)

More like the baby they had 14 years ago is starting to grow one.

Yes, I know the one about hackers and beards.

Re:Fourteen years? (1)

benjfowler (239527) | about 3 months ago | (#47384327)

More like the baby they had all those years ago, is now old enough to vote and fuck.

Re:Fourteen years? (1)

ArcadeMan (2766669) | about 3 months ago | (#47383901)

Since the last 14 years, it's been a lot easier to access porn on the Internet.

Re:Fourteen years? (1)

multi io (640409) | about 3 months ago | (#47384467)

Come on! In fourteen years you can develop your OS from scratch. Bearing in mind that Perl is noting more than a scripting language, what the hell have they been doing?

If I had to make a totally uninformed guess, I'd say they probably read and learnt so much about languages, interpreters and compilers and stuff that they're now totally insecure as to how to proceed.

Now I know why it took so long (3, Informative)

NoNonAlphaCharsHere (2201864) | about 3 months ago | (#47383743)

When you knock the "rough edges" off of Perl, there's nothing left.

syntax (4, Insightful)

gbjbaanb (229885) | about 3 months ago | (#47383809)

Now, the problem with that is that it only works if you know the distinction in the syntax. So people coming into Perl get lost in this sea of ampersands and stars and all sorts of other symbols that we use in the language. And until you get past and it sort of goes into your hind brain and it just translates immediately, âah yes, thatâ(TM)s a scalar variableâ(TM), âah yes, thatâ(TM)s a type blah, blah, blahâ(TM), it doesnâ(TM)t make sense. It looks like line noise, and I fully agree.

and he's quite right, because the alternative is COBOL or Visual Basic where every syntax element is spelled out in big words.

There's a reason Windows developers like C# and not VB.NET (even though its the same thing) and that's the syntax. With C# you get to use a few symbols for various bits that are otherwise spelled out in VB. Perl just takes it to the limit - which means you have to understand what those symbols mean, and if you don't it looks like garbage. Which, I guess, C# looks like to my mum.

So in other words: learn your shit guys, you can't criticise perl for looking like crap unless you have taken the time to learn the language. And then you'll think it looks correct.

Re:syntax (3, Insightful)

rubycodez (864176) | about 3 months ago | (#47383843)

wrong, the alternative is not a COBOL or VB like syntax, talk about fallacy of asserting the consequent.

plenty of well designed languages don't have the sigil mess, it's a sign of scatter-brainedness and design by urban sprawl

Re:syntax (2)

gbjbaanb (229885) | about 3 months ago | (#47383895)

rubbish. Each element of a language is something you write down. It can be a symbol or it can be a word (or in Java it can be aReallyLongSetOfDescriptiveWords.In.Namespaces)

The point is that once you've learned the sigils, its no longer a mess, its perfectly understandable and concise. There's no scatter-brainedness there or urban sprawl of design.

Think of it this way - if you took any language and converted it to a set of machine-readable numbers, they'd all look the same. The difference is that you want something humans can understand. Perl manages this - _but_ you have to take the time to learn what those symbols mean. In more wordy languages, you get the understanding from the English names they use instead. The trouble with that is that many people read the English words and assume they fully know what they mean, when they don't necessarily do.

We've all seen people who'll use a list when an array would be more appropriate. Even though the code works, they haven't learned the difference between the collection classes and so pick the wrong one. In perl you can't accidentally make that mistake because there is no 'array' or 'list' there's just 2 squiggles.
Learn the squiggles, you learn which one to use, your code becomes correct.

Re:syntax (0)

Anonymous Coward | about 3 months ago | (#47383917)

There's no scatter-brainedness there or urban sprawl of design.

Human brains aren't perfect. Some languages are simply easier to make mistakes in, thanks to insane syntax.

Re:syntax (3, Interesting)

Will.Woodhull (1038600) | about 3 months ago | (#47384489)

Some languages are simply easier to make mistakes in, thanks to insane syntax.

This is true. But it is not a weakness of the language. And do not confuse "insane syntax" with what Perl is doing.

Perl holds the author responsible for using the correct syntax in the context of the author's intent. It does not hold the author's hand, as if they were some kindergartner just starting out. One of Perl's axioms is that the author must be allowed to do whatever he wants without regard to some imposed notion of what is reasonable, for who but the author can know what his intention is?

That means a lot of shitty scripts are written in Perl. But a lot of shitty verbiage is written in English. Neither language should be judged by the great volume of shitty work that has been done in it. Each language should be judged by the quality of the most elegant work that it can support. There has been some really elegant work done in Perl.

For critical work, Perl should not be used by programmers who do not yet know what they are doing. While it is a great language for studying things like Knuth's work on algorithms (TAOCP [wikipedia.org] ), it should not be used in mission critical applications until the student has mastered those studies.

And determining which programmers are sufficiently capable to be allowed to use Perl is a problem for the IT managers and software team leaders. It is not a problem with the language.

Don't try to use Perl in anything that is mission critical until you no longer need the training wheels.

Re:syntax (3)

Blakey Rat (99501) | about 3 months ago | (#47384853)

This is true. But it is not a weakness of the language

Yes it is. Programming languages are designed for human beings to use. If it's difficult for human beings to use them, that is 100% a weakness of the programming language.

I don't know what you think programming languages are for if not humans.

Re: syntax (0)

Anonymous Coward | about 3 months ago | (#47385425)

I see, you don't know perl, or Chinese. But billions of people do.

You see a mess, when people who know what they are looking at see the meaning of the mess.

Re:syntax (2)

module0000 (882745) | about 3 months ago | (#47385715)

The mass of programming languages are designed for the mediocre mass of programmers. The others make the top tier of cash, and don't find Perl "too hard!" at all.

Re:syntax (1)

narcc (412956) | about 3 months ago | (#47387505)

That wasn't the parent's complaint.

Re:syntax (0)

Anonymous Coward | about 3 months ago | (#47385721)

I seriously disagree with you.

The measure of a language is neither the worst nor the best code written in it. The measure of a language is what the average program is like. A language should be supportive and written for the needs of the typical developer. That way you are appealing to the majority of the target audience.

By your standard, Perl could only be judged by the 5-10% of the elite code and programmers. Gee, that only means that 90-95% of Perl content is crap; I guess you must be right, Perl's a great language!

indeed (0)

Anonymous Coward | about 3 months ago | (#47387635)

Code reviews and developer training/education will eliminate shitty perl code. Having said that, most software engineering teams are led by clueless fucks who neither want to spend even a thought to code reviews nor the professional development of their tesam members.

IT is in a much worse shape that most othert professions; quality and professional development is basically left to the individual developer, or in other words, to chance.

So again:In the hands of a skilled developer, Perl scripts look nicely, are readable, maintainable, properly commeted, nicely decomposed in functions/classes. All variables are nicely named according to problem domain.

That would be the case if Perl were done by a German craftsman instead of a guy with the cynical mindset of an internationalist bankster.

Re:syntax (0)

Anonymous Coward | about 3 months ago | (#47383953)

We've all seen people who'll use a list when an array would be more appropriate. Even though the code works, they haven't learned the difference between the collection classes and so pick the wrong one. In perl you can't accidentally make that mistake because there is no 'array' or 'list' there's just 2 squiggles.
Learn the squiggles, you learn which one to use, your code becomes correct.

What a load of horsecrap. Not understanding the difference between array and list has NOTHING to do with if those things are named 'array' and 'list' or 'squiggle 1' and 'squiggle 2'. That's like saying colour blind people can learn to see colour if they only stop using words 'red' and 'blue' but instead use '&' and '$'. Nope.

I notice you don't even tell us what the squiggles are ...

Re:syntax (2)

module0000 (882745) | about 3 months ago | (#47385719)

I notice you don't even tell us what the squiggles are ...

There is a man page for that, do your own homework if you are capable of comprehending the textbook.

Re:syntax (1)

rubycodez (864176) | about 3 months ago | (#47383967)

I've done perl development for years, it is a mess

Re:syntax (2)

sylvandb (308927) | about 3 months ago | (#47384193)

rubbish. ...if you took any language and converted it to a set of machine-readable numbers, they'd all look the same. The difference is that you want something humans can understand. Perl manages this - _but_ you have to take the time to learn what those symbols mean. In more wordy languages, you get the understanding from the English names they use instead. The trouble with that is that many people read the English words and assume they fully know what they mean, when they don't necessarily do.

Rubbish is a great word.

Your squiggles idea has been thought, tested and practically failed decades ago.

APL much?

Learn the squiggles

sdb

Re:syntax (0)

benjfowler (239527) | about 3 months ago | (#47384345)

I'm a professional developer.

The syntax of Perl is uniquely idiotic, particularly the utterly fucked weak type system, and the difficulty for doing things the right way, and the ease in doing things the wrong way.

I refuse to learn it properly. I'd rather expend the mental effort required, on more useful, sane and productive languages.

Re:syntax (3, Insightful)

Bill_the_Engineer (772575) | about 3 months ago | (#47384397)

Everything you just said is easily explained by:

I refuse to learn it properly.

Re:syntax (0)

Anonymous Coward | about 3 months ago | (#47384453)

No. He's right.

You don't need to be a master of something to know that something is garbage. In fact, the more time you put into learning and mastering something, the less likely you are to see it for what it is simply because doing so would mean you have to admit you wasted your time learning garbage.

Re:syntax (1)

jbolden (176878) | about 3 months ago | (#47384475)

Except that we know historically Perl was hugely successful it led to the explosion in dynamic languages. It drove the gateway interface and the move towards webforms away from a static web. It became the dominant system admin language....

Re:syntax (0)

Anonymous Coward | about 3 months ago | (#47384595)

>In fact, the more time you put into learning and mastering something, the less likely you are to see it for what it is simply because doing so would mean you have to admit you wasted your time learning garbage.

Exhibit A: C++

Re: syntax (0)

Anonymous Coward | about 3 months ago | (#47385471)

Most people cant tell Perl from the regular expressions.

They would be equally confused with bash scripts that use them, or Java, C, or whatever.

Not knowing what they are looking at, while asserting its Perl, is a fault of many who assert they are great at programming.

Re: syntax (0)

Anonymous Coward | about 3 months ago | (#47387647)

The use of weakly typed languages is a general sign of economic depression. If your employer cannot afford to give you, the software engineer, the time to create proper type systems and make the necessary type conversions, then your employer essentially is cash-strapped.

But yeah, this world has been fucked over by the cynical, nihilist bastard banksters. Even large corporations arent properly funded these days.

But how is Perl here different from Python or PHP ? As far as Iknow, they are all equally cheap on this aspect.

Re:syntax (1)

Dutch Gun (899105) | about 3 months ago | (#47384525)

Some people criticize any language that doesn't meet some sort of "purity" standard, but languages and programming standards evolve over time, but perhaps they haven't clearly thought through the alternatives. There are only three possibilities that I can see.

1) The language stagnates, stubbornly refusing to fix flaws or grow over time.
2) The language rejects old "mistakes" and breaks backward compatibility in order to change or add new features, fragmenting the community.
3) The language grows to incorporate new features while retaining backward compatibility, thus becoming "bloated" or "a mess".

Personally, I think option 3 is the most attractive option of the bunch, and, if I'm not mistaken, this seems to describe Perl fairly well (I'm more familiar with C++, which has a lot of similarities in the "old cruft and baggage" department).

Obviously, many newer languages have the benefit of design-wise hindsight, but new languages also have an uphill battle to carve out a proper ecosystem and prove to be a long-term viable programming candidate. Some programmers are attracted to new and shiny things (we all are to some degree), but for serious work, devs need a language that can be counted on as a workhorse.

Re: syntax (0)

Anonymous Coward | about 3 months ago | (#47387691)

I am also a C++ developer and use Perl only to create validation algorithms and to make the odd analysis script to check something.
Yes, Perl does have a learning curve, but then it is actually fun to use.

The lack of type safety clearly is a securit issue, but this is not important if I can control the input data. As always, use the right tool for a certain job. Dont try to analyze biosystems using Marxism, for example.

Re:syntax (2)

Blakey Rat (99501) | about 3 months ago | (#47384833)

Human brains are finite. The simpler* a language is, the more likely the developer can fit the entire thing in his head and still have room for the actual problem he's trying to solve.

If your programming language is unusable without weeks of rote-memorization, it's a bad language. That's not to say C# or VB.Net are better languages than Perl; just that your argument to the contrary doesn't make sense.

The best, ideal, language would have near-zero cognitive load, so none of the programmer's memory is consumed for the quirks of the language and all of it is available for the problem being solved.

*) Simpler being defined as, "easier to fit in your head", which is completely circular definition but you get what I'm getting at I hope. I think nobody would argue that JavaScript is simpler than Perl, for example.

Re: syntax (0)

Anonymous Coward | about 3 months ago | (#47385499)

regular expressions, with perl's split,map,grep,sort and basic loops, complicated thoughts are expressed easily.

If great programmers stopped asserting such, and learned RE well, they might get beyond baby talk.

Re:syntax (2)

gbjbaanb (229885) | about 3 months ago | (#47385501)

TBH I'd rather have a small language that is a lot of small, well defined building blocks and make what I need out of it (maybe I played with lego too much as a kid), than a language that has the kitchen sink in it somewhere - or worse, has 3 kitchen sinks in it because they kept on adding them in different versions. (yes .NET, you)

So I'd say perl or C are better languages than C# because they are small. Once you know the basics, you can do anything in them. With C# I'm forever finding new things I didn't know it could do or things it does if only I had the newer version.

With a small language, you can build self-contained libraries that fulfil your need for expansion of new features as they are invented, and replace them if needed.

I think this is the best, a language should be like an kernel, not a full OS with minesweeper, notepad and media player just because they could be added to it.

So I think I agree with you :-)

Re:syntax (0)

module0000 (882745) | about 3 months ago | (#47385727)

Human brains are finite. The simpler* a language is, the more likely the developer can fit the entire thing in his head and still have room for the actual problem he's trying to solve.

Simple languages for - wait for it - simple developers.

Re:syntax (1)

narcc (412956) | about 3 months ago | (#47387515)

Right. Because unnecessary complexity is what makes a language great...

Let me guess, you only program in whitespace and brainf*ck?

Re: syntax (0)

Anonymous Coward | about 3 months ago | (#47383965)

Sounding elitist. But I'll give you a newbie pass (c#)
I'll spell it out quite simply:
"It's not necessary..." To get a job done.
A lot of what people don't understand about syntaxs chosen for languages like ruby or python (and still whine about - I'm not advocating but providing an example of syntax) - is that curly braces and semi colons are not (always) necessary and it has been successfully proved so.
So wouldn't it be logical to not over do it? (Perl)

As a personal example - I picked up JavaScript in a weekend. I don't think the same could be said about perl IMO.

Re:syntax (0)

Anonymous Coward | about 3 months ago | (#47383997)

You want symbols? Then try APL. The grammar is about as simple as a language's grammar can be: scan everything from right to left. An operator may accept zero, one, or two arguments. There are no rules of operator precedence to memorize. You can use parens to group subexpressions, but the general flow is still always right to left.

And no sigils.

Re:syntax (1)

HiThere (15173) | about 3 months ago | (#47385379)

Yeah, but find a keyboard to type it on.

OTOH, the "succesor" (J?) didn't do so well either, even after becoming easier to use on a standard keyboard.

The problem with APL is that it was aimed at a subset of the problem of computing that is vanishingly small. Like any decent computer language you CAN do nearly anything computable in it, but it's target was mathematical matrix manipulation in cases where an interpreter is fast enough. Unfortunately, MathLab came out before it was in common use among the target population, and MathLab was a lot easier to learn. And can more easily import libraries from other languages.

Still, if the early keyboards had been a bit more flexible, and APL had been a bit easier to adapt to business use cases, it might have become a dominant language. It would still have both the problems and the benefits of Chinese, however.

Re:syntax (1)

Anonymous Coward | about 3 months ago | (#47384127)

>So in other words: learn your shit guys, you can't criticise perl for looking like crap unless you have taken the time to learn the language. And then you'll think it looks correct.

I have learnt my shit. Been doing perl off and on for over 10 years in a medium-sized OO code base. I take care to make the code readable and I'm never confused by what I come across.

But when writing new code, I swear I'll probably never get used to those fucking sigils. I still have to refer to old code or perlreftut every once in awhile even though I've done complicated data structures hundreds of times. Perl could still be perl without that dog's breakfast.

Re: syntax (0)

Anonymous Coward | about 3 months ago | (#47384167)

I reckon I've mastered regex.
But still suck at perl.
Depressing.

Re:syntax (0)

Anonymous Coward | about 3 months ago | (#47384793)

With C# you get to use a few symbols for various bits that are otherwise spelled out in VB. Perl just takes it to the limit - which means you have to understand what those symbols mean, and if you don't it looks like garbage....

No, no, no. TECO takes it to the limit. :)

From Wikipedia (1)

FilmedInNoir (1392323) | about 3 months ago | (#47383857)

" As of 2009[dated info], multiple Perl 6 implementations are under development, but none of them are considered "complete". "
So, there have been releases of Perl 6 but no finalization, but aren't most programming languages like that now?
e.g. C# has 6 versions and Java (12ish, according to Wiki). Languages forever evolving.
I know PERL is old and people except it to be more rigid like Fortran (even with new versions), but Fortran isn't being used for web apps, etc. that see constant technological innovation.

Re: From Wikipedia (0)

Anonymous Coward | about 3 months ago | (#47387715)

I am quite positive you could write modern web-apps in FORTRAN, too. And they would probably have a much smaller number of exploitable bugs.

It is much more a social problem (young, cheap, enthusiastic programmer-slaves dont know FORTRAN, so PHPis used).

even more rough edges (4, Funny)

rubycodez (864176) | about 3 months ago | (#47383991)

Larry went crazy, incorporating everything and the kitchen sink into Perl 6 and continues even now.

Imagine a swiss army knife with fold-out basketball, urinal, blender, spark plug gap tester, hog nose tag plier, etc.

what a farce, HURD may be still be floundering after a longer time but Perl 6 has gone in more directions

Re:even more rough edges (0)

Anonymous Coward | about 3 months ago | (#47384369)

Perl 6 is a major redesign of Perl. As such, it's suffering from Second System Effect. Wall obviously never read Brooks.

Re:even more rough edges (1)

walkeraj (1234310) | about 3 months ago | (#47384711)

But, it's coming this Christmas!

Re:even more rough edges (2)

tnk1 (899206) | about 3 months ago | (#47385331)

I honestly fear it may already be too late for perl6.

Let's just look at this like any other software development project. Perl 6 may well be heads and tails above Perl 5, or even other languages, but it has seriously lost momentum to other languages.

It is good to have a roadmap, and good to change, but they should have settled on like the top 5 features that they really wanted, come up with a solution for it, and released it. At this point, they're just in a cycle of taking so long that the innovation curve is out pacing their development curve and they keep holding back.

Perhaps they became oversensitive to the criticism that perl wasn't cutting edge enough and so tried to chase some line of purity that would shut everyone up forever, but it has turned it into a death march. Personally, just a few improvements like ditching the sigils and some performance enchancements would have been worth a major version upgrade to me.

Perl is still relevant only because of the code that already exists in it, and the people who know it. The longer they take to end the uncertainty of perl6, the more people will become comfortable with other languages which are new or have moved on, and the less code there will be in perl, relative to other projects.

I like perl and I have been waiting for Perl 6 to take off, but at this point, I don't know what I would do with it other than piss off people who are using ruby or python or something else to so sysadmin/DevOps work. If I have to learn to be as good at ruby or python as I am with perl, I'm not going to bother with perl any more.

The problem is they gave it the wrong name. (1)

Anonymous Coward | about 3 months ago | (#47387671)

They created a language that won't run Perl code and called it Perl. Then they tried to add everything to it at once. Then they created a platform for running interpreted languages to run it on, then they created another one, and then another one, and then another one. So after 14 years Perl 6 is still just a grammar that has no standard working implementation and is of no practical use. And because it is useless no one will invest time in finishing it and no one will ever use it to build anything.

Perl 5 is useful, because of lots of stuff is written in it, mostly stuff that was cobbled together on the fly. And Perl is a terrible language to maintain because it allows you to everything a dozen different ways, using obscure rules of English grammar as an organising principle, operating on unnamed variables without any readable structure or comments. Which is why they invented Perl 6, except that it doesn't exist. And porting Perl 5 code to Perl 6 ,if it did exist, would be harder than maintaining Perl 5 code.

They should have just called it Godot.
“There's no lack of void.”

 

Re:The problem is they gave it the wrong name. (0)

Anonymous Coward | about 3 months ago | (#47387731)

They should have called it New Perl and renamed Perl 5 as Classic Perl.

Rough edges... (1)

QuietLagoon (813062) | about 3 months ago | (#47384419)

..."Perl 6 has all of the same features [as Perl 5] but with the rough edges knocked off of them"...

Hmmmm... it takes 14 years to remove some rough edges from Perl 5? There must be some really rough edges, Probably why Perl seems to be in decline.

Re:Rough edges... (1)

jbolden (176878) | about 3 months ago | (#47384495)

They were.

1) Not designed all the way for unicode
2) Not designed for parallelism effectively
3) Doesn't have internal access to its own grammar
4) Doesn't have access to a powerful type system

etc... Perl 6 is a huge step up.

Re:Rough edges... (0)

Anonymous Coward | about 3 months ago | (#47385141)

etc... Perl 6 is a huge step up.

For all its 5 users.

Upward incompatible indulgence (1)

Baldrson (78598) | about 3 months ago | (#47384657)

Its self-indulgent to design an upward incompatible programming language (and, no, Perl 6 is hardly alone in this as others have pointed out about Python3, etc.) without looking for your keys some distance from the lamp post [slashdot.org] .

"...on Perl 6"? Um, no. (1)

walkeraj (1234310) | about 3 months ago | (#47384747)

This title is incorrect. He barely talks about Perl 6 at all! Stick to the facts, Soulskill; you'll end up with less disappointed readers when you don't go for misleading clickbait.

A story about Damian... (4, Interesting)

rjh (40933) | about 3 months ago | (#47384857)

At OSCON 2006 I was sitting in one of the green rooms (the spaces set aside for speakers before presentations). My laptop was open and I was happily hacking away on a project. As I killed a bug and checked the code back in, I muttered under my breath, "Python, I love you. You make the hard stuff so easy."

I noticed a few seconds later the room had gone utterly silent. I looked up, and sitting at the table across from me was Damian Conway, tapping away on his own laptop doing his own thing. I blinked a couple of times and suddenly noticed the entire room was expecting a Perl-vs-Python argument to erupt.

Damian looked up from his work, noticed everyone was looking nervous. He looked over at me, I gave a "I don't know what's up with them, uh, help?" look and a shrug.

Damian then looked back at the crowd and grinned. "Listen, the only thing I love more than Perl is well-written software, even if it's written in Python." He looked back over to me. "Kill a bug, didja?" I nodded. He gave me a smile and a thumbs-up, then returned to his code. I returned to mine, and after a few seconds the room let out his breath.

I love Python. But the only thing I love more than Python is well-written software, even if it's written in Perl. :)

Perl 6-the best thing that ever happened to Perl (0)

Anonymous Coward | about 3 months ago | (#47385001)

I've always thought that Perl 6 was the best thing that ever happened to Perl. While all the people who wanted to change things just to break stuff were off on Perl 6, building the non-deterministic, ever-changing, gargantuan tar pit to swallow Perl, everyone else ignored them and Perl 5 has been useful, stable, and almost change-free for a very long time, giving system administrators and others a stable platform to build tools on that won't be yanked out from under them in a year or two. This kind of stability is wonderful. I could just do my job, and not have to keep up with random, gratuitous change. Perl 5 is mature and useful, and doesn't need to change.

I'm seeing this now with Python 3 - it's the playground for the people who want to break and change Python, and everyone else is ignoring it.

Re:Perl 6-the best thing that ever happened to Per (1)

jandrese (485) | about 3 months ago | (#47385153)

In some ways Perl 5 is getting the best of both worlds. 10 year old modules still work just fine pretty much every time, but really good features in Perl 6 get backported by people who are tired of waiting.

BINGO (0)

Anonymous Coward | about 3 months ago | (#47387745)

I have a CS degree and consider myself being a Âsoftware engineerÂ, not a ÂprogrammerÂ. Based on reading lots of applied CS literature, my own work since 1995 and based on reflecting about this trade and other trades, my conclusion is: The world of software development and IT would be in a much better shape if people knew the old and mature tools instead of running after the latest fad. Other trades have much better education systems than the CS folks. Since CENTURIES.

The key ideas of Fortran and Algol are actually very powerful, if only the software creators (engineers and all those amateurs) would understand and appreciate them. Unfortunately, most folks think that new==better.
Which in most cases is NOT true. C is a regression relative to Algol (think of all the undefined behaviour from wild type casts, raw pointers etc). Unix is a regression relative to many mainframe operating systems. But most people just know the Unix and the very similar Windows model. Dynamic languages also incur massive security risks from the lack of data type systems. But hey, they are quick and dirty. And someone beat the propaganda drum, while noone drummed for Fortran.

  So, maybe the Applied CS Trade (so to speak) should focus on using all the hard-won knowledge of the 1950s and 1960s instead of running after the latest, almost surely crappy invention of some hipster with a loud drum. Start with learning an appreciating Pascal. Do until you get the Enlightenment.

Perl for learning OO (2)

SpaghettiPattern (609814) | about 3 months ago | (#47385477)

Conway states Perl isn't the ideal fist language and I sort of agree. I OTOH have found Perl awkwardly useful for learning OO. As in Perl 5 you had to roll your own inheritance, you definitely understood it better as a consequence. I transitioned to Java SE and I actually prefer the strong typing as it makes messing up that little harder. Perl is still in my toolbox and I do advanced system programs with it. You know, stuff that both Bourne and Java are bad at.

Re:Perl for learning OO (0)

Anonymous Coward | about 3 months ago | (#47385893)

Perl lets you use OOP if you want. It doesn't force you. Rumor has it (_Higher Order Perl_, Mark Jason Dominus), that Perl is also good for functional programming.

Re:Perl for learning Smackdown (0)

Anonymous Coward | about 3 months ago | (#47387705)

Conway states Perl isn't the ideal fist language and I sort of agree.

Java SE, Official Programming Language of WWE

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>