It's not just scripting languages. There is the C preprocesor, there was cfront to generate C and now there are languages that generate C++ (Jakt/cppfront). There are build systems for C. Then there are build system that generate the build files for the build systems. And there will be build systems that generate build files for buold systems that generate build files for build systems. I think there will always be a step added to the build process until it all comes crashing down.
@@theevilcottonball At least compiled languages have a mandatory compilation step by definition. It is bizarre how script/interpreted languages also require such steps when they could, in theory, run without it.
@@ecosta Well, there are just in time compilers. And python also compiles to bytecode. So most scripting languages also have a 'compilation step'. But that can be hidden like the c3 compile-run/ tcc -run/zig run/odin run command, which acts like a script interpreter from the outside. In my eyes requiring an extra step has little to do with the language being compiled, it has to do with whether there is a good and flexible language defined concept of a package. C does not need a seperare step if you #include everythin into a single TU and then tcc -run it. Similarily python has import. Though both of these fdatures are lacking something, which is why Cmake/Setuptools etc. are a thing. If they were more flexible and powerful, build systems and so on would only be needed for weird stuff like multi language multi component systems.
Python is like everything: -Oh no, we have 12 incompatible standards. Let's make one to unit them -Oh no, we have 13 incompatible standards. Let's make a new one to unite them -Oh no....
Whoever asked to run all tests at the end, THANK YOU ! I was so curious to know which ones pass, and was looking at the stream approaching the end, thinking that now I won't be able to know which ones pass, then you hit Zozin with your curiosity. BAM, instant happiness, and the results are even better than expected xD And ofc, thank you Zozin for yet another masterpiece of a TH-cam video !
I'm writing (besides other languages) Python in my company for now 7 years. And we never had to introduce "build steps" to this language. Maybe some venv and zero to one dependencies, but not that insane mess. I have the strong feeling, that some people/organizations using their tools wrong
that you and your company never had to introduce additional build steps is good AND reveals that you are using pure python only. The point of building something is, whenever python packages (e.g. numpy, matplotlib, django, pandas, polar, tensorflow, ...) depend on source code/software libraries in other languages (e.g. c, c++, ...).
You don't have to wait for addresses to clear up, you can reuse them. I don't use C3 but in vanilla C on Linux you can use SO_REUSEADDR as sockopt to reuse it, this would also be another cool improvement on the example_server
27:10 - I have a theory. From my decades-old "business-oriented" dev experience, I can confidently say devs usually favour "green field projects" and condemns the concept of maintaining anything older than a year or two. Sure, there are devs (like me) who love to improve "old" stuff, but the average/majority don't. I take a calculated guess this behaviour happens on "open source". Specially on Python - the same community that decided to drop support for a major version of their environment, at the cost of blowing up any piece of software without constant maintenance (like autobahn).
Speaking of enshittification of software, I don't know if this is covered, but "docker build" is being taken away so that you have to install a separate "client-server architecture" (daemon) to accomplish the same thing.
Setuptools and pip truly made a mess of the python packaging space. Not singlehandedly: projects that pulled them in as a dependency have some blame, but the Version breakage was not really a surprise.
The entertainment value is over 9000. And this is why I only use Python libraries available in the system's package manager. And why I use Go when I can.
@@hedlund i guess my phrasing is kind of bad there. i'm not saying that i avoid people because they are not perfect, i'm just saying that i don't really want to deal with unnecessay complexity. i guess i'll just delete those part to prevent further confusion.
27:30 That isn't 100% true. If your C project depends on any libraries, you can have a similar issue when that library is updated and eventually deprecated. My most recent example is the 'Cone' programming language. It uses such an old version of llvm that it includes headers that no longer exist within llvm-c. You are 100% required to obtain a copy of everything for llvm 13 in order to build the project. It's a cool little language that I want to play around with, so I have very much considered actually going in and trying to update it to a more modern llvm version. As far as I have been able to tell, llvm-c is very much under documented which is part of why I looked into Cone in the first place. I've had to use it and the source from C3 to try and learn llvm-c.
`pip2 install .` may have worked, as newer `pip` versions were aware of py3 and do dependency resolution with language version in mind. It will then run `setup.py`, but with all the dependencies already loaded.
3:41 "...because they're the ones who are going to be maintaining this mess..." Not always. Also, jamming the shiniest stuff into the container saves a few arguments with the younger developers.
this reminds me that a TUI i wrote in Perl in 1998 still works in newest perl, lol. I like python as a language better than perl but googlification has really destroyed the python ecosystem.
Googlification? Not sure what you mean by that, but how would that affect the ecosystem? Not sure there would even be an ecosystem without having the ability to rapidly find information, or being able to navigate the web.
Try building software that depends on Google products. You'll end up having to download a million other things. Like oh now you need skia. Well there's no package for it so you have to compile it yourself and to do that you'll have to get googles depot tools... oh and to compile that you have to learn to use some custom Google builder tool... etcetc
As a developer I don't mind deprecations. We might get new cool features and approaches in old software, because it needs to be rewritten, bcs rewritten code is easier to support than the legacy one, also it gives us, engineers, more job to do, AND it deprecates AI models faster than they might be trained to be useful. It's quite sad thinking that this is the thing that gives us, coders, more opportunities, but at the same time I don't mind if it's actually will help us at some point. And also project that have no people to update it -- probably going to die anyway. Let code decade! :)
17:40 Been saying that for years. They'll burn the world down just to keep from attempting to think "maybe there's something I'm not getting". At least I know Imma trash dev & stick to bash scripts, cus I'll only be messing my env up, not desecuring the world. Theory: Your new rig fast enuf for you to slow down & read docs more.
Emacs is quite a tool, just learning it, jives with me more than vim. Does Tsoding use eglot and clangd-19 for LSP? I got that installed and glad to have parameter hints, don't need VScodium when you have emacs, heh.
@@multicoloredwiz Oh I assumed he did. Do you use an LSP? I finally got an LSP installed in Emacs. Just starting to love Emacs, strange for some people Emacs turns them off and they love VIM. I can't stand VIM or any modal editor.
what is so funny about using toml for setup configuration? There never was an endorsed build system for python ... developer just stacked stuff upon each other. Finally the python software foundation wanted to unify and standardize a build system for python packages. While doing so they wanted to move away from the dynamically interpreted setup-dot-py to a static file format. They were considering json, yaml, toml and other formats. Finally they settled with toml.
A common pattern with coding influencers is that they have strong opinions about things they don't know (fully) about. They gladly say and believe everything negative about the things they don't like and will only praise and believe the positives about the things they do like.
Python doesn't have semver (or at least until very recently), and AFAIK, only Rust/Cargo mandates SemVer anyways. Point being, SemVer is a Tower of Jenga that can easily fall just cause. And also why developers should almost always "lock" their dependencies (old Python 2 didn't, and so made a shitbed of a mess).
VPN, In Russia youtube is "slowed", and soon RKN block google because RKN fined google $20,565,635,200,000,003,000,000,000,000,000,000 (yes, its real number)
i've used python 2 until 2014. now just python 3 dont need those headers to tell to run as utf-8, binary data was always treated as ASCII text, in Python 3 have the byte type python 3 becomes slightly harder than python 2. and the news is python 3 get rid of GIL, so core 0 lock is no more
Because this is an application to send websocket packets to test a websocket implementation. It shouldn't need all this complexity to build something like this and people who have this mentality are the reason software quality goes to shit.
I like how all scripting languages get a compilation step at some point and then another and another...
It's not just scripting languages. There is the C preprocesor, there was cfront to generate C and now there are languages that generate C++ (Jakt/cppfront). There are build systems for C. Then there are build system that generate the build files for the build systems. And there will be build systems that generate build files for buold systems that generate build files for build systems.
I think there will always be a step added to the build process until it all comes crashing down.
@@theevilcottonball At least compiled languages have a mandatory compilation step by definition. It is bizarre how script/interpreted languages also require such steps when they could, in theory, run without it.
@@ecosta Well, there are just in time compilers. And python also compiles to bytecode. So most scripting languages also have a 'compilation step'. But that can be hidden like the c3 compile-run/ tcc -run/zig run/odin run command, which acts like a script interpreter from the outside.
In my eyes requiring an extra step has little to do with the language being compiled, it has to do with whether there is a good and flexible language defined concept of a package. C does not need a seperare step if you #include everythin into a single TU and then tcc -run it. Similarily python has import. Though both of these fdatures are lacking something, which is why Cmake/Setuptools etc. are a thing. If they were more flexible and powerful, build systems and so on would only be needed for weird stuff like multi language multi component systems.
Python is like everything:
-Oh no, we have 12 incompatible standards. Let's make one to unit them
-Oh no, we have 13 incompatible standards. Let's make a new one to unite them
-Oh no....
2:17:40 you can feel the dopamine rush after the tests passed, tsoding`s mood improve a lot after it 🤣
3:23 - 3:45 ... Completely Agree buddy!!! Testify!!! 🙌🙌🙌
I’m trying to learn more about websockets and here you come and implement one from scratch
Awesome video super informative
God sent
Whoever asked to run all tests at the end, THANK YOU !
I was so curious to know which ones pass, and was looking at the stream approaching the end, thinking that now I won't be able to know which ones pass, then you hit Zozin with your curiosity. BAM, instant happiness, and the results are even better than expected xD
And ofc, thank you Zozin for yet another masterpiece of a TH-cam video !
I'm writing (besides other languages) Python in my company for now 7 years. And we never had to introduce "build steps" to this language. Maybe some venv and zero to one dependencies, but not that insane mess.
I have the strong feeling, that some people/organizations using their tools wrong
that you and your company never had to introduce additional build steps is good AND reveals that you are using pure python only.
The point of building something is, whenever python packages (e.g. numpy, matplotlib, django, pandas, polar, tensorflow, ...) depend on source code/software libraries in other languages (e.g. c, c++, ...).
the subtitles at 2:16:40 😂
Penger
You don't have to wait for addresses to clear up, you can reuse them. I don't use C3 but in vanilla C on Linux you can use SO_REUSEADDR as sockopt to reuse it, this would also be another cool improvement on the example_server
35:47 When docker is obsolete too this code is lost to the wind 😂
27:10 - I have a theory. From my decades-old "business-oriented" dev experience, I can confidently say devs usually favour "green field projects" and condemns the concept of maintaining anything older than a year or two. Sure, there are devs (like me) who love to improve "old" stuff, but the average/majority don't.
I take a calculated guess this behaviour happens on "open source". Specially on Python - the same community that decided to drop support for a major version of their environment, at the cost of blowing up any piece of software without constant maintenance (like autobahn).
3:30 I fully agree. If your project requires a docker container for it to build then you have failed.
Speaking of enshittification of software, I don't know if this is covered, but "docker build" is being taken away so that you have to install a separate "client-server architecture" (daemon) to accomplish the same thing.
Setuptools and pip truly made a mess of the python packaging space. Not singlehandedly: projects that pulled them in as a dependency have some blame, but the Version breakage was not really a surprise.
"there's no reason for code to decay"
The entertainment value is over 9000. And this is why I only use Python libraries available in the system's package manager. And why I use Go when I can.
i've seen a lot of "insanely smart people" adding complexity because they can, rather than asking "should they do it?".
I kind of understand why. Doing things the simple straightforward way is often the most boring approach.
"Avoiding" "smart people" because they aren't all perfect in your eyes is a uniquely daft move, I'd say, but you do you.
@@hedlund i guess my phrasing is kind of bad there. i'm not saying that i avoid people because they are not perfect, i'm just saying that i don't really want to deal with unnecessay complexity.
i guess i'll just delete those part to prevent further confusion.
27:30 That isn't 100% true. If your C project depends on any libraries, you can have a similar issue when that library is updated and eventually deprecated.
My most recent example is the 'Cone' programming language. It uses such an old version of llvm that it includes headers that no longer exist within llvm-c. You are 100% required to obtain a copy of everything for llvm 13 in order to build the project.
It's a cool little language that I want to play around with, so I have very much considered actually going in and trying to update it to a more modern llvm version. As far as I have been able to tell, llvm-c is very much under documented which is part of why I looked into Cone in the first place. I've had to use it and the source from C3 to try and learn llvm-c.
You had to use Cone and the source for C3 to learn llvm-c....? What are you talking about bro.
@daxramdac7194 Example code makes for decent documentation when you lack documentation. llvm and llvm-c are not the same.
`pip2 install .` may have worked, as newer `pip` versions were aware of py3 and do dependency resolution with language version in mind. It will then run `setup.py`, but with all the dependencies already loaded.
3:41 "...because they're the ones who are going to be maintaining this mess..." Not always. Also, jamming the shiniest stuff into the container saves a few arguments with the younger developers.
this reminds me that a TUI i wrote in Perl in 1998 still works in newest perl, lol. I like python as a language better than perl but googlification has really destroyed the python ecosystem.
What do you mean by googlification? Making it easier to search for things?
Googlification? Not sure what you mean by that, but how would that affect the ecosystem? Not sure there would even be an ecosystem without having the ability to rapidly find information, or being able to navigate the web.
@@daxramdac7194maybe to him Google is synonymous to shit so it's actually enshittification?
Try building software that depends on Google products. You'll end up having to download a million other things. Like oh now you need skia. Well there's no package for it so you have to compile it yourself and to do that you'll have to get googles depot tools... oh and to compile that you have to learn to use some custom Google builder tool... etcetc
That might be due to Perl is a walking dead. Or Perl is completed. Depends on who you ask. ;)
As a developer I don't mind deprecations. We might get new cool features and approaches in old software, because it needs to be rewritten, bcs rewritten code is easier to support than the legacy one, also it gives us, engineers, more job to do, AND it deprecates AI models faster than they might be trained to be useful. It's quite sad thinking that this is the thing that gives us, coders, more opportunities, but at the same time I don't mind if it's actually will help us at some point. And also project that have no people to update it -- probably going to die anyway. Let code decade! :)
Thank you...
17:40 Been saying that for years. They'll burn the world down just to keep from attempting to think "maybe there's something I'm not getting".
At least I know Imma trash dev & stick to bash scripts, cus I'll only be messing my env up, not desecuring the world.
Theory: Your new rig fast enuf for you to slow down & read docs more.
You should run this against another open source web socket library and compare it to yours!🎉
Emacs is quite a tool, just learning it, jives with me more than vim. Does Tsoding use eglot and clangd-19 for LSP? I got that installed and glad to have parameter hints, don't need VScodium when you have emacs, heh.
He doesn't use an LSP, he just uses emacs compile mode to follow where errors happened
@@multicoloredwiz Oh I assumed he did. Do you use an LSP? I finally got an LSP installed in Emacs. Just starting to love Emacs, strange for some people Emacs turns them off and they love VIM. I can't stand VIM or any modal editor.
what is so funny about using toml for setup configuration?
There never was an endorsed build system for python ... developer just stacked stuff upon each other.
Finally the python software foundation wanted to unify and standardize a build system for python packages.
While doing so they wanted to move away from the dynamically interpreted setup-dot-py to a static file format.
They were considering json, yaml, toml and other formats.
Finally they settled with toml.
Скоро превью правда начнут светится
the modern slop, DOA
There is no pipe (or at least: there should not be one). The pipe is an implementation artifact.
i really like your videos! 👍👍👍
❤❤❤❤
Pretty sure JavaScript keeps all of its legacy forever (except for 'with' keyword)
A common pattern with coding influencers is that they have strong opinions about things they don't know (fully) about. They gladly say and believe everything negative about the things they don't like and will only praise and believe the positives about the things they do like.
Please, let it die already. It's been 4 years
Python doesn't have semver (or at least until very recently), and AFAIK, only Rust/Cargo mandates SemVer anyways.
Point being, SemVer is a Tower of Jenga that can easily fall just cause. And also why developers should almost always "lock" their dependencies (old Python 2 didn't, and so made a shitbed of a mess).
how tf do i draw a circle
Having python2 and python3 installed system-wide simultaneously 💀💀💀
hm? a lot of linux distros still ship python2 by default iirc
@@FlanPoirot python symlinked to python3 typically tho
@@2khz python is python3 and python2 is well python2
that's how it is now, but a few years ago it was the other way around
no one remembers python1 😢
@@RunningRay9literally useless
It feels sadistic to watch this.....
Fahrn fahrn fahrn auf der Autobahn
are you planning on looking into gleam or odin at any point?
13:50 Why is your Google in German?
VPN, In Russia youtube is "slowed", and soon RKN block google because RKN fined google $20,565,635,200,000,003,000,000,000,000,000,000 (yes, its real number)
Russians are blocked from tons of western companies' sites. He likely uses a German von
proxy maybe
Not just their website is dead, Python 2 has been dead for 7 years now
i've used python 2 until 2014. now just python 3
dont need those headers to tell to run as utf-8, binary data was always treated as ASCII text, in Python 3 have the byte type
python 3 becomes slightly harder than python 2. and the news is python 3 get rid of GIL, so core 0 lock is no more
"Useful python" 💀
why the browser is German???
Why dont you like docker containers? :O
yeah it would be tha fastest way to get the test suite running
I guess he hates complex abstractions. At least those he doesn't understand. And it's a lot to understand how docker actually works.
Containers are nice, but Docker definitely isn't
Because this is an application to send websocket packets to test a websocket implementation. It shouldn't need all this complexity to build something like this and people who have this mentality are the reason software quality goes to shit.
Because they are slow, use a lot of ram, and disk space. He might have a new laptop now, but I do not and that is the reason why I do not use docker.
вы в россии живете?
А вы?
Second
first?
No, I'm first. I literally created this channel.
@@TsodingDaily No. You asked TH-cam to create it for you. It is not your channel. Google is in control here.
@@TsodingDaily hehe
@@TsodingDaily btw any plan using raylib in vlang?
@@TsodingDailythis guy is lying. He's actually the third zozen
python 2 dependency tools hell.
python 3:
$ python -m venv venv; source ./venv/bin/activate; pip install -r requirements.txt
done.
hahaha no