4 ms·
Yup, I agree on the 'smaller architecture' bit. One more point: I find that there are a lot of very common things that we, as developers, have not 'standardize
by edblarney 10y ago
Yup, I agree on the 'smaller architecture' bit.
One more point: I find that there are a lot of very common things that we, as developers, have not 'standardized' on - but if we did, it would be beneficial.
The underscore/lodash JS libraries are great examples of this.
They are not just a bunch of 'helper functions' - they are really a series of new 'functional keywords' that in a way represent a new paradigm in software: we all get used to these 'mini patterns' and call them the same thing, and when used in code they can make things a lost simpler.
Map, reduce, find, each, pull, filter etc. etc. - at first glance it would seem compulsive to jam all these into some code - but once the developers are familiar with them ... guess what - they become almost part of the programming language itself.
So I think this is a pretty good example of a 'meta' way to facilitate simplicity: agree on names for very common patterns, and abstract them away with tools or linguistic constructs.
- arcfide 10y agoCongratulations, you just listed some of the main APL primitives. They've been standardized and given standard names, even in Unicode, since the 70's or 80's? Sorry, I couldn't resist. :-)
- lmm 10y agoMany of them are present in the original lisp paper from 1960. Under standard names like "map" and "search" that are concise but still words.
- arcfide 10y agoIndeed, many of these ideas as expressed in APL come from the 1962 book, "A Programming Language." I find it unfortunate that these ideas are only now beginning to find some general acceptance in larger, more mainstream languages.