You didn't mention Python bytecode at all! It's a myth that python isn't compiled. It is compiled to bytecode, which is an intermediate which gets interpreted. The Python interpreter isn't looking at your human readable Python code line by line.
@ByteByteGo Жыл бұрын
Good point. We should have briefly mentioned Python bytecode in the vid, probably towards the end. Thanks for pointing that out - it's an important part of how Python works under the hood.
@ShibasisPatnaik Жыл бұрын
@@ByteByteGo Very grateful for your high quality videos. But this one has an error. It is not at all clear that python has a bytecode and a vm from this video.
@MikeSwanberg11 ай бұрын
I was thinking the same thing... I also had an issue with the video saying "the JVM has a just-in-time compiler" and then in the next breath saying "Java can run on any device without recompilation." So is the JVM "compiling" or not? Further, the idea that a "compiled" language runs faster than an interpreted one is generally true, but not specifically true; the biggest slowdown to some modern languages is due to them not being strongly typed. Python suffers from this (to a degree), as does Perl and many others. But we can see that Python, even though it is JIT compiled (same with Perl), that does not speed the execution to that of C/C++ or even Java. All in all, a decent video here, just not super accurate for the pedants among us.
@theshermantanker704311 ай бұрын
@@MikeSwanberg Python is NOT JIT capable, at least not yet
@MikeSwanberg11 ай бұрын
@@theshermantanker7043 Okay, so what do YOU call the process of compiling to bytecode on-the-fly at run-time? I call that compiling that's just in time for execution... or JIT.
@jamesT008 Жыл бұрын
Precise n to the point that what make me watch ur vdos always. No useless bla bla. Thanks
@juancarlospizarromendez395411 ай бұрын
There are some tools for max speed: 1. Python world: Python + PyPy + GraalVM Python 2. Java world: GraalVM vs JVM (stack-based VM) vs Dalvik (register-based VM)
@kirillgimranov4943 Жыл бұрын
Cpython uses compiling into bytecode too and it uses its own machine code to run in a operating system
@Mtnsunshine11 ай бұрын
Thank you for explaining this so succinctly and understandably. I am a rookie with it all, but I do like to know the basics so I can understand more complex ideas. Much appreciated.
@BudiSantoso-d9y9 ай бұрын
Java Compiler compile Java codes to JVM bytecodes. Them JVM translates bytecode instructions to native instructions. So, this make Java faster then interpreted languages. Additionally, JIT Compiler compiles some/all JVM bytecodes to native machine codes.
@saulorocha375510 ай бұрын
Always a clear explanation (with great animation), thank you!
@gus473 Жыл бұрын
Thanks Sahn, your explainers and animations are the best in the business! 😎✌️
@systemBuilder6 ай бұрын
CPython is a JIT compiler/interpreter.
@saanvipandey79563 ай бұрын
Hi I am a child who studies in Dubai DPS Dubai i am impressed that the topic that difficulted me out was python and c ++thank you so much to explain me
@renatoamaral20298 ай бұрын
Excellent and concise explanations! 👍👍👍
@kaplansedat Жыл бұрын
c# is so much undervalued among developer community. thanks much more developers are not in developer community. very hype driven industry.
@Kane0123 Жыл бұрын
c# lets gooooo
@r_v_t Жыл бұрын
For a long time C# was not a valuable option for many developers because it was windows only. So a lot of people decided to opt against targeting one OS only. With other languages like C++ , java and python you can always target the big 4
@kaplansedat Жыл бұрын
@@r_v_t yes good point. But languages evolves. We are in different page now. That was a bad decision by microsoft. They are trying to route the ship other way. Its not easy but seems they are in good way.
@Winnetou17 Жыл бұрын
@@r_v_t The big 4 ? I assume you mean Windows, Linux and MacOS.... what's the fourth ? Android (which is also Linux, but with different userland tools) ?
@Danielm10311 ай бұрын
That’s because of Microsoft and their depreciation of Framework. There was a time where Core wasn’t up to snuff. I’ll never touch C# again
@py98498 ай бұрын
Perhaps the Java approach is unique now, but was developed by Niklaus Wirth, a Swiss computer scientist, working at Berkeley in the 1970s. He designed a p-machine generating p-code. The first application, it seems to me, was the creation of the Pascal UCSD language
@BohonChina Жыл бұрын
This is a old comparison, Java is actually changing into native binary like graalvm to fit the cloud native requirements, moreover, wasm wasi is another alternatives for bytecode execution. Python actually is not always a intepreted language, Pypy can work like jvm just-in-time, cython for python performance is actually c compiled module for performance.
@DemPilafian Жыл бұрын
This is a sub-5 minute video.
@HRudolf88 Жыл бұрын
I would have mentioned that this is why python modules use C bindings for performance critical calculations.
@miraculixxs Жыл бұрын
@@potatoandpippen you are so nice to people, a real role model. Thank you 🙏
@miraculixxs Жыл бұрын
Compiled languages also use C bindings (or some other convention) to call library code. No difference there.
@chrishinds78965 ай бұрын
C++ compiler actually produces intermediate code with must then be linked by a linker that links and resolves the intermediate code to the target operating system. On Windows an an Exe or Linux other Unix based OSs the link step will generate a .so files
@drewrodrigues11 ай бұрын
Awesome video! Side note: you used a `C#` logo at 4:22 instead of `C++`.
@HolyRamanRajya Жыл бұрын
4:16 Was C# intentional or a typo? If intentional, what is the difference between C# and Java on a compiler level.
@bity-bite Жыл бұрын
What do you mean by "compiler level"?
@darkfllame8 ай бұрын
c# is basically microsoft java, but slightt faster and more memory efficient. And in the end, what's the matter, code in the language you love (or hate if you do javascript)
@AleksandarT10 Жыл бұрын
Probably covering Java GraalVM where Java is compiled for a specific CPU architecture would have been good as part of this video. Nevertheless great video! That can be in another one!
@kostiapereguda Жыл бұрын
What about Jython?) Python frontend that gets compiled to JVM bytecode. Combinations are endless, covering everything will take ages
@moonyl53413 ай бұрын
C++ also has a pre-processor and linker stage
@blompinne Жыл бұрын
At the end the C# logo is used instead of C++.
@The-Cat Жыл бұрын
I noticed that too 😅 good eye my friend!
@Kane0123 Жыл бұрын
The lords language!
@queenofpain6483 Жыл бұрын
that stands for C++++
@Chemnitz11 Жыл бұрын
Freudian slip?
@doublekamui11 ай бұрын
in very high performance machine? no. f35 fighter jet system is created using c++.
@karlostj468311 ай бұрын
"Java is also designed to be memory-safe and secure. With features like automatic memory management." No more need for developers to release any memory their programs allocate! Java uses a built-in "garbage collector" and pays close attention to allocated memory blocks that are no longer being referenced! Except: The Java default "garbage collector" only collects garbage when the Runtime runs out of memory. This generally results in a "pause" - your application halts - while the GC walks through its map of which blocks of memory are no longer being referenced, anywhere in your application. As for security: As a result of the lack of just-in-time garbage collecting, any Java objects your application creates will remain in memory, possibly forever. This means critical data that should be expunged from memory as soon as it's no longer needed (such as passwords delivered as String objects) are hanging around, until the Runtime runs out of memory. This is a serious security issue.
@luksion9 ай бұрын
There is java.lang.ref.SoftReference to mitigate this security issue. It is a way to basically make the GC release the object in the next gc when it has not any reference about it.
@dudeabideth442811 ай бұрын
There is no os involved in specifically running machine code . The machine code is run on the cpu by the process that launches. Of course the whole process is launched by os but that’s true for all of this
@alastairtheduke11 ай бұрын
But a process has to be managed by some OS so what's your point?
@NK-iw6rq Жыл бұрын
Thank you Mr ByteByte ! Your content is amazing !!!!
@systemBuilder6 ай бұрын
Scala is a good example of another language that compiles into JVM - it can run under any JVM of the right version.
@ggauche34658 күн бұрын
I've used all 3 of these languages, and others. And I've also written languages that are interpreted and also compiled. I've wondered why Python can't be developed as an interpreted language, which is very convenient for the programmer, but then have an option to be compiled for time critical applications.
@gurupartapkhalsa6565 Жыл бұрын
Make no mistake, every single language has to become CPU instructions at some point, otherwise it can't instruct the CPU. The OS does not do this, mostly the OS enforces additional rules and overhead, without any benefit outside of the limitations themselves being a sort of structure. Compiled languages compile into CPU instructions directly, full stop. hence, everything else that doesn't do that is slower and will always be slower due to the rules of reality.
@vijayvijay4123 Жыл бұрын
What do you mean directly? Interpretation is also direct
@miraculixxs Жыл бұрын
Unfortunately this is a very common misconception. In fact "to compile" just means translating from source code format to execution format. It does not, however, mean to translate into (native) CPU instructions. There are many languages that compile source code into so called bytecode, which then gets executed by an interpreter, also known as a "virtual machine" (VM). For example Java, Python, JavaScript, Ruby all use this approach.
@vijayvijay4123 Жыл бұрын
What if the byte codes are optimised in such a way that some parts of those byte codes are directly executable machine codes without the need for interpretation. I think that's what the video means. Bazinga 🙄
@miraculixxs Жыл бұрын
@@vijayvijay4123 t Good idea, yet that's not how it works. Bytecode always gets executed by a VM. Some VMs do "hot native compilation" which turns some parts of the bytecode into CPU machine code, making it faster. That's called just in time compilation, JIT for short.
@alexandretorres508711 ай бұрын
ppl, everybody is ignoring the BIOS layer...
@sunday-thequant84777 ай бұрын
Bro i really love your channel, im learning a lot!
@xx_Ashura_xx9 ай бұрын
all (major) interpeted languages compile to their bytecode because running it directly from source code wouldnt be in effecient. however python is not compiled in the sense that java and c# are where they get JIT compiled in the end from the bytecode where python just runs the interpreted code. javascript i believe dynamically jits its code if decided by the v8 engine and such.
@pulanski Жыл бұрын
python description isn't the full picture. python's actually compiled lol (just into bytecode for the interpreter)
@trilecao9014 Жыл бұрын
Thanks. It's very helpful ❤ Your explanation and animation are good also.
@osogrande499911 ай бұрын
And also wrong and nonsense.
@SajadJalilian Жыл бұрын
If you use database, it doesn't matter you use pyrhon or c++ you still as fast as your database response.
@foreverzhu8800 Жыл бұрын
cpu:how can I execute instructions slower than IO? (lol)
@thegrind9628 Жыл бұрын
by the term database response , what I understood is 'querying of the db'. At the end of the day, the programming language you use to write the query command matters isnt?
@chpsilva Жыл бұрын
Unless you are delegating to the DBMS the task of processing the query result (eg using stored procedures) then the language DOES make difference.
@doublekamui11 ай бұрын
databases are usualy created using c++'s father too that is c 😅 like postgresql and mysql, so it already very fast for working with milions of data in just some seconds.
@nealrasmussen483225 күн бұрын
Try MS C compiler 6.00A circa 1995. You'd be hard pressed to write tighter ASM.
@chrishabgood8900 Жыл бұрын
ruby is interpreted as well.
@happyjulien62757 ай бұрын
The most useful video of this beginning year
@SuvobrotoPal Жыл бұрын
Very Informative Video, Thank you very much, From Kolkata City, India 🙏🙏
@andyblum98507 ай бұрын
Excelente vídeo, eu do Brasil agradeço muito!!!!!
@chocolatepun11 ай бұрын
this video is very useful!! Thank you!!
@luisdanielmesa Жыл бұрын
Performance is important, but energy consumption as well... Java uses 1.5 as much energy as C, although slower than Java nowadays, it still is more energy efficient... and Python uses 30 times as much energy as Java and 50 times as much energy as C.
@Winnetou17 Жыл бұрын
Did you just say that C is slower than Java nowadays ?
@Maverick5691211 ай бұрын
@@Winnetou17yeah 😂
@Winnetou1711 ай бұрын
@@Maverick56912 Blasphemy!
@PrinceKumar-hh6yn7 ай бұрын
Good for taking overview
@aiviet5497 Жыл бұрын
I have a question: Which do you use to make the animation for your video?
@vick_onrails Жыл бұрын
Great and informative video. Thanks for sharing
@elbardo_luxАй бұрын
automatic memory management (garbage collection) isn't unique to java as python also has it. You could argue C++ also has it if you use only smart pointers and raiii.
@mohamedtaha81452 ай бұрын
Amazing explanation!!!
@anshulpandey1 Жыл бұрын
Next Video: JVM based languages like Java VS Scala vs Kotlin
@lifazhan7563 Жыл бұрын
Why
@carlosvillegas33 Жыл бұрын
KZbin notification brought me here
@olivertheses7486 Жыл бұрын
Same😂
@Kane0123 Жыл бұрын
The video brought me to this comment.
@lawniczakjohn Жыл бұрын
2:22 But who was gonna win the race?
@DK-ox7ze Жыл бұрын
If Java is compiled just in time before execution, then it means it's compiled in stages, like how Javascript is complied by JIT complier in stages. Then why is Java significantly faster than Javascript?
@NoName-lz6bc Жыл бұрын
Same question
@jasoncheng4250 Жыл бұрын
just guessing, but i assume it has to be the advantages with first compiling to bytecode, where javascript interpreter does not has this step.
@Nerdimo Жыл бұрын
JavaScript isn’t strongly typed unlike Java, so it might have to do additional checks which I think could make it slower
@Nerdimo Жыл бұрын
What does an interpreter do? Doesn’t it just read your code line-by-line and turn it into machine code? Does this make it like a JIT compiler or is what separates them the idea that interpreters don’t convert the source code into byte code vs. JIT compilers need byte code?
@superdingo9741 Жыл бұрын
Java is compiled to byte code at the compile time (not execution time, as Python). The byte code is machine code for Java virtual machine - JVM (it's just an abstract computer). And then Java code is run and executed by JVM without additional compilation (almost the same as C++ does, but the code is executed not by raw hardware, but the software called JVM). It's faster than interpreting every line as Python does, but way slower than C++'s approach with pure machine code. At the runtime, JVM detects some places in the program that are executed often (e.g. loops and often-invoked methods) and compiles only those pieces of code to real machine code. The latter process is called Just-in-time (JIT) compilation and it expedites execution up to tens times.
@bahramudinadil1113 Жыл бұрын
Just Java, because it is fast, flexible and secure. And is suitable for use in large scale and enterprise level projects.
@jbeltz5347 Жыл бұрын
lol secure
@afrosoul4eva Жыл бұрын
Thank you for this explanation
@amirhoseingharaati5331 Жыл бұрын
Based on what Kyle Simpson says in the YDKJS books series: JavaScript is a compiled language.
@fu220111 ай бұрын
Well done, thanks
@nathanbenton2051 Жыл бұрын
write once, debug everywhere (i'm terrible at java, so that makes sense)
@Kane0123 Жыл бұрын
Technically if you start from scratch each time you only ever write it once.
@Milo_Estobar3 ай бұрын
Why AI development use Python because data science?.... But like you said, its bloody slow... and minimum requirement for running AI programs is at 12 Gb VRAM...
@davidwebster97887 ай бұрын
I have often thought that the real reason for the proliferation of languages is to give CompSci PhD students something to do.
@James-l5s7k7 ай бұрын
Wrong about python (of course). Python runs c/c++ libs at native speeds as it has a native interface for them called ctypes.
@adityaanuragi6916 Жыл бұрын
I'm confused why python is slow, it does similar things to Java Both compile to bytecode Bytecodes are then interpretted to machine code with respective VM So what's python slow?
@Ryan-hk5yb Жыл бұрын
Java is statically typed which makes compiling much faster, where python is dynamically typed where the interpreter has to spend much more time deciding types etc
@adityaanuragi6916 Жыл бұрын
@@Ryan-hk5yb then why isn't JS which is also dynamically typed also a lot more slower Js is slower than Java but not to the extent of python
@MikiMaki76 Жыл бұрын
as he said, python vm is an interpreter, which has to decode every line of code and execute it in real time. being dynamically typed, there is no guarantee what type of data goes into a variable and thus how memory should be handled at runtime. also, there are differences on how functions calls are retrieved and memory is handled at runtime. java is compiled at runtime, meaning that the vm don't need to decode anything, because it executes an assembly. so it takes some time to start, because the vm converts the bytecode into assembly, but when it starts, it's machine code. plus, java is highly optimized, meaning that the vm has some smart strategies to retrieve functions calls (stored in lookup tables) and handles memory very efficiently. the garbage collector is a slowdown though, but memory safety comes at a price.
@Ryan-hk5yb Жыл бұрын
@@MikiMaki76 what he said. there also differences in use case/engine/runtime environment
@IBelieveInCode Жыл бұрын
Python is crap.
@sadiulhakim7814Ай бұрын
What is you favorite language?
@jw_sw8157 Жыл бұрын
GOAT Channel
@VuinhThanh-ol8fx Жыл бұрын
How do u made the animated video like this??
@adelarsq Жыл бұрын
So C++ is C#? Nevermind, great video =)
@Kane0123 Жыл бұрын
C# is C++ times 2
@butthry-tech11 ай бұрын
Thanks for sharing
@miraculixxs Жыл бұрын
There are some glarying issues with your summary graphic. All programming languages need source code, not just Python. Python is compiled to Bytecode first, and only then executed by the Python VM (the interpeter). Very much the same as Java.
@miraculixxs Жыл бұрын
@@potatoandpippen Your comment makes me so happy 😁
@frogzie11 ай бұрын
Not really. The Java compilation phase is done only once, not every time you run the code.
@miraculixxs11 ай бұрын
@@frogzie the python compilation is also done once, not every time you run the code.
@igorshingelevich7627 Жыл бұрын
Such a clear explanation ❤
@miraculixxs Жыл бұрын
Yes, unfortunately it is misleading in regards to Python. See comments
@rbelatamas Жыл бұрын
thanks 🎉
@plutoae192218 күн бұрын
How you create this presentation sir?
@xuwu72999 күн бұрын
Any clue about arkts running on HarmonyOS?
@BigBoss-67010 ай бұрын
Hello there. I am currently working in the field of web and mobile applications. I use JavaScript as a frontend. I normally use Php in Beckend, but now I want to use Java or Python. Which language is easier to use with JavaScript (similar in syntax), more performant or more compatible. Which language can offer me different alternatives for the future except for application development? Please tell me only one of these two languages. I would appreciate it if you explain why.
@osogrande499910 ай бұрын
Python as a backend language for your web services is what I’d go for. Compatibility with your front end is irrelevant, but if you are worried about learning another language and want it to be Javascript-like then neither Java or Python are Javascript like. One could argue that curly braces and certain constructs like for loops look similar in Java, but it’s not really going to help. As for python back end support, you can write a Python web service using Flask or FastAPI in literally seconds once you know what you’re doing. (I don’t use Django, but it paves the way for relatively straightforward REST solutions). For most applications Python is performant enough and besides there are many scaleability options. I have plenty of experience in all these and for my money I’d stick with Python. The commercial user space is vast, as is the support, and as a language it is very easy to learn and get immediate rewards. For other uses apart from backend, well, obviously it has massive AI/data/machine learning tooling and user spaces, and it’s widely used for all kinds of glue and scripting applications. Learn Java too if you like but I think you’d end up having python as your go to language for more than you would Java. If you’re wanting to develop natively for Android, obviously that’s going to want Java (or Kotlin). Good luck. Check out FastAPI and get yourself a 5 line example web application running using uvicorn to serve it (or simply run it with the built in development server) and you’ll quickly see the potential.
@igor9silva Жыл бұрын
0:37 wait, you're not Alex?
@ZenvilleErasmus11 ай бұрын
This is top quality content!
@john_g_harris11 ай бұрын
Java : The Java Virtual Machine (JVM) and Java program have to be at compatible language releases. "Run everywhere" has some limitations.
@KaleidoscopeGalaxy7 күн бұрын
If somebody made a 3d program like blender in kotlin would it run on a tablet fast while rendering cuz java goes through its own virtual machine?(i know nothing about coding)
@browntigerus11 ай бұрын
Good Videos. Even tho I truly hate assemblies today, don't like anything about Java approach. For complex apps with 10 developers Java war's or Jar approach makes no sense. You will be dealing with storing and building endless Artifacts. My personal vote for enterprises: JS and Python [development cycle/patching is much easier when no need to pre-build war's jar's ear's assemblies]. Say no to Java.
@JacobKasperek Жыл бұрын
As the video is probably targeting new programmers on non-techies a quick note should be given on Java-Kotlin - "Kotlin is Android's recommended programming language for modern android development"
@pavansakpal48168 ай бұрын
Types of linux explain sir
@humaidahmedabuzinjal6257 Жыл бұрын
I thought python works like java. Its source code turns to source code then get interpreted?
@michaeltse321 Жыл бұрын
whether it's native code, or running in JVM or intepreter, on the fundamental level they (native, JVM or interpreter) all end up running machine code on the CPU - lol - With JVM or Interpreter that has a JIT, that means some byte code or script is compiled into native code and run on the CPU. But some is still run in the JVM and intepreter but again utimately JVM and intepreter is running in the CPU as native code. Python and Java both have compilers that generate native code - just mentioning - lol
@CodeWithOgochukwu2 ай бұрын
Beautiful
@abhinav.t1602 Жыл бұрын
Thank you Sahn, but please consider having a better audio system. The volume is very low and not everyone wants to use speakers or headphones all the time.
@numamolinapauluk512610 ай бұрын
Impecable 👏🏾
@nccamsc11 ай бұрын
The fact that he got Python wrong makes me doubt the accuracy of the rest of the content.
@FlareGunDebate Жыл бұрын
I know lots of companies use Java still but I've never heard anyone say so many positive things about it
@FlamencoDeniz Жыл бұрын
for real. I mostly know java as a verbose and outdated language. the fact that many companies use it doesn't mean it's good rather that they are slow in adapting.
@FlareGunDebate Жыл бұрын
@@FlamencoDeniz I don't mind verbose languages but I hear a lot of complaints. On the other hand the two languages Google has you write in are Java and Python. Alphabet seems pretty innovative to me.
@FlamencoDeniz Жыл бұрын
@@FlareGunDebate well that is the question whether the logic "I consider company x as innovative -> company x uses java -> java has to be an innovative programming language" really holds up. my gut feeling is that IT projects in companies used to be under time and money pressure and as long as "stuff" gets delivered to the customer, less than ideal architectural choices were made. whether or not this is the case with Google I have no idea.
@FlareGunDebate Жыл бұрын
@@FlamencoDeniz when Sun created Java back in the 90's it was free and spread like wild fire so it's in a lot of lower level system stuff and APIs. It's the default language for Android too. It's both a compatibility issue and a performance issue. But then Sun sold to Oracle, which caused complications.
@zbyniu-gh8sg5 ай бұрын
JAVA is like a wheel: invented long time ago, but still needed :)
@fullStackInKannada Жыл бұрын
Very nice I really liked it :)
@luciantarba6436 Жыл бұрын
typo at 4:06, JaveScript -> JavaScript
@Kane0123 Жыл бұрын
Probably just a new framework.
@Danielm10311 ай бұрын
C++ and Python for the win
@serhiivoronkov391411 ай бұрын
You didn't mentioned that we can build java native
@fabian-manzano Жыл бұрын
Really nice video
@bruceliebewilma Жыл бұрын
Still, why is there no united programming language? We build so many kinds of wheels?
@bruceliebewilma Жыл бұрын
Would it be possible to build a language that depending on the scenario to choose either compiler, interpret, or virtual machine way??? If it is possible and no one do it, then it's not the problem of the programming language any more.
@markdanielesplanaperilla11 ай бұрын
"United programming languages" is like saying "United transportation, I want a car that becomes a submarine whenever I want".
@bruceliebewilma11 ай бұрын
@@markdanielesplanaperilla There are already such kind of cars. It’s just expensive
@alii_ce5 ай бұрын
so golang is super balance!
@karlostj468311 ай бұрын
Java's original marketing tagline: "Java: Write Once - Run Anywhere." Java developers' actual experience: "Java: Write Once - Debug Everywhere."
@dagmawitdebebe36564 ай бұрын
thank you for the explanation but i think python is the easiest way to learn code
@danailenei9959 Жыл бұрын
I would take down this video. Python does not work as explained and the gap in performance does not come from what it is explained. I think is totally miss leading
@siriusleto375811 ай бұрын
Great.
@ziat19888 ай бұрын
I'm curious about php? It seems that it have same approach as JAVA as it use JIT?
@waywaywaywaywaytoolongtore74962 ай бұрын
You see the problem with the video. Like PHP, Python used to be interpreted. Now you can use JIT for both of them
@plekkchand11 ай бұрын
What's "co"?
@angusmackaskill30356 ай бұрын
I programmed in xbase and dabbled in visual basic
@mLyonJE11 ай бұрын
Python really is not a good example of an "interpreted language" - there's far too much compilation into the bytecode going on, use of libraries that arrive compiled, and more besides. Especially these days. Similarly, Python runs pretty much any familiar or common system where Java runs anyway too. For "contrast", perhaps compare something else there in place of Python, or just make less of those particular differences?