Does anyone actually use Perl or Python for web? (split thread)

Neither language are really common for web development though – sure, people do it, but it’s not as common as other languages anymore; it makes sense for them still to be on more general programming sites as both are used for non-web development all the time.

I mean seriously, you visit a website and get a .pl extension, don’t you kind-of laugh and go “what is this, 1996?”

The only major place I can think of that still runs perl for serving websites would be Proboards, and that’s just because they’re using a fork of [url=http://www.yabbforum.com/]YaBB… Which makes sense for them since each forum ends up self contained to it’s own directory with no SQL databases involved; to make a new free forum just make a new subdirectory, edit the config file, and point the subdomain at it… it runs. Need to move a user to a different server? Just copy the directory.

Um, I don’t, though I’ll wonder why they’re bothering letting Apache or whoever let extensions through like that.

Both Perl and Python are being used for web development, but specifically I believe web developer with Python is growing. More and more web companies around here anyways are starting to do both Python and PHP… PHP for things like Drupal or Wordpress, Python for all new projects that aren’t those frameworks. Why I expect more chatter in the Python section. Beside the repeating and ultimately useless questions like “What is best Python framework?”. I mean real discussions, like what goes on in PHP.

[ot]

The BBC runs on Perl. Booking.com, the largest hotel booking company in the world runs their site(s) in Perl. IMDB runs on Perl. Of course our local fire department site runs on Perl :slight_smile: using the lightweight microframework Dancer (similar to Python’s flask and bottle frameworks, and Ruby’s Sinatra). In fact it’s looking like Catalyst and Dancer are the two main competing Perl web frameworks, though I suspect the large companies I mentioned earlier (and the place where my husband currently works, the UK’s largest newspaper personal-ads site) use their own home-grown frameworks.

You don’t know of places running Perl because usually it’s not advertised. You’re just assuming they’re running on ASP.NET or PHP because those are more popular.[/ot]

True that… but you know what I mean.

That’s odd, it’s the opposite of my impression of it. I see both being used more and more for system stuff – bootloaders, startup execution scripts, etc… But for web dev? It was my understanding they were strictly an “also ran” alongside Coldfusion, WebL, TCL, etc… Particularly in the case of PERL, which I thought for all intents and purposes was dead on the web except for the hangers on maintaining stuff written in the 90’s. (like Opera’s forums, YaBB, etc…)

That is a most unusual choice of language for web work – given it’s not whitespace neutral for strings – one of the things that makes PHP and ASP more viable for web work… at least if you are writing code that outputs markup. More so given the minuscule system library meaning you’re stuck relying on userland code for many basic operations? Not good.

Sorry, old school in me refuses to treat any interpreted language, particularly those that by default have an immediate mode as a “real” programming language. Reminds me too much of line numbered ROM Basic. See the tinkertoy interpreter I’m writing right now for fun… (well, ok, I’ve not shared it publicly yet, so you can’t actually see it… kickstarter page coming once I get past a certain coding hurdle) – Difference being I’m willing to admit it’s a tinkertoy despite a (planned) robust function library (at least in terms of what it’s for), tokenizer, bytecode caching/compilation, standalone interpreter (for bytecode instead of source distro, akin to p-code) and array offset calls instead of case/if switching…

Both are fine languages – but for web work I’d be shocked to see someone in this day and age choosing either over PHP or even ASP… or Ada… or Java… Being forced to not HAVE a choice supporting old/outdated code, fine… Choosing it for new stuff just leaves me scratching my head; but then a LOT of recent choices by various names in the Industry (Google comes to mind) leave me doing the “stoopid monkey” routine – wondering “What in blazes is going on?!?”

Not sure what you mean by “immediate mode”… you consider the rather poorly written PHP (as far as language structure like camelCase_or_underscore_IDunno function names, etc) a “real” language but Python, which does the same stuff and works the same way except the functions actually stuck to a naming system and uses whitespace (not in strings, in code) as its syntax divider instead of {} (big deal, so what, who cares?), is not a “real” language? I’m doing the o_O and O_o here. (if you’re just dissing all interpreted languages tho then I get it)

My only guess what you mean by “immediate mode” is that there’s an interpreter (IDLE) that comes with Python for some reason, though it’s little different from running a perl -e “some oneliner”. I’m sure someone’s made something for PHP, and someone creating one doesn’t affect PHP the language in any way.

No idea why this matters. The whitespace in Python is just code syntax. It doesn’t affect strings it puts out like HTML. Also, templating engines abound, same as any other language separating code from markup.

Calling it PERL instead of its name Perl does scream 90’s, yeah. Just sayin’. It’s “Perl”. Or “perl” if you mean the actual interpreter. That it stands for Pathologically Eclectic Rubbish Lister is an old community joke.

Now, Perl use in the web has declined, quite a bit… mostly because the cheap hosters who showed up on the scene in the late 90’s had PHP and Apache and people switched. You want to run Perl on a cheap hoster (or Python or Ruby) and you’ll have to do some legwork and begwork to get them to set that up for you (gawd forbid they give you root access to your section so you can set things up yourself). PHP started out as a set of little scripts that ran web sites. It remained monolithic like that. Other languages have these things called libraries (or modules) which people have to download and add to the Core as needed (which is often the problem, like getting your hoster to give you access to CPAN, or gems). So PHP was easier for hosters to offer since they can just have everything someone will need right there on the box.

Python may not be growing in the States for web work… my observation is for here in the Netherlands, which may not reflect other places (but I assumed it did). I hear “Internet media bureaus” (as they tend to call themselves) complaining they can’t get Python devs on board, they all want to freelance, where they can make 10 times the money doing Python (for web) work. Two interviews ago I was told this too, they were a Django house. Django’s pretty much the Drupal of Python, and over here it’s growing, especially among students who’ve been getting out of school and want to start a website for something (Python’s starting to become the “teaching language” in many schools, like MIT, in place of C… not sure I agree with this entirely… replacing Java though sounds great).

ooooh. You will post when there’s the kickstarter page tho, right?

Apologies to the staff if this is drifting into a threadjack…

<hengist>Threadjack! THREADJACK! [b]THREADJACK!!!</b> Bwahahaaa… You’re all gonna die… die… </hengist>
Quick… somebody call Dr. Hartley, Mr. Peterson’s gone off his meds.

Any language you can run single lines by typing them in at a command-line type parameter. For example how you can use Python like it was a command line calculator. That’s ‘immediate mode’ execution… a hallmark of 1980’s ROM Basic and something most serious programmers had thought went the way of the dodo – and now it’s back… even mySQL does it which is… gah.

>PRINT “HELLO”
HELLO
>PRINT 6+8
14
>A=10
>B=2
>PRINT A+B+3
15

Immediate mode. Or at least, that’s what it was called in the 70’s and 80’s.

No, I was actually including PHP in the list because it’s also interpreted… bytecode interpreted, but still the same thing. No immediate mode, so it’s one step up… but…

I’m sorry, but what functions? It’s kind-of built on the C model of 'libraries and frameworks for everything " – which is cute, until you realize it’s an INTERPRETED language – and doing that to an interpreted language is like driving with the parking brake on, since userland code is by definition many times slower than system code. Much like PHP it should be used for glue between optimized system code – unfortunately it lacks many of the tools needed to use it that way for web development.

Though it could be worse, could be RUBY, with it’s abysmally slow interpreter that they keep promising something better will come along… and it never does.

That’s kinda surprising to hear… given it’s been a “also ran” for a decade or more… but I guess if RUBY can come back Frankenstein monster style after being stillborn for a decade thanks to Professor Victor von Railsenstein, stranger things have happened.

Python as the new Pascal… Interesting notion.

Off Topic:

Yup, though it is a game development language aimed at schoolkids on devices like the Raspberry Pi over composite video connections (so 40x25 text mode 320x200 graphics max). You just mentioned educational languages, and that’s exactly where I’m heading – I might make fun of Interpreted languages, but it’s where many of the best coders out there cut their teeth – ROM Basic. A few tweaks to drag it kicking and screaming into the light again I think could really help get kids interested in programming without the headaches of having to ‘jump in with both feet’ into something like C or even Pascal. There is no modern equivalent to the ease ROM Basic provided kids like there were back in the heyday of the Apple II, TRS-80, C=64, VIC=20, Atari 400/800, etc, etc… Why not? There are worse places for kids to start. Get the idea of logic flow in their heads BEFORE you confuse them with scope, pointers, functions, variable passing, escaping values, etc, etc… I’m aiming for something a grade schooler can sit down with the manual and start using immediately without ‘adult’ intervention… which is why I’m also aiming cross platform full-screen only using SDL.

I think this could be it’s own thread, starting at post #68… if someone would like to split it.

IDLE.
If you have Python on a *nix machine, type the command
python
in and you have IDLE open. Type stuff. It executes. You have to hit ENTER to create a blank newline to end a function or loop.

Typical functions? .read(), .open(), etc? They’re methods of objects since everything’s an object (except I guess primitives).

I think it’s more that, because more people have been getting exposed to Python in academia (it’s growing and used rather hugely for science (SciPy) and math (NumPy)), people started writing web frameworks for it. They just released Django 1.4 the other week. The older ones like Plone, Zope… they were used in the early 2000s mostly? not sure.

lawlz. It’s the hipster brogrammers, actually. The brogrammer thing is hilarious, and seems to mention Ruby and fancy Javascript libraries for some reason. http://www.youtube.com/watch?v=Qi_AAqi0RZM

Yeah. This is why Python is being used. They want students in some majors who have to do programming courses to grok programming, and it turns out, starting with C, or even Java, wasn’t working. So long as later they go back and get to C, I’m with it.

Anyway, next time you’re going to start a PHP project, you should check out Python. My main problem with Python so far is the resources for learning it seem to either go on and on and on about how much better Python is than C (whenever there are advantages in interpreted languages, so all other interps would share these same traits when compared to C), and then how they go on about how Perl’s unreadable (so’s Chinese, just learn it first and don’t base your ideas on first-graders’ bad Chinese) and whatnot. And then they decide they need to do ternary operators in a weird way “so C guys don’t get too comfortable, cause ternary operators are complicated and you should code simple” or something. It grates a bit.

That was a joke about the available functionality in the language – the total function library ‘out of the box’ is small compared to some compilers from the 80’s. So much python code seems to be brute force coding things a scripting language shouldn’t be trying to do in the first place.

I noticed that about Python some time ago too – it’s like if you have to run around telling everyone how great you are, you probably aren’t. They spend more time comparing the language to others than in promoting it on it’s own merits.

Never heard it called that – but then my terminology is three decades out of date… something that pisses me off is all these new names for old concepts; as if they’re somehow magically shiny and new… Old school it was called immediate execution vs. deferred execution. In BASIC, you had the prompt… anything you typed at the prompt without a line number was ‘immediately executed’… if you put in a line number, it was ‘deferred’ for later execution… hah, I’ve got a book here that could be fun…

AppleSoft Basic for the IIE, page 46

Most of your BASIC manuals of the late 70’s and early 80’s used that terminology (ok, most ROM BASIC implementations were a form of Microsoft BASIC from 1978 onward) – wasn’t aware they went and called it something different.

Also good for a laugh was AppleSoft basic throws an error if you don’t use an END command – something no other BASIC I’ve ever seen does - the Woz had a funny idea at times on how things should work; so did Bill… since AppleSoft BASIC was licensed from M$ to replace Woz’ Integer BASIC

IDLE is an interpreter, and an in-joke. Named after one of the Monty Pythons, Eric Idle.

If you have Python installed, you just type “python” into the command line. IDLE starts.

I recently downloaded the Mozilla addon-sdk, after I installed it, it tells me I need Python, so I get it.

Of course I had to take a look and play with it a bit. I half expected I wouldn’t like it much but surprisingly I did. Maybe partly because it’s Python as in “Monty” vs. as in “asp” :wink:

I don’t know if I’d use it for a web site, I’m fairly embedded in using PHP. But I can see where I might use it like I do Perl, for “behind-the-scenes” and system stuff.

That’s where it seems to excel IMHO – for when Bash scripts aren’t quite powerful enough, but going to a compiler would be overkill.

Go away for a week and this is what I find when I get back? I don’t really know SitePoint’s culture well enough yet to know whether people are going to scream “Necro!” at me for reviving a four-day-old thread, but I guess I’ll take my chances.

Anyhow, yeah, people are still using Perl and Python for web these days. I get the impression is that Python is still pretty popular (even with Ruby eating heavily into its mindshare), although I don’t care for the language myself.

Perl, on the other hand, I do use. A lot. Including for web stuff, both at my day job (where I’m involved in taking an internally-developed Perl-based research publication and bibliographic/citation management web application and rewriting it (still in Perl) with modern best practices for release under an open license) and for my hobby projects (most of which are web-based games of one kind or another). Prior to taking my current day job, I was freelancing for six years and one of the biggest problems I had was trying to avoid getting pigeonholed as “just a web programmer” as soon as anyone saw that Perl was my language of choice.

As Stomme already mentioned, Catalyst is the big dog in the Perl web framework world and has been for quite some time. About four years ago, a former leader of the Catalyst project started up a new microframework called Mojolicious which looked pretty promising (at least to me), but then someone else started up Dancer, a microframework heavily inspired by Ruby’s Sinatra. Today, Dancer is advancing fast and furious; development on Mojolicious continues, though it’s slowed considerably by defections to Dancer; and Catalyst reminds me a bit of “enterprise” apps - it’s big and heavy and opinionated, but people still have to maintain entrenched Catalyst systems and it gets used for new projects that people think are “too big” for Dancer/Mojolicious to handle.

Naturally, all three of them have “people using our framework” pages, if you want to add to Stomme’s list of who’s doing web development with Perl:

The Cool Kids™ are calling that a “REPL” these days. (Read-Evaluate-Print Loop)

Hey Dave!

Oh heck no. Reviving a year-old thread maybe, and if it’s an informative and on-topic post it’s still okay, because old threads show up in Google so new people may find old threads.

Plus, someone needs to stand up for Perl. :slight_smile:

Given the sites linked to seem to all have broken layouts, massive scripting copypasta, outdated nonsensical markup and are written in tranny or 5 – it does kind-of support the idea that it’s still the province of people who have their heads wedged up the late 90’s backside… though that could just be the natural state of web development and why people are stupid enough to hop on the HTML 5 bandwagon. Transitional – basically saying your skills are in transition from 1997 to 1998… and 5 is just the new transitional.

Christmas on a cracker, another blasted name for a 40 year old concept?

If that makes you jump, you oughtta see how the kids these days are discovering event-driven programming… and think it’s this new thing called Node.js. Lawlz.

Of course they’ve never heard of Perl AnyEvent

khm, non-interpreted languages for web??.. Back to 90’s C in cgi? Cool. But thanks, no) Python is way better for this, really) And who cares about speed of language? I/O access to database is bottleneck most of the time. It’s only a matter for some crazy stuff with few million unique visitors a day atleast.

