4 ms·
I can agree with the second paragraph but I disagree with: > The abstraction is abstraction. It does not matter how it is implemented. To me, it does matter.
by phoe-krk 6y ago
I can agree with the second paragraph but I disagree with:
> The abstraction is abstraction. It does not matter how it is implemented.
To me, it does matter. A good abstraction should not get in the programmer's way. This directly depends on making the language's syntax support the abstraction in question. This, in turn, depends on the macro system of the language or lack thereof. Finally, that is a question of the given language's expressiveness, or lack thereof.
- FpUser 6y agoYou can have all the expressiveness in the world and still write those 3 liners. Or you can have plain functions and still write decent code with abstractions where needed. Basically good master will try to make decent job with any instrument and bad one will mess up everything disregarding the tools given. Of course on its own more expressive languages make job easier to write and read. Not denying that part.
- phoe-krk 6y agoYes. That is the part that I agree with.
- lmm 6y agoYou don't need macros, you just need a language that isn't awful. Plenty of languages make writing a plain datastructure and values of that datastructure easy, make "good code" just as concise as - if not more concise than - "bad code".
- ajuc 6y agoAbstraction is good when it lets you not thing about something and still understand how the system works. Abstraction cost is that the system becomes more complex overall. Good abstraction makes the system easier to reason about and leaks rarely, so you rarely have to think about the insides. But all abstractions leak under some circumstances. If you have 100 layers of abstractions at any given moment some layer leaks and you're constantly fighting the system without being able to understand how the whole thing should work. Language syntax only helps by removing the need for some abstractions by including them in the language.