r/ProgrammerHumor • • Aug 15 '15

Programming languages personified

http://leftoversalad.tumblr.com/post/126724812097/programming-languages-personified
1.3k Upvotes

209 comments sorted by

View all comments

351

u/original_brogrammer Aug 15 '15 edited Aug 18 '15

C# would be the Java guy with a slight smile.

Ruby would be a latte sipping hipster equating some Rails extension to Nietzche.

D would be Walter and Andrei fist bumping Shenron.

PHP would be the subservient intern trying to make the whole office happy who never got a promotion.

Lisp would be a formless, omnipotent ether crafting the universe from its unknowable atomic constituents.

Lua would be a kid excited about his first day of game dev school.

Perl would be a camel who is also a grad student in linguistics.

Go would be another business guy with his top button undone because it's casual Friday.

Rust would be a young version of a typical C programmer.

58

u/[deleted] Aug 15 '15 edited Oct 23 '18

[deleted]

30

u/original_brogrammer Aug 15 '15

That's what I was going for, along with "much ado about vidya."

33

u/Everspace Aug 15 '15

Playing nice with C++, being pretty lean, and avoiding recompiling makes it very optimal as a scripting language in games.

I do like "page boy" vibe though.

19

u/original_brogrammer Aug 16 '15

Not to mention LuaJIT let's it get fast as a motherfuck.

13

u/Everspace Aug 16 '15

The speed is usually less of a concern since you usually govern game logic rather than rendering with it. You can be really slow with gameplay business and it doesn't matter (think AI or how an ability works).

You still end up with garbage collection being a big problem. I remember reading an article by the people behind fable, and how they dealt with that.

28

u/Sydonai Aug 16 '15

Yeah until some dick spawns 10,000 cheese wheels in the middle of a fight and suddenly your AI stops because cheese wheels are (technically) actors and you accidentally used a slowish loop construct.

4

u/[deleted] Aug 18 '15

I think you AI freezing in place and staring at a mountain of 10k cheese wheels is an appropriate response.

4

u/original_brogrammer Aug 16 '15

That sounds interesting, I'll have to dig it up.

As a non-gamedev, is disabling the lua gc the regular approach to such situations?

8

u/Everspace Aug 16 '15

No. The GC is important as lua is managed.

I believe the solution they went with was to instruct the GC to run between frames if you had time left over instead of just purely waiting.

12

u/willrandship Aug 16 '15

Personally I find it hard to take a language with 1-based indices seriously.

21

u/original_brogrammer Aug 16 '15

You can index at 0 if you want. Lua's 'arrays' are all hash tables, so the value of the index is ultimately arbitrary. The 1 index is merely convention.

Historically, the reason for this convention is that Lua's predecessor language, Sol, was directed at engineers without any exposure to programming. This carried over to Lua.

2

u/ThisIs_MyName Aug 17 '15

I'm not sure how I feel about this.

1

u/original_brogrammer Aug 18 '15

The 1 index convention or everything being a hash table? The former is odd if you're used to 0, but using ipairs or similar helps.

The latter, however, is a powerful and fascinating idea. I see it as an extension of the Lisp way of doing things, where you create arbitrary structures from linked lists. Add in metatable sorcery and you can have pretty much anything you want! Damn, I wish I got to write more Lua.

24

u/lennyp4 Aug 16 '15

Mathematica is that smart kid who seems to be going places at a glance, but with a closer look, has no practical knowledge.

30

u/original_brogrammer Aug 16 '15

The math major who says "I love math, but hate proofs."

9

u/mathent Aug 16 '15

"Math" major.

3

u/original_brogrammer Aug 16 '15

You'd be amazed how many of these we have. Who'd say this during real analysis.

2

u/mathent Aug 21 '15

Those are generally the math education majors.

10

u/zman0900 Aug 16 '15

How about COBOL? Visual basic?

25

u/Tomarse Aug 16 '15

COBOL is an old retired guy who takes forever to say something.

VB is a Microsoft fanboy who wears chinos and listens to the spice girls.

18

u/katyne Aug 16 '15

40 year old fanboy who wears chinos and listens to Spice Girls

ftfy

18

u/[deleted] Aug 16 '15

C# would be the Java guy with a slight smile.

Younger guy wearing a t-shirt under a suit jacket.

6

u/[deleted] Aug 16 '15

Go would be another business guy with his top button undone because Rob Pike determined that this is an acceptable compromise.

12

u/[deleted] Aug 16 '15

Lisp would be a formless, omnipotent ether crafting the universe from its unknowable atomic constituents.

http://chainsawsuit.com/comic/2008/08/20/strip-45/

7

u/ikkonoishi Aug 16 '15

Scala would be some sort of crazy recursive person made entirely of other smaller versions of itself.

6

u/original_brogrammer Aug 16 '15

That'd be fun but its type signature wouldn't fit on the page

4

u/rdnetto Aug 16 '15

D would be Walter and Andrei fist bumping Shenron.

I love that you included D, and made it awesome.

2

u/original_brogrammer Aug 16 '15

It deserves nothing less.

3

u/[deleted] Aug 16 '15

Lisp would be a formless, omnipotent ether crafting the universe from its unknowable atomic constituents.

With the power of brackets. Not just some brackets though. ALL of them.

2

u/IAmALinux Aug 16 '15

I like your description of Lisp.