Hacker News new | comments | show | ask | jobs | submit login

I think Perl fell victim to the inner-platform effect somewhere along the way. Larry Wall doesn't want to design a language anymore, he wants to create the ultimate platform for creating languages.

The article points out that Perl can read and execute COBOL if it's configured properly, which is neat, but ... what's the point of saying "this is written in Perl" is it's actually written in COBOL and running on the Perl interpreter? This reminds me a little bit of the JVM. There are dozens of languages that can be converted to JVM bytecode, but only one of them is Java.

Anyway, Perl's endless configurability is a mark against it, in my opinion. When I read Java or C++ or whatever, I have to wrap my head around what the developer intends to do, but the syntax is always the same. With Perl, you not only have to figure out what the developer intended, but what the developer told Perl the syntax is supposed to mean in this particular scenario. That's a big part of why Perl is considered a "write-only" language.

Also, I think we already have a hundred year language: Javascript. It's shitty, but it's good enough, it's forgiving, until it rises up to smite you, and it's ubiquitous. I don't think we'll ever really kill it off.

> Larry Wall doesn't want to design a language anymore, he wants to create the ultimate platform for creating languages.

racket has managed to do that while delivering a pretty damn good language too. i'm long-term optimistic about perl6.

When racket is running on the Chez scheme VM...now that will be special...and fast.

Actually if you define the COBOL slang well, you can add a construct which will allow dropping back down into Perl 6 so that you can intermix both languages and use each to their strengths in the same file.

That is how the string literal and regex sub-languages work in Perl 6.

Frankly while that is a nice feature, and makes it easy to test bug fixes to the compiler using the REPL, I don't think that it is the best selling point. Mostly because it is only used by a handful of modules currently, and most users of those modules don't care how they work.

I think it is better to say that Perl 6 is a rather flat language. Once you learn a feature, you can use it everywhere. For example there are languages that have special syntax for use in list slicing, whereas it isn't special in Perl 6. (instead you can use a lambda to do more complex slicing)

What this means is if you see a construct that you've already seen, but it is used in a place you didn't think it would work, you can pretty much guess immediately how it works. For example an <code>if</code> block can be parameterized using the exact same syntax as parameterizing the block of a <code>for</code> loop. Which is useful so that you don't have to create a temporary variable, or call the same method twice. (It isn't all that useful when using the comparison operators which only return True or False though)

The most oft heard complaint among people who are adept at Perl 6, is about having to go back to another language. I think the main reason for this is Perl 6 bends to your will, and other languages bend you to it's will.

> Javascript

I think Python would be so much better. These languages are almost the same technically, but Python has the better syntax and better errors.

(ok I just realise it hasn't the same support for lambdas but they just make me think of node.js style anyway...)

(as a Perl programmer, FWIW) I think Python is beating Perl due to better support for integrating with C++, or at least more modern C/C++ libraries have bindings for Python. Otherwise, if you argue for syntactic simplicity, you at least have to explain why Lisp doesn't dominate (or why do Lisp dialects based on Java become popular instead of directly Lisp?). I don't understand yet the apparent appeal of Go, except maybe its support for concurrency (definitely needed).

I think it's actually more about the errors than the syntax. But Python getting rid of braces by enforcing indentation is just the way to go IMO.

Don't want to start another tiresome thread about LISP syntax, but I'm one of those people who prefer C style expressions - as long as no heavy higher-level functional programming is required, for which I by now see almost no practical use at all.

As a funny quip, Larry Wall referred to LISP looks as "oatmeal with fingerclips mixed in".

May I ask what exactly you mean with "integrating with C++"?

Because RPerl does exactly this and works with both Perl5 and Perl6 thanks to its own Perl11 philosophy (Perl5 + Perl6 = Perl11).

Basically it translates a medium-magic subset of Perl 5 into C/C++ using Inline::C and Inline::CPP.

You would have to name off a long list of languages before you hit one I didn't think was better than Javascript.

Python does seem to hit the sweet spot of "user friendly" and "maintainable" that Javascript shoots for but never hits.

I actually consider Dart the "perfect" Javascript. I wish it had wider adoption, and ways to integrate a GUI that aren't "AngularDart in a web browser."

Kotlin is my latest fetish. I haven't played around with its JS transpiler yet, or it's native builds, but I'm cautiously hopeful.

haxe comes a little closer to the perfect javascript than dart does, just because it has algebraic datatypes and pattern matching. also one of the easiest languages i've seen to just pick up and start using based on familiarity with other common languages.

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