4 ms·
Yes, and where to place that simplicity A DSL is simple to use, but complexity has moved to the compiler An assembly is complex to use, but the compiler is si
by tsegratis 5y ago
Yes, and where to place that simplicity
A DSL is simple to use, but complexity has moved to the compiler
An assembly is complex to use, but the compiler is simple
--
Part of the answer is in expressivity -- in breaking down problems into simpler, combinable parts. Like Unix pipes or lego
But as expressivity increases, the number of combinations increases and hence complexity itself increases
At one limit atoms are the simplest unit, and programmers can combine them to create any known physical object
At the other limit, we have a one key keyboard that can only do one job and be programmed no other way
Both extremes are extremely simple in their own way, and show us that neither language expressivity, nor even language simplicity is a true savior
- tsegratis 5y agoTo expound: An emergency shutdown system wants a language comprised of a single big red button My lunch wants a language of nutrients and flavors for the VM of my tounge and stomach to trigger the happy(); syscall to my brain -- The best language, and even simplicty itself, must be viewed from both your current position and end goal
- runawaybottle 5y agoPart of the answer is in expressivity -- in breaking down problems into simpler, combinable parts. Like Unix pipes or lego But as expressivity increases, the number of combinations increases and hence complexity itself increases. This is first hard lesson learned for those that approach the challenge of achieving simplicity. The first idea one has is ‘I’ll break everything into the smallest little parts’, and suddenly you have a thousand little parts. Sony products were considered extremely fragile because they were constructed out of tons of small parts. If you dropped it once, every little piece would fall off. Compare that to the Mac unibody.
- nicative 5y agoNice. I used to think that creating the smallest services, function, methods, etc would produce the easier software to deal with from the programmer perspective. But turns out you will end with many interfaces to keep when perhaps you just needed one Is there any books that touch in this subject directly?