Damian Conway On Perl 6 and the Philosophy of Programming
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.
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.
No. The real problem is that it is not backwards-compatible with Perl 5, making its rate of adoption guaranteed to be almost zero.
== Jez ==
Do you miss Firefox? Try Pale Moon.
See also: Python 3
When you knock the "rough edges" off of Perl, there's nothing left.
Precisely. How long have we had Python 3.x now? And almost everyone is still using 2.x
Get free bitcoins: http://freebitco.in
In other words, even they couldn't maintain a large codebase written in Perl.
Growing beards.
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.
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.
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.
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
The statistics do not support your observation. Of the major powerhouse python projects, over 80% have python 3x support. Here is a site that tracks the top 200 python packages.
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.
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.
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. :)
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.
Blasphemy is a human right. Blasphemophobia kills.
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.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
Fortran is very good about backwards compatibility...can still compile and run Fortran-77 programs in the newest incarnations...
Finding a working card punch is the problem.