Flutterby™! : Dev Tools

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics

Dev Tools

2006-06-28 17:17:04.198097+00 by ebradway 10 comments

I've just started my PhD research and having found myself, once again, writing code as the "meat" of my work. This time, it looks like it's going to be Java. I'm looking for some pointers on dev tools, books, and advice (even if it's "Java sucks, try this instead"). See the first comment for more details...

[ related topics: Software Engineering Writing Work, productivity and environment Java ]

comments in ascending chronological order (reverse):

#Comment Re: made: 2006-06-28 17:40:06.875154+00 by: ebradway

What I'm working on is developing a data structure that allows for progressive transmission of vector data at variable scales while maintaining correct topology. My advisor, Dr. Barbara Buttenfield, has already worked out the basics of the structure and, a couple years ago, paid an undergrad comp-sci major to write some Java code implementing the fundamentals. I'd have more stuff to link to but the web servers are currently down and I'm actively avoiding the role of sysadmin.

My job is further implement the data structure as working code - proof of concept type of stuff. Right now the code consists of a server component, a client component and a maintenance utility. All are written in Java. All speak to MySQL as a backend via a deprecated JDBC connector. I have managed to get the maintenance utility running under the latest JDK with the newer JDBC connector speaking to the latest stable release of MySQL.

The project will involve enhancing the admin utility to read ESRI shapefiles and maybe an ESRI geodatabase, extending the client/sever to handle multiple data sets and their topology, and much later, creating an interface to some other front-end like GoogleEarth or ESRI ArcDesktop. Later work will involve some really, really large vector datasets (like stream networks of the entire US), hence the use of SQL from the beginning...

Personally, I have very little experience with Java. I speak C as if it's my native tongue but I'm not adverse to learning a new programming language. I also want to avoid doing things like creating a user interface or writing routines to do common-place stuff (like read an ESRI shapefile). I also don't want to spend alot of money for this muffler.

#Comment Re: made: 2006-06-28 18:13:17.921301+00 by: Dan Lyke

I've run screaming from Java for a variety of reasons, but the one thing I've heard over and over (and over) again is "Eclipse", even if you're not generally an IDE person. Personal prejudices aside, I think Java's probably a reasonable language for the task at hand.

I'll be interested in how the use of SQL for large vector data sets works for you. I've looked at that now and then and thought that while it looks good in theory I've got a few reservations in practice.

With that in mind, have you considered whether PostGIS would offer you anything?

#Comment Re: made: 2006-06-28 18:23:15.286938+00 by: meuon

You are probably doing things that would be good to do in Java. I know just enough to hate it for simple web/db apps.

#Comment Re: made: 2006-06-28 18:34:51.38049+00 by: ebradway

Eclipse: Is this the Eclipse you mean? It looks like it's more than just an IDE... I managed to "solve" an initial problem I had with my CLASSPATH (typical, eh?) by being able to edit it easily in an IDE. I'm not writing tons of code but I need everything very well documented and an IDE helps (as long as the project can be assembled without it).

SQL and Vectors: I'm specifically implementing a way to break down vectors into a series of convex hulls stored in a big b-tree. I'm not sure of the efficacy of the SQL implementation as I've just started getting into the mess. I do trust, to a certain degree, that my advisor knew what she was doing when she spec'd it.

PostGIS: I'm specifically implementing a new data structure. PostGIS enforces traditional GIS data structures. I'm not sure if it would really offer much. A later MS-thesis project might be a PostGIS implementation of this new data structure... I have the same problem with most Java libraries for GIS - they implement a standard "vector" which I would either have to break completely and redesign or extend the objects signficantly.

#Comment Re: made: 2006-06-28 18:51:39.230615+00 by: Dan Lyke

I think that's the one. I haven't used it, I've just heard it mentioned in hushed tones, those secretive mumblings which indicate that the initiated have indeed discovered magic and both wish to brag about their discoveries, and yet not share too much lest they roge their edge over their competitor.s

I was thinking that starting with PostgreSQL[Wiki], or at least making sure that you had an abstraction that allowed you to represent the differences between PostgreSQL[Wiki] and MySQL[Wiki] simply, might give you a path to PostGIS later. But it's simple enough that as long as you encapsulate automatic ID generation and the specifics of table creation you should be able to switch easily.

#Comment Re: made: 2006-06-28 19:01:56.740464+00 by: ebradway

I haven't gotten far enough into the code, but the J-connector I'm using is pretty standard, so the code shouldn't be too hard to convert to PostgreSQL later.

Now, what I really need is a pointer to a good "Java development in 60 minutes for the seasoned C/C++ programmer"... There's so many buzzwords for commonplace things surrounding Java that it takes twice as long to make sure I'm actually reading things right.

#Comment Re: made: 2006-06-28 19:49:25.066771+00 by: meuon

Buzzspeak: Coding in Java produces fewer errors than other languages
Clue: Java calls most of them 'exceptions'
Truth: Errors + Exceptions in Java Code are about what you'd make anyway..

In compiling Java for web-apps, it was just a pain to debug, it's exceptions were, while being technically correct, often useless in determining where the real problem was. I would probably enjoy seeing how it should have been done with someone with a real toolset and understanding of what was going on.

But I'm adding 2-5 functions/features per day in PHP/MySQL in NextLMS, it's easily the right tool for THIS job. Getting 1 added or fixed per day in Java was a chore.

#Comment Re: made: 2006-07-02 05:21:57.14393+00 by: spl

Thinking in Java is a good book. There's a free version available of the previous edition, too.

#Comment Re: made: 2006-07-03 12:02:36.571346+00 by: DaveP

That's the right eclipse. Those who use it are pretty strongly evangelical. I figure it would spoil me for using "more traditional" IDEs like Visual Studio and XCode.

One of the cool things about eclipse is built-in support for many refactorings. As long as your code is in Java. That makes the latest XTreme programming techniques all super-easy to use if you care for that sort of thing. Personally, I think they're more useful for dealing with 10-year-old C/C++ code, and wish for a tool that would help me there.

#Comment Re: made: 2006-07-03 14:05:04.678209+00 by: markd

When I had to learn Java fast for a gig, I found a book called "Java 2 Exam Cram", which was just what I needed - just the new stuff for an experienced programmer in another language. None of the "This is a for loop! how cool! This is a while loop! how cool" for chapter after chapter. The publisher has since gone under, but you might be able to find it at a university library. It's geared for folks trying to pass a Sun certification test, so it hits the major Java features. I don't think that it has been updated for the latest java version.