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.
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.
@@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.
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.
@@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.
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)
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.
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.
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)
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
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
"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.
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.
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
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.
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.
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
@@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.
@@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) ?
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
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!
So i got question guys. If im good in this 3 language, will i be a able to code anything? Like... built anything, system, software etc... Or just a waste of time to get good in all 3... Perhaps focus on some .. Hope someone can answer.. because i dont know where to start.. Have some basics in c++ during my bachelor... But no exposure about python and java... Thanks in advance
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.
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.
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.
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 🙄
@@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.
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)
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?
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
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.
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.
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.
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?
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?
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.
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.
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.
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?
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.
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.
Can someone guide me please I’m a C++ developer and I want to change to Java but the industry only recruits Java developers with relevant experience ! Can someone pls help me here
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...
Heard that Python is easier to learn than Java. But also heard that learning Java as a first language will make learning other languages easier. Not sure if I like this last reasoning. For me Java is an older more mature language that also contains more and more contradictions and unnecessary confusions.
I think you shouldn't look at programing language as something "primary". Learning new programming language might take a few months, but if you know another language, with GPT-like tools you can quite easily switch to another one. My main language is Python. I wrote a few very small programs in C++ and java. 2 years ago, it was a struggle - word by word, just like with new language. Today I could write a description and most likely generated code will be working. Today I guess it works mostly for Python, but in a few years these tools will be even better. You should focus on things that will be hard for computers. Unless they gonna replace us completely... Such things are design patterns and overall knowledge like database types, design pattern, where to use what. And search for skills required in your area - the hardest part might be getting the first job. I think AI will replace us first in creating simple web pages, and it'll happen quite fast. So landing job in this field will be hard. You might want to take this into account.
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.
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"
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.
C is also wrong. Machine code instructions goes directly to the processor, dealing with memory and registers. It may call OS or Bios, but only when higher functions are needed, such as setup mem allocation or read files. By the way, where is the Bios?
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.
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.
@@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.
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.
@@MikeSwanberg Python is NOT JIT capable, at least not yet
@@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.
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)
Cpython uses compiling into bytecode too and it uses its own machine code to run in a operating system
Precise n to the point that what make me watch ur vdos always. No useless bla bla. Thanks
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.
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.
Always a clear explanation (with great animation), thank you!
4:16 Was C# intentional or a typo? If intentional, what is the difference between C# and Java on a compiler level.
What do you mean by "compiler level"?
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)
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
At the end the C# logo is used instead of C++.
I noticed that too 😅 good eye my friend!
The lords language!
that stands for C++++
Freudian slip?
in very high performance machine? no. f35 fighter jet system is created using c++.
Thanks Sahn, your explainers and animations are the best in the business! 😎✌️
Excellent and concise explanations! 👍👍👍
CPython is a JIT compiler/interpreter.
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
"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.
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.
I have a question: Which do you use to make the animation for your video?
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
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.
This is a sub-5 minute video.
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.
c# is so much undervalued among developer community. thanks much more developers are not in developer community. very hype driven industry.
c# lets gooooo
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
@@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.
@@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) ?
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
python description isn't the full picture. python's actually compiled lol (just into bytecode for the interpreter)
2:22 But who was gonna win the race?
Thank you Mr ByteByte ! Your content is amazing !!!!
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
But a process has to be managed by some OS so what's your point?
Bro i really love your channel, im learning a lot!
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!
What about Jython?) Python frontend that gets compiled to JVM bytecode. Combinations are endless, covering everything will take ages
Scala is a good example of another language that compiles into JVM - it can run under any JVM of the right version.
I would have mentioned that this is why python modules use C bindings for performance critical calculations.
@@potatoandpippen you are so nice to people, a real role model. Thank you 🙏
Compiled languages also use C bindings (or some other convention) to call library code. No difference there.
C++ also has a pre-processor and linker stage
So i got question guys.
If im good in this 3 language, will i be a able to code anything? Like... built anything, system, software etc...
Or just a waste of time to get good in all 3... Perhaps focus on some ..
Hope someone can answer.. because i dont know where to start.. Have some basics in c++ during my bachelor... But no exposure about python and java... Thanks in advance
Awesome video! Side note: you used a `C#` logo at 4:22 instead of `C++`.
Thanks. It's very helpful ❤
Your explanation and animation are good also.
And also wrong and nonsense.
I attended an in-person workshop in Dallas, Texas, where I learned about Moonpreneur's Python classes, and they are excellent. Can I give them a try?
ruby is interpreted as well.
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.
Just Java, because it is fast, flexible and secure. And is suitable for use in large scale and enterprise level projects.
lol secure
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.
What do you mean directly? Interpretation is also direct
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.
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 🙄
@@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.
ppl, everybody is ignoring the BIOS layer...
I thought python works like java. Its source code turns to source code then get interpreted?
TH-cam notification brought me here
Same😂
The video brought me to this comment.
Very Informative Video, Thank you very much, From Kolkata City, India
🙏🙏
How you create this presentation sir?
Java's original marketing tagline: "Java: Write Once - Run Anywhere."
Java developers' actual experience: "Java: Write Once - Debug Everywhere."
How do u made the animated video like this??
this video is very useful!! Thank you!!
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)
Great and informative video. Thanks for sharing
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?
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
@@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
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.
@@MikiMaki76 what he said. there also differences in use case/engine/runtime environment
Python is crap.
The most useful video of this beginning year
Excelente vídeo, eu do Brasil agradeço muito!!!!!
Good for taking overview
typo at 4:06, JaveScript -> JavaScript
Probably just a new framework.
Next Video: JVM based languages like Java VS Scala vs Kotlin
Why
Amazing explanation!!!
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.
Did you just say that C is slower than Java nowadays ?
@@Winnetou17yeah 😂
@@Maverick56912 Blasphemy!
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.
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?
Same question
just guessing, but i assume it has to be the advantages with first compiling to bytecode, where javascript interpreter does not has this step.
JavaScript isn’t strongly typed unlike Java, so it might have to do additional checks which I think could make it slower
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?
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.
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.
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.
Try MS C compiler 6.00A circa 1995. You'd be hard pressed to write tighter ASM.
If you use database, it doesn't matter you use pyrhon or c++ you still as fast as your database response.
cpu:how can I execute instructions slower than IO? (lol)
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?
Unless you are delegating to the DBMS the task of processing the query result (eg using stored procedures) then the language DOES make difference.
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.
wat is a .pyc file?
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.
@@potatoandpippen Your comment makes me so happy 😁
Not really. The Java compilation phase is done only once, not every time you run the code.
@@frogzie the python compilation is also done once, not every time you run the code.
why there's java-vm but no python-vm or ruby-vm?
0:37 wait, you're not Alex?
Any clue about arkts running on HarmonyOS?
C++ and Python for the win
GOAT Channel
C# where is between these languages ?
This is top quality content!
You didn't mentioned that we can build java native
Thank you for this explanation
how about the .net language?
Well done, thanks
Wrong about python (of course). Python runs c/c++ libs at native speeds as it has a native interface for them called ctypes.
Can someone guide me please
I’m a C++ developer and I want to change to Java but the industry only recruits Java developers with relevant experience ! Can someone pls help me here
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...
I'm curious about php? It seems that it have same approach as JAVA as it use JIT?
You see the problem with the video. Like PHP, Python used to be interpreted. Now you can use JIT for both of them
What is you favorite language?
C++ ❤
Such a clear explanation ❤
Yes, unfortunately it is misleading in regards to Python. See comments
What's "co"?
write once, debug everywhere (i'm terrible at java, so that makes sense)
Technically if you start from scratch each time you only ever write it once.
thanks 🎉
So C++ is C#?
Nevermind, great video =)
C# is C++ times 2
Types of linux explain sir
Based on what Kyle Simpson says in the YDKJS books series: JavaScript is a compiled language.
Thanks for sharing
People, i want to choose phyton or java as my primary lenguage, but idk where start. I am studing informatics engineering
Heard that Python is easier to learn than Java. But also heard that learning Java as a first language will make learning other languages easier.
Not sure if I like this last reasoning. For me Java is an older more mature language that also contains more and more contradictions and unnecessary confusions.
I think you shouldn't look at programing language as something "primary". Learning new programming language might take a few months, but if you know another language, with GPT-like tools you can quite easily switch to another one. My main language is Python. I wrote a few very small programs in C++ and java. 2 years ago, it was a struggle - word by word, just like with new language. Today I could write a description and most likely generated code will be working. Today I guess it works mostly for Python, but in a few years these tools will be even better.
You should focus on things that will be hard for computers. Unless they gonna replace us completely... Such things are design patterns and overall knowledge like database types, design pattern, where to use what. And search for skills required in your area - the hardest part might be getting the first job.
I think AI will replace us first in creating simple web pages, and it'll happen quite fast. So landing job in this field will be hard. You might want to take this into account.
Impecable 👏🏾
Still, why is there no united programming language? We build so many kinds of wheels?
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.
"United programming languages" is like saying "United transportation, I want a car that becomes a submarine whenever I want".
@@markdanielesplanaperilla There are already such kind of cars. It’s just expensive
JAVA is like a wheel: invented long time ago, but still needed :)
Very nice I really liked it :)
where is php?
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"
I have often thought that the real reason for the proliferation of languages is to give CompSci PhD students something to do.
The fact that he got Python wrong makes me doubt the accuracy of the rest of the content.
In short: Python is slow, C++ is not!
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.
Beautiful
Really nice video
C is also wrong. Machine code instructions goes directly to the processor, dealing with memory and registers. It may call OS or Bios, but only when higher functions are needed, such as setup mem allocation or read files. By the way, where is the Bios?