Software Engineering Languages
summary
Argues that languages are tools and that software engineering needs different tradeoffs than quick programming: static typing plus compiler-driven refactors enable low–false-positive large-scale edits, shown by C++/Java/Go workflows, while dynamic languages like Python favor rapid prototyping and now add type annotations to improve tooling. Notes package tooling matters — pip, vcpkg, conan vs Rust’s crate ecosystem — and praises Rust’s crater runs and Go’s minimum version selection as concrete practices that make long‑lived, multi‑version codebases maintainable.
AI-written summary · about
chapters (22)
- 0:00Intro
- 0:41There is a difference between Software Engineering and Programming
- 1:10What properties would a software engineering language have?
- 2:48Use The Right Tool For The Task
- 3:12[Software Engineering] is the Multi-Person construction of Multi-Version programs.
- 15:33Programming vs. Software Engineering
- 16:53Information Density
- 22:26Concepts
- 30:55Ease of Refactoring
- 31:40Version Upgrades
- 32:46Syntax vs. Upgrades
- 33:36Release Size
- 34:51Stability, Interop, Compatibility
- 36:06Package Management vs. Change
- 36:23Minimum Version Selection
- 39:59Security
- 41:08Hardware Evolution
- 42:34Resource Efficiency
- 45:05Computing Languages
- 46:46Software Engineering Languages
- 47:53Can We Build A Language focused on Software Engineering?
- 49:09Questions?
related talks
46mThoughtful Software Engineering
30mBack to the Future: Rust, Zig, and the New Age of C++ Alternatives
35mCraft, Engineering, and the Essence of Programming
01h 07mThere Is Only One Time in Software (Language) Engineering!
35mSoftware Engineering - Development in 100 Years Time
36mWhen to be Weird
05mBenefits and Drawbacks of Adopting a Secure Programming Language: Rust as a Case Study
01h 00mEngineering Software
