4 ms·
I've heard this about Lisp, but I don't really get how this doesn't apply to other languages. My no. 1 suspect is OOP or, more specifically, languages like Jav
by narag 3y ago
I've heard this about Lisp, but I don't really get how this doesn't apply to other languages.
My no. 1 suspect is OOP or, more specifically, languages like Java that won't let you write a function. You can bypass that limitation creating a class whose only reason is to hold stand-alone functions. I don't do that, lately I don't much Java at all, but I've seen huge Util.java classes.
In sane languages I used to start exploratory programs with two files: one for the main flow, the other for utility functions. Later the former would become different windows, the latter different libraries. Classes grew slowly, one functionality aspect at a time.
Forced OOP nudge you into a priori design the class structure before understanding the domain. Bottom-up advantage is that, having the primitives earlier, you can test with real data from the start and show the results to the domain experts.