Python vs Swift | Chris Lattner and Lex Fridman

Поделиться
HTML-код
  • Опубликовано: 11 янв 2025

Комментарии • 302

  • @lessmoneylessproblems5145
    @lessmoneylessproblems5145 4 года назад +378

    I love that you interrupt the conversation to clarify on statements your guests make. Many of the times the viewer is wondering the same thing.

    • @botfantasies6229
      @botfantasies6229 4 года назад +3

      it's called normal conversation behavior, not sure why this is blowing your mind

    • @HaroldVonAnusIII
      @HaroldVonAnusIII 3 года назад +14

      @@botfantasies6229 it’s called “letting someone know that you appreciate them”
      You should try it sometime, it feels really good

    • @mayankbhaisora2699
      @mayankbhaisora2699 2 года назад +8

      @@botfantasies6229 no one said it’s blowing their mind. It’s called appreciating someone’s work, not sure why this is making you mad

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

      @@botfantasies6229 probably because it should be normal, but according to the status quo it hardly ever is "normal"

  • @alfonshomac
    @alfonshomac 4 года назад +195

    coming soon to python:
    from pyswift import *

    • @R3negade638
      @R3negade638 4 года назад +2

      😂

    • @Orionalnath
      @Orionalnath 4 года назад

      :D

    • @chris9352
      @chris9352 4 года назад +5

      here you go gist.github.com/jiaaro/e111f0f64d0cdb8aca38

    • @tad1706
      @tad1706 4 года назад +2

      @@chris9352 No wayyy!! That's actually hilarious

    • @jorge1869
      @jorge1869 3 года назад

      🤣

  • @kleetus88
    @kleetus88 4 года назад +41

    love how Chris gets into the details of how value semantics is achieved in a thoughtful and novel way compared to purely functional languages or Java using string immutability. Copy on write has been around for decades of course, but Swift brings it up the stack considerably.

  • @henrymach
    @henrymach 4 года назад +34

    When I learned C and Pascal, the first thing that I liked is that you can pass practically anything by either value or reference to anything else.

    • @nieczerwony
      @nieczerwony 2 года назад +2

      Exactly. You have full control over your code, but with great power comes great responsibility 😉

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

      @@RuslanMasinjila C level* 😁

  • @hackerculture7391
    @hackerculture7391 4 года назад +160

    Love seeing this pure CS stuff. Please include more pure CS! So interesting. Would be awesome to see people involved in Rust.

    • @fetalfirefight
      @fetalfirefight 4 года назад +7

      Chris is especially good at it too, easy to see why he's had an awesome career so far

    • @itsbk6192
      @itsbk6192 4 года назад +7

      Rust was exactly what I was thinking of when he was talking about mutable references and the annoying bugs that could ensue. I really like rust's borrowing and ownership design and its strict compiler

    • @ConernicusRex
      @ConernicusRex 3 года назад +1

      Why use Rust when you can use Swift? It's like making an action movie and really angling to cast Frank Stallone.

    • @hackerculture7391
      @hackerculture7391 3 года назад

      @@ConernicusRex Swift is not a serious language when it comes to systems programming. It's a good language but the future of systems and the web is WebAssembly and Rust.

    • @ConernicusRex
      @ConernicusRex 3 года назад +2

      @@hackerculture7391 web and systems are entirely separate fields.

  • @konrain7299
    @konrain7299 4 года назад +186

    Swift really is an elegant language, its taking everything we've learned in the last 30+ years of programming languages and starting on a clean slate.

    • @konrain7299
      @konrain7299 4 года назад +2

      @@dixztube 👍

    • @grapy83
      @grapy83 4 года назад +1

      @@dixztube That's great

    • @donk8961
      @donk8961 4 года назад +13

      It pains me every time I find out a client’s app is in Objective C and not swift.

    • @shalokshalom
      @shalokshalom 4 года назад

      And is there something like a full HM type system like in OCaml and FSharp? Do I need to specify the types, or can do the compiler do that? Complete type inference and pure function checking? Can I check if a given function is pure or not? And is pattern matching exhaustive?

    • @evergreen-
      @evergreen- 4 года назад +1

      @@shalokshalom type inference is present in swift, and it’s pretty good. The functional aspect of Swift is lagging, things like function purity aren’t checked. Pattern matching is exhaustive by default. As for the type system, not sure; however, HKT aren’t yet supported

  • @rudolflovrencic
    @rudolflovrencic 4 года назад +46

    In my humble oppinion, C++ does this the best since value semantics is default, reference semantics is opt-in. Furthermore, you can pass by constant reference to provide a read-only view over the data without copying. Then, there is move semantics which is required if you want to make value semantics efficient.

    • @R3negade638
      @R3negade638 4 года назад +8

      Exactly, it’s great. Ive never used swift but I think he explains that they took that same concept even further by hiding away things like const, private, reference, etc, but making them available if you know what you’re doing and need them.

    • @TheBrainDunne
      @TheBrainDunne 4 года назад +5

      I agree C++ does this the best.

    •  4 года назад +7

      No swift experience here, but worked with tons of C++. C++ does give you utmost control of value/references/constness. The real downside of C++ to me is how convoluted the wording gets. &, * and const can be mixed in various ways and each of these symbols/keyword have different meanings in different contexts. I love the expressiveness of C++ but it could have been worded better I guess

    • @9SMTM6
      @9SMTM6 4 года назад +2

      Well, you can't really beat Rust here though.
      Rust has learned from C++ and made it better.
      Like C(++) Rust is "value semantics by default", but also references are const by default, which means that default is also better used.
      Rust also is move semantics by default, you have to explicitly copy if you want to continue using a variable.
      So like C++ a function signature in Rust gives pretty much all the Information, but because of better defaults and the enforcement of certain features by the compiler (I. E. That not two mutable references be active at the same time), the function signatures tend to be even better related to the way the values will be used.

    •  4 года назад +1

      @@9SMTM6 I believe you, gotta try rust yet, been away from low level stuff for quite a while. If I may ask, would Rust be a good option for coding the low level AI/ML code, like the heavy math? I see it being mentioned a lot for system programming but I am not sure how good it is for SIMD/GPU

  • @TheVincent0268
    @TheVincent0268 4 года назад +5

    C# knows both value and reference types and has an implicit operation called (un)boxing to switch between value and reference type when needed.

  • @wholenutsanddonuts5741
    @wholenutsanddonuts5741 4 года назад +55

    Man I can’t tell you the number of times I’ve gotten stuck by that reference semantic thing with Python. It is super annoying and very confusing especially when you’re using someone else’s Library. Thank you for mentioning that.

    • @fishfire_2999
      @fishfire_2999 4 года назад

      Exactly

    • @Julia-zi9cl
      @Julia-zi9cl 4 года назад +1

      What is references semantic

    • @magnushoklandhegdahl1218
      @magnushoklandhegdahl1218 4 года назад +12

      @@Julia-zi9cl
      a = [1,2,3]
      b = a
      a[1] = 4
      print(b) # will print [1, 4, 3]

    • @wow5heyy
      @wow5heyy 3 года назад

      @@magnushoklandhegdahl1218 is this because when assigning a to b, b gets a pointer to the location in memory of the original array a? so when you change the values at that location in memory, it effects the value assigned to b? whereas if you were to pass by value a copy would be made, and changing the values at location a would no longer effect the value of b?

    • @magnushoklandhegdahl1218
      @magnushoklandhegdahl1218 3 года назад

      @@wow5heyy in python there is no pass by value. every assignment is a reference. you can however make an explicit copy by doing b = list(a) instead

  • @honestmicky
    @honestmicky 4 года назад +25

    Excellent clip Lex, thanks for posting, much appreciated. Your channel is one of the best in the world. Thanks for interviewing remarkable brilliant guests and sharing them with the world. A+

  • @coke2679
    @coke2679 4 года назад +15

    Started Swift about 2 years, it almost immediately became my favourite language. Going from Swift to Dart felt like such a downgrade.

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

      Same here swift is awesome. Apple poured everything to make swift do everything we want so we can use it in ios development.

  • @stueygewy
    @stueygewy 3 года назад +3

    Chris Lattner has the mannerisms to be one of those Thermian aliens from the movie Galaxy Quest.

  • @asdqwe4427
    @asdqwe4427 3 года назад +5

    You don't have to copy lists in functional languages. Generally speaking of you add something to a list in FP, you create list that points to the old one and your new value. Typically they are implemented as a tree to achieve this

  • @stevenabbott7508
    @stevenabbott7508 4 года назад +18

    This is functional programming pilled

  • @bloody_albatross
    @bloody_albatross 4 года назад +2

    Swift sounds great, but if I understood everything correctly something to some degree similar is done in Rust. There is no copy on write, if you own a string you can just manipulate it. But once you give out a borrow you can't manipulate it anymore. And the receiver can't store away a reference that can change, but if you pass ownership to someone else that one can of course store and change it, if they want to. So you get pretty much the same advantages as with Swift, but you don't need any runtime checks (as you would need with copy on write - there you need to check if you need to make a copy on every write operation).
    You can do some of that with C++ (e.g. Qt's QString is copy on write internally), but it doesn't track ownership the way Rust does.

    • @Art-is-craft
      @Art-is-craft Год назад

      The main difference is that Swift can be used as a complete software engineering language which Rust cannot.

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

      @@Art-is-craft What does that even mean? How do you define a "software engineering language"? Can you create UML diagrams in Swift?

    • @Art-is-craft
      @Art-is-craft Год назад

      @@bloody_albatross
      Software is a computer program that run a single machine.

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

      @@Art-is-craft Ah, ok, you're a bot.

    • @Art-is-craft
      @Art-is-craft Год назад

      @@bloody_albatross
      You said you did not know what I was talking about. I now defined what software is so next I can describe what software engineering is and try to relate it to my original comment.
      There are very few languages at commercial scale that can build a complete software program Rust and Python are not that. Even C does not get used as a compete package and C++ is starting to fade.

  • @vivekvarma3079
    @vivekvarma3079 4 года назад +3

    Java maintains String objects as immutable, but they use String objects pool to reduce consumption of Heap memory while runtime. So the concern guest is saying is very minimal in real world performance and memory consumption.

    • @ronensuperexplainer
      @ronensuperexplainer 2 года назад

      Java is a monster of memory consumption.
      A "hello world" Java program takes 1 gigabyte of RAM.
      Swift chooses reference counting instead of Java-style garbage collection.
      That means that Swift apps use more memory, but Java apps are faster.
      In fact, Java memory allocation is faster than C++ memory allocation.

  • @ycombine1053
    @ycombine1053 4 года назад +7

    I've never heard these topics discussed in these terms. In functional programming, it's immutability and lazy evaluation. Nice to hear that swift took some inspiration from FP. I tried it when it first came out, but it to me it just felt like another OO language with a nicer, more convenient syntax. Maybe I should take another look at it.

  • @sacredgeometry
    @sacredgeometry 3 года назад

    also 3:59 if people are doing work and havent learned about value/ reference types or pointers which is day 1 programming 101 basic stuff then they should probably not be.

  • @skewty
    @skewty 4 года назад +1

    So basically Swift neither passes by value, nor passes by reference; it passes by proxy. The proxy is smart enough to keep track of who should get the new value and who should get the old value when mutation occurs. Is this correct?

  • @DeadtomGCthe2nd
    @DeadtomGCthe2nd 4 года назад +51

    Wow, this is a smart programmer who talks sense.

    • @R3negade638
      @R3negade638 4 года назад +2

      He’s a legend in the programming world.

    • @thuggfrogg
      @thuggfrogg 4 года назад +6

      He invented Swift (coded the POC himself), but maybe more importantly, he invented (and created the POC) of LLVM, the compiler framework that Go, Swift, Rust, Julia (and more) are all built on top of. He enabled the current generation of programming languages. His knowledge of LLVM is invaluable.

  • @jamesnankervis8029
    @jamesnankervis8029 4 года назад +3

    Both Swift and F# have value semantics, unlike languages such as C# and Java. He's wrong in saying that immutability means lots of copying. That's not how immutability is implemented in most functional programming languages. His description of what Swift does to implement value semantics is essentially what most functional programming languages do to to get efficient immutability and value semantics. For instance immutable lists and maps in F# are NOT copied when passed as parameters to other functions. Same goes for other data structures.

    • @Art-is-craft
      @Art-is-craft Год назад

      Most functional languages are simply not suitable for general software engineering.

  • @andreasnulein782
    @andreasnulein782 2 года назад +1

    Lex's face change when Chris says "copy on write" and the question that was piling up in his head is answered. :)

  • @logusgraphics
    @logusgraphics 4 года назад +23

    “Actually good design is something we can feel”. And that’s why Steve Jobs was right since the beginning and Apple is most valuable. Developer experience is of most importance. When it feels good, you build better products.

    • @chiboreache
      @chiboreache 4 года назад +3

      oh that's why iOS is the worsets platform for developers..

  • @fishfire_2999
    @fishfire_2999 4 года назад +8

    Python and java is all you need to manifest a Lamborghini

  • @botfantasies6229
    @botfantasies6229 4 года назад +1

    I don't understand why programmers have a hard time choosing between or understanding reference and value semantics. Do you want that object to exist on its own or not?

  • @josuegisber8150
    @josuegisber8150 4 года назад +4

    I like to listen to Chris cause the way he explain things is fairly easy to understand

  • @johnngo9690
    @johnngo9690 3 года назад +1

    That cauliflower ear is getting noticable

  • @wholenutsanddonuts5741
    @wholenutsanddonuts5741 4 года назад +6

    Ooo. I love both of these languages. Thanks for doing a comparison!

  • @billguschwan4112
    @billguschwan4112 4 месяца назад

    8:50 “ There are Tradeoffs with everything.”: it is not computer science it is computer design. Design is about tradeoffs so there is no one answer as in science.

  • @vincentweber1359
    @vincentweber1359 4 года назад +3

    Really reminds me of the Borrow Checker of the language Rust.

  • @TrippSaaS
    @TrippSaaS 2 года назад +1

    "Actually good design is something you can feel" totally agreed. I bought a google phone and miss apple design

  • @buddyguy7175
    @buddyguy7175 4 года назад +2

    Isn't this the same idea as pass by value or pass by reference in C? I think thsts what im hearing explained here. Do you pass the memory address of what you give to a function or a copy with the same value. Its hard to wrap your head around sometimes because you can pass a variable to a function in C, increment it, but the original variable has not changed because C is a pass by value default language. If you want the function to modify the original variable you pass a pointer to the variable. The pointer is then passed by value and now you have access to the original variable inside the function. I think this is the concept hes talking about.

    • @alexxx4434
      @alexxx4434 4 года назад +4

      There is an additon in Swift apparently, which is "copy-on-write". That is, objects are passed by reference, but if a function tries to change an object, the copy is created with those changes instead.

  • @arianvc8239
    @arianvc8239 4 года назад +26

    Coming from a C and Linux background, Python feels like a natural evolution. Swift feels weird, kind of like JS does.

    • @arianvc8239
      @arianvc8239 3 года назад +1

      @Balaji Thiruvengadasamy I don't mean to troll but I'm guessing you are using Python wrong. If you want numerical performance you can embed C/CUDA code or use related libs. If you make applications learn to scale.

  • @nobody12316
    @nobody12316 4 года назад +3

    Should try to get Rich Hickey on the show!

  • @anata.one.1967
    @anata.one.1967 11 месяцев назад

    From my experience, Swift has both value and reference semantics, value for `struct` and reference for `class`? Am I wrong or is Chris talking about non-custom data types?

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

      Swift has both but the recommended course of action is to use structs for everything unless there is some odd reason that won't work. Struct protocols and extensions replace class inheritance. Even SWIFTUI is built with structs - not classes.

    • @anata.one.1967
      @anata.one.1967 7 месяцев назад

      @@sedawk I basically use struct types to declare custom data types in my research project, and had an awesome time getting almost all bugs in compile time. I love this language man.

  • @sharinganuser1539
    @sharinganuser1539 4 года назад +3

    Not particularly a fan of python...but also not convinced by functionality of swift....it certainly is elegant...very clear...as language.....So if u can get things done by using one set of tools...why do u switch to new tools...for doing same task...unless....there is huge performance difference...or some added abilities....

    • @adsick_ua
      @adsick_ua 4 года назад

      You're god damn right

  • @alexshaykevich509
    @alexshaykevich509 4 года назад +21

    I know it's his baby but does he know what Apple is actually doing with/to it? Let's put to bed the idea that anyone outside of iOS is actually using it seriously, that's a non-starter. In the iOS environment, it's turning into a monstrosity with a new paradigm introduced every other week, MVC, MVVM, SwiftUI. There is no sign that Swift can or will outgrow the very limited iOS ecosystem and even that will be cannibalised by Flutter as a reaction to the overstuffed verbosity of the other mobile languages. It's also strange that in the same train of thought that he suggests C has to do the heavy lifting for Python, he goes on a big tear about the need to pass by value. One of the major reasons everyone always ultimately reverts back to C/C++ for performance is the ability to engineer efficient memory use and speed through proper management of references, specifically opposite of the paradigm Swift is pushing. Jeremy Howard was on a little while ago namedropping Swift as a poor language for computation which is why he was sticking with Python. Even in iOS, most of the heavy lifting is still managed at the C/assembly layer.

    • @alexshaykevich509
      @alexshaykevich509 4 года назад +1

      What about it do you find great?

    • @alexshaykevich509
      @alexshaykevich509 4 года назад

      @@playea123 Ok. But it just sounds like it's a language with support for a framework you need. Frankly, I think people make far too big a deal of languages when in fact, it's the environment (mobile, web, etc...) or frameworks they are actually interested in. As you eluded, you could likely do just as well in Java, and some of us prefer more verbose, often clearer code. But then Java doesn't have as natural a bridge to M/L, so Python or Swift are better choices for that use case.

    • @farrellraafi1301
      @farrellraafi1301 4 года назад +3

      @@alexshaykevich509 if someone considers Swift slow for computation why would they choose a gazillion times slower language named python as a better alternative??

    • @alexshaykevich509
      @alexshaykevich509 4 года назад

      @@playea123 You're assuming all else being equal. If you prefer Java, but have to write an iOS app, you won't be writing Java.

    • @alexshaykevich509
      @alexshaykevich509 4 года назад +3

      @@farrellraafi1301 Simple, because for heavy lifting tasks, as the video points out, the heavy lifting has been abstracted out to C/C++ and CUDA. So FRAMEWORKS, have made Python a good choice for computationally intensive tasks.

  • @JethroYSCao
    @JethroYSCao 4 года назад

    If the tensors (and other objects in general) are being passed by value and cloned in Swift, isn't that inefficient? That's the whole point of using references for objects, arrays, maps, etc. is it not?

    • @evergreen-
      @evergreen- 4 года назад +3

      No, he explains that no unnecessary copying is made in Swift.

  • @CristiNeagu
    @CristiNeagu 4 года назад +2

    The thing that really annoys me about Python is that you can't really compile it.

  • @clivefernandes5435
    @clivefernandes5435 4 года назад +1

    So when are we getting swiftpy

  • @FENTANYLJET
    @FENTANYLJET 9 месяцев назад +1

    Thumbs up for value semantics

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

    Five seconds in, “pythons not great at building libraries because C” 😂😂😂

    • @Art-is-craft
      @Art-is-craft Год назад +1

      It is the main reason why Python is not an industry standard for software engineering.

  • @catcherboy96
    @catcherboy96 4 года назад +2

    I’m a mechanical engineering student just getting introduced to programming languages Like matlab, python, and I think C or something used for arduino. Swift sounds interesting; should I get familiar with for my field or should I focus on what I’m learning rn?

    • @hunggarchristian
      @hunggarchristian 4 года назад

      As someone who switched from mech to cs. Focus on what you are learning now, as those are the most imperative to what you’ll do in the real world. Swift is basically only used for platform software development most of which you won’t be ever using. Fluids and control systems operate in the strong typed.

  • @MrWobling
    @MrWobling 4 года назад +1

    Great video! Could a whiteboard or blackboard aid communication and discussion?

  • @jerryplayz101
    @jerryplayz101 4 года назад +4

    I prefer python for its both pass by value and reference. For the game I’m making in python, I use the fact that I can have multiple pointers to objects to help pass values dynamically between classes without global variables.

    • @TrevorANNEDENISE
      @TrevorANNEDENISE 3 года назад +3

      You can also do this in Swift though, it's just that it encourages the use of value types where it makes sense, but when you actually need shared values you still have solutions for it (for example classes and actors are reference types).

    • @deerlow1851
      @deerlow1851 3 года назад

      I think that this is actually a bad thing, i prefer Java because it forces you to work around this, making your code cleaner, more readable, and faster. Harder though but not really, because it's actually easier in the long run

  • @tupierorosa723
    @tupierorosa723 3 года назад +1

    "Good design is something you can feel"
    That's called subjectivity lll

  • @PierLim
    @PierLim 4 года назад +2

    Has swift gone out of the Apple ecosystem yet? I think the real problem for swift adoption outside of Apple is their priorities

  • @neiltropolis
    @neiltropolis 4 года назад +2

    I remember this dude from Galaxy Quest.

    • @ChrisBrowncaptainchris45
      @ChrisBrowncaptainchris45 4 года назад

      DUDE!!!

    • @BenGras
      @BenGras 4 года назад +1

      You are our only hope!?

    • @infernofia
      @infernofia 4 года назад

      Holy crap I was thinking that in my head and thought of posting a comment but here it is

  • @__hannibaalbarca__
    @__hannibaalbarca__ 11 месяцев назад +1

    I start programming in swift not because is good language, only because i want to make something in iOS and MacOS, but
    __there nothing like C and C++__

  • @nickskywalker2568
    @nickskywalker2568 4 года назад +6

    Swift vs Julia?

    • @Ureallydontknow
      @Ureallydontknow 3 года назад

      No comparison. Julia is extremely domain specific for linear algebra.

  • @ManthaarJanyaro
    @ManthaarJanyaro 4 года назад +1

    One should consider making a compiler for python; which will compile python code (obviously optimized) to Machine Language to speed it up...

    • @JaapVersteegh
      @JaapVersteegh 4 года назад +1

      you mean cython?

    • @ManthaarJanyaro
      @ManthaarJanyaro 4 года назад

      @championchap back in days when everything was written in Assembly (or preferably in Machine) language Unix proved it that even an OS can be written in a High Level Language like C. And today after 2~3 decades compilers are so good at compiling that they can produce a much better apps than an average programmer. That's why I think that we should be writing programs in much higher level languages and leave it on compilers to optimize them and with feed back loop improve their capabilities (which is now possible with A.I. and Machine learning).

    • @ekrem_dincel
      @ekrem_dincel 3 года назад

      You need a runtime for the python to make it work.

  • @EdsonMedina
    @EdsonMedina 4 года назад +1

    PHP arrays also do copy on write.

  • @techobsessed1
    @techobsessed1 4 года назад +1

    Who is choosing Swift for things that they'd choose Python + C for if Swift didn't exist?

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

    Thank you Lex... Also thank you for calling out the BS indirectly!! As an engineer they're pretty much like politicians because we're not allowed to say no, just that things could theoretically happen.

  • @jerry8405
    @jerry8405 11 месяцев назад

    Was just wondering how swift handles this and RUclips algo came up with this video. I didn’t know the exact terms to search for lol

  • @TheCsupertramp
    @TheCsupertramp 2 года назад

    Increíble podcast, gracias.

  • @RoboticusMusic
    @RoboticusMusic 4 года назад +1

    This is why "learning to code" is not meant to be taken literally. You should learn how to bypass having to use code as much as possible hahah

  • @johnjoyce
    @johnjoyce 4 года назад +2

    Chris is ever the indefatigable pragmatist!

  • @thuggfrogg
    @thuggfrogg 4 года назад +1

    Thanks Lex, thanks Chris :) .

  • @wow5heyy
    @wow5heyy 3 года назад +1

    I am superrr new to programming. Are they talking about "pass by reference" vs "pass by value" ?

  • @souslicer
    @souslicer 4 года назад +1

    Just use const. Value semantics are inefficient

  • @erickbarbosa5476
    @erickbarbosa5476 4 года назад +1

    Swift fan boy here

  • @ChadZeluff
    @ChadZeluff 4 года назад

    For someone curious about defining these in Swift: define the thing as a ‘struct’ to get value semantics, and a ‘class’ for reference semantics.

  • @ucmasshankar
    @ucmasshankar 4 года назад +2

    I love swift

  • @frikkied2638
    @frikkied2638 3 года назад

    Such a nice bloke

  • @GigaMarou
    @GigaMarou 2 года назад

    Good Design!!!

  • @sacredgeometry
    @sacredgeometry 3 года назад

    Chris is so likeable and although I mostly agree with him so that might be bias.

  • @alpineflauge909
    @alpineflauge909 4 года назад

    awesome, thanks

  • @losthighway4840
    @losthighway4840 2 года назад

    Not sure there’s much difference really. You need to decide in both languages whether you’re using value/reference semantics. In python this is just done his clone().

  • @devnekoboi7812
    @devnekoboi7812 4 года назад +4

    Two words: Functional Programming ;)

  • @fishfire_2999
    @fishfire_2999 4 года назад

    2:50 i know exactly what they r talking about.

  • @stabkauaiPALAMA
    @stabkauaiPALAMA 4 года назад +1

    Andrew Madsen is the Swift God.

  • @dr.hunter1092
    @dr.hunter1092 Год назад

    Hey Lex, new programmer here. One mistake I can easily point out in this conversation is you both have an Aquafina water. Please fix in the next update

  • @sergiobost4891
    @sergiobost4891 2 года назад

    4:10 Enter Rust

  • @a0um
    @a0um 2 года назад

    Clojure is another language with value semantics.

  • @madsteeez
    @madsteeez 4 года назад +4

    Whenever I hear about these fancy features of some fancy language, I think: matlab can do that..

    • @catcherboy96
      @catcherboy96 4 года назад +1

      Mat lab is the best calculator

  • @nerd_abroad
    @nerd_abroad 3 года назад +2

    Didn’t realise graham stephan knew so much about programming

  • @igordemetriusalencar5861
    @igordemetriusalencar5861 4 года назад +3

    Julia is better than both.

    • @Art-is-craft
      @Art-is-craft Год назад

      Julia will never be a software engineering language and will just be an academic tool.

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

    is Lex High??

    • @Art-is-craft
      @Art-is-craft Год назад

      Nope he is trying to balance several very complex ideas so as to make the subject manageable for the audience to grasp.

  • @birendrakathariya3517
    @birendrakathariya3517 4 года назад +1

    Julia may be a better choice!!

    • @adsick_ua
      @adsick_ua 4 года назад

      Finally found Julia comment)

  • @Zaddy_Woods
    @Zaddy_Woods 2 года назад

    Looks like a young Bill Belichick

  • @prashkd7684
    @prashkd7684 4 года назад

    The entire language performance discussion is in reference to current CPU technology but if Intel manages to perfect quantum processors and someone like Microsoft manages to build home computers out of it, will performance still be of any concern at all? Wouldn't it make sense for all programmers to build on C and Python rather then learning 10 different languages for different applications in the market?

  • @PixelPhobiac
    @PixelPhobiac 4 года назад

    Very interesting

  • @yashwanth.k5545
    @yashwanth.k5545 4 года назад +1

    hat kirkirii 🔥🔥

  • @Donatellangelo
    @Donatellangelo 4 года назад +4

    I like python. Swift belongs to apple. If I have to use something like swift, I'd use java or go.

    • @konrain7299
      @konrain7299 4 года назад +1

      Thats like saying Go belongs to Google. Swift is open source, it runs on Linux and now Windows.

    • @feydrautha191
      @feydrautha191 4 года назад

      ​@@konrain7299 Generally people are using Swift because they want to use Cocoa/CocoaTouch. Unless you're doing some real hacky bullshit you're not porting those frameworks to linux or NT.

    • @konrain7299
      @konrain7299 4 года назад +1

      @@feydrautha191 Swift on server is getting big, theres literally everything from static site generators to serverless framworks

  • @ketuscorpion3717
    @ketuscorpion3717 4 года назад +2

    #Lex is a drug, I am getting addicted bro👍

    • @Ryan-xq3kl
      @Ryan-xq3kl 4 года назад

      you may want to check yourself into rehab

  • @TheRealDrWho
    @TheRealDrWho 4 года назад +1

    Lex's IQ is so high, love watching this guy

  • @TestTest-tj9io
    @TestTest-tj9io 4 года назад +1

    I never understood phyton popularity in intense projects, and i would never indulge in apple stuff.

    • @mattizzle81
      @mattizzle81 3 года назад

      I used to be very anti-Apple but recently have gone over to the dark side. Their stuff is really good and I really enjoy programming on their platform. Their tight software/hardware integration has advantages. Apple doesn’t half ass things, they get it done right. Google etc have had so many half-hearted or abandoned projects like ARCore as their “response” to Apple’s ARKit. It’s half baked and now almost abandoned while Apple did it right.

    • @Art-is-craft
      @Art-is-craft Год назад

      @@mattizzle81
      The biggest problem google has it is a back end company that has its hands in to many pies.

  • @adsick_ua
    @adsick_ua 4 года назад +2

    Julia is better for ML and data science

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

    Lex has no idea what he is saying starting at 3:29.. The other nerd is being very specific and is talking about reference vs. value types, but Lex has to meander around and talk about deep and big vague shit of math this and math that

    • @Art-is-craft
      @Art-is-craft Год назад

      He is trying to keep the topic general so as to not get too technical because he could lose 99% of the viewers.

  • @RM-di6oe
    @RM-di6oe 4 года назад +1

    Swift Lover
    like and Python Lover Dislike

  • @JkyLi
    @JkyLi 3 года назад +1

    The thing that swift really bothers me is the discouragement of using pointer. It is so often that something can be done easily with some usage of pointers at the very low level of the structure. But in swift, not only do you have to declare it as UnsafePointer, the usage is pretty disconnecting from the other swift codes. So I would rather go back to objc for some really low-level staffs.

    • @ConernicusRex
      @ConernicusRex 3 года назад

      So you're trying to write code for 1980 in a language written in 2013. Gotcha.

  • @steelyburt
    @steelyburt 4 года назад +1

    Total beginner here. Former Art Student. Craving rules and objectivity. Angry at subjectivity. Starting my coding journey, upon recommendation from a friend, with Swift Playgrounds. Pretty much everything in this video going over my head 🤷‍♂️

  • @mcoon1987
    @mcoon1987 10 месяцев назад

    This is like nerd wars lol.

  • @MegaMeco2
    @MegaMeco2 10 месяцев назад +1

    I understood nothing

  • @matthewmurrian
    @matthewmurrian 4 года назад +2

    I'll take explicit value- and reference-semantics any day over all of this.

    • @konrain7299
      @konrain7299 4 года назад

      I never heard a programmer prefer reference semantics, its literally goes against how things should work. Could you expand on what you mean?

    • @matthewmurrian
      @matthewmurrian 4 года назад +2

      I didn't say that I prefer reference-semantics over value-semantics. They each have their use.
      I said I prefer that it be explicit, in the language syntax, which mechanism is in use.
      The "complications" discussed in the video are moot w/ a language where the syntax is explicit.

    • @konrain7299
      @konrain7299 4 года назад

      @@matthewmurrian it is in this case no? for example structs are value types and classes are reference types.

    • @matthewmurrian
      @matthewmurrian 4 года назад +1

      @@konrain7299No, that's not quite "explicit in syntax."

    • @konrain7299
      @konrain7299 4 года назад

      @@matthewmurrian what do you mean by that

  • @FENTANYLJET
    @FENTANYLJET 9 месяцев назад

    I’m with the 145K people who care I’m glad to be here.. one day I will be among these shabba ranks

  • @Symparanekromenoii
    @Symparanekromenoii 4 года назад

    This is such a random comparison lol

  • @anb4351
    @anb4351 4 года назад +2

    python is overrate

  • @zeeeeeeeeeavs
    @zeeeeeeeeeavs 4 года назад +2

    Love Swift!