3 ms·
Software is composed of algorithms but most software engineers aren't writing the algorithms they use themselves. If algorithms are only a part of software prod
by cantstopmyself 6y ago
Software is composed of algorithms but most software engineers aren't writing the algorithms they use themselves. If algorithms are only a part of software production, maybe optimizing our languages around this subset of problems isn't actually optimal.
Higher-level languages really should mean languages that operate on another level of abstraction - programs that themselves are interpreted by other programs. Raising the level of abstraction requires also hiding details that aren't important at a higher level so, arguably, modern high-level languages are rarely all that much higher-level than C (even if they are safer/easier/faster).
Knowing a Turing complete language will probably always be a valued skill but it might one day become similar to knowing Assembly today - it's important to know if you care a lot about implementation details but it's not the language you use to reason about the overall program. Libraries, frameworks and system components all need to be able to express a level of detail which makes algorithmic thinking ideal but it's not necessarily the best model for specifying the behavior of information systems or making devices end-user programmable. There's a whole world of relatively unexplored possibilities here for language designers to explore.
(NOTE: I'm using a backup account to work around my anti-procrastination settings but I'm the author of the original comment)