Could you comment on Smalltalk's blocks?
235 karma · joined August 16, 2013
Could you comment on Smalltalk's blocks?
I travel to rural areas in the South Indian state of Andhra Pradesh every month. The connection quality is as poor as its availability is flaky. I find that GMail, Google Drive and the Google search page always load. Business correspondence and collaborative editing have not been problems at all. I have not tried Google+, though. I shall try it the next time.
On the other hand, my biggest problems have been with GitHub. Not once in the last 18 months have the GitHub Web pages loaded. That makes reviewing and merging pull requests very painful. I reported this to GitHub long ago, but have not seen any improvement yet.
1. Google fought then-giants such as AltaVista, Excite and Yahoo in the process of establishing itself as the leader in search space. The incumbents had economies of scale and (relatively) massive amounts of data to crunch through. Yet a Google happened!
2. ``Google's very existence makes it harder for similar services to exist." History has proved time and again that such a premise is false. When it does become false, it is usually because of `dissimilar' disruptions in the landscape.
By the way, you have drifted away from discussing the technological aspects of the Web. This line of argument doesn't help establish why HTML/JavaScript/CSS are better.
-> Several people have suggested that JVM's mature GC may be using other cores, resulting in the > 370% CPU utilisation. I admit that I do not understand the internals of OpenJDK's GC. However, I would like to point out that 100% of the roughly 1,200,000,000 statistics results instances created during one run are not released until the program terminates. They are all stored in statistics results containers until the very end of the run. However, see below.
- From a processing perspective, other than the manipulation of containers and bit sets, almost all of the remaining processing is numeric. It is full of integers and doubles getting added, subtracted, multiplied, divided, square roots calculated, etc., as part of various statistical computations.
- Where I needed sets was in preparing the several million working sets over which processing iterations occur. Working sets are prepared based on user's query criteria, several thresholds for filtering elements under a variety of constraints, etc. From a garbage perspective, these working sets are the biggest garbage generated during a run.
- Go's numeric performance is certainly very good. I have had good experiences with it in other projects.
- It is true that I could not identify the causes to which the performance differences between the Go version and the Java one could be attributed. Was I being naive? Am I incompetent? Possible. As I concluded, this behaviour may be obvious to more informed people, but it surprised _me_, and, that is what I admitted.
As for achieving `generic' code through static generation using an external tool, I had had considerable success with it in some earlier projects. Except that the number of types is much higher in this project, and things could not be as simply - or clearly - generated statically.
I cannot publish the code because of the client's IP involved -- not because I fear criticism; see, I was ready to face _this_ criticism :-). Those of you who read my original post in golang-nuts may have already read that, of course!
Author of the blog post here. That is one of the reasons I shifted to using bit sets: specific element types can be elided.
Author of the blog post here. I agree, in retrospect!
Also, isn't the scroll bar really useful when you need to scroll up and down the page quickly by an arbitrary amount?