javur: November 2005 Archives

Java Top N List

| | Comments (0) | TrackBacks (0)

So I've been working in the Java mine (of my own volition) and now I will grace you all with my thoughts on Java, several years after I first played[1] with it. At times this list may seem a little harsh, but in reality I'm really liking the experience.

[1] And I do seriously mean "played", about as far as I got was "Hello World" and "ooh look at all of those objects!"

  1. Semicolons. I've just come off of a python/ruby kick. Having to type in semicolons again is weird.

  2. Typing. Also I've been coming off of a Haskell kick. Although Java's type system is not nearly as strict as Haskell's it's nice for the compiler to catch some little errors. Actually Haskell's type system is like BDSM, real strict, real painful, but also really nice in a way.

  3. Arrays vs. Collections. In all of the languages that I like to work in arrays are out and indexed lists are in. Java shows off it's machine language roots (and its similarity to C) by advertising and making arrays what people use. Compounding this is that where Collections are concerned (and pretty much any container type thing that takes the global base Object class type) the collections are more like LISP lists. A programmer can put in whatever the hell he wants into them, defeating some of the niceness of having type checking in the first place. Make up your mind Java. Are you dynamically or statically typed?

  4. Version Numbers. The discrepancy JDK version numbers and Sun Marketing people's version numbers are just stupid. But really most version numbers are completely stupid anyway.

  5. Debugger. jdb is crap. And I'm not going to install Eclipse. Time to try out the new java enabled version of gdb.

  6. Interpreter/Shell/REPL thing. As said before my language progressing looks something like (but probably not quite) perl -> C -> PHP -> Bash -> Python -> Scheme -> Common Lisp -> Haskell -> Ruby -> Java. The path is very roundabout, but most of these languages have a Read, Evaluate, Print, Loop thing that allows a developer to run little snippets of code and get back results. This really is a language feature folks! Although I don't know how well Java would cope with it since it is built on verbosity.

  7. Enumerations. Mapping symbols to integers in code is so 1969. I only think Haskell, Lisp, and (maybe) Ruby do this nicely.

  8. Classes vs. Packages vs. Modules. Everything is packaged in a class even if it doesn't make an object. So maybe they should've been called MODULES. Also, long.package.names.are.really.annoying. Especially when they're mapped to directories and my command line wraps around the screen.

  9. Development tools. I was going to say something about this but I forget. Maybe it was something about the Java communities habit of rewriting things (like building Ant instead of using make.)

  10. Interfaces vs. mixins and multiple inheritance. Maybe my number one complaint. I've heard that multiple inheritance was cut out because it would be too complicated for the programmer. From reading how someone is suppose to write java code for stuff like mixins (pretty much a lot of boiler plate crap) I think it may be worth the complication.

  11. Modifying existing classes. A lot of the OO languages let the programmer muck with the guts of existing classes. Java does not. This seems to be another case of "other programmers are our enemies."

  12. Public, private, and protected. "Other programmers are our enemies" again. Python does the old school Internet way of trusting the user of a class or library. The Java way probably helps compilation in some way (also numbers 10 and 11 also probably do as well.)

  13. Core types vs. Objects. int is a core type in the language while Integer is a class type that wraps all of the OO goodness around the int core type. Because of this I've messed with way too much code that has to cast between these types of types. Yucky.


About this Archive

This page is a archive of entries in the javur category from November 2005.

javur: October 2005 is the previous archive.

Find recent content on the main index or look in the archives to find all content.

February 2008

Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29  

November 2005: Monthly Archives

Pages

Powered by Movable Type 4.1