Cloudscape Gains Momentum
A reader writes: "There's been a lot of bits written recently about the growth of Open Source databases; as well as IBM's patent gift, as their release of the Java database Cloudscape. There's a contest running on SourceForge.net around Cloudscape; download and run with it." SF.net is part of OSTG, like Slashdot.
wouldn't it be quicker to print your data on paper and sort it by hand ?
And the story is about?
marketing?
A Java database?
Isn't that a little bit like writing a Fast Fourier Transform in LISP?
There are lots of things that Java is perfectly suited for. Databases are not one of those things.
Karma: Excellent Birds (mostly as a result of listening to Laurie Anderson)
I'm from Quebec ... and as usual, contents makers will not take the trouble of being compatible with Loto-Québec's rules. They are easy to follow, strangely... not a lot of stuff to fill in. It mainly is there to make sure we don't get screwed up
... and it also means everyone in the other countries will not be able to participate. Yeehaa
Wasn't Cloudscape donated to the Apache project, where it changed its name to Derby? Don't IBM think that offering a download of "Cloudscape" is going to confuse developers?
Karma: It's all a bunch of tree-huggin' hippy crap!
The submitter mispelt 'cynical ploy' as 'patent gift', wake up editors.
As it happens I've already written a review of cloudscape; the google cache of it is here.
Brief summary: get the Apache version; reasonably full SQL92 syntax; performance OK; a bit lacking on security.
I'm old enough to remember when discussions on Slashdot were well informed.
You can win an Ipod or TShirt only if you are US or Canada resident....are they trying to encorage inmigration? The rest of the world should not bother about using Cloudscape I assume...
Let's see, most people would need at least an hour to write a JDBC application to search the tables for some silly magic word. Most eligible contestants from the US and Canada who have the knowledge to write such an application make more than enough in one hour to buy an iPod and a T-shirt. So why should anyone even bother to play this game, just for the fun of it? You develop JDBC applications all day long and then in your spare time you do the same for fun... and you might even win a T-shirt. Wow, they really know how to motivate people! Alienating the rest of the world and giving people a sense of worthlessness about their achievements is not the best way to make a product popular. But I'm just clouding the issue...
Lets see how many open source projects we can get going at one time to compete against one another with absolutely no standardization! YESSSS!
But seriously -- this is getting out of hand. If every single company, individual, etc. starts an open source project what does that accomplish? Nothing. It brings about 100 different alternatives to the market most of which would never be viable in a commercial environment.
News flash: devote time and effort to succesful projects that extend the reach of the open source community. Another open source database project is just well... another project.
Portable Java is slow, because you have to use the abstract types sun give you rather than exploit your platform's capabilities.
The JVM initialisation time is waaay longer than the C runtime initialisation time on every platform I've tested, which makes short-running processes feel awful in Java.
Finally, whenever it becomes necessary to actually _do_ anything, the JNI must be crossed, and that's slow.
Phil
I guess today is a passable day to die.
- Small and embeddable
- Open source
- Native C++ interface
It seems like practically all the databases that fill the first two requirements are written in Java and use it as their primary API. Finally we settled on Sleepycat's Berkeley DB XML, which meets these requirements and has a native XML interface to boot. The one potential caveat is that they use a hybrid license that lets users "opt out" of the GPL by paying a fee, after which they can distribute their product as closed source. Personally I think this is a great thing (always nice to have more options and you don't have to pay anything if you product is also open source), but I'd be interested in the views of thePeer Pressure
Best thing about cloudscape is small embedded databases for java programs rather than making calls to a huge mysql database. You may say that java is slow but anyone using cloudscape for more than 20,000 entries may not be thinking that through. Cloudscape will also be useful for java programmers to program a database using java.
Write a program in cpp. Run it. a million times.
Now write a program in Java. Guess what, Java is not an interpretted language. It doesn't use some fluffy brightly coloured play-doh type bits, it uses regular ones, like cpp binaries.
Java compiled the byte code into executable form. Then it does some on the fly optimisation.
Java VM's can out-perform cpp over n cycles, where n is sufficient to overcome Java start times (seconds)
Secondly, FFT or a DCT in Java or cpp, I haven't seen benchmarks, but there are right and wrong ways to do it in both languages.
Thirdly, Databases, noone said they had to be FAST. Now remember Java isn't slow. Most databases on this earth spend thier time knitting and throwing stupid errors.
A few have to deal with mind-GOOGLING amount of data.
So there you have it, if you want a very nice Java db, try mckoi
http://mckoi.com/database
great support, open source, and works like a charm! I use an IBM DB server remotely, and an embedded mckoi instance for such things as prefs and other niceties. (as well as local work on data)
There you go.
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
Embedding a database in an application can be very useful, such as in a desktop GUI where you cannot rely on network communication or maybe don't want to bother with a client/server environment.
I'd certainly consider Java/Cloudscape for a desktop db-backed application over anything built in Access.
As always, fit the tool to the job, not the job to the tool.
You bastards! Thanks for cutting my chances of winning an iPod down 100x.
Namely HSQLDB and Mckoi?
Anyone find a decent article comparing the three yet?
Download and you will see that it is fast. Have not tried Derby, but I tried http://mckoi.com/database/ 2 years ago. It was very fast. Under win32 I compared it with a MS jet engine database (mdb file) with the jdbc odbc bridge driver, almost equal speed, plus the possibility to work with unicode strings.
Oooh, lookie! It's a trolling AC. Ok, I'll bite.
.NET platform. Depending on the application server that you implement, you will find varying degrees of performance. Try not to give in to the uninformed mindset that the Java runtime included with the SDK in 1996 was the end-all be-all of Java compilers. That FUD went out of style a long time ago along with bell bottoms, the Dodo and civil liberties.
.NET and ASP.
Java *is* a mature language celebrating its 10th year in 2005. J2EE, as the sum of its collective parts (EJB, Servlets, JSP, RMI) has been around for 7 years. By industry standards, these are "old-timers".
Java is memory "conservative" (on a server), requiring far less RAM than the
Java *is* platform-independent. My firm has developed applications running on various different *nix and Windows platforms that have been in production for over 4 years. Any platform-dependent implementation (e.g. via JNI) should be abstracted far enough away from the core application that, in the rare case that it is required, it can be easily replaced. To not design your application in such a manner is foolish and irresponsible.
Business has been very successful on the Java platform for years and much ealier than
Or are you suggesting that everything would be better off if it were just writtin in Perl?
Silly troll.
Ryosen
One man's "Troll, +1" is another man's "Insightful, +1".
I think you might be misunderstanding what JNI is. Each Java runtime provides its own implementation to the native underlying system libraries. Java does not communicate through JNI for I/O of any kind.
/ concepts/index.html
JNI itself is a generic abstraction layer to the underlying operating system. It provides a mechanism whereby dynamic libraries not directly supported by the runtime engine can still be accessed by a Java application.
Threading, sockets and GUI are implemented via the native system libraries. AWT used to be very slow (as opposed to just being merely slow today) due to its own multi-layed abstraction. But at no time was JNI the conduit for these systems.
Further reading: http://java.sun.com/docs/books/tutorial/native1.1
Ryosen
One man's "Troll, +1" is another man's "Insightful, +1".
I was having a hard time maintaining a distinction between unit testing and integration testing with some of my back-end code until Cloudscape came out.
Now, instead of needing to have a container up, or have a database running or similar, I can embed cloudscape (which is quite small, really), set up a group of in-memory tables with the state I need, execute a unit, then check the tables for correctness and destroy the database.
Shazam, database unit tests - no external dependencies.
A lot of people are mumbling and complaining about Java and databases and speed, but apparently they've missed the whole Moore's law thing. I'm betting they either haven't tried it or they have some over-inflated view of how fast their applications need to be (or how much it costs to get fast hardware vs. their time).
This stuff easily meets the "fast-enough" test for lots of uses, unit testing being just one of them.
Beeing in the incubator does not yet mean it is a full blown ASF project - but that the ASF is in the process of ensuring that there is a healthy community around it, that all the legal paperwork, trademakrs, grants, copyrights and other interlectual rights are sorted out, that commiter license agreements are on file for each developer, etc, etc..
Once that is all in place (and getting a healthy long term community is hardest - the rest is just endless grunt work and digging through code and legal paperwork dotting i's and crossing t's) it'll leave the incubator and be a full blown process.
Feel invited to join and make this happen ;-)
Dw.