3 ms·
Funny to see this here on the front page of HN! I'm currently enrolled in a university level course in Software Design that uses Eiffel [0]. The Eiffel language
by alphakilo 7y ago
Funny to see this here on the front page of HN! I'm currently enrolled in a university level course in Software Design that uses Eiffel [0]. The Eiffel language makes sense for wanting to translate your design by contact (DbC) logic to code, but is very frustrating to work with. The tooling is quite old and outdated compared to modern IDEs. I will say that the course works very well fro demonstrating applications of EECS 3342 - System Specification and Refinement [1] that extends MATH 1090 - Introduction to Logic for Computer Science into the application world.
In regards to modern usage, it is hard to think how we can validate preconditions and post conditions in a cloud native world without additional development of libraries.
Overall though, the course has students struggling with learning the new tooling and syntax when the University has only taught Java and C thus far.
I do find DbC interesting and I think it would be interesting to see it given first class support (Go Contracts draft [2]), but the reality is that TDD can accomplish the same at a much faster development speed.
[0] - https://wiki.eecs.yorku.ca/course_archive/2019-20/W/3311/start https://wiki.eecs.yorku.ca/course_archive/2019-20/W/3311/sta...
[1] - https://wiki.eecs.yorku.ca/course_archive/2019-20/W/3311/start https://wiki.eecs.yorku.ca/course_archive/2019-20/W/3311/sta...
[2] - https://go.googlesource.com/proposal/+/master/design/go2draft-contracts.md https://go.googlesource.com/proposal/+/master/design/go2draf...