Slashdot Mirror


Python Programming with the Java Class Libraries

David Kennedy contributes the review below of Richard Hightower's new book Python Programming with the Java Class Libraries, subtitled A Tutorial for Building Web and Enterprise Applications with Jython, writing "This book tries to be suitable for both new and experienced programmers, and suffers from this decision. However, it presents all the central programming concepts clearly and is a decent primer on Jython. It is illustrated with copious code, and covers plenty of advanced topics. Worth reading if you're interesting in the Jython language. Oh, and ignore the sub-title." Python Programming with the Java Class Libraries author Richard Hightower pages 448 publisher Addison-Wesley rating B+ reviewer David Kennedy ISBN 0201616165 summary Solid technical primer on Jython. Probably best for those with some comp. sci. experience.

First Impressions We all know not to judge a book by its cover, but let's be honest; when looking at a bookshelf groaning with Learn ${technology} in 21 Days! and ${technology} for Utter Fools, it can be useful to have a filter to apply.

I have the following book-cover rules:

  • Ignore everything with a cluttered cover. If I find the cover confusing, I doubt the content will be better.
  • Look for an O'Reilly "animal" cover.
  • Look for an "Addison-Wesley Professional Computing Series" cover. These tend to be white, with a blue stripe down the side, usually accented with magenta. C++ programmers especially should have several titles from this excellent series on their shelves.

Given my third rule, I am dismayed to see that Addison-Wesley have chosen to go with a cartoonish cover featuring a luminescent python constricting a brown sack marked "Java Beans." It's not the worst cover art I've ever seen, but I have to admit that I probably wouldn't have noticed it on the shelf. I know this seems like a minor criticism, but it is a crowded market.

Target audience So, who is this book targeted at? The blurb and publicity material make it clear that the volume has a split personality, seeking to satisfy both new programmers and experienced programmers.

I find this an odd decision, and while I can understand how it can be tempting to address both audiences at once, the end result feels more than a little fragmented. Let's have a look at the two cases.

If I was a new programmer, or was merely new to Python, would I choose this book over something more obviously targeted to me like the O'Reilly title, Learning Python (Mark Lutz and David Ascher)? I think I'd go with the O'Reilly title here if I was a novice, I mean, doesn't "building Web and Enterprise Applications" sound a little ambitious? Would a new programmer even understand the sub-title? (I've been working for over four years and I'm still not sure what exactly Enterprise is supposed to mean!)

Similarly, if I was an experienced programmer, perhaps in Java, would I pick up this book to get a handle on Python? Well, I might, but I might be dismayed at the amount of material on simple matters like if statements.

This is a pity, as the book probably works better for an experienced programmer, or at least one who has done some work in other languages. The sidebars are usually interesting and technically dense, delivering maximum information in limited space.

I think my main problem with the decision to deliberately split the readership into two target audiences is that I've seen it done better. For example, as mentioned above, Learning Python is probably the main competing title. It too addresses both the novice and experienced programmers, but does so in a much more transparent way. Rather than prefixing sections with "Advanced topic," thus alienating some readers, the more natural box-out approach is used. This gives a much less schizophrenic feel to the text, with the reader able to read the box-outs as and when they feel interested and able to understand the material. When reading Python Programming with ..., I sometimes felt like I was being directed in what to read.

I've been quite negative about this split up to this point, and would like to emphasize that the latter part of the book doesn't really suffer from this problem. Once assured that the new programmer has the basics under his belt, the text assumes a much more natural flow, with the standard optional box-outs. However, I should say that some of the material in the later chapters is non-trivial, and the smoother presentation of the more difficult material leads me to suggest that the author would have been better served by targeting the experienced programmer alone.

Let's look at the publicity blurb and contents in more detail:

" The goal of this 'first of its kind' book is to teach new programmers some of the basics of Python programming. Using skill-based exercises and interactive programming sessions, it helps new programmers develop an understanding of concepts and practical techniques. For experienced programmers, the book demonstrates Python's breadth of capabilities and demonstrates the ways that Python interfaces with the Java APIs for professional application development.

Topics include:

  • Fundamental programming concepts, including statements, expressions, interpreters, and compilers.
  • Python basics, including operators, string formatting, namespaces, classes, errors, and exceptions.
  • Object-oriented programming concepts.
  • File input/output.
  • Python's intrinsic functions.
  • Formatting, parsing, and manipulating strings.
  • Interfacing with the Java APIs and working with Java Streams.
  • Using Python and Java Swing to create GUIs.
  • Working with SQL and JDBC.
  • Python and Java applets."

