Design-by-contract systems enforce API behavior. In Eiffel, contracts specify both internal and external behavior, at the language level.
connect_to_server (server: SOCKET)
require
server /= Void and then server.address /= Void
-- etc.
end
This does what it looks like, at runtime. (/= == != :)
The cost of doing the same in Java is higher; most frameworks use some form of aspect-oriented
Hooray, my OLPC arrived this morning!Without having the time to go in to any detail, here some initial first impressions.- It's really small, but the carrying handle and LCD hinge/swivel assembly make it larger than my Eee PC. Not a huge issue for me, and the hinge/swivel makes for some cool functionality that I want in a small notebook. Handle I can live without, but it won't be a deciding
Good heavens, it's small, and I got the one with the whiny fan.
The screen, while low on density, is easily readable indoors, and adequate for my needs. The LED backlight is adjustable via Fn-F3/Fn-F4. It goes to sleep via Fn-F1 in about 3 seconds and comes back with the power switch in about 5 seconds.
Typing is... challenging, although I suspect I'll adapt with a few days use... So far the
The screen, while low on density, is easily readable indoors, and adequate for my needs. The LED backlight is adjustable via Fn-F3/Fn-F4. It goes to sleep via Fn-F1 in about 3 seconds and comes back with the power switch in about 5 seconds.
Typing is... challenging, although I suspect I'll adapt with a few days use... So far the
Today's Java Irritant is the lack of mixins or similar functionality, although Warth et al.: Expanders have an implementation.
A current project has an interface consisting of about two dozen getters (and setters). This interface is implemented by a minimum of two classes due to design and lack of multiple inheritance.
Being forced to implement this functionality in even one place, not tucked
A current project has an interface consisting of about two dozen getters (and setters). This interface is implemented by a minimum of two classes due to design and lack of multiple inheritance.
Being forced to implement this functionality in even one place, not tucked
Subscribe to:
Comments (Atom)