HN2new | past | comments | ask | show | jobs | submitlogin

At the heart you are absolutely right. We're after simplicity and clarity. However, I have found that "small" really does make a difference, especially if you push yourself to be small on the macro, rather than micro level. If I just chose "simple," it is too easy to believe that it's "simple enough." If I force myself to maintain poetry like small-ness, then I'm not just able to get by with "simple enough" but have to seek macro levels of simplification that we can often fail to see when the code is so large that all we look at is the single, local view of a single function.

By forcing myself to ever greater degrees of ascetical code sizes, small, cute micro hacks in a given function don't work. At that point the "fancy pants" hacks fail, and I am forced to create macro simplifications that obviate the need for whole classes of programming techniques.

So, yes, we want simple, but it's about how we can push ourselves and our minds to get there.



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.


Congratulations, 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. :-)


Many of them are present in the original lisp paper from 1960. Under standard names like "map" and "search" that are concise but still words.


Indeed, 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.


This reminds me of Alan Kay and company's attempt at VPRI to reduce a full PC OS to 20K loc, which produced some very sweet and concise code.




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

Search: