Last week, I read an article about a famous IM company. One statement is very interesting: A company has its genes carrying by its people. The company has more internet genes, while Microsoft has more software genes as a comparison.
Internet generally requires or allows different development-shipping cycles. It can be shipping in finer granularity, e.g. a small release every 1~3 day. Therefore, it blows up the whole process of traditional software. Therefore, the production organizing around internet services is structured more to such cycles. Therefore, actively participant people are more important while they face more intensive life.
A friend mentioned that: nowadays main research in compilation is not about lexical analysis or parsing, but about optimization. The former is pretty mature today. But optimization has continually improvement space. For example, JVM implementations may have different optimization strategies. We seldom feel about it because it’s transparent by design. Therefore, Java developers seldom answer questions like C++ programmer: ‘it depends on the compiler implementation….’
DSL is becoming popular this year. Many tools emerge on the horizon. For these tools, I think next possible improvement of all is optimization. Since DSL frameworks or tools are in higher abstraction layer, the optimization will vibrate in larger range, balancing between productivity and costs.