I use python for web, this site is 100% pure python (webmaster-toolbox.com) and I hosted in google apps engine.
I’m use also c# and java… but python is an other beast.

My personal experience: I can say you to use python if you want developer something totally new or for specific reason (in my case gae).
Really advantages are that python is dynamic language, syntax is really “shorted” and you can count always on python.exe (the interpreter),
you can also count on a good integration with functional language.

There’s a really good framework, django… and others, and library around are good.
Python is not error prone like perl …

In the other side you have only pydev on eclipse to develop, and is not super fantastic.
code completion is not really good cause the dynamic nature of language.
And is not everywhere like php, so sometimes is easy to find good library.

So if you want to make a blog in python I ask you why u don’t use wordpress?
But if you what to make something different like saas or other solution can be a good choise.

About productivities I’m not totally agree that in python you speed up developing by 5 or 8 times, only thing that really speed up dev process is organization and project…

I hope this is useful for you and remember is only my opinion :slight_smile:

p.s. I use python on pc :slight_smile:

Yes, at least I do :slight_smile:

Check this out mod_perl at http://perl.apache.org/
It’s a perl module (perl_mod) that works in apache just like the PHP extension module in php called php_mod
This makes perl execute faster and have better performance than the traditional CGI.

Also, another reason I choose perl for web development is it’s very old and mature, so it does have a very big bunch of free library in http://search.cpan.org/
A lot of advance library such as parser I need can be found there.

Btw, the website in my signature is developed with mod_perl.

Python is the third biggest language on github
https://github.com/languages

Perl weighs in at #8

There’s a lot of Python at Google : http://www.google.com/about/jobs/search/#q=python

P.S.
I’m a Python noob. Just researching what’s available and doable with it for the web. (Instead of just firing up PHP again.)
I started learning Python because many 3D programs (Rhino 5, Modo 601, Blender, etc) use Python as scripting language.