Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Java Programming

Does an Open Java Really Matter? 766

snydeq writes "Fatal Exception's Neil McAllister questions the relevance of the recent opening of Java given the wealth of options open source developers enjoy today. Sure, as the first full-blooded Java implementation available under a 100 percent Free Software license, RedHat's IcedTea pushes aside open source objections to developing in Java. Yet, McAllister asks, if Java really were released today, brand-new, would it be a tool you'd choose? 'The problem, as I see it, is twofold,' he writes. 'First, as the Java platform has matured, it has become incredibly complex. Today it's possible to do anything with Java, but no one developer can do everything — there simply aren't enough hours in the day to learn it all. Second, and most important, even as Java has stretched outward to embrace more concepts and technologies — adding APIs and language features as it goes — newer, more lightweight tools have appeared that do most of what Java aims to do. And they often do it better.'" Since Java itself never mattered except to sell books, I still don't see why opening it matters.
This discussion has been archived. No new comments can be posted.

Does an Open Java Really Matter?

Comments Filter:
  • by 3p1ph4ny ( 835701 ) on Thursday June 26, 2008 @12:57PM (#23951129) Homepage

    A "cludgey" app can be written in every language, Java is no exception.

    Without getting in to a bunch of holy war things, here are some of the things that Slashdotters may like about Java:

    1. You can get paid to write in it. A lot of us (myself included) are software developers who write stuff in primarily in Java. Sure, I know other languages like Ruby, but it's nowhere near as ubiquitous as Java. This makes employers like Java.

    2. It's mature. It's been around for a long time, and the libraries are mostly stable and bug free. This is not true for some other languages. Also, the APIs for Java are huge and support everything, and the documentation is good.

    3. It's fast(er). Older Java GUI stuff was not fast, and it gave people the impression that all of Java is not fast. Well, Java 1.6 is fast.

    4. It's cross platform. This isn't a big deal for me so much, but it might be for some people.

  • by patio11 ( 857072 ) on Thursday June 26, 2008 @01:01PM (#23951223)

    >>
    Since Java itself never mattered except to sell books, I still don't see why opening it matters.
    >>

    The day job could buy an awful lot of books with the $X0 million worth of Big Freaking Enterprise Apps we have written in (mostly) Java. Its like any other tool: there are some places where it makes excellent sense, some where it does not, and I have my own personal tastes for when I would use it or not. (Cards on the table: I do proprietary desktop Java development in my spare time and BFEwebA at the day job, but have been mixing in a bit of Rails programming lately.)

    At the end of the day, what matters is "Does Java help us make our customers happy?" It does. Despite how skull-crushingly boring writing CRUD apps can be, for our customers having the things available and working means the difference kissing their kids at 6 PM or being stuck at the office at 2 AM wondering if they will still have a job in 5 hours.

    So how does opening Java matter? Well, even in an extraordinarily mature platform, you'll sometimes find weird, off the wall, how the heck did that happen issues with particular combinations of software. Enterprise Computing = combinitorially explosive numbers of possible adverse reactions. We've got at least 150 packages in the system, many of which have to interoperate with code which has not seen the light of day since the mid-90s.

    You'd think the odds of actually having to touch stuff deep in the bowels of the infrastructure are pretty low, but believe it or not we have our own little fork of, e.g, Tomcat 4.1 in production use *to this day* to get around a particular classloader issue that got fixed in later releases. (We can't upgrade that particular customer at the moment. Its a long story and if you've ever worked in industry you've heard the basic gist before.) Java being open means there is one less place for issues to be totally inaccessible should we need to work around them.

  • by Just Some Guy ( 3352 ) <kirk+slashdot@strauser.com> on Thursday June 26, 2008 @01:02PM (#23951245) Homepage Journal

    We're a Python shop. It does everything Java does that we need it to do, but is actually fun to write. If Python disappeared tomorrow, though, Java would be a no-brainer. It's cross-platform and wouldn't leave us beholden to the good wishes of Redmond.

  • Re:Use debian? (Score:5, Interesting)

    by InlawBiker ( 1124825 ) on Thursday June 26, 2008 @01:03PM (#23951263)

    That is a good point. LAMP became a one-checkbox install because it's FOSS. LAMJ could easily have been. Except it's not a very catchy acronym.

    Personally I'd like to see LAPJ: Linux, Apache, Postgres, Java.

    Anyway, love it or hate it, Java has reached the critical mass to be around for a long time.

  • by BlueZombie ( 913382 ) on Thursday June 26, 2008 @01:06PM (#23951315)
    Gosh, all of us .Net developers must be mass hallucinating.
  • by fm6 ( 162816 ) on Thursday June 26, 2008 @01:16PM (#23951511) Homepage Journal

    Yeah, that was a really lame comment. Does Rob think the programming world consists of Perl hackers like him? Thousands of programmers make a living writing Java code.

    BTW Rob, when is the new browsing system going to handle scores correctly? I just started writing a response to a Score 0 AC post, something I never do intentionally. Maybe if you rewrote Slashdot in Java...

    But here's why opening Java matters. When people talk about "opening Java" they really mean "opening Sun's implementation of Java". There have always been open-source implementations of Java, but they've had a hard time keeping up with the latest spec. So if you're distributing open-source software that depends on Java, you really want Sun's Java implementation in the bundle.

  • MOD PARENT UP (Score:1, Interesting)

    by mkcmkc ( 197982 ) on Thursday June 26, 2008 @01:16PM (#23951517)

    That's where I'm at as well. For the 50/80/90/100% (usually 100%) of a program for which performance is not critical, Python just kills Java with respect to other factors. And for the 50/20/10% of the program for which performance is critical, Java is just too damn slow (even idiomatic C++ is often too slow). Plus, Java doesn't like to be called from other languages--it really wants to be "boss".


    I've used Java from one of the first alpha releases, but it just hasn't panned out...

  • by Anonymous Coward on Thursday June 26, 2008 @01:16PM (#23951519)

    It's fast(er). Older Java GUI stuff was not fast, and it gave people the impression that all of Java is not fast. Well, Java 1.6 is fast.

    That is the first time I've seen that admitted on /.! It's become so fashionable for everyone to claim that Java is slow while espousing the virtues of whatever else will give them the most geek cred.
  • by icknay ( 96963 ) on Thursday June 26, 2008 @01:20PM (#23951571)

    Java has its problems, but it's actually a great stable platform. I think people carp about Java's flaws because it is so popular, taking shots at the leader. In reality, Java is a huge and boring but effective ecosystem if you want to deliver a piece of software and have it just work.

    It's not sexy, but jeez on linux, windows, and Mac, I've built java code and moved the .jars all all over the place, and darned if it doesn't do what it's supposed to, like an old truck that just works carts around all sorts of work.

    With Java being open, we all benefit from its increased spread as an open and reliable platform -- like C. Depending on Java looked a more iffy when it was so tied to Sun. Your source code is such an expensive investment, you don't want to take weird risks (cough .net cough). With Java open ... well now it looks like a very safe, neutral choice.

    You can write C code, and since it's open, you know your code would work all over. Java has a future that way too now.

    C is still great for its niche, but (flame on) Java delivers 10x more capability in its libraries. C is a creature of the 1970's, so you don't get so much (I *love* C, but get a lot more done in Java). Also, the optimizations in HotSpot are awesome, making languages which run on the JVM look like the future. I hear if you want to see Java with the cruft stripped away, check out Scala.

  • by D Ninja ( 825055 ) on Thursday June 26, 2008 @01:21PM (#23951577)

    Really? I've been programming for corporate IT for 13+ years and I've only played with Java. I've never required it before interviewing other programmers, either.
    ...which means...absolutely nothing. The fact that you've been in IT for 13+ years (arguably when Java was just starting) means your skill set is in other languages. Thus, your resume would reflect that. Thus, your job searches would reflect that.


    Thus, you have never needed Java. However, for developers who are new to the industry, it is difficult to avoid Java.

  • by $1uck ( 710826 ) on Thursday June 26, 2008 @01:34PM (#23951761)
    and I'm not an author.
  • A lot of the biggest kluges in early Java have fallen out of favor:

    1. Struts 1.x is huge, but it isn't being used as much on new projects. Newer frameworks like Tapestry, Wicket, Struts 2/Webwork, and Spring are far easier to setup and use, more flexible, or both.
    2. EJB2 was an overengineered mess. EJB3 is viewed as far superior, and many major sites aren't bothering with EJB at all.
    3. A lot of Java tools like Hibernate have moved from checked exceptions (which must be caught or declared to be thrown in the method signature) to runtime exceptions (which do not need to be caught).

    The language definitely has warts. But the common open source (and for that matter, commercial) tools are learning lessons in ease of setup and configuration from Ruby, Python, Perl, Ruby on Rails, Zope, and so forth. (I used web applications as the example domain because that's what I know a little about. I understand similar enhancements are happening elsewhere.)

    On the other hand, the language standard library is big enough and has enough corner cases that the learning curve is enormous.
  • by david.emery ( 127135 ) on Thursday June 26, 2008 @01:38PM (#23951827)

    I claim that Ada83 is better than C, Ada95 and Eiffel are better than C++ and Ada05 is better than Java or C#. But that's just my opinion.

      What is very clear is that the design philosophies of Ada (focusing on 'programming in the large') or Eiffel (focusing on 'correctness by contract conformance') have been lost. Both languages, along with others (dating back to COBOL) is on readability over writeability. (Programs get read much more often than they get written.) Python in some respects is the exception, as a language that doesn't start with C as the font of all syntax, and provides more emphasis on readability.

    And many of us work on things that can't rely on high-powered computers connected to high powered networks where everything is a "web service", and the consequence of a software failure is more than "oops..."

    dave

  • by Z00L00K ( 682162 ) on Thursday June 26, 2008 @01:49PM (#23952057) Homepage Journal
    Compared to a lot of other languages the typing in Java is far better. In JavaScript the variables aren't typed at all and you can run into all kind of errors. Python reiterates all the classic programming problems of Basic. C is in itself not very type-safe but you can get a few compiler warnings about type mismatches.

    So you better have to explain yourself what's really wrong with the type handling in Java. Maybe you program in some more obscure language?

  • by AmaDaden ( 794446 ) on Thursday June 26, 2008 @02:36PM (#23953307)
    Java has be come the most popular language(http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html [tiobe.com]). CmdrTaco however has hated Java since the summer of 1997 "My hatred for Java has never died since that moment." (http://meta.slashdot.org/article.pl?sid=07/10/02/1553218 [slashdot.org]). Sun on the other hand is trying to clean up their act(http://slashdot.org/article.pl?sid=08/06/25/0236208 [slashdot.org]).

    It's been nearly 11 YEARS. I think it's time you bury the hatchet.
  • Amen! (Score:3, Interesting)

    by Weaselmancer ( 533834 ) on Thursday June 26, 2008 @02:45PM (#23953573)

    You can get paid to write in it.

    Can I get an amen?

    It doesn't matter how super-zappo your favorite language is if it doesn't put food on the table. Your likes and dislikes don't figure into it when it comes to a job. See Maslow's hierarchy of needs for further clarification.

    Go to Careerbuilder and look up Java jobs. And while you're there look up .NET (which is pretty much Microsoft's Java). The jobs run 60/40 in favor of .NET. But there's dozens of them. High paying, too.

    I'm currently studying for my Java certification. Why? Because I love Java?

    Nope. Because it's good to have something to fall back on. I'll get a .NET cert too, as icky as that sounds. I have a family and I have to think of them first.

  • by Dolda2000 ( 759023 ) <fredrik@dolda200 0 . c om> on Thursday June 26, 2008 @03:13PM (#23954289) Homepage

    Ignoring the parent troll for a moment, can someone please show an example of where multiple implementation inheritance is superior (not just equivalent) to multiple interfaces and the composition design pattern?

    If you're going to say that, you might as well go as far as saying that inheritance itself has no merit when Java has its interfaces instead. And I'd argue that you'd have a point.

    After all, inheritance is just a convenient way of taking functions from some other implementation of an interface and making your own implementation use those same functions. In that regard multiple inheritance makes sense, since you'd be able to pull in code from all over the place easily. But, one might argue that it should be possible (and easy) to do that more explicitly than using inheritance.

  • by idontgno ( 624372 ) on Thursday June 26, 2008 @03:55PM (#23955369) Journal

    I think VBA is in wider use then Java.

    Meh. Cranking out spreadsheet macros for arbs and margin traders doesn't count as programming. And I'm not certain what metric anyone is using here.

    Plus, Java sucks.
    GUI is slow, and the only way to get the code to run reasonably fast is to compile it, which kind of misses the point.
    It puts an added burden on all the users, and can be a headache to anyone in charge of wide scale deployment in an organization.

    It's a blight, and we would be better off with out it. Everything done in Java would ahve been done in another language.

    I must commend you on defending your biases and prejudices so long and so well in the face of concerted attack from objective reality. Keep up the good work!

    obDisclaimer: by temperment, I'm an assembler programmer, so I consider all y'all wimps. I don't waste any emotion on disliking java, C#, or even Haskell or Smalltalk.

  • by DimGeo ( 694000 ) on Thursday June 26, 2008 @04:25PM (#23956139) Homepage

    I will say the J-word once again. May the Emperor forgive me.

    Try writing this: http://dimiter.dyndns.org/sqema/index.jsp [dyndns.org] in anything *but* Java, and make it faster. Then we'll talk again.

  • Re:MOD PARENT UP (Score:1, Interesting)

    by Anonymous Coward on Thursday June 26, 2008 @05:32PM (#23957583)

    You can run separate instances of Python, and the GIL won't matter. That method scales extremely well on web servers. It all depends on the application. I find the number of applications for which the GIL is really an issue are quite small. The majority of applications don't require multiple threads. Many that do use multiple threads do it for I/O optimization(for which Python does let go of the GIL). Other applications can be split among processes. Frequently if performance is one of the top requirements then you probably don't want to be using a byte compiled language anyway.

  • by csnydermvpsoft ( 596111 ) on Thursday June 26, 2008 @06:03PM (#23958173)

    That's due to the culture surrounding the language rather than the language itself. I had an internship at a large Java-using company (not Sun) where we wrote navigation software for use in in-car computing. One of the pieces we needed was a server to provide the data (street segments, basically). We first used a package built by another team in the company that was huge (dozens of MB of Java code) and incredibly slow. We re-wrote it in about a week and it was orders of magnitude faster and smaller, with more features.

    When looking for a web framework for my company [adoromusicpub.com], I ended up writing a framework from scratch rather than using anything else out there. Even the best software, such as the Apache projects, suffers from lots of bloat. This isn't the fault of the language - it's the mindset that many people are in.

    It can be argued that the standard Java libraries are too large. That's a valid point, though the vast array of functionality provided sure does come in handy. In addition, it means that you likely will have to ship less libraries with your software - the user's JVM will have them all included.

  • by Nikker ( 749551 ) * on Thursday June 26, 2008 @07:28PM (#23959529)
    I know that you're a troll but as a counter point one thing that Java does really well is cross architecture. When you compile ASM,C,C++ etc you normally compile for the lowest common denominator i386 possibly Pentium MMX(2). With Java what ever platform it runs on is how the code is optimized, on the fly. So if I write a program it will take advantage of SSE/2 or Sparc or whatever since the JVM will handle everything for me. You "can" do that with C, C++, ASM(to a lesser degree) but what you end up doing is writing it for all the different platforms but compiling all of them into one executable which any one can tell you is nasty as it gets. If I compile a C program to take advantage of the latest and greatest processor it will only run on those machines that host it, a Java program will run on any and all that there is a JVM for.
  • by Anonymous Coward on Friday June 27, 2008 @01:42AM (#23963147)

    Is Java faster? [debian.org] Yes. But the first dynamic language (AFAICT) in this benchmark is only 18% slower (SBCL). Not exactly compelling evidence that all those obsessive-compulsive type annotations buy you much

    And if Lisps make your eyes glaze over, Python (+ Psycho) is only 3.4 times slower than the fastest Java in that benchmark. Hardly an order of magnitude.

    And dynamic languages can get much faster. [blogspot.com]

  • by James Carnley ( 789899 ) on Friday June 27, 2008 @01:04PM (#23969643) Homepage

    Game programming I'd think would be doable, if they have good DirectX libraries and an SDK that works well.

    Java has some pretty good libraries for game development.

    • A fully featured OpenGL API: JOGL [java.net]
    • OpenAL for audio: JOAL [java.net]
    • JInput for game controllers and other input: JInput [java.net]
    • Java version of SDL for a complete game dev tool: SDLJava [sourceforge.net]

    Also, check out the pure Java implementation of the Quake 2 engine. Runs on every major platform with near native speed. Jake2 [bytonic.de]

    I doubt that Java will ever be used for mainstream games, but for small projects it is a great tool that will allow a game to run on any platform with AAA title graphics and sound.

All seems condemned in the long run to approximate a state akin to Gaussian noise. -- James Martin

Working...