this post was submitted on 25 Jun 2024
258 points (93.6% liked)

Programmer Humor

19587 readers
2138 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 1 year ago
MODERATORS
 

Finally i'm gonna be able to contribute!

top 42 comments
sorted by: hot top controversial new old
[–] Ephera@lemmy.ml 78 points 4 months ago (3 children)

Good thing that this isn't actually possible...

[–] morrowind@lemmy.ml 94 points 4 months ago (2 children)

Don't tempt fate. There are already two kernels written in javascript

[–] spacecadet@lemm.ee 58 points 4 months ago (3 children)

Why would God allow this to happen?

[–] Chadus_Maximus@lemm.ee 43 points 4 months ago

To punish us for the sin that is inventing JavaScript.

[–] Barbossa404@feddit.de 28 points 4 months ago (1 children)

Why do you think God stays in heaven, in fear of what He created?

[–] davidgro@lemmy.world 8 points 4 months ago (1 children)

For the benefit of any of Today's 10,000 I just want to point out that this is a reference to a quote from a movie.
The same movie stars Danny Trejo as Machete.
This movie is Spy Kids 2.

[–] theRealBassist@lemmy.world 3 points 4 months ago

For the benefit of any of Today's 10,000

Haven't seen that referenced in a hot minute lol

Relevant xkcd: https://xkcd.com/1053

[–] ZeroHora@lemmy.ml 6 points 4 months ago (1 children)
[–] camr_on@lemmy.world 8 points 4 months ago* (last edited 4 months ago)

We killed Him

[–] Ephera@lemmy.ml 17 points 4 months ago (2 children)

How? You'd need to compile it down to machine code somehow, for the processor to have any clue how to run it. And you'd need some custom library with custom compile instructions, to be able to control memory allocations, memory addresses etc..

I did a quick search and found two operating systems written in JS, both of which cop out when it comes to the kernel. Did you maybe mix it up with those?

[–] frezik@midwest.social 13 points 4 months ago* (last edited 4 months ago)

There's almost always at least a little ASM sprinkled into any kernel, so that's not a big deal.

OTOH, there is the factor of "you know how Chrome takes up 2GB per tab? What if that was a whole OS?"

[–] morrowind@lemmy.ml 3 points 4 months ago

Maybe I did, I haven't looked any of them carefully

[–] TrickDacy@lemmy.world 5 points 4 months ago (1 children)

Theoretically if you found a way to compile PHP, you probably could though, right?

[–] Ephera@lemmy.ml 6 points 4 months ago (1 children)

I mean, I'm a bit out of my water there, both in terms of the featureset of PHP and what's actually needed for a kernel, but I'm still gonna go with no.

For one, PHP uses reference counting + garbage collection for memory management. That's normally done by the language runtime, which you won't have when running baremetal.

Maybe you could implement a kernel, which does as few allocations as possible (generally a good idea for a kernel, but no idea, if it's possible with PHP), and then basically just let it memory leak until everything crashes.
Then again, the kernel is responsible for making processes crash when they have a memory leak. Presumably, our PHP kernel would just start overwriting data from running processes and eventually overwrite itself in memory(?). Either way, it would be horrendous.

Maybe you could also try to implement some basic reference counting into your own PHP code, so that your own code keeps track of how often you've used an object in your own code. Certainly doesn't sound like fun, though.

Well, and secondly, I imagine, you'd also still need an extension of the language, to be able to address actual memory locations and do various operations with them.

I know from Rust, that they've got specific functions in the stdlib for that, see for example: https://doc.rust-lang.org/stable/std/ptr/index.html#functions
Presumably, PHP does not have such functions, because its users aren't normally concerned with that.

[–] TrickDacy@lemmy.world 2 points 4 months ago (1 children)

Right -- I'm not saying you could build a compiler then just go to town. You would still have to build all the tools, using PHP, to interact with hardware, the way other languages do. A horrible idea, lol, but interesting, sort of. Since at its core as long as you can execute logic and read/write to memory, you could do it, I think

[–] Ephera@lemmy.ml 3 points 4 months ago (1 children)

But that is what I mean with it needing an extension of the language.

So, I'm not saying you could just build a library that calls existing PHP functions to make it all work. Rather I'm saying there's certain machine code instructions, which just cannot be expressed in PHP. And we need those machine code instructions for actually managing memory. So, I am talking about reading/writing to memory not being possible, unless we resort to horrible hacks.

Since we are building our own compiler anyways, we could add our own function-stubs and tell our compiler to translate them to those missing machine code instructions. But then that is a superset of PHP. It wouldn't be possible in PHP itself.

Again, I'm not entirely sure about the above, but my web search skills couldn't uncover any way to actually just read from a memory address in PHP.

[–] TrickDacy@lemmy.world 1 points 4 months ago

I mean, I think we're saying the same thing, you just have better vocabulary than I :)

[–] felixwhynot@lemmy.world 4 points 4 months ago

I did use a crypto mining OS that was Linux but with lots of scripts that were written in… PHP! I never thought I’d see it.

[–] BurningTurtle@programming.dev 55 points 4 months ago (1 children)

If we are rewriting it, we should use holyc to make it the way god intended.

[–] raman_klogius@ani.social 2 points 4 months ago

Ring 0 all the way baybee!!

[–] thebardingreen@lemmy.starlightkel.xyz 54 points 4 months ago (2 children)

As a PHP developer, I'm in full support and look forward to contributing to what will be a vastly simpler and easier to use Linux kernel.

[–] morgunkorn@discuss.tchncs.de 22 points 4 months ago

And the Community rejoices at the perspective of your valuable contributions!

[–] ulkesh@beehaw.org 3 points 4 months ago

As a PHP developer

I’m so, so sorry.

[–] Varyk@sh.itjust.works 22 points 4 months ago* (last edited 4 months ago) (1 children)

Update: thank you for pointing out to me which community this was posted on.

I'm going to leave this post up as a cautionary tale for people like me who don't pay enough attention!


But Linux is cool cuz it's so fast and it doesn't break.

Long as I've been using it anyway.

So now linux is going to be much slower, going to break and be more susceptible to security breaches?

I'm not a programmer, is the upside supposed to be that with so many more programmers able to work on the kernel, those issues will be able to be fixed by the extra programmers?

It's not like there's anything wrong with Linux right now.

[–] morgunkorn@discuss.tchncs.de 31 points 4 months ago* (last edited 4 months ago) (1 children)

Don't forget to look in which community this was posted

[–] Varyk@sh.itjust.works 20 points 4 months ago* (last edited 4 months ago)

Pppffbbbthhh haha thanks.

Guess I'll just sit in this, I guess.

[–] undefined@links.hackliberty.org 4 points 4 months ago* (last edited 4 months ago) (1 children)

I prefer Ruby myself 🥰

Joking, of course. Ruby would be slow as hell.

[–] Kojichan@lemmy.world 2 points 4 months ago (1 children)

I'm learning Ruby on Rails. Would you recommend it as a good website framework? Or something else? I've already tried Laravel, CakePHP, Vue/Vite, and making my own from scratch .

[–] undefined@links.hackliberty.org 1 points 4 months ago (1 children)

I do! I am self-taught but now have a great career going in it. My only complaint is that once you start requiring very specific gems, you’ll find a bunch of unmaintained stuff. Ruby was hyped up a lot in the beginning, kind of declined during the Node.js fad but is becoming a lot more stable and continues to show a ton of progress.

These days if you want to get your foot in the door you can find work upgrading Rails versions as a lot of companies seemed to have released apps a long time ago then lost track of time.

Realizing most of this sounds pretty negative but it’s a beautiful language that I love working in every day. The language is so flexible/usable that outsiders complain that it can encourage bad habits simply by being so maleable — my recommendation is to really know the difference between plain Ruby and Ruby on Rails.

[–] Kojichan@lemmy.world 2 points 4 months ago* (last edited 4 months ago) (1 children)

Thanks so much for your insight!

I'm a self-taught programmer as well. Started with the basics way back when like Atari basic, GWbasic, built into Forth of all things, then C++/C#, PHP, JavaScript, etc., then into frameworks like Node, React, Vite , Laravel, CakePHP and stuff.

I followed the Ruby online tutorial. It seems a lot like Zoho's Deluge, but I heard it isn't as optimized as Rust, so thank you for talking about Rails :) I'm excited to see what I can build!

Also thanks for the warning about outdated Gems.

[–] undefined@links.hackliberty.org 1 points 4 months ago (1 children)

I get the optimization issue for sure. Crystal is a language that exists but it just hasn’t gained enough popularity; it’s a compiled language that’s very close to Ruby syntax.

[–] Kojichan@lemmy.world 2 points 4 months ago

Then I think I should learn Crystal. ;) I'll gladly program in a language with the same name as myself. Hahah.

Thanks again!

[–] christopher@lemmy.ca 2 points 4 months ago (1 children)
[–] Dudewitbow@lemmy.zip 2 points 4 months ago

i mean if you want chaos, program in whitespace

[–] cupcakezealot@lemmy.blahaj.zone 2 points 4 months ago

basic or nothing