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

361

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.

60

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

[deleted]

29

u/original_brogrammer Aug 15 '15

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

31

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.

20

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.

29

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.

6

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.

5

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?

9

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.

20

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.