257
top 50 comments
sorted by: hot top new old
[-] SamsonSeinfelder@feddit.de 101 points 2 weeks ago

1998 called, it wants its java applets back

[-] dauerstaender@feddit.de 22 points 2 weeks ago

If it’s WASM it’s here to stay.

[-] frezik@midwest.social 10 points 2 weeks ago

Did someone get Java applets working on WASM? Who is this maniac?

[-] AVincentInSpace@pawb.social 6 points 2 weeks ago

Java applets idk, but we do have Flash

[-] redcalcium 83 points 2 weeks ago

You can already do this with the power of webassembly.

[-] Synthead@lemmy.world 80 points 2 weeks ago

Look up WebAssembly.

[-] zacher_glachl@lemmy.world 43 points 2 weeks ago

As a python developer and user of websites, please no. The web is already a slow mess and my laptop is already spinning up fans on some websites that really shouldn't do anything much more complicated than load text and images from a database and display them. CPython would make it exponentially worse. At least pick a sensible performance focused implementation.

[-] merthyr1831@lemmy.world 1 points 1 week ago

it's cpython much slower than JS?

[-] CanadaPlus@futurology.today 42 points 2 weeks ago* (last edited 2 weeks ago)

Yes. Please. Although something strongly typed would be even better. It's ridiculous the world runs on a language built in 2 weeks.

[-] Virkkunen@kbin.social 40 points 2 weeks ago

It's also ridiculous to think it's still the same language that was built in two weeks, like absolutely no work was done in it over time.

load more comments (6 replies)
[-] Gebruikersnaam@lemmy.ml 27 points 2 weeks ago

Python is strongly typed, but it is also dynamically typed.

[-] CanadaPlus@futurology.today 9 points 2 weeks ago

TIL. Obviously I've avoided using it much.

So how does that work? Is there a few implicit conversions that are allowed, but if you really write something weird it will complain?

[-] Gebruikersnaam@lemmy.ml 11 points 2 weeks ago

Yes, it has no implicit conversions like JS or R. It does, however, allow you to not specify the type of a variable and even change it without complaining. Even if you add types these are only hints that won't generate errors unless you use external type checking (e.g. mypy).

[-] tryptaminev@feddit.de 9 points 2 weeks ago

example:

i = 5.0//2

list[i]

throws an error because i is double and the list-index expects an integer.

so for it to work the code needs to look like this:

i = int(5.0//2)

list[i]

meanwhile this works:

i=5

i= 'abcde'

[-] Chrobin@discuss.tchncs.de 2 points 2 weeks ago

Isn't // integer division?

[-] Gebruikersnaam@lemmy.ml 3 points 2 weeks ago

It is but if you start with a float you get a float back.

[-] Chrobin@discuss.tchncs.de 2 points 2 weeks ago

You're right, I did not know that. Thanks!

[-] Gebruikersnaam@lemmy.ml 1 points 2 weeks ago

Was really surprised by this too, because iirc Python 2 did not do this.

[-] dzervas@lemmy.world 1 points 2 weeks ago

you can do i: int to make this error out

[-] Gebruikersnaam@lemmy.ml 6 points 2 weeks ago

No, type hints are not enforced.

[-] dzervas@lemmy.world 1 points 2 weeks ago
[-] HappyRedditRefugee@lemm.ee 6 points 2 weeks ago

In python you always have the right type, cause everything is an object

[-] DarkenLM@kbin.social 26 points 2 weeks ago

And yet somehow it evolved to become something that will last to the heat death of the universe.

I've grown used to it with time, though. Once you know it's "quirks", it's not so bad.

[-] CanadaPlus@futurology.today 4 points 2 weeks ago

I guess the internet just grew that fast. The first arrival took all and locked everybody in.

Now, we have just two browsers that are widely used, so maybe we do have an opportunity to go back and fix it. Go sounds like it's a pretty popular choice for statically typed, imperative high-level language.

[-] DarkenLM@kbin.social 16 points 2 weeks ago

Honestly, given the context of a browser, Javascript's "Everything is better than crashing" philosophy does not seem too out-of-place. Yes, the website might break, but at least it would be theoretically usable still.

Yes, a statically typed language would help, but I'd rather not have one that is "these two types are slightly different, fuck you, have a segfault", but rather one that is slightly more flexible.

[-] CanadaPlus@futurology.today 4 points 2 weeks ago* (last edited 2 weeks ago)

Actually, that's a good point, in scripting fatal type errors can happen at runtime. I guess Python is the right choice then, given it's maturity and popularity, and then you can code the complex stuff in whatever you want via WASM like other people mentioned.

[-] CapeWearingAeroplane@sopuli.xyz 2 points 2 weeks ago

Not even "not so bad", I would say that as a scripting language it's fantastic. If I'm writing any actually complex code, then static typing is much easier to work with, but if you want to hack together some stuff, python is great.

It also interfaces extremely easily with C++ through pybind11, so for most of what I do, I end up writing the major code base in C++ and a lightweight wrapper in Python, because then you don't have to think about anything when using the lib, just hack away in dynamically typed Python, and let your compiled C++ do the heavy lifting.

[-] words_number@programming.dev 25 points 2 weeks ago

Python is actually mostly strongly typed. Strongly (e.g. can't use a number as a string without explicitly converting it), but dynamically (can change type of variable at runtime). You probably would prefer a statically typed language and I agree.

[-] CanadaPlus@futurology.today 1 points 2 weeks ago* (last edited 2 weeks ago)

Alright, thanks for the help with terminology. I'm a bit confused about changing types at runtime. I thought a compiled or interpreted language stopped having types at runtime, because at that point it's all in assembly. (In this case of course it's scripting, which someone pointed out to me elsewhere)

[-] CapeWearingAeroplane@sopuli.xyz 3 points 2 weeks ago

That's a compiled language, an interpreted language is translated to assembly at runtime, in pythons case: pretty much one line at a time.

Disclaimer: To the best of my knowledge, please correct me where I'm wrong.

[-] Skyhighatrist@lemmy.ca 2 points 2 weeks ago* (last edited 2 weeks ago)

That's really only native compiled languages. Many popular languages, such as C#, Java, etc. Lie somewhere in between. They get compiled to intermediary byte code and only go native as the very final step when running. They run in a runtime environment that handles that final step to execute the code natively. For .NET languages that's the CLR (Common Language Runtime).

For .Net the process goes like this:

  • You write the code
  • Code is compiled to MSIL
  • At runtime when the MSIL is executing a JIT (just-in-time) compiler translates the MSIL into native code.
  • The native code is executed.

Java has a similar process that runs on the JVM. This includes many, many languages that run on the JVM.

~~JavaScript in the browser goes through a similar process these days without the intermediary byte code.~~ Correction, JS in modern browsers also follow this process almost exactly. a JIT compiler compiles to bytecode which is then executed by the browser's JS engine. Historically JS has been entirely interpreted but that's no longer the case. Pure interpreted languages are pretty few and far between. Most we think of as interpreted are actually compiled, but transparently as far as the dev is concerned.

Last, but certainly not least, Python is also a compiled language, it's just usually transparent to the developer. When you execute a python program, the python compiler also produces an intermediary bytecode that is then executed by the python runtime.

All that being said, I welcome any corrections or clarifications to what I've written.

load more comments (2 replies)
[-] PeWu@lemmy.ml 5 points 2 weeks ago
[-] Zangoose@lemmy.world 12 points 2 weeks ago
[-] skullgiver@popplesburger.hilciferous.nl 4 points 2 weeks ago* (last edited 1 week ago)

[This comment has been deleted by an automated system]

[-] PeWu@lemmy.ml 2 points 2 weeks ago

Couldn't agree more.

[-] lukas@lemmy.haigner.me 4 points 2 weeks ago

Java Applets!

[-] scubbo@lemmy.ml 30 points 2 weeks ago

laughs in WASM

[-] slazer2au@lemmy.world 10 points 2 weeks ago

No, but that is because I can't do much scripting.

[-] kubica@kbin.social 22 points 2 weeks ago

´import scripting_abilities´

[-] slazer2au@lemmy.world 10 points 2 weeks ago* (last edited 2 weeks ago)

Main()
Select * from stack_overflow where working_scripts is "closed (duplicate)"

[-] dzervas@lemmy.world 3 points 2 weeks ago

you have a multi-billion cluster at your disposal it seems

[-] ICastFist@programming.dev 3 points 1 week ago

Will that make Ren'Py VNs play natively on firefox? If not, I vote no

[-] mesamunefire@lemmy.world 2 points 2 weeks ago

Yes I would give actual money to see this native and supported.

[-] skullgiver@popplesburger.hilciferous.nl 5 points 2 weeks ago* (last edited 1 week ago)

[This comment has been deleted by an automated system]

[-] words_number@programming.dev 4 points 2 weeks ago

Unfortunately that support would be worthless if only firefox does it.

load more comments
view more: next ›
this post was submitted on 21 Nov 2023
257 points (90.5% liked)

Programmer Humor

2 readers
72 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 4 years ago
MODERATORS