even, I was so shocked after hearing that he's just 19, and in June 2020, I'll be 19 and still, I am struggling with CodeChef beginner's problem. you're an inspiration for me, Tim. ❤
PROS : 1) easy 2) tons of resources 3) good modules and packages 4) good for web development 5) machine learning and ai 6) availability CONS : 7:16 1) slow af 2) bad for 3d rendering and game development (ex. cant use unity engine with python) 3) python sucks on mobile 4) global interpreter lock (u cant run more than 1 thread...at same time.. multi processing is much more difficult) 5) not the best choice for larger projects ( more structured languages like java or c++ will be preferred) 6) too flexible (lol) 10:48
I love your channel ! I learn python in school but in school we just learn basic stuff. ( Assigning to variable and printing, creating arrays etc.) I got interest in Python and learnt some more stuff about it from your channel. Also! Its my first programming language.
My main con with Python is the documentation, it is awful, apparently having a nice easy to use link tree for all the classes/methods for a module is only something for other languages, as are things like specifying return types or examples with every class/method. The amount of scrolling and searching I have to do when using most Python docs is painful. Oh and the whole package manager mess... still.
Python was my first deep dive into programming, after 4 years I will say it's great for gui and software because of the libraries, BUT it has some downfalls such as speed. I will say that the problems usually have a workaround though, such as animation in tkinter and ect.
Im a Data Science student,( freshman in a major on a Portuguese University) and I really enjoyed learning Python in my first trimester. Its just a simple and beautiful language, but like you said it's not good for mobile/game development and in my major we only gonna learn Python, R and SQL... So if i had to pickup a new language for app/game development what app do you recommend? And wowwww you are a year older then me, that'sssss crazyyyyy :) Keep up with this awesome videos!
@@joaojulio435 Tell me the difference between a car and carpenter.. Same goes with javascript and java. Javascript is a scripting language whereas java is not.. The DOM in javascript is great. While there is no DOM thing in Java.
@@geetramchandani1167 sorry this is all new to me :) But thanks for the help! When I finish this semester I will try to learn a little bit of javascript ;)
There is a game engine that has similar syntax like python, Godot, with GD script. And it super extremely good for making 3D games. Besides, game made by Godot can run on cross-platforms :D
One major problem with languages such as Python is the language itself. For example Python has literals for lists, dictionaries etc... these objects can be unnecessarily slow/wasteful in single threaded use as they need to be protected against-data races in multithreaded contexts. The biggest crime is the wastefulness, new CPUs (such as the Apple M1) contain dedicated silicone that optimizes execution of instructions by assuming that data access is restricted to a single thread. However these assumptions cannot be made for the above literal types in Python as they need to work in multithreaded contexts, ultimately this means that the program cannot benefit from these hardware features. Advanced languages such as Java, C# and C++ defines a set of rules called the "Memory model" which provides fine grained control over how the CPU can optimize code for single threaded execution.
@@SkyFly19853 You shouldn't be upgrading your CPU especially to any of the new RISC variants because python programs can't benifit from those. Not sure what you mean by " buggy" or "low performance" in C++ or Java these languages are not buggy. There is a dev time CPU time tradeoff between languages. Yes Python is faster to develop but it is at least 10 times slower than Java. It ultimately boils down to costs, Python is good when Development cost > compute cost, but this is not true in all cases. These days compute cost is determined by cloud vendors, for identical work loads a single compute farm could supply 1 Python customer or 10 Java customers meaning you get X10 saving in electricity, rent labor etc..
@@slr150 I do NOT plan to spend developing on Java or C++ by fixing its bugs ( typing errors, etc. )... instead, I can benefit from Cython, Cpython or even Iron Python... Civ 4, even other games or application made in Python. Eve Space Game made in Python... the reason why you think C++ is that you don't want to invest on Python or explore its true potential... there are over 8 million Python developers which can help each others to fix or improve Python even further... You don't really see such thing in Java or C++...
@@SkyFly19853 Those so called typing errors are caught by the compiler . In Python, similar errors (e.g. using wrong variable name) can go uncaught until deployment time. Java, C++ also have communities that go into the millions. Personally I'm not afraid of new languages; I have used C, Java, C++, Go, Rust , Python, JavaScript, TypeScript. In my experience there is a place for every language, just don't go using Python for everything. Python is a good orchestrating language, that's why EVE-online uses it orchestrate components written in C++.
I'm impressed with just how many times you say 'easy' or 'easier' or 'easiest' in your "pros". Your arguments sound a lot like the arguments I heard in the late '80s and early '90s for Tcl/Tk and why scripting languages are better than compiled languages because you can put practical projects together faster and more easily. In the late '90s and just after the turn of the millennium it was Perl that was talked about this way. I became a big fan of Perl, especially for text and data analysis, but now I hear it's passe. I looked into Python when it was new and liked it for a while but got bugged with the way I have to worry about what column the command starts in the way I've never had to do since COBOL in the early '80s. Again, like COBOL, it felt structured for the sake of structure which I've come to resent. Also scripting programming languages are too slow for my taste. I'm all in for C now, but if programming for Android use Kotlin, for iPhone use Swift. Yes, Python is everywhere Linux is, so is Perl, probably Tcl/Tk, and certainly C/C++ and probably even FORTRAN. I've seen some pretty impressive retro arcade clone games here that are programmed in Tcl/Tk by John Herrmann. The best I can figure is that Python is so popular because Python is so popular. It's the flavor of the decade.
Yo. Tim. I'm rewatching this in 2024. I suggest if you want to do gaming.... do Lua. 2D framework would be LOVE 2D. But Its also great with 3D.... Like on Unity (Assuming you can code.... which many folks that flock to Unity just like to use borrowed assets).
Python is an excellent language; it was my first programming language before jumping onto JavaScript. Can it be said if you were to say the strongest ability of Python is automation? Not certain, but from my experience it seems this is its strength.
Good talk man, I personally cannot never accept Python lambda expressions, one of the most unforgivable element in a computer language, even worst then GOTO line number in Basic
The biggest hinderance to this are the literal collection types (lists, dictionaries, etc..). They need to be protected against data races by sacrificing single threaded efficiency. This is also why Python can't take advantage of the wide fetch-decode pipeline in the new apple M1 silicone
listen boi if something is popular doesn't mean its great data scientist are using python just for the simplicity because programming is not there main thing
Great analysis Tim on Python’s Pros and Cons. I have a question which focuses on the two strengths of Python. Python leads the way in the Data Science space as far as supporting modules like Pandas, PyTorch, TensorFlow, NumPy, Scikit-Learn, Keras, MatPlotLib, SciPy … etc. Python also is a great solution for Web Applications and REST services. Overall if you are building a web site that is heavy on statistics in real-time, would it not be much better to write the whole thing in Python? The overall performance of a Python full-stack solution as described would actually be faster compared to other solutions because you are not building a lot of integration layers to perform the AI/Machine-Deep learning functionality of the site? For me, the only other solution that would tackle the same requirements as stated above is a Java (Spring/Spring Boot/Spring Security - Hibernate) and Scala full-stack. Even though this approach would significantly scale better the issue is Scala is still lacking many of the rich Data Science modules Python currently supports out of the box. Very interested in your and any of your subscriber's thoughts on this topic even if they tackle the same requirement as stated above using other languages like Ruby, Go, Elixir ... etc
I kinda don't care that you don't agree. Your argument is like "I kinda don't agree that apple is sweet. Compared to grapes apple is kinda sour!!!". Apple is sweet and python has a lot of libraries.
Sebastien lorentz not easy in a corporate environment behind firewalls. Why do they have to have tutorials for things like tensorflow? I still haven’t been able to install it correctly.
"Go to www.hostinger.com/techwithtim and use code TECHWITHTIM to get up to 91% OFF yearly web hosting plans. Succeed faster!"
You are only 19. Woah! I've really learnt alot from you! Respect
even, I was so shocked after hearing that he's just 19, and in June 2020, I'll be 19 and still, I am struggling with CodeChef beginner's problem.
you're an inspiration for me, Tim. ❤
Excellent. My motto: know the strengths and weaknesses of your tools first, then decide on the best tool for the job at hand.
print ("Like before watching")
PROS :
1) easy
2) tons of resources
3) good modules and packages
4) good for web development
5) machine learning and ai
6) availability
CONS : 7:16
1) slow af
2) bad for 3d rendering and game development (ex. cant use unity engine with python)
3) python sucks on mobile
4) global interpreter lock (u cant run more than 1 thread...at same time.. multi processing is much more difficult)
5) not the best choice for larger projects ( more structured languages like java or c++ will be preferred)
6) too flexible (lol) 10:48
I love your channel !
I learn python in school but in school we just learn basic stuff.
( Assigning to variable and printing, creating arrays etc.)
I got interest in Python and learnt some more stuff about it from your channel. Also! Its my first programming language.
My main con with Python is the documentation, it is awful, apparently having a nice easy to use link tree for all the classes/methods for a module is only something for other languages, as are things like specifying return types or examples with every class/method. The amount of scrolling and searching I have to do when using most Python docs is painful.
Oh and the whole package manager mess... still.
Python was my first deep dive into programming, after 4 years I will say it's great for gui and software because of the libraries, BUT it has some downfalls such as speed. I will say that the problems usually have a workaround though, such as animation in tkinter and ect.
Can't afford to diverge as I'm already committed to Ruby on Rails, but I'm in love with indentation instead of 'end's and closing brackets
I love python and I also use it in competitive programing and try to unleash the power of c++ in a pythonic way 😊😊
U are my bro
@@grizius4123 seems like you love python too 😊😉
@@pushpajitbiswas3752 python is love python is life
@@grizius4123 Live your life in a pythonic way 😊 good luck
Nim lang, C like speed, Python like syntax, Rust like safety, Backend & Frontend.
Im a Data Science student,( freshman in a major on a Portuguese University) and I really enjoyed learning Python in my first trimester. Its just a simple and beautiful language, but like you said it's not good for mobile/game development and in my major we only gonna learn Python, R and SQL... So if i had to pickup a new language for app/game development what app do you recommend?
And wowwww you are a year older then me, that'sssss crazyyyyy :)
Keep up with this awesome videos!
Go for javascript( also known as the language of web).
@@geetramchandani1167 what is the difference between java and javascript?
@@joaojulio435 Tell me the difference between a car and carpenter.. Same goes with javascript and java. Javascript is a scripting language whereas java is not.. The DOM in javascript is great. While there is no DOM thing in Java.
@@geetramchandani1167 sorry this is all new to me :) But thanks for the help! When I finish this semester I will try to learn a little bit of javascript ;)
@@joaojulio435 Cool.
Still stuck on the fact that you're 19, just makes you a lot more awesome!
There is a game engine that has similar syntax like python, Godot, with GD script. And it super extremely good for making 3D games. Besides, game made by Godot can run on cross-platforms :D
It cannot run on consoles tought.
Loved the video! Very clear and very informative! Thanks for the great content!
Cons of Python can be fixed by Cython and other extension to other languages.
One major problem with languages such as Python is the language itself. For example Python has literals for lists, dictionaries etc... these objects can be unnecessarily slow/wasteful in single threaded use as they need to be protected against-data races in multithreaded contexts.
The biggest crime is the wastefulness, new CPUs (such as the Apple M1) contain dedicated silicone that optimizes execution of instructions by assuming that data access is restricted to a single thread. However these assumptions cannot be made for the above literal types in Python as they need to work in multithreaded contexts, ultimately this means that the program cannot benefit from these hardware features.
Advanced languages such as Java, C# and C++ defines a set of rules called the "Memory model" which provides fine grained control over how the CPU can optimize code for single threaded execution.
@@slr150 but these C++, Java, etc. are too buggy and because of that, low performance... also, too much typing... slower development...
@@SkyFly19853 You shouldn't be upgrading your CPU especially to any of the new RISC variants because python programs can't benifit from those. Not sure what you mean by " buggy" or "low performance" in C++ or Java these languages are not buggy.
There is a dev time CPU time tradeoff between languages. Yes Python is faster to develop but it is at least 10 times slower than Java. It ultimately boils down to costs, Python is good when Development cost > compute cost, but this is not true in all cases.
These days compute cost is determined by cloud vendors, for identical work loads a single compute farm could supply 1 Python customer or 10 Java customers meaning you get X10 saving in electricity, rent labor etc..
@@slr150
I do NOT plan to spend developing on Java or C++ by fixing its bugs ( typing errors, etc. )... instead, I can benefit from Cython, Cpython or even Iron Python... Civ 4, even other games or application made in Python. Eve Space Game made in Python... the reason why you think C++ is that you don't want to invest on Python or explore its true potential... there are over 8 million Python developers which can help each others to fix or improve Python even further... You don't really see such thing in Java or C++...
@@SkyFly19853 Those so called typing errors are caught by the compiler . In Python, similar errors (e.g. using wrong variable name) can go uncaught until deployment time. Java, C++ also have communities that go into the millions. Personally I'm not afraid of new languages; I have used C, Java, C++, Go, Rust , Python, JavaScript, TypeScript. In my experience there is a place for every language, just don't go using Python for everything. Python is a good orchestrating language, that's why EVE-online uses it orchestrate components written in C++.
I'm impressed with just how many times you say 'easy' or 'easier' or 'easiest' in your "pros".
Your arguments sound a lot like the arguments I heard in the late '80s and early '90s for Tcl/Tk and why scripting languages are better than compiled languages because you can put practical projects together faster and more easily.
In the late '90s and just after the turn of the millennium it was Perl that was talked about this way. I became a big fan of Perl, especially for text and data analysis, but now I hear it's passe.
I looked into Python when it was new and liked it for a while but got bugged with the way I have to worry about what column the command starts in the way I've never had to do since COBOL in the early '80s. Again, like COBOL, it felt structured for the sake of structure which I've come to resent. Also scripting programming languages are too slow for my taste.
I'm all in for C now, but if programming for Android use Kotlin, for iPhone use Swift.
Yes, Python is everywhere Linux is, so is Perl, probably Tcl/Tk, and certainly C/C++ and probably even FORTRAN. I've seen some pretty impressive retro arcade clone games here that are programmed in Tcl/Tk by John Herrmann.
The best I can figure is that Python is so popular because Python is so popular. It's the flavor of the decade.
Hope you doing well. Your way of teaching was way better than pluralsight and Coursera. Thank you!
Yo. Tim. I'm rewatching this in 2024. I suggest if you want to do gaming.... do Lua. 2D framework would be LOVE 2D. But Its also great with 3D.... Like on Unity (Assuming you can code.... which many folks that flock to Unity just like to use borrowed assets).
The GDScript programming language in Godot game engine is very similar to Python.
This is so true can relate to it very much
Python is an excellent language; it was my first programming language before jumping onto JavaScript. Can it be said if you were to say the strongest ability of Python is automation? Not certain, but from my experience it seems this is its strength.
great tip tim thanks !!!
Good talk man, I personally cannot never accept Python lambda expressions, one of the most unforgivable element in a computer language, even worst then GOTO line number in Basic
Yeap Instagram still uses django
The biggest problem with python is the versions hell
Yeah
Yea
This is a great video Tim!
Is it easier to have a Threaded program written in c++?
Hey Tim! Thank you for the video. But what about threading module for concurrency ?
The biggest hinderance to this are the literal collection types (lists, dictionaries, etc..). They need to be protected against data races by sacrificing single threaded efficiency. This is also why Python can't take advantage of the wide fetch-decode pipeline in the new apple M1 silicone
Very nice
Am i the only one who thinks he looks like Notail in Dota2 ?
C++, Go, or Rust videos coming soon?
print (Tech With Tim is big brain and epic!)
print (Awesome!)
Python cannot be used for front end development and client side scripting.
Just like JavaScript
Hello
listen boi if something is popular doesn't mean its great data scientist are using python just for the simplicity because programming is not there main thing
Great analysis Tim on Python’s Pros and Cons.
I have a question which focuses on the two strengths of Python.
Python leads the way in the Data Science space as far as supporting modules like Pandas, PyTorch, TensorFlow, NumPy, Scikit-Learn, Keras, MatPlotLib, SciPy … etc.
Python also is a great solution for Web Applications and REST services.
Overall if you are building a web site that is heavy on statistics in real-time, would it not be much better to write the whole thing in Python?
The overall performance of a Python full-stack solution as described would actually be faster compared to other solutions because you are not building a lot of integration layers to perform the AI/Machine-Deep learning functionality of the site?
For me, the only other solution that would tackle the same requirements as stated above is a Java (Spring/Spring Boot/Spring Security - Hibernate) and Scala full-stack. Even though this approach would significantly scale better the issue is Scala is still lacking many of the rich Data Science modules Python currently supports out of the box.
Very interested in your and any of your subscriber's thoughts on this topic even if they tackle the same requirement as stated above using other languages like Ruby, Go, Elixir ... etc
why do i feel so dumb at coding
Don't worry, you will be better later, just wait and practice
I kinda don't agree on the "has a lot of libraries" point. Compared to JS, Python has a very small amount of them.
I kinda don't care that you don't agree. Your argument is like "I kinda don't agree that apple is sweet. Compared to grapes apple is kinda sour!!!". Apple is sweet and python has a lot of libraries.
ברור אחי
Pythonic code is sometimes faster
I did the 950th like
You literally look like Marlon Langeland omg
10 people build android apps in Java.
Is calculus really required to learn machine learning?
Don't talk shit about my son ;(
Some of my cons. Difficult to install, difficult to distribute to end users who don’t have python, no wysiwyg development environment
Where would you need a wysiswyg
rck Pyinstaller
Sebastien lorentz to develop a windows application with a user interface.
Sebastien lorentz not easy in a corporate environment behind firewalls. Why do they have to have tutorials for things like tensorflow? I still haven’t been able to install it correctly.
Sebastien lorentz will try pyinstaller and see if it works. Thanks!
Comment
Always throwing shade about Java. I'm personally attacked. lmao.
boom am i second?
OMG I'M FIRST
Your hand magic is distracting me.