One way to think of dynamically- vs statically-typed languages is that in dynamically-typed languages, it's the _values_ that have type but in statically-typed languages it's the _variables_ that have type. HTH.
A big advantage of Static Typing was memory allocation. If you declare a to be an int, you knew exactly how much memory a would ever need. This also of course came with a whole bag of problems like array boundaries in C and such. Modern memory management and the huge amount of memory available for most applications renders this completely moot. You can also use type hints in Python to make clear what the intended type of a variable or function result is and a good IDE will find many potential errors that way.
having only had C as my main language (student in electrical engineering here), I'm all for static types, dynamic types feel super weird to me XD. I once was searching around for how types were handled in python and I couldn't get a good answer to my question, although now I'd guess that an int can be based on anything from 8 to 64 bits ? also, with masking (to make a variable into one that's of another type) aside from speed, I completely agree that dynamic types would be mostly a source of error as opposed to a good thing for more consquential projects.
it boggles my mind the amount of workarounds dynamic languages take when they want to ensure static typing, like in typed dictionaries. Im happy for them i guess, but it really just hurts my brain lmao
I've never found dynamic variables useful. Just really annoying when looking at other people's code because it's unclear what type it is. Which methods apply to that variable? If it's an int why is it helpful to allow some string concatenate methods on it? It's just asking for errors at run time. Does it really make it easier for beginners? Probably more confusion
Nice video but this is how I always felt about dynamic/static. I don't see you "var x int = 5" is verbose of hard to read? :) Okay, you need to know what an integer and a variable is, but hopefully, if you are gonna write code that doesn't run into other mysterious bugs down the road, you should probably know what an integer is and how it works?
So the real problem starts (with Python) when you pass over e.g. a Pandas dataframe to a function (and this happens a lot in Python projects) - and okay you annotate that you require a pd.DataFrame, but then what? The devil lives in dtypes…. So then you have pydantic, but do you always check the column names and dtypes in each and every function which receives a pandas dataframe? Same with all compound types like dictionaries etc.
The recent videos on the channel have been crisp and informative. Please keep up the good work
Happy they have been helpful! More to come :)
dude your website is legendary. So much better than anything else out there
thank you for this and the course been loving everything so far on my free trial lol
lovely to hear that!
Wonderful explanation. Really helpful to not only grasp what is meant by the two terms, but also why dynamic typing can actually be problematic.
I am studying about entropy and i'im just fall in here seeing videos about python and everything i love about programming. Tks, Lane!
YOURE WELCOME :)
clear and to the point...Thanks dude.
Loving these videos!
Glad you like them!
type Inference and Static typing, well defined in this video.
Good video, watched it as part of the Python Course. Still a little vague as to what TypeInference actually means tho, but kind of 50~60% grasp it ✌
One way to think of dynamically- vs statically-typed languages is that in dynamically-typed languages, it's the _values_ that have type but in statically-typed languages it's the _variables_ that have type. HTH.
i like this
well simply explained !!
A big advantage of Static Typing was memory allocation. If you declare a to be an int, you knew exactly how much memory a would ever need. This also of course came with a whole bag of problems like array boundaries in C and such.
Modern memory management and the huge amount of memory available for most applications renders this completely moot.
You can also use type hints in Python to make clear what the intended type of a variable or function result is and a good IDE will find many potential errors that way.
Nice video! Thank you
4:14 c++ has type inference using auto keyword
Thanks for helping!
Yes it was mentioned by the OP that there is time intervals and evolution.
The same with Java, it has a var keyword
having only had C as my main language (student in electrical engineering here), I'm all for static types, dynamic types feel super weird to me XD. I once was searching around for how types were handled in python and I couldn't get a good answer to my question, although now I'd guess that an int can be based on anything from 8 to 64 bits ? also, with masking (to make a variable into one that's of another type) aside from speed, I completely agree that dynamic types would be mostly a source of error as opposed to a good thing for more consquential projects.
it boggles my mind the amount of workarounds dynamic languages take when they want to ensure static typing, like in typed dictionaries. Im happy for them i guess, but it really just hurts my brain lmao
I've never found dynamic variables useful. Just really annoying when looking at other people's code because it's unclear what type it is. Which methods apply to that variable? If it's an int why is it helpful to allow some string concatenate methods on it? It's just asking for errors at run time. Does it really make it easier for beginners? Probably more confusion
Nice video but this is how I always felt about dynamic/static.
I don't see you "var x int = 5" is verbose of hard to read? :)
Okay, you need to know what an integer and a variable is, but hopefully, if you are gonna write code that doesn't run into other mysterious bugs down the road, you should probably know what an integer is and how it works?
So the real problem starts (with Python) when you pass over e.g. a Pandas dataframe to a function (and this happens a lot in Python projects) - and okay you annotate that you require a pd.DataFrame, but then what? The devil lives in dtypes…. So then you have pydantic, but do you always check the column names and dtypes in each and every function which receives a pandas dataframe? Same with all compound types like dictionaries etc.
Lets go feed the snake =)
Hello Lane, I sent an email more than 12 hours ago, could you please read it and respond? Thank you.
I think I did!