Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Good article. I strongly disagree with this though:

> And implementation complexity is the worst kind of complexity in the world: it leads to subtle bugs that occur on 0.000001% of programs, it leads to unpredictable and hard to analyze performance, it leads to volumes of rulebooks that specify how to appease the compiler

Implementation complexity is much better than interface complexity. It does not necessarily break down subtly. Unlike interface complexity, it is localized.



Android (VM based language) has the following API:

public View getDropDownView (int position, View convertView, ViewGroup parent)

convertView - the old view to reuse, if possible. Note: You should check that this view is non-null and of an appropriate type before using. If it is not possible to convert this view to display the correct data, this method can create a new view.

The presence of the unintuitive 'convertView' object is caused by the underlying VM and the unpredictable GC nature. This demonstrates that implementation complexity can lead to a complex interface.

IMO the design of the interface is an implementation. A language that is complex to implement will lead to complex interfaces.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: