The proliferation of languages and frameworks makes it unnecessarily difficult to choose a technology stack and makes it unnecessarily difficult for developers to choose which skills to learn. This is not good for the industry. There will be consolidation around frameworks and libraries. We have seen too many slightly different variations of the wheel being invented. Innovation would be better focused on improving and extending a few major frameworks and libraries (for example, React and Angular in the Web space) than writing new ones. There will be consolidation around languages. We don’t really need more than two variations on JVM languages, for example. My picks would be regular Java and Scala. Tried and true software engineering practices like type safety will come back into fashion because they actually help when building large software systems. This implies that TypeScript will overtake plain-old JavaScript in serious Web development and, hopefully, Scala or some other lan...
Contrary to popular belief, yes you can. In fact, many existed and did very important. Perhaps one of the most well known is the ENIAC (Mauchly pronouned it En-ee-ack not EEn-ee-ack who can argue with its primary designer?). ENIAC The ENIAC had flip-flops stored in a ring counter that accumulated (or counted) pulses sent to it. Each ring had ten flip-flops that represented a value from zero (0) to nine (9) and there were ten rings in order to store ten digits (range is 0 to 9,999,999,999). One last flip-flop stored the sign. Each of the cabinets above that the ladies are busy programming (yes they are) is essentially analogous to a CPU accumulator which was an early type of register that always added the number it stored to anything “moved” or “stored” into it. Each cabinet has a complete circuit of 10 ring counters (later 20 digits). The ENIAC was a digital computer but not a binary computer as it used base ten. Programming the ENIAC involed using a portable function table ...