Higher level programming

Over the past few weeks I have been thinking about the current state of programming. Languages seem to be more and more designed for high level interaction with the heavy lifting done at the compiler level. This allows for bad programmers to not do things that will be too harmful. At the same time it allows for sloppy and imprecise code. Most people do not consider clock cycles, memory usage, or disc usage writing code or designing a database. Embedded systems like a cell phone may be different. The use of an int to store a Gregorian year value. String versus StringBuffer. Tagging your garbage for collection. Efficient code is lost and instead there are now a small number of advanced programmers trying to optimize within their distributed compiler. There is now code generating code and WYSIWYG GUI editors. Just as HTML coding has splintered into those who code by hand and work out the smallest footprint, the same might hopefully happen. Fight for your byte!