January is a good time to step back, take a deep breath, and reflect on just where we're headed as an industry. By the end of the decade we had all of the basic tools needed for small projects, from assemblers and linkers to ICEs and ROM programmers. As one who manages software projects, I find both assembler and C to be totally inadequate. Both are ideal for writing complex real time controllers, and both perfectly suit getting a specific project done. Neither language inherently solves a business's long term problem, that of efficiently getting a lot of different projects out over the course of years.
Reusable software is our only hope of dealing with increasing software complexity.
It's simply naive to expect that by itself a new language will create some magic ability to handle bigger systems. The solution is to adopt new levels of abstraction. Conventional wisdom holds that the hardware is simpler, that designers just glue a lot of chips together, but software engineers must solve much tougher problems. Sure, programming is hard. But look at relative levels of complexity.