this post was submitted on 24 Mar 2024
787 points (98.6% liked)

Programmer Humor

19817 readers
98 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 57 points 9 months ago* (last edited 9 months ago) (12 children)

Is it wrong that I'm stuck trying to figure out what language this is?

Trying to figure out what string.length and print(var) exist in a single language.... Not Java, not C# (I'm pretty sure its .Length, not length), certainly not C, C++ or Python, Pascal, Schme or Haskell or Javascript or PHP.

[–] [email protected] 88 points 9 months ago (1 children)

OCR exam language, a pseudocode format.

[–] [email protected] 10 points 9 months ago (2 children)

This could run in Javascript if you setup print as an alias for window.alert or console.log

[–] [email protected] 4 points 9 months ago (1 children)

It can run in regular JS; print() just prints the page (ignoring the passed value).

[–] [email protected] 2 points 9 months ago
[–] [email protected] 1 points 9 months ago

The QuickJS interpreter has print as a built-in alias for console.log.

[–] [email protected] 46 points 9 months ago (3 children)

I’m very much guessing that this is just supposed to be a type of pseudocode given the context and vagueness of it.

It’s a big reason why I really dont like pseudocode as instruction to people learning the basics of what programming is. It made more sense 20 years ago when programming languages were on a whole a lot more esoteric and less plain text, but now with simple languages like Python there’s simply little reason to not just write Python code or whatever.

I took an intro to programming class in College and the single thing I got dinged on the most is “incorrect pseudocode”, which was either too formal and close to real code or too casual and close to plain English.

It’s not a great system. We really need to get rid of it as a practice

[–] [email protected] 22 points 9 months ago (1 children)

Especially since python is right there.

[–] [email protected] 6 points 9 months ago (5 children)

I mean once you get beyond bash-like scripts python is esoteric as fuck, adding oop to what is essentially a shell is a terrible idea

That said, there's plenty of languages with good syntax that is still good when you get into more complex stuff (modern C#, scala, kotlin and more)

[–] [email protected] 11 points 9 months ago

The only thing esoteric about python is the bolted-on typing and anything behind a double underscore.

So yeah, it's there, but in front of the curtain it's practically pseudo code.

[–] [email protected] 10 points 9 months ago* (last edited 9 months ago)

I think you’re missing the forest for the trees here pretty heavily.

Yes, Python has some goofy aspects about managing it while performing high level, in depth tasks.

This is a post and a comment chain about pseudocode being taught to people who likely just learned what a “programming language” was several weeks ago. Essentially no one taking the GCSE knows what “bash-like scripts” even means.

[–] [email protected] 8 points 9 months ago (1 children)

I disagree. Python is not "esoteric" when making objects. The syntax is certainly easier than in Java.

[–] [email protected] -1 points 9 months ago (1 children)

The syntax is certainly easier than Java

And VisualBasic's syntax is easier than COBOL, but this isn't a competition to make the least offensive heap of putrid garbage, so why does it matter?

Python works just fine for basic scripts, frankly it's amazing for it, but oop and functional programming is so incredibly obviously badly shoehorned in that huge swathes needs scrapping and version 4 releasing

[–] [email protected] 5 points 9 months ago* (last edited 9 months ago)

Then help me understand please. What do you mean by "esoteric" in regards to oop in Python compared to a language better suited for it?

[–] [email protected] 4 points 9 months ago

What part(s) of python do you think is esoteric?

[–] [email protected] 5 points 9 months ago

Reminds me of 7th grade math class, chapter on estimating. Assignment was "Estimate the following values" with problems like 42+28=? or 14*3=?

One of them was 6*7=? Which having memorized my times tables in 4th grade like they told me to, I knew off the top of my head that it's 42. I wrote that. And it was marked wrong because I was too precise.

[–] [email protected] 1 points 8 months ago

In the 90s my high school used Pascal. That seems reasonable if you only want to teach procedural

[–] [email protected] 28 points 9 months ago

Just pseudocode.

[–] [email protected] 16 points 9 months ago (1 children)
[–] [email protected] 8 points 9 months ago (3 children)

doesnt have print nor allow variable declaration without keywords

[–] [email protected] 25 points 9 months ago (1 children)

print() will print the text to a physical printer with paper and everything. Don't confuse it with console.log and use it in a loop.

[–] [email protected] 8 points 9 months ago

it's so rough learning this by accident

[–] [email protected] 12 points 9 months ago* (last edited 9 months ago) (1 children)

It would have print if it was previously declared as function.

Also, js is as dirty as you want it to be. Keywords are indeed not necessary for declaring variables.

[–] [email protected] 9 points 9 months ago* (last edited 9 months ago)

JavaScript is the language of the assassins, with its infinitely modifiable prototypical setup

Nothing is true

true !== 1

true

true + true + true === 3

true

Everything is permitted

[]+[]

''

[–] [email protected] 5 points 9 months ago

Sure you can write foo = 3 in JavaScript. It’s a global variable and can be referenced as either foo or window.foo.

[–] [email protected] 10 points 9 months ago* (last edited 9 months ago) (2 children)

That recurring puzzle is among the most interesting aspects of this community, IMHO.

[–] [email protected] 8 points 9 months ago

It’s weird that people are so focused on it. It’s pseudocode, and it’s purely meant for day one comp sci students to grasp how data is stored and processed, before they are forced into writing Java, most likely

[–] [email protected] 5 points 9 months ago (1 children)

Most irritating aspect of switching languages. How are switches done in this one again?

•Searches web•

Ah yes

[–] [email protected] 4 points 9 months ago

To be honest, that was the biggest value proposition of GitHub Copilot.

[–] [email protected] 10 points 9 months ago (1 children)

This is quite a cheap answer but maybe it's just pseudo code. We had exercises in university about pseudo code with examples that intentionally broke all syntax systems and conventions to show that not everything has to be executable that you write down in a theoretical computer science homework

[–] [email protected] -3 points 9 months ago (1 children)

It's a shitty question. It's implied by the fact that "24" is wrong that the answer is "6", the length of the string "Monday".

In some languages dot access on objects could give you the properties of the object type (things pertaining to a "day" object) but this would still be ambiguous since a day's length can be measured in many different ways.

In others, it would require you to call length as a function (.length()) or not be available at all, or require you to pass the object into another function [ length_in_seconds(day_x)]

[–] [email protected] 11 points 9 months ago

I think the question is fine, but we have to assume they covered this type of method prior to the exam, where .length would result in the character count of a String.

[–] [email protected] 10 points 9 months ago

My headcanon: it's a language that gets executed by a LLM. Whatever you write, if the LLM can make sense of it, it will execute it.

The output may well be "24 hours".

[–] [email protected] 7 points 9 months ago* (last edited 9 months ago)

It could be Ruby; puts is more common, but there is a print. With some silly context, the answer could even be correct:

#!/usr/bin/env ruby

module DayLength
  def length
    if ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"].include? self
      "24 hours"
    else
      super
    end
  end
end

class String
  prepend DayLength
end

day = "Monday"

x = day.length

print(x)
[–] [email protected] 4 points 9 months ago

Scala and Kotlin are close ones, although those requires variables to be declared with var day = “Monday” (unless the variables are declared elsewhere)

[–] [email protected] 4 points 9 months ago

Pseudocode and/or a variant of lua.

[–] [email protected] 2 points 9 months ago* (last edited 9 months ago)

Same thoughts I had.

  1. Language which allows variable declaration as name = value without any keywords or its a variable declared outside of the example
  2. Has lowercase .length and not .len or other
  3. .length is also a property and not a method? Assuming convention .length() for method call like print(x)
[–] [email protected] 2 points 9 months ago (1 children)

Why not Python? Because it needs print(str(x))?

[–] [email protected] 6 points 9 months ago (1 children)

It's len(str) in Python. Not str.length.

[–] [email protected] 1 points 9 months ago