this post was submitted on 25 Nov 2023
185 points (97.0% liked)

Technology

73370 readers
5124 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related news or articles.
  3. Be excellent to each other!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, this includes using AI responses and summaries. To ask if your bot can be added please contact a mod.
  9. Check for duplicates before posting, duplicates may be removed
  10. Accounts 7 days and younger will have their posts automatically removed.

Approved Bots


founded 2 years ago
MODERATORS
 

An After-School Program Teaches Teens Java and Python::The students also learn how to design board games and video games

all 42 comments
sorted by: hot top controversial new old
[–] Linkerbaan@lemmy.world 29 points 2 years ago (5 children)

PUBLIC STATIC VOID MAIN STRING ARGS

[–] WindowsEnjoyer@sh.itjust.works 9 points 2 years ago (1 children)

Say it with me:

PUBLIC STATIC VOID MAIN STRING ARGS

load more comments (1 replies)
[–] onlinepersona@programming.dev 9 points 2 years ago

INT MAIN INT ARGC CHAR POINTER ARGV ARRAY BODY

[–] floridaman@lemmy.blahaj.zone 3 points 2 years ago

you know how it goes

[–] eerongal@ttrpg.network 2 points 2 years ago (1 children)

As of java 21, you can actually just use:

void main()

[–] morrowind@lemmy.ml 2 points 2 years ago

You'll definitely get to use Java 21 in whatever job you get.

[–] dlrht@lemm.ee 1 points 2 years ago

This had me burst out in laughter real hard omg

[–] mothattack@lemmy.ml 17 points 2 years ago

The world can be so cruel.

[–] Hovenko@iusearchlinux.fyi 10 points 2 years ago

“Python::The” That looks like Perl tho.

[–] pineapple_pizza@lemmy.dexlit.xyz 7 points 2 years ago (1 children)

Why after school? I was able to take programming classes in highschool in 2010. In the us

[–] jasondj@ttrpg.network 2 points 2 years ago

2002, but it was Visual Basic. I got a fucking C in that class because I spent more time helping other kids figure out the assignment than spending time putting worthless clutter in my interfaces to the teachers standards.

Oh well. At least I learned how to write a GUI to track the hackers IP address.

[–] onlinepersona@programming.dev 6 points 2 years ago (1 children)

Kids in Asia are way ahead of that. Some countries have had programming on their curriculum for more than a decade

[–] realharo@lemm.ee 3 points 2 years ago* (last edited 2 years ago) (1 children)

I had programming (Pascal) in school in a random-ass country in Europe 20 years ago (I was like 14).

This has been widespread all over the world for a long time.

[–] onlinepersona@programming.dev 2 points 2 years ago

At 14 I could barely get a for loop and if statement working properly. Pascal then VB for me, once a week for 2 years. Only really started programming in uni. Some Asian countries start in primary school at as early as 3 years old. It's as important as languages to them. By 14 they're already doing robotics and writing social media clones.

We are quite far behind in the west.

[–] pivot_root@lemmy.world 4 points 2 years ago (1 children)

Back when I was in school, corporal punishment was the norm. I would still prefer that over Java.

[–] Fades@lemmy.world 4 points 2 years ago (2 children)

We get it, you have no idea what modern Java looks like

[–] ____@infosec.pub 13 points 2 years ago (2 children)

I know exactly what modern Java looks like, and it could be beautiful. But… legacy cruft and lazy devs make it painful. And tech debt, let’s be honest.

I’d view a greenfield project rather differently, but those are unicorns.

[–] pivot_root@lemmy.world 4 points 2 years ago

I’d view a greenfield project rather differently, but those are ~~unicorns~~ written in Kotlin.

[–] BrianTheeBiscuiteer@lemmy.world 3 points 2 years ago (1 children)

I don't know a single language that's immune to the things you just mentioned.

[–] stardreamer@lemmy.blahaj.zone 1 points 2 years ago

Haskell is still as beautiful as the day it was first made.

Except for class methods. We don't talk about methods.

[–] pivot_root@lemmy.world -4 points 2 years ago (2 children)

I get it, you have no idea what trying to optimize around an ever-changing JIT recompiler looks like

[–] Valmond@lemmy.mindoki.com 2 points 2 years ago (1 children)

Found the guy thinking java can be as fast as C/C++

[–] pivot_root@lemmy.world 1 points 2 years ago (1 children)

The just-in-time compiler isn't bad, but the rest of it is. An optimized hot loop has the potential to emit better instructions than a C/C++ compiler not using PGO, but you're never going to see that in any real workload.

If you could rip out/avoid the garbage collector, give it the ability to use escape analysis to avoid heap-allocating every single object, and prevent it from implicitly making every function virtual, then maybe. But at that point, you might as well just a different language.

[–] Valmond@lemmy.mindoki.com 1 points 2 years ago (1 children)

Ha I love it when I'm right 😁😉

[–] pivot_root@lemmy.world 1 points 2 years ago (1 children)

There's a difference between the JIT being able to emit better native code than an unguided compiler, and the language being as performant as another language. Java is never going to be as fast as C or C++, and that's something you can blame its design for.

[–] Valmond@lemmy.mindoki.com 2 points 2 years ago

They traded speed for safety, that's why, not something right or wrong that you should "blame" anything for IMO.

[–] soulfirethewolf@lemdro.id 2 points 2 years ago (2 children)

Java is a good language if you're a beginner, but if you've already coded before in other languages, it's going to suck.

[–] sebsch@discuss.tchncs.de 4 points 2 years ago (1 children)

Especially for beginners its a bad language. You have the understand artificial concepts about classes, objects, abstract states before you re able to learn the important stuff like if/else, looping etc pp.

I would always give beginners a language which is at least in their way as possible.

[–] Pipoca@lemmy.world 1 points 2 years ago

You don't really have to.

You can just handwave public static void main, and only deal with primitives, then static functions, before introducing objects.

That's what they did at my high school. It's weird, and there's much better ways and languages to introduce procedural programming, but it's possible.

[–] realharo@lemm.ee 3 points 2 years ago* (last edited 2 years ago)

They should've just picked Kotlin.

It also encourages good basic habits, such as not making a variable mutable unless you specifically need to (val is way more common than var, the IDE makes them very visually distinct).

[–] netchami@sh.itjust.works 2 points 2 years ago (1 children)

Java... I started with Java myself when I was a teen. It's not a good idea.

[–] aluminium@lemmy.world 21 points 2 years ago* (last edited 2 years ago) (3 children)

I think Java is still a good language for beginners. The tooling around it is really good and it catches lots of issues at compile time.

[–] BrianTheeBiscuiteer@lemmy.world 2 points 2 years ago

Ditto. Been a Java developer for over 10 years and the tool maturity more than makes up for its faults as a language.

[–] starman@programming.dev 1 points 2 years ago* (last edited 2 years ago)

In my opinion, C# would be better for this job. It is similar, but has many features that simplify the code, such as top level statements, LINQ, collection expressions and stuff like that. It's also way more popular in game development and that's what most teens are interested in

[–] netchami@sh.itjust.works -4 points 2 years ago (2 children)

I'd recommend Python or JavaScript to beginners. Also, Java is dying out right now.

[–] aluminium@lemmy.world 12 points 2 years ago (2 children)

I seriously don't get why Python is so popular for learners. Its a weird ass very isolated language syntactically. The libraries for it are great but still.

[–] netchami@sh.itjust.works 4 points 2 years ago

JavaScript sometimes can be weird as hell. That's why I prefer Python. I don't know, for me it seemed logical from the beginning. Java definitely ain't better.

[–] Linkerbaan@lemmy.world 4 points 2 years ago (1 children)

Because it dared to change the shitty syntax of bad syntax languages so humans can actually read it.

[–] aluminium@lemmy.world 7 points 2 years ago* (last edited 2 years ago)

Its probably bias to what you are used to the most. I think for example copy pasting stuff around in C like languages is way easier than the tab mangling one has to perform in python.

Also python has so plenty of bizarre (i.m.o. not very readable) syntax beyond that. Like

def __init__(self) : for a constructor

the most verbose lambda syntax for something that should make it less verbose to inline functions def x = lambda x: x + 1

logical operators being words while numerical and comparative ones aren't def x = not a or (b <= c)

private methods not really existing thus needing underscores as a crutch

I don't wanna hate on python, the ecosystem and libraries around it are amazing but people saying python is the gold standard in terms of syntax and "readability" is questionable i.m.o.. There also is a reason why many of new modern hyped languages (which don't have to abide to backwards compatibility to some other language like mojo) like Rust, Kotlin, Go, Zig, and Swift are C style langs.

[–] FourThirteen@lemmy.world 4 points 2 years ago* (last edited 2 years ago)

Java is absolutely not dying... unfortunately. Billions of people depend on spaghetti code written by corporations every day. I think Java will be the next COBOL. It won't die and it's unfortunate.