nothrow by default

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Sun Jan 5 20:46:17 UTC 2020


On Sunday, 5 January 2020 at 20:22:14 UTC, JN wrote:
> There are reasons. A simpler language is easier to manage, both 
> for compiler and for IDEs, potentially allowing faster 
> development time and better performance/reliability, even if it 
> doesn't have powerful features. From Go's FAQ:

I followed the arguments they put forth when Go first launched. 
People complained loudly about not having good abstraction and 
error handling mechanisms and they (the language designers) were 
rather religious about their position. They are Unix/C/Plan9 
people. Go as a language design does not provide better 
reliability, you are not forced to handle errors properly. (Unix 
APIs are also not great for correctness.) The Go designers found 
that they had to add "exceptions". They found that they had to 
add "generics". Coming in Go2.

When your function gets 100% larger because of the language lacks 
basic abstraction/error handling features then that does not 
improve correctness... Hiding the basic logic flow in error 
handling branching is not good for correctness or maintenance 
either.

They have marketed what it lacks as "good design". Go-people 
parrot it as good design, but that does not make it true...

Fortunately, most server code is simple I/O. So it is OK for 
writing a service, but not great, although the runtime makes up 
for it. Somewhat.





More information about the Digitalmars-d mailing list