I found Herve’s recent forum post on performance interesting for a variety of reasons. Foremost, it provides a bang on summary of performance considerations in WaveMaker application development. It identifies the common bottlenecks of WM apps and summarizes the techniques developers are using to mitigate those bottlenecks. If you are concerned about the performance of your app, the thread is worth a read.
The post and its resultant discussion suggest a possible derivation of Linus’s Law. The ‘formal’ version of Linus’s law states: “Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix will be obvious to someone.” Unfortunately, client performance design is not well covered in the current documentation. There are performance suggestions and methods shared by others on the dev site. Herve took these tidbits, did some testing of his own and packaged it into a nice overview of the topic. From this we could possibly derive that “Given a large enough community, almost every aspect of the project will be documented”.
As Herve found, rendering lots of components is expensive. A new version of the rendering engine is in the works. This new engine significantly changes how the rendering engine does what it does but unfortunately just will not ready for 4.5. It needs more development and testing. Payload gains from improvements such as enabling GZIP compression in the tomcat server are expected to be included in the 4.5 release.
This brings us to what I consider the most exciting aspect of that thread. Linus’s law and our slightly dodgy derivation take the form of: given enough active users, good things happen. All the laws require a critical mass of users for those good things happen. Improving application performance is undoubtedly a good thing. It is not entirely speculative to conclude that some hypothetical threshold was crossed somewhere that enabled this goodness to happen.
More and more talented people from around the globe are participating in the community every day. Improving performance is just one example of the good stuff that has resulted. What strange and wonderful things might emerge in the coming months? In what ways will the community help drive WaveMakers development and maturity? I, for one, can’t wait to see that the answers will be.