Perhaps the RIAA members will change their tune when they go for their dental checkups, and instead of soothing music, the dentists play recorded tracks of drilling and pulling teeth.
Having used C++, Java, and.NET, let me say that Java is slow. Yes, I know, when a JIT happens, Java gets pretty fast. Unfortunately, the JIT is expensive.
At my former employer, our app's startup time stank because of all the JITting. The first time our users tried to do anything, it took an extraordinarily long time. They noticed, and while they lived with it, they always mentioned it. Any sudden, unexplained pause brings back fears of "is it still running, or did it hang?"
Something nice about.NET is the ability to pre-compile a set of classes for a given platform. Theoretically, if I install my app on a machine, that machine won't suddenly change instruction sets, so compiling the whole app during the install saves time on every program execution.
I dearly wish the Java Founders would include a pre-compilation option similar to.NET. Compiling the code every time it's run is such a waste of time.
Amen. Do you think applications that require high performance can not be written in Java? Think again. Alibre Design is a CAD application written in Java, and it's plenty fast.
The only performance problem you have with a Java application is a longer time required to do something the first time-- the JIT. Any other bottlenecks are somewhere in application code.
Speaking of The Tragedy of the Commons. Guess what? This argument applies to Internet email, too. The individual benefit a marketer gets by sending a single piece of spam is a relatively high positive number, and the impact of this extra piece of email on the world is a very small negative number. Therefore, spammers will continue to send more email, until eventually the commons collapses. In this case, perhaps the Internet will not be able to handle the load, or maybe people will stop using email for communication. But the collapse will come.
What can we do about it? The freedom to send any email must be restricted somehow. You can't have unrestricted freedom without the eventual collapse of the commons.
Granted, Java doesn't have the Lisp ability to redefine everything-- and I mean everything-- but you can do lots of neat stuff with Java, too. There's nothing stopping you from creating dynamic Java code. Just build your class in memory, then load it from a class loader! It's very handy for stuff like proxies, ORBs, etc.
One common theme I've seen is observers and adapters. Your application components can be Observable. Observers register interest in them to get notified when the object changes. One problem of this approach is specifying the extent of a change. Just saying "I've changed!" isn't specific enough if that update would take a long time to process. If you can specify exactly what changed, then the Observers can process only what has changed.
Adapters allow standard UI controls to embed domain objects without either layer knowing about the other. For example, say you want a tree to list Employee objects. The tree does not understand what an Employee is. However, you can make a tree that takes a TreeAdapter object that knows how to provde its name, subitems, handles renaming and drag-n-drop, etc. You can then make an EmployeeAdapter subclass of TreeAdapter that wraps an Employee and knows how to make a tree node out of it. If the EmployeeAdapter observes the Employee, it can handle changes to the Employee object.
Please forgive me for tooting my own horn, but here's one: a CAD application written in Java. You can purchase it at CADalog.com, which I suppose counts as a store.
Perhaps the RIAA members will change their tune when they go for their dental checkups, and instead of soothing music, the dentists play recorded tracks of drilling and pulling teeth.
Having used C++, Java, and .NET, let me say that Java is slow. Yes, I know, when a JIT happens, Java gets pretty fast. Unfortunately, the JIT is expensive.
.NET is the ability to pre-compile a set of classes for a given platform. Theoretically, if I install my app on a machine, that machine won't suddenly change instruction sets, so compiling the whole app during the install saves time on every program execution.
.NET. Compiling the code every time it's run is such a waste of time.
At my former employer, our app's startup time stank because of all the JITting. The first time our users tried to do anything, it took an extraordinarily long time. They noticed, and while they lived with it, they always mentioned it. Any sudden, unexplained pause brings back fears of "is it still running, or did it hang?"
Something nice about
I dearly wish the Java Founders would include a pre-compilation option similar to
hyperbole.
Wow, those were good pictures. We were lucky that both Earth and Mars were cloudless.
(For the humor impaired: can you find two instances of silliness in my post?)
Amen. Do you think applications that require high performance can not be written in Java? Think again. Alibre Design is a CAD application written in Java, and it's plenty fast.
The only performance problem you have with a Java application is a longer time required to do something the first time-- the JIT. Any other bottlenecks are somewhere in application code.
Speaking of The Tragedy of the Commons. Guess what? This argument applies to Internet email, too. The individual benefit a marketer gets by sending a single piece of spam is a relatively high positive number, and the impact of this extra piece of email on the world is a very small negative number. Therefore, spammers will continue to send more email, until eventually the commons collapses. In this case, perhaps the Internet will not be able to handle the load, or maybe people will stop using email for communication. But the collapse will come.
What can we do about it? The freedom to send any email must be restricted somehow. You can't have unrestricted freedom without the eventual collapse of the commons.
Granted, Java doesn't have the Lisp ability to redefine everything-- and I mean everything-- but you can do lots of neat stuff with Java, too. There's nothing stopping you from creating dynamic Java code. Just build your class in memory, then load it from a class loader! It's very handy for stuff like proxies, ORBs, etc.
One side-effect of anti-matter drives is making self-destruct much, much easier.
One common theme I've seen is observers and adapters. Your application components can be Observable. Observers register interest in them to get notified when the object changes. One problem of this approach is specifying the extent of a change. Just saying "I've changed!" isn't specific enough if that update would take a long time to process. If you can specify exactly what changed, then the Observers can process only what has changed.
Adapters allow standard UI controls to embed domain objects without either layer knowing about the other. For example, say you want a tree to list Employee objects. The tree does not understand what an Employee is. However, you can make a tree that takes a TreeAdapter object that knows how to provde its name, subitems, handles renaming and drag-n-drop, etc. You can then make an EmployeeAdapter subclass of TreeAdapter that wraps an Employee and knows how to make a tree node out of it. If the EmployeeAdapter observes the Employee, it can handle changes to the Employee object.
From the article:
"The pollen from its stomach also shows that the environment was too wet for much desiccation to take place before burial."
Whoah! The dinosaurs buried their dead?!?
Please forgive me for tooting my own horn, but here's one: a CAD application written in Java. You can purchase it at CADalog.com, which I suppose counts as a store.