Become a fan of Slashdot on Facebook

 



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:
  • Yes. (Score:4, Informative)

    by MadMidnightBomber ( 894759 ) on Thursday June 26, 2008 @12:53PM (#23951055)
    Really.

    How many times have you been screwed over by a vendor who thinks they know best? (Symantec / L0phtcrack anyone?)
  • Use debian? (Score:5, Informative)

    by merreborn ( 853723 ) on Thursday June 26, 2008 @12:54PM (#23951087) Journal

    If you've ever wanted to run a Java app on a debian box, you know why this matters.

    The strictly FOSS distros have historically refused to include a Java package due to its non-Free license. There's some really good Java software out there, and without a pre-built java package, it was just that much harder to access them.

  • by scubamage ( 727538 ) on Thursday June 26, 2008 @01:01PM (#23951209)
    I've used both C++ and Java, I like them both. C++ just has a lot more pitfalls that a savvy programmer knows to avoid, whereas a novice will get swallowed into the cold oblivion of core dump and seg-fault hell.
    But, its also goddamned powerful.
  • by Anonymous Coward on Thursday June 26, 2008 @01:17PM (#23951535)

    Really? I thought that Java had the lead in the TIOBE Index: http://www.tiobe.com/tiobe_index/index.htm

  • by Azar ( 56604 ) on Thursday June 26, 2008 @01:19PM (#23951559) Homepage

    You need to know Java...Corporate IT are basically only interested in hiring Java developers.

    That's exactly what I thought 3 years ago when I applied for my current job. I had studied up on my java, bought various books to hone my skills (java is one of my weaker languages), tested my knowledge with free online tests, considered becoming a "Sun Certified Java Developer", etc, etc.

    Then I interviewed.

    They hired me with a salary that was 27% more than what I had been asking. But not to program in Java. They hired me because I was very strong in C and Perl of which they had a very large code base and fewer developers to maintain (and expand) it. We process credit card transactions and all of our backend code is in C, with the less critical stuff in Perl. Java runs a lot of the web services and a number of front-ends for customers, but it isn't difficult to find a good Java developer. Finding a knowledgeable C developer is becoming harder and harder.

    I don't mean to say everyone should rush out and (re)learn C and try to find a job using it, but you can make just as good of a living not programming in Java as you can programming in it. Java is definitely a good tool to have on your belt, but don't confuse it with being the tool.

  • by Colin Smith ( 2679 ) on Thursday June 26, 2008 @01:23PM (#23951621)

    Why would you aim for 1/3 of the market when you can aim for 2/3?

    http://www.google.com/trends?q=java+developers%2C+.Net+developers&ctab=0&geo=all&date=ytd&sort=0 [google.com]

     

  • by scooterjohnson ( 1042058 ) on Thursday June 26, 2008 @01:26PM (#23951655)
    I'll STILL defend FORTRAN as a scientific platform. I have used it for astrophysical simulations and all sorts of scientific modelling within the past few years and it is the one language that both my (physics) profs and I were able to debug at the same time. If you're crunching tons of numbers, need exploit parallelism in your programs, and be able to show your work to a physicist all on an open-source platform, I think FORTRAN is still the way to go.
  • by lindi ( 634828 ) on Thursday June 26, 2008 @01:34PM (#23951757)
    Remember that Sun did not free their java applet plugin. Classpath/Icedtea folks are writing a replacement but last time I checked it lacked e.g. liveconnect support so I could not login to my bank. This means that java applets are still not completely usable with free software.
  • Re:MOD PARENT UP (Score:5, Informative)

    by The-Pheon ( 65392 ) on Thursday June 26, 2008 @01:34PM (#23951767) Homepage

    Java is slow?

    Python has the Global Interpreter Lock, which means even though there are threads, they don't execute concurrently. Too bad if your server has several processors / cores.

  • by Trails ( 629752 ) on Thursday June 26, 2008 @01:42PM (#23951901)

    To ask if Java were new we would use it today, while valid as an abstract and absolute measure, is irrelevant in today's software world context.

    Java is HUGELY entrenched in today's business software market, probably even more so if one weights by overall company valuation (i.e. Java's market share by company valuation is substantial, perhaps even dominant).

    Open sourcing it matters since Java's growth and maintenance matter, as the investment in Java is substantial and unlikely to change any time soon.

    Java's never gonna be the hot young thing in programming again (if it ever was), but that's irrelevant to the question of open sourcing it. Java has substantial value, and open sourcing software of value matters. Doing things that alter the growth and maintenance plans of a heavily vested technology matter.

    Further, this:

    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.

    is a tautology. No developer can do everything with C++ either, that doesn't lessen its value or relevance. Neither does Java's complexity or unwieldiness lessen the value gained in being able to learn from and modify how it has implemented things.

    I personally don't get this constant desire on some people's part to denigrate Java. Some sort of Comp Sci elitism for the business language?

    Claiming open sourcing Java doesn't matter is like claiming open sourcing windows wouldn't matter; the same arguments apply. Windows is unwieldy and complex, and competing software generally does things better than windows.

  • by Anonymous Coward on Thursday June 26, 2008 @01:47PM (#23952021)
    Bullshit.

    I work for hotels.com. The same build script and code is used on Windows, OS X, and Solaris. No changes needed. At all.

  • by jez9999 ( 618189 ) on Thursday June 26, 2008 @01:49PM (#23952053) Homepage Journal

    Python is the only language I'm aware of (certainly the only major language) that uses whitespace to define blocks. Thank God. It's a *serious* dealbreaker for me.

  • Re:MOD PARENT UP (Score:3, Informative)

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

    Python has the Global Interpreter Lock, which means even though there are threads, they don't execute concurrently. Too bad if your server has several processors / cores.

    Love Python; hate GIL. Trust me, I know exactly what you mean.

    That said, there are quite a few [python.org] multi-processing packages for Python (disclaimer: two of the ones under SMP are mine, so I'm kind of biased toward the idea). Also, Python 2.6 will ship with a standard multiprocessing module [python.org] that's very similar to it's multithreading counterpart and should be an easy migration.

    Multithreading is cool, but there are other ways to skin that cat.

  • by Shade of Pyrrhus ( 992978 ) on Thursday June 26, 2008 @02:03PM (#23952421)

    Java second cousin twice removed JavaScript
    No. JavaScript is a scripting language, whereas Java is a full-fledged programming language. Regarding the name: "The naming has caused confusion, giving the impression that the language is a spin-off of Java, and it has been characterized by many as a marketing ploy by Netscape to give JavaScript the cachet of what was then the hot new web-programming language" [History of JavaScript [wikipedia.org]].

    Most apps are moving to the web even custom apps. So Javas key advantage is loss. As Python, Ruby, PHP... while are primarly considered interpreted lanaguge without the byte code (yes I know at least python you can make PYC files which are bytecode....) but because they are on the server protected with the OS Security you can make apps and do more realtime chanages to the code vs. compiling it over and over again. and not have your users mess with the design.
    You do know that Java is not just applets and client applications, right? Java is heavily used on all of the things you just talked about - serverside apps. See servlets, JSP, etc. Both Python and Java are interpreted, so I don't know what you're talking about: "Java bytecode is interpreted or converted to native machine code by the JIT compiler." [Wikipedia-Java [wikipedia.org]].

    I guess I should know by now to expect most people to not know what they're talking about when they post.

    But, back to the issue. I fully agree with many other posters claiming it reduces the possibility of being screwed over by Sun or licensing inside of the various packages (audio is one that comes to mind - the one they're still rewriting).
  • by MrSteveSD ( 801820 ) on Thursday June 26, 2008 @02:17PM (#23952807)
    The company I used to work for was hit badly by Microsoft dumping VB (VB.NET is not VB, and don't mention the upgrade wizard) and I'm sure it's only one of many. We were hoping for an improved version of VB6 but Microsoft decided to wreck the huge investment we had made in VB code. We had spent years and lots of money writing VB code for our apps because it was easy and convenient with lots of business components available which were simple to plug in. The company just didn't have the resources to rewrite everything in another language and it was a pretty big disaster really. I just couldn't believe that with so many millions of lines of code and so much investment in VB6 from industry that Microsoft would just dump it, but I was wrong.

    The bosses asked me my opinion on what we should do next. We didn't really have a solution to the enormous cost of rewriting everything, but we needed to decide on a new language to adopt. After being so horribly stung by Microsoft on VB I suggested that Java would be a safer direction to go in. C# and .NET were nice of course, but after Microsoft dumping VB6 I was quite worried they would pull some similar devastating stunt in the future. Unfortunately my advice fell on deaf ears and the gravitational pull of Microsoft products was just too great. It's a shame because a lot of the customers are now moving over to Linux, Java and various Open Source technologies as a matter of company policy.

    After the VB saga, I am very dubious of using any language which is controlled by a company (particularly when it's Microsoft). Clearly Sun still has a lot of control, but now with Java being Open source, it won't matter so much if Sun dumps Java. We'll have the code after all.

    P.S. Trying to upgrade component by component using interop was hell and not really a viable option.
  • by cerelib ( 903469 ) on Thursday June 26, 2008 @02:43PM (#23953531)
    Unless things have changed in recent years, JSPs do get compiled, twice. First, they get compiled into Java Servlet objects, where your HTML lines get turned into print() calls. Then they get compiled into bytecode to be executed. Your server may hide this process from you, but that is what Tomcat did when I had to use it about 4 years ago.
  • by AmaDaden ( 794446 ) on Thursday June 26, 2008 @03:15PM (#23954323)

    I think VBA is in wider use then Java.
    Not according to the first link I posted (this is kinda why I went through the trouble to get the link...)

    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 WAS slow. Every version of Java has had significant GUI improvements. (http://en.wikipedia.org/wiki/Java_version_history [wikipedia.org])

    You are also missing that the GWT that runs most of the apps on Google (like Gmail) is written in Java. Java's GUI has issues but that does not mean that Java does not have good uses.
  • by gbjbaanb ( 229885 ) on Thursday June 26, 2008 @03:19PM (#23954453)

    the joke, really, is that Java is used to power the systems in a lot of eCommerce sites (think eBay or Amazon) and Publishing (if you consider some of the big online media sites to be publishing).

    So is it a joke, or is it a serious comment, which is it? Is it true, or is it false? :-)

  • Arbitrary (Score:3, Informative)

    by ttfkam ( 37064 ) on Thursday June 26, 2008 @03:42PM (#23955071) Homepage Journal

    You have limits in any language whether they be the inclusion of a semicolon at the end of a statement, the enclosure of a conditional in parentheses, or curly braces to denote scope.

    To say that those constructs built into languages are acceptable but enforced indentation is not is an arbitrary distinction. It has nothing to do with its worth or lack thereof. You have decided what you prefer and are fitting an argument to that conclusion. Philosophy does not enter into it.

    A computer doesn't care whether your programming language enforces indentation. All the computer needs is an ordered sequence of bits and bytes in just the right combination to return a desired output. Computer languages were meant to be a human-readable alternative -- their sole reason for existence. If you don't think that the indentation makes the code readable, that's a valid argument though I would disagree with it.

    However, I don't believe you have a "philosophical problem" with indentation on the basis of enforcement. Enforcement has nothing to do with readability, and readability is all that really matters with a language. Anything else is personal preference, which is perfectly valid, just don't frame it in the guise of a more noble cause.

  • Bullshit (Score:1, Informative)

    by Anonymous Coward on Thursday June 26, 2008 @03:55PM (#23955377)
    Except, of course, that Python doesn't provide enough context for an editor to properly indent blocks automatically, as there's no proper block delimiters. So, if I, for example, need to change the level of nesting in an existing block of code for some reason (say, introducing an if statement, or factoring some code out into a separate function), the editor can't help me to ensure I get the indentation level right. And in Python, incorrect indentation means incorrect semantics.

    Nonsense. If you're wrapping an if() {...} around a region of code, you still have to know where to insert the curly brackets. Once you have the region marked out, most editors can indent that region for you. Even if the language is Python. For example, in Emacs, you select the region, then type C-x C-i to indent it. Simple.

  • Java is excellent (Score:3, Informative)

    by thetoadwarrior ( 1268702 ) on Thursday June 26, 2008 @03:56PM (#23955389) Homepage
    I quite enjoy Java and find it to be a great language. My only complaint is that they fucked up java for web sites / apps.

    Why does java have to be some complicated, delicate and have 6 millions different ways to do something where as you can get on with developing something in PHP quite easily? Sure to make something great you need to know the html to go with PHP and javascript but you need to know those with java plus decide if you you are using struts, spring, seam, groovy, JSF, etc and, while knowing one may make it easier to transition into another job using something similar, it's still a pain compared to moving between PHP based development jobs.

    It is true that if you wanted to know everything about Java it would be impossible. You can't know it all and be excellent at it but there should only be three clear sides to it. The desktop app side, mobile and web.
  • by febuiles ( 743020 ) on Thursday June 26, 2008 @04:09PM (#23955703) Homepage Journal

    No. JavaScript is a scripting language, whereas Java is a full-fledged programming language.
    Javascript is also a full fledged programming language, whatever that means, you can run it inside a JVM (Mozilla Rhino) or using any other engine like Spidermonkey, which means you can pretty much do the same things you can do in Java.

    I guess I should know by now to expect most people to not know what they're talking about when they post.
    Funny, eh? :)
  • Re:Bullshit (Score:3, Informative)

    by Kidbro ( 80868 ) on Thursday June 26, 2008 @06:43PM (#23958843)

    What editor are you using? It seems to be lacking a bit, feature wise.

    In C:
    - You cut the block.
    - You paste it
    - You mark the entire if-block
    - You ask the editor to reindent it

    In Python:
    - You cut the block
    - You paste it
    - You mark the pasted section (unless your editor has a feature to paste & mark, in which this step is unnecessary)
    - You indent/redent the marked block to wanted level.

    It's the same amount of equally complicated maneuvers. Unless you have an editor with the feature I spoke of, in which case it is one less in Python.

    Seriously, the white space thing annoyed me as well... for roughly two days. Six years of professional Python programming later, I cringe every time I run into code written in a language that wastes half its characters on redundant information (aka visual noise).

  • Re:Java is excellent (Score:3, Informative)

    by Shados ( 741919 ) on Thursday June 26, 2008 @07:23PM (#23959451)

    In Java you can just go and hack it up JSP style if you want, and it will be similar to PHP. The thing is, that way of doing thing sucks. It sucks in Java, it sucks in PERL, it sucks in PHP, it sucks, period. As with any serious application development, you need to structure things a bit. People don't agree on the best way, though in Java, the community is very oriented toward "There's the main way, and then there's other ways in case that doesn't work for you". In general, thats a MVC pattern like strut, a dependency injection/inversion of control container (spring), a persistance framework (hibernate). Then you have t he other stuff when that doesn't work for you (JSF for composite applications, for example).

    All languages that matter are like that. Ruby has Rails (package of the stuff I mentionned above), and when that doesn't work, there's a bunch of other frameworks. If you just go in straight PHP and go for it, you're doing it wrong, even from a PHP point of view. PHP has templating frameworks, object relational mappers, containers, etc, too. Lots and lots of them, and for a serious app, you need to pick too.

    The only difference, is that PHP is used for "quick and dirty" much more often, while Java is usually used for "enterprise/production scale development", so you'll more rarely see PHP devs using the frameworks, and more rarely see java devs going straight JSP.

    Thats it. And if you think developing real world application can be split up with desktop, mobile and web, you're leaving out 2 third of enterprise developments. Not everything ends up in the face of a user, and only a part of what actually does falls in those categories. What about services/deamons? Reporting processes? SOA middlewares? Business workflow processing? Messaging/Reliable systems (I'm not talking about MSN here, I'm talking about message queues). Java and .NET are 2 environments that deal with all of that, but even with everything they provide (much more than a single human can learn), they still don't even provide half of what we need in all situations (especially .NET, until 3.0).

  • by pdbaby ( 609052 ) on Thursday June 26, 2008 @08:32PM (#23960361)

    That is only true if you compile it, effectively loosing all the other benefits you claim.

    I saw this higher up in the comments and shrugged it off. But now I have to ask - huh?! Java is a compiled language. (are you confusing it with javascript, which is completely different and only shares the name?). Java's JIT works automatically, profiling bytecode as it executes and when it's ready, translating it into x86 instructions. By doing this it can do the sort of optimisations that C++ is incapable of doing - it can reorder an if condition or do some incredibly aggressive inlining (it'll even inline 3 method calls deep when its profiling indicates there'd be a performance advantage).

    Trouble shooting any large Java application is a nightmare

    Troubleshooting a badly written application is always a nightmare, troubleshooting a large application can be a pain. You can do all sorts of nice things with debuggers, too, to figure out what's going on - and Java's definitely easier to debug than C or Perl

  • Re:MOD PARENT UP (Score:3, Informative)

    by MenTaLguY ( 5483 ) on Friday June 27, 2008 @05:25AM (#23964429) Homepage

    To be fair, there's always Jython. Python the language, on the JVM.

  • by DrXym ( 126579 ) on Friday June 27, 2008 @05:29AM (#23964449)
    Python, Ruby etc are interesting languages but Java is ultra robust, runs on any hardware, has multiple implementations, and so many specifications and libs to support everything from handhelds all the way up to mainframes. And it has a large pool of programmers trained to write Java apps.

    For all the hype of Ruby on Rails, etc., the cold reality is that you would have to be a pretty foolhardy architect to recommend it for anything mission critical. Java might not be sexy but it does exactly what it says on the tin.

    Its great news that its been open source, especially for Linux. But what it means in practice remains to be seen. I expect what it will mean is random bug fix submissions but little else but in practice Java is going to get governed the way it's always been governed. People will branch Java of course but just like Firefox, I doubt it means they can still call it Java.

It is easier to write an incorrect program than understand a correct one.

Working...