Software Engineering Languages - Titus Winters - CppNorth 2022

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ส.ค. 2024
  • CppNorth Twitter: / cppnorth
    CppNorth Website: cppnorth.ca/
    ---
    Software Engineering Languages - Titus Winters - CppNorth 2022
    Slides:github.com/CppNorth/CppNorth_...
    CppNorth 2022 video sponsors:
    think-cell: www.think-cell.com/en/
    Adobe: cppatadobe.splashthat.com/
    By now we understand that programming languages are tools, and we should use the right tool for the task. Programming and Software Engineering share some basic skills but are in many ways different tasks. We collectively spend a lot of time thinking about the design, usage, and development of programming languages, but we know that some are better for collaboration and maintenance than others. What language and ecosystem features underpin that distinction, and what features would a language focus on if it was specifically building for the Software Engineering use case? This talk will be a somewhat opinionated survey of the programming language options available today, with some predictions about what comes next.
    -
    Titus Winters
    Titus is a principal Engineer at Google, where he has worked since 2010. He founded Abseil, Google’s open-source C++ library that underpins more than 250M lines of Google code with 12K+ active internal users. He is one of the four arbiters for Google’s official C++ style guidelines. For the last 11 years, Titus has been organizing, maintaining, and evolving the foundational components of Google’s C++ codebase using modern automation and tooling. Titus is the former chair for the Library Evolution Working Group (LEWG) in WG21. He is also the lead author for the book “Software Engineering at Google.” (O’Reilly, 2020).
    ---
    TH-cam Channel Managed By Digital Medium Ltd: events.digital-medium.co.uk
    ---
    #Programming​ #CppNorth #softwareengineer
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 13

  •  ปีที่แล้ว +6

    Software engineering is the art of trying to get programmers to work together effectively across time.

  • @iverbrnstad791
    @iverbrnstad791 2 หลายเดือนก่อน

    I think it is worth giving some mention that on the front of static typing Rust actually is meaningfully stronger than C++, as C++ number types internally behave like a dynamic typed language, which can turn into surprises.

  • @sanjaygatne1424
    @sanjaygatne1424 ปีที่แล้ว

    सुंदर विश्लेषण.

  • @marvinvanaalst
    @marvinvanaalst ปีที่แล้ว +3

    I've noticed quite the increase in the quality of my code after getting used to type annotations in Python and it has made my life so much easier. Super glad that a lot of the scientific Python stack nowadays has type annotations as even quick and dirty code is easier to write with constant help from type checkers. I honestly don't think anymore that having a dynamic type system is in any way beneficial, as long as the underlying type system is expressive enough.

    • @passerby4507
      @passerby4507 ปีที่แล้ว

      Yup. You, the programmer, not knowing the type of your operand is always a bug. And yet, there are still parts of the Python community which still think types are "less readable".

    • @TranscendentBen
      @TranscendentBen ปีที่แล้ว

      I've heard of SciPy but not familiar enough with Python in general (other than the typing is too loose), but just as there's Typescript (oh, he mentions it!) for Javascript, I'm wondering if The Next Great Language will be named Typon.

  • @jonatasjcgrendering8436
    @jonatasjcgrendering8436 ปีที่แล้ว

    Software Engineering is the art of managing software complexity.

  • @SimGunther
    @SimGunther ปีที่แล้ว +6

    TL;DW if you already got legacy code (most likely in C++ or one of the big languages), you're likely to keep using that language because stability and cost savings, but if you have a short script to solve a VERY specific problem, there are a bevy of other languages will make that script easier to write "for the problem".
    And no, there's no prescriptive design for the "next awesome language", just vaguely showing the spectrum of languages with their focus on maintainability for 50 minutes.

  • @TranscendentBen
    @TranscendentBen ปีที่แล้ว

    44:15 Okay, so here (presuming the viewer knows ANYTHING about these languages, and they've already been touched on in the talk, so an alert viewer doesn't have to know the first thing about programming) is the rare question where the video audience does NOT need the speaker to tell us what the live audience did, though it would be interesting if as many as one person raised their hand when asked if they wanted to work on the million lines of Perl.

  • @sdevoid
    @sdevoid ปีที่แล้ว

    I'm not familiar with the Ruby syntax sugar debate, but I felt like the answer last question missed an opportunity. Both C++ and python enable operator overloading. This results in "normal code" that behaves very differently than a programmer would expect. While there are uses for this, e.g. I'm sure there are valid mathematical cases where '+' isn't commutative, doesn't satisfy the triangle property, should it exist in a standard 'case' of a Software Engineering Language?

    • @isodoubIet
      @isodoubIet ปีที่แล้ว

      " I'm sure there are valid mathematical cases where '+' isn't commutative"
      There is a very common case: string concatenation.
      "doesn't satisfy the triangle property, "
      I'm not sure what you mean by this -- the triangle inequality is not so much about the addition operator, it's about metric spaces. There certainly exist metric spaces that don't satisfy the triangle inequality (easy example in spherical geometry: take a triangle with a vertex on the north pole and two vertices along the equator; the maximum possible length of the side along the equator is the circumference of the sphere, whereas the other two sides are each only 1 / 4th of a circumference), but by definition the codomain of the metric function is the reals with addition as usually defined.

    • @passerby4507
      @passerby4507 ปีที่แล้ว +1

      @@isodoubIet A metric without triangle inequality is not a metric. Your example of points on a globe is not a metric.

    • @Benbne
      @Benbne ปีที่แล้ว

      ​@@isodoubIet "There certainly exist metric spaces that don't satisfy the triangle inequality" -> No. The triangle inequality is part of the definition of a metric. In te sphere case, the distance between the 2 vertices on the equator is at most _half_ the circumference, when they are diametrically opposite. When they are not, the distance is the shorter way, so it's smaller.