How To Scare C++ Programmer

Поделиться
HTML-код
  • Опубликовано: 15 сен 2024
  • Seems like I should use Python for my distributed computing project...
    Context: stackoverflow....

Комментарии • 1,6 тыс.

  • @Collector2006
    @Collector2006 Год назад +9323

    One time I decided to learn Python. I bought books, registered for a class at a local university. After 2 classes I realized I already knew python. Because Python is just C++ for kids. And I have the maturity of a 7 year old.

    • @unknownstoneageman81
      @unknownstoneageman81 Год назад +82

      @@HuntingKingYT Holy shit. No cap?

    • @boxinabox6608
      @boxinabox6608 Год назад +184

      @@HuntingKingYT you always had this coming...
      Who asked?

    • @calou6270
      @calou6270 Год назад +254

      @@boxinabox6608 Hi, i'm the guy who asked, enjoy :)

    • @sadzake
      @sadzake Год назад +41

      @@boxinabox6608 I also, indeed, asked

    • @VelikiFeniks
      @VelikiFeniks Год назад +29

      Python is not for kids

  • @ahuman32478
    @ahuman32478 Год назад +4529

    How do you scare a C++ programmer? Show them their own code

    • @spicychad55
      @spicychad55 Год назад +67

      Show them Asssembly code!👾

    • @DissociatedWomenIncorporated
      @DissociatedWomenIncorporated Год назад +12

      @@spicychad55 show them INTERCAL!

    • @Flowery0
      @Flowery0 Год назад +11

      No, they might grow resistant to it. Show them MY code
      Also, you can make them learn python, while simultaneously not dropping C++. Then, make them write a program (without compiling it and without copying from other sources) in python and in 10 minutes(after start) make them write the same one in C++(also without compiling it and without copying from other sources). Repeat until they're done. After that, compile both programs. Profit

    • @ramiel7666
      @ramiel7666 Год назад +7

      And say there's 1 mistake there, but don't tell them what it is.....

    • @Chadius_Thundercock
      @Chadius_Thundercock Год назад +4

      For some reason that reminds me of the punisher meme of him screaming “WAIT WAIT WAIT” while sobbing

  • @Eknoma
    @Eknoma Год назад +5479

    1) IO operations take about, I dunno, like 1000 times as long as most other instructions, and are completely done by the OS. Which means that IF you managed to write the same code in both languages, you would get basically the same speed.
    2) However you did not write the same code, the Python program (probably) reads larger chunks of the file at a time, and since reading 1 byte and reading 4kB takes approximately the same amount of time, it obviously takes less time
    3) You are using completely different data structures. In Your Python program, you are using IMMUTABLE STRINGS, so they can safely avoid copying, and instead just reference the input data, while your C++ strings are MUTABLE, so they (likely) have to copy the data

    • @pixelitedragon1720
      @pixelitedragon1720 Год назад +315

      To add to Point 1, IO operations are slow cause, if i remember correctly, they don’t include buffering so the program have to fetch data from the main memory instead of using a cache

    • @gamersunite9026
      @gamersunite9026 Год назад +400

      god bless you bro, was actually gonna go insane for a moment because thats literally not possible

    • @carlomaggiolo2180
      @carlomaggiolo2180 Год назад +66

      Thanksssss. Other hours of study, do have you got any advice to learn these small details?

    • @nano0110
      @nano0110 Год назад +8

      @@carlomaggiolo2180 1+

    • @furo.v
      @furo.v Год назад +35

      @@pixelitedragon1720 is it? I think cache useage is transparent to all programs (OS included)
      (programs can't choose whether to use main memory or cache)

  • @Mr.Not_Sure
    @Mr.Not_Sure Год назад +3225

    Now the good part: in C++ you can improve the code so it runs much faster. In python you can do not much to improve unless you write a wrapper which calls C++.

    • @soanvig
      @soanvig Год назад +137

      Well actually you CAN improve interpreted languages perfomance a lot. In any algo there are optimizable bottlenecks. The difference is that you can push optimization farther if you are using language with memory control

    • @andresidk8282
      @andresidk8282 Год назад +51

      @@soanvig for loops in python moment (don't tell me about map() )

    • @casusbelli9225
      @casusbelli9225 Год назад +230

      You can improve the code written in python.
      Write it in C++

    • @sid6415
      @sid6415 Год назад +37

      @@soanvig And the fastest you can take python is by calling a c++ code anyway.

    • @onyilimba
      @onyilimba Год назад +9

      @@sid6415 I believe its c not c++

  • @boeing-747
    @boeing-747 Год назад +540

    C++ cin and cout streams are very slow by default because they have to wait and sync with the C standard streams. Add std::ios_base::sync_with_stdio(false); and run the test again

    • @monologicaly
      @monologicaly Год назад

      Or just learn lua instead of using either of these shitcodes

    • @boeing-747
      @boeing-747 Год назад +12

      @@monologicaly you can't really compare the two, they have entirely different use cases

    • @deathbell616
      @deathbell616 Год назад +5

      Not ios_base::sync_with_stdio(false); ?

    • @deathbell616
      @deathbell616 Год назад +2

      With 'std', yep

    • @boeing-747
      @boeing-747 Год назад +19

      @@deathbell616 yeah sorry, it's std::ios_base

  • @MasterSergius
    @MasterSergius Год назад +1313

    I thought C++ programmers can't be scared, they already live in an eternal fear

    • @janisir4529
      @janisir4529 Год назад +68

      C++ is great once you learned the million most common way to foot gun yourself.

    • @creatorofimages7925
      @creatorofimages7925 Год назад

      @@janisir4529 Correction, not "foot gun"! Blowing your leg off.

    • @janisir4529
      @janisir4529 Год назад

      @@creatorofimages7925 It's technically "shoot yourself in the foot" but I prefer it my way.

    • @creatorofimages7925
      @creatorofimages7925 Год назад

      @@janisir4529 nono, u misunderstand. it is a refernce with a comparison between c and c++ :D if u fuck up memory management in c u can shoot urself in the foot in C but in C++ u probably blow your entire leg off if something goes wrong :D

    • @janisir4529
      @janisir4529 Год назад +4

      @@creatorofimages7925 What? The most likely outcome in both cases is an access violation crash.

  • @KolMan2000
    @KolMan2000 Год назад +1465

    It would actually mean it’s 33% slower. 150% is a 50% increase, but going back down is only a 33% decrease

    • @gwch3481
      @gwch3481 Год назад +38

      It's 50 percent points slower

    • @goutgueule9197
      @goutgueule9197 Год назад +88

      @@gwch3481 that makes no sense "50 percent points" doesn't exitst

    • @dysrhythmic
      @dysrhythmic Год назад +136

      @@goutgueule9197 google percentage points right now then come back here and apologize to the guy

    • @SolomonUcko
      @SolomonUcko Год назад +87

      @@dysrhythmic percentage points is a thing but it doesn't apply in this context; it only applies when the values being compared are themselves percentages

    • @goutgueule9197
      @goutgueule9197 Год назад +17

      @@dysrhythmic ok ok sorry but i had never heard of that and to me it made no sense

  • @Lightn0x
    @Lightn0x Год назад +474

    This is why C++ is reserved for people who know what they are doing :D

    • @cpK054L
      @cpK054L Год назад +25

      I have no idea what I'm doing... ....and I'm currently using STM32 ARM C

    • @ownedbyptr
      @ownedbyptr Год назад +1

      @@cpK054L currently writing Borland C for DOS

    • @sunfix991
      @sunfix991 Год назад +4

      i want to know :o(

    • @simonharris4873
      @simonharris4873 7 месяцев назад +1

      @@ownedbyptr Ah... those were the days.

    • @computerscience3836
      @computerscience3836 7 месяцев назад

      Truth!

  • @lokeshmishra4400
    @lokeshmishra4400 Год назад +258

    you can't scare a c++ deeloper dude,
    in python you've read the whole chunk at once, but in case of C++ you're reading it line by line --- causing more input operations resulting in more time, in fact i'm impressed that c++ takes this less time for a million input operations more than python.

    • @Nohomosapien
      @Nohomosapien Год назад +10

      When the comparison is fair:
      ruclips.net/video/VioxsWYzoJk/видео.html

    • @deadeye1982a
      @deadeye1982a Год назад +7

      Yes, sys.stdin is buffered. The iterator iterates over the internal buffer line by line. The assignment does not have any effect. The bytecode-compiler will remove this line. If you want to test the speed of the languages, then you have to take IO away. Both tests require the same conditions, and it's not the case with the example code.

    • @RealLostmatter
      @RealLostmatter 5 месяцев назад

      oo lemme try!
      java

  • @Far-Reez
    @Far-Reez Год назад +531

    Just be honest...
    For me, C++ still comfortable than python. Don't know why, but by putting "{ }" feels.... AESTHETIC

    • @flashroyal9933
      @flashroyal9933 Год назад +65

      i thought i am the only one that feels the same about c/c++ vs python lol

    • @AURORAFIELDS
      @AURORAFIELDS Год назад +24

      I will remain unhappy with significant whitespace. it makes sense but is also evil

    • @MoNsTeCoRe
      @MoNsTeCoRe Год назад +41

      For me not realy that {} feels good, but pythons way of handling that with indentation feels absolutely horrendous

    • @catthebutcher9438
      @catthebutcher9438 Год назад +22

      It has more flexibility with {} and ;
      Also you do not need the right amount of SPACES.. yes right SPACES! not TABS!
      It has to compile and tells you about lang mistakes before running program not in the middle of running.
      And I forgot. You define type of variable so you know what it is. In python you come bck to large old code and have no idea what type a variable is cD

    • @porterhouse937
      @porterhouse937 Год назад +20

      That’s one of the major reasons I hate Python, the code looks broken to me without brackets coming from C

  • @tophatty
    @tophatty Год назад +246

    using namespace std was the scariest part

    • @mr.potatoman2409
      @mr.potatoman2409 Год назад +16

      My teacher in school tells us to use 'using namespace std' and it's scary af

    • @knowledgenews5343
      @knowledgenews5343 Год назад

      Why?

    • @tophatty
      @tophatty Год назад +26

      @@knowledgenews5343 there's a whole stack overflow page about the issues with it and I just think typing std:: before everything is a good habit anyway

    • @MoolsDogTwoOfficial
      @MoolsDogTwoOfficial 8 месяцев назад +24

      @@knowledgenews5343Basically it pollutes the global namespace with std functions which potentially could cause function name collisions.

    • @computerscience3836
      @computerscience3836 7 месяцев назад +3

      That told us everything we needed to know, didn't it?

  • @jaysistar2711
    @jaysistar2711 Год назад +33

    You compared buffered I/O in Python to direct I/O in C++.

  • @Raspredval1337
    @Raspredval1337 Год назад +151

    hot take: if you really wanna scare c++ programmes, you should ask them to use std::find on an array of some structs and then try to read the compile error, lmao.

    • @elia0162
      @elia0162 Год назад +4

      can you write the compile error here ?

    • @Raspredval1337
      @Raspredval1337 Год назад

      @@elia0162 here it is:
      Executing task: /usr/bin/g++ -fdiagnostics-color=always -O3 -mavx /home/***/Projects/cpp/testing/source/*.cpp -o /home/***/Projects/cpp/testing/bin/release/out -Wall -Wextra -Wconversion -Wpedantic -Werror -std=c++20 -lfmt
      /home/***/Projects/cpp/testing/source/main.cpp: В функции «int main()»:
      /home/***/Projects/cpp/testing/source/main.cpp:289:22: ошибка: не найден метод для преобразования в «(const std::ranges::__find_fn) (main()::Test [50], main()::Test)»
      289 | std::ranges::find(lpTest, Test{5, 7});
      | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
      In file included from /usr/include/c++/12.2.0/ranges:47,
      from /home/***/Projects/cpp/testing/source/main.cpp:3:
      /usr/include/c++/12.2.0/bits/ranges_util.h:445:7: замечание: candidate: «template requires (input_iterator) && (sentinel_for) && (indirect_binary_predicate) constexpr _Iter std::ranges::__find_fn::operator()(_Iter, _Sent, const _Tp&, _Proj) const»
      445 | operator()(_Iter __first, _Sent __last,
      | ^~~~~~~~
      /usr/include/c++/12.2.0/bits/ranges_util.h:445:7: замечание: вывод/подстановка аргумента шаблона неудачна:
      /home/***/Projects/cpp/testing/source/main.cpp:289:22: замечание: кандидат ожидает 4 аргумента, 2 предоставлено
      289 | std::ranges::find(lpTest, Test{5, 7});
      | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
      /usr/include/c++/12.2.0/bits/ranges_util.h:459:7: замечание: candidate: «template requires (input_range) && (indirect_binary_predicate) constexpr std::ranges::borrowed_iterator_t std::ranges::__find_fn::operator()(_Range&&, const _Tp&, _Proj) const»
      459 | operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const
      | ^~~~~~~~
      /usr/include/c++/12.2.0/bits/ranges_util.h:459:7: замечание: вывод/подстановка аргумента шаблона неудачна:
      /usr/include/c++/12.2.0/bits/ranges_util.h:459:7: замечание: constraints not satisfied
      In file included from /usr/include/c++/12.2.0/compare:39,
      from /usr/include/c++/12.2.0/bits/stl_pair.h:65,
      from /usr/include/c++/12.2.0/bits/stl_algobase.h:64,
      from /usr/include/c++/12.2.0/bits/specfun.h:45,
      from /usr/include/c++/12.2.0/cmath:1935,
      from /usr/include/fmt/format.h:36,
      from /home/***/Projects/cpp/testing/source/main.cpp:1:
      /usr/include/c++/12.2.0/concepts: В подстановке «template requires (input_range) && (indirect_binary_predicate) constexpr std::ranges::borrowed_iterator_t std::ranges::__find_fn::operator()(_Range&&, const _Tp&, _Proj) const [с _Range = main()::Test (&)[50]; _Tp = main()::Test; _Proj = std::identity]»:
      /home/***/Projects/cpp/testing/source/main.cpp:289:22: required from here
      /usr/include/c++/12.2.0/concepts:336:13: required for the satisfaction of «invocable» [с _Fn = std::ranges::equal_to&; _Args = {main::Test&, main::Test&}]
      /usr/include/c++/12.2.0/concepts:340:13: required for the satisfaction of «regular_invocable» [с _Fn = std::ranges::equal_to&; _Args = {main::Test&, main::Test&}]
      /usr/include/c++/12.2.0/concepts:344:13: required for the satisfaction of «predicate» [с _Fn = std::ranges::equal_to; _I2 = const main::Test*; _I1 = std::projected]
      /usr/include/c++/12.2.0/bits/iterator_concepts.h:716:13: required for the satisfaction of «indirect_binary_predicate» [с _Range = main::Test (&)[50]; _Proj = std::identity; _Tp = main::Test]
      /usr/include/c++/12.2.0/concepts:336:25: замечание: the expression «is_invocable_v [с _Fn = std::ranges::equal_to&; _Args = {main::Test&, main::Test&}]» evaluated to «false»
      336 | concept invocable = is_invocable_v;
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      * The terminal process "/usr/bin/bash '-c', '/usr/bin/g++ -fdiagnostics-color=always -O3 -mavx /home/raspredval/Projects/cpp/testing/source/*.cpp -o /home/***/Projects/cpp/testing/bin/release/out -Wall -Wextra -Wconversion -Wpedantic -Werror -std=c++20 -lfmt'" terminated with exit code: 1.

    • @TheArtikae
      @TheArtikae Год назад +32

      @@elia0162 Probably not. That’s the problem.

    • @elia0162
      @elia0162 Год назад

      @@TheArtikae lol wtf it is messed up

    • @mrkiky
      @mrkiky Год назад +9

      Or read any compile error that has anything to do with the wrong data type.

  • @Tristoo
    @Tristoo Год назад +888

    The fact that a python programmer would think using I/O to test code performance is something reasonable, is exactly why this video makes the opposite point it's trying to.

    • @polnapanda4934
      @polnapanda4934 Год назад +161

      Man this video is a joke

    • @schlopping
      @schlopping Год назад +121

      The fact that you couldn't see that this is obviously a joke, is exactly why the video makes the point it's trying to.

    • @spyrex3988
      @spyrex3988 Год назад +14

      And I/O operation with different data structures too

    • @dwightk.schrute8696
      @dwightk.schrute8696 Год назад +1

      class TrisT: public Butthurt {}

    • @mikicerise6250
      @mikicerise6250 Год назад +4

      I was affrendered, as a letter C.

  • @deice3
    @deice3 Год назад +304

    So true, it scares me how lacking Python programmers seem to be at designing benchmarks.

    • @vladislavakm386
      @vladislavakm386 8 месяцев назад +14

      print("0.138 s")

    • @computerscience3836
      @computerscience3836 7 месяцев назад +7

      Python programmer is a bit of a stretch. Python is about a half step up from Scratch. It is a toy language.

    • @IllidanS4
      @IllidanS4 7 месяцев назад +5

      Python programmers are bad at designing anything.

    • @abcdef-ms9mb
      @abcdef-ms9mb 3 месяца назад +5

      @@computerscience3836 You're a toy programmer if you don't recognize that different tools have different use cases lmao

    • @vidal9747
      @vidal9747 22 дня назад

      @@computerscience3836 You sound like my college professor. He refuses to teach anything but Fortran 77 (in 2024). He doesn't understand that different languages have its places. Why the hell would I create a plot in C++ when I can scratch together a notebook and do it faster in matplotlib? Every language has its place. (except Java).

  • @ChrisContin
    @ChrisContin Год назад +85

    Python will often use a single memread to open and contain files, which allows for a speed-use of large files, but C++ would not optimize that unless specifically instructed! Fun video, thanks!

    • @andrewwhiteman8892
      @andrewwhiteman8892 Год назад +2

      Then what's the optimized code? Can you show me?

    • @ChrisContin
      @ChrisContin Год назад +13

      @@andrewwhiteman8892 Sure! In C++ the code is "memtemplate" or "memcpy", which are implemented through a memset operation in C-lib. All code in the C-lib environment is pretty outdated, but you can create a similar function in this way:
      global ptr* load-file func {
      # pseudo-code for loading a file from disk into memory, using chunks aligned with page and disk-block size
      findChunkSize(useCurrentDisk is true) store in localVar ChunkSize; # this needs to find the largest, common size that fits in both one page size, which is how many bytes are loaded by the operating system for a single-use, and one block size, which is how many bytes are read by the hard-disk in a single read operation
      readOneChunk(useSingleChunkIO is true) store in localVar SingleChunk; # would need the block-place of the file in question, as well as localVar ChunkSize, etc, which are often omitted in pseudo-code, as it is a guide only, but I thought to mention as I would write it in!
      ConfirmChunkIsRead() returns true or false, test; # sometimes the disk is too busy to read and will fail, etc. By pseudo-code rules, no exception handling is needed, but here would be one
      UseSingleChunkFollowOn(pass-in SingleChunk, useDigitalSideIO is true) store in localVarArray AllChunksOfFile; # the SingleChunk is already measured, and includes where it was found for easy read-on-- DigitalSideIO is a boolean true or false for whether to follow the chunks as an abstract "file" (which We want) or literally as blocks on disk (for simpler I/O)
      # all chunks are read, and now are stored for access outside of the same-func.
      UseGlobalAlloc(sizeof AllChunksOfFile, cache-memread pass-in AllChunksOfFile) as return
      }
      Python uses a smaller form of this same function to cache exactly 1 MB or so. The later versions of Python will attack the file in different ways to further improve system-side caching without having to test if there is a large memread cache on disk, in the operating system, or other ways. All of this code is in Python's "memread" and "system IO call-func" parts, in case you're further interested. Take care!

    • @ZihadJoy
      @ZihadJoy 8 месяцев назад

      bruhh what the fck is this
      @@ChrisContin

    • @jaideepshekhar4621
      @jaideepshekhar4621 3 месяца назад

      Even just removing sync io with stdio makes it much faster than python.

    • @realdragon
      @realdragon 3 месяца назад

      You mean like mmap?

  • @aavezshaikh8442
    @aavezshaikh8442 Год назад +10

    0:56 The maths ain't mathing here 🗿

  • @alichamas63
    @alichamas63 Год назад +83

    Haha good one. This is why python has been traditionally used for embedded, realtime, OS, games, heavy desktop apps, and writing other major tools and runtimes...oh wait

    • @Phantom-lr6cs
      @Phantom-lr6cs Год назад +1

      python is slow tortoise ; when it becomes larger your program becomes slow as tortoise ; maybe this dude has 256 gb ram and that's why python is fast ; go and test it in the slow pc with 2 or 4 gb ram and you will see

    • @emireri2387
      @emireri2387 Год назад

      @@Phantom-lr6cs fun fact: you said to test it in a slow pc with 2 or 4gb ram, so you just pushed the blame on depending on how fast the pc is, also dude doesnt have 256gb no one has 256gb ram plugged to one pc

    • @johnwig285
      @johnwig285 Год назад +1

      just to be replaced by a Java developer 🤷🏽‍♂️

    • @davidwuhrer6704
      @davidwuhrer6704 Год назад +8

      @@Phantom-lr6cs Windows user detected.
      More RAM doesn't make your programmes run faster, unless your OS is constantly thrashing.

    • @cpK054L
      @cpK054L Год назад

      @@Phantom-lr6cs the only thing RAM would be affected by...is the bus speed....and even then it barely matters if your COU bottlenecks it

  • @mousey942
    @mousey942 Год назад +35

    This video is anti c++ propaganda watch out for these litteral python snakes

    • @WewAuction
      @WewAuction 2 месяца назад

      yeah that's right bro😂😂

  • @КостяКиндалюк
    @КостяКиндалюк Год назад +14

    Testing LANGUAGES speed by calling functions handled by OPERSTING SYSTEM is like comparing milk quality by comparing their price - may look connected, but sometimes can fool you

  • @rowdyriemer
    @rowdyriemer Год назад +51

    As someone who is a c++ programmer who also does a bit of python occasionally, sure, as others have pointed out, there's ways of making the c++ version much faster. But unless I really needed the optimization, for something simple like this, I'd probably use python.

    • @ZihadJoy
      @ZihadJoy 8 месяцев назад +4

      well yeah thats why python was invented i guess

    • @satriadicky3732
      @satriadicky3732 24 дня назад

      How do you start as a programmer and what should be learnt to pass as a programmer myself? I only know std::cout, struggling with std::cin, and thought namespace is useless.

  • @PuffyNutty
    @PuffyNutty 3 месяца назад +4

    How to scare a c++ programmer? External libraries.

  • @fedzalicious
    @fedzalicious Год назад +47

    Actually, based on your questionable figures, it's 33% slower. Or you could say Python is 50% faster. You need to work on your math skills.

  • @fraser21
    @fraser21 Год назад +153

    I mean ya, but in an extremely io-throttled environment you’re basically testing every component *except* the language itself

  • @aaarkid
    @aaarkid Год назад +97

    The reason here is that Python doesn't read and write the line into a string, it's only reading the new line characters from the stack and counting. C++ is reading and writing every line into the heap, this is vastly different and therefore the reason it runs slower.

    • @andrewwhiteman8892
      @andrewwhiteman8892 Год назад

      Then what's the optimized code? Can you show me?

    • @aaarkid
      @aaarkid Год назад +5

      @@andrewwhiteman8892
      ```cpp
      int count = 0;
      for (char c = cin.get(); cin; c = cin.get()) {
      if (c == '
      ') {
      count++;
      }
      }```
      Chars live in the stack.

    • @keithskinner6188
      @keithskinner6188 Год назад +3

      @@aaarkid remember to unsync with cstdio and you're gold pony boy

    • @VictorGabriel-ht5qp
      @VictorGabriel-ht5qp 4 месяца назад

      ​@@aaarkidI just tried this code and the perfomance is worse than the one in the video, the best method I found was to read the file with fstream, it became insanely faster, and when we read the whole file with Python its performance keeps the same

  • @roland144
    @roland144 Год назад +21

    Now disable sync: std::ios_base::sync_with_stdio(false);
    Or better yet, use this for reading:
    FILE *fin, *fout;
    int rpos; char rbuf[BUFSIZE];
    int wpos; char wbuf[BUFSIZE];
    static inline void initRead() {
    rpos = BUFSIZE - 1;
    }
    static inline char readChar() {
    if ( !(rpos = (rpos + 1) & (BUFSIZE - 1)) )
    fread( rbuf, 1, BUFSIZE, fin );
    return rbuf[rpos];
    }

    • @kaloka521
      @kaloka521 Год назад

      This code only does what it is supposed to if buffsize is a power of 2. Also why are you defining a write buffer???

    • @kaloka521
      @kaloka521 Год назад

      Still really cool code thanks for sharing :)

    • @roland144
      @roland144 Год назад

      @@kaloka521 I copied the code from another project which also had to write to the file and forgot to remove that, oops

  • @Jasturtle
    @Jasturtle Год назад +42

    C++ is super easy, just need another 2 more lifetimes to master it

    • @Raspredval1337
      @Raspredval1337 Год назад +1

      lol, it IS easy, in fact, it is way easier than c for example

    • @felipe7466
      @felipe7466 Год назад +5

      @@Raspredval1337 you think so? Do you mind explaining why is that the case (I think C++ is way harder, the amount of syntax and features are just insane)?

    • @flashroyal9933
      @flashroyal9933 Год назад +2

      @@Raspredval1337 wtF?

    • @Jasturtle
      @Jasturtle Год назад

      @@Raspredval1337 yeah especially when you should be doing c in another few more lifetimes, but that lifetime lifespan you're having is 50+ years < my lifetime lifespan of 2 lifetimes Xd

    • @TheDragShot
      @TheDragShot Год назад +2

      @@Raspredval1337 C++ is like Soldier from TF2: very easy to learn, extremely hard and long to master.

  • @lorli_
    @lorli_ Год назад +42

    Horrors: Not scary
    This video: 💀

  • @pshr2447
    @pshr2447 Год назад +70

    it's probably because sys module is implemented with cpython, so you're essentially comparing c against c++ otherwise looping in python is extremely slow

    • @dani3645
      @dani3645 Год назад +11

      It's not that, actually. The looping is still happening in python. Tore Braathen's explanation (I/O is the bottleneck here) is the more accurate one.

    • @AlFredo-sx2yy
      @AlFredo-sx2yy Год назад +10

      C++ IO is slow by default because C++ streams are programmed to sync with C's IO. There's a parameter in std::ios_base that you can use to disable that sync and that would make any IO operation in C++ much faster.

    • @pshr2447
      @pshr2447 Год назад

      @@dani3645 oh i see thanks for sharing

    • @keithskinner6188
      @keithskinner6188 Год назад +1

      @@AlFredo-sx2yy ♥️also getline returns std::string here and then is discarded

  • @adityachandran7002
    @adityachandran7002 Год назад +28

    i have done alot of coding in both cpp and python, and honestly, cpp feels alot more comfortable. one of my friends said this : "when i code in cpp, it feels like i m coding, but in python, it feels like writing english."

    • @solidfuel0
      @solidfuel0 Год назад

      My sht has more wisdom than your friend.

    • @davidwuhrer6704
      @davidwuhrer6704 Год назад

      Literate programming at last. Don Knuth will be so happy.

    • @mage3690
      @mage3690 Год назад +3

      And then every Python dev ever looks at that statement and says something like "I know. Isn't it great?!?"

  • @Raspredval1337
    @Raspredval1337 Год назад +65

    -O3 enables some aggressive optimisations and TRIES to vectorize it, but, since the user didn't specify the vectorization options available to the compiler, it didn't vectorize it. Just pass -msse or -mavx to the compiler and you'd see the difference. Plus std::iostreams are kinda slow, should've used the cstdio primitives.

    • @chri-k
      @chri-k Год назад +8

      It might be purely because iostrams are slow.
      I looked at the disassembly of some C code i wrote that is of the same function but uses read() directly, it did actually vectorize something - it doubled the instruction count and there is vector register manipulation everywhere, but this had almost no effect on performance compared to an unoptimized version; however both were as fast as python, as a speed about twice that of the optimized C++ version.
      i would assume the same happens to the C++ code if you remove iostreams, although i did not examine that for some reason.

    • @AlFredo-sx2yy
      @AlFredo-sx2yy Год назад +10

      C++ streams are slow because they are forced to wait to sync with C's stdio by default. There's a parameter in std::ios_base that you can change to disable sync with C stdio which makes C++'s streams much faster. Obviously they are still slower than raw stdio because streams internally make a bunch of checks to convert the data that you're inputting/outputting to and from the streams.

    • @___Gustav
      @___Gustav Год назад +5

      @@AlFredo-sx2yy just paste
      std::cin.tie(0); std::cout.tie(0); std::io_base::sync_with_stdio(false);
      before doing any IO and cin and cout should be same speed as scanf and printf (iirc cin and cout are even faster than scanf and prinf with this)

    • @AlFredo-sx2yy
      @AlFredo-sx2yy Год назад

      @@___Gustav yep, those are the settings i talked about in my comment

  • @Sehyo
    @Sehyo Год назад +7

    You need to call std::ios_base::sync_with_stdio(false); before doing this if you want fast performance. Example is made by an unexperienced dev.

  • @rimantasri4578
    @rimantasri4578 Год назад +9

    I just learn phtyon and I not understand why ptrin() function doesn't working?

  • @atillakayrak4293
    @atillakayrak4293 Год назад +4

    It's because there is a mutex to have thread safety with cin and cout in c++. You can disable it. And Python is monothreaded so there is no mutex needed.

  • @im_auspicious4473
    @im_auspicious4473 Год назад +14

    Now imagine if we try python for games 💀

    • @davidwuhrer6704
      @davidwuhrer6704 Год назад +1

      import pygame

    • @Sumirevins
      @Sumirevins Год назад +1

      @@davidwuhrer6704 One can use Pycharm and pygame. But it'll be much harder since most game engines use C#. So, you've to do it without Advanced features which increase the difficulty level tremendously.

    • @davidwuhrer6704
      @davidwuhrer6704 Год назад

      @@Sumirevins Akshually scripting in python does not sacrifice any features, quite the opposite, it makes them more accessible and adds new ones.
      Nor is scripting in python more difficult that writing C#. One of the major selling points of python is how easy it is to write something readable in it.
      And most game engines are written in C++. Only Microsofties use C#.

  • @SunPodder
    @SunPodder Год назад +38

    That doesn't mean C++ is slower. That means you suck at algorithms 😏

    • @MrGencyExit64
      @MrGencyExit64 Год назад +5

      Also at spelling -- 1:10

    • @_Tao__
      @_Tao__ Год назад

      And you suck at jokes lol

  • @hikkarion
    @hikkarion Год назад +13

    It is pointless to compare lang speeds with io operations cause it is system operations and from language you just call same system functions

    • @Pineapple0
      @Pineapple0 Год назад +1

      cope.

    • @sayven
      @sayven Год назад +8

      @@Pineapple0 nah, facts

    • @cpK054L
      @cpK054L Год назад +1

      @@Pineapple0 printf is notoriously slow and many devs have warned against it.
      Better to compare micropython to C using the print function via UART

  • @RealLostmatter
    @RealLostmatter 5 месяцев назад +1

    If anyones confused on why python is faster in this situation is due to the fact that python *is* actually faster than c++ when it comes to numbers and counting, any other situation c++ is faster

  • @binary_gaming113
    @binary_gaming113 Год назад +5

    Try it with std::ios_base::sync_with_stdio(false) at the beginning of the main function

  • @TheLiverX
    @TheLiverX 8 месяцев назад +1

    By the time python reads the input buffered in memory, C++ has done 700 000 stdin read calls of arbitrary length. It's like reaching for a shelf in the same room and walking a few blocks to get a book.

  • @chri-k
    @chri-k Год назад +23

    my benchmarks:
    py3: ~0.490
    c++: ~0.800
    I/O operations are very long, that does not depend on the language, and the times should thus be about the same.
    However python has I/O code more optimized than this C program written in 5 seconds, using less I/O operations thus the faster time.
    Optimizinf the C++ code by ditching C++ because i can’t write it, and rewriting it in C reading chunks of 2048, i can get it down to 0.465, which beats python ever so slightly, probably due to load times or something.

    • @etopowertwon
      @etopowertwon Год назад

      That's the shitty part about C++. Reading file line by line is very common idea. To do it efficiently you need to do lots of steps.
      In fact in C++ I avoid them entirely and read whole file. And only ~5 years ago c++ got normal api for telling file sizes.
      No, rewiding file to the end, using tellg, rewinding to beginning is not normal.

    • @ItsCOMMANDer_
      @ItsCOMMANDer_ 8 месяцев назад

      I think it would be faster to allocate 1 chunk of memory for the file

    • @chri-k
      @chri-k 8 месяцев назад

      @@ItsCOMMANDer_ That could be faster, but memory allocations are quite fast on modern systems, and by doing that you lose the ability to re-use the code for reading from files on unknown length. It, as almost always, depends on context

    • @ItsCOMMANDer_
      @ItsCOMMANDer_ 8 месяцев назад

      @@chri-k you can do something like a function, wich takes an FILE object, uses fseek to go to the end of the file, say at what character it is (e.G. 25 charcater is theast so the contwnt of the file is 25 bytes.
      (not including \0 ) long and then just allocatge memory for that amount and use fread to read the entire file.

  • @peconi47
    @peconi47 3 месяца назад +2

    how to scare a c++ programmer? take their thigh high socks away

  • @Entwolker
    @Entwolker Год назад +3

    that jump scare at the end scared the hell out of me

  • @gharren
    @gharren 2 месяца назад +1

    Ok, that's fun, but I also wonder why that could be the case. Maybe because Python uses optimized C code to accelerate IO operations?

  • @torarinvik4920
    @torarinvik4920 Год назад +3

    Python isn't that much different from C++ in some ways. I have learned some Swift, C,C++, Rust, Python, Nim and probably more from the C/C++ family of language as well as several more from other families of languages. All the languages from the "C/Algol family" are much the same. They are all imperative languages with a similar syntax. Languages like Haskell and Prolog are totally different, they don't feel like your programming in the same way and you need to convert the programs from an imperative train of thought to a declarative logic. The biggest difference between Python and C++ is that Python is interpreted and doesn't have the duality of compile time vs runtime. I cannot comprehend how people can use dynamic languages for big projects, I get nervous just thinking about it. Python is great for engineers and data scientist and using jupyter notebook is an incredible tool where you can do things in a way that maybe wasn't feasible before. But actually creating application software in it sounds almost irresponsible unless your writing millions of unit tests(and some do).

    • @bentos117
      @bentos117 8 месяцев назад

      depends on the project... python developers are cheaper, also it IS quicker to build something in python... then, it is also possible to design things wrong - and for c++ that could be costlier... no programming language prevents errors from happening, in C++ they can be harder to diagnose and fix than in python

  • @makadoxvsdk9530
    @makadoxvsdk9530 Год назад +2

    The only thing I was scared was the word "phtyon"

  • @Temari_Virus
    @Temari_Virus Год назад +8

    The thing that scares me about python is not so much the performance (not everything needs to be lightning fast), but rather the lack of curly braces and static typing which can easily get messy and confusing if you're not careful

    • @sifagayev7793
      @sifagayev7793 Год назад

      I disagree. Most interesting projects benefit from speed/efficiency gains.

    • @tuluppampam
      @tuluppampam Год назад +4

      @@sifagayev7793 I think you didn't understand the comment or replied to the wrong one

    • @sifagayev7793
      @sifagayev7793 Год назад

      @@tuluppampam yeah, odd. It's not even an edited comment. oh well.

  • @deilusi
    @deilusi Год назад +1

    let me hit it this way, its all about making sure you process faster than data is incoming. If python can do it, why complicate your life with low level code?
    2 biggest strengths of python are a) simplicity b) can load c++ if needed.
    This way you avoid spending time on parts that will be used once per month and can be slow, and you have a lot of time to double down on this one function that you will call each second.
    if you KISS stuff that don't need to be complex, you cut down on future work maintaining it and possible bugs. Both cost you dev time.
    sometimes its better to have slower program, as throwing another VM on the problem is like 2$ per hour, and having another dev on the issue is over 30$ per hour.

    • @bentos117
      @bentos117 8 месяцев назад

      exactly, those are just tools... python is excellent for prototyping almost anything, c++ is for low-level control...

  • @sergant445
    @sergant445 5 месяцев назад +6

    python so slow

  • @simonbeer9895
    @simonbeer9895 Год назад +2

    Only HR thinks there is such a thing as a C++ or Phyton programmer.

    • @etopowertwon
      @etopowertwon Год назад

      Too bad they also can veto you even without interviewing. Also I wouldn't hire pythonista for c++ position.
      I would hire a masochist.

  • @omega_no_commentary
    @omega_no_commentary Год назад +5

    The file was a paid actor

  • @johanwatherman5362
    @johanwatherman5362 Год назад +2

    Fun fact: Rust code will be slower by default in IO because IO in Rust are not buffered (you van do it but it's different behavior than other popular languages std lib).

  • @themarauders15
    @themarauders15 Год назад +6

    That scared the shit out of me.

  • @firstaftergod5297
    @firstaftergod5297 Год назад +2

    std::ios_base::sync_with_stdio(false);

  • @prodbytukoo
    @prodbytukoo Год назад +4

    The problem are IO operations which are not meant to be used on production by any means. In any real C++ application (Most probably a multimedia system) console outs and console ins are a big no no.
    In audio programming for example, there is a constant loop through really small slices which together makes frequencies and therefore sound. In the loop you should never use a cout or cin for debugging because it will damage completely the audio output.

  • @flowascend
    @flowascend 8 месяцев назад +1

    Now try it with 1 billion lines. Python will take ~128000ms. And C++ will still take like 500ms.
    But why?
    Python is an INTERPRETED language, which means it runs code line-by-line. So by multiplying the amount of work, the speed will vary a lot, A LOT.
    C++ is a COMPILED language, which means it converts the code into machine code, which runs VERY fast. So by multiplying the amount of work, the speed won't change really.

    • @nskubix3196
      @nskubix3196 8 месяцев назад

      this video was made for fun not to prove anything. You dont need to shit yourself

  • @duccie
    @duccie Год назад +4

    clearly the problem is you used namespace std

  • @visible9770
    @visible9770 Год назад +1

    When an endeavour os user sees his fellow endeavouros user 👀

  • @antonmartynenko4171
    @antonmartynenko4171 Год назад +8

    This video is exactly the reason why I will always get paid more than pythonists.

  • @yevheniiboiko8397
    @yevheniiboiko8397 Год назад +1

    No one of existing languages will not completely use instead of C\C++. Even if output operation have a little bit more ms than (in this case of) python.

  • @whamer100
    @whamer100 Год назад +3

    you arent scaring me, you're just making me concerned with that inefficient c++ code

    • @thelemoid
      @thelemoid Год назад

      Truth. I suspect that the c++ was just slower because of the branching from the if statement

    • @whamer100
      @whamer100 Год назад +2

      ​@@thelemoid not even that, the fact alone that a std::string is being used is enough for me to be annoyed at this. std::string classes are mutable, while the strings in python are immutable (reminder that python is backed by c). trying to argue that python is faster than c++ while not even using the same data types.
      after rewriting the C++ code to read into a char buffer, i get pretty much the exact same time as python (which is exactly to be expected since python is also just doing c stuff under the hood)
      if i rewrite to use buffered input, i could definitely improve the speed by a lot more but im lazy right now lmao

  • @dybiosol
    @dybiosol Год назад +2

    I would rather go C instead of C++ for this kind of code and do away with iostream for stdio. Get the lines using getchar, getc or gets with carriage return and then compare. But then I'm not sure how Python handles IO stuff so not fully sure about this.

    • @HansBezemer
      @HansBezemer 8 месяцев назад

      Your'e right, mate. Look for my comment elsewhere. I easily outperformed Python - even with my home brew language. Counted loops are even *MUCH* worse. My home brew language outperforms Python *tenfold* in that regard.

  • @muhammadusmannaeem609
    @muhammadusmannaeem609 Год назад +6

    Haha nice one. Well on a serious note this is just simple print operation and a counter. When writing more complex things Python provides libraries which are generally slower than C++. If you implement the same thing in Python yourself you can get equal speed etc. But Python is preferred because of its easy syntax and support of a LOT of libraries which allow you to do anything rather than implementing them. (C++ have as well, but Python has more)

  • @that_one_salad9778
    @that_one_salad9778 2 месяца назад

    Just going to quickly chime in and say that python receives the reference returned by the file reading function not copying. While the C++ example copied each line before assigning it to a variable.

    • @that_one_salad9778
      @that_one_salad9778 2 месяца назад

      This is mostly because assignment work differently in Python than C++, so there's some nuance in how they're used.

  • @noertri618
    @noertri618 Год назад +3

    Nah just ask them try to print "b" + "r"*8

  • @invisibledude7783
    @invisibledude7783 18 дней назад

    This is like comparing a farmer truck to the Ferrari and see which one will carry more weight

  • @Creekererer
    @Creekererer Год назад +5

    Потому что ввод надо считывать с помошью буфера. В питоне это уже всё оптимизировано

  • @spodevids
    @spodevids Год назад

    How exactly are you printing to stdout using std::cin? That C++ code makes no sense if you're trying to print to to stdout.

  • @mustafashah373
    @mustafashah373 Год назад +3

    Tell me you skipped your data structure classes during pandemic without telling me that you skipped your classes. 😄

    • @benloud8740
      @benloud8740 Год назад

      This an I/O efficiency issue. Nothing to do with data structures

    • @arshiaaghaei
      @arshiaaghaei 7 месяцев назад

      @@benloud8740Not if you knew iostream is slow and there's another way for this

  • @nabir14
    @nabir14 Год назад +1

    Jokes aside C++ code can be improved to run faster and python has the lack of enough curly braces so it gets confusing where c++ its more well organized and easily understandable

  • @smorales9492
    @smorales9492 Год назад +4

    I love both languages. Python bc it's easy to make a project, and C++ bc I feel like a pro programmer when programming in it.
    But Im seeing that the purpose of this video actually worked, there are so many C++ devs scared in comments. Including me

  • @N....
    @N.... Год назад +2

    Look up the C++ function "sync_with_stdio" - this video is a classic beginner mistake by forgetting to call this function :p

  • @SimGunther
    @SimGunther Год назад +9

    Even scarier: show them C-style data oriented code that's faster than their fancy 500 level hierarchy of classes and templates to get the job done

    • @directx872
      @directx872 Год назад

      Delusional. Practically all abstraction except polymorphism are resolved at compile time.
      C has a very clean and understandable look but C++ is more powerful, it's just the truth.
      Try benching any code.

    • @torshepherd9334
      @torshepherd9334 Год назад +7

      Except that templates are only a compile-time cost? The actual generated code can be the same? You're not as clever as you think

    • @SimGunther
      @SimGunther Год назад +1

      @@torshepherd9334 But think of how easy the code would be to read and debug without those stupid templates!

    • @TheDragShot
      @TheDragShot Год назад +2

      @@torshepherd9334 templates are such a nice convenience when it comes to writing code, but a major pain in the rear when it comes to reading it as an outsider. I'd rather not touch those things beyond aliasing composite types, and maybe one or two inliners.

    • @davidwuhrer6704
      @davidwuhrer6704 Год назад +1

      500 level class hierarchy is more a Java thing, not really a C++ thing.

  • @petertuxen4930
    @petertuxen4930 Год назад +2

    Comparing c++ and python in what python is good at, is a bad comparison unless you try it the other way around. Compare Python and c++ at what c++ is good at, and you will find that c++ is faster by a factor of about 150 times.
    Besides python is super messy and a breading ground for very bad code. Not scared.

  • @SohnoZ
    @SohnoZ Год назад +4

    To solve this riddle:
    Ptyhon has many library functions that are natively coded in C and quite optimized (using low level system calls and stuff)
    As long as you use those packages, you will probably beat most languages (because C is very fast, if optimized)

  • @deytd1507
    @deytd1507 Год назад +2

    hey, wait. isnt O4 the max optimization rather than O3? Also, yeah, you used unoptimal IO option.

  • @BlazeYT_
    @BlazeYT_ Год назад +3

    For me, the weird thing is that it's a bit complicated and hard for me to know python but for some reason I understand c++.. I don't know why but that just happened
    Although I actually managed to make turtle python art only circles and lines but in C++ basically just made my custom header file so instead using cout, I use print.. (I like to see the world burn slowly and painfully)

  • @JustBR0
    @JustBR0 Год назад +2

    Python programmers : Thanks 🥲🥲
    C programmers :
    Outside : Scary?! Us?! 😂
    Yt comment : Write whole c history to prove they are not scary
    Java programmers : You guys even write code to write 1 million lines. It is more easy for us to write those 1 million lines.

  • @donchik7309
    @donchik7309 5 месяцев назад +1

    Reading the comments, I see that you really did scare all the C++ devs, good job, one of the best ragebaits i've seen

  • @micheleagnello7058
    @micheleagnello7058 6 месяцев назад

    PHTYON ? ... I can't find anything on the internet, can you help me?

  • @LunaticEdit
    @LunaticEdit Год назад +1

    I'm no python expert, but does the python script even enter the loop? Correct me if I'm wrong, but sys.stdin is a file handle not a stream, they'd have to call readlines() to have something similar to the C++ version. I'm pretty sure line_count is going to be 0 on the python version. Try printing line count at the end of the file.

    • @prometheus3375
      @prometheus3375 7 месяцев назад +1

      TextIO is an iterable, so you can iterate through it yielding lines.

  • @basedbuddha777
    @basedbuddha777 Год назад

    Holy fucking shit the misspelling at the end made me laugh way too hard.

  • @georgebazerashvili9250
    @georgebazerashvili9250 Год назад +1

    That should be called how to get c++ developer angry and deal emotional damage :D

  • @MrSmith-rg6hi
    @MrSmith-rg6hi Год назад +1

    "Python" written completly wrong in the end ;) Love it....

  • @ChaosNe0
    @ChaosNe0 Месяц назад

    Python uses hyper-optimized C libraries and C++ is an extension of C, so basically you compared an extension of C to a wrapper of C and added your personal flavour to both.
    A C++-programmer understands that and isn't scared... which is why you could upload that.

  • @demynemy7428
    @demynemy7428 7 месяцев назад

    How to scare Python developers:
    POINTERS

  • @murtumaton
    @murtumaton Год назад +1

    Q: What is the difference between pseudo-code and python?
    A: .py

  • @TheEvertw
    @TheEvertw 7 месяцев назад

    Nice one! I love to see the C++ jocks squirm to defend their pet language...
    No-one is arguing that Python is faster than C++ in most cases. But this does illustrate how Python is easier to program in than C++. Anyone else who found the Python code much easier to read?
    And for most use cases, Python is plenty fast enough.

  • @SpringySpring04
    @SpringySpring04 7 месяцев назад

    This is just one case where python happnes to be faster than C++, but that's likely because implementation of the input reading methods in C++ are not optimized as well as the internal working of the way it works in python. Apples and oranges...

  • @Acromata
    @Acromata Год назад +1

    It all depends on how you write your code that determines the speed

    • @cpK054L
      @cpK054L Год назад

      This was s compiler directive issue actually...

    • @Acromata
      @Acromata Год назад

      @@cpK054L I'm talking about most cases not specifically this one, but yeah

  • @alphabasic1759
    @alphabasic1759 Год назад

    Do we really want to go down the path of cherry picking specific carefully written code to performance test one language against another?

  • @nerdastics3987
    @nerdastics3987 Месяц назад

    well, to be fair, it really depends on the circumstances, in most cases and larger projects, low level languages such as c/c++ or even rust will be much faster than many programming languages. But in smaller cases such as a dedicated learning environment, stuff like python and lua can be faster. Python is a legitimate tool for programming, but its an interpreted language that sits over a C layer that then has to be converted to machine code. With lower level languages, there's only 1 layer. It's kinda like running any windows program on linux with wine, its just gonna be slightly slower in the bigger scale stuff.

  • @yueh-changshieh8627
    @yueh-changshieh8627 4 месяца назад

    I mean what scare the C++ programmer the most is that Python programmer still only using loops as benchmark. What do think benchmarking is for?

  • @hydrogen5087
    @hydrogen5087 Год назад

    I don't understand the point that is being made.
    Could anyone please elaborate? Thanks :)

  • @bultvidxxxix9973
    @bultvidxxxix9973 7 месяцев назад

    Why wasn't this optimized to
    int main() {
    std::cin.ignore(std::numeric_limits::max());
    return 0;
    }
    None of these variables are used or volatile.

  • @MidnightSt
    @MidnightSt Год назад +1

    Doesn't matter, because C++ still has saner syntax.
    Because using whitespace as flow control/nesting characters is the most idiotic idea ever.
    "Let me use sequence of multiple INVISIBLE characters as a semantically meaningful thing, where it is important as to how many INVISIBLE characters that sequence contains"

  • @Mr.Legend_9
    @Mr.Legend_9 3 месяца назад +1

    Dude htf u write c++like that

  • @thenasiudk1337
    @thenasiudk1337 7 месяцев назад +1

    I've done this by accident when working on college project, my nerd friend lost his shit when he saw my absolute disaster of a code I've created. He literally screamed "NO WHAT ARE YOU DOING?!?"

  • @0xABADCAFE
    @0xABADCAFE Год назад +2

    Tries to show language X is faster than language Y on an IO bound operation without any understanding of how the IO is being handled in either language. I'm sure everyone is quaking in their boots over it.

  • @igorordecha
    @igorordecha Год назад +1

    Python is just a working interpreter for pseudocode and it's just the beginning of its advantages.