3 ms·
Why not just let the market sort it out? Because software development will never become software engineering if we continually do the equivalent of changing th
by angersock 11y ago
Why not just let the market sort it out?
Because software development will never become software engineering if we continually do the equivalent of changing the number and measure system every five years.
- seanmcdirmid 11y agoYou mean because the tools that we use in real engineering have remained the same for the last 100 years?
- angersock 11y agoSo, speaking as somebody who went to school for real engineering (mechanical)...the tools haven't changed as much as you'd expect. We standardized on steel nomenclature ( http://en.wikipedia.org/wiki/SAE_steel_grades http://en.wikipedia.org/wiki/SAE_steel_grades ), and on airfoil design ( http://en.wikipedia.org/wiki/NACA_airfoil http://en.wikipedia.org/wiki/NACA_airfoil ), and on formulas for common engineering problems ( http://en.wikipedia.org/wiki/Roark%27s_Formulas_for_Stress_and_Strain http://en.wikipedia.org/wiki/Roark%27s_Formulas_for_Stress_a... ), and so on and so forth. We've gotten better tools for design (say, CAD via Solidworks or Autocad or ANSYS or what have you), but the implementation stuff has been near-constant for almost a century. And that has meant that we've been able to routinely build gigantic things with hundreds of people that last for decades and can be repaired--software doesn't have the same track record of quality, safety, or anything else really. That's not a bad thing, mind you; however, our industry does shoot itself in the foot by either mudballing on existing languages or by creating lots of incompatible new languages to solve similar problems. Again, it's as though the mechanical engineers had to learn a new type of math for the same calculations every five years.
- seanmcdirmid 11y agoMost new programming languages are very incremental. For every Rust and Elm, there are 10 Typescripts, Darts, and Gos. Its like being handed a new and slightly improved AutoCAD every 5 years, which isn't very strange at all. If you leave the industry for 15 years, you might not be familiar with the version of AutoCAD when you come back. Now the more edgy stuff (say Elm, Rust, even Haskell, and perhaps Scala if you choose to use it that way) IS a bit more different, but adoption is challenging as a result. Its like being handed a new CAD program with a new diagramming paradigm (something AutoDesk would never do, by the way, as their users would kill them).
- angersock 11y agoThe functionality is absolutely incremental--but it's the little differences, right, that prevent them from being used together cleanly without passing through some other interface (say, a REST API boundary or TCP connection or something). To strain our analogy further--it's not like we've got a fundamentally new type of bolt every 5 years...it's that we've got slightly different bolt systems with different diameters that can't be mixed and matched on a project without making maintainers' lives hell. Oh, and in 5 years? The manufacturer is out of business--so sorry about your house door.
- jules 11y agoRust and Elm are incremental too. Compare Rust with Cyclone. Compare Elm with the many FRP libraries/languages. Some of those things are presented as new e.g. Elm UI library, but look at FranTk: it was all there and more 15 years ago.
- seanmcdirmid 11y agoAh, but FRP still isn't incremental [1]. By incremental, I mean, improving on standard practice. Non-incremental meaning something quite different than what you were used to, even if it has been around for...20 years in niche communities. [1] Meant as a funny punny.
- deleted 11y ago[deleted]
- rdc12 11y agoBut it goes the other way too, will software dev every become software engineering (if that is even possible) with the current languages and tools?