And what right do YOU have to say that a corporate entity (or any other entity for that matter) should be destroyed simply because you don't like it. If they break the law, then fine, go after them then. But since when, in a free society, are people allowed to destroy someone's livelihood simply because they don't agree with it?
Because we liked the radio more when it was illegal for one company to own all of the stations, perhaps?
I'm disturbed at the number of people who are recommending NFS as a distributed filesystem solution. While it might be easy to get going initially, I've had more long-term problems with my NFS server and client interactions than my AFS. To get my NFS clients to behave anything like AFS clients, I had to build and install an automounter that could use NIS config.
You only have to wait for the first day you want to reboot a fileserver without breaking every system on your network or waiting for startup dependencies, etc... One day, I moved all of the volumes off of an active fileserver (i.e. volumes being written) and shut the thing down and moved it to another machine room, brought it back up, and moved the volumes back. The reads and writes continued uninterrupted, no clients had to be restarted, no hung filesystems anywhere, etc...
You probably have a proxy of some sort enabled. Proxy support is broken quite badly (I can't use the store, either). I can share my music to people across the Internet, but I can't listen to music off my wife's computer locally.
Programmers now are more concerned with "productivity" than functionality and efficiency. It's this mind shift that has lead to the bloat of today.
Do you actually do any development on modern computers? I believe we're most concerned with functionality, productivity coming in a very close second. If I can spend ten or twenty minutes writing an app to solve a particular problem, but it uses 256MB or so of RAM and a couple gigs of disk space, I've solved my problem and I can worry about other things.
I've written enough code where libc has too much overhead for my app to work efficiently, I've moved on (well, for the most part).
[...]
Actually what we generally do with computers today isn't much different than 5yrs ago when the largest apps were 30mb. Most new versions of the apps out then add little or no functionality at all but have tripled in size.
I think the things we do are quite a bit different, and larger applications allow us to do this. For my job, I develop a java app that is about 200MB installed and uses a minimum of a half gig of memory. I could constrain it to use a lot less memory without an excessive amount of effort, but it'd be more difficult to develop in, and it'd run more slowly...so I tell ops to buy bigger machines. What does a gig of core cost these days?
An app I do a lot of work in at home is Final Cut Express. There wasn't anything like this I could run five years ago (at least, not that I knew about). NLE is a fairly new thing, and is here because mass storage brings it home. However, I'd like to point this out:
dustinti:/Applications 502% du -sk Final\ Cut\ Express.app 11960 Final Cut Express.app
That's all of it. The app binary itself is under 3.5MB, the rest is plugins (most of which are text files).
Some things need to be big, some things need to be small. Either way, this powerbook has a 60GB disk, and no app has seemed to make much of a dent into it. (Now, my DV files on the other hand...)
Having to learn objective-C is a little bit of a downer, but I guess you can't have everything
I never understood this. Why would someone not want to learn a programming language...at least, one that's known to be a decent balance of speed, power, and flexibility? I rather enjoy learning new programming languages. I learned objective C several years ago on my sparcstation using gcc. It quickly became one of my favorite languages.
But the language isn't the important part here (it rarely is). It's the tools around it. If you put a little effort into objc and you really don't like it, you can use the incredible software development tools with a different language. Also available are java, python, and many other bindings. The java and python bindings are both done very well (although the java is better integrated into IB and PB).
I had a lot of fun learning the frameworks that come with OS X.
As a long time NetBSD/Solaris/IRIX/SunOS/FreeBSD/OpenBSD user, I can tell you the same thing Linux users always told me when I'd comment on some unportable Linux-specific code...
Dude, if you're not planning on sharing the music you buy with the whole world, the restrictions that they *do* put in will NEVER hinder you.
Not true at all. I bought a track at work, but I can't play it at home because I'm unable to authorize my home computer(s) due to a proxy configuration.
I got around this by burning a CD and ripping the audio again. Of course, I had to rip it to mp3 because my slimp3 won't play AAC.
I think the store's a great idea and I intend to use it, but the DRM certainly does hinder the innocent.
Not exactly. Freenet works very much like the WWW. If you get your music from a trusted ``site,'' you'll get good stuff. It's an interesting thing to play with, but since it was eating up all of my bandwidth (and still quite slow), I ended up disabling it at home.
Exactly. I really love the tiPowerbooks. I *want* one. But that doesn't change the fact that when push comes to shove I'll most likely spend ~$1000 instead of $2799 and get 90%+ of the same capability (Mobile Athlon).
No DVD-writer but oh well...
The guy who sits across from me here spent about $2,000 on his powerbook with a DVD burner and thanks me regularly for showing him that things really are better over here.
Re:PNG, GIF and JPEG (slightly off topic)
on
AAC vs. OGG vs. MP3
·
· Score: 1
I've also never seen a GIF that couldn't be made into a smaller PNG.
I've been using both Arla and/or OpenAFS for quite a while now on NetBSD, Solaris, FreeBSD, OS X and Linux. I've run into a *couple* issues with arla in the past, but it's pretty much been working for me.
The only problem I've ever had with OpenAFS was upgrading from OS X 10.0 to 10.1 with it running (which caused me a kernel panic).
At my last job, we relied on an AFS installation that was a combination of transarc and OpenAFS systems. At home, I've still only got one server (IRIX 6.5 with transarc AFS), but I'm thinking seriously about upgrading to a recent release of OpenAFS which has native Kerberos 5 support (too many kerbs at home).
I've got the source to FreeDCS somewhere (including DFS), but have never bothered actually getting it running anywhere. AFS does everything I need.
I disagree with this. Java interfaces really get in the way of reusability. An interface is an abstract class that can't have any implementation. This definition means that for really common things like JDBC's ResultSet, every implementation has to do the exact same thing each time.
I've got an API I've developed for persisting hierarchies of objects transactionally. There are many methods that should have default implementations, but I end up with two or three identical implementations before they're deployed. Sometimes, an object has to be a subclass of SomeThing (not Savable), but it needs to be Savable. I can't subclass SavableImpl and change the one method that needs to be treated differenly. Instead I've got to implement six or so methods (which are basically pasted out of SavableIml).
The Eiffel model is definitely better here. I was an Eiffel programmer before I got into Java and it was a frustrating transition for things like this.
The popularity of a language has little to do with its contributions to the evolution of future languages. Sure, popularity means that more people get to see it and what-not, but many people who write languages tend to know more than the one they just wrote.
To call languages like lisp, smalltalk, objc, etc... ``barely usable'' is to make it clear you've barely used them.
While you may not believe that C is much different from fortran or pascal, it's not derived from either. C's father is a language called B. Algol 60 and 68 also influenced the development of C. I can't speak too much on the history of C++, but it's misleading at best to say that C inspired Objective C. Smalltalk inspired Objective C. C was the default system programming language for quite a while (i.e. people were having to use it anyway), and Brad Cox wanted to add the features of smalltalk to it to make application development easier. Not to say that C didn't play a major part in this development, that'd be stupid, C is clearly the father. Objective C, however, is the mother who stayed at home and took care of it while the father was out working on bigger and more bloated things.
Javascript is in *no way* related to java. Javascript existed before java and shares only a few items of syntax.
So, you never said what Java brought other than popularity. If you design a language that has the collections API of java, you've just modeled a language after smalltalk. If it's got RMI, then I hope you at least get it close to as good as objective C did (which was doing it before java). If you plan on using java as a reference for a reflection API, then please, use it as a bad one, because it was done much better in...I don't know, just to pick something, let's say python. Cross platform UI? I was writing cross-platform perl apps using Tk before I did any UI work in Java (and it was easier, though I find it still yet easier in tcl, which is the only language in which I've actually deployed cross-platform UI)...etc...
That's a boring implementation detail. In C, strings were lists. It performed very well and was consistent with the way we dealt with other arrays, but lists weren't done very well so we had problems.
In Haskell, strings are, again, just lists. "blah" is syntactic sugar that is helpful, but just means a list of characters.
This means that everything you can do with lists, you can do with strings the same way. Don't like capital letters, fine:
Prelude> map toLower "This String Has CAPS" "this string has caps"
I'm a professional java programmer. I also do objective C (before Cocoa), Smalltalk, python, C, scheme, Haskell and a few other languages reguarly. I've managed large perl based projects, written high-performance data processors in Ocaml, written a billing system in C++, a monitoring system mostly in tcl, games in assembler, data processing systems in eiffel, and hell, I even did a CueCat decoder in javascript a while back.
While I've still got quite a bit to learn, I can say you're missing the point if you don't understand what he's saying about java being a dead end on the evolution of languages.
What does java have to offer to evolution? I can't think of much that java as a language has brought us that's new.
Being VM based? It's more acceptable now, but it's not new. OO? It barely does that well at all. Hmm... Libraries. JDBC is ODBC with a touch of sanity. The collections look very much like the collections of Smalltalk finally (which also appear in objective C).
Overall, without doing something revolutionary, I don't see how it can contribute that much to evolution.
Revolutionary languages are languages like lisp (which is a sad story in that it's still capable of doing everything any other language can do, often with less effort), smalltalk (actual OO is a lot more simple than partial OO), Haskell (smaller change, but you can be terse without being cryptic...almost a common language for design and specification), etc...
Many languages have made some contributions to programming in general and will change the way people think about development. Python may not hold the influence of lisp or smalltalk, but it does do some things that future language designers will consider (for example, yield for generators vs. call/cc is an excellent improvement in helping expressing what you mean).
I was doing a bit of security consulting at a hospital once a long time ago and they had a system in place to prevent people from logging in. Unfortunately, I didn't notice it.
It turns out, the security system used/etc/profile to figure out if you were authorized based on an entry in a text file somewhere...all written in bourne shell. It had the appropriate traps in place to prevent ^C and stuff working.
The reason I didn't notice it, however, was that I had requested my account be created using tcsh.
After discovering this, I had them create me a bourne shell account and was still able to bypass the system by hitting ^C soon enough after entering my password that it could break out of the profile before getting to the trap line (helped that it was still paging in at the time).
Don't forget palm's offerings here. My Tungsten T's got some decent abilities.
The web browser it comes with is pretty good combined with either my phone or my powerbook for IP connectivity.
I've yet to use the voice recorder, but I've got a couple of MP3 players that do a decent job. I still carry my iPod around, though (besides having a lot more storage, it's my #1 backup device for the home databases).
I've got several books on there, as well as pictures of the wife and kids.
When I get bored, I do development on it (have a decent editor, scheme development kit, C compiler, pascal compiler, resource editor, stuff like that).
The IMAP reader is quite a bit better than the one that came with my phone (t68i).
Of course, it keeps yet another copy of my phone book database and calendars.
Actually, I have to say the calendar syncing is a bit annoying. Every time I have a meeting or something, I get little windows popping up on my powerbook, noise coming out of the powerbook, noise coming out of the palm, noise coming out of the phone, and noise coming out if the iPod. It makes it really hard to come up with excuses for missing a meeting.
The absolute best home audio player I've found yet is the slimp3. My wife went over there and picked one up for me for Christmas. I think it was $250. The installation was thoroughly impressive (I plugged it in, started the OS X server on my laptop and it had all of my music available, including the iTunes playlists). I actually run the real server on the Solaris machine that has all of my music, though.
It has no buttons or touch screen, which doesn't so much matter to me because I'm rarely anywhere near it when I want to listen to music.
It does have a pretty kick-ass web UI (on the server) and a useful enough remote, though. My wife and I use to fight on the UNIX system that was hooked up to the stereo...see which one of us could get our song next in the queue (I had a pretty primitive setup where there wasn't exactly a queue, but you could play a list of songs or whatever). Now we just hit the web server, queue stuff up, unqueue stuff, etc...
You must be talking about a different pod than what I've used. In the pod I've used, there had to be documentation specifically written in addition (but not directly connected to) every perl class and method you write. If documentation is not specifically written, nobody ever sees it. If you change the code in a late-night hacking session and forget to update the documentation, it can be completely incorrect.
I used Eiffel before moving on to Java...and while I was a little annoyed with how poor javadoc was compared to how I felt eiffel's documentation generator was at the time, it's got very nice. Some methods don't get documentation written for them in haste, but they do get listed in the javadoc. The parameter types, result types, exception types, etc...are all documented exactly as they are specified in the code.
So, out of curiosity, what makes perldoc seem easier to deal with than javadoc to you?
When Windows Attacks:
t t_news=325.
http://www.thaivisa.com/index.php?514&backPID=10&
I've done it a lot on other UNIX systems, but I typically just use the magic keystrokes on macs.
And what right do YOU have to say that a corporate entity (or any other entity for that matter) should be destroyed simply because you don't like it. If they break the law, then fine, go after them then. But since when, in a free society, are people allowed to destroy someone's livelihood simply because they don't agree with it?
Because we liked the radio more when it was illegal for one company to own all of the stations, perhaps?
I'm disturbed at the number of people who are recommending NFS as a distributed filesystem solution. While it might be easy to get going initially, I've had more long-term problems with my NFS server and client interactions than my AFS. To get my NFS clients to behave anything like AFS clients, I had to build and install an automounter that could use NIS config.
You only have to wait for the first day you want to reboot a fileserver without breaking every system on your network or waiting for startup dependencies, etc... One day, I moved all of the volumes off of an active fileserver (i.e. volumes being written) and shut the thing down and moved it to another machine room, brought it back up, and moved the volumes back. The reads and writes continued uninterrupted, no clients had to be restarted, no hung filesystems anywhere, etc...
You probably have a proxy of some sort enabled. Proxy support is broken quite badly (I can't use the store, either). I can share my music to people across the Internet, but I can't listen to music off my wife's computer locally.
Programmers now are more concerned with "productivity" than functionality and efficiency. It's this mind shift that has lead to the bloat of today.
Do you actually do any development on modern computers? I believe we're most concerned with functionality, productivity coming in a very close second. If I can spend ten or twenty minutes writing an app to solve a particular problem, but it uses 256MB or so of RAM and a couple gigs of disk space, I've solved my problem and I can worry about other things.
I've written enough code where libc has too much overhead for my app to work efficiently, I've moved on (well, for the most part).
[...]
Actually what we generally do with computers today isn't much different than 5yrs ago when the largest apps were 30mb. Most new versions of the apps out then add little or no functionality at all but have tripled in size.
I think the things we do are quite a bit different, and larger applications allow us to do this. For my job, I develop a java app that is about 200MB installed and uses a minimum of a half gig of memory. I could constrain it to use a lot less memory without an excessive amount of effort, but it'd be more difficult to develop in, and it'd run more slowly...so I tell ops to buy bigger machines. What does a gig of core cost these days?
An app I do a lot of work in at home is Final Cut Express. There wasn't anything like this I could run five years ago (at least, not that I knew about). NLE is a fairly new thing, and is here because mass storage brings it home. However, I'd like to point this out:
dustinti:/Applications 502% du -sk Final\ Cut\ Express.app
11960 Final Cut Express.app
That's all of it. The app binary itself is under 3.5MB, the rest is plugins (most of which are text files).
Some things need to be big, some things need to be small. Either way, this powerbook has a 60GB disk, and no app has seemed to make much of a dent into it. (Now, my DV files on the other hand...)
You might be on to something...maybe this is why the average lifespan now compared to 200 years ago is so much...longer?
Having to learn objective-C is a little bit of a downer, but I guess you can't have everything
I never understood this. Why would someone not want to learn a programming language...at least, one that's known to be a decent balance of speed, power, and flexibility? I rather enjoy learning new programming languages. I learned objective C several years ago on my sparcstation using gcc. It quickly became one of my favorite languages.
But the language isn't the important part here (it rarely is). It's the tools around it. If you put a little effort into objc and you really don't like it, you can use the incredible software development tools with a different language. Also available are java, python, and many other bindings. The java and python bindings are both done very well (although the java is better integrated into IB and PB).
I had a lot of fun learning the frameworks that come with OS X.
As a long time NetBSD/Solaris/IRIX/SunOS/FreeBSD/OpenBSD user, I can tell you the same thing Linux users always told me when I'd comment on some unportable Linux-specific code...
If you want to use this stuff, get a Mac.
Dude, if you're not planning on sharing the music you buy with the whole world, the restrictions that they *do* put in will NEVER hinder you.
Not true at all. I bought a track at work, but I can't play it at home because I'm unable to authorize my home computer(s) due to a proxy configuration.
I got around this by burning a CD and ripping the audio again. Of course, I had to rip it to mp3 because my slimp3 won't play AAC.
I think the store's a great idea and I intend to use it, but the DRM certainly does hinder the innocent.
Not exactly. Freenet works very much like the WWW. If you get your music from a trusted ``site,'' you'll get good stuff. It's an interesting thing to play with, but since it was eating up all of my bandwidth (and still quite slow), I ended up disabling it at home.
Exactly. I really love the tiPowerbooks. I *want* one. But that doesn't change the fact that when push comes to shove I'll most likely spend ~$1000 instead of $2799 and get 90%+ of the same capability (Mobile Athlon).
No DVD-writer but oh well...
The guy who sits across from me here spent about $2,000 on his powerbook with a DVD burner and thanks me regularly for showing him that things really are better over here.
I've also never seen a GIF that couldn't be made into a smaller PNG.
The guy for which I was considering voting lost, yet my vote would have made no difference whatsoever because he had already won in CA.
If I, along with every other person in CA regardless of voting age, political affiliation, etc... went out and voted for Gore, he still would've lost.
If my vote can't even be made to count, why should I bother to cast it?
I've been using both Arla and/or OpenAFS for quite a while now on NetBSD, Solaris, FreeBSD, OS X and Linux. I've run into a *couple* issues with arla in the past, but it's pretty much been working for me.
The only problem I've ever had with OpenAFS was upgrading from OS X 10.0 to 10.1 with it running (which caused me a kernel panic).
At my last job, we relied on an AFS installation that was a combination of transarc and OpenAFS systems. At home, I've still only got one server (IRIX 6.5 with transarc AFS), but I'm thinking seriously about upgrading to a recent release of OpenAFS which has native Kerberos 5 support (too many kerbs at home).
I've got the source to FreeDCS somewhere (including DFS), but have never bothered actually getting it running anywhere. AFS does everything I need.
I disagree with this. Java interfaces really get in the way of reusability. An interface is an abstract class that can't have any implementation. This definition means that for really common things like JDBC's ResultSet, every implementation has to do the exact same thing each time.
I've got an API I've developed for persisting hierarchies of objects transactionally. There are many methods that should have default implementations, but I end up with two or three identical implementations before they're deployed. Sometimes, an object has to be a subclass of SomeThing (not Savable), but it needs to be Savable. I can't subclass SavableImpl and change the one method that needs to be treated differenly. Instead I've got to implement six or so methods (which are basically pasted out of SavableIml).
The Eiffel model is definitely better here. I was an Eiffel programmer before I got into Java and it was a frustrating transition for things like this.
The popularity of a language has little to do with its contributions to the evolution of future languages. Sure, popularity means that more people get to see it and what-not, but many people who write languages tend to know more than the one they just wrote.
To call languages like lisp, smalltalk, objc, etc... ``barely usable'' is to make it clear you've barely used them.
While you may not believe that C is much different from fortran or pascal, it's not derived from either. C's father is a language called B. Algol 60 and 68 also influenced the development of C. I can't speak too much on the history of C++, but it's misleading at best to say that C inspired Objective C. Smalltalk inspired Objective C. C was the default system programming language for quite a while (i.e. people were having to use it anyway), and Brad Cox wanted to add the features of smalltalk to it to make application development easier. Not to say that C didn't play a major part in this development, that'd be stupid, C is clearly the father. Objective C, however, is the mother who stayed at home and took care of it while the father was out working on bigger and more bloated things.
Javascript is in *no way* related to java. Javascript existed before java and shares only a few items of syntax.
So, you never said what Java brought other than popularity. If you design a language that has the collections API of java, you've just modeled a language after smalltalk. If it's got RMI, then I hope you at least get it close to as good as objective C did (which was doing it before java). If you plan on using java as a reference for a reflection API, then please, use it as a bad one, because it was done much better in...I don't know, just to pick something, let's say python. Cross platform UI? I was writing cross-platform perl apps using Tk before I did any UI work in Java (and it was easier, though I find it still yet easier in tcl, which is the only language in which I've actually deployed cross-platform UI)...etc...
Strings aren't lists, they're structures.
That's a boring implementation detail. In C, strings were lists. It performed very well and was consistent with the way we dealt with other arrays, but lists weren't done very well so we had problems.
In Haskell, strings are, again, just lists. "blah" is syntactic sugar that is helpful, but just means a list of characters.
This means that everything you can do with lists, you can do with strings the same way. Don't like capital letters, fine:
Prelude> map toLower "This String Has CAPS"
"this string has caps"
No special string handling is good.
I'm a professional java programmer. I also do objective C (before Cocoa), Smalltalk, python, C, scheme, Haskell and a few other languages reguarly. I've managed large perl based projects, written high-performance data processors in Ocaml, written a billing system in C++, a monitoring system mostly in tcl, games in assembler, data processing systems in eiffel, and hell, I even did a CueCat decoder in javascript a while back.
While I've still got quite a bit to learn, I can say you're missing the point if you don't understand what he's saying about java being a dead end on the evolution of languages.
What does java have to offer to evolution? I can't think of much that java as a language has brought us that's new.
Being VM based? It's more acceptable now, but it's not new. OO? It barely does that well at all. Hmm... Libraries. JDBC is ODBC with a touch of sanity. The collections look very much like the collections of Smalltalk finally (which also appear in objective C).
Overall, without doing something revolutionary, I don't see how it can contribute that much to evolution.
Revolutionary languages are languages like lisp (which is a sad story in that it's still capable of doing everything any other language can do, often with less effort), smalltalk (actual OO is a lot more simple than partial OO), Haskell (smaller change, but you can be terse without being cryptic...almost a common language for design and specification), etc...
Many languages have made some contributions to programming in general and will change the way people think about development. Python may not hold the influence of lisp or smalltalk, but it does do some things that future language designers will consider (for example, yield for generators vs. call/cc is an excellent improvement in helping expressing what you mean).
I was doing a bit of security consulting at a hospital once a long time ago and they had a system in place to prevent people from logging in. Unfortunately, I didn't notice it.
/etc/profile to figure out if you were authorized based on an entry in a text file somewhere...all written in bourne shell. It had the appropriate traps in place to prevent ^C and stuff working.
It turns out, the security system used
The reason I didn't notice it, however, was that I had requested my account be created using tcsh.
After discovering this, I had them create me a bourne shell account and was still able to bypass the system by hitting ^C soon enough after entering my password that it could break out of the profile before getting to the trap line (helped that it was still paging in at the time).
I did a similar project a while back with postgres.
I downloaded all of the data from yahoo's stock quote thing.
Don't forget palm's offerings here. My Tungsten T's got some decent abilities.
The web browser it comes with is pretty good combined with either my phone or my powerbook for IP connectivity.
I've yet to use the voice recorder, but I've got a couple of MP3 players that do a decent job. I still carry my iPod around, though (besides having a lot more storage, it's my #1 backup device for the home databases).
I've got several books on there, as well as pictures of the wife and kids.
When I get bored, I do development on it (have a decent editor, scheme development kit, C compiler, pascal compiler, resource editor, stuff like that).
The IMAP reader is quite a bit better than the one that came with my phone (t68i).
Of course, it keeps yet another copy of my phone book database and calendars.
Actually, I have to say the calendar syncing is a bit annoying. Every time I have a meeting or something, I get little windows popping up on my powerbook, noise coming out of the powerbook, noise coming out of the palm, noise coming out of the phone, and noise coming out if the iPod. It makes it really hard to come up with excuses for missing a meeting.
The absolute best home audio player I've found yet is the slimp3. My wife went over there and picked one up for me for Christmas. I think it was $250. The installation was thoroughly impressive (I plugged it in, started the OS X server on my laptop and it had all of my music available, including the iTunes playlists). I actually run the real server on the Solaris machine that has all of my music, though.
It has no buttons or touch screen, which doesn't so much matter to me because I'm rarely anywhere near it when I want to listen to music.
It does have a pretty kick-ass web UI (on the server) and a useful enough remote, though. My wife and I use to fight on the UNIX system that was hooked up to the stereo...see which one of us could get our song next in the queue (I had a pretty primitive setup where there wasn't exactly a queue, but you could play a list of songs or whatever). Now we just hit the web server, queue stuff up, unqueue stuff, etc...
http://gnufoo.org/macosx/
:)
cat -a is even cooler than snoop -a.
You must be talking about a different pod than what I've used. In the pod I've used, there had to be documentation specifically written in addition (but not directly connected to) every perl class and method you write. If documentation is not specifically written, nobody ever sees it. If you change the code in a late-night hacking session and forget to update the documentation, it can be completely incorrect.
I used Eiffel before moving on to Java...and while I was a little annoyed with how poor javadoc was compared to how I felt eiffel's documentation generator was at the time, it's got very nice. Some methods don't get documentation written for them in haste, but they do get listed in the javadoc. The parameter types, result types, exception types, etc...are all documented exactly as they are specified in the code.
So, out of curiosity, what makes perldoc seem easier to deal with than javadoc to you?