Log in

No account? Create an account
Ruined for life - Lindsey Kuper [entries|archive|friends|userinfo]
Lindsey Kuper

[ website | composition.al ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Ruined for life [May. 8th, 2007|05:20 pm]
Lindsey Kuper

We keep having conversations like this:

Lindsey: Why doesn't the thingamabob work?
Jesse: Because Perl is bad. You gave it thus-and-such and it was expecting so-and-so.
Lindsey: That sounds like a pass-by-reference versus pass-by-value problem!
Jesse: You are such a CS major. There, I committed a fix.
Lindsey: Okay, but I don't understand about the other doohickey.
Jesse: Lindsey. You have to understand that Perl is very, very bad.

Why didn't they teach us bad programming languages in school? That would have been more practical.


[User Picture]From: glowing_fish
2007-05-09 02:43 am (UTC)
Why don't movies feature bad romantic relationships, so people learn what they are probably going to be going through?
(Reply) (Thread)
[User Picture]From: lindseykuper
2007-05-11 04:32 am (UTC)
Oh, so the point of school was to entertain! I get it now!
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: pmb
2007-05-09 03:13 am (UTC)

So this inspired a conversation between Jesse and me.

Also, hi, I'm Peter and we seem to have friends in common.

(07:28:09 PM) jes 5199: I need your reaction. http://rockstarling.livejournal.com/204306.html
(07:31:23 PM) Peter: My reaction is: Why are you working in Perl?
(07:31:31 PM) jes 5199: *sigh*
(07:31:56 PM) jes 5199: because I haven't sat down and done the line-by-line tranlation into a real language, yet
(07:32:55 PM) Peter: Perl is dynamically scoped but will sometimes close over variables and sometimes not and you can't put an array in an array and you can't pass anything but a scalar to a function unless that array or hash is the only thing you pass.
(07:33:13 PM) jes 5199: those things are true
(07:33:19 PM) Peter: Well, tell them that
(07:33:25 PM) jes 5199: there's also two incompatible syntaxes for calling any function
(07:33:38 PM) Peter: That's CS major talk for "it's all fuxored"
(07:33:49 PM) Peter: is there?
(07:33:52 PM) Peter: there are?
(07:33:55 PM) Peter: What are they?
(07:33:57 PM) jes 5199: Package::function()
(07:34:02 PM) jes 5199: Package->method()
(07:34:05 PM) jes 5199: same namespace
(07:34:12 PM) jes 5199: handles parameters differently
(07:34:12 PM) Peter: W00t
(07:34:17 PM) Peter: fuck
(07:34:24 PM) Peter: seriously?
(07:34:28 PM) jes 5199: seriously.
(07:34:40 PM) Peter: how do they differ?
(07:35:10 PM) Peter: How can they handle parameters any worse than the default "call the arrayify operator and pray" approach?
(07:35:37 PM) jes 5199: Package->method() climbs the inheritance tree. and because of that, they thought they'd like the code to know which package you thought you were calling. so "Package" is prepended to the parameters array as a string.
(07:35:53 PM) Peter: Aha!
(07:36:09 PM) Peter: Because that will allow people to hack on metasyntactic badness to make perl look object oriented!
(07:36:14 PM) jes 5199: right!
(07:36:22 PM) Peter: Fuck. that. shit.
(07:36:49 PM) jes 5199: yeah. Today might have pushed me over the edge.
(07:36:58 PM) jes 5199: I've got two files sitting here, blank
(07:37:09 PM) jes 5199: Import.rb and Import.py
(07:37:13 PM) Peter: How many lines need translating?
(07:37:20 PM) Peter: Both are fine languages
(07:37:38 PM) Peter: Ruby will be less painful a transition, I am led to understand
(07:37:46 PM) Peter: But I do dig on the python
(07:38:57 PM) jes 5199: 3,394 lines of general-purpose code
(07:39:01 PM) Peter: Dude
(07:39:15 PM) Peter: That's like 3 weeks of work for a good translator
(07:39:18 PM) Peter: at MOST
(07:39:28 PM) jes 5199: there's some project-specific code that I basically totally rewrite whenever I have to reuse it, anyway
(07:39:33 PM) Peter: Do not forget the first rule of holes here
(07:39:53 PM) jes 5199: the first hole is the hardest?
(07:40:27 PM) Peter: "There is an old military doctrine called the First Rule of Holes: If you find yourself stuck in one, stop digging." --the late Rear Admiral Eugene Carroll, US Navy (Ret.)

...many lines elided due to livejournal's max comment length...

(08:09:57 PM) Peter: I'm posting a transcript of our conversation in her livejournal
(08:10:05 PM) jes 5199: alright
(Reply) (Thread)
[User Picture]From: karzon
2007-05-09 04:24 pm (UTC)

Re: So this inspired a conversation between Jesse and me.

Perl is awesome for being able to pull something functional out quickly. For anything larger in scale, though? Screwed. And using Perl for OOP? Ha!

I use it for easily parsing files full of strings and little else at this point.
(Reply) (Parent) (Thread)
(Deleted comment)
(Deleted comment)
From: (Anonymous)
2007-05-10 09:04 am (UTC)

Re: So this inspired a conversation between Jesse and me.

Perl is dynamically typed and hence suffers from the vagaries of all dynamically typed languages...statically typed languages are utilized once you reach the age of reason and begin building complex systems. In addition its a syntactic garbage can not to mention all the compatibility issues. For these reasons and many more Perl is know as 'The Duct Tape of the Internet'
P.S. - The proper spelling is fuXXored, or for something completely fuXXored, conFuXXored
(Reply) (Parent) (Thread) (Expand)
From: boojum
2007-05-09 05:15 am (UTC)
Perl obscures one of my internal programming rules: when the computer/compiler/debugger is mean and wrong and lying to me and stupid and wrong, it's time to go home, eat something, or go outside.

Sometimes with Perl, I'm actually right about the computer being a poopyhead.
(Reply) (Thread)
[User Picture]From: idealisms
2007-05-09 07:08 am (UTC)
They did teach you bad programming languages, because all languages are bad. But since it's unavoidable, there's not much you can do other than roll with the punches.

Brad had a decent comment about this.

There are some things that perl gets very right, like lexical scoping and anonymous functions.
(Reply) (Thread)
[User Picture]From: jes5199
2007-05-09 07:50 am (UTC)
I cannot help but wonder if that bit about "too verbose in python" is some kind of joke

$a = sub { ($x) = @_ ; $x }
print $a->(1);

a = lambda x : x
print a(1)

a = lambda {|x| x}
print a[1]
(Reply) (Parent) (Thread) (Expand)
(Deleted comment)
(Deleted comment)
[User Picture]From: lindseykuper
2007-05-09 04:24 pm (UTC)
Yeah, I'm kidding with the "Why didn't they teach us bad programming languages?"

This isn't me on a soapbox here all "PERL SUX". I guess I tend to agree with Brad: better the devil you know.
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: lindseykuper
2007-05-09 04:11 pm (UTC)
No, I was being facetious.

But I was thinking of Scheme.
(Reply) (Parent) (Thread) (Expand)
(Deleted comment)
[User Picture]From: oranges4oranges
2007-05-09 04:54 pm (UTC)
I think the liberal arts curriculum should be totally reshaped along these lines:

*The English department should start studying the far more commercially relevant Danielle Steele and Dan Brown.
*Philosophy can offer a seminar on Mitch Albom or Ayn Rand. *The Dept of Psychology can become the Dept of Self Help and Coping.
* Political Science... Don't get me started on what Political Science will become.

Also, regarding the "all programming languages are bad" idea. Just because all programming languages are bad in some respects does not imply that all programming languages are equivalently bad. I mean, all baseball teams have strengths and weaknesses. That doesn't mean the Tacoma Rainiers are going to beat the New York Yankees any time soon.
(Reply) (Thread)
From: (Anonymous)
2007-05-11 08:48 pm (UTC)

Bad little languages

I dont think all languages are bad, just that all languages are flawed. In fact I think the programming process is flawed and that the computer should do the programming for you, like this:
(Reply) (Parent) (Thread)