This is a fair representation of the contents. As you can see the poor new programmer is soon expected to work with some non-trivial examples, with the streaming, database and applet sections all being welcome. The material presented particularly benefits from the fairly long example applications.

In addition, I feel that the appendices are interesting and worthy of mention.

  • Installing Jython on Windows
  • Installing Jython on Linux.

    Both installation guides are comprehensive and ensure that installation of the language itself shouldn't present any barrier to the novice, or those who are used to having a sysadmin install their work environment.

  • The Power of Scripting.

    This is a nice section discussing the blurry distinction between programming and scripting languages, why you might want to script and use Java at the same time, what alternative languages are out there, and why the author feels Jython is interesting and useful.

  • Java and Python: A Comparison

    This is an interesting section driving home why Jython is a nice alternative to Java for some applications. It presents some mini-applications, weighted towards Jython's end of the toolbox. They are a small GUI application, a statistics application and some string parsing.

  • Regular Expressions.

    A decent workshop on Jython's regular expression facilities.

Oh Editor, where art thou?

I know that having a few mistakes is unavoidable, but there are a few howlers that slipped past the editing process. I particularly dislike this in an introductory book as it causes confusion in the reader and impedes his absorption of the material.

Some of the errors are typographical, and more than a few involve tabbing in code samples. Normally this would be merely irritating, but forgivable. Unfortunately, the significance of tabbing in Python makes this a much bigger problem for the novice reader!

There are also some properly editorial errors. As an example, the first time we see a user-defined function is in Chapter 4, on control flow. One of the canonical examples is wheeled out, a function to return (min, max, range) given a sequence of numbers.

This example is a nice one and is a good indication of why I generally like this book -- it has the user working with collections and mixed types right from the start, doesn't make a big deal out of defining a function, and includes a nice little box-out on efficiency. It also jumps right to a discussion on intrinsic operations and making sure to use them as they're more efficient and well-tested. It also blows up right after that, confusing the name of the argument list with the intrinsic function name and the name of the rewritten function. I wasn't able to untangle the paragraph until I saw the code. Bad editor, no treats!

So, is this book any good? Yes.

Python Programming with the Java Class Libraries is a well above average introduction to using Jython, best suited to interested readers already possessing some Java experience and a decent computer science background. It doesn't hesitate to tackle more complex topics, often with significant amounts of code (good thing), and the author demonstrates a wide knowledge of the field with many interesting box-outs often leading to further reading.

Readers completely new to the programming field will still find this book useful, but may well be intimidated by the advanced material scattered all over the first few chapters and the steep learning curve.

If that is the case, I would recommend that they stick with something like Learning Python should they wish to learn Python specifically, or any of the many other introductory texts on the market if they don't.

Those new to the field who choose to stick with this book will find that there is sufficient advanced material to ensure that the book remains valuable to them for some time to come.

Disclaimer There are two things I'd like to make clear:
  • I did not pay for this book. I was given a review copy by the nice people at Addison-Wesley publishers. The author put my name on his list following a review of his previous title. This was decent of him as my previous review had some negative comments.
  • I'm not a experienced Python developer. My background is C++ and J2EE. A more experienced Python user may have additional issues with the coding style presented. I did not feel particularly able to judge beyond the basics.

You can purchase Python Programming with the Java Class Libraries from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

64 comments

  1. It's smart to gear the book towards beginners by krog · · Score: 3, Informative

    ...because few people have programmed in Python enough to become comfortable with it. Unlike technical books for C or Perl or Fortran, in which most of the audience may be assumed to be 95% comfortable in the language, books for fringe programming languages must be a little more down-to-earth.

    1. Re:It's smart to gear the book towards beginners by Anonymous Coward · · Score: 1, Informative

      Fringe programming language? Python? Puh-leeze. Python has the cleanest, most simple syntax of any full featured language I've come across. If you know any of the languages you mention, you shouldn't have any problem understanding 95% of python. A few things like list comprehension or some of the functional programming constructs may be strange for complete newbies or those who haven't seen things like that in other languages, but on the whole, the language is definitely not difficult. In fact, there's a little saying that python is executable pseudocode. It's true.

    2. Re:It's smart to gear the book towards beginners by Anonymous Coward · · Score: 0

      Quote:
      Worth reading if you're interesting in the Jython language.
      I believe it should read:
      Worth reading if you're interested in the Jython language.
      Hmmm, I think I will get this book... I am pretty interesting when I wear my Jython language [costume]
      Ok, maybe Jython is just a gnarly language that will make you interesting...
      Ok, I'll stop now...

    3. Re:It's smart to gear the book towards beginners by Anonymous Coward · · Score: 0

      I don't think it's fair to call python a fringe language. There are a LOT of us out there that program in it every day for a living!

    4. Re:It's smart to gear the book towards beginners by Anonymous Coward · · Score: 0
      I don't think it's fair to call python a fringe language. There are a LOT of us out there that program in it every day for a living!

      Yeah, I do, but let me tell you, there are a hell of a lot MORE people who still have to suffer using C++ or Java. Python is a fringe language. It's also very clean and (getting) more truely OO than the more mainstream (so-called) OO languages. So it might not stay fringe forever, but right now, you and me are among a small minority of coders.

  2. I can't ignore the subtitle! by teamhasnoi · · Score: 0, Offtopic

    They're in my hair! They're in my hair!

  3. Just a second now... by _14k4 · · Score: 2, Funny

    Wait. You mean that there are people still using Python? I thought Parrot was supposed to be the be-all-end-all? :)

    1. Re:Just a second now... by Anonymous Coward · · Score: 0

      Parrot is great if you like writing bytecode without subroutines.

    2. Re:Just a second now... by NASAKnight · · Score: 2
      First of all, Parrot is still under development, and a copy of the latest version can be obtained here. Also, you don't have to write bytecode (and I don't know of anyone who actually DOES write bytecode). There is a fully functional assembler for Parrot (written in Perl, so you do need Perl to run it), and yes, there ARE subroutines. There are corrutines, continuations, and even ability for a call-cc method. All these are BUILT-IN, and require no work arounds to use. Albeit, they are not fully working yet, as Parrot is still under development.

      For more information about Parrot, go to dev.perl.org/perl6, or join the perl6-internals mailing list.

      Stephen

      --
      Fault loves the past, worry loves the future, but content enjoys the present.
    3. Re:Just a second now... by WetCat · · Score: 1

      Some people (as me) do not like Perl...
      for example for its global variables and weird (IMHO)
      syntax.

    4. Re:Just a second now... by Anonymous Coward · · Score: 0

      You misspelled Ruby.

    5. Re:Just a second now... by essiescreet · · Score: 3, Informative

      We use python in an application that does database syncronization, and it's a godsend. Now, we just distribue the java code to people, and if they want some specail, fancy translation done, just write a python script. This relieves us for having tons of one-of java code that we have to manage on top of bug fixes. This means that we develop one application that we have to control the source of, customize the hell of it with jython, and only have to release one verision to all of our customers. That's powerful.

    6. Re:Just a second now... by Anonymous Coward · · Score: 0

      Why do Java weenies have such horrible spelling and grammar?

    7. Re:Just a second now... by Anonymous Coward · · Score: 0

      heh you called a nasa gut a weenie. nice try MS lan boy

    8. Re:Just a second now... by Anonymous Coward · · Score: 0

      wtf is a nasa gut? or an MS lan boy?

    9. Re:Just a second now... by Anonymous Coward · · Score: 0

      You misspelled Smalltalk.

  4. Java + Python by SpanishInquisition · · Score: 0, Flamebait

    = Bloated + Useless

    --
    Je t'aime Stéphanie
  5. Bad editor, no treats! by wiredog · · Score: 2
    That's a problem with, oh, I don't know, 99% of the programming titles (O'Reilly excepted) out there.

    Btw, there is an O'Reilly book, Jython Essentials, on the market.

    1. Re:Bad editor, no treats! by Anonymous Coward · · Score: 0

      >>(O'Reilly excepted)

      Except for the Linux Network Administrator's Guide from them. That is biggest piece of crap ever wiped on paper. Learned absolutley ZERO from it.

      Their "Apache: Definitive Guide" also blows chunks. Most of their Java books are pretty worthless as well. My experience with O'Reilly has been about 60/40 (good/bad).

    2. Re:Bad editor, no treats! by khuber · · Score: 1
      Yo mama! Addison Wesley publishes far higher quality and content books than O'Reilly. I just got Performance Solutions by Smith & Williams and it is excellent. Performance Solutions at amazon

      -Kevin

    3. Re:Bad editor, no treats! by Anonymous Coward · · Score: 0
      >>(O'Reilly excepted) Except for the Linux Network Administrator's Guide from them.

      Or, topically, their Programming Python, by Mark Lutz in the first edition, (aparently things have improved with the second.) The most useless book ORA ever put out, just check out the Table of Contents ... Just try to find something, like ... how do I open a file. Only the Appendix E A Python Tutorial presents material in a systematic (findable) way.

      Python lacks an equivalent to Perl's Camel book, and Programming Python misleadingly looked like it was going to provide that, it doesn't.

      Lutz' other book, Learning Python, while dated (Python has changed a lot since 1999), is much better.

  6. How to create mass confusion by Anonymous Coward · · Score: 0
    Combine the syntax of one language with the libraries of another.

    I would completely ban this type of stuff on any project I worked on. Does that sound arbitrary? Yes, but put this type of code aside and try to figure it out in a year. Good luck!

  7. It seems to me by Anonymous Coward · · Score: 5, Funny

    that Python and Java might not be languages that members of the moral community want to be using. Python is an open source language, which means that every time you use it, you are denying revenue to a company that markets other languages. This, in light of 9/11, is pretty sick.

    Java, on the other hand, is a proprietary language, but there are several free VMs and SDKs available, which puts it pretty much on the same page as Python. Also, Java is made by Sun, which is a competitor to Microsoft. MS is a big portion of our economy. Do you want the baby boomers to be able to retire in style, or do you want them to live in squalor and eat out of garbage cans? Because if people keep using Java and Python, that is exactly what will happen.

    There are technologies such as ASP and C# and .NET available. Please use them.

    1. Re:It seems to me by kilimangaro · · Score: 0, Offtopic

      Your economy is bloated by BIG FAT HARDCORE CAPITALIST PIG !!! The more they grow bigger, the more they want,... and the more they grow bigger... so please shut up ! It's no evil, if they loose some revenue, it will leave some more for the small ones.

      --
      "Insanity in individuals is something rare, but in groups, parties, nations, and epochs it is the rule." - Nietzsche
    2. Re:It seems to me by GoodmansonD · · Score: 1

      I'm hoping this has a Score:4 for good rich sarcasm.

      If not, what economics principles painted your world so gloomy?

    3. Re:It seems to me by Anonymous Coward · · Score: 0

      Dude, it's a joke. Take off the blinders!

    4. Re:It seems to me by Anonymous Coward · · Score: 0

      Actually I do want Boomers to live in squalor for the state they have left the world. That generation is the source of so many of societies ills--from SUV driving, cell phone yakking soccer moms to Hillary Clinton's big, fat oliphant calves.

      Someone put them out of their misery before they infect EVERYONE on the planet.

  8. Java programmers should try another one. by BigJimSlade · · Score: 5, Insightful

    I just picked up "Jython Essentials" from O'Reilly. It does a good job from the perspective that you already know some Java, and want to learn the basics of Python and how to integrate your Java classes.


    As for the language itself, I think it would be extremely usefull for rapid prototyping of UIs if you're working with Swing (and aren't already using a GUI builder). It's nice to have the interactive interpreter so you can see your changes right away.

  9. Cover rules by buzzdecafe · · Score: 1
    I have the following book-cover rules: . . .


    Proving once again that you can judge a book by its cover.


    For the most part, I use similar "cover rules" when book-shopping. It is possible to get burned by a sub-par O'Reilly book, but they are for the most part excellent.

    1. Re:Cover rules by Anonymous Coward · · Score: 0

      I found his cover rules to be very constricting.

  10. Will it sell in Waterloo? by dpilot · · Score: 3, Funny

    I wonder how many copies of this book will sell at the University of Waterloo, in Canda?

    See "Microsoft Invests in the University of Waterloo": http://slashdot.org/article.pl?sid=02/08/14/202925 5&mode=nested&tid=146

    --
    The living have better things to do than to continue hating the dead.
    1. Re:Will it sell in Waterloo? by Xenographic · · Score: 1

      I wonder what they'd think if we started refering to that place as "Microsoft's Waterloo"? ... It's a nice thought, anyhow :]

  11. Cutting Peaches by Anonymous Coward · · Score: 0

    And I thought no one was paying attention.
    She's hot, though. Isn't she?

  12. My thoughts on it by Anonymous Coward · · Score: 0

    Characterized by ease of use, richness of expression, and concise syntax, Python has remained a premier programming language for more than a decade, and is used by novices and professionals alike. In particular, its close relationship to Java(TM) makes the two languages, when used in combination, ideal for Web and distributed enterprise application development.This tutorial begins with coverage of some of the basics of Python programming. Using plenty of skill-building exercises and interactive programming sessions, the book will help those new to programming develop an understanding of concepts and practical techniques. For experienced programmers, the book demonstrates Python's breadth of capabilities and shows the ways that Python interfaces with the Java APIs for professional application development.Python Programming with the Java(TM) Class Libraries: A Tutorial for Building Web and Enterprise Applications covers important topics such as: Fundamental programming concepts, including statements, expressions, interpreters, and compilersPython basics, including operators, string formatting, namespaces, classes, errors, and exceptionsObject-oriented programming conceptsFile input/outputPython's intrinsic functionsFormatting, parsing, and manipulating stringsInterfacing with the Java APIs and working with Java StreamsUsing Python and Java Swing to create GUIsWorking with SQL and JDBC(TM)Python and Java appletsIn addition, the book contains instructions for downloading and installing the Python language and the JDK. Terminology, definitions, explanations, and numerous code samples make this book a useful learning experience. Whether you are a sophisticated computer user new to programming or a serious application developer, Python Programming with the Java(TM) Class Libraries will give you insight into the power of Python and the know-how to put it to work.

  13. Syntax lad, Syntax by Anonymous Coward · · Score: 0

    Why are you assigning the value of Waste of bandwidth to Parent Post? That just doesn't make sense in this context.

    Parent Post == Waste of bandwidth, well now that makes sense, because we're comparing Waste of bandwidth to the Parent Post! That doesn't mean it will be true, though.

    You're a Python "coder" though, arn't you?

    Inthat case
    I'll fuck around
    with the WhiteSpace
    to make you feel
    more at home!

    Stupid fucking language. Learn something useful, like C, C++, Java, or even (God forbid) C#. At least you'll have some sort of usable skill if you can code C#.

    1. Re:Syntax lad, Syntax by Anonymous Coward · · Score: 0

      You sir, are a simpleton, arn't [sic] you?

    2. Re:Syntax lad, Syntax by Anonymous Coward · · Score: 0
      Stupid fucking language. Learn something useful, like C, C++, Java, or even (God forbid) C#.

      C is a great language, no doubt. IMHO K&R is cleaner than ANSI, but anyway, where you need that level of control, use C.

      C++ - terrible hack to make C an OO language. Not really an OO language and lacking the clarity and elegance of C

      Java - much loved by C++ refugees, but this says more about C++ than java. People coming from serious OO languages (smalltalk), on the other hand see java for the horrendously deformed bastard this is. Massive object sizes, and such throw-backs as built-in data types make pure OO programming impossible.

      C# -- God Forbid!

      Python - clean, elegant and fairly OO. While I have no beef with dynamic typing, the inability to hide attributes (incl. methods) runs counter to one of the main OO principles. On the other hand, the move away from built-in types, the new (in Python 2.2) ability to subclass what were built-ins etc, is making this something resembling a true OO language. Rapid developement as Python really is like executable pseudo-code, and (mostly) holds true to the 'principle of least surprise.'

  14. Trust me. I know what I'm doing. by kubrick · · Score: 3, Funny

    I think I'd go with the O'Reilly title here if I was a novice, I mean, doesn't "building Web and Enterprise Applications" sound a little ambitious? Would a new programmer even understand the sub-title? (I've been working for over four years and I'm still not sure what exactly Enterprise is supposed to mean!)

    It means, of course, that you are developing software to power the computers on the Starship Enterprise. This is a very large programming task, which is why we are giving ourselves hundreds of years lead time.

    --
    deus does not exist but if he does
    1. Re:Trust me. I know what I'm doing. by Anonymous Coward · · Score: 0

      Enterprise = server-side with as much overhead as possible ($un and M$ are the 2 official overweighted solutions providers).

    2. Re:Trust me. I know what I'm doing. by kubrick · · Score: 1

      Hey, how else are we going to encourage sales of hardware and keep the industry on its feet? :)

      --
      deus does not exist but if he does
  15. Shared class libraries by IamTheRealMike · · Score: 5, Insightful
    I'd love to see the open source langauges get together and start sharing class libraries. I'm secretly hoping that Parrot will make this possible, but how do you consolidate all the Python/Perl/PHP/Ruby code libraries together?

    One of the best things about .NET is that there is 1 class library, so you don't get people constantly reinventing the wheel in language X. I think it's actually pretty ironic that despite virtually all the code in Linux being open, we still lack a good way of sharing that code between languages other than binding it to C and then to other languages manually (yuck!).

  16. Interesting by Anonymous Coward · · Score: 0

    I'll have to pick up a copy of this. I'm particularly intrigued by the "Power of Scripting" section.

    Thanks for the review!

  17. Binary compatibility - Re:Shared class libraries by Malc · · Score: 2, Insightful

    If you consider C++, then there are compatibility problems even within languages. People complain extensively about MSFT, but one thing they have been very good is providing the a fairly practical solution to binary compatibility. You mention .NET, but that is of course in some ways an evolution from COM. There are equivalent and arguably better solutions under Linux, but really, how often do people talk about developing components in CORBA, etc?

  18. JVM vs CLR by Anonymous Coward · · Score: 0

    I thought Microsoft invented .NET and it was the only way to have multiple languages work with a common runtime.... hmmmmm...

    Does Bill know about this?

  19. Trying book examples by jjomd · · Score: 0

    If you are not only reading but also working your way through the book examples you might prefer JinSitu over the basic Jython shell.

  20. its my birthday! here is my wishlist by Anonymous Coward · · Score: 0
    these are the languages I want to talk to each other (use each others class libraries and effortlessly message each other):
    • Java
    • Python
    • C++
    • PHP
    Perhaps Perl and frightenly maybe .NET if some stuff is brought in against my wishes. Integration is a bitch when every new 'interoperating and integration friendly' language just turns out to be one more set of crap I have to provide slow ass, security nightmarish and error prone wrappers for.
  21. Next book in the series Announced by Anonymous Coward · · Score: 0

    Programming perl with Visual C++

  22. now THATS some abstraction by Anonymous Coward · · Score: 0
    ya'll have got a rather daunting task there. Since it seems to me that any problem on the Enterprise can be fixed by simply rerouting power conduits, ejecting some plasma here and there and reconfiguring the matrix of tachyon-positron converters, yadda yadda yadda.

    Now don't get me wrong... I have seen some miracles performed by a cunning mechanic that can make a truck or car do things never imagined for that particular model and engine, and with only a small bit of conversion and retooling. However, if this was Star Trek I guess I would have seen (at least once a week) someone configure their cars to fly, recharge themselves, increase a/c or heater capacity by 250%, decrease fuel consumption about 40% and of course enable the computer to now properly process 3d rendering calls so you could have a rotatable model of that deer you are avoiding while driving. All this with only a wrench, hammer, screw driver and the fusebox.

    I wonder why it is that on Star Trek, these AMAZINGLY new things are invented every episode yet 1) are never used again and 2) never causes anyone to do more research into what else can be invented in a such a quick and easy manner. It would seem that if the rate holds up for just one ship like the Enterprise, that massive leaps of innovation happen to a point that technology turnover is a monthly occurance.

  23. Didn't your mom ever teach you... by Joe+Jordan · · Score: 1

    Ignore everything with a cluttered cover. If I find the cover confusing, I doubt the content will be better.

    Don't judge a book by its cover! You can still learn much from a book where the cover artist got a little overzealous.

  24. strangely by squirrel_mop · · Score: 2, Interesting

    This is going to be very useful for me, and it would probably be a valuable guide for someone learning how to program too, having both a more simplistic language moving onto a more compilcated one. So covering many programming topics. Strangely enough, last night I had just downloaded and started using jython, but was discouraged a lot by the poor documentation. Now I wake up and see this. This wouldn't be the first time I've thought of something and then seen it on slashdot the next day.

  25. It's all about Retirement by Bodrius · · Score: 3, Funny

    It's all about Patent Law, IP contracts and the DMCA.

    Sure, science could advance dramatically in days if the research is followed up, but what you don't know is that after centuries of abuse every Engineer in Star Fleet has a clause in his contract that protects his IP rights to every invention made outside a Research Facility.

    Did you think Scotty was putting up with Kirk and a ship that's about to explode every 3 seconds for fun?

    Right where you see him, the fat bastard has a very aggresive Patent Lawyer charging royalties from every unauthorized use of his expanding list of inventions.

    This also means that every invention is created only in emergencies and never used again, in fear that the Enterprise will be sued for reverse-engineering some forgotten idea and violating the DMCA.

    --
    Freedom is the freedom to say 2+2=4, everything else follows...
  26. because by Anonymous Coward · · Score: 0

    CORBA sucks; this is not really a troll.