Re:Fighting Complexity in Software Development
by gitgud on Friday July 05, 2019 @04:34AM
(#20360835)
I attribute this almost entirely to sum types (Rust enums), a better type system, an unforgiving compiler, async/await, a better module system, lifetime checking...
This seems like an example of a language effectively abstracting common complexities and pain points, which were probably discovered in earlier languages...
Re:Fighting Complexity in Software Development
by agumonkey on Friday July 05, 2019 @06:21AM
(#20361342)
I think it's fair to say that rust is the first mainstream languages bringing these notions out of the woods. Who on earth knows about ML or cyclone ? 0.0001% of the programming crowd maybe.
World operates in spirals. We branch off trying things and then go back to old forgotten ideas, etc etc
Re:Fighting Complexity in Software Development
by joe_fishfish on Friday July 05, 2019 @08:26AM
(#20361981)
Kotlin has sealed classes which are basically the same as Rust's enums. It also has async / await in the form of coroutines and a decent module system. It also doesn't need manual memory management, which while unsuitable for many applications does remove another potential class of bugs.
Re:Fighting Complexity in Software Development
by lifthrasiir on Friday July 05, 2019 @03:33AM
(#20360562)
> We use a strongly typed Lua-like language at my company [...]
Is this homegrown? In my experience this alone has a major impact in productivity because it is generally hard to create a good implementation and a new language and/or implementation only pays when the existing solution is too bad. (Source: I have made a Lua type checker at work. It worked, but fell into disuse as I moved on and the entire org abandoned Lua in spite of my work.)
These things just make bugs disappear.
When it comes to IDE experience, the parts that I use often are mostly the same between Rust and our language.
Edit: I'd say it's both, in a multiplicative manner. You need experience and a good set of tools (the language itself being the most important tool) to write good code fast.