Slashdot Mirror


The Coming War Over the Future of Java

snydeq writes "Fatal Exception's Neil McAllister writes about what could be the end of the Java Community Process as we know it. With the Apache Software Foundation declaring war on Oracle over Java, the next likely step would be a vote of no confidence in the JCP, which, if the ASF can convince enough members to follow suit, 'could effectively unravel the Java community as a whole,' McAllister writes, with educators, academics, and researchers having little incentive to remain loyal to an Oracle-controlled platform. 'Independent developers could face the toughest decisions of all. Even if the JCP dissolves, many developers will be left with few alternatives,' with .Net offering little advantage, and Perl, Python, and Ruby unable to match Java's performance. The dark horse? Google Go — a language Google might just fast-track in light of its patent suit with Oracle over Android." Reader Revorm adds related news that Oracle and Apple have announced the OpenJDK project for OS X.

583 comments

  1. Where is IBM? by rvw · · Score: 5, Insightful

    They are the one and only company that can pull this thing straight. They have the money, they have proven their commitment to OSS, so I sincerely hope they step in and fix this. It's too important to let Oracle mess everything up.

    1. Re:Where is IBM? by Anonymous Coward · · Score: 0

      Is Larry Ellison Darth Vader or the Evil Emperor?

    2. Re:Where is IBM? by Lennie · · Score: 3, Informative

      They seem to be on the side of Oracle. They left Apache behind.

      --
      New things are always on the horizon
    3. Re:Where is IBM? by WrongSizeGlass · · Score: 5, Interesting

      Not trolling, but is Java really worth the fight at this point? Years ago it had the promise of the 'programming panacea' but now it's just another programming language. Yes, it's deeply ingrained in the internet and server landscapes, but that isn't going to change if Oracle wants to start charging fees for integration with their middleware and for some advanced utilities.

      The mobile/embedded world is a different animal but Google certainly has something in the works to dodge the Android uses Java mess. Once Google releases a new VM that avoids the Java comparisons the rest of the mobile/embedded world will transition to it and leave Oracle holding an empty bag.

      It won't be easy but look at how far Android developers have come in the short time Android has been available. Google isn't flawless but they won't want to pay any licensing and they'd rather spend the cash on developing an alternative.

    4. Re:Where is IBM? by oh_my_080980980 · · Score: 1

      They've signed a deal with Oracle.

    5. Re:Where is IBM? by Anonymous Coward · · Score: 0

      What's in it for Big Blue?

      So far I'm not seeing anything.

    6. Re:Where is IBM? by Migala77 · · Score: 5, Informative
    7. Re:Where is IBM? by mcvos · · Score: 1

      Considering IBM just went over to the Dark Side, I'd say IBM is Darth Vader. So Larry Ellison has to be the Emperor.

    8. Re:Where is IBM? by Mongoose+Disciple · · Score: 1

      So Larry Ellison has to be the Emperor

      Great. Like he wasn't dangerous enough without shooting lightning out of his frickin' hands!

    9. Re:Where is IBM? by mcvos · · Score: 5, Insightful

      Not trolling, but is Java really worth the fight at this point? Years ago it had the promise of the 'programming panacea' but now it's just another programming language.

      It's not about the language, it's about the platform. The JVM, and Dalvik's status in that respect.

    10. Re:Where is IBM? by TheTurtlesMoves · · Score: 5, Interesting

      Well it never had the promise of the "programming panacea". But really all this shouting is really just everyone fighting over the "its mine" java pieces.

      When java first came out there was no JCP. Sun just decree what was and what was not "java" (with some hilarious results). The parts of the "for" pay JVM have *always* been this way (Jrockit), but some features are going to be made free. And finally we have a proper apple/"java" JVM. Its lots of good news for people in the know.

      99% of the comments and cries of the death of java are clearly said by people who just don't work with java as its really done (at least commercially). This is a storm in a tea cup, meet the new boss, not as bankrupted as the old boss.

      My only hope is that the patents get ruled invalid. Hopefully that will pave the way for more software patent invalidation.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    11. Re:Where is IBM? by Tanktalus · · Score: 3, Insightful

      Big Blue is probably one of the biggest Java development firms in the world. I'm guessing here, but their expenditure on the JVM itself probably rivals Sun's, plus most of their apps either support Java, are partially written in Java, or completely written in Java, and often ship/embed Java (if you have 10 IBM products installed on your machine, you probably have 11 copies of Java).

      Their dependence on Java is, I think, obvious. As is their long-running feud with Oracle in the database sphere. On the other hand, as recently as about 7 or 8 years ago, from what I can tell, AIX spent more money optimising their platform for Oracle than they spent optimising for DB2. Not sure if that's still the case. IBM competes fiercely with Oracle (software) and works closely with them (hardware). I'm not sure why IBM wants to allow the balance of power to shift more in Oracle's direction, actually.

    12. Re:Where is IBM? by Anonymous Coward · · Score: 0

      What is interesting is that DB2 has obtained some Oracle compatibility as of recent versions. From an outside observer, having Java become IBM's would arguably be the best thing for the platform, as Oracle seems disinterested in developing the platform, other than to find new ways to get more fees from it.

      IBM has the high end now. Oracle's top end machines really don't hold a candle to IBM's POWER7, especially the 795. To boot (IIRC), the high end Oracle solution of using software in the OS so one machine can access RAM in another's? Give me a break... that is more of witchcraft than an actual enterprise level solution if this is true. So in reality, Oracle has scored a DNF in the high end server race. These days, IBM's main enemy is Windows and x86 boxes.

      What is IBM's weakness? Java. Java is a good platform, but because Sun failed at maintaining it, a JVM change can require applications to require massive rewritings. Performance is a dog too. Code running in a Dalvik VM on a one GHz CPU runs the equivalent of what native Objective-C runs at 500Mhz, just due to the Java performance overhead.

      IBM needs to get control of Java, pair up with Google and start addressing fundamental "fail" issues of the platform to make it more than just the COBOL of the 21'st century; a has been language. Look at Adobe -- Flash's ActionScript is sleek, fast, elegant, and is the lingua franca of the Web for anything more than basic HTML. This is the route Java needs to take, especially the ability to display movies full screen with a full framerate. If Adobe with their history of large applications can do this, then the people behind Java can.

    13. Re:Where is IBM? by AmaDaden · · Score: 1

      As I understand it IBM is a 'solution company' AKA they make their money by solving your problems. They don't really care about HOW they solve it or whit what as long as you are happy. An Oracle DB vs a IBM DB does not matter. In fact pushing software that is not the right fit would cost them in the long run because they want your support contract. They do a good job and you will stay signed on.

      This is why Java and Linux are valuable to them. The software costs nothing to install, they can afford the technical power to install and run it and if push comes to shove and they REALLY need to they can throw programmers at it to fix bugs. They don't care how it works only that it works.

      Bringing this back to Oracle. Siding against Oracle is biting the hand that feeds them since they need to work with them to get Oracle server bugs fixed. Oracle likes to hold a grudge and might go nuts on IBM if they don't toe the line. As long as they can fix Java bugs via OpenJDK and JCP the actual license of Java for others does not matter to them. While siding with Oracle might hurt them in the long run fighting them is a bigger risk(Oracle to IBM:"oh you needed that bug fixed THIS year?") for little reward (IBM:"Hurray! Java is free! Now we can view the source and fix bugs....just like before....").

    14. Re:Where is IBM? by mr_bubb · · Score: 0

      People don't seem to understand it's not the Java language that matters, it's the JVM. The JVM has had over a decade of development by now; it's very stable, and very fast. A lot of great languages have been developed that require it. You may hate Java, but what about groovy? What about Scala? I don't want to see them go away.

    15. Re:Where is IBM? by Anonymous Coward · · Score: 0

      RedHat has a huge stake in Java too, although I'm not sure they could fix this on their own.

    16. Re:Where is IBM? by Billly+Gates · · Score: 1

      Yes it is worth fighting. Want to keep Windows out of your server room?

      Only Java and .NET have 200,000 methods to chose from. Infact, for large old COBOL installations Java is the only choice that runs on new mainframes that is modern and rich enough to run on many platforms for decades to replace COBOL with. .NET versions are incompatible with each other. It can't run on mainframes to cell phones. Java is open to all databases. .NET is SQL-Server and Windows oriented. Java has native execution speeds while python and perl are interpreted.

      If Java turns into an old Oracle Database specific language we are all screwed. Might as well switch to some crappy Dell Poweredges with expensive seat limited Windows licenses if Java fails. I would hate to see this.

    17. Re:Where is IBM? by BitZtream · · Score: 1

      And finally we have a proper apple/"java" JVM.

      You mean a shitty JVM for OS X.

      I fail to see how having to deal with standard Java dev team releases of the JVM is an improvement over the Apple sanatized JVM.

      Apples version is more reliable and faster on the same hardware than either the Solaris or Windows JVM from Sun in my experience, I use them on my laptop daily (well, solaris one doesn't get used as much).

      I'd much rather deal with Apples version which doesn't go out the door until it works mostly right rather than the typical OpenJDK/Sun process of pushing it out the door, ready or not.

      You say now we have a proper apple JVM, I say you just lost the only 'proper' JVM in existence.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    18. Re:Where is IBM? by Anonymous Coward · · Score: 0

      You're an idiot.

    19. Re:Where is IBM? by TheTurtlesMoves · · Score: 1

      You clearly didn't developed much for the mac jvm and other platforms at the same time. It is only just now catching up with performance of the Sun one, and its had a buggy as hell gui/swing/awt implementation. It also has (still) quite a number of bugs in the api, and is always soooo late to the party (years behind suns).

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
  2. Alternatives? by Anonymous Coward · · Score: 5, Interesting

    You know, this is very puzzling. Why hasn't FOSS come up its own managed runtime+language stack?

    It's certainly not for a lack of engineering talent.

    Procrastination? Lack of vision? Or is open source just too tribal and fragmented to coordinate on something so big and cross-disciplinary?

    1. Re:Alternatives? by ByOhTek · · Score: 1

      Or is open source just too tribal and fragmented to coordinate on something so big and cross-disciplinary?

      I'm tempted to respond to this with "Hammer, mean head-of-nail", except that we have projects like Linux, FreeBSD, KDE, Gnome. Even though they are competing, they are big and seem to be quite cross-disciplinary. Likewise there's GCC, which could be considered the same (and lacking serious FOSS competition).

      More likely, nobody has felt the need, given what is currently available.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    2. Re:Alternatives? by Lennie · · Score: 5, Informative

      Something like http://www.parrot.org/ you mean ? A whole new VM which can run multiple languages.

      --
      New things are always on the horizon
    3. Re:Alternatives? by icebraining · · Score: 5, Informative

      Parrot is a register-based process virtual machine designed to run dynamic languages efficiently. It uses just-in-time compilation for speed to reduce the interpretation overhead. It is currently possible to compile Parrot assembly language and PIR (an intermediate language) to Parrot bytecode and execute it. Parrot is an open source project distributed with a free software licence, making Parrot free software.
      (...)
      Many languages already have compiler front-ends designed for Parrot, however many of them are still only partially functional. The languages currently implementable, partially and fully, on Parrot are: Arc, APL, bc, Befunge, Brainfuck, C, Common Lisp, ECMAScript (aka JavaScript), Forth, Generic Imperative Language, GNU m4, HQ9 Plus, Jako, Java, Java bytecode, Joy, Lazy K, Lisp, LOLCODE, Lua, MiniPerl (Perl 1.0), NQP (Not Quite Perl), Octave, Ook!, Perl (via Rakudo), PHP (via Pipp), Python, QuickBASIC 4.5, Ruby (via Cardinal), Scheme, Shakespeare, Smalltalk (via Chitchat), the "squaak" tutorial language, Tcl (via partcl), Unlambda, WMLScript, and .NET bytecode.

      http://en.wikipedia.org/wiki/Parrot_virtual_machine

    4. Re:Alternatives? by fishbowl · · Score: 5, Interesting

      >You know, this is very puzzling. Why hasn't FOSS come up its own managed runtime+language stack?

      The strength of Java is less in the language and more in the widespread adoption of enterprise frameworks. I have less appreciation of the language itself than I do for the ASF toolchain and for Spring. I realize that Python has parallels for these things, but they tend to not be used in the places where Java is used, by which I mean places that have ever given me paychecks.

      When these threads come up, I'm usually shocked by how little awareness there seems to be of just how much business software is in Java, and how much of that responsibility rests on various Apache projects over the years. It would be a real surprise to see any Enterprise Java that doesn't link at least some ASF libraries, and usually there are *many*.

      Apache, not Sun or Oracle or IBM is the big name in Java. I hope the Apache group can make a unified front and play their cards effectively, but so far they are acting like victims.

      --
      -fb Everything not expressly forbidden is now mandatory.
    5. Re:Alternatives? by Anonymous Coward · · Score: 0

      Why hasn't FOSS come up its own managed runtime+language stack?

      Parrot is working on it.

    6. Re:Alternatives? by icebraining · · Score: 4, Informative

      GCC (...) lacking serious FOSS competition.

      http://llvm.org/ and http://clang.llvm.org/

    7. Re:Alternatives? by TheRaven64 · · Score: 5, Informative

      Why hasn't FOSS come up its own managed runtime+language stack?

      You mean, apart from Perl, Python, Ruby, GNU Smalltalk, Pharo, Lua, Io, and so on? Probably because they solve a problem that is only really applicable in the closed-source world: needing to run the same binary on multiple operating systems / architectures. If you have the source code, [Objective-]C[++], Pascal, Fortran, or whatever is just as portable as Java, if not more so.

      --
      I am TheRaven on Soylent News
    8. Re:Alternatives? by butlerm · · Score: 2, Insightful

      Apache, not Sun or Oracle or IBM is the big name in Java.

      Apparently, Apache needs to start applying for defensive patents, or it is not going to be the big name in anything.

    9. Re:Alternatives? by maxwell+demon · · Score: 1

      Given that Parrot also runs JavaScript (according to their page), it would be interesting to compare its speed with the JavaScript speed of current browsers.
      Also, given that there's a .NET bytecode translator (again, according to their page) a benchmark against .NET would also be interesting.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    10. Re:Alternatives? by countertrolling · · Score: 1

      Not a troll. The parent covers some important reasons why many human endeavors come up short, not just FOSS.

      In fact the moderator is probably exhibiting that very tribalism (fanboiism)

      Java is a hot potato, time for something else, unless it can be wrenched loose from its corporate straitjacket. That means, don't trust IBM or Google anymore than you would Oracle.

      --
      For justice, we must go to Don Corleone
    11. Re:Alternatives? by VGPowerlord · · Score: 1

      Are you referring to libraries or programs? Apache is big on the Java libraries (and tools) front, but its showing on the enterprise app server front (Geronimo and its servlet container Tomcat) is overshadowed by IBM (Websphere) and Oracle (Weblogic & GlassFish). Even JBoss doesn't exclusively use Tomcat any more; I've seen quite a few people recommend that you use the version of JBoss that uses Jetty instead.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    12. Re:Alternatives? by bonch · · Score: 0, Flamebait

      I'd love to see something utilizing LLVM. I'm not convinced the OSS community has the organizational capability. I'm also not sure GPL people would work on something BSD-licensed. Instead, they'd try to reinvent the wheel, it would go nowhere for years, and nothing would come of it.

    13. Re:Alternatives? by Kjella · · Score: 4, Insightful

      [Objective-]C[++], Pascal, Fortran, or whatever is just as portable as Java, if not more so.

      Show me a GUI "Hello, world!" that'll run on every platform Java does - even if Java windows look like shit. Java isn't just a cross-platform language, it's also a cross-platform toolkit that hides all the OS specifics, far more than any of the languages you mention.

      --
      Live today, because you never know what tomorrow brings
    14. Re:Alternatives? by Anonymous Coward · · Score: 0

      It would more likely be disappointing rather than interesting in both cases.

    15. Re:Alternatives? by RockGrumbler · · Score: 1

      I think you've hit it right on the head. The Java platform is strong because of the high quality third party frameworks and libraries, almost all of which rely on apache/jakarta libraries.

    16. Re:Alternatives? by fusiongyro · · Score: 3, Interesting

      It's an excellent point and it's well-taken, but none of those are really what the OP is talking about. Parrot is really the pertinent example, though it has arisen out of Perl (more-or-less); none of the other systems you name are really a generic managed runtime.

      The answer to the question, why isn't Parrot more widely-used is to look at context. We're not comparing Parrot to (say) Python's bytecode; if we did, Parrot looks like a runaway success. We're comparing Parrot to the JVM, but that's not a fair comparison, because people write languages that target the JVM to make life easier in Javaland, not because the JVM is a technical achievement.

    17. Re:Alternatives? by Big+Smirk · · Score: 3, Informative

      wxWidgets - helping X-windows newbs like me since at least 1997.

      --
      TODO: create/find/steal funny sig.
    18. Re:Alternatives? by MightyMartian · · Score: 1

      There's this thing called momentum that all those shouting "Just drop it!" don't seem to get. Java has considerable penetration in the enterprise world. It's like shouting to banks "COBOL? Just Drop it!"

      Java has taken a long time to get where Sun envisioned it, and now that it is there, of course its new daddy is going to try to wring every last bit of profit from it, of course third parties like Microsoft (with .Net) and Google (with Dalvik) are going to try to push the freight train in a slightly different direction. It's a battle that has been brewing for a helluva long time (I'd argue the Sun-Microsoft battle over Java was probably the Agadir Crisis of the coming Java War).

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    19. Re:Alternatives? by Anonymous Coward · · Score: 0

      Why hasn't FOSS come up its own managed runtime+language stack?

      They did. Sun open-sourced Java, remember? That's what makes this episode so interesting. Anything Sun GPL'd is protected by the GPL's patent grants, but if there are relevant patents outside of the source code, this could still be a sticky situation. I'd like to know more about the GPL covered patents vs. the non-covered patents.

    20. Re:Alternatives? by Anonymous Coward · · Score: 0

      There are other benefits to a unified runtime. .NET and JVM let you mix and match libraries written in a wide selection of languages. On .NET/Mono, nothing holds you back from writing an application using a mix of C#, Python, Scheme, Prolog... Referencing parts of the program that are written in another language is as simple as using the standard library import construct, like "from x import y" or "using x.y;".

      Also, as there is only ONE runtime, for example, if you come up with an interesting optimization for the JIT compiler, all languages will instantly benefit from it.

      And, at last, the runtime (in theory) could be integrated more tightly with the operating system. Today, if you have two Python apps using the same external Python module, the module's bytecode is stored in memory twice, initialized twice, etc. That's a waste of memory, isn't it?

      Better interop, less duplication of effort, better performance, smaller memory footprint... I'm sure I could think of more.

    21. Re:Alternatives? by caluml · · Score: 1

      I'm usually shocked by how little awareness there seems to be of just how much business software is in Java

      Yep. It really shows up who have worked for the really big corporations, and those who have worked for small to medium companies.
      Java is what big companies use (unless they've gone down the .NET route).

    22. Re:Alternatives? by thetoadwarrior · · Score: 1

      wxPython and Python will do that.

    23. Re:Alternatives? by Anonymous Coward · · Score: 0

      Why hasn't FOSS come up its own managed runtime+language stack?

      You mean like Perl, Spidermonkey, YARV, CPython or Parrot? Well, because they were too busy with their own thing, I guess.

    24. Re:Alternatives? by Dragon+Bait · · Score: 1

      Mod parent up ... I'm finding Qt combined with boost to cover nearly all my cross-platform (Linux / Windows) needs.

    25. Re:Alternatives? by mangu · · Score: 4, Funny

      wxWidgets - helping X-windows newbs like me since at least 1997.

      Why do you want X-windows newbs to like you?

    26. Re:Alternatives? by burnttoy · · Score: 1

      LOLCODE

      Don't make me laugh...

      --
      Time flies like an arrow. Fruit flies like a banana.
    27. Re:Alternatives? by digitalPhant0m · · Score: 1

      Even if the JCP dissolves, many developers will be left with few alternatives,' with .Net offering little advantage, and Perl, Python, and Ruby unable to match Java's performance.

      I'm glad to see a logical argument on the portability of [Objective-]C[++]. These languages surpass Java's performance, and although they are compiled as the parent has stated, just as portable, and even more distributable than Java.

      I think the reason people are 'shaking in their boots' about Java, is that there are tons and tons of developers that only know Java. Big business will have shot themselves in the foot by hiring cheap labor that is a 'one trick pony', as opposed to hiring highly skilled OBJ/C/C++ developers. And on the flip side, said Java developers will have to re-train.

      It's simply amazing to me the over abundance of languages there are to get a job done, often the same job, simply because people are too afraid to learn languange like C/C++.

    28. Re:Alternatives? by prockcore · · Score: 5, Insightful

      Show me a GUI "Hello, world!" that'll run on every platform Java does

      javascript:alert("Hello, World!");

    29. Re:Alternatives? by Keruo · · Score: 1

      QT is not just desktop, Maemo/Meego and Symbian devices are(or will soon be) QT compatible. That's big chunk of mobile market, both smart and dumbphones.

      --
      There are no atheists when recovering from tape backup.
    30. Re:Alternatives? by Tetsujin · · Score: 1

      I'd love to see something utilizing LLVM. I'm not convinced the OSS community has the organizational capability. I'm also not sure GPL people would work on something BSD-licensed. Instead, they'd try to reinvent the wheel, it would go nowhere for years, and nothing would come of it.

      It seems to me that organizational capability really is the big issue here...

      The GPL vs. BSD thing you mentioned is certainly a part of that. But basically, developing a piece of common infrastructure also requires getting people to use it... That means it either needs to be valuable enough (i.e. serving an important, known need that's scarcely met by other packages) that people will want to use it, or there needs to be a system of leadership that allows the proponents of the package to get it entrenched. The former is very hard to accomplish for technical reasons (making something that people need, making sure they know they need it, making it good enough that they'll know it's right for them, inspiring enough confidence that they won't worry it will break or not last), while the latter is hard to accomplish for organizational reasons.(you need to have enough influence to pull it off.)

      --
      Bow-ties are cool.
    31. Re:Alternatives? by Bigjeff5 · · Score: 1

      What's the point of a GUI if it looks like shit?

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    32. Re:Alternatives? by mini+me · · Score: 1

      Have we already forgotten where Java came from?

      It is no coincidence that Java shares a lot of commonality with Objective-C. Java, in the early days, was designed by people who came from an OpenStep background. OpenStep was a specification for cross-platform development framework from NeXT and Sun, implemented on their platforms and others including Windows.

      What Java brought to the table was the Virtual Machine. The cross-platform framework problem had already been solved before Java.

    33. Re:Alternatives? by losinggeneration · · Score: 2

      Obviously not the most accurate way to do a benchmark, but just throwing this out there:
      # Parrot with it's compiled byte-code
      fib(28) = 317811 1.11825299263s
      parrot -c fib.pbc 1.12s user 0.01s system 99% cpu 1.130 total
      # Parrot
      fib(28) = 317811 1.1524600982666s
      parrot fib.pir 1.15s user 0.01s system 99% cpu 1.165 total
      # Mono C#
      fib(28) = 317811 Elapsed: 00:00:00.0094437
      mono fib.exe 0.02s user 0.01s system 98% cpu 0.030 total
      # Python 2.7
      fib(28) = 317811
      python2 fib.py 0.36s user 0.02s system 99% cpu 0.379 total
      # Ruby 1.9.2p0
      fib(28) = 317811
      ruby fib.rb 0.13s user 0.00s system 97% cpu 0.136 total
      # Perl 5.12.1 fib(28) = 317811
      perl fib.pl 0.56s user 0.01s system 99% cpu 0.572 total


      In Parrot's defense, they have been putting more work lately into optimizations (ever since Rakudo started to become moderately popular and performance issues came up.) Also keep in mind that parrot hasn't really been at a "stable" version for nearly as long as any of the others this "benchmark" was against. Also, IIRC, the philosophy behind Parrot tends to be, "write the code correctly, then optimize, for its easier to optimize code that's correct to begin with then to try to optimize code that's already broken." Or at least something to that effect.

      Anyways, I find Parrot to be an interesting project, that I seriously hope can continue improving so the FOSS community can have a good, general purpose VM to work with (Sure the Mono CLI should be safe since it's an implementation of an open standard, but Parrot doesn't have to worry about even that since it's an original implementation.)

    34. Re:Alternatives? by fishbowl · · Score: 1

      Are you saying that Websphere and Weblogic don't have any JSF dependencies?
      The last time I looked, there were very significant Apache dependencies in both Weblogic and Websphere.
      Even Jetty will have some Apache stuff in its pom.xml, won't it?

      --
      -fb Everything not expressly forbidden is now mandatory.
    35. Re:Alternatives? by Anonymous Coward · · Score: 0

      Anyone have any details on Parrot's JIT plans versus say something like LUA's JIT, LLVM or unladen swallow?

      Unless they have a clear road map for JIT inclusion, and in the near future, relevance of Parrot becomes more and more questionable. If they are looking at years before they can hope to have any JIT offering, let alone a competitive solution, I'm honestly not sure who's going to care outside of the Perl camp. After all, if they wait too long, projects such as pypy, snakeskin, lua jit, unladen swallow, etc., will have garnered too much traction with too much work to consider Parrot.

      And with the successful projects such as LLVM and its VM+JIT, doesn't it largely already eclipse the intended direction of Parrot? LLVM's VM is purposely designed to be generic (Parrot's claim to fame) and its JIT is already fairly robust. This is, after all, exactly why various projects are already looking to it for their VM+JIT solution. Especially considering, from a resource perspective, LLVM gets love from both Apple and Google, not to mention some university resources.

      At the end of the day, unless something amazing happens with Parrot, it appears the writing on the walls seriously numbers Parrot's days.

    36. Re:Alternatives? by Sheik+Yerbouti · · Score: 1

      Hey all that business software used to be in COBOL or Visual Basic or Visual C++ maybe it's time to move on and let Oracle just have Java all to themselves. Personally I was never impressed with Java.

    37. Re:Alternatives? by nigham · · Score: 5, Insightful

      Show me a GUI "Hello, world!" that'll run on every platform Java does

      javascript:alert("Hello, World!");

      Hit the nail on the head. Why in the world would anyone decide the future of a language based on its ability to write GUIs in today's web world is a mystery.

      --
      I don't want to read /. I want to go home and re-think my life.
    38. Re:Alternatives? by smcdow · · Score: 0, Troll

      Dang! Out of mod points! Anyone who's developing thick-client GUIs in this day and age is a fool.

      --
      In the course of every project, it will become necessary to shoot the scientists and begin production.
    39. Re:Alternatives? by mario_grgic · · Score: 2, Informative

      I know C, C++, Perl, Python, Ruby, LISP, BASH, awk, FORTRAN (don't ask, math departments like their FORTRAN) but none of these can take the place of Java's speed comparable to C++ (3 times slower), portability including GUI (compile once and run anywhere), availability of cross platform mature tools (even though I love my VIM), availability of mature libraries and frameworks etc.

      Really, if JVM went away currently there is nothing that can replace it. C#/.NET is the complementary counterpart of Java/JVM but it's not as wide spread (I deploy my software on Solaris, AIX, HPUX, Linux, Windows, AS/400 and OS X).

      --
      As the island of our knowledge grows, so does the shore of our ignorance.
    40. Re:Alternatives? by Anonymous Coward · · Score: 0

      Please come back to reality. The Perl, Python, Ruby and Io implementations are horribly naive and don't provide anything even remotely close to what the JVM provides. For fucks sake, several of them still use a primitive reference counting GC, and none of them can even do proper threading without falling back to C. LuaJIT is an amazing piece of software, so I'll give you that.

    41. Re:Alternatives? by Transfinite · · Score: 1

      Mod all parents up: I agree, I work for a large, equally lumbering, asinine, corporate. We have both .NET anD Java. Java being the most embedded. Java does suck, this is because it's part of a model that's changing. Java was OK for desktop apps. That though is a diminishing industry, more apps are being clouded and 'webbyfied'. HTML5 allows for proper apps, not pretend one's. The web does not run on Java. It does some things badly, concurrency. The lingua franka is the web, It's HTML5, Javascript, it's network programming (HTTP 1.1), it's non-blocking, a different kind of efficiency. Erlang could be great. Projects like NodeJS, no Java there I think, allow you to program 'web'. Unfortunately the problem here is that the 'corporates' don't like this approach it's not 'enterprise' enough for them. Not that 'enterprise' actually means, well, anything. Fuck the corporates, there to fucking, slow, stupid and self-serving. We need a new economy, a new way of things.

    42. Re:Alternatives? by imroy · · Score: 0, Troll

      wxWidgets - helping X-windows newbs like me since at least 1997.

      The correct name is " The X Window System ". So yes, you clearly are a newb.

    43. Re:Alternatives? by Anonymous Coward · · Score: 2, Insightful

      Okay. Show me a webapp that can print forms to meet government requirements or fill in fields on preprinted forms.

      Printing is just the lowest hanging fruit. There are literally 1000 things that you can't currently do in a web app.

    44. Re:Alternatives? by Anonymous Coward · · Score: 0

      wxWidgets - helping X-windows newbs like me since at least 1997.

      Why do you want X-windows newbs to like you?

      Maybe he likes man bewbs?

    45. Re:Alternatives? by TheRaven64 · · Score: 2, Interesting

      There are other benefits to a unified runtime. .NET and JVM let you mix and match libraries written in a wide selection of languages

      I can mix code written in a variety of languages without using any runtime at all. That's what shared library ABIs are for. No need to add another abstraction layer.

      --
      I am TheRaven on Soylent News
    46. Re:Alternatives? by danielberm · · Score: 1

      ROTF!!!

    47. Re:Alternatives? by bored · · Score: 5, Insightful

      Anyone who's developing thick-client GUIs in this day and age is a fool.

      Right, except when you want to do anything more advanced than basic text/form manipulation. If you go beyond that, it takes 10x as long fighting with javascript/dom/css/etc wedging your UI into html, than the effort it takes to port it to 20 different platforms. There is a reason html is adding a canvas tag. The problem with canvas, is that its the equivalent of giving a modern UI programmer an assembler.

    48. Re:Alternatives? by Kaz+Kylheku · · Score: 1

      Why hasn't FOSS come up its own managed runtime+language stack?

      Lisp implementations (of which there are FOSS examples) predate all this Java and C# hoopla.

      They compile to real machine code. (You don't need inefficient byte code in order to be "managed").

    49. Re:Alternatives? by AmaDaden · · Score: 1

      Most of the time that JavaScript file was uploaded by a Java server. There is a good reason that twitter moved from Ruby to Scala, Scala runs on the JVM and the JVM is fast (despite what people tend to think).

    50. Re:Alternatives? by AmaDaden · · Score: 1

      I know this sounds like I'm trolling but the speed of the JVM blows Python out of the water.

    51. Re:Alternatives? by VGPowerlord · · Score: 1

      Are you saying that Websphere and Weblogic don't have any JSF dependencies?
      The last time I looked, there were very significant Apache dependencies in both Weblogic and Websphere.

      Lets take a look, specifically at JSF implementations.

      Weblogic uses "Sun Microsystems JavaServer Faces Implementation" 1.2-b20-FCS - or 1_2_03-rc2. (Source)

      Websphere 7 has the option of two JSF implementations. The default is "Sun Reference Implementation 1.2." The other option is Apache MyFaces 1.2. (Source)

      Sounds to me like the reference implementation of JSF 1.2 is the preferred version in these two products!

      Even Jetty will have some Apache stuff in its pom.xml, won't it?

      Jetty's main configuration file is jetty.xml.

      pom.xml is part of an Apache Maven project. Even if you choose to deploy said project to Jetty, that file will not be present in the war/ear file you deploy to Jetty.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    52. Re:Alternatives? by PhilipTheHermit · · Score: 1

      Relax. You can use C and GTK for desktop apps, and PhP for web pages. And if you want to use C#, you can find a port of Mono for all of those platforms, I'm sure.

      --
      Thus spake the master programmer:
      "When the program is being tested, it is too late to make design changes." (Tao)
    53. Re:Alternatives? by Anonymous Coward · · Score: 0

      It is no coincidence that Java shares a lot of commonality with Objective-C

      Like what? That they're both object oriented?

      Beyond the features you'd expect to be any class-based OO language (of which ObjC is one amongst billions), I can't think of any commonality between the languages at all. The syntax is different. The object management model is different. They compile to different platforms with different assumptions. The "standard libraries" (OPENSTEP vs JME/JSE/JEE) have virtually nothing in common.

      Both languages have something in common but in entirely different ways: both were heavily influenced by Smalltalk. However, Objective C was heavily influenced by the message passing and syntactical aspects of Smalltalk, while Java was more drawn to the object management model. Some how, I don't think James Gosling thought to himself "My, the best part of Objective C is that it's influenced by Smalltalk. We should make our language influenced by it too!"

    54. Re:Alternatives? by RocketRabbit · · Score: 1

      Transcript show: "Hello World."

      There it is in Squeak Smalltalk, which runs on pretty much everything out there. Not only that, but EVERYTHING about Squeak is cross platform.

      Of course some people can't get over the fact that your IDE and your application and everything else about the system are melded into one beautiful edifice, small and lean and a hundred thousand times more object oriented than Java, but that's ok.

    55. Re:Alternatives? by SplashMyBandit · · Score: 1

      Man I tried really really hard to build a decent interactive UI in GWT (the best of the bunch) and it was still far short of what I wanted. So I built an applet (as unfashionable as they might be) with a JAX-WS back end to the server and everyone who uses it goes, "wow!", especially with the lovely Nimbus theme. Everyone already has Java installed and most have it pre-loaded/cached and the applet gets cached locally as well. Starts as fast as an AJAX app but is a *lot* more functional/intuitive to use. If you have basic web sites then AJAX is sufficient, for me an applet is a completely kick-ass solution (despite the naysayers who's mental model is applets from the 1990's, which appears to be you too).

    56. Re:Alternatives? by volkram · · Score: 1

      Enter GWT w/ Smart GWT. Don't look back, you'll cry at how much time you wasted.

    57. Re:Alternatives? by thetoadwarrior · · Score: 1
      That may very well be true but there was absolutely no mention of performance. He asked for a cross-platform 'hello world' gui app.

      Show me a GUI "Hello, world!" that'll run on every platform Java does - even if Java windows look like shit. Java isn't just a cross-platform language, it's also a cross-platform toolkit that hides all the OS specifics, far more than any of the languages you mention.

      That said there is always PyPy for getting more performance out of Python and I suspect we'll further options with better performance in the future.

    58. Re:Alternatives? by master_p · · Score: 1

      #include <QApplication>
      #include <QPushButton>

      int main(int argc, char *argv[])
      {
      QApplication app(argc, argv);

      QPushButton hello("Hello world!");
      hello.resize(100, 30);

      hello.show();
      return app.exec();
      }

    59. Re:Alternatives? by mr_bubb · · Score: 0

      But which is Kaiser Wilhelm? Excellent WWI reference. Wish I could mod you up.

    60. Re:Alternatives? by MightyMartian · · Score: 1

      Well, if we're going to carry the analogy over the brink, then I'd have to say that IBM is Germany, Oracle is Austro-Hungary, and Apache and all the rest on the other side are the Allies.

      Maybe a Star Wars analogy is better, because Darth Vader is much uglier than the Kaiser.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    61. Re:Alternatives? by Crayon+Kid · · Score: 1

      Really, if JVM went away currently there is nothing that can replace it.

      Not instantly, but eventually...

      Let's take a look at the alternatives. We have Python, C and C++, as well as plenty of non-proprietary widget platforms, of which Qt is also well supported on mobile devices. I've kind of had it with companies who bait you inside their ecosystem only to trap you there. When you spend more time looking over your shoulder for fear of patent lawsuits than programming, something's wrong.

      --
      i ate crayons when i was a kid and now i have two braincells and the blue ones taste nicer
    62. Re:Alternatives? by Billly+Gates · · Score: 1

      The GUI problem is fixed. Eclipse does not use swing but rather SWT which gives it a native look and feel.

      Swing does look ugly on Ubuntu but it looks native with GTK+ on other distros by using the correct theme. That is an Ubuntu bug. On fedora they look like native Gnome apps. The spew from the anti java crowd is very old.

    63. Re:Alternatives? by Anonymous Coward · · Score: 0

      it is x-window (no s, bitch!)

    64. Re:Alternatives? by ohiovr · · Score: 1

      ur gay

    65. Re:Alternatives? by TheSunborn · · Score: 1

      True, GWT is a life saver compared to pure javascript.

      But I would still prefer to write the application I am currently working on with swt+java instead og GWT. (But it's the admin part of our website, so it kinda make sense to make it web-enabled. People would be confused if they could not administrate the website from the web.

    66. Re:Alternatives? by m50d · · Score: 1
      So use a library that handles it for you, just like with anything else.

      Honestly, if someone told me to write a GUI in java tomorrow, I'd sooner use Wicket for it than Swing.

      --
      I am trolling
    67. Re:Alternatives? by Anonymous Coward · · Score: 0

      Can you write a class in Python, subclass it in Perl, instantiate it in Ruby and then invoke it from PHP script? It's simply not possible, not only because most of these languages do not generate any linkable executable code but because there's no common type system, no standard way to encode symbol names and no common packaging system. And let's not get get started on threading and memory allocation issues.

      With a runtime like the JVM or .NET, you get all these for free.

      Writing all the common functionality in C and making it available as a shared library ABIs is not a great solution, even assuming you don't take a huge productivity hit by coding in C. Python, Perl, Ruby and PHP all have their own quirky way of linking against C ABIs, with the end result being that they all have to roll their own bindings for GTK, MySQL, Cairo and whatnot, all of wildly varying quality.

      On the JVM and .NET, you need only write the binding once and all the languages supported by the runtime have access to it.

    68. Re:Alternatives? by TheRaven64 · · Score: 1

      I can write a library in C or C++, call it in an Objective-C class, subclass that class in Smalltalk, add methods to it in a Smalltalk category, and then use that object as a prototype in a dialect of JavaScript without needing a VM. Perl, Ruby and PHP are red herrings, because they are all currently implemented as VMs, while I specifically talked about not using a VM at all.

      --
      I am TheRaven on Soylent News
    69. Re:Alternatives? by fishbowl · · Score: 1

      Quite a lot of SAP customization and integration has been done in Java. I'm not allowed to say publicly whether SAP sucks or not, but that's beside the point.

      --
      -fb Everything not expressly forbidden is now mandatory.
    70. Re:Alternatives? by Anonymous Coward · · Score: 0

      You've obviously not tried Adobe Flex/AIR. It's think-client technology that builds amazing RIA apps.
      Runs on mobile phones, desktops, tablets, and TVs.
      Client side caching makes an app much more responsive.

    71. Re:Alternatives? by buchner.johannes · · Score: 1

      [Objective-]C[++], Pascal, Fortran, or whatever is just as portable as Java, if not more so.

      Show me a GUI "Hello, world!" that'll run on every platform Java does - even if Java windows look like shit. Java isn't just a cross-platform language, it's also a cross-platform toolkit that hides all the OS specifics, far more than any of the languages you mention.

      wxWidgets - helping X-windows newbs like me since at least 1997.

      People answering Qt, wxWidgets, .NET etc do not understand this point.

      Java is designed to be platform independent. It is not only implemented to be platform independent. They actually have/had people crafting APIs. Look for instance at the Bluetooth API. It is straightforward, can be explained and so on. It is not implemented in Java itself, but the API has been crafted so that others can implement it beautifully. And it works! There are implementations by various providers for their hardware. You never have to deal with the specific hardware.
      Look at .NET on the other hand: You have a number of libraries trying to bring Bluetooth onto .NET. Some are nice. But nowhere is guaranteed that
          - you can work with the same API with different Bluetooth hardware
          - you can work with the same API with different OS hardware (e.g. mobile device vs. desktop)
      With Java you can develop and unit-test your mobile app on your desktop. With .NET you need an emulator.

      This is the difference between a library that provides abstraction for one aspect, and implements it for a range of systems (like wxWidgets provides a GUI delegating to OS-specifics), and a true platform, or virtual machine in the true sense of the word, that hides all aspects from you.
      It does not matter if you don't like Java's syntax. Build on the JVM. There is nothing like the JVM, nothing that has the same attitude.

      PS: There is a nice API talk on googletalks by a Java designer.
      PPS: The alternative to this Oracle suing is to move to Europe :-)

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    72. Re:Alternatives? by DragonWriter · · Score: 1

      Why hasn't FOSS come up its own managed runtime+language stack?

      It has. Several, indeed.

      YARV+Ruby
      Rubinius VM+Ruby
      BEAM+Erlang
      Python VM+Python
      Parrot+(Various languages)
      SEAM+Alice
      SEAM+Oz
      Mono+(various languages)
      (Various open Java implementations)+(Various languages)

      Or is open source just too tribal and fragmented to coordinate on something so big and cross-disciplinary?

      I think that, in the real world, while VM-level integration has some benefits, they are fairly minimal compared to integration through other well-defined and documented interfaces. Consequently, expending extensive effort on the "one true VM" isn't something for which there is a very strong incentive except when you are a commercial software or services vendor for whom it serves as a source of lock-in to your software or services.

      Further, some of the advantages that are provided by a shared VM are less relevant in an open-source universe, since distributing source that can be run (with an initial compilation, for languages where that is a separate step) on any platform works for FOSS software (and even some non-FOSS software, since exposed source doesn't mean an open-source license), whereas the ability to provide portability to binaries is far more relevant to software vendors who don't want to expose their source code.

    73. Re:Alternatives? by badkarmadayaccount · · Score: 1

      Anybody heard of JRuby?

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    74. Re:Alternatives? by AmaDaden · · Score: 1

      Yeah it's a cool project and another reason why the JVM is what matters not Java it self.

      If you are referring to what I said about twitter there are several reasons I can think of why they would move to Scala instead of using JRuby. The main one is that the JVM does not yet have native support for weakly typed languages. JRuby is fast but held back by the need to make a weak typing layer over the JVM. The Da Vinci project will fix this but there is not yet a release of Java that plans to include it.

      The other two reasons are that
      1) I'm guessing twitter is a small application so a full rewrite is not a big task
      2) Scala is designed for scaling (hence the name) while Ruby was designed to be a fun language to write in that got back to the SmallTalk roots of OOP

  3. Google Go on android? by falldeaf · · Score: 1

    It kind of sounds like Oracle is shooting themselves in the foot with these suits against google...

    --
    check out the Mp3 Garbler I built!
  4. C# by Xugumad · · Score: 3, Interesting

    Maybe I'm being naive, but right now C# looks fairly tempting. MS aren't pulling strange "premium VM" tricks, Mono is well developed and generally works as expected, and it's not a huge leap in terms of language. Many libraries in Java have C# equivalents (Bouncy Castle, iText, etc.). If we were going to leap from Java, C# would definitely be top of my likely destinations.

    But no, obviously we're more likely to jump to a language I've never heard of before, with none of the libraries we use, and no experience base to pull from...

    1. Re:C# by Anonymous Coward · · Score: 5, Insightful

      With Microsofts history over the past 20 years, I'd say they won't pull any strange tricks until enough people have adapted it and are locked in, then they will suddenly have a change of heart. It's only Microsofts kind heart that keeps C# and Mono open enough, not *anything* legally binding.

    2. Re:C# by Anonymous Coward · · Score: 1, Informative

      They said the same thing about Java, now look we're we are.

    3. Re:C# by Lennie · · Score: 0

      Multiplatform ?

      --
      New things are always on the horizon
    4. Re:C# by Mongoose+Disciple · · Score: 2, Interesting

      I think C# is well poised to scoop up the niche Java filled in businesses/enterprise -- when Java stagnated, it was the existence of a constantly-improving C# that forced Java to improve as well again. Similarly, I don't see any reason that C# isn't a good replacement for the kinds of web applications that previously would have been written in Java. (Note that this is not all web apps.)

      I'm less sure about C# in the embedded/mobile space -- I don't have a lot of expertise with either, and these have been huge markets for Java.

    5. Re:C# by subanark · · Score: 1

      You can use IKVM to run most Java libraries in the c# (mono or .NET) environment.

      I like that c# is progressing much faster than Java is. Java has been stuck in version 6 for quite a while now; version 6 only has a few slight language changes from 5.

      However, I think c# goes a bit too fast; it has some language bloat where there is not a clear direction on where things are going. Many non-intuitive language features make understanding code more difficult. The core library is the worst offender, as it has a lot of Microsoft specific features that were not made very extensible. Many library functions can change the way the language operates and compiles, making it harder to build robust libraries and code that works well with the unknown.

    6. Re:C# by FreelanceWizard · · Score: 1

      One word: Mono.

      --
      The Freelance Wizard
    7. Re:C# by Raenex · · Score: 4, Insightful

      Maybe I'm being naive, but right now C# looks fairly tempting.

      Yes, you are incredibly naive. People are looking to flee Java because of the greedy and proprietary corporation behind it, Oracle, and you think they should run into the arms of Microsoft? Get a clue.

    8. Re:C# by overnight_failure · · Score: 1

      I'm guessing you don't know much about Mono then.

    9. Re:C# by Anonymous Coward · · Score: 0

      I personally feel C# is a better language than Java. I always have (but I got burned many times by idiotic stuff in Java back in Java's early days of the 90's). But I have stayed away from it because of Microsoft. Plus it feels somewhat bloated for some reason. There is just so much shit that has to be installed to make .NET or Mono work. On top of that, Mono/C# is absolute crap on OSX.

      If you haven't heard if Go then I don't consider you a developer of any skill. It's an interesting language for sure but over all these decades there has never been any C/C++ replacement that has worked, I'm not so sure Go will fare any better. Previously Go was severely limited by the platforms it supports but it looks like they have fixed that at this point, I might have to take a look at it again.

    10. Re:C# by Mongoose+Disciple · · Score: 1

      For this specific kind of thing, Microsoft has never been the kind of antagonist that Oracle is. It just hasn't been, and there isn't any reasonable and true set of facts you can pull to make it so.

      Or are we just ignoring that because we hate Microsoft more than we like actually getting things done with our code?

    11. Re:C# by Anonymous Coward · · Score: 3, Insightful

      Congratulations, you have proven parent poster's point.

    12. Re:C# by gmuslera · · Score: 5, Insightful

      So, as the actual problem with java is the corporation that "owns" it decided to misbehave, you propose to switch to another language, from another corporation, for which misbehavig is their way of life?

    13. Re:C# by Raenex · · Score: 3, Interesting

      For this specific kind of thing, Microsoft has never been the kind of antagonist that Oracle is.

      Bwahahhaaa. Hahaahahahahaha.

      Sorry for being crass, but this statement is just so ignorant. Are you saying that Microsoft doesn't have free versions and for-pay versions? Are you saying Microsoft doesn't have a past history of being an abusive monopoly? Are you saying Microsoft has never sued anybody over patents?

    14. Re:C# by BitZtream · · Score: 2, Interesting

      C# is only worth mentioning on Windows.

      Mono my run CLR apps and may have compilers for it, but the Mono VM is absolutely shit and can't be used for any serious long running process.

      It works fine for lightweight desktop apps, but until they learn what a compacting garbage collector is, its entirely worthless for anything thats intended to have any sort of up time associated with it.

      Having to restart my webserver regularly due to Out of Memory errors, or worry about allocation order to prevent fragmentation are not something I want to deal with when I'm writing web apps or background services.

      When I get to the point that I'm thinking about memory allocation/deallocation and fragmentation, I'm just going to use C.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    15. Re:C# by geekoid · · Score: 1

      C# is fine for desktop apps, but if you want to do anything tight, then you will be disappointed.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    16. Re:C# by Anonymous Coward · · Score: 0

      Mono is horrible for anything with a GUI. I've tried running numerous .Net apps on linux (openSUSE, Ubuntu) with a powerful graphics card and it's pretty much unusable. Whereas Java GUI apps run perfectly on linux.

    17. Re:C# by Mongoose+Disciple · · Score: 3, Informative

      Are you saying Microsoft doesn't have a past history of being an abusive monopoly? Are you saying Microsoft has never sued anybody over patents?

      With respect to its languages and development tools, no, not so much.

    18. Re:C# by silanea · · Score: 1

      [...] Or are we just ignoring that because we hate Microsoft more than we like actually getting things done with our code?

      Maybe we just take a look at Microsoft's behaviour up until today and judge their future reliability by that? Oh, wait, that is what Raenex already did. Nevermind.

      --
      Rudolf Hess edited Mein Kampf. He was the very first grammar nazi.
    19. Re:C# by mcvos · · Score: 4, Insightful

      For this specific kind of thing, Microsoft has never been the kind of antagonist that Oracle is.

      How short your memory is. Remember when Microsoft tried to destroy Java?

    20. Re:C# by Anonymous Coward · · Score: 0

      Another problem with Go is that it currently has no dynamic library loading mechanism. Everything is static which means the executables are huge and wasteful. Obviously that feature is coming but it has been a long wait so far.

    21. Re:C# by Richard_at_work · · Score: 1

      And yet people are strangely willing to trust IBM despite them being much worse than Microsoft in the past.

    22. Re:C# by Raenex · · Score: 4, Insightful

      With respect to its languages and development tools, no, not so much.

      Before Mono, all their language and development tools were based around the Windows operating system. Given the history of Microsoft, trusting them to behave nicely with cross-platform computing is foolish. At the end of the day, the only thing they care about is locking people in to Windows.

    23. Re:C# by Mongoose+Disciple · · Score: 1, Insightful

      I think your choice of the word destroy is more rooted in your biases than fact, and even giving you that I don't see it as relevant.

      It's a big-ass corporation. Trying too hard to generalize their actions in a number of areas over the course of decades is about on the level of deciding that everyone who writes free software probably killed their wife. (And just so we're clear, I'm saying that second thing would be stupid.)

    24. Re:C# by interval1066 · · Score: 2, Informative

      Whether Silverlight

      "The world was abuzz with HTML5 and Silverlight innuendo after the SL platform was all but ignored at PDC10. Silverlight developers were furious over what they deemed to be something of a betrayal by Microsoft, nullifying endless hard work."

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    25. Re:C# by Richard_at_work · · Score: 3, Interesting

      The way I see it playing out (I'm a .Net developer that works heavily in the London, UK market) is Java becoming the Cobol of the future in that it takes the position of the top end of the enterprise market (London Stock Exchange level of operation) while .Net takes a significant chunk of Javas small to medium enterprise work (we sell a heck of a lot of ASP.Net sites, no one asks us for Java even tho we have the capability and we get a few PHP/Python/Ruby queries, again even tho we have the capability).

    26. Re:C# by characterZer0 · · Score: 1

      Who is willing to trust IBM?

      --
      Go green: turn off your refrigerator.
    27. Re:C# by Xugumad · · Score: 1

      Thing is, I can move to Kaffe, right, for Java?

      However, do I want to? Well, it's a bit like a cut down version of Java. It never seemed to work as well, or as fast. The language seems to be moving slowly.

      C# on the other hand has Mono, which is fairly much the platform to use for non-Windows, and even sometines with Windows. It's a faster moving language that as-is improves on parts of Java, and is making good progress fowards. I'd argue it would be a lot harder for MS to successfully pull evil tricks with C#...

    28. Re:C# by jabjoe · · Score: 1

      Especially if they pick up a load of Java business. Then there is no way they are going to just let Mono/Linux have any more of the pie then they can't prevent. If Java goes down in flames and C# picks up the pieces we are stuffed, even if Windows is your platform of choice (think IE after they owned the browser). Maybe worse than ever because it's not just the API they control, but the language. I know many think this is crazy tin hat stuff, but to me it echoes past behaviour and it seems like some would go for an easy life today for a nightmare tomorrow. At the end of the day, it's what makes money not provides service, you only get service when the two line up. Yer, mark me down, I hope I'm wrong too.

    29. Re:C# by Mongoose+Disciple · · Score: 1

      But since we're talking about replacing Java, is that relevant?

      I mean, I wouldn't write anything that had to be extremely resource lean in C#, but I wouldn't write it in Java, either.

    30. Re:C# by Anonymous Coward · · Score: 0

      For this specific kind of thing, Microsoft has never been the kind of antagonist that Oracle is.

      Were you around in the early days of Java - late 90's - early 00's? MS had a fairly antagonistic 'embrace and extend' policy towards Java where they added their own extensions to try to cripple the cross-platform aspects (http://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish). They eventually settled with Sun.

    31. Re:C# by arose · · Score: 1

      So what is Oracle's past history with standardized languages that they have significant control over? I know Microsoft has none, so a narrow view like that really isn't helpful with them.

      --
      Analogies don't equal equalities, they are merely somewhat analogous.
    32. Re:C# by Gadget_Guy · · Score: 0, Troll

      With Microsofts history over the past 20 years, I'd say they won't pull any strange tricks until enough people have adapted it and are locked in, then they will suddenly have a change of heart.

      When have Microsoft ever had a "change of heart" and clamped down on something of theirs that was previously open? What is the precedent over the 20 year period to which you refer?

      Before anyone answers with FAT32/Tom Tom, Microsoft never opened (or encouraged anyone to use) FAT32 before they started licensing it. They also didn't sue anyone for years after they began their licensing program.

      And how about those software projects that have not been officially sanctioned by Microsoft? How is Wine going? And ReactOS (even after there were claims of disassembled MS code in the project)? Still no legal action.

    33. Re:C# by Anonymous Coward · · Score: 1, Funny

      sudo apt-get purge ...

    34. Re:C# by Pastis · · Score: 5, Informative

      The word is not destroy but kill.

      http://www.justice.gov/atr/cases/f1700/1762.htm#N_57_

      "Naturally, we would never do it, but it would give us some idea of how much time we have to work with in killing Sun's Java."

    35. Re:C# by jabjoe · · Score: 1

      I think Wine and ReactOS have not been targeted because they aren't big enough to be worth the major bad PR. Example, what about WISE ? http://en.wikipedia.org/wiki/Windows_Interface_Source_Environment seams like we might be set to fool for the same trick twice. http://www.theregister.co.uk/1999/07/18/analysis_how_ms_used/

      A open standard isn't really enough : http://tuxdeluxe.org/node/296

    36. Re:C# by Anonymous Coward · · Score: 0

      ASP.NET, Windows Forms, ADO.NET is not safe to use on mono

    37. Re:C# by jabjoe · · Score: 4, Interesting

      http://www.theregister.co.uk/1999/07/18/analysis_how_ms_used/

      Just swap Win32 for .NET, WISE for Mono, Java for POSIX (though not mentioned in this article by name) It's just a little bit of history repeating.......

    38. Re:C# by Mongoose+Disciple · · Score: 1

      Yes; Java was never Microsoft's baby. At the time, the claim (which never actually materialized) was that it was going to make OSes irrelevant.

      I don't trust them to not try to kill someone else's kids that they think might beat up their kids, but in this sense I trust them to not kill their own kids.

    39. Re:C# by losinggeneration · · Score: 1

      Maybe worse than ever because it's not just the API they control, but the language.

      Sure, they control the language, but it's typically not the language (or even a few of the standard libraries) that is of concern since it's an open specification. Where the, "we might have cause for concern" comes in is all the libraries/API that Mono implements that is not part of the standard (the .NET framework for instance.) IANAL, but I think they'd have a hard time with any lawsuit against Mono C#, the VM, and the few open spec libraries. On the other hand, I could see it something coming about for the use of their API .NET. Though, IIRC, I think it might be another hard case since Microsoft has repeatedly given Mono developers direct consultation on various aspects of .NET.

      Anyways, just thoughts on the issue. See also: http://www.mono-project.com/ECMA

    40. Re:C# by Blakey+Rat · · Score: 1

      So Microsoft *could* harm Mono.

      On the other hand, Oracle *is* harming Java.

      It reminds me of a quote from Godzilla, when Dr. Serizawa is contemplating whether to use his WMD to destroy the monster (how's that for geeky references):

      "You have your fear, which might become reality; and you have Godzilla, which IS reality."

    41. Re:C# by Blakey+Rat · · Score: 1

      I remember when Microsoft tried to add some features to Java to make Java apps non-shit on Windows.

      Then I remember when Sun and the open source community completely (and irrationally) re-framed that as "they're trying to destroy Java!"

    42. Re:C# by Anonymous Coward · · Score: 1, Insightful

      Whether Silverlight

      "The world was abuzz with HTML5 and Silverlight innuendo after the SL platform was all but ignored at PDC10. Silverlight developers were furious over what they deemed to be something of a betrayal by Microsoft, nullifying endless hard work."

      I have to say, if you're still a developer for not-Windows Microsoft stuff, I'd think you'd have gotten used to direct betrayl and abandonment by Microsoft by now and learned to ignore it. I mean, after PlaysForSure, the Kin, WM7 destroying anything pre-WM7, and now Silverlight, you'd think you'd have found a pattern by now. And if you haven't, I'm not sure I'd want to hire you as a developer.

    43. Re:C# by Anonymous Coward · · Score: 0

      I have the opposite impression, in that I think Microsoft's main interest in promoting C# and allowing Mono to exist is to keep Windows relevant as a development platform. They offer compliers and tools in order to make it easy for people to develop for Windows. Which is to say they don't really care about monetizing their tools directly, much less languages, They care about selling Windows and standard applications.

      People have forgotten how craven a lot of tool vendors were in the 70's and 80's. They charged a lot of money per seat and they wanted a piece of your action (licensing fees for every copy of your program you shipped). Microsoft however never went that route. Oracle on the other hand they've always been like that.

      Not that I care very much but you look at how Java was open sourced and the upshot is, Java the language has restrictions that make it dubiously open source. In the end all it really has is one version that is 'free' The other versions are not free. Forking and modification isn't allowed.

    44. Re:C# by iluvcapra · · Score: 1

      How do you benchmark "tightness?" :/

      --
      Don't blame me, I voted for Baltar.
    45. Re:C# by StuartHankins · · Score: 1

      Mod parent up. Those who forget the errors of the past are doomed to repeat them. Trust Microsoft? After all they've done? You would have to be stark raving mad.

    46. Re:C# by Tetsujin · · Score: 1

      So what is Oracle's past history with standardized languages that they have significant control over? I know Microsoft has none

      Well, it's not standardized, I think, but there is BASIC...

      --
      Bow-ties are cool.
    47. Re:C# by Anonymous Coward · · Score: 0

      Mod parent up.

    48. Re:C# by Anonymous Coward · · Score: 0

      Is Mono still using the Boehm-Demers-Weiser gc? I.e. the "gc is hard, let's just use a magic malloc() someone else wrote so we dont have to think about it" solution?

      It's a great conservative gc, but conservative gc just plain sucks.

    49. Re:C# by Anonymous Coward · · Score: 0

      Have you ever heard of MFC?

      Have you opened a recent new C# application to find that the Linq libraries are already "included" for no apparent reason?

      Microsoft most definitely abuses it's market share to get people to use their stuff and make sure it doesn't work anywhere else.

      Thinking they will turn a blind eye when it comes to languages but screw the pooch for everything else is being overly naive.

    50. Re:C# by Anonymous Coward · · Score: 0

      Destroy is the word I would choose.

      You must be thinking of Hulk "destroy". I'm thinking more along the lines of Dr. Doom "destroy".

    51. Re:C# by Anonymous Coward · · Score: 0

      There are less than perfect things in c#: runtime library (messy, almost like java), the assembly/compilation model is crap, also ASP.net .

      And IMO, Visual Studio is much worse than Eclipse (not to even mention other Java IDEs) for serious work (not whipping out demos).

    52. Re:C# by EvilRyry · · Score: 2, Informative

      >but until they learn what a compacting garbage collector is Tada! http://www.mono-project.com/Compacting_GC The new GC is bundled with 2.8 and will become the default in 2.10. Mono's VM is pretty nice overall, its the GC that caused pain in long running process scenarios. Its not so much that the GC wasn't compacting either, it was more an issue because it was a conservative scanner which lead to leaks.

    53. Re:C# by gbjbaanb · · Score: 3, Informative

      From ZDNet coverage of the trial

      Antitrust prosecutors showed the CEO being asked about a May 1997 email in which Microsoft manager Ben Slivka said he soon would publicly disparage a Java product provided by Sun Microsystems.

      "JDK 1.2 has JFC, which we're going to be pissing on at every opportunity," Slivka told Gates in the email

      MS did want to hurt Java, to make it a Windows-only thing (or at least, keep Java-on-Windows developers entirely on Windows and not port their apps to other platforms). At no point did MS want to get rid of AWT or Swing, which are the main parts of Java that are shit on any platform and replace them with their own Java GUI technology.

    54. Re:C# by Rockoon · · Score: 1

      Before Mono, all their language and development tools were based around the Windows operating system.

      pssst.. Microsoft didnt begin with Windows (which began in 1985 with Windows 1.0, but you are probably talking about Windows 3.0 since prior to 3, Windows had almost no market share)

      I suppose you are going to think they started with MSDOS now... sigh..

      Microsoft began with programming languages.. and was the undisputed development king of the first desktops (Apple's, Commodore's, Altair's, Atari's, Tandy's ...)

      --
      "His name was James Damore."
    55. Re:C# by Anonymous Coward · · Score: 0

      Microsoft could just start suing users of .NET programs today if they so wanted.
      The reason they don't is because .NET is not widespread enough.

    56. Re:C# by Anonymous Coward · · Score: 0

      One Word: Patents

    57. Re:C# by Anonymous Coward · · Score: 0

      So what. Microsoft may well want to make as much money as possible. I figure I can as well by having the same C# applications run on Windows Phones, desktops, Android and Ipad devices via Mono.

    58. Re:C# by Rockoon · · Score: 1

      Indeed.

      The difference here is that nobody can cry fowl when Microsoft makes C# better, so the argument about Microsoft "destroying" JAVA is silly... as if they will "destroy" C#.

      Microsoft made Java better for those that used its stack, and got in hot water because of it due to licensing and patent issues. It wasnt because what they did was morally wrong, but instead only because it was legally wrong.

      --
      "His name was James Damore."
    59. Re:C# by Gadget_Guy · · Score: 1

      I think Wine and ReactOS have not been targeted because they aren't big enough to be worth the major bad PR.

      I agree that ReactOS is pretty insignificant at the moment (although I do have hopes for it), but Wine is the poster-child for running Windows apps on non-Microsoft platforms. I think it is definitely big enough to be on the radar.

      Example, what about WISE ?

      I don't see how WISE could be considered to be similar. I found it quite difficult to get any real details about the case, since most reports are vague about the details. However, according to the summary in Tech Law Journal:

      "Bristol had a contract with Microsoft that commenced in September 1994, and expired in September 1997, under which Microsoft provided Bristol with source code for Windows NT 3.0 and earlier OS software. Microsoft was not obligated under this contract to provide Bristol with Windows NT 4.0 or 5.0 source code, and Microsoft has not provided it to Bristol. Bristol and Microsoft negotiated, but did not reach, a contract to provide 4.0 and 5.0 source code."

      So it appears that Microsoft had contracted to supply the source to v3.0, and Bristol complained when MS wanted more money for a contact for 4.0 and up. That is nothing like what people are claiming that they will do with Mono.

      A open standard isn't really enough : http://tuxdeluxe.org/node/296

      What a stupid article. It complains because Microsoft implemented the standards strictly. I have always found it amusing that people complained when the file format of Office 2007 was different to the standardised Office Open XML (due to later changes in the standard), but then Micrsoft also copped flak because they implemented the ODF standard rather than the extensions used by OpenOffice.org. It seems that embracing and extending is good, but only if you are not Microsoft.

    60. Re:C# by Skjellifetti · · Score: 1

      Java occupies a niche? Seriously? Well I suppose if you define niche as just about the entire gamut of enterprise applications in the Fortune 500.

    61. Re:C# by Raenex · · Score: 1

      Microsoft began with programming languages

      Quite true. However, their monopoly dominance of the industry came in the 90s with Windows, so in the context of this thread, it's easy to overlook the pre-Windows era.

    62. Re:C# by poopdeville · · Score: 1

      QUACK

      --
      After all, I am strangely colored.
    63. Re:C# by Skjellifetti · · Score: 1

      You must have been about 10 years old when MS went after Netscape with fangs bared and tried to underhandedly kill Java.

    64. Re:C# by Mongoose+Disciple · · Score: 1

      The reason they don't is because .NET is not widespread enough.

      ... have you looked for a job recently?

      It's the most popular development skill in my market (in terms of frequency in job postings), with Java very close behind.

      I've lived/worked other places where that shakes out a little differently, but unpopular it's not.

    65. Re:C# by shutdown+-p+now · · Score: 1

      Silverlight is deemphasized as a "Flash killer" where it largely failed anyway. In its role as an "ActiveX killer" - i.e. as a rich web client platform for enterprise intranet - which is where it has in fact seen most use so far, it's going on just as strong.

    66. Re:C# by The+End+Of+Days · · Score: 1

      That "major bad PR" would be people who already hate Microsoft hating Microsoft more, if possible. It's probably not really much of a consideration.

    67. Re:C# by Serpent77 · · Score: 1

      Everyone keeps talking about MS controlling C#, lets not forget that the C# language, just like java, is an ecma specification http://www.ecma-international.org/publications/standards/Ecma-334.htm MS Does have an exclusivity on the .Net Framework however. Though even that they've opened up (the majority at least) to open download. Though I believe you're not allowed to change that source and redistribute it. --Serp

    68. Re:C# by Rockoon · · Score: 1

      Are you suggesting that MSDOS didnt have the same level of dominance?

      --
      "His name was James Damore."
    69. Re:C# by SplashMyBandit · · Score: 1

      C# is a solution if you are such a small organization you have Windows only. The big outfits have a bit-of-everything and this is why Java is so strong in the Enterprise and C# is not really a contender (although people used to desktop computing only usually don't realize this which is why they suggest C#, and the incompatibilities of Mono makes it simply not good enough for big outfits - especially when Java is so good).

    70. Re:C# by Anonymous Coward · · Score: 0

      > At the end of the day, the only thing they care about is locking people in to Windows.

      No, at the end of the day, the only thing they care about is making money. Making money, and surviving to make more money. They only things they care about are making money, surviving, and quarterly earnings. And a fanatical devotion to the Pope.

      Like every other publicly held corporation out there.

      Locking people into Windows is one means to the ends, one of many.

    71. Re:C# by kiddygrinder · · Score: 1

      not really sure what your point is here, ms have decided that they need to play catchup on web interop and finally realised that silverlight was not the solution, i mean everyone suddenly hates flash, why would they want to move to a slightly better version of flash? also in that article the "betrayal by microsoft" was adding html 5 support to some features in bing that were silverlight only previously. damn you microsoft, be more evil and lock people into my preferred platform!

      --
      This is a joke. I am joking. Joke joke joke.
    72. Re:C# by kiddygrinder · · Score: 1

      stop voting parent troll, it obviously isn't

      sure, microsoft haven't really been directly involved in killing off open source stuff, they know how much that gets the nerd rage going, but i think you're unfairly restricting microsoft's actions to just action against open source. MS have never had any problems using unfair tactics to kill off a competitor; the reason they haven't sued wine or ReactOS is that they just are not worth the effort. If ReactOS hits 5% install base then i think we'll see MS start to get quite a bit more interested in firing lawyers in their general direction.

      --
      This is a joke. I am joking. Joke joke joke.
    73. Re:C# by Raenex · · Score: 1

      They were pretty dominant with MS-DOS, but no, not the same level as with Windows. They also didn't use their DOS dominance to spread into so many other areas.

    74. Re:C# by Raenex · · Score: 1

      the only thing they care about is making money [..] Locking people into Windows is one means to the ends, one of many.

      It's been their most successful strategy for almost 20 years now. Everything they do revolves around it.

    75. Re:C# by MrSteveSD · · Score: 1

      With Microsofts history over the past 20 years, I'd say they won't pull any strange tricks until enough people have adapted it and are locked in,

      Certainly there are dangers. Microsoft do have a community promise not to sue people making other implementations but it only covers the ECMA Standard parts of .NET. Is this promise really legally binding though and who knows whether there are loopholes etc. Also what happens if those patents end up falling into the hands of another company as was the case with Java and Oracle?

      The same kind of dangers exist with QT. Now that it's LGPL, it's becoming quite popular. Nokia are being very open source and generous with it but what happens if they sell off QT at some point? There are bound to be patents that could be used aggressively.

      I think it has become clear that just because something is open source, that doesn't mean it's safe to use it in the long term.

    76. Re:C# by Billly+Gates · · Score: 1

      They did off the web platform. They lobbied to remove teh (applet) tag and created Java with win32 libraries knowing Sun would sue creating a FUD mindset for using this it on the desktop or web browser. If the (applet) tag was still there web 2.0 could have happened a decade earlier. Javascript today is trying to catch up to old Java.

    77. Re:C# by Billly+Gates · · Score: 1

      I feel like it is the equilivant of fleeing from the hands of tranny of Stalin by migrating to Nazi Germany. Both dictatorships with murderous leaders.

    78. Re:C# by Anonymous Coward · · Score: 0

      Plus, C# is 4 TIMES slower than Java:

      http://trustleap.com/

      (tip: PHP looks much better, but that not the fastest -by far)

    79. Re:C# by jabjoe · · Score: 1

      "
      But Bill starts to wonder By 1996 Gates is wondering if "by creating cross-platform solutions we risk weakening the Windows franchise - hurting ourselves rather than let Netscape hurt us." Neault's staff are writing that they want "the WIN32 layer to be fairly mediocre in performance and feature coverage. We want it to be just good/cheap/timely enough to get a lot of people to use it," and that "we don't want it to work too well. A non-objective is total redeployment of Windows on Unix."
      "
      How does that not ring Mono before Mono?

      The tuxdeluxe article is that MS make sure they can check the box for interoperability, with out acturally do it. This is surspected to be deliberate policy.

    80. Re:C# by sycomonkey · · Score: 1

      C# does seem an obvious possibility. As cool as Go is, it's not really the same sort of thing as Java. It's mostly intended to be compiled and is heavily geared at concurrency. I don't think any Hold-Your-Hand IDEs exist for it yet, either, that I'm aware of.

      --
      --The universe will not be altered by forum threads, even those which are very wry. --Tycho Brahe (Penny Arcade)
    81. Re:C# by Gadget_Guy · · Score: 1

      That has nothing to do with the topic that we are discussing here - namely that Microsoft is going to have a sudden change of heart and use it's patents to stuff the open source genie back into the bottle. Right from the beginnings, Mono has had critics that said that Microsoft would kill it off. Back then it was completely unfounded FUD and it continues to be so today.

    82. Re:C# by arose · · Score: 1

      Oh, like VB6 that was dropped like a hot rock in favor of the incompatible .NET version?

      --
      Analogies don't equal equalities, they are merely somewhat analogous.
    83. Re:C# by Mongoose+Disciple · · Score: 1

      Netscape's death was clearly a suicide. No one could put out software as bad as latter-day Netscape's by accident.

      But again: that's Microsoft trying to kill their competitors, it's not Microsoft trying to kill themselves -- which everyone seems to be arguing would somehow happen because it's the most evil thing.

    84. Re:C# by exomondo · · Score: 1

      With Microsofts history over the past 20 years, I'd say they won't pull any strange tricks until enough people have adapted it and are locked in, then they will suddenly have a change of heart.

      Specifically what makes you think that?

    85. Re:C# by exomondo · · Score: 1

      Plus, C# is 4 TIMES slower than Java:

      http://trustleap.com/

      That link doesn't show that at all.

    86. Re:C# by exomondo · · Score: 1

      Maybe I'm being naive, but right now C# looks fairly tempting.

      Yes, you are incredibly naive. People are looking to flee Java because of the greedy and proprietary corporation behind it, Oracle, and you think they should run into the arms of Microsoft? Get a clue.

      People want to get away from the petty bickering of multiple organisations that are willing to stall development to fulfill their own agendas. What exactly do you think MS is going to do?

    87. Re:C# by exomondo · · Score: 1

      Before Mono, all their language and development tools were based around the Windows operating system.

      So in the past they were Windows-only, now not. Great.

    88. Re:C# by Raenex · · Score: 1

      So in the past they were Windows-only, now not. Great.

      In the past, they pretended to be multi-platform when IE came out by having a version for Linux. Once they gained marketshare, they dropped Linux support and used Windows extensions to lock people in. If you follow Microsoft's lead, you will be locked in to Windows.

    89. Re:C# by Raenex · · Score: 1

      People want to get away from the petty bickering of multiple organisations that are willing to stall development to fulfill their own agendas.

      No, people want to get away from Oracle because they're a bunch of greedy, corporate assholes. Just like Microsoft.

    90. Re:C# by exomondo · · Score: 1

      In the past, they pretended to be multi-platform when IE came out by having a version for Linux.

      That was over a decade ago, and they dropped it because no-one used it.

    91. Re:C# by exomondo · · Score: 1

      People want to get away from the petty bickering of multiple organisations that are willing to stall development to fulfill their own agendas.

      No, people want to get away from Oracle because they're a bunch of greedy, corporate assholes. Just like Microsoft.

      The JCP was fine until different members - mainly Oracle and ASF - started pushing their own conflicting agendas, C# does not have this problem.

  5. ".Net offering little advantage" by ByOhTek · · Score: 3, Informative

    Really? As competition to Java it is fairly comparable. It has some features that, used improperly will lead to slower code (though, they are nice as a convenience), it is missing some features, has some features that Java is missing, and the free version of Visual Studios, at least in my opinion, is a nicer IDE than Eclipse, Netbeans or Anjuta. And it's not being used in a bunch of lawsuits by it's owner.

    As a point of reference as to where I'm coming from with this post - Sysadmin + Java programmer at work, C/C#/Python Programmer at home.

    --
    Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    1. Re:".Net offering little advantage" by dclozier · · Score: 4, Insightful

      Really? As competition to Java it is fairly comparable. It has some features that, used improperly will lead to slower code (though, they are nice as a convenience), it is missing some features, has some features that Java is missing, and the free version of Visual Studios, at least in my opinion, is a nicer IDE than Eclipse, Netbeans or Anjuta. And it's not being used in a bunch of lawsuits by it's owner.

      Yet...

    2. Re:".Net offering little advantage" by Anonymous Coward · · Score: 4, Interesting

      This is exactly why Oracle has to stop what it's doing. ByOhTek has exactly the same mentality as most Windows developers/shops, i.e., the view that now Java is embroiled in lawsuits while Mono is stable and safe. Microsoft would never lock you into a platform.

      Incidentally, I've worked in Java and .NET. Visual Studio is a big disappointment when you been working in NetBeans or Eclipse. Maybe I just don't see the appeal.

    3. Re:".Net offering little advantage" by Mongoose+Disciple · · Score: 1

      Incidentally, I've worked in Java and .NET. Visual Studio is a big disappointment when you been working in NetBeans or Eclipse. Maybe I just don't see the appeal.

      I'll give you that NetBeans is a pretty nice IDE, but Eclipse? Ugh. I much prefer VS to that. Maybe I just don't think you should need to spend a huge pile of time choosing, installing, and configuring plug-ins to get a halfway decent IDE (that will still run like shit on the world's heftiest desktop hardware.)

      I know people who love Eclipse, but I've never been able to get a reason for why out of them that wasn't either objectively wrong or completely insane.

    4. Re:".Net offering little advantage" by AnonymousClown · · Score: 1

      Visual Studio is a big disappointment when you been working in NetBeans or Eclipse.

      Having used all three myself, I disagree. Visual Studio was the best out of all 3, although, NetBeans is really coming along but still has performance issues: its UI isn't as snappy as VS. Eclipse I found to be horribly slow coming up, unresponsive half the time, the UI is unintuitive, plugins are flaky as all hell, and making file changes in projects are just a nightmare - their handling of projects is not flexible at all.

      --
      RIP America

      July 4, 1776 - September 11, 2001

    5. Re:".Net offering little advantage" by geekoid · · Score: 1

      no it isn't comparable at all.
      You're completely ignorant on the scope that Java is used.

      And so you know where I am coming from. I do .net and java work. Also, I have worked with pretty much every language out there.

      and yes in a great many ways visual studio is superior to eclipse.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    6. Re:".Net offering little advantage" by TheTurtlesMoves · · Score: 1

      I can't run it properly on Linux, Sun or Mac (mono really doesn't work that well. Its a subset at *best*). Its still coorprate controled.

      If I am going to stick with a corporate controlled language, why not stick to the one i already have my code in?

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    7. Re:".Net offering little advantage" by BitZtream · · Score: 1

      I don't use Eclipse, but NetBeans you think is better than VisualStudio?

      Thats like saying Duplo blocks are better than Legos.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    8. Re:".Net offering little advantage" by Anonymous Coward · · Score: 0

      Visual Studio is designed first and foremost for platform lock-in. It's only better if you develop for Windows.

    9. Re:".Net offering little advantage" by Anonymous Coward · · Score: 0

      Visual Studio is nice, but it completely locks up when you debug an app with multiple threads. vs05 is completely unusable with threads. vs08 is usable but completely sucks next to NetBeans. I haven't used vs10 much so I don't know if debugging in regards to threads works or not. oh and Visual Studio finally got a plugin "store". Netbeans has had it for years.

    10. Re:".Net offering little advantage" by meloneg · · Score: 1

      Interesting. We had to upgrade desktops to support VS2010 when we started to bring it in to compliment Java/Eclipse/... at my last job. VS used even more RAM than Eclipse and the rest of the stack we were now running (IIS, SQL Server ) was also heavier than the Java stack we'd been using (WAS/Derby).

    11. Re:".Net offering little advantage" by Mongoose+Disciple · · Score: 1

      Huh. Granted, I haven't used VS2010 yet, but earlier editions of it run great on a decent laptop, whereas Eclipse has never failed to drive any system I've ever put it on -- including some with what I would have considered at the time to have ridiculous amounts of RAM -- straight to its knees.

      So either VS2010 ups the bloat factor considerably or we're doing something really different.

    12. Re:".Net offering little advantage" by obijuanvaldez · · Score: 1

      I can confirm the resource greediness issues with VS2010. Featurewise, it's really very nice - the code window is great; the tooltip objectbrowser dealie is great. With few exceptions however, e.g. adding references to a project is now loads faster, it generally a sluggish hog compared to VS2008. I would wait for SP1 before putting it on your laptop. That said, all of the above is for versions with the development tools, i.e. using the VS2010 shell with only the Team Foundation Server Client is pretty snappy.

    13. Re:".Net offering little advantage" by AltairDusk · · Score: 1

      My experience is the opposite, compared to what I have in Visual Studio Eclipse and Netbeans seem painful. Granted we only target Windows so cross-platform might be a different story.

    14. Re:".Net offering little advantage" by Anonymous Coward · · Score: 0

      I'm currently using VS2010 at work, but also my beloved Intellij IDEA when I can.

      My impression is that VS2010 is great for C#, but fairly pathetic for anything else - js, html, css, PHP,
      etc. IDEA covers all bases.

      And VS2010 incremental search without regular expressions? Annoying. Could do with serious local history too.

    15. Re:".Net offering little advantage" by ByOhTek · · Score: 1

      I don't know about memory issues, my systems all have at least 1GB (XP, Linux), or 2GB (Win 7, FreeBSD) of memory, and both Visual Studios 2010 and Eclipse run well on all compatible platforms.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    16. Re:".Net offering little advantage" by ByOhTek · · Score: 1

      I've had no trouble with threaded debugging in Visual Studio 2010 / C#

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    17. Re:".Net offering little advantage" by ByOhTek · · Score: 1

      not really.

      Go to the project properties, one of the menu items therein has a target .NET runtime, set that to 2.0. Click [ctrl]+[s], and you are good to go.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    18. Re:".Net offering little advantage" by ByOhTek · · Score: 1

      That that Java is used in a larger scope really only suggests it's better marketed. Java *might* be available on a few more platforms, but I'm not sure about even that - I've gotten Mono running better on FreeBSD than Java, I know it works well on Linux too. Both work on Linux, both work on HPUX, and a few more platforms as well.

      The exception I can think of is that there are more phones that will run Java than .NET.

      What exactly would Java be better at than .NET?

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    19. Re:".Net offering little advantage" by ByOhTek · · Score: 1

      Did you have LibGDIPlus running? I've not had a problem with any .NET app written in 2.0.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    20. Re:".Net offering little advantage" by Billly+Gates · · Score: 1

      "I don't use Eclipse, but NetBeans you think is better than VisualStudio?" ... not the crappy free express edition.

        No addons, no units, I can't even share assembies with users of the professional and enterprise editions. Netbeans has php, C++, html, and other things. Eclipse has Aptana for web development. Java has the cards for free environments.

    21. Re:".Net offering little advantage" by after.fallout.34t98e · · Score: 1

      Visual Studio + Resharper is by far the best development environment I have ever worked in.

      By comparison Eclipse and NetBeans are slow and feel bulky and BlueJ is nearly unuseable. If I had to give it up, I think I would go straight back to vi; Every "modern" ide I've used (other than VS+R#) I have found to be quite frustrating. The only thing that would make VS better is for it to have a better interactive mode (like snippets compiler built in).

      (Currently a C# developer and Python hobbyist; have previously spent 6 years in Java-world and I am happy to not still be there.)

  6. Why does "no JCP" == "no Java"? by zooblethorpe · · Score: 2, Interesting

    So assuming the JCP does dissolve, I fail to see why folks couldn't find a way to fork Java. Are there patents in place that would completely moot any such effort? What about clean-room reverse-engineering of the JVM, wouldn't that open some doors?

    Confused by the summary's lack of options,

    --
    "What in the name of Fats Waller is that?"
    "A four-foot prune."
    1. Re:Why does "no JCP" == "no Java"? by John+Hasler · · Score: 3, Informative

      Are there patents in place that would completely moot any such effort?

      That's what the lawsuit is about, isn't it?

      What about clean-room reverse-engineering of the JVM, wouldn't that open some doors?

      That only deals with copyright problems. It's irrelevant to patents (And Google claims to have already effectively done it).

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    2. Re:Why does "no JCP" == "no Java"? by Kjella · · Score: 0

      I fail to see why folks couldn't find a way to fork Java. Are there patents in place that would completely moot any such effort?

      More or less. Some parts of Java are patented, but OpenJDK has been given some kind of grant. With the right amount of FUD from Oracle it'll be such a dark cloud over it that no one with deep pockets will dare pick it up. It'll linger, be used by hobbyists and small companies but eventually die.

      --
      Live today, because you never know what tomorrow brings
    3. Re:Why does "no JCP" == "no Java"? by Mongoose+Disciple · · Score: 2, Insightful

      I fail to see why folks couldn't find a way to fork Java.

      In this case, I think it's an important to draw a distinction: there's really no reason why you couldn't, except that Oracle will attempt to (right or wrong, and probably wrong) sue whoever tries into bankruptcy.

      They'll be able to put a good enough case together that won't initially appear frivolous, even if it would ultimately be doomed to failure with good legal representation, and lawyers aren't generally free.

    4. Re:Why does "no JCP" == "no Java"? by andymadigan · · Score: 2, Interesting

      This may actually be a good thing in the long run. Changes to the language or libraries will likely be delayed, improvements will hopefully be made in the JVM.

      This whole situation is basically what open source groups were warning about years ago, but now we have an open JDK. Eventually, one of two things will happen:
      1) Oracle maintains control of Java in the enterprise, while an open source group maintains the Java that "everyone else" uses. The two languages will fork, leading both to a slow death.
      2) Oracle will fail to keep control of Java, and everyone will end up using Java as maintained by an open source group (probably Apache). Ultimately something like the JCP will still be needed to keep enterprise involved in Java.

      As a developer that works primarily in Java, I'm a bit worried. If my company sees Java as being a risk we might end up moving over to .NET, and I just detest the documentation and library design of that platform.

      --
      The right to protest the State is more sacred than the State.
    5. Re:Why does "no JCP" == "no Java"? by VGPowerlord · · Score: 3, Insightful

      2) Oracle will fail to keep control of Java, and everyone will end up using Java as maintained by an open source group (probably Apache). Ultimately something like the JCP will still be needed to keep enterprise involved in Java.

      Dear lord, I hope it's not Apache. Any organization that allows new versions of its libraries to target Java 1.4 when 1.5 has been out for over half a decade does NOT deserve to be put in charge of the entire language. Particularly when said library deals with Collections.

      As a developer that works primarily in Java, I'm a bit worried. If my company sees Java as being a risk we might end up moving over to .NET, and I just detest the documentation and library design of that platform.

      There are some things .NET does better than Java. This includes: Generics, Properties, GUI, Web Services (although JWS is a marked improvement over Axis 1/2, and brings this more in line with .NET's WCF). This does not include: Database access (although the .NET Entity Framework may address much of this; from what I've seen it's a lot like JPA), Concurrent collections

      Granted, that list is just things I can think of off the top of my head.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    6. Re:Why does "no JCP" == "no Java"? by Anonymous Coward · · Score: 0

      Are there patents in place that would completely moot any such effort?

      That's what the lawsuit is about, isn't it?

      Nope. Sun has granted a full patent license for all compliant implementations. Google got in trouble because their VM was intentionally non-compliant with the official JVM. There's no reason why an open source, clean-room implementation would run into any such problems. Hell, it wouldn't even have to be a clean-room implementation considering the Java 1.7 is GPL'd and could be used as a starting point.

      From the JDK 6 license:

      2. License for the Distribution of Compliant Implementations.
      Sun also grants you a perpetual, non-exclusive, non-transferable, worldwide, fully paid-up, royalty free, limited license (without the right to sublicense) under any applicable copyrights or, subject to the provisions of subsection 4 below, patent rights it may have covering the Specification to create and/or distribute an Independent Implementation of the Specification that: (a) fully implements the Specification including all its required interfaces and functionality; (b) does not modify, subset, superset or otherwise extend the Licensor Name Space, or include any public or protected packages, classes, Java interfaces, fields or methods within the Licensor Name Space other than those required/authorized by the Specification or Specifications being implemented; and (c) passes the Technology Compatibility Kit (including satisfying the requirements of the applicable TCK Users Guide) for such Specification ("Compliant Implementation").

    7. Re:Why does "no JCP" == "no Java"? by marcosdumay · · Score: 1

      "lawyers aren't generally free"

      Lawyers defending Apache will probably be free.

    8. Re:Why does "no JCP" == "no Java"? by Billly+Gates · · Score: 1

      How about the risk of leaving Linux for Windows? Then you have to pay hundreds of thousands in licensing if you have more than 500 users. Not to mention you might as well pick SQL Server and ... oops more CAL licensing costs.

      One of the things I like about Java and Linux is a way to avoid these very expensive problems not to mention it is hard to switch platforms after making that kind of big investment. If a Java/Linux implementation sucks you can switch for $$$ but at least you do not have to kiss $100,000 in MS ecosystem licensing away. I believe this is why activeX and IE 6 wont die. Some hotshots who blew $100,000 want to protect their investments ... and their jobs.

    9. Re:Why does "no JCP" == "no Java"? by OdinOdin_ · · Score: 1

      Ha ha.... the point of targeting Java language version 1.4 is for maximum compatibilty, specially when a library does not use or require any 1.5/1.6 or 1.7 features.

      It is not like this library does not work on newer JVM versions. It is not like this library runs slower on newer JVM versions.

      J2SE standards of those newer runtimes might very well have implemented some of the collections functionality/features that Apache Collectiosn provides.

      So I think it is you who misunderstand the reasons why a library might still be compiled and target older JVM runtimes. Are you tell slashdot that you would never use this library because it targets 1.4 ? Ha ha.. you must be stupid.

      By nature a collections library is more about computer sciences algorityms, as such a core libary which many things can use and in some way features and functionality that might well have been a useful edition to the J2SE and java.* namespace. However hindsight is a wonderful thing and only so many man hours were available back then to create the work back then.

    10. Re:Why does "no JCP" == "no Java"? by after.fallout.34t98e · · Score: 1

      This does not include: Database access (although the .NET Entity Framework may address much of this; from what I've seen it's a lot like JPA), Concurrent collections

      Granted, that list is just things I can think of off the top of my head.

      Entity Framework is only barely usable right now (never trust the first or second version of something to come from MS; they usually get it mostly right on the 3rd). NHibernate is very good.

      Concurrent collections are something I would guess as one of the weakest points of the framework right now, though I haven't used the ones in System.Collections.Concurrent yet (http://msdn.microsoft.com/en-us/library/dd997305.aspx) because we aren't going to get to .net 4 until probably q3 2011. Even still I generally don't work on anything where these algorithms and data structures will have a big impact.

    11. Re:Why does "no JCP" == "no Java"? by VGPowerlord · · Score: 1

      I wrote a huge reply to this already on Saturday and then junked it because it went too far into minutia.

      Ha ha.... the point of targeting Java language version 1.4 is for maximum compatibilty, specially when a library does not use or require any 1.5/1.6 or 1.7 features.

      A Collections library not supporting Generics, thus not supporting type safety, is a huge defect. This is just one of the many reasons that Apache Commons Collections is losing ground to Guava (formerly Google Collections).

      The other thing is that they could write the code using Generics, then offer 1.4 and 1.5 versions of the library from the same code-base using javac's -target parameter. This is part of the reason that Java's Generics are crappier; Java's were implemented using type erasure so existing classes could be reused.

      And you're right, a few of the collections offered in Apache Commons Collections have replacements in the java.util.concurrent package.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
  7. who wrote this?? by vjanicek · · Score: 1

    quoting: "with .Net offering little advantage, and Perl, Python, and Ruby unable to match Java's performance" ehhm... what? who wrote such ignorant statement? Or was this written in the early 90s where some of those languages did not even exist?

    1. Re:who wrote this?? by Bill,+Shooter+of+Bul · · Score: 1

      Ok, prove it. Benchmark the languages. Java is much faster than any of the existing implementations of those languages that do not run on top of the JVM ( so don't count Jython or Jruby).

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    2. Re:who wrote this?? by Anonymous Coward · · Score: 0

      Neil McAllister wrote this (second page of the first link).

      ehhm... what? who wrote such ignorant statement?

      Care to explain what's wrong with it?

      Or was this written in the early 90s where some of those languages did not even exist?

      That doesn't make logical sense. You can't list languages that don't exist.

    3. Re:who wrote this?? by wlad · · Score: 1

      Depends. If you need raw computation/throughput speed, I agree Java is faster than Python/Ruby without C extensions such as numpy. But with C extensions, I'm sure Java can be beaten easily, as C is still the language of choice for fast low-level stuff. When considering startup time, Python/Ruby is much faster than launching a JVM.

    4. Re:who wrote this?? by mcvos · · Score: 1

      Java is also faster than Jython and JRuby. Scala beats Java in some cases, however.

    5. Re:who wrote this?? by SQLz · · Score: 1, Insightful

      Python doesn't have real threading, Perl is basically dead, and Ruby is slow as shit.

    6. Re:who wrote this?? by Bill,+Shooter+of+Bul · · Score: 1

      The issue is the languages themselves. If you have to write all of the performance critical sections in C, why bother using the non C language in the first place?

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    7. Re:who wrote this?? by Terrasque · · Score: 1

      Because those parts are usually less than 10% of the total logic?

      Also, you have stuff like Cython that lets you develop C extensions very easily.

      The special advantage of this seamless Python/C intermix approach is that existing Python code can be tuned to almost the speed of C by just adding a few static type declarations and by making some adaptations in critical loops - without requiring complicated interface code. The coding speed and the readability of the code remains very Pythonic.

      You also have projects like PyPy that are working on JIT support for python, which already perform the same or better than CPython on many workloads.

      All in all, we live in interesting times, and remember: Don't dismiss things just because you don't like them :)

      --
      It's The Golden Rule: "He who has the gold makes the rules."
    8. Re:who wrote this?? by wlad · · Score: 1

      Because you save a lot of developer time by using the higher-level languages for higher-level parts of the application, which usually make up the larger part. C is comparatively verbose, hard to read, and error-prone.

    9. Re:who wrote this?? by ForumTroll · · Score: 1

      Let's be fair here, Python 3 is almost as slow as Ruby, and Ruby doesn't have real threading either. I'd say that they're about equal in terms of being complete and utter garbage.

      --
      "A Lisp programmer knows the value of everything, but the cost of nothing." - Alan Perlis
    10. Re:who wrote this?? by Bill,+Shooter+of+Bul · · Score: 1

      Fair enough. Good response. I still think its a significant draw back to have to write the performance sensitive stuff in C, but maybe that's because I often work on performance sensitive stuff.

      FYI, never said I didn't like Python. I greatly prefer it to Java ( for non performance critical code). The future of everything is wonderful, I'll wait until it becomes the mundane present before trashing it.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    11. Re:who wrote this?? by after.fallout.34t98e · · Score: 1

      Let's say we needed to both write the same application. I wrote mine in Python and you wrote it in C. I am willing to bet that I will have a solution written faster than you (shorter time to market), it will be smaller than yours (less code to maintain) and it will have fewer bugs than yours. Granted yours will be faster, but after profiling (in some of the time I have saved by getting to market sooner) I can recover most of that speed difference.

    12. Re:who wrote this?? by m50d · · Score: 1

      The most common python interpreter doesn't have real threading. There are interpreters that do, if you want it. Turns out it's not actually very useful.

      --
      I am trolling
    13. Re:who wrote this?? by GooberToo · · Score: 1

      This is something most people don't seem to really understand. Jython is roughly 2-4x slower than cpython. That means to truly be better off with jython, on average, you need to have at least four cores, and possibly five or more, continuously maxed out on CPU bound tasks to even beat cpython, let alone java + hotspot. And all that ignores using something like cython or psyco plus the traditional cpython.

      Long story short, jython is an idiots choice unless the goal is to strictly expose a scripting language in a java application. Outside of that, jython has absolutely no value to anyone.

    14. Re:who wrote this?? by mcvos · · Score: 1

      Jython 2-4 times slower? How do they manage that? JRuby is one of the fastest Ruby implementations around.

      I guess that makes Jython a "worst of all worlds" choice. Use regular Python is you want Python, use JRuby or Groovy if you want a dynamic language on the JVM.

    15. Re:who wrote this?? by GooberToo · · Score: 1

      jruby is faster than ruby because they seemingly have a good team working on optimizing their implementation. In fact, optimization has been their primary focus behind the jruby implementation. Python, on the other hand, has far more language features. Also, I don't know if there is a difference between team sizes and/or man-hour contributions. Regardless, the jython guys spend considerable time just creating language coverage so time for optimization appears to be almost nil. As a result, on average, last I've seen, jruby (though some corner cases clearly place jruby far ahead) is on par with cpython and jython is ridiculously slow.

      Basically, simply targeting the JVM is not a silver bullet for performance. It likely doesn't help that idioms commonly used in the python byte code frequently don't translate well to the JVM. Not to mention, jython doesn't have a GIL, so I have no idea what their locking overhead incurs on generalized performance. These are of course, reasons why many languages ignore the JVM for their VM - because the VM is not generalized and is frequently an extremely poor target for some languages.

    16. Re:who wrote this?? by DragonWriter · · Score: 1

      jruby is faster than ruby because they seemingly have a good team working on optimizing their implementation.

      AFAIK, its far less clear that JRuby is faster than Ruby with recent versions of Ruby 1.9.x, its worth noting that, while Ruby 1.9 does have quite a lot of new features compared to Ruby 1.8, that it adopted a completely new VM that, like JRuby, grew out of a project (YARV) that was largely concerned with the performance of Matz's original Ruby implementation.

    17. Re:who wrote this?? by GooberToo · · Score: 1

      Fair enough. My emphasis was primarily addressing the fact that a language on top of JVM does not in of itself imply java-like speeds. In fact, its scary easy to wind up with solutions which are sadly, extremely slow. Furthermore, some languages are just not a good for for the JVM, and as such, will always have some degree of overhead above what may be possible with other VMs.

      Its been a while since I last looked at ruby performance, so some of my information is likely aged at this point. I appreciate you getting me currently.

  8. Alternatives by Massacrifice · · Score: 3, Insightful

    It's too bad that some of the most promising new languages (Scala, Clojure) are JDK based. What we need is a modern lingua-de-franca, a language that's structured enough, with modern features, a good standard library, and that doesnt take 10 years to master. Go is still proprietary shite that will bite you after Google turns evil (and you know they will). Havent looked at D yet. Erlang maybe?

    Is there any high-level, easy language today that's not threathened somewhow by f%^&%ng patents from the big guys?

    --
    -- Home is where you eat your heart out.
    1. Re:Alternatives by Nerdfest · · Score: 1

      I have doubts about debugging an extremely large application done in a purely functional language. Of course, it may just be inexperience.

    2. Re:Alternatives by Coryoth · · Score: 4, Informative

      Is there any high-level, easy language today that's not threathened somewhow by f%^&%ng patents from the big guys?

      Well, presuming you want something fast, as opposed to say Python or Ruby, there are some options:

      1. Ada: No, seriously, it's a nice language and Ada2005 is worth looking at; perhaps lower level than you might like. I seriously doubt it faces any patent troubles whatsoever.
      2. D: Sort of C++ done right. Unlikely to face patent issues, but does have some standard library issues with more recent versions of D being incompatible with some standard library efforts.
      3. Eiffel: High level, OO, garbage collection, generics, closures, and still fast and memory efficient. It might have patent issues from ISE, but they're very small, and the core language and IDE are all GPL.
    3. Re:Alternatives by TheTurtlesMoves · · Score: 4, Interesting

      Its not harder than a OO lang. However finding good help *is* harder. One reason i had to pick java over the many languages I have used was its reasonably easy to find people who know it. Not so much for Scheme or Haskell.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    4. Re:Alternatives by characterZer0 · · Score: 4, Insightful

      We do not need a language-de-franca. We need a virtual-machine-de-franca. Everybody seemed to think that the JVM was it.

      --
      Go green: turn off your refrigerator.
    5. Re:Alternatives by Anonymous Coward · · Score: 0

      Is there any high-level, easy language today that's not threathened somewhow by f%^&%ng patents from the big guys?

      Think python fits the bill.

    6. Re:Alternatives by gbjbaanb · · Score: 1

      there's always the 'old, traditional' ways that still work fine - C++ server and javascript in your browser clients.

      Plenty of shops use C/C++ components for speed, whilst gluing them together with lua or python. I can't see why that isn't more commonplace... except that it doesn't tie you into a '1 true way' of development that Microsoft and Sun/Oracle has marketed to you.

      for clients, nobody (well, none of my customers) really wants thick-clients anymore, and porting them to modern OSs such as iOS or Android is almost a no-go, so a javascript-based HTML5-style GUI would appear to be the way forward.

      There's plenty of experience building with these languages, so you wouldn't need to pay up for masses of training and then take a year or two gaining enough experience using them to become halfway good at using them.

      Maybe we just need an easy-to-use utility library of C++ stuff for today's attention-defeicit coders who don't want to build their own from the building blocks provided by the usual C/C++ libs :)

    7. Re:Alternatives by mcvos · · Score: 1

      It's too bad that some of the most promising new languages (Scala, Clojure) are JDK based.

      I think people are working on CLR (.Net) versions of Scala and Clojure.

    8. Re:Alternatives by 19thNervousBreakdown · · Score: 0, Troll

      I have literally never thought that. Fuck Java, I've hated it since 1996 and if there is a hell for intangibles I hope it burns there.

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    9. Re:Alternatives by Anonymous Coward · · Score: 0

      Ada really is a great language. I'm surprised a lot of people don't take it seriously. One of the nice things about Java as a language is it's strong type system. It helps reduce errors in enterprise applications, Ada, I think, has a much better system and leads towards producing very reliable and maintainable code.

    10. Re:Alternatives by burbilog · · Score: 1

      Dalvik?

    11. Re:Alternatives by Anonymous Coward · · Score: 0

      Haskell

    12. Re:Alternatives by characterZer0 · · Score: 1

      If somebody writes open source Dalvik VMs for Windows and Linux, it could be promising.

      --
      Go green: turn off your refrigerator.
    13. Re:Alternatives by devent · · Score: 1

      So why you hate Java? Because it gives you a powerful VM, which can be used to run multiple languages (Java, Python, JavaScript, Groovy, Scala, and many more), because it gives you powerful and free development tools (Eclipse, Netbeas, Idea, Maven, Ant, and many more), because it have a very big open source community with free and enterprise ready libraries (like Apache, Spring, Hibernate, Eclipse RCP, and many more)? Because you can write application for Windows, Linux, MacOS, desktop and server applications? Keep in mind that all tools involving Java are mostly open source and free of charge and can be run system independent, and that is why you hate Java?

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    14. Re:Alternatives by Anonymous Coward · · Score: 0

      Look you ignorant fucking retards, this is about the JVM, not the Java language. The JVM is so far ahead of any other open source VM it isn't even funny.

    15. Re:Alternatives by Tetsujin · · Score: 1

      We do not need a language-de-franca. We need a virtual-machine-de-franca.

      Why do we need a VM, again?

      --
      Bow-ties are cool.
    16. Re:Alternatives by Anonymous Coward · · Score: 0

      No go. Oracle is suing Google over Dalvik.

    17. Re:Alternatives by johnthuss · · Score: 1

      It's too bad that some of the most promising new languages (Scala, Clojure) are JDK based.

      Scala runs on the .NET platform too. http://www.scala-lang.org/node/168

    18. Re:Alternatives by characterZer0 · · Score: 1

      Compile once, run anywhere.

      --
      Go green: turn off your refrigerator.
    19. Re:Alternatives by Tetsujin · · Score: 1

      Compile once, run anywhere.

      But on a day to day basis I find no need for this. GIMP is native-compiled. Firefox is native-compiled. Blender is native-compiled. And so on. If I need to run a program on another machine, I can download another copy of the program compiled for that machine (i.e. x86 vs. x86-64 in my case).

      I'm not saying a VM can't be useful, but why do we need it?

      --
      Bow-ties are cool.
    20. Re:Alternatives by Anonymous Coward · · Score: 0

      Vala from the Gnome project is very nice, and fast approaching 1.0. It's C# - like syntax, but it doesn't require a virtual machine

      http://live.gnome.org/Vala

    21. Re:Alternatives by characterZer0 · · Score: 1

      Debian and Mozilla have build farms. Individuals and small companies do not. My users are not sophisticated enough to compile from source. I just provide them a Jar.

      In practice, there are some shortfalls with using a JVM. OS support for launching a Jar is not always very good. Often times using java -jar is inconvenient, so I need to write shell scripts. Then I run into Windows "System Administrators" who only know how to click through wizards and have no idea what a .vbs file is, so I have to provide a Windows installer.

      Then there is the pain of trying to run a Java application as a Windows service, which I . . . I just do not want to talk about.

      --
      Go green: turn off your refrigerator.
    22. Re:Alternatives by shutdown+-p+now · · Score: 1

      I'd also add OCaml. Despite functional roots, it's perfectly usable as an imperative language, and has a very nice object system with structural typing ("static duck typing", so to speak), and with all the nice stuff such as multiple inheritance. Compilable to either bytecode or directly to native code, and garbage collected. Performance is very good.

    23. Re:Alternatives by dumael · · Score: 1

      I'd disagree on the use of OCaml for certain applications as there is no multi-core support. You might be able to hack something in using multiple processes, but it will probably be pretty ugly.

    24. Re:Alternatives by shutdown+-p+now · · Score: 1

      What exactly do you mean by "multi-core support"?

    25. Re:Alternatives by Anonymous Coward · · Score: 0

      Hopefully Ada has improved since then, and if you use it for the "right" stuff it probably doesn't matter, but I think VHDL is a good indication that Ada can be great at making your code unreadable and unmaintainable (when 50% of your code has to be type conversions the language is wrong for the job).

    26. Re:Alternatives by RocketRabbit · · Score: 1

      Squeak Smalltalk. Until recently, it did not have multicore support, but IBM has recently contributed a nice, Free munticore Squeak to the world.

      Seriously, Smalltalk is something that seems to be from far in the future.

    27. Re:Alternatives by Anonymous Coward · · Score: 0

      CPython? I don't understand why it keeps getting dismissed in this thread.

    28. Re:Alternatives by 19thNervousBreakdown · · Score: 1

      No, I hate Java because its results have utterly failed to deliver on its promises. Every app I've ever encountered has been an incomplete, slow, buggy mess. When I run a java app, I brace for the inevitable crash, or blank dialog box, or backtrace popup. It uses its own implementation of commonly OS-provided functionality, which is rife with incompatibilities with the default implementation, all with the justification that doing it that way allows things to "just run". Maybe in theory, but in practice, no, nothing "just runs". Eclipse? Used it a ton. Loved the idea, but it was slow, looked like crap, and when it didn't crash I'd click on a menu item and ... nothing. Eclipse took the hide errors approach. What went wrong? No idea.

      What was that LDAP editor? I don't remember, haven't used in a year or two. Loved the idea, seems pretty simple to write an LDAP editor and it's a mystery to me why there's so few of them, and why every last free one I've tried was a massive piece of shit, but there it is.

      How about something more server-side? Ever worked with OpenFire? Crash crash crash, and when it didn't crash it leaked memory like a Java app, and when it didn't leak individual modules would fail to run with an incomprehensible error in the log, and when they ran they required that I follow some arcane set of steps to get it to accept a new root cert because it didn't use the built-in OS certs, or worked like shit with the DB because they didn't just wrap the system provided interface library, they wrote their own implementation of it.

      I could go on, but I only care enough for three examples. I understand that the fault is on the developers, but here's the thing--I'm a developer, and I write good software. That's not to say I don't make mistakes or have bugs, but I handle errors gracefully and never throw them away, I use OS-provided libraries and widget set whenever they exist, I follow specifications ... and Java? It just doesn't appeal to me on an aesthetic level. I know that's a flimsy ... hell, it's not even a reason, I don't know what it is, but from what I can tell, it attracts lazy developers. I work with one. He constructs these massive abstractions, with factories and patterns and best practices ... and despite all the smart stuff he does, it ends up shitty. Those practices and patterns and abstractions aren't there to make it work well, they're there as a look-how-smart-i-am jerk-off. He writes a stub function, and never implements it, and promotes it like that. He doesn't test edge cases. He'll size one element by pixel, and another that should be the same size as the other, he'll size by em, and tweak it until they match. He never bothered to learn CSS properly, because he's "not a web developer" (uh yes you are, that's what you do, you write a web app all day long, you're just not a very good one) so he writes his rules by guessing, like a 3-year-old trying to hammer the square into a circular hole. He throws away errors. His architecture is nice, if massively overcomplicated, but he couldn't finish something right if his life depended on it--and he loves Java. He writes that way in C# because that's what we work with, but if he was writing an open-source app, he'd do it in Java. I have no explanation for it, but Java attracts those sort of developers.

      There are exceptions to the rule, but languages just seem to cause, or attract, certain ... accents. Java, Python, and Ruby, I'd put in one category. C stands firmly in its own category. C++, Python, and C# could almost make up another, although they're just a little too different, so I don't really think of them that way. Ruby and Perl... I don't know. I can only call them accents, and I can't put firm words on it, but they make programs that feel similar somehow, and attract developers that work in similar ways.

      The end result is, like someone who was beaten regularly by a drill sergeant with that specific Army qu

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    29. Re:Alternatives by 19thNervousBreakdown · · Score: 1

      Until there is a standard for VMs to interface with operating systems, there will never be a good VM. I don't concede that OS-independence is a goal worth the compromises that need to be taken otherwise.

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    30. Re:Alternatives by devent · · Score: 1

      You writing so much BS but the problem is that people do believe you and foster their prejudice.

      I work with Java applications every day and so do thousands of other developers. Java is widely used in the enterprise world, for client side and server side. The Java applications I use are very stable, very fast and very convenient. The tools and libraries that I use to develop applications are very stable, well tested and good designed. As a bonus I'm not tied to use Windows and all the tools I need are free of charge and open source.

      If I would judge applications and languages like you, I would also say to you "Go make a good $YOU_LANGUAGE_HERE app". Maybe you should just stop using bad applications and start and using good ones? I don't know, just name the bad applications that you are using.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    31. Re:Alternatives by Anonymous Coward · · Score: 0

      Eclipse took the hide errors approach. What went wrong? No idea.

      Window->Show View->Other...->Error Log. There are your precious backtraces, that you didn't want to see anyway.

    32. Re:Alternatives by dumael · · Score: 1

      You can't utilize multiple processors with OCaml directly. There is some effort going towards building a multicore version but it's not being undertaken by INRIA.

    33. Re:Alternatives by shutdown+-p+now · · Score: 1

      For future reference of anyone who might stumble onto this thread from Google etc, I have found this explanation from Xavier himself. It seems that the main problem with SMP is writing a proper concurrent GC.

      Frankly, I'm not convinced by his argument, as many VMs today have it (various JVMs, .NET, Mono), so surely it's not rocket science by now. Nonetheless, it is what it is.

    34. Re:Alternatives by lars_stefan_axelsson · · Score: 1

      Its not harder than a OO lang. However finding good help *is* harder. One reason i had to pick java over the many languages I have used was its reasonably easy to find people who know it. Not so much for Scheme or Haskell.

      Then again, having worked for Ericsson (Erlang), the quality of the applicants when you look for a Haskell (etc.) programmer will often blow you away. And since good programmers out perform bad ones by at least 10 to 1, the choice may not be as obivous as you'd think at first. Obl. Paul Graham reference.

      --
      Stefan Axelsson
    35. Re:Alternatives by TheTurtlesMoves · · Score: 1

      All true. But sometimes finding someone to fix something in a week is better than taking a month to find someone 10x better and probably 2x more expensive.

      For many projects and work, you don't need 10x better. Just competent.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    36. Re:Alternatives by lars_stefan_axelsson · · Score: 1

      Well, it's been my experience that functional programmers are often so happy to be able to ply their trade for money that they're not more expensive. In fact they're often cheaper. And I'll take 10x over "competent" any day. For whatever job. :-)

      --
      Stefan Axelsson
    37. Re:Alternatives by badkarmadayaccount · · Score: 1

      Within a few percent of C, IIRC.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  9. Why not C#? by Anonymous Coward · · Score: 4, Interesting

    Not to mention that C# already has a ton of useful features that are, at best, planned for Java 7 and 8 (or later).

    I've done significant cross-platform .Net/mono development and 99% of the stuff "just works". I'd argue that Mono is actually a better cross-platform development environment than Java *right now*. Java often requires tweaks because different builtins work differently on different platforms, even though they're not supposed to.

    1. Re:Why not C#? by AnonymousClown · · Score: 1

      I wish that C# had the same Linux kernel support as Java does.

      --
      RIP America

      July 4, 1776 - September 11, 2001

    2. Re:Why not C#? by Anonymous Coward · · Score: 0

      Java often requires tweaks because different builtins work differently on different platforms, even though they're not supposed to

      Citation needed

    3. Re:Why not C#? by Chrisq · · Score: 5, Informative

      I wish that C# had the same Linux kernel support as Java does.

      It does. None.

    4. Re:Why not C#? by Anonymous Coward · · Score: 0

      I wish that C# had the same Linux kernel support as Java does.

      Is
      [DLLImport("mylibrary.so")]
      too hard?

      What are you doing mucking around the kernel in a high-level, managed language anyway?

    5. Re:Why not C#? by Gadget_Guy · · Score: 0, Troll

      Citation needed

      Here you go.

      It seems quite clear that the original poster was describing his/her personal experience with the language. It is like asking for a citation when someone says that their favourite colour is blue. The better response would be to ask for an example of the problem.

    6. Re:Why not C#? by FutureDomain · · Score: 2, Informative

      I can second this. Whenever I have to write a cross-platform project, I almost always go with C#. Unless you use something totally Microsoft Windows specific (like WPF or Windows Services), it should run fine on Linux or Mac. I almost always do testing on the Linux platform as well, but even my simple HTTP server ran fine on Linux, and you can do reflection to detect and implement platform specific Mono instructions (such as doing a Mono.Unix.Native.Syscall.Chown on the aforementioned webserver).

      --
      Hydraulic pizza oven!! Guided missile! Herring sandwich! Styrofoam! Jayne Mansfield! Aluminum siding! Borax!
    7. Re:Why not C#? by Bigjeff5 · · Score: 3, Funny

      The reason you don't need a citation when someone says their favorite color is blue is because blue is clearly superior to every other color.

      If you don't agree with me, well, you're wrong.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    8. Re:Why not C#? by VGPowerlord · · Score: 1

      It seems quite clear that the original poster was describing his/her personal experience with the language. It is like asking for a citation when someone says that their favourite colour is blue. The better response would be to ask for an example of the problem.

      "My favorite color is blue." is an opinion. There are no facts to back it up.

      "Mozilla Firefox's New tab button work differently on different platforms, but it shouldn't." is something I'm presenting as a fact. You and the Mozilla devs would presumably want me to give you some sort of demonstration of this to be logged in Mozilla's bug tracker.

      Therefore, to "Java often requires tweaks because different builtins work differently on different platforms, even though they're not supposed to." the proper response to "Citation needed." here would be to some sort of explanation of which builtins and what systems they act differently on, presumably with a test case attached and what systems give the unexpected results. Presumably filed on the Java bug tracker.

      Of course, in this case it was likely hyperbole stemming from Java's problems in the mid to later 90s. What's next, complaining about how slow Java is?

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    9. Re:Why not C#? by SplashMyBandit · · Score: 2, Informative

      You obviously write smaller apps only. Write a large app (such as my current work project) and C#'s cross-platform limitations become apparent very rapidly.

    10. Re:Why not C#? by Billly+Gates · · Score: 1

      Where is this magical app?

      I have not seen a single app that can compile yet on Mono and .NET. Only Hello Worlds.

  10. Open Source weak spot by js3 · · Score: 2, Interesting

    The open source weak spot has always been the infighting, eventual lawsuits, splitting and renaming, remember that old saying about too many cooks in the kitchen?

    --
    did you forget to take your meds?
    1. Re:Open Source weak spot by Anonymous Coward · · Score: 0

      If Java were open source, there wouldn't be a need for infighting, eventual lawsuits, splitting and renaming. Oracle's attempt to close it up again is what brought us here in the first place.

    2. Re:Open Source weak spot by Barefoot+Monkey · · Score: 2, Insightful

      The open source weak spot has always been the infighting, eventual lawsuits, splitting and renaming, remember that old saying about too many cooks in the kitchen?

      Exactly the same as with closed source, for exactly the same reasons.

    3. Re:Open Source weak spot by TheTurtlesMoves · · Score: 1

      And yet some OS projects do have much of the same infighting and problems. OS isn't magic, the the big problem here is that folks are trying to assert their "my java" claim early. And if you ask me (and even if you don't), no one is being all that smart about it.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
  11. IBM is the third Front in the War by medv4380 · · Score: 5, Informative

    Google is trying to force the legal issue and end this with a court battle.
    Apache is trying to end it using the JCP
    IBM is trying to be all chummy and get Oracle to support OpenJDK

    If Google wins then Java is Free, if Apache wins then Java is Free, if IBM wins then Java is theirs.

    1. Re:IBM is the third Front in the War by VGPowerlord · · Score: 5, Informative

      IBM is trying to be all chummy and get Oracle to support OpenJDKIBM is trying to be all chummy and get Oracle to support OpenJDK

      OpenJDK is Sun's (now Oracle's) project to begin with. IBM switched its support from Apache Harmony to OpenJDK. So, you could say that IBM has already chosen sides.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    2. Re:IBM is the third Front in the War by mcvos · · Score: 1

      If Google wins then Java is Free, if Apache wins then Java is Free, if IBM wins then Java is theirs.

      I don't see how you get there. If Google wins, then yes, Java is free. Apache looks more likely to break Java than to set it free. If IBM wins, then OpenJDK is still Oracle's.

    3. Re:IBM is the third Front in the War by Anonymous Coward · · Score: 0

      Google is trying to force the legal issue and end this with a court battle.
      Apache is trying to end it using the JCP
      IBM is trying to be all chummy and get Oracle to support OpenJDK

      If Google wins then Java is Free, if Apache wins then Java is Free, if IBM wins then Java is theirs.

      End what? Free what? When did Free start to mean certified? Linux isn't a UNIX, and all is well. Why does Harmony need to be an official Java implementation?

      Apache wants to call its implementation "Java", meaning certified, without the clause that restricts distribution to non-mobile devices.

      When did an open source project being able to gain the title of "certified Foo compliant" ever become part of the open source debate?
      Open source and business concerns mix like oil and water. Apache is trying to stir really fast, screw them. They have the GPLv2 source, and no field of use restrictions on that. Why do they need more?

    4. Re:IBM is the third Front in the War by klingens · · Score: 1

      There are a lot of patents pertaining to many aspects of Java. You only get a royalty free license for the patents if you have a compatible, tested Java implementation. The testkit to do this evaluation TCK is not-free and access terms for it is pretty much unacceptable for any3rd party Free software.
      So Apache must be able to call its implementation Java or they have to cough up a lot of money for patent licenses. Best ask how much MSFT paid for .Net to know how much exactly.

    5. Re:IBM is the third Front in the War by medv4380 · · Score: 2, Informative

      Apache will only break the JCP if they don't win. There is logic behind them trying to stone wall Java 7 and they want Java to be Free or the JCP to end.
      IBM is after the test kit to get the patent rights so that's how they get Java to be theirs if they win, but it requires a test kit.

      I prefer Googles route and just want to see the patents burn on a legal bon fire, but I'll go with Apache if they are successful too. IBM sounds too much like the friend of my enemy who looks poised to stab my enemy but might not as long as they get what they want.

    6. Re:IBM is the third Front in the War by hairyfeet · · Score: 0

      Has everyone forgotten there was a reason for the tests in the first place? Ever hear of a little thing called "MS Java" perhaps? which according to Oracle is the same shit Google is trying to pull, but because they say "do no evil" then that is okay, right?

      You know old Bill Gates must be LMAO right about now, because all this "we demand everything!" bullshit is a really good way to steer businesses AWAY from FOSS and make damned sure no companies buy FOSS firms in the future except patent trolls. Whether you like it or not Oracle OWNS Java and just because SUN released it under GPL does NOT give you the rights to the name or the office furniture. Don't like it? There are other languages out there, help yourself. But if all these groups like Apache and FSF with their LibreOffice succeed mark my words: there will be NOBODY touching FOSS companies with a ten foot pole except patent trolls, who will shut down projects and try to use existing IP to make a quick buck. And IIRC these conditions were the SAME under SUN, but only NOW do they become a problem? Obvious hatred of CEO is obvious.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    7. Re:IBM is the third Front in the War by medv4380 · · Score: 4, Informative

      What google is doing is very different then what ms did.
      MS made a Java Virtual Machine that would run java complied code and run custom MS only stuff like DirectX if you compiled it with there stuff and thus wouldn't work anywhere else.
      Google is using the java language to allow people to write android code that isn't java byte code at all but rather compiled to work on their OS. If you try to run java on an Android it won't work because it's not really a Java Virtual Machine sitting on it. It's the Dalvik Virtual Machine which isn't even using the Name Java to claim anything or imply that it runs Java Compiled byte code. Google is treating Java as if it were a Language and not as a platform which is what you have confused.
      People like you who say Google is doing the same s--- clearly didn't write Java code for the Sun and MS JVM back with Java 1.1, and don't understand what it is that MS did that hurt Java in the first place.

    8. Re:IBM is the third Front in the War by Rob+Y. · · Score: 2, Insightful

      For 'MS Java', Microsoft gladly took Sun's code and proceeded to use it to build an incompatible version with a vast market share behind it. Essentially it was an attempt to use Java to break cross-platform Java - all the while secretly cloning it so that they could eventually use their market share to promote something else that isn't cross-platform at all. They paid a big fine, chalked it up to cost of doing business, and got all the benefits of Sun's R&D in the process.

      Google built something different. They didn't use Sun code, and they didn't pretend to be implementing the Java standard. They just used the Java language (and libraries) because there's a large pool of developers out there that know them. Kind of like how Linux 'looks like' unix without being unix. Whether you think that's evil or not, it's not what Microsoft did. MS was being evil, underhanded, and all the rest.

      And in the meantime, MS had managed to erode the potential monetary value of desktop Java to the point that Sun had nothing to lose in GPL'ing it, leaving Oracle with some strands of a case, but nothing much (I hope) to really stand on.

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
    9. Re:IBM is the third Front in the War by mcvos · · Score: 2, Insightful

      Maybe I don't know enough about JCP's value to Oracle, but it seems to me that Oracle is the kind of company that would happily get rid of other people's input in their product, and then blame it on Apache.

    10. Re:IBM is the third Front in the War by Anonymous Coward · · Score: 0

      > "many developers will be left with few
      > alternatives,' with .Net offering little
      > advantage, and Perl, Python, and Ruby unable
      > to match Java's performance."

      ANSI C scripts are 5 million times faster than IIS + C#, see http://gwan.ch/

      ANSI C is patent-free, and the runtime is ~ 100 KB
      (instead of 100 MB for Java, 80 MB for PHP or 200
      MB for C#).

      I don't know you, but my choice is already made.

    11. Re:IBM is the third Front in the War by exomondo · · Score: 1

      Maybe I don't know enough about JCP's value to Oracle, but it seems to me that Oracle is the kind of company that would happily get rid of other people's input in their product, and then blame it on Apache.

      That's my thought too, threatening Oracle with a 'give it to us or we'll go away and leave it to you' doesn't seem wise when factoring in Oracle's history.

  12. Re:Google Go... by Nerdfest · · Score: 1

    An Apple is a fruit. There are only so many words, and Go seems as good as any and better than some.

  13. C++0x is not a "company language" by Anonymous Coward · · Score: 0

    Just sayin'.

    1. Re:C++0x is not a "company language" by Migala77 · · Score: 1

      It's also vaporware, there is no C++0x standard. There might be a C++1x standard someday.. or C++2x...

    2. Re:C++0x is not a "company language" by TheTurtlesMoves · · Score: 1

      But its still designed by a committee. ;)

      just sayin'

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    3. Re:C++0x is not a "company language" by shutdown+-p+now · · Score: 1

      It's not vaporware in any sense of the world - you can download the draft today, and there are a bunch of implementations already (even if incomplete) - g++, Visual C++, Intel C++. IIRC even Borland had something.

      The current status is final draft, with only changes allowed being bug fixes. The present schedule is very likely to be the final one, and will make it C++11.

  14. We'll always have OpenJDK by rbanffy · · Score: 1

    We may even codename the next release "Paris"...

    1. Re:We'll always have OpenJDK by characterZer0 · · Score: 1

      We will not always have OpenJDK. Oracle can make changes to the VM spec and refuse to grant patent licenses to anybody else, which would kill OpenJDK.

      --
      Go green: turn off your refrigerator.
  15. And of course... by bhunachchicken · · Score: 1

    ... the biggest loser in all of this is the customer.

    As per fucking usual.

    1. Re:And of course... by TheTurtlesMoves · · Score: 1

      Who is the customer here?

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
  16. Is this what he meant? by Anonymous Coward · · Score: 0

    "'...many developers will be left with few alternatives,' with .Net offering little advantage"

    Logically isn't that the same as saying, "...many developers will be left with few alternatives,' however .Net offers some advantage"

  17. Time for C by Murdoch5 · · Score: 1

    If java gets screwed who care, back to C!

    1. Re:Time for C by Anonymous Coward · · Score: 0

      I can't envision a reason to use C anymore. Actually the submitter got it wrong. Go isn't meant to replace C++ or Java. It can't. Go was made to replace C. It'll be years before it has the potential to rival the other two.

    2. Re:Time for C by BitZtream · · Score: 1

      I prefer C, it is my language of choice.

      Not C++, pure C.

      With that said ...
      The only way you could get me to use C for a web app is by torturing me or showing me the web app that actually NEEDED to be written in C for performance reasons.

      I've yet to run into a web app that needed to be written in C and I work for a company that sells web based software as a service, we've seen a bit of load here and there.

      I'm still more than happy to use Java for web apps since that means its just a web app. Its not a Linux/FreeBSD/Windows web app, its a freaking web app.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    3. Re:Time for C by celle · · Score: 1

      "Its not a Linux/FreeBSD/Windows web app, its a freaking web app."

      Ya, it's an IE, Firefox, Safari, Chrome, Opera, web app.

      Fixed that for you.

  18. Re:Google Go... by maxwell+demon · · Score: 2, Funny

    They could have called it Goo. They just would have to be careful to never put "grey" in front of it.
    Actually, thinking again, I guess they actually want it to behave like grey goo: Eat up market share from any other language until everyone writes his code in Goo.

    --
    The Tao of math: The numbers you can count are not the real numbers.
  19. Java's performance by Dystopian+Rebel · · Score: 3, Informative

    If Perl, Python, and Ruby are unable to match Java's performance, I'll take their portability, ease of development, lack of overhead and succinctness over Java any day.

    --
    Rich And Stupid is not so bad as Working For Rich And Stupid.
    1. Re:Java's performance by Mongoose+Disciple · · Score: 1

      If Perl, Python, and Ruby are unable to match Java's performance, I'll take their portability, ease of development, lack of overhead and succinctness over Java any day.

      ... for some tasks. I'm not arrogant enough to tack that on via FTFY, but really that's what the full statement should be.

      Java's currently used for a lot of different things -- the scripting languages are a good fit to replace some, but not all and I wouldn't even really say most, of it.

    2. Re:Java's performance by characterZer0 · · Score: 1

      Portability, ease of development, and succinctness mean nothing if it isn't powerful enough to do what you need to do.

      What do you mean by "lack of overhead"? Are you talking about runtime resources, development environments, or the constructs of the languages themselves?

      --
      Go green: turn off your refrigerator.
    3. Re:Java's performance by VortexCortex · · Score: 1

      Performance isn't why you use Java or any other interpreted language.

      C is used for performance.

      C++ is what I use for productivity (Decent speed OOP).
      Java is what I use for cross platform (When Qt or other such lib isn't guaranteed).
      Perl, Python, Ruby I use as glue (Many applications ARE just glue, in which case these are great).

      The funny thing is: I don't give a crap if a language I use extensively disappears tomorrow.

      I write most of my code in a macro language I created. Depending on the ".hed" files I send to the preprocessor my meta language code is "compiled" into Perl, C++, Java, JavaScript, etc. Screw specific languages and all their shitty connotations. Algorithms are algorithms folks. I got tired of writing the same algo in multiple languages... someday you will too.

    4. Re:Java's performance by Anonymous Coward · · Score: 0

      the scripting languages are a good fit to replace some

      Your statement is fairly disingenuous to the "scripting languages", as these days, the primary difference between Java and the "scripting languages" is the sophistication and/or general availability of their JIT.

      Using your own definition, Java is in fact a "scripting language."

    5. Re:Java's performance by Mongoose+Disciple · · Score: 1

      Hmmm... no.

      The main thing that makes Java hard to replace isn't much about Java inherently at all, but all of the frameworks that have grown up around Java and simply do not exist for a Python or a Ruby.

      When Ruby (or whatever) has a JUnit, a JSF, a Spring, a Hibernate, and so on ad nauseum, each as full-featured as Java's version, it can replace Java in the enterprise. Only C# is even really in the running in that race, and in many departments, it's still clearly losing that race to Java. Nothing else is even a serious contender at this point.

    6. Re:Java's performance by Anonymous Coward · · Score: 0

      Ruby

      lack of overhead

      Lulwhat? Here's an example of running Glasshfish with FOUR JRuby runtimes + FOUR rails apps along side ONE native Ruby webrick rails app.
      XXX puppet-dashboard 15 0 1645m 1.4g 2644 S 1.3 37.0 1321:03 ruby
      XXX puppet 22 0 2574m 1.1g 4820 S 0.0 29.8 184:27.71 java

      The Ruby app is the freaking DASHBOARD. The four JRuby runtimes do the hard work of compiling Puppet catalogs (like Python, Ruby has a global lock, so "threads" are not concurrent, and not safe, despite Java's ability to do so)
      I can restart them till I turn blue, Glassfish and JRuby runtimes will start with higher real mem usage, then the Ruby process over a few weeks will surpass it and stay up there. If Ruby + GEMS were ever designed to thread concurrently, I would quarter that Java process's memory usage. If the dashboard ever needed to scale up, I'd need to run more native Ruby processes.

      BTW, Perl and Ruby are not succinct, they are an overloaded mess. You cannot even guess what something means by looking at it.

      Maybe the dashboard's memory usage is a bug on Puppet's author's part. MAYBE. But seeing, this, I'm not even going to consider running four different native Ruby runtimes to match what that one Glashfish + 4 x JRuby is providing.

    7. Re:Java's performance by Anonymous Coward · · Score: 0

      And if your aunt had balls she'd be your uncle

    8. Re:Java's performance by Anonymous Coward · · Score: 0

      Problem is that ease of development is on Java's side, thats the main reason it's so successful. The static analysis possible inJava allows for much cleaner code than Python, Perl or Ruby can even achieve. Of course you can write shitty code in every language, but you can't write as good code in Python, Perl and Ruby as you can in Java, with the exception of low level / OS functionalilty.

    9. Re:Java's performance by Anonymous Coward · · Score: 0

      Have you heard the term architecture astronaut?

    10. Re:Java's performance by The+End+Of+Days · · Score: 1

      Hopefully you're the only person who ever maintains your code. I sure don't have that luxury.

    11. Re:Java's performance by zero0ne · · Score: 1

      and where can I download this macro language?

    12. Re:Java's performance by SplashMyBandit · · Score: 1

      Try writing a million-line application with fifty developers in Perl, Python or Ruby. Too hard. I know since I'm currently working on such a large project at the moment. Java and its tools are designed to scale in this way. Perl, Python, and Ruby are ok for smaller applications but simply can't scale development like Java. Hence, they are used in the Enterprise to solve smaller problems, but not this big ones.

    13. Re:Java's performance by elygre · · Score: 1

      If Perl, Python, and Ruby are unable to match Java's performance, I'll take their portability, ease of development, lack of overhead and succinctness over Java any day.

      Wow. The terms "Perl" and "ease of development" in the same sentence.

    14. Re:Java's performance by fluido · · Score: 1

      If Perl, Python, and Ruby are unable to match Java's performance, I'll take their portability, ease of development, lack of overhead and succinctness over Java any day.

      Java's currently used for a lot of different things -- the scripting languages are a good fit to replace some, but not all and I wouldn't even really say most, of it.

      For Perl or Python I cannot speak. But it is now more than 5 years that I switched, for my development work, to Ruby as my main language. I talk about more than 150.000 lines of Ruby, mostly for big interactive art installations (have a look at the web page of my best client to have an idea of what I am talking about).

      How have I solved the evident performance problem? First of all, Ruby version 1.9 made the language much snappier. But if you need as much performance as you can get, Ruby makes it easy and comfortable to merge sections written in C within programs. If the partition between the two languages is made with intelligence (i.e. limiting C to machine-intensive small "engines"), you can really obtain the best of two worlds. C outperforms Java, and Ruby is much nicer to work with than Java.

    15. Re:Java's performance by naetuir · · Score: 1

      Lets not forget speed of development, great community support, massive amounts of libraries to do just about anything you want, and the ability to work in any environment you want. They are the very definition of agile.

      ...and lets not even get started on build (maven, ant, et al) processes of Java. So, so tired of doing java builds every time I need to test new features.

      --
      Use what works.
  20. No premium JDK. Apple contribute their JVM... by mario_grgic · · Score: 2, Informative

    to Open JDK.

    http://blogs.sun.com/theaquarium/entry/the_story_of_a_tweet

    Basically, the original news about Oracle splitting the JVM to open/free but crippled and premium/fast commercial one were wrong and based on misinterpretation of a tweet.

    Apple just today announced they are contributing their java/jvm implementation to the Open JDK project, so there will be JDK for OS X in the future as well.

    So, everyone calm down and enjoy JVM + your favourite language (Scala, Clojure or what ever else you like).

    --
    As the island of our knowledge grows, so does the shore of our ignorance.
    1. Re:No premium JDK. Apple contribute their JVM... by TheTurtlesMoves · · Score: 1

      We like to bash Oracle too much to let in any of that rational stuff called facts come in to it.

      Not to mention most of the posts are !java folks who want run around claiming its was all crap anyway.

      Quite frankly all i see is a storm in a tea cup. Much like the opengl 3.0 release. Mostly non opengl programmers were claiming the end of opengl then too.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    2. Re:No premium JDK. Apple contribute their JVM... by Bigjeff5 · · Score: 1

      You mean like the fact that Oracle currently has a lawsuit in progress against Google over their implementation of the JVM?

      Oh yeah, nothing to worry about there. They won't touch the little guys, right?

      Blind fools.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    3. Re:No premium JDK. Apple contribute their JVM... by TheTurtlesMoves · · Score: 1

      Sun was already in "discussions" about disagreements with Google. And if you read what is contested its not "java", its the fact that its not java that's the problem.

      But really how is this any different from all the smart phone vendors right now? They are *all* suing each other.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
  21. go? really? by Anonymous Coward · · Score: 0

    go? Python is as big at google as java. Aren't they working on drastic improvements to performance in the python vm? At this point it seems like go is a toy language that a few guys are messing around with in their 20% time. Definitely overblown.

  22. Objective C by goombah99 · · Score: 1

    Objective C is associated with Apple but it's not an apple exclusive. It has the late binding attraction of Java, but the speed of C. It simplifies objects and is easier to write than C++.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:Objective C by Anonymous Coward · · Score: 1, Insightful

      People complain about Java being verbose and old fashioned. Objective C was invented over 10 years earlier and it feels like it. Java's saving grace is the tools. The modern IDEs are amazing. The only choice for Objective C is Xcode and it feels like a Java IDE from about 2003. I write Java for a living and don't much care for it. But after a bit of Objective C it's a joy to get back to Java.

    2. Re:Objective C by SadButTrue · · Score: 4, Insightful

      Objective C is associated with Apple but it's not an apple exclusive. It has the late binding attraction of Java, but the speed of C. It simplifies objects and is easier to write than C++.

      Outside of assembly is there anything that isn't easier to write in than C++? Real question.

      --
      grape - the GNU free, open source rape
    3. Re:Objective C by iluvcapra · · Score: 5, Insightful

      I'm a big Objective-C fan, but running against you are the fact that most of the modern features that give it some parity with Java -- like the GC and the functional programming features -- are only supported by one extremely mercurial vendor that has a nasty tendency of making no 5-year roadmaps. Also the framework and libraries just don't offer the same coverage as Java. A lot of people at the turn of the century bet on WebObjects, which was a serious platform at that time, and now it's abandonware. Nobody wants to get burned like that again.

      Everything I need to know about OSX Xgrid Cluster Computing

      What was I saying about abandonware?

      --
      Don't blame me, I voted for Baltar.
    4. Re:Objective C by Tetsujin · · Score: 1

      Objective C is associated with Apple but it's not an apple exclusive. It has the late binding attraction of Java, but the speed of C. It simplifies objects and is easier to write than C++.

      Outside of assembly is there anything that isn't easier to write in than C++? Real question.

      What's so difficult about C++?

      --
      Bow-ties are cool.
    5. Re:Objective C by tyrione · · Score: 1

      People complain about Java being verbose and old fashioned. Objective C was invented over 10 years earlier and it feels like it. Java's saving grace is the tools. The modern IDEs are amazing. The only choice for Objective C is Xcode and it feels like a Java IDE from about 2003. I write Java for a living and don't much care for it. But after a bit of Objective C it's a joy to get back to Java.

      Good to see you have the balls of an Anonymous coward to brag about Java being a joy over ObjC. To each their own. Personally, there is no contest for my taste: Objective-C.

    6. Re:Objective C by FutureDomain · · Score: 1

      INTERCAL

      --
      Hydraulic pizza oven!! Guided missile! Herring sandwich! Styrofoam! Jayne Mansfield! Aluminum siding! Borax!
    7. Re:Objective C by SadButTrue · · Score: 1

      Nothing that isn't at least as easy in any other language I have used. Which of course is why I asked.

      --
      grape - the GNU free, open source rape
    8. Re:Objective C by Anonymous Coward · · Score: 0

      APL

    9. Re:Objective C by SadButTrue · · Score: 1

      Not sure what is more amazing, that INTERCAL "exists" or that I had never heard of it. Very good stuff, and thanks.

      --
      grape - the GNU free, open source rape
    10. Re:Objective C by Tetsujin · · Score: 1

      Nothing that isn't at least as easy in any other language I have used. Which of course is why I asked.

      If you want this discussion to go anywhere, you're going to have to be more specific. Instead of saying (effectively) "everything about C++ is done better in every other language I've used" you could add "but, for instance..."

      If you're not interested in attempting to substantiate your opinion, that's fine: I'll just know not to assign any value to it.

      C++ is, to me, a good all-around performer. You can get great performance out of compiled code with readily available compilers on multiple platforms. You can work with it as though it were C for those areas that need to deal with low-level concepts for performance or whatever other reason, but it also provides the organizational framework (namespaces, classes, templates, operator overloads, etc.) that can be used to lend a reasonably high-level feel to the higher levels of a program. I do believe C++ has its shortcomings, but I'm not convinced that any other languages can match its all-around performance at present.

      I'd say that functional languages are generally harder than C++. I love 'em, but getting things done is often easier in an imperative language.

      I'd say PHP is harder than C++ just because the language is such a mess of inconsistent policies, context-sensitive evaluation of data types, and so on. I'm tempted to say the same of Perl but I really haven't used it as much as PHP.

      I love coding in Python but I feel like debugging it, compared to debugging C++, is a nightmare. I love the things you can do with objects and classes in Python: for instance, providing an alternative implementation for the class's namespace-lookup (giving you the ability to define an object's set of members dynamically, in effect, or do things like query an inter-process object's calling interface and then replicate that interface in the interface class you've provided in Python) - but that same power, to assign any type of data to any variable, to subvert the most basic assumptions of how classes work and so on, also means that by the time your program crashes it may be very far from the point of failure.

      Do shell scripts count as a programming language? I think those are crazy screwed-up... But maybe they don't count so I'm not going to go into it for now.

      --
      Bow-ties are cool.
    11. Re:Objective C by Coryoth · · Score: 1

      Not sure what is more amazing, that INTERCAL "exists" or that I had never heard of it. Very good stuff, and thanks.

      And yet there exists worse. Malbolge generally takes the cake for the most esoteric and unreadable programming language. It only took a couple of years to write "Hello world" in it.

    12. Re:Objective C by Anonymous Coward · · Score: 0

      Personally I agree with him. Moreover, he actually explained his reasoning, which you didn't. Instead you attacked the fact he didn't have a Slashdot ID (or wasn't posting under one), something that has no bearing on anything.

      One thing he didn't mention: Objective C is TWO languages, nice, free-form, C, coupled with a bizarre part-free-form part-not set of extensions. The result is a confusing mess.

      Java has its faults, but it's a clean, managed, language where virtually every design decision appears to have a good reason behind it. It's consistent, it's fast, it's type safe, and frankly all of the things that Objective C isn't. Objective C shouldn't exist, it's a rotten prototype of a language that resembles something a 14 year old would design when learning to program.

    13. Re:Objective C by david_thornley · · Score: 1

      What's your experience with C++? C++ has kind of a nasty learning curve, but once you're used to it and using it the right way it's very productive. The containers/iterators/algorithm libraries make it possible to do a lot of things, and implement lots of data structures, without particular difficulty, in a type-safe and efficient way. RAII and smart pointers make resource handling predictable and uniform.

      If you use it as its own language, and not just as a better C, and you leave the really complicated stuff to the library designers, it works very well.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    14. Re:Objective C by goombah99 · · Score: 1

      What was I saying about abandonware?

      Uh, that's xserve not xgrid. the two are not related other than xserves were yet another piece of hardware you could run xgrid on.

      As for objective-C. it's in the public domain so it's not anymore beholden to apple than C++ is. Apple just keeps it growing since they are the primary beneficiaries. As a result many ObjectivC libs are apple only, but that's also true of libraries written for any platform like windows or linux or solaris.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    15. Re:Objective C by SplashMyBandit · · Score: 1

      It is good you like Objective-C. The rest of us find it weak, has a lack of a big ecosystem of tools, essentially limited to one platform, and crap for large multi-threaded applications. Don't be surprised that the rest of us are not as fond of Objective-C as you are.

    16. Re:Objective C by exomondo · · Score: 1

      As for objective-C. it's in the public domain so it's not anymore beholden to apple than C++ is.

      The same as Java, C#, etc... But that's just the language.

      Apple just keeps it growing since they are the primary beneficiaries. As a result many ObjectivC libs are apple only, but that's also true of libraries written for any platform like windows or linux or solaris.

      You mean the thing that makes it useful, like MS and the .Net Framework on Windows, the Java Standard Library on JVMs.

  23. Why Go? by AdmiralXyz · · Score: 2, Interesting

    I understand the need to drive page hits by claiming, "In this bad situation $LANGUAGE could step in and fill the void", but Go seems like an odd choice. It's not that I don't like it: I've written some pet projects with it and it's a fascinating language that I doubt I'd mind having to code in as a full-time job, but they're not similar languages at all, it's an apples-and-oranges comparison

    Java is interpreted, Go is compiled. Go lacks inheritance, generics, huge backing libraries, and a bunch of other things that Java programmers rely on. Basically, Go is not an application language, it's a systems programming language that happens to have garbage collection; it's closer to a replacement for C++ than one for Java.

    In any event, I just don't see people abandoning Java en masse because of this Oracle spat. There's just too much legacy code out there, and too many programmers fluent in Java and nothing else.

    --
    Dislike the Electoral College? Lobby your state to join the National Popular Vote Interstate Compact.
    1. Re:Why Go? by No.+24601 · · Score: 1

      Google should invest R&D in rewriting and optimizing the Ruby interpreter and "adopt" it the way they did Java. It definitely has potential for application development on mobile platforms. Maybe optimized for the VM-environment à la JRuby. Apple already sees its potential on the desktop - hence, MacRuby. Yes, Ruby. The force is strong in that one.

    2. Re:Why Go? by Notch · · Score: 2, Informative

      Java is not an interpreted language. The very first thing that happens is that you compile it from .java files to jvm bytecode files (.class files). Those files are in turn later compiled into native code on the fly as the application runs.

    3. Re:Why Go? by mswhippingboy · · Score: 3, Insightful

      I agree with MOST of your post, but your statement that "Java is interpreted" is misleading. Java (at least modern Java) is a compiled language, it's just that it's compiled in two stages; once when the java compiler converts the source code to byte code and then when the JVM converts the bytecode to native code during runtime (JIT). To state that Java is interpreted leaves the impression that it results in inferior performance as compared to a traditional source-to-native code compilation process. This is a persistent that myth has been shot down time and time again in real-world benchmarks.

      I'm just sayin'

      As far as something replacing Java - who knows, but I don't see it in anyone's interest (including Oracle's) to throw out the baby with the bathwater. Oracle was already heavily dependent on Java long before they acquired Sun.

      There are already alternatives to the Sun/Oracle Java distribution (the Delvek VM itself might be a good candidate to replace the JVM) and it really boils down to software patents and how far the courts and the broken patent system allows corporations to claim IP over generally accepted concepts. It may just be a matter of forking OpenJDK and calling it "Coffee" to remove it from Oracle's greedy hands (just like OpenOffice being forked as Libre Office). I have a feeling Oracle won't let this happen with Java however because it has too much interest in it. IMHO the best outcome of this would be for Google to prevail, and take down Oracle's patents along with it. Not only would this teach Oracle a (much needed) lesson in how to deal with the OSS world, but it would also remove current obstacles to the acceptance of Java out of fear of Oracle's legal team.

      --
      Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
    4. Re:Why Go? by alvinrod · · Score: 1

      The thing that pisses me off most about Go is having the lexer manage semicolons. Essentially it forces a style of coding that I dislike. I prefer to open braces on the following line as it makes it easier for me to read the program. It has some nice features that I like, but forcing a coding style like that is annoying.

    5. Re:Why Go? by tick-tock-atona · · Score: 1

      +1 yes please!

    6. Re:Why Go? by itsdapead · · Score: 1

      Java is interpreted, Go is compiled.

      Not quite. Java is compiled to bytecode for the JVM, Go is compiled to native machine code. The distinction between "compiled" and "interpreted" is not what it once was. The question is how successful/important the "run anywhere" aspect of Java is.

      Mind you, the elephant in the room has nothing to do with paradigms and whether the language supports exceptions: the deal breaker is the huge ecosystem (and accompanying jargon thicket) of APIs and frameworks around Java. Commercial users with a lot of existing expertise in this will not be falling over themselves to re-train and re-tool.

      --
      In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
    7. Re:Why Go? by AdmiralXyz · · Score: 1

      I'm sorry, I should've made my post more clear. I'm well aware that modern-day JVMs do just-in-time compilation. The comparison I meant to imply with my sentence didn't have anything to do with performance, it was that Java is a write-once run-anywhere language suited for applications, whereas Go needs a compiler for every target system, and for that reason isn't quite suited to the kinds of things Java programmers are writing.

      --
      Dislike the Electoral College? Lobby your state to join the National Popular Vote Interstate Compact.
    8. Re:Why Go? by Anne+Thwacks · · Score: 1
      The question is how successful/important the "run anywhere" aspect of Java is.

      How successful/important is 415 million mobile phones in 3 months?

      You can put your server where the SUN don't shine. (Not much sun shines in my server room either). Phones is where the money is.

      --
      Sent from my ASR33 using ASCII
    9. Re:Why Go? by BradleyAndersen · · Score: 1

      The problem is, I work in a language because someone pays me to do that. $BIGCO_X isn't gonna pay me to work in $NONBIGLANGUAGE. So no, Java isn't going away, and yes, that's because of my first point, which totally validates your final point :)

    10. Re:Why Go? by sgt+scrub · · Score: 3, Funny

      --> Java (at least modern Java) is a compiled language, it's just that it's compiled in two stages; once when the java compiler converts the source code to byte code and then when the JVM converts the bytecode to native code during runtime (JIT).

      Your description points out that it is not compiled by saying that it is compiled twice? So using your description, Java is a language that has to be compiled by the writer and again by the user. I say compiling scripts so the outcome can be compiled every time they are used is just annoying. I think the only reason for it was because some Java programmers wanted the contents of their code hidden. Everyone knows that if you don't want someone reading your code you write it in Erlang and Perl.

      --
      Having to work for a living is the root of all evil.
    11. Re:Why Go? by bradley13 · · Score: 1

      ...the best outcome of this would be for Google to prevail, and take down Oracle's patents along with it. Not only would this teach Oracle a (much needed) lesson

      Yes.

      I devoutly hope that Google fulfills my expectations, and refuses to back down until they have killed Oracle's patents. This would be good in so many ways.

      --
      Enjoy life! This is not a dress rehearsal.
    12. Re:Why Go? by UnknownSoldier · · Score: 1

      Agreed, that a language should never FORCE one particular coding style, only ENABLE, especially the TABs vs SPACES holy war.

      While there are advantages, they don't outweight the disadvantages.

      In some contexts it nice to write
         if( a )
           do_a();
         if( b )
           do_b();

      While sometimes it is nicer to format it as
         if( a ) do_a();
         if( b ) do_b();

      In some contexts it nice to write
      e.g.
        case A: do_a(); break;
        case B: do_b(); break;

      Yet to be safe, you usually want to write
         if( a )
         {
           do_a();
         }
         if( b )
         {
           do_b();
         }
      to future-proof the code-formatting if you need to add any extra logic inside the braces.

      I can't stand some language dictating how or where I mark-up my code/comments with extra whitespace or terminators.

      For example, putting the comma in front, makes it dead easy to extend enums, etc. instead of having to dick around add/removing the last comma.

      enum Color { __DUMMY_COLOR
         , Red = 0
         , Green
         , Blue
      };

      I really wish programming languages would step into the new millenium.  Is it really that hard to have a language and editor support dynamic tabs so I can write more readable code (and comments) in a proportional font ?

      e.g.

      // !        !
         first tab stop
                  second tab stop

    13. Re:Why Go? by Bigjeff5 · · Score: 1

      This is a persistent that myth has been shot down time and time again in real-world benchmarks.

      Except that it is, in fact, slower than a real compiled language like C/C++ by a wide margin in those benchmarks.

      It's a lot faster than a scripting language (Python, Perl, etc) but it's slow compared to native compiled languages.

      Sorry charlie.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    14. Re:Why Go? by godefroi · · Score: 1

      Re: the enums-and-commas point, some languages, at least, allow a trailing comma after the last member in an enum (C# is one example). You can write this:

      enum Color
      {
              member_one,
              member_two,
      }

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    15. Re:Why Go? by mswhippingboy · · Score: 1

      Given that this post was modded "Funny" I'll give you the benefit of doubt that you are being facetious.

      Just on the off chance that you were being serious (at least in your response to my comments about Java), and for those that didn't read this as humor, let me respond. First, the "user" doesn't have to compile anything. They just run the bytecode in a JVM and (assuming the JVM supports JIT), the JVM takes care of analyzing the bytecode and compiling it to native instructions on-the-fly (hence the term JIT - Just In Time). There is nothing annoying about it since it is all happening under the covers. This technique actually offers the potential for better performance since the JVM can optimize the generated code based on the current runtime conditions and is not limited to just the optimizations that the compiler performs at compile time.

      --
      Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
    16. Re:Why Go? by iluvcapra · · Score: 1

      As wishful as we all may be, Google is a Python house, and the two are basically supplementary -- you rarely see anyone devote resources to both. It's more likely that if any major company loads in to Ruby, it's gonna be Apple.

      --
      Don't blame me, I voted for Baltar.
    17. Re:Why Go? by losinggeneration · · Score: 1

      if( a )
        do_a();

      Well, in Go you'd have to do:
      if( a ) {
        do_a()
      }

      if( a ) do_a();
      if( b ) do_b();

      You'd probably write it this way then in Go:
      if( a ) { do_a() }
      if( b ) { do_b() }

      case A: do_a(); break;
      case B: do_b(); break;

      In Go (no real change except it automatically breaks, not sure if I like that yet or not to be totally honest...)
      case A: do_a()
      case B: do_b()

      if( a )
      {
        do_a();
      }

      Again, the first example in Go is what you'd write here again because it forces the use of braces.

      I can't stand some language dictating how or where I mark-up my code/comments with extra whitespace or terminators.

      To an extent I agree, but I've also seen some people who also believe that and their code not only looks like garbage, and/or there's subtle bugs because they did something like this (in C):
      if( a )
        if( b )
          do_something();
      else
        not_a(); // wrong

      For example, putting the comma in front, makes it dead easy to extend enums, etc. instead of having to dick around add/removing the last comma.

      enum Color { __DUMMY_COLOR
        , Red = 0
        , Green
        , Blue
      };

      I personally don't care for this style. I've also never really heard a compelling argument to make me consider using that style. Back to Go, you're in luck with this example because Go doesn't have a dedicated enum. Instead, you use const.
      const (
        Red = iota
        Green
        Blue
      )

    18. Re:Why Go? by mswhippingboy · · Score: 1

      My name's not Charlie, Jeff, and I think it's time you took a look at "recent" benchmarks.

      While anyone can find benchmarks that favor their particular view, in real-world applications there tends to be very little, if any difference between Java and C++ performance. This is due to several reasons, a few of which I'll list here.

      1) Java IS COMPILED. I really get tired of repeating this, but it is absolutely compiled and as such, it gains all the benefits of a compiled language such as optimizations (loop, peep-hole, data-flow,etc). It is no different than a C++ compiler in this respect. The only difference is that, rather than generate native machine code as output, the Java compiler generates byte-code. Bytecode IS machine code, it's just that it's machine code for which no hardware CPU exists (actually that's not 100% true - there are or have been hardware CPUs created to execute bytecode natively, but they have yet to catch on). Rather than directly executing the bytecode in hardware, most implementations use a JVM to execute the bytecode.
      2) Because the JVM is aware of the runtime environment it is currently executing in, it has the capability to perform additional optimizations at runtime. The JVM has the capability to decide how best to convert the bytecode into inline native instructions based on available resources such as memory and CPU. C++ does not have this luxury. Once the C++ compiler generates it's executable code, that code is static and unchangeable.
      3) Because Java has such a large and highly optimized class library, not to mention loads of additional third party highly optimized libraries, a fairly novice developer can easily develop rather sophisticated high performance applications. A C++ developer on the other hand, will tend to implement algorithms by hand that are not available in the STL or similar class library, either because there are no commercial or open source libraries available for what is needed, or management won't allow them, or they are not compatible, they are too expensive, they are not high-quality, or any number of other reasons. Invariably, only sections of code that are causing a problem will receive the attention needed to develop a highly optimized algorithm. These issues tend to cause real-world applications to perform somewhat less than their potential. The availability of highly-optimized libraries issue is not so much a language issue as a culture issue. There are just a lot more of these libraries available (generally open-source) for Java than for C++.
      4) Most (at least most "corporate") C++ developers are not expert developers so they tend to produce mediocre code and even more mediocre algorithms. Most don't even understand the STL or the Collections it provides, so they wind up using arrays and performing sequential searches (for loops) rather than learning all the idiosyncrasies of templates and how they work.
      5) I can attest as a long time C++ developer that a great deal of the time I spend coding in C++ is spent carefully making sure to avoid memory leaks and pointer problems. Since I don't have to worry about this (at least not nearly as much) when developing in Java, I'm able to concentrate more time on tweaking the algorithms. Over and over again, I've rewritten C++ applications in Java and the result has been a major increase in performance.
      I could go on, but I think you get the point.

      --
      Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
    19. Re:Why Go? by HonIsCool · · Score: 1

      2) Because the JVM is aware of the runtime environment it is currently executing in, it has the capability to perform additional optimizations at runtime. The JVM has the capability to decide how best to convert the bytecode into inline native instructions based on available resources such as memory and CPU. C++ does not have this luxury. Once the C++ compiler generates it's executable code, that code is static and unchangeable.

      I would just like to point out that this is not strictly true: There is nothing (standard-wise) preventing C++ code from being compiled for a JVM in exactly the same manner as Java. I think Clang + LLVM is able to do it?

      --
      "Give me six lines of C++ code written by the most competent programmer, and I will find enough in there to hang him."
    20. Re:Why Go? by Anonymous Coward · · Score: 0

      Just as a clarification, Java on Oracle JDK/HotSpot does get compiled twice and many times more than that.

      The program javac takes text .java source code, and creates byte code. On JVM's byte code is basically assembly for the JVM.

      After that byte code gets interpreted time and time again, eventually (sometimes) the profiler suggests JIT take place based on whatever data it has collected on a particular piece of code. Optimized native instructions are generated by this JIT process. The profiler remains active, in most cases, and on occasion will generate fresh instruction streams.

    21. Re:Why Go? by mswhippingboy · · Score: 1

      I agree that this "could" be done, just as Java could be compiled directly to native code (in fact has been - http://gcc.gnu.org/java ).
      However, there are solid reason why neither of these is done on a "normal" basis. There are many benefits that C++ would lose if it were run on a JVM, just as there are benefits that Java would lose if it were compiled to native code. I won't go into these here, other than to say that each language exists within it's own realm and has been tweaked to take advantage of it's own realm.
      I believe the point that BigJeff5 was making was that natively compiled code is inherently faster than JVM executed code and while "all things being equal" that might be "theoretically" true, in reality that is "typically" just not the case.
      Just as an example of what I'm referring to, the executable code from the C++ program I wrote and compiled 15 years ago for my 486 processor may still run fine on my Core 2 Duo, but it certainly won't take advantage of all the processor improvements and new instructions that have been implemented since then because it's machine code is frozen in time. However, the Java program I wrote at the same time will also run on my new machine, but it will now take advantage of all the new JVM features as well as fully exploit the new instructions and architectural improvements of my more modern CPU.

      --
      Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
    22. Re:Why Go? by itsdapead · · Score: 1

      The question is how successful/important the "run anywhere" aspect of Java is.

      How successful/important is 415 million mobile phones in 3 months?

      But iPhone (Obj C compiled to ARM native code, or interpreted ECMAScript) and Android (Java, yes, but compiled to Dalvik bytecode, not JVM) are also doing pretty well without Java's "run anywhere" trick.

      My money would be on ECMAscript and what is innaccurately but conveniently referred to as "HTML5" as the future for mobile apps - but not as an alternative to the more heavyweight uses of Java.

      --
      In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
  24. Wishes... by zooblethorpe · · Score: 1

    As per fucking usual.

    I wish fucking were more usual in my life.

    < ... sigh ... >

    --
    "What in the name of Fats Waller is that?"
    "A four-foot prune."
    1. Re:Wishes... by sgt+scrub · · Score: 1

      bump +1 ROFL

      --
      Having to work for a living is the root of all evil.
    2. Re:Wishes... by badkarmadayaccount · · Score: 1

      I hear you brother.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  25. OSS should retaliate completely by Junior+J.+Junior+III · · Score: 1

    Every open/free license in existence should be rewritten to exempt Oracle from being able to use the software, or modify it, or any thing else. Let Oracle write their own operating systems, device drivers, web servers, etc. from scratch, with no help at all from open source. Add a provision that Oracle and only Oracle can use the software ONLY if they pay out the ass for it, under terms which mirror Oracle's own licensing. A tit-for-tat approach like this might get them to come around.... oh... sometime after Ellison retires or dies.

    --
    You see? You see? Your stupid minds! Stupid! Stupid!
    1. Re:OSS should retaliate completely by characterZer0 · · Score: 1

      Philosophical issues aside, are you are going to go find every person who submitted code to a project using an open source license and get them to agree?

      See moving Linux from GPLv2 to GPLv3.

      --
      Go green: turn off your refrigerator.
    2. Re:OSS should retaliate completely by Just+Brew+It! · · Score: 1

      Umm... so the solution to Oracle being a bully is for Open Source to become... not open? Do that, and Oracle wins. It is like all the security measures and curtailments on personal liberty which were implemented (and continue to be implemented) post-9/11 -- if your enemy manages to get you to violate your own core principles, then they have scored a major victory.

    3. Re:OSS should retaliate completely by Junior+J.+Junior+III · · Score: 1

      I don't see how narrow-focused retaliation directed specifically at Oracle would be a violation of Open Source principles.

      Oracle is destroying OSS projects through acquisition. Remaining open to everyone else BUT Oracle would send a clear message that if they don't play nice with us, we won't take it laying down.

      --
      You see? You see? Your stupid minds! Stupid! Stupid!
    4. Re:OSS should retaliate completely by Junior+J.+Junior+III · · Score: 1

      Yes, it would not be the easiest thing to get everyone to agree to do this. I still have the sentiment that it's really what everyone should do, though.

      --
      You see? You see? Your stupid minds! Stupid! Stupid!
    5. Re:OSS should retaliate completely by characterZer0 · · Score: 1

      A huge amount of open source software is contributed by corporations or supported by corporations. It is not likely that these corporations would support such actions. If others did it anyway, many corporations would stop supporting and contributing open source software.

      --
      Go green: turn off your refrigerator.
  26. The MS playbook by m0s3m8n · · Score: 1

    To me Oracle's behavior is very reminiscent of MS past behavior. Assimilate and destroy. I see no good coming from anything Oracle touches. I'm looking at you Larry.

    --
    Conservative, mod down for violating /. political norms.
  27. Performance my A** by Herkum01 · · Score: 3, Insightful

    Perl, Python, and Ruby unable to match Java's performance

    I don't know about Ruby, but Perl has damn good performance, such that it still runs a number of major web sites, including this one. The ONLY reason Java is as popular is because Corporate America loves a corporate solution and Java was being sold as a solution by major vendors(think IBM, Sun and for a while Microsoft).

    You cannot really sell Perl, or Python, or Ruby as a corporate solution because they cannot hijack a version, edit it and claim it is special. Hell, Perl runs on EVERYTHING what more can IBM add to it? This is really why good open source languages are neglected by large companies, they cannot charge anything for it.

    1. Re:Performance my A** by Bill,+Shooter+of+Bul · · Score: 1

      Depend on what your doing. Check out some benchmarks

      For complex number crunching purposes, Java kills perl. For a website, perl's probably good enough.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    2. Re:Performance my A** by Toy+G · · Score: 0, Troll

      The ONLY reason Java is as popular is because Corporate America loves a corporate solution and Java was being sold as a solution by major vendors [...] This is really why good open source languages are neglected by large companies, they cannot charge anything for it.

      QFT. Perl and Python are as fast as, or even faster than, Java.

      TBH, this seemed just like a slashvertisement for Go.

      --
      -- Let's go Viridian.
    3. Re:Performance my A** by 6031769 · · Score: 1

      For complex number crunching purposes, Fortran kills Java.

      Of course number crunching is not Perl's forte, but neither is Java's. Experienced programmers know that often the most important decision is the first decision: choose the right tool for the job. The question remains: for which task is Java the ideal language or platform? I can't answer this question - can you?

      --
      Burns: We're building a casino!
      McAllister: Arrr. Give me 5 minutes.
    4. Re:Performance my A** by Bill,+Shooter+of+Bul · · Score: 1

      Nothing is ideal. Nothing is perfectly optimised. Java is widely used for a variety of tasks. Which makes selecting a successor a bit difficult. Java, while not as fast as FORTRAN, or Ocaml, isn't ruby slow. Its decent. Like a stock entry level corvette. Its not a Ferrari, but not a semi truck. If you're going to replace it wholesale without any more details about the task, it make sense to choose something closer to its specs. In some cases that may be stupid ( like if some one was using their corvette to haul concrete to a job site), but if you trust the people who are using a tool to have used it appropriately, its the only logical thing to do.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    5. Re:Performance my A** by mswhippingboy · · Score: 4, Informative

      I'm sorry, but I use both Perl and Java daily and Perl is not even in the same ballpark. Sure, for building a website Perl is fine because a web application is generally not a compute-bound application. The difference between Java and Perl in throwing up HTML is probably measured in milliseconds (with Java winning). You might get the impression that java is slower than perl for websites, but this is due to the fact that java based websites many times use some heavy framework (JSF, J2EE, etc) which tend to bog it down. However, this is not due to the language, but rather to the overhead of using an enterprise level framework (which does have significant value despite your premise that it's somehow inferior) vs a perl script that simply spits HTML back to the browser. A java program executing the same logic as a perl script will beat it hands down, everytime.

      Your statement "The ONLY reason Java is as popular is because Corporate America loves a corporate solution and Java was being sold as a solution by major vendors(think IBM, Sun and for a while Microsoft)" is pure rubbish.

      When Java was introduced it provided features that were previously unavailable and has grown into an extremely powerful platform in it own right. This had nothing to do with being a corporate solution and in fact, it took YEARS for Java to catch on in the corporate world. Many large corporations would not allow it until it finally became such a force it could no longer be ignored.

      In case you are not aware, Perl has been in use as corporate solution, especially among sysadmins, long before Java became so popular. And one more thing, Perl (as produced by ActiveState - pretty much the market leader by my reckoning) does sell their product to corporations. While you can get the community edition for free, corporations usually want some level of support for the tools they use so the commercial editions are a good way for them to go. It's a win-win situation as the license fees help fund the OSS effort and the corporations feel comfortable in adopting it as a strategic tool.

      --
      Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
    6. Re:Performance my A** by phantomfive · · Score: 1

      I am curious why you would say Perl has good performance. I recently did some comparisons, calculating the first 10,000 primes and storing them in an array. C did it in 5 seconds or something, Java was about as fast, Ruby did 12 seconds (the numbers don't matter, it's just for vague comparison), but Perl didn't even finish in 5 minutes.

      Now, I can imagine it's possible that Perl is not optimized for calculating primes (or large array operations in general), but when you say, "Perl has damn good performance," what exactly do you mean? Performance doing what? Because I'm not seeing it.

      --
      Qxe4
    7. Re:Performance my A** by Herkum01 · · Score: 3, Insightful

      So some program you wrote, to do some speed comparisons showing Perl was slower. There was another guy who did the same thing here showing Java was faster than Perl. Of course he used regular expressions in Perl and substrings in Java but why worry about details!

      Perl has lots of things going for it, someone just suggested that it is only good for web programming or such while Java is used for business applications. I hate to tell you folks, a lot of business is getting done on the web. Perl has never really had a problem with performance and considering Slashdot gets web traffic that continually crushes other web sites just by posting a link on the front page you might consider that there might be something to what I said.

    8. Re:Performance my A** by Anonymous Coward · · Score: 1, Informative

      Yes. Real-world Perl is fast in large part because good Perl programmers make extensive use of modules, most of which are highly optimised in C.

      Also, the Perl community has got itself together over the last few years, both in terms of the engineering of the language and the recognition of the need for marketing.

    9. Re:Performance my A** by Anonymous Coward · · Score: 0

      Perl has never really had a problem with performance and considering Slashdot gets web traffic that continually crushes other web sites just by posting a link on the front page you might consider that there might be something to what I said.

      I wouldn't use Slashdot as an example of Perl web app performance. It's much more static website than dynamic web application, and the little bit of web application functionality it does have is about as basic as web application functionality can get, and yet it's still a clunky beast of a website. That it can handle high volumes of traffic is merely a testament to the web servers it's running on.

    10. Re:Performance my A** by gangien · · Score: 1

      Do you know the difference between front end and back end?

      Your line about a lot of business getting done on the web leads me to believe you don't.

      There's a lot of stuff going on behind the scenes.

  28. Re:go? really? by icebraining · · Score: 1

    Yes, there are plenty of projects to speed up Python. Unladen Swallow, Pypy and Psyco, at least.

  29. Popular Opinion by codepunk · · Score: 1

    I love python but if I had to choose a language to write a web app in that at some point I may need to scale it would be PHP. Why you ask, well I have a compiler that can take it to
    native C++ available if I need it.

    --


    Got Code?
    1. Re:Popular Opinion by shish · · Score: 1

      Why you ask, well I have a compiler that can take it to native C++ available if I need it.

      Presuming you mean hiphop, have you actually looked at its output? Hint: it does not compile '<? print "hello world"; ?>' into 'void main() {printf("hello world");}', it compiles it into several hundred kilobytes of C++, which through the magic of C++, are then turned into tens of megabytes of binary. I could type out "hello world" by hand in less time than it takes for a hiphop app to even be loaded from disk :-P

      (Sure, it's twice as fast as regular PHP, but that's still slower than most other languages -- there is a big difference between "translated to C++" and "written in C++")

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    2. Re:Popular Opinion by mini+me · · Score: 1

      If you actually reach the point where your web application is bound by the language used to generate HTML, the language your app is written in will be the least of your concerns.

    3. Re:Popular Opinion by siDDis · · Score: 1

      There are several tools like Psyco that already do this for Python. But if you really want efficient code execution, then you can write your own C modules to Python easily -> http://docs.python.org/extending/extending.html

  30. Re:Google Go... by Lord+Bitman · · Score: 1

    Maybe they want it to behave like a fast, simply, easy-to-parallelize language?

    --
    -- 'The' Lord and Master Bitman On High, Master Of All
  31. Re:Google Go... by DigitalSorceress · · Score: 1

    And if you write a user interface with it, that would be a GooUI

    --

    The Digital Sorceress
  32. What about C++? by Anonymous Coward · · Score: 1, Insightful

    The language is portable to any platform, very powerful, and isn't at-risk of suffering the same fate as Java.

    The criticisms of it are mostly fluff in my opinion...people trying to say that their personal stylistic perferences should be industry standards, or justifying their own lack of skill by saying C++ makes things harder than they should be, etc.

    1. Re:What about C++? by Sarten-X · · Score: 4, Funny

      C++ is every bit as portable as assembly. All you need to know is what parts fail on which platforms, compile 15 different ways, and pray it all works after someone upgrades something.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    2. Re:What about C++? by HonIsCool · · Score: 2, Informative

      Not really. By itself C++ is more portable than Java et al. In fact, the problem is rather that C++ is too portable (ie general)!

      For example, for I/O there is the basic notion about files for example, but anything more specific (like, directories or how to get a list of files etc. And don't even mention graphical thingies!) the standard is completely silent, precisely too keep things as portable as possible.

      That means if one wants non-general things, one has go outside the C++ standard. Preferably there is some other standard to follow then, such as POSIX, or maybe QT.

      --
      "Give me six lines of C++ code written by the most competent programmer, and I will find enough in there to hang him."
    3. Re:What about C++? by Anonymous Coward · · Score: 0

      C++ was around long before Java. Java was created to solve specific problems. If C++ had solved those problems, Java would never have been created.

    4. Re:What about C++? by gbjbaanb · · Score: 1

      or boost, of course.

    5. Re:What about C++? by FatherOfONe · · Score: 1

      I don't know C++, and am not trolling here, but my use case is this:
      I need to write a client side program with a somewhat good GUI on it. It needs to run well on OSX, Microsoft Windows and Linux. How would I do that in C++? Is there something like SWING for C++? If not is there something like SWT? Also, I would prefer not to worry about specific versions of Linux. What I mean by that is that while I love KDE, I also want the app to run on Gnome or whatever somewhat normal GUI is on Linux. One last point is that I would strongly prefer some WYSIWYG design tool for the GUI layout and a strong IDE support. I have coded enough "Buttons" by hand, and don't really ever want to go back to that again, if I can avoid it. I also would love if it had the ability to understand what platform it is on and adjust to have the "feel" of the native OS. So things like Apple+Q would quit the application.

      One last thing is how does Objective C compare to C++? Can either or both do what I mentioned above?

      Thanks

      --
      The more I learn about science, the more my faith in God increases.
    6. Re:What about C++? by friedmud · · Score: 1

      What you want is Qt... it does all of this in native C++ (and there are binding for python and ruby if you want to go that route):

      http://qt.nokia.com/products/

    7. Re:What about C++? by AuMatar · · Score: 1

      There's no standard C++ GUI. There are dozens of open source libraries to make cross platform GUIs in Windows, all of which have their own set of features and quirks. Many of which (but by no means all) are better than Java- competition breeds improvement, whereas Java APIs stagnate behind whatever Sun/Oracle says is the standard. But the cost for that is that you the developer needs to research which one he likes the most, supports the platforms he wants to use, and supplies the features he needs. Examples of this are QT, GTK, Ace, and a dozen others.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    8. Re:What about C++? by luis_a_espinal · · Score: 1

      You have no clue, buddy. Your opinion is uninformed.

      Elaborate.

    9. Re:What about C++? by Kaz+Kylheku · · Score: 1

      C and C++ port to nearly bare iron.

      These languages port to a huge multitude of platforms. Pretty much anything which can be programmed in a higher level language has toolchain with a C or C++ compiler.

      Java ports to the Java platform.

    10. Re:What about C++? by The+Warlock · · Score: 5, Informative

      C++ has an astonishingly complicated grammar, which means that compilation takes forever and other tools don't work as well as they do for languages with simpler grammars, like C or Java.

      C++ doesn't really have compile-time encapsulation: if you add a private member to a class, you need to recompile everything that uses that class even though the class's public interface didn't change. That woudn't be so bad in and of itself except that C++, again, takes forever to compile.

      C++ also doesn't have run-time encapsulation or really any serious run-time error checking that you don't do yourself. Yes, it's for performance reasons, but some people are working on problems that aren't performance-critical and would prefer a language that doesn't pound nails through our dicks. (if it doesn't have encapsulation, why do they call it "object oriented?")

      C++'s exception support is hilariously broken. 1) If you've allocated some memory for an object, and then you throw an exception, you don't have that pointer anymore, and because C++ doesn't have garbage collection you've just leaked memory. The only way around this is to implement garbage collection yourself; C++ weenies call this "RAII" and if they're really far down the rabbit hole they sometimes don't even realize that it's just them implementing shitty reference-counting garbage collection. 2) You can't throw exceptions in destructors. Well, you can, but when an exception is raised, all the destructor for objects on the stack are called, and if one of them throws an exception while you're already handling an exception the program terminates. Seriously, that's what the standard says, I'm not making this up. So you can't throw exceptions in destructors, or call any function that might throw an exception. 3) In every major compiler I've used, exception handling support is implemented in such a way that it slows down every function call you make. Yes, it's only slightly, but it means if you really care about performance, you can't use exceptions, and if you don't care about performance why the hell are you using C++? And even if you want to use them they're almost worthless; I mean you can't even get a goddamn stack trace out of them. You can throw arbitrary objects, but the catcher can't figure out what the hell the object is because of C++'s lack of reflection. Etc.

      C++, in an effort to be sort-of compatible with C (except where it's not compatible with C, which makes you wonder why they bothered in the first place) keeps all of C's features while creating duplicate features with their own new, horrifying problems. So you have C++ templates, but you still need to deal with C macros. You have std::vectors, but you still need to deal with arrays. You have std::string and char*, and neither is particularly good. Making things even funnier, C++ doesn't like to use its new features and prefers the C stuff: a string literal is a char*, not a std::string, the arguments to main() are int argc, char** argv, rather than something sensible like std::vector args, iostream does not take std::string for its filename arguments, etc.

      While we're on the subject, the standard iostream is pants-on-head retarded. The streams are stateful, which means that std::cout foo; depends not only on the values of cout, foo, and the overloaded left bit shift operator, but also on whatever's been sent to cout in the past. You send values like std::hex or std::setw(int) to set parameters, so when you grab a stream you don't really know what the fuck will happen. This is supposed to be an improvement over printf? They're verbose as hell, too: say you're printing some hex numbers. In C, you'd use "printf("0x%08xn", x);" for int x. In C++, you use "std::cout std::hex std::setfill('0') std::setw(8) x std::dec std::endl;" It's absurd.

      The standard library is completely anemic. I'm not even talking about GUI stuff, here: there's no platform-independent way to do some really basic stuff like pausing for a length of time, or starting a new thread. You can use so

      --
      I've upped my standards, so up yours.
    11. Re:What about C++? by The+Warlock · · Score: 1

      By the way, Slashdot removes the bit shift operators from my post, that wasn't me forgetting them.

      --
      I've upped my standards, so up yours.
    12. Re:What about C++? by EsbenMoseHansen · · Score: 1

      And this, I believe, is C++ big strength. Did Swing++ suck? Well, leave it behind. The smaller the standard lib, the more unnatural selection can work its magic.

      Where C++ mostly fails is it silly syntatic heritage (Some examples: hard to parse, switch defaulting to fall-through, return value going before the parameters) and its lack of closures (that will be fixed, though).

      Really, there is no excuse for not providing closures if you provide objects.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    13. Re:What about C++? by Anonymous Coward · · Score: 0

      Guess it's a good thing that multi-platform OSS projects like Firefox, Apache, and OO aren't programmed in C++ then.

      Oh wait...

    14. Re:What about C++? by EsbenMoseHansen · · Score: 2, Funny

      Indeed. C++ lacked a big marketing department ;)

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    15. Re:What about C++? by wildfirexy · · Score: 1, Interesting

      For the last 8 months I've spend my time developing & porting DRM related software to the ARM architecture. And as a language C++ is crap. And this is being nice about it. First there is the compiler which cannot even force all the subtleties which can be achieved by using C/C++. Secondly there is no standard -- or let me put it this way: A compiler switch which switch of C++ exceptions, means that the "standard" means nothing. "Portability" in the C/C++ world is massive amount of #IFDEF pre processor statements. My general experience so far with the compilers (I used VC, and the GNU tool chain), is like having a serial killer for a friend: You just never know when he is going to murder you with a smile. So no, I cannot wait until I don't have to touch C++ ever again. I'm sure the designers of the C++ language killed children and small fury pets in their past life.

    16. Re:What about C++? by HonIsCool · · Score: 1

      Perhaps the biggest problem with C++ is the extreme ease with which one finds oneself lost in the dreadful land of undefined behaviour...

      --
      "Give me six lines of C++ code written by the most competent programmer, and I will find enough in there to hang him."
    17. Re:What about C++? by rjstanford · · Score: 2, Informative

      Honestly? You're better off abstracting off all of your business logic into the library of your choice (as long as there are hooks on each platform - C is dead safe, almost anything would work if you did it as a little 'server' type application and communicated over sockets, your choice). Then write your GUI, from scratch, for each platform.

      Why? For one thing, design guidelines are different on every platform. An OSX app, a Linux app, and a Windows app shouldn't use the same controls in the same places to do the same things. They should look, think, feel, and be usable as native platform applications doing things the native platform way. This is the problem that every "cross platform" GUI development system - that I've seen at least - fails to address. You don't want your app to feel like a Windows app running on a Mac, even if the menus are positioned at the top of the screen (hello, Eclipse). Or a Mac app running on Windows (hello, iTunes). Bleah.

      So when you get down to it, it has nothing to do with the language you choose. Make your GUI do GUI things and do them well, and do them natively. Its not that hard to write uncomplicated GUIs on each platform, it will take a few days to digest the style guides for OSs you're not very familiar with. But the end result will be a far superior end product.

      --
      You're special forces then? That's great! I just love your olympics!
    18. Re:What about C++? by HonIsCool · · Score: 1

      Why is that? Is the application using only pure C++ and nothing outside the standard?

      --
      "Give me six lines of C++ code written by the most competent programmer, and I will find enough in there to hang him."
    19. Re:What about C++? by BlitzTech · · Score: 1, Informative

      Posts like this make me wish I had mod points and could repeat-cast them for the same post. +1 True, +1 Informative, +1 Interesting, +1 This makes me want to cry. C++ is an awful language. If you haven't seen this, I think you'll appreciate this rant by Linus Torvalds.

    20. Re:What about C++? by EsbenMoseHansen · · Score: 1

      Compilers can and do offer "undefined behaviour = crash/assert/exception" (with the corresponding performance hit), but there seems to be little or no interest.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    21. Re:What about C++? by HonIsCool · · Score: 1

      What compiler offers this?

      --
      "Give me six lines of C++ code written by the most competent programmer, and I will find enough in there to hang him."
    22. Re:What about C++? by Anonymous Coward · · Score: 0

      competition breeds improvement, whereas Java APIs stagnate behind whatever Sun/Oracle says is the standard.

      There is some competition in the Java GUI toolkit world too...SWT is the major example, but there's also Java bindings for many of the C++ options too. It's only Swing and AWT that are stagnant and give Java the reputation for feeling non-native.

    23. Re:What about C++? by EsbenMoseHansen · · Score: 1

      There has been or is bounds checking in gcc. STLport offers similar facilities for STL. I seem to recall both initializing and null-checking compilers, but I can't seem to find them now. Perhaps it was an IBM-internal thing from back when I had a job there. Indeed, it should be possible to have C++-compilers output bytecode --- it is, after all, just another platform.

      As I said, such projects seem to gather little or no interest, probably because they don't offer enough real-world value for the performance hit. For the user, a crash is a crash is a crash, and the hypothetical "able to clean up and leave all data in a good state" turns out to be infeasible expensive.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    24. Re:What about C++? by HonIsCool · · Score: 1

      Well, those things are probably nice and all, but I was hoping for a compiler where the C++ standard undefined behaviour was actually defined, and in the general case and not just a few special cases :)

      --
      "Give me six lines of C++ code written by the most competent programmer, and I will find enough in there to hang him."
    25. Re:What about C++? by mangu · · Score: 2, Interesting

      C++ has an astonishingly complicated grammar

      You could have stopped here and avoided a lot of TL;DRs, but I must say I agree with everything you wrote.

      In the 1980s I started programming in C and fell instantly in love with it. It's still my favorite today, even if I use a lot of Python where it can do the job.

      Imagine my disappointment when I first met C++. I had heard people mention this "improved" C and was curious to use it. I got a book named "Turbo C++ Disk Tutor" which came with four 5.25" floppies with the compiler included. The book itself was rather good, a good book about a bad subject.

      In C, you'd use "printf("0x%08xn", x);" for int x. In C++, you use "std::cout std::hex std::setfill('0') std::setw(8) x std::dec std::endl;" It's absurd.

      You know what worries me? Take a look at Python 3, they have deprecated the *excellent* C standard formatting method for a new way that's about as complicated and absurd as the C++ way.

      Another Python "improvement": deprecated popen. This means that the nice, clean, easy to understand Unix command

      output=`dmesg | grep hda`

      has been replaced by:

      p1 = Popen(["dmesg"], stdout=PIPE)
      p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE)
      output = p2.communicate()[0]

      WTF???

      Today I use Python a lot, but if this trend goes on, by Python 5 or so I'm willing to bet that I'll be back to using C exclusively for my programs.

    26. Re:What about C++? by EastCoastSurfer · · Score: 1

      I am by no means an expert at C++, but I have used it for a couple production projects that needed the speed. Reading your rant has put to words oddities that I have noticed but was never sure if they were real problems or things that I would come to understand with more experience. Thanks!

    27. Re:What about C++? by Sarten-X · · Score: 1

      So the real problem is that C++ has a very limited capacity to be useful in itself, and needs third-party libraries to do anything interesting, like graphical things.

      Then you have to hope that your third-party library works on whatever platforms you're working in, too.

      C++ may be portable, but significant programs using it are not.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    28. Re:What about C++? by ZaphDingbat · · Score: 1

      You know what worries me? Take a look at Python 3, they have deprecated the *excellent* C standard formatting method for a new way that's about as complicated and absurd as the C++ way.

      I disagree completely. Warlock's printf("0x%08xn", x) becomes print('0x{0:08x}'.format(x)) in Python 3. It's cleaner and easier to read, and has the advantage of positional formatting.

      Another Python "improvement": deprecated popen. This means that the nice, clean, easy to understand Unix command

      output=`dmesg | grep hda`

      has been replaced by:

      p1 = Popen(["dmesg"], stdout=PIPE)
      p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE)
      output = p2.communicate()[0]

      WTF???

      Call me crazy-- I don't use popen-- but isn't that the purpose of the shell=True argument? (http://docs.python.org/library/subprocess.html) Their example is probably intended to work across as many platforms as possible.

    29. Re:What about C++? by Anonymous Coward · · Score: 1, Informative

      While I agree to some points (in particular about compile times and somewhat complicated grammar), the rest is just BS.

      1. C++ also doesn't have run-time encapsulation or really any serious run-time error checking that you don't do yourself.

      I presume this statement is about memory management; you are not forced to do manual new/delete and to use raw pointers. Boost, TR1, C++0x all have better constructions for that. It's not 1999 anymore.

      2. C++'s exception support is hilariously broken.

      No it's not. Again - a question of proper memory management. Use smart pointers. There nothing wrong with RAII, It works perfectly and not only for memory blocks but for resources as well (resource management on Java or any other GC-based language is a pain in the ass meaning a LOT of code with try/catch/finally that makes the source unreadable).
      By the way, if you really need a GC for C++ - you can use Boehm GC.
      As far as I know exception handling only slows down every function call under MSVC with asynchronous exception handling enabled (when all OS exceptions are caught). Normal application exceptions don't have such an overhead for 'every function call', unless you use exception specifications (which are crap I agree and not recommended anyway).

      3. So you have C++ templates, but you still need to deal with C macros.

      With a good programming style using macros is minimal - only #include and perhaps a small part with some conditional compilation for cross-platform modules.

      4. You have std::vectors, but you still need to deal with arrays

      Only if you use raw memory management and you don't HAVE to. See answer above. Besides, there is a Boost wrapper for arrays and a native C++0x type. If you really need to deal with raw memory I am afraid you can't really complain about it in the language.

      5. You have std::string and char*, and neither is particularly good.

      I only use std::string and have no problems with it. Boost has a nice string algorithm library that extends the std greatly.

      6. the arguments to main() are int argc, char** argv

      Whatever, there is only one main function so who cares. Use Boost::program_options if you need a wrapper.

      7. While we're on the subject, the standard iostream is pants-on-head retarded

      You don't have to use iostreams if you don't like it; boost::format gives you all the benefits without the printf risks; don't use ios manipulators if you find then verbose - format manually or with the boost::format.

      8. The standard library is completely anemic

      Yes but it's getting much better with C++0x and there is Boost out there which is a wholy grail for C++. For the GUI Qt is probably the best library in existence at the moment.

      9. STL also just loves to dump gigantic unintelligible multi-kilobyte error messages

      Agree on that, GCC diagnostic messages suck.

      10. you realize what an unholy mess the language is.

      If you can't afford the garbage collection (and a LOT of projects can't for different reasons like limited resources, RT or deterministic behaviour), you find out soon that C++ is one of the very few choices left (C being another one but honestly I don't see an advantage of using it).

    30. Re:What about C++? by turgid · · Score: 1

      Java ports to the Java platform.

      ...but can be compiled to native code using gcj, which is part of gcc.

    31. Re:What about C++? by Anonymous Coward · · Score: 0

      Could you tell us from where you got these informations?

    32. Re:What about C++? by turgid · · Score: 1

      So what do you make of this?

      Many of us have to use C++ at work, but I'd never choose it for anything of my own. However, I'm lucky in that most of the code I deal with is in Plain Old C. It's a real-time embedded platform. The C parts are readable, maintainable and predictable. The C++ parts are "interesting." The source is a lot more verbose. I'm not sure what it achieves other than slower compile times and bigger object code.

    33. Re:What about C++? by mangu · · Score: 0

      Warlock's printf("0x%08xn", x) becomes print('0x{0:08x}'.format(x)) in Python 3. It's cleaner and easier to read, and has the advantage of positional formatting

      "Cleaner and easier to read" is in the eye of the beholder, and, for me at least, something that's 60% longer doesn't fit that description.

      Remember, 60% longer means 60% more typing when you create the code. Typically, my programs are about 30% I/O which means 60% longer format strings mean a lot more effort in coding.

      Besides, remember how much code is out there in C format strings. By creating a new standard you suddenly are putting all that outside easy conversion.

      But, anyhow, that's a simple example, in the new format function documentation you'll find some more complicated examples that will need even more coding than that.

      BTW, the old Python '%' format operator already supports positional formatting.

      I think having a new text formatting library is OK, but it's an epic fail to deprecate something that has been working so well for so long. Why not keep the '%' operator while still having the 'format' string method? Are they so afraid of the Perl "there's more than one way to do it"?...

      I don't use popen-- but isn't that the purpose of the shell=True argument?

      The "shell" argument is meant for security purposes. By setting shell=False one avoids script injection vulnerabilities.

      Again, there's more than one way to do things. One may want an ironclad function to use in executable programs that work on a website, it's OK to have some library to do that, but for every such function one creates hundreds of small scripts on a day to day workplace that don't need such security and it's a PITA to have to type five times more code for a functionality that's needed in just 0.001% of the programs one writes.

    34. Re:What about C++? by EsbenMoseHansen · · Score: 1

      It would not be hard to make, I think. Just walk through the standard...

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    35. Re:What about C++? by flabordec · · Score: 1

      Mod parent awesome

      --
      "I see undead people" Warcraft III - Necromancer
    36. Re:What about C++? by AuMatar · · Score: 1

      The problem is that they're "the standard" and "supported" so 99% of projects don't look at the rest. Compared to a system where there's a small standard library and lots of 3rd party libraries- there's a lot more innovation and a lot better solutions tend to be found there, although the cost is that it may be harder to find an expert in library X. My preference is a perl like solution- small standard library with a good community (CPAN) where you can easily find 3rd party solutions at (please note- that was a thumbs up to CPAN, not perl itself).

      Compare that to the Java UI world- it was all AWT for a long while, even though almost everyone thought it sucked. Finally Swing came into being but had hard time getting any traction because it was "non-standard". Now nothing else can get past the two of them.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    37. Re:What about C++? by n+dot+l · · Score: 2, Insightful

      I agree emphatically with everything you said.

      I'll add one more thing: debug performance. Most C++ libraries (certainly the STL) are written for prettiness more than performance and thus rely heavily on compile-time optimizations. Now, it's true, a fully optimized iterator generates the same code as a raw pointer, but that's irrelevant when you've got a debug build that runs several orders of magnitude slower than a release, and the bug you're tracking down is on the third pass over vertex 892,472 of a 2,000,000 triangle mesh.

      I mean, yeah, I could rewrite the standard containers and algorithms (etc) into a form that doesn't require heavy inlining to be even remotely performant, but then what was the point of using C++ in the first place?

    38. Re:What about C++? by master_p · · Score: 3, Insightful

      C++ has an astonishingly complicated grammar, which means that compilation takes forever and other tools don't work as well as they do for languages with simpler grammars, like C or Java.

      Modern c++ compilers are extremely fast; not as fast as Java compilers, but considering they do much more many things (templates for example), then they are quite fast. They are so fast that compiling large code bases with them is extremely viable, and it's a task done everyday by millions of developers.

      C++ doesn't really have compile-time encapsulation: if you add a private member to a class, you need to recompile everything that uses that class even though the class's public interface didn't change. That woudn't be so bad in and of itself except that C++, again, takes forever to compile.

      How is that a big problem? you make it sound like it's a colossal problem, but in reality, it's not. Unless your class is used by every other class or function, the recompilation is minimal. The benefit of this is that you can use value classes in c++, whereas in Java you can't, every class is by reference, which is stupid.

      C++ also doesn't have run-time encapsulation or really any serious run-time error checking that you don't do yourself. Yes, it's for performance reasons, but some people are working on problems that aren't performance-critical and would prefer a language that doesn't pound nails through our dicks. (if it doesn't have encapsulation, why do they call it "object oriented?")

      If you refer to arrays, vector::at() is your friend. If you are not disciplined enough to use it, then you don't belong in programming. You can even use smart pointer classes that throw a null pointer exception, if you really want it. In any case, it's not anything like you say it is.

      1) If you've allocated some memory for an object, and then you throw an exception, you don't have that pointer anymore, and because C++ doesn't have garbage collection you've just leaked memory. The only way around this is to implement garbage collection yourself; C++ weenies call this "RAII" and if they're really far down the rabbit hole they sometimes don't even realize that it's just them implementing shitty reference-counting garbage collection.

      RAII is actually superior to Java's garbage collection. It's much more critical for big applications to release as much memory as possible upfront.

      2) You can't throw exceptions in destructors. Well, you can, but when an exception is raised, all the destructor for objects on the stack are called, and if one of them throws an exception while you're already handling an exception the program terminates. Seriously, that's what the standard says, I'm not making this up. So you can't throw exceptions in destructors, or call any function that might throw an exception.

      How is that even a problem? Java's unpredictable finalization order is way more of a problem.

      3) In every major compiler I've used, exception handling support is implemented in such a way that it slows down every function call you make. Yes, it's only slightly, but it means if you really care about performance, you can't use exceptions, and if you don't care about performance why the hell are you using C++?

      Read this first: http://www.open-std.org/jtc1/sc22/wg21/docs/TR18015.pdf Exception handling has a cost only if there are non-trivial destructors to execute. Since C++ allocates most objects statically, the performance cost is factored into the program as if no exception was thrown. On the other hand, in Java, you pay the price in garbage collection.

      And even if you want to use them they're almost worthless; I mean you can't even get a goddamn stack trace out of them.

      True, but you can have other meaningful information, such as the file

    39. Re:What about C++? by n+dot+l · · Score: 2, Informative

      Modern c++ compilers are extremely fast; not as fast as Java compilers, but considering they do much more many things (templates for example), then they are quite fast. They are so fast that compiling large code bases with them is extremely viable, and it's a task done everyday by millions of developers.

      That depends on who's header files you have to include. Often someone's API will be so template-heavy that it takes a full minute (per compilation unit) just to parse their silly headers. Which is sad because I've never had the same issue with enormous C headers or when referencing a good half of the .NET runtime in a C# compilation.

      And yeah, that's a minute on a modern compiler on a fast machine.

      How is that a big problem? you make it sound like it's a colossal problem, but in reality, it's not. Unless your class is used by every other class or function, the recompilation is minimal.

      The real problem there, which the GP missed, is the fact that every type must include the header of every type it contains a value member of in its own header. So if I want to keep d3d11.h out of my UI code, then my bridge renderer classes must either dispatch through virtuals, a tedious PIMPL, or not actually use any D3D types as value members, complicating other code for no good reason.

      The benefit of this is that you can use value classes in c++, whereas in Java you can't, every class is by reference, which is stupid.

      Java is stupid, agreed. But C++ is retarded too. Link-time code generation is old news, object sizes could be resolved then.

      RAII is actually superior to Java's garbage collection. It's much more critical for big applications to release as much memory as possible upfront.

      Superior? With GC I pay a fixed performance cost (and not even a very large one on modern VMs) upfront for the whole project and start writing code. With RAII I have to go around making sure everyone is actually using shared_ptr (or whatever) at every single call site.

      Now Finalization, I agree, isn't the most amazing thing, but I've spent no more time chasing down finalization bugs than I have going after people who use a raw fopen despite having a nice file class with a destructor available. Depends on what you're used to, I suppose.

      Exception handling has a cost only if there are non-trivial destructors to execute.

      Leveraging RIAA kind of demands that such destructors exist.

      C++0x will have this.

      Sure, if they don't delay it another five years while all the compiler vendors run off and implement incompatible subsets of the proposals because they're tired of waiting for the committee to stop bickering.

      ACE? what, are you stack in 1999? you know the Boost libraries, don't you?

      Boost? I thought we were being careful about what we include so as to keep compile times down.

      Templates are, for me, the single reason I prefer c++ over Java. Java's generics are stupid.

      Templates are useful, until someone goes nuts with traits types and multiple levels of tag-type-param-to-overloaded-function and your debug build ends up six or more orders of magnitude slower than your release because inlining is off.

      Yes, I use them, but the time spent making sure they aren't being misused is non-trivial and needs to be counted against the time saved by using them.

      Funny that you say that, because I've worked on million lines of code c++ codebases that didn't have any memory leaks or other problems. But that's because we used the right libraries.

      So have I. But don't forget the bit where someone spent countless hours making sure everybody else was following the rules and sticking to those libraries, rather than wandering off into std:: or inventing their own little subdoma

    40. Re:What about C++? by master_p · · Score: 2, Insightful

      Often someone's API will be so template-heavy that it takes a full minute (per compilation unit) just to parse their silly headers.

      Simply not true. I use boost heavily on a 120 kloc project, and it takes under a minute to compile everything from scratch. And I use quite a lot of boost features.

      Which is sad because I've never had the same issue with enormous C headers or when referencing a good half of the .NET runtime in a C# compilation.

      You are comparing apples with oranges. Neither C or C# have templates.

      The real problem there, which the GP missed, is the fact that every type must include the header of every type it contains a value member of in its own header. So if I want to keep d3d11.h out of my UI code, then my bridge renderer classes must either dispatch through virtuals, a tedious PIMPL, or not actually use any D3D types as value members, complicating other code for no good reason.

      It's not a problem at all. First of all, the compiler will only parse a header once, if guarded by #ifdef. Secondly, you can use precompiled headers.

      Link-time code generation is old news, object sizes could be resolved then.

      The number of things that can be done in link time is limited. Object sizes play a big role in optimizations, and you can't do some of them at link time.

      With GC I pay a fixed performance cost

      The cost of the GC is not fixed in any meaning of the word 'fixed'. It depends on the complexity of the graph. If your graph is very complex, the GC might take a lot of time to do its job.

      With RAII I have to go around making sure everyone is actually using shared_ptr (or whatever) at every single call site.

      How is that a problem of the language? it's a problem of your development team, not the language. If you have a shitty development team, they can easily mess up a Java program as well.

      Leveraging RIAA kind of demands that such destructors exist.

      You mean RAII obviously (I understand why you wrote RIAA though; it's customary to read something against RIAA at least once per day on slashdot). Yes, RAII demands destructors, and stack unwinding demands destructors to be invoked, but you are in control of it: if your loop is time-critical, then you can get raw and avoid them.

      Sure, if they don't delay it another five years while all the compiler vendors run off and implement incompatible subsets of the proposals because they're tired of waiting for the committee to stop bickering.

      No compiler vendor has implemented a subset incompatibly. The only thing that is left is to clear up move semantics. Other than that, c++0x is ready. I am already using it in GCC 4.5, with exceptional results in code clarity.

      Boost? I thought we were being careful about what we include so as to keep compile times down.

      It's not so bad as you make it to be. Even using boost::bidirectional_map takes very little time to compile on modern machines.

      Templates are useful, until someone goes nuts with traits types and multiple levels of tag-type-param-to-overloaded-function and your debug build ends up six or more orders of magnitude slower than your release because inlining is off.

      Show me a case such as you describe.

      Yes, I use them, but the time spent making sure they aren't being misused is non-trivial and needs to be counted against the time saved by using them.

      Bullshit. You are just quoting something you read over the internet. Show us a such a case.

      So have I. But don't forget the bit where someone spent countless hours making sure everybody else was following the rules and sticking to those libraries, rather than wandering off into std:: or inventing their own little su

    41. Re:What about C++? by BitZtream · · Score: 1

      So basically you're saying Java has no advantage what so ever over C++ since thats basically what anyone with any sort of real Java app has to do anyway.

      Lets be realistic here, writing portable C/C++ isn't difficult, it just requires a clue, and the EXACT same thing applies to Java apps. My Hello World Java and C apps are pretty much entirely portable to just about any platform with terminal style IO, get much more complex and you're going to start running into cross platform issues.

      The JVM ISN'T identical across platforms, even though thats the goal.

      Write once, debug everywhere.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    42. Re:What about C++? by ZaphDingbat · · Score: 1

      Remember, 60% longer means 60% more typing when you create the code. Typically, my programs are about 30% I/O which means 60% longer format strings mean a lot more effort in coding.

      I have a saying: If you're scared of typing, you shouldn't be a programmer. And how is it easier to have to consult the local printf documentation whenever you want to decipher your coworker's code? In most cases, my format strings merely contain {0}, {1}, {2}, and so on.

      Besides, remember how much code is out there in C format strings. By creating a new standard you suddenly are putting all that outside easy conversion.

      It's not new. C# had it years ago, and probably other languages before that. And do you really spend a lot of time converting printf statements into Python? That sounds like a royal pain with all of the type differences.

      BTW, the old Python '%' format operator already supports positional formatting.

      It's still around, for anyone who wants to keep writing inscrutable code to save keystrokes.

      I think having a new text formatting library is OK, but it's an epic fail to deprecate something that has been working so well for so long. Why not keep the '%' operator while still having the 'format' string method? Are they so afraid of the Perl "there's more than one way to do it"?...

      I expect they're afraid of Python programmers writing code that looks like Perl.

      The "shell" argument is meant for security purposes. By setting shell=False one avoids script injection vulnerabilities.

      You've completely ignored what I said, or failed to read the documentation. shell=True allows you to run full shell commands, including the piping you want to do. If you want to make it shorter, you can write a function:

      def p(a):
              subprocess.Popen(a, shell=True)

      And then just tell anyone that reads your code that p() obviously stands for process. Or you can use s() for shell.

      Or you can just stick to an older version of Python. No one's forcing you to upgrade.

    43. Re:What about C++? by Anonymous Coward · · Score: 0

      Not to mention that in Java the = sign performs completely different operations depending on object type (primitive vs object), and you have to implement your own equality and hash operators for every single object you create. These are huge gotchas that probably exist as bugs in almost every large java program out there. Is it really so hard to have sane defaults, and only require overrides when they're actually required?

      Long story short -- C++ and Java are both terrible languages.

    44. Re:What about C++? by mangu · · Score: 1

      If you're scared of typing, you shouldn't be a programmer

      I'm not afraid of typing, but I'd rather code 60% more for the same amount of typing.

      If I wanted the program code to spell out everything in English I'd be a Cobol programmer.

    45. Re:What about C++? by monkeythug · · Score: 1

      You sound like someone who's read http://yosefk.com/c++fqa - which I highly recommend to anyone who hasn't seen it. I don't necessarily agree with 100% of it - but it is a very thorough critique of C++ and well worth reading if only to get a more rounded understanding of the language's flaws.

      It's certainly true that many of these flaws can be worked around using some combination of RAII, Smart Pointers, Boost, QT and now C++0x features - but the point is you shouldn't have to deal with all this - proper high-level languages take all this off your hands.

      --
      Don't you wish you hadn't wasted 3 seconds of your life reading this sig?
    46. Re:What about C++? by Anonymous Coward · · Score: 0

      Whereas in C++, every operator performs completely different operations depending on what object you're using.

    47. Re:What about C++? by Anonymous Coward · · Score: 0

      So you have C++ templates, but you still need to deal with C macros.

      No, you don't. Not in modern C++ anyway.

      Perhaps in a fantasy world where you get to dictate the coding standards over the whole project and all its dependencies. In the real world you have deal with code written by people like me and that contains macros.

    48. Re:What about C++? by n+dot+l · · Score: 1

      Simply not true. I use boost heavily on a 120 kloc project, and it takes under a minute to compile everything from scratch. And I use quite a lot of boost features.

      You have one large project that compiles quickly and that somehow contradicts me saying that there exist cases where one gets stuck with ridiculously long compile times (attributable to use of complex language features, as opposed to merely the number of tokens in a compilation unit)? If you aren't trolling then I'd love to know how you maintain a 120 K LoC project with such a poor grasp of basic logic.

      The cost of the GC is not fixed in any meaning of the word 'fixed'.

      Not everything is a real-time app. The odd 1 ms stall is often a very acceptable exchange for time otherwise spent thinking really deeply about memory (and cleaning up after people who misused a smart pointer because he has real problems to deal with). And over a long enough run, the impact of GC is certainly "fixed" at some small percent of overall time. And I've yet to see a live object graph so pathologically bad that GC costs become unbearable that doesn't translate into something with fairly complex lifetime management in C++ (circular references with no clear and obvious owner object are a bitch).

      How is that a problem of the language? it's a problem of your development team, not the language. If you have a shitty development team, they can easily mess up a Java program as well.

      The set of ways that one can hide a bug in Java (C and C# in my case) is far smaller than that for C++. That might not affect you much when you're writing the code and have it all fresh in your mind, but some of us have to go back and review that code later on.

      Occasionally I find things like the wrong operator being called due to an implicit conversion to a compatible type in some silly header intended for some other task, added after the code I'm looking at was written. That shit takes time to find and fix. And neither the coder that wrote the routine, nor the coder that amended the header, nor I are idiots.

      And getting bit by some of C++'s more esoteric little rules hardly makes one a "shitty" coder. It happens to the best of us out here in the real world. (I assume, by your outright disbelief at what I find to be common issues in C++ development, that you work with actual gods or something.)

      You mean RAII obviously.

      Yeah, that was a silly typo.

      Yes, RAII demands destructors, and stack unwinding demands destructors to be invoked, but you are in control of it: if your loop is time-critical, then you can get raw and avoid them.

      How is it that a few percent of GC overhead spread over the whole app bother you so much while a few percent of exception-handling overhead spread over everything you haven't specifically sanitized is fine? Do you only work on exceptions-are-free-(except-a-bit-of-cold-memory)-until-you-throw platforms?

      How have you used C++ to the point where you feel confident enough that none of what I'm saying could possibly be true to call me a liar and a plagiarist and yet completely ignore the reason that every decent C++ compiler has a switch to disable that entire language feature?

      No compiler vendor has implemented a subset incompatibly. The only thing that is left is to clear up move semantics. Other than that, c++0x is ready. I am already using it in GCC 4.5, with exceptional results in code clarity.

      The code clarity that GCC 4.5 affords you says little about what other vendors are doing. Still, you may be right. I'm still in pain from years of maintaining code that had to compile under MSVC, GCC, and a handful of the lesser compilers - each with their own unique and precious way of breaking your code.

      Show me a case such as you describe.

      I have on the other monit

    49. Re:What about C++? by Sarten-X · · Score: 1

      I'm curious as to what "real Java app" you're talking about. My company's product is written in a few hundred thousand lines of Java, using a few dozen libraries, and runs perfectly across Windows, OS X, and Linux. There is a grand total of one compatibility issue, where newlines don't behave exactly the same.

      Writing portable C++ means having portable libraries, and that's not really the norm. Java libraries are almost always portable out of the box.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    50. Re:What about C++? by DrusTheAxe · · Score: 1

      C++ doesn't really have compile-time encapsulation

      You mean BINARY encapsulation. C++ doesn't have an ABI, or strong guarantees about source-to-binary compatibility; never did.

      C++ also doesn't have run-time encapsulation or really any serious run-time error checking that you don't do yourself

      You're talking about bounds-checking and the like. That's not run-time encapsulation.

      some people are working on problems that aren't performance-critical and would prefer a language that doesn't pound nails through our dicks. (if it doesn't have encapsulation, why do they call it "object oriented?")

      C++ isn't a great APPLICATION language. Never was. But it beat the alternatives. Java arose as a 'modern COBOL' (essentially) which is one reason it's so widespread - most people build APPLICATIONS, they don't so SYSTEMS programming. Nowadays you have options, of which C++ is but one.

      (if it doesn't have encapsulation, why do they call it "object oriented?")

      Are you a Smalltalk developer? Clearly not, or you'd be railing instead of inquiring...

      C++'s exception support is hilariously broken. 1) If you've allocated some memory for an object, and then you throw an exception, you don't have that pointer anymore

      What are you smoking? What's allocated, the exception or the surrounding object? If the exception, why are you throwing something involving the heap? If the surrounding code, learn what try{} and catch{} are for.

      implement garbage collection yourself; C++ weenies call this "RAII" and if they're really far down the rabbit hole they sometimes don't even realize that it's just them implementing shitty reference-counting garbage collection.

      Wow. You're clearly not an experienced C++ programmer. * RAII means using constructors and (more importantly) destructors for auto-magic cleanup on exit of scope. Java can't do this due to lack of DETERMINISTIC destruction. C# can do it with Disposing. Python can (now, sorta) do this with 'with'. Other languages can do the idiom too. RAII != Garbage Collection. * reference-counting GC? Well, OK, if you say "refcnt=1". Kinda perverse way to put it.

      2) You can't throw exceptions in destructors.

      Yes. C++ supports EH, but has some weaknesses if you try to use it pervasively. The Standard C++ Library tries to compensate, but it's hard to live in a pure-EH C++ world (for non-trivial code). Shrug. Nothing's perfect. Which language would you hold up as the pinnacle of EH, and has no other compensating warts? Java? C#? Perl? Eiffel? Smalltalk? D?

      3) In every major compiler I've used, exception handling support is implemented in such a way that it slows down every function call you make

      EH blocks are cheap to construct (try), they're costly to use (catch). This is universally true of pretty much every language supporting EH. That's why you use EH for *exceptional* conditions and not normal control flow. If EH is slowing down every function call, you're using it wrong.

      I mean you can't even get a goddamn stack trace out of them

      You can. I've done it. But not with just the stock compiler; you need some platform-specific support. OTOH, you don't pay the perf overhead of tracking stack frames so you an provide a call stack, in case the developer wants to get at one.

      You can throw arbitrary objects, but the catcher can't figure out what the hell the object is because of C++'s lack of reflection.

      Ever hear of RTTI? dynamic_cast? You betray your ignorance.

      C++, in an effort to be sort-of compatible with C (except where it's not compatible with C, which makes you wonder why they bothered in the first place)

      You obviously are rather new the programming. C compatibility was (and is) important for C++ success, to

    51. Re:What about C++? by exomondo · · Score: 1

      C++ is every bit as portable as assembly. All you need to know is what parts fail on which platforms, compile 15 different ways, and pray it all works after someone upgrades something.

      And of course all Java-language-supporting VMs (harmony, openjdk, dalvik, jRockit) will run your specific Java code.

    52. Re:What about C++? by exomondo · · Score: 1

      C++'s exception support is hilariously broken.

      Predominantly because exceptions were meant for exceptional circumstances, as in 'holy shit something totally bad just happened, save what you can and bail out with an error' (in which case a memory leak is no issue) as opposed to basic error checking like 'whoops, couldn't open the file you wanted for because you didn't check to see if it existed first'.

    53. Re:What about C++? by rjstanford · · Score: 1

      Oh my god, shut up. You've clearly never had to write code to order, quickly. Yeah, just write your gui from scratch for every application.

      Not really - and yes, I write code to order and have been doing so for the last, oh, 20 years or so.

      Writing a poor, non-compliant product that doesn't solve the problem (which includes usability, if its a GUI), is a FAIL. If you write that poor software twice as fast, its still a FAIL.

      Put it this way. If the GUI is the single most important and complex piece of your application, doesn't it deserve to be written to run correctly for the environment in which its used? And if it isn't, then why does it matter so much if you have one GUI for OSX and another one for Windows?

      Besides, you may find it far faster to write a Windows GUI using nice, complete Windows tools and libraries, plus an OSX GUI using nice, complete OSX tools and libraries, than trying to write a one-size-fits-all version using nothing more than a single "multi-platform" toolset. Not using your native platform libraries (and toolkits written by others and freely (or expensively) available is the single most crippling thing you can do during software development.

      Before you mention it, I am a big fan of cross-platform languages where they make sense. In my current gig we've got a lot of high-performance server side Java, for example, and there are many other great platforms out there. But when writing a highly usable GUI the usage requirements differ depending on your OS, and until a toolkit platform correctly takes that into consideration I'll stick with native apps, thanks.

      --
      You're special forces then? That's great! I just love your olympics!
    54. Re:What about C++? by HorsePunchKid · · Score: 1

      ...ironically bolstering your point--it made your code more readable!

      --
      Steven N. Severinghaus
    55. Re:What about C++? by badkarmadayaccount · · Score: 1

      Use > and <

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    56. Re:What about C++? by badkarmadayaccount · · Score: 1

      Along with Eiffel, Erlang, PL/I, Go.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    57. Re:What about C++? by Anonymous Coward · · Score: 0

      OP here, and totally agree. C++ is a terrible language - I use C over it whenever possible. Still never tried Objective C yet to see if it's any less bad than C++.

  33. Lisp? by starseeker · · Score: 2, Interesting

    It might be worthwhile to explore what it would take to make some variation of Lisp (*cough*sbcl*cough*) a workable choice for modern software developers. My own sense is that the major things lacking are a modern, powerful, cross-platform GUI and a general "lack of polish" (for lack of a better term) when it comes to interfacing with the rest of the world, but perhaps there are other fundamental issues? This seems appropriate:

    We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp.

    - Guy Steele, Java spec co-author (http://www.paulgraham.com/quotes.html)

    Maybe it's time to drag them the rest of the way?

    --
    "I object to doing things that computers can do." -- Olin Shivers, lispers.org
    1. Re:Lisp? by Massacrifice · · Score: 1

      That's what Clojure's for.

      --
      -- Home is where you eat your heart out.
    2. Re:Lisp? by Tetsujin · · Score: 2, Funny

      It might be worthwhile to explore what it would take to make some variation of Lisp (*cough*sbcl*cough*) a workable choice for modern software developers.

      Well, we did a little research* and spoke to some programmers, and our design committee looked at different directions Lisp could be taken to make it more workable for modern developers... We were thinking maybe we could cut down on some of those parentheses.

      (* Not actually true)

      --
      Bow-ties are cool.
    3. Re:Lisp? by Requiem18th · · Score: 1

      Scheme. Lisp is to Scheme as Perl is to Python. Multiple name spaces, line noise operators etc.

      --
      But... the future refused to change.
    4. Re:Lisp? by DMUTPeregrine · · Score: 1

      Or Haskell.

      --
      Not a sentence!
  34. Battle Lines by Calsar · · Score: 1

    Does anyone else find it a little too convenient that Apple decided to the drop support for their JVM recently as well? Of course they may have already known this was direction things were headed and just preempted it. I’m wondering if it’s not just a war brewing in the Java world, but against open source as well. Open source projects have become competitive with commercial offerings cutting into the profits of big companies and they are taking steps to eliminate them. So far big companies have been pretty effective destroying the communities around projects which call into question the viability and therefore the adoption rate of open source software.

    1. Re:Battle Lines by benwiggy · · Score: 3, Informative
      Err.... from Apple/Oracle's press release:

      Apple will contribute [to OpenJDK] most of the key components, tools and technology required for a Java SE 7 implementation on Mac OS X, including a 32-bit and 64-bit HotSpot-based Java virtual machine, class libraries, a networking stack and the foundation for a new graphical client. OpenJDK will make Apple's Java technology available to open source developers so they can access and contribute to the effort.

  35. Re:Google Go... by Raffaello · · Score: 1

    GOO was already taken - it's a lisp dialect by Jonathan Bachrach of MIT. "GOO" is an acronym for "Generic Object Orientator."

    Bachrach was one of the people working on Dylan, and people in language and compiler development circles (such as the creators of Google Go) would likely have known about his work (or at least know how to google "goo language" and discover that the name was already in use for a computer language).

  36. beginning of the end by Anonymous Coward · · Score: 0

    people are going to stop using java merely because of the ambiguity that surrounds the language and its future. it will die due to what might happen before what does happen.

  37. Only for Microsoft platforms by Anonymous Coward · · Score: 0, Troll

    If you're a 100% Microsoft shop, then C# may be a solution. If you need to support multiple platforms, then C# is right out the window.

    1. Re:Only for Microsoft platforms by Billly+Gates · · Score: 1

      Mod parent up.

      He is not a troll. Name one cross platform app?

  38. Yes. by abulafia · · Score: 5, Insightful

    Understanding that the entire toolchain and widespread adoption is the most important part of getting it. We all (at least, if we were there for it) know how Java happened - the short version is that Sun positioned it as an alternative to the MS Borganism that many companies were rightly afraid of back then.

    I still think Java pretty much sucks. But it has the tools, and perhaps more importantly, a huge number of able bodied code monkeys who can write it.

    Enter Oracle. The entire strategy that they've pursued forever is not much different than what Microsoft tried - build or buy essential parts of the stack, and then march up and down it to dominate your category, then extract as much rent as possible. It works better in the enterprise space and is bloodier because there are fewer players. (Microsoft's ecology was too varied with too many players to really dominate like Oracle can.)

    So, Oracle's strategy is obvious. They own Java, and thus indirectly can manipulate the terms of output of thousands of developers. They don't care about people liking them, and inertia means they can extract rent for a long time (Even if a second Sun/Java moment happened - say, Parrot v. Java, ramp-up for Parrot to fill the niches, get solid, debugged libraries for everything, get widely deployed, and get thousands of developers up to speed takes how long?)

    They don't give a shit about Apache, or developer goodwill. The for-profit players like IBM have different strategies, but keep in mind that their goals are profit maximization, too.

    So there are some potentially interesting strategic plays to be made between the various players, but anyone with a bit of experience with the business side of the industry has seen this show before.

    --
    I forget what 8 was for.
    1. Re:Yes. by Anonymous Coward · · Score: 0

      I still think Java pretty much sucks.

      I'm curious exactly what that blanket statement means to you. IMO Java's one of the best statically-typed OO languages out there. The JVM has been optimized to death, to the point where the only thing faster is switching back to C++ or C. In many respects, C# and the CLR are nearly identical to Java and the JVM.

      If you're comparing Java to languages without static typing, I'll just be sitting over here chuckling while your attempt to do software engineering in Python/etc. gradually fails.

      If you think that Java's AWT or Swing libraries suck, I'd agree with that.

      So what is it, specifically, about Java that sucks?

  39. Slashdotters get Java wrong, again by aslag · · Score: 5, Interesting

    I'm sick of reading slashdot stories and comments that compare dissimilar languages with Java. What makes Java interesting, useful, and modern is the JVM; these comparisons between language features alone are ridiculous. Most of the languages suggested as alternatives in Java-related posts in the last month are merely interpreted. Python, ruby, perl, etc. are all modernish, high-level languages with dynamic typing. They all run (primarily) on their slow, crippled interpreters. This has numerous drawbacks including problematic multithreading (c.f. the arguments about python's GIL and workarounds over the years), if it's even attempted (in perl, separate processes are the only reliable way to do concurrent programming).

    And now Slashdot compares Go to Java. Go is certainly interesting, but it's not in the same space as Java. Java is a portable, networked, object-oriented *application* language. It removes a lot of hassles not necessary to tinker with when writing applications. It has useful, established APIs (servlets, EJBs) for building large-scale enterprise applications. Go compiles to machine code and is therefore not portable. Go doesn't allow inheritance. Go is a language that tries to solve a different problem than Java has solved. Go is no replacement.

    Java is by no means the end of all languages and runtimes, but it has set the bar pretty high. It would be wonderful for other projects to adopt Java's features and improve and extend them. It'd be awesome if such an efforts weren't completely nullified by having Microsoft as its boss.

    For the naive (and the dude who argues that python is a suitable replacement for Java), below is a list of features Java provides:

    Java's JVM does true multithreading. The memory model is tight, efficient, and predictable. The language includes useful mechanisms for writing for concurrency (everything from traditional locking mechanisms to concurrent data structures and the convenient "synchronized" keyword). Productive, predictable concurrency is possible in Java and not in many other languages.

    The JVM offers other benefits, including security. The class verifier can sort out malicious code before it's executed. The class loader can check roles granted to a piece of code and a cryptographic signature and decide not to run code on that basis. Even if a piece of code gets loaded and executed, it's sandboxed. Talking about these features is usually relegated to discussions about java applets, but their relevance to other applications is noteworthy.

    Java includes a lot of well-organized, stable libraries for doing everything from handling HTTP requests and crafting responses to doing cryptography. Its collections API has many data structures that just aren't present in other languages without looking to a third party.

    Finally, the JVM makes naive code fast. One can write reasonably expressive, straightforward code and expect that the hotspot compiler will optimize it. It's a boon for getting maintainable, quality code out-the-door quickly.

    I too am bothered by Oracle's litigiousness, but running away from Java isn't a solution. We need alternatives, that's for sure, but the availability of such is a lot more limited than the average slashdotter seems to think.

    1. Re:Slashdotters get Java wrong, again by pak9rabid · · Score: 1

      You hit the nail right on the head.

    2. Re:Slashdotters get Java wrong, again by ForumTroll · · Score: 3, Insightful

      Finally a comment from someone with a clue. The Python and Ruby communities really don't seem to realize how primitive the mainline implementations of their languages are. They're a complete joke when compared to the JVM, the CLR, LuaJIT, SBCL, Clozure or numerous Smalltalk implementations.

      Even the mainline implementation of Factor, which is primarily programmed by one person, makes CPython look utterly terrible.

      --
      "A Lisp programmer knows the value of everything, but the cost of nothing." - Alan Perlis
    3. Re:Slashdotters get Java wrong, again by Sheik+Yerbouti · · Score: 0, Offtopic

      Uh those languages that were mentioned as replacements like Python work exactly like Java in that they run in a portable VM and are interpreted in to bytecode by a compiler just like Java. Compiled python files usually have a pyc extension. Python too is a portable, networked, object oriented *application* language. So what the hell are you talking about or do you just not know what you are talking about. Also python is 100% open source developed by the community and not beholden to a corporate master like Java is to Oracle.

      You may know Java but that does not make it anything more than a language you know. I know Java, Javascript, Python, Perl, and Ruby and when it comes to coding I would pick Python as one of the cleanest and most straight forward syntax wise. And it's what I chose when I am coding for my own interests.

      I cannot count the number of Java applications that I have been forced to use and work on that perform terribly and are unstable for reasons that seem to relate to the JVM.

    4. Re:Slashdotters get Java wrong, again by godefroi · · Score: 1

      Java is a portable, networked, object-oriented *application* language.

      What does it take, exactly, for a language to be "networked"?

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    5. Re:Slashdotters get Java wrong, again by aslag · · Score: 3, Insightful

      Python, specifically, is crippled by an old-school interpreter unless you're talking about jython which uses the JVM. To get the features of the JVM that my post argues are essential when picking a replacement for Java, you must run python on Java's JVM! I fail to see how jython can be an alternative to the JVM when it uses it ...

      Again, this isn't about the differences between the Java *language* and the Python *language*. The difference (as I argued before) is in the JVM: Python's (or Ruby's or whatever) code could be the prettiest code around but I still can't use it instead of Java because it doesn't have the features I mentioned.

      Yours is precisely the kind of silly anti-Java argument I find ridiculous: it doesn't even approach the point.

    6. Re:Slashdotters get Java wrong, again by Sheik+Yerbouti · · Score: 1

      Your missing the point entirely the VMs work in the same way. They both compile to bytecode do you understand what that means? The only real difference is that Java has a JIT compiler and is faster because of it. You can use Psyco which is a JIT VM for Python. The point is they are both hosted in a VM and compiled in to bytecode and both are capable of doing JIT compilation.

      Your making the assumption that the fact that Python has an interpreter mode that it's only interpreted and that is simply false. The interpreter is simply for real time debugging and testing the language is ultimately compiled in to bytecode and run in a VM with the potential for doing JIT with psyco.

      The real issue seems to be you don't know anything else except Java or don't have knowledge about whats available except in the Java world.

    7. Re:Slashdotters get Java wrong, again by randallman · · Score: 1

      Since you mentioned Python directly

      Java's JVM does true multithreading.

      So does Python. It uses POSIX threads.

      Productive, predictable concurrency is possible in Java and not in many other languages

      I don't buy that for second. I've written enough multi-threaded and multi-process applications in Python to know that it works well. That is, Python facilitates productive, predictable concurrency. I'll give you the GIL issue, which prevents maxing out multiple CPUs for CPU intensive multi-threaded tasks, but it's not an issue for threading IO (disk and network) bound tasks. And for processor heaving concurrent tasks, the multiprocessing module is well suited.

      Java includes a lot of well-organized, stable libraries for doing everything from handling HTTP requests and crafting responses to doing cryptography. Its collections API has many data structures that just aren't present in other languages without looking to a third party.

      Python has that too. In fact, its native list and dict types take care of most needs. Although there is a collections module too - no third party software needed. Cryptography has been blocked by the U.S.'s stupid export laws. Pycrypto is available for crypto needs.

      Finally, the JVM makes naive code fast. One can write reasonably expressive, straightforward code and expect that the hotspot compiler will optimize it. It's a boon for getting maintainable, quality code out-the-door quickly.

      I don't think this gives Java much advantage. Python is arguably more expressive and readable. Everyone here has their own experience they will draw on. Mine has been that although the JVM is much faster, the programs written in Python are at least fast enough, as fast, or sometimes even faster than the Java equivalent. I think this is because often times, much of the processing for Python apps is handled by modules written in C. Anyway, the issues I've run into haven't included apps running too slowly and the "expressive and readable" part are more important to me.

    8. Re:Slashdotters get Java wrong, again by fuzzylollipop · · Score: 1
      compared to Erlang and many other languages and VM run times.

      >>Java's JVM does true multithreading. The memory model is tight, efficient, and predictable. The language includes useful mechanisms for writing for concurrency (everything from traditional locking mechanisms to concurrent data structures and the convenient "synchronized" keyword). Productive, predictable concurrency is possible in Java and not in many other languages.

      The JVM is bloated, in-efficient and the threading non-deterministic and you have no control over the threads once they are spawned.

      >>Java includes a lot of well-organized, stable libraries for doing everything from handling HTTP requests and crafting responses to doing cryptography. Its collections API has many data structures that just aren't present in other languages without looking to a third party.

      Java includes a lot of redundant chaotic kitchen sink libraries for doing lots of stuff you don't need to do and should be part of the core language. Its collections library contains many data structures that just aren't NEEDED in other languages.

      >>One can write reasonably expressive, straightforward code and expect that the hotspot compiler will optimize it. It's a boon for getting maintainable, quality code out-the-door quickly.

      One has to write tones of boilerplate code that can be done in an expressive, straightforward way in other languages. It is a nightmare to maintain and have quality code when there are thousands of lines of code that just aren't needed in other languages.

      See what I did there ? :-)

    9. Re:Slashdotters get Java wrong, again by Anonymous Coward · · Score: 0

      Psyco is basically a dead project that provides an extremely naive and extremely simplistic JIT. It doesn't work at all on 64-bit systems and it has several very severe outstanding issues. There are reasons that PyPy and Unladen Swallow have large corporate sponsors and Psyco doesn't.

      The real issue seems to be you don't know anything else except Java or don't have knowledge about whats available except in the Java world.

      The real issue seems to be that you, like most Python and Ruby programmers, live in complete ignorance of the abysmal quality of the mainline Python implementation. When you get rid of the primitive reference counting GC and the GIL then you can come sit with the adults...

    10. Re:Slashdotters get Java wrong, again by aslag · · Score: 1

      Of course python uses an intermediate step (compiling to bytecode and then interpreting that), this optimization step is common in many high-level, interpreted languages. But there are tremendous differences between the JVM and Python's interpreter. A lot of JVM features that are unmatched by Python's interpreter (and other runtimes) are listed in my first post. So, yes, I understand that Python's source code isn't interpreted straight-up, and I also understand that in a strict sense we can say that cpython has a "VM" and that's what executes .pyc files. But it is equivocation to use this loaded term "VM" to conclude that Python's execution environment has the same features as Java's. The fact is that they're much, much different and the differences are essential.

      Python's compilation and execution environment are largely the result of the necessity to improve Python's performance, not part of the runtime's security model (as in Java's), and certainly not to provide a common platform for varying languages, which has also shaped Java's VM (c.f. the success of Scala). Java's VM is a robust platform with all of the features I mentioned already and many, many more. Where are the analogs in Python? They largely don't exist, and to invoke the word "VM" and toss a "Python compiles to bytecode too!" volley in the argument doesn't diminish this fact.

      It's convenient that the very VM feature you've picked out, JIT, has a mature, stable, efficient, implementation in Java and nothing of the sort in Python. Psyco is an old, near-dead project without a 64bit version. Other attempts at this, pypy, and unladen swallow to name a few, are immature at least.

      I really like Python and I think it is a great tool for a lot of jobs, but it wasn't designed to do the job Java was designed to do, and this includes JVM features that are often ignored. Your arguments prove this out: you're willing to advocate the use of Python instead of Java despite its lack of security, and other essential features given by the JVM. You'll even argue that because Python has a "VM" that it really is enough like Java that there isn't a need for that old JVM. Nonsense.

    11. Re:Slashdotters get Java wrong, again by scot4875 · · Score: 1

      You missed the part about "hotspot compiler" or also commonly known as a Just-In-Time (JIT) compiler. It's completely different than a VM or an interpreter. The .Net CLR also sports a JIT compiler.

      But then, your "I know Java, JS, Python, Perl, and Ruby" statement makes it sounds like you're a web developer who probably doesn't have much experience with the lower-level workings of computers. This is fine, but doesn't lend much weight to your argument.

      --Jeremy

      --
      Jesus was a liberal
    12. Re:Slashdotters get Java wrong, again by Anonymous Coward · · Score: 0

      Its collections library contains many data structures that just aren't NEEDED in other languages.

      This is one of the dumbest things I've ever read.

      See what I did there ?

      Made yourself look like an ignorant retard that is probably just "learning" Erlang or Haskell?

    13. Re:Slashdotters get Java wrong, again by Sheik+Yerbouti · · Score: 1

      Your buying in to Suns marketing terms Java was and essentially interpreted the JVM takes the byte code and runs it as does Python, PERL, Ruby, Parrot and other VMs they all fundamentally work the same. Is the JVM more advanced at this point than say Python's VM or Parrot? Yes but thats not really the point. If the same effort was put in to Python or Ruby or Parrot or other VMs then they too could be made to function similarly to Javas JVM. So when Java came out was it's VM in the state it's in now of course not they didn't have JIT and such at first. Was that reason not to use it?? No it was a huge step forward from straight C++ in many repsects. Could Python or PERL or Ruby or take your pick be made to do JIT? I think the answer is yes we just need to move that direction and get companies like Google and IBM helping out. Is Python or Ruby a step forward from Java syntactically? I think so.

      Sunk cost is sunk cost sticking with Java simply because it already exists and is mature even though it's owned by Oracle and they are litigious and even though there are more elegant languages developed between now and the mid 90s is short sighted.

      Bottom line if you like Java knock yourself out but your are doing yourself a huge disservice not to explore some of the newer languages out there just for the sake of sticking with what you know.

    14. Re:Slashdotters get Java wrong, again by Anonymous Coward · · Score: 0

      Sure, it's entirely possible that the mainline Python and Ruby implementations could eventually rival the JVM. However, they're way behind and it's unlikely to ever happen. It would require expertise that isn't common among the general programming community, would take several years to accomplish, and would require quite a bit of funding. Even Google has basically accepted that they can't get Unladen Swallow to a reasonable speed without breaking practically every C extension; in which case, they might as well use/implement a better language. The Unladen Swallow developers themselves have admitted on the mailing list that Google is now discouraging the use of Python internally because performance is abysmal and threading is a real problem (and no, heavy weight multi-processing isn't the answer).

      Bottom line if you like Java knock yourself out but your are doing yourself a huge disservice not to explore some of the newer languages out there just for the sake of sticking with what you know.

      I don't use Java at all and think the language is abysmal, but to compare the JVM to CPython is laughable and can only come from a position of sheer ignorance.

    15. Re:Slashdotters get Java wrong, again by Sheik+Yerbouti · · Score: 1

      They used to say the same about the JVM I.E. that it would never be fast enough. And also fast enough for what? If you really need speed you can easily make calls to c for the stuff that really needs to be tight.

    16. Re:Slashdotters get Java wrong, again by Anonymous Coward · · Score: 0

      They used to say the same about the JVM

      That's true. But Sun, like Microsoft with the CLR, dumped millions of dollars into VM research and development. Nobody is doing that for Python or Ruby, and outside of front end web applications and scripts where performance doesn't matter, barely anyone cares about either. Google is the only company that has even expressed interest in Python that has the resources and engineers to make it happen, but the vast majority of those engineers aren't working on Python, and internally they're moving away from the platform. The people writing CRUD Django web applications, aren't the same people that are capable of writing a high quality, state of the art virtual machine...

    17. Re:Slashdotters get Java wrong, again by m50d · · Score: 1
      Real examples please. You and your grandparent use evocative language ("crippled", "old-school", "productive"), but tell me why I should care. What concrete, real-world problems can I solve in java that I can't solve in python? Because I've seen web servers, traditional gui desktop apps, printer drivers, big number-crunching physics sims (using blas behind the scenes, of course, but python makes that easy), all successfully written in python. And I've watched good programmers try fail to do real-time telephony in java (the pauses for garbage collection are just too much). Python's concurrency may not be "real", but I've seen python servers handle thousands of concurrent users. Python's interpreter may be "old-school" but I've never been conscious of it holding me back. So please, explain.

      (I'm not saying you're wrong, I just want more concrete examples)

      --
      I am trolling
    18. Re:Slashdotters get Java wrong, again by cervo · · Score: 1

      You can write object oriented code with C. Not a real class like C++, but you can write some libraries/pointers and use it so ObjectClass_New(), ObjectClass_Method(ClassPtr). It's just a lot of people do not. Go has something called Embedding which is a way to pass functionality around.

      Anyway the right way to program is to write to interfaces and pass those around. The wrong way to program is to make a giant super inheritance hierarchy that gets out of control. I think Go's embedding is the right idea. You can pass functionality around. But the emphasis is on programming to the interface. It makes it just a little bit harder to shoot yourself in the foot with a super complicated inheritance hierarchy.....

    19. Re:Slashdotters get Java wrong, again by aslag · · Score: 1

      Your rosy view of an optimized python VM in the future seems to discard current thoughts by the experts about the feasibility of just that:

      http://groups.google.com/group/unladen-swallow/browse_thread/thread/4edbc406f544643e

      And you want to assume that I don't know Python (or "newer" languages). First, I write Python and like it very much for the tasks to which it's suited. Second, Python isn't new, it's been around longer than Java. My argument from the beginning has been that, generally, viable replacements for Java don't exist; specifically, Python can't do Java's job and from the post I linked, it looks like it can't be made to, and for good reasons. This is fine with me, I don't expect Python to do Java's job; it's uninformed people like you who think it can.

    20. Re:Slashdotters get Java wrong, again by benhattman · · Score: 1

      And now Slashdot compares Go to Java. Go is certainly interesting, but it's not in the same space as Java. Java is a portable, networked, object-oriented *application* language. It removes a lot of hassles not necessary to tinker with when writing applications. It has useful, established APIs (servlets, EJBs) for building large-scale enterprise applications. Go compiles to machine code and is therefore not portable. Go doesn't allow inheritance. Go is a language that tries to solve a different problem than Java has solved. Go is no replacement.

      Let's ignore a few of the differing language features for a minute, because I don't think generics or even inheritance are that important (there's a philosophical debate you can have that interfaces are superior to class inheritance, perhaps some other time). And let's ignore the rather large platform and set of APIs that Java has, because that's a measure of the languages maturity rather than its potential.

      Given that, I want to talk about the JVM issue some people are bringing up. I have a crazy gut feeling that the real story Google has internally about Go is that it will replace the need for runtime virtual machines. The reason for that is because it compiles so darn quick. Why else would they emphasize compile time so much? Java and C# compile pretty quickly, but I've never seen anyone brag up those languages due to it. Same with Perl and Python. Every other language is talked about based on its runtime performance rather than its compile-time performance.

      So, why talk up Go's compile time? Because, if it's fast enough you can deploy the code and not bother with a JVM. Imagine a program that compiles faster than it can be deployed. If C++ compiled as fast as an application wizard could setup the application, you could release your code with GCC, a makefile, the source code, and a setup.exe which just called the makefile. To a user it would be no different than something already compiled, just drastically slower. There might be similar stories about Go in the world of webpages. Finally, if your a closed source company, you could just release compiled Go programs and feel as obfuscated as C++ programmers.

      Is it a one-for-one replacement for Java? Of course not. The only thing that could be is a duplicate effort to Java (C# pretty much), and even that would lack the sheer API size of Java for a significant time (C# again). What makes Go interesting is how it differs.

    21. Re:Slashdotters get Java wrong, again by Anonymous Coward · · Score: 0

      It has RMI built into it. You can call methods on references to remote objects and it will transform the call into a message, pass it over the network, which will cause the method to be called on the remote machine, then it will pass the result back to you. You don't even have to know you're working on remote objects.

    22. Re:Slashdotters get Java wrong, again by godefroi · · Score: 1

      Is that a feature of the language, or is that a feature of the class library?

      I bet it's a class library feature. The .NET class library has similar stuff ("remoting"), so does that make every language that can be compiled to IL "networked"? How about every language that could theoretically be compiled to IL? How about every language that can currently, or might one day be compiled to JVM bytecode? Are they all "networked"?

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
  40. Debugging functional languages by Anonymous Coward · · Score: 0

    As TheTurtlesMoves points out, you do it the same way as usual - figure out what is going on through test cases, inspecting the state, reading the code and so on. Erlang does have one advantage though: you can buy QuickCheck which will generate reasonable test cases automatically from properties you specify. If your program goes boom - QuickCheck will shrink the test case until your program stops going boom, and show you the smallest example it could find that makes your program go boom.

  41. South Park ep by m509272 · · Score: 0, Offtopic

    The South Park episodes with Satan and Saddam pop into my head. Which one is Satan, Steve or Larry?

  42. Perl, Python, and Ruby unable to match Java's... by sgt+scrub · · Score: 2, Informative

    that was meant to be a joke right? i've written wxPython scripts, and even perl with wxWidget extensions, specifically to replace sluggish memory guzzling java "gui applications". an example of java app actually outperforming perl, python, and ruby (like google apps for java vs. google apps for python) should be a standard link on such claims.

    --
    Having to work for a living is the root of all evil.
  43. Too bad it had to be Oracle that bought Sun by Just+Brew+It! · · Score: 2, Insightful

    While Sun may not have had a stellar track record (e.g. their alleged mismanagement of OpenOffice.org), at least they were not trying to actively sabotage things.

    I think LibreOffice has a reasonably clear path forward independent of OpenOffice.org/Oracle, but I am still concerned for the future of MySQL and VirtualBox. At least MySQL has the MariaDB fork (and maybe we'd all be better off migrating to PostgreSQL anyhow). I am not aware of an active VirtualBox development community outside of Oracle though; they're probably at risk if Oracle decides to shake things up.

  44. Java won't die by DrXym · · Score: 1

    If Oracle can't or won't pull their fingers out of their arses then someone will fork it and slowly but surely it will carry on its merry way even if its called something else for legal reasons. Sun / Oracle have pissed off enough people that I can see this really happening.

  45. Re:Google Go... by Anonymous Coward · · Score: 0

    Congratulations, this is officially the dumbest criticism of Google of all time.

  46. Tell me again by dave562 · · Score: 1

    Tell me again why OSS is so great? One of the benefits often touted has been that OSS is not held hostage by a single vendor and no matter what happens, you will always be able to do what you want with your applications and data. Does this current situation with Java cast doubt on that meme? In some ways it seems to re-enforce it. If Oracle did not buy Sun, nobody would be worried about Java. Here we have a single corporation that is upsetting a very large apple cart. Java is all over the place. Countless companies and developers are fully invested in the platform.

    I bet Microsoft execs are cackling with glee right now. As much as they are maligned, they have a stable product roadmap. They can tell you what is coming out in 2015. They have plans for the next version of SQL server, Exchange, .net, IIS, etc, etc.

    They say that time will tell. You get what you pay for. There is no such thing as a free lunch. So many cliche's, all of them relevant.

    1. Re:Tell me again by Bill+Hayden · · Score: 1

      The benefits of OSS that you mention are all true, but they are threated by factors out of the control of OSS users and developers, namely patent litigation. This is merely a function of US laws. If the patent threat were to go away, we would not be having this conversation. Unfortunately, the US government acts in it's own interest, not in the interest of its citizen's freedom. I believe it will continue to unjustly crack down on free software indirectly via patent law and directly via the DMCA, because those laws (supposedly) protect profits for large US software and film companies, thus making the US stronger. Or so the theory goes. But ordinary citizens and their right be damned.

      --
      Protect your browser with the Force Safe Search add-on
  47. Re:Same thing happened to UNIX... apk by Anne+Thwacks · · Score: 1
    It would be so much easier to design roads if all cars were Ladas. That is what made the Soviet block so great.

    Oh, wait ...

    --
    Sent from my ASR33 using ASCII
  48. unable to match Java's performance? by MattW · · Score: 2, Informative

    Perl, Python, and Ruby unable to match Java's performance.

    I saw a comparison a while again of 3 sites implementing identical functionality in PHP, Python, and Java, and the performance characteristics were nearly identical, assuming that none of them were interpreting on the fly. (ie, php had a bytecode cash that was hot for the purposes of the test, etc.)

    If anything, I'd say that while runtime speed might be similar, Java uses more memory per connection.

    Sooo... since when?

    1. Re:unable to match Java's performance? by gbjbaanb · · Score: 1

      maybe once upon a time, long ago, when CPUs performance was measured in 100s of Mhz. Today, things are different, and I'd say the biggest bottleneck is not the CPU but IO, so most script languages will run just fine (unless designed particularly badly, a flaw that can apply to Java, C or any other language).

      Today, Java is an irrelevance - you want that super speed, you use C (or C++ without bloating up on OO), and for the rest you might as well code it in script. Performance isn't going to suffer terribly, and you might get even better developer productivity over Java than you did by using Java over C in the first place.

      Things have moved on. Write your GUIs in html5/javascript and you have platform independence too. Job done.

    2. Re:unable to match Java's performance? by Anonymous Coward · · Score: 0

      Enjoy making simplistic CRUD webapps for the rest of your life. I prefer to work on problems that are actually interesting.

  49. Salivating! by Anonymous Coward · · Score: 0

    Google must be salivating at the idea of Java crashing right as Go starts to... well, go.

  50. Side-effects are the problem by bradley13 · · Score: 1

    Logical and functional languages are great - absolutely wonderful. I have written tens of thousands of lines of code in them, and would take them over Java, C#, Ruby, and all the rest any day. As long as you do not need side effects. For pure algorithms, for pure data processing, they are great. As soon as you want to handle ugly, practical things like user interfaces, they are just awful. And, let's face it, most applications don't need complex algorithms - they are driven by the need to interact with users and save data to databases. Pure side-effects. And for that - I really hate to say it - no language out there has really improved much on good ole pre-.NET Visual Basic.

    Java is ok, Ruby is nice, the other languages I've used all have their pluses and minuses. I confess I've somehow managed to miss Python. Unfortunately, none of the languages I know make the grunt-work of writing, testing and debugging user interfaces and databases any easier. In fact, the nicer a language is in an aesthetic, theoretical sense, the more likely it is to make real-life things like GUI and database development really difficult. For all the praise of the Apache libraries, things like Apache Hibernate are really just patches that try to hide the fundamental mismatch between an OO language and a relational database. They don't fix anything, they just sweep the dirt under the rug.

    So, I've groused enough. Somebody please tell me which wonderful language I've overlooked that makes GUI and database development genuinely easier?

    --
    Enjoy life! This is not a dress rehearsal.
    1. Re:Side-effects are the problem by Rockoon · · Score: 2, Interesting

      Indeed. VB6 is still one of the greatest RAD for GUI building suites that has ever existed.

      Sure, the interfaces you can trivially build are looking dated now (and even did so 8 years ago), but its still got all the UI functionality a business/enterprise application requires.

      Thats why the move from VB6 to VB.NET is taking so long. Its not nearly as trivial in VB.NET to make the same things as you were in VB6.

      --
      "His name was James Damore."
    2. Re:Side-effects are the problem by marcosdumay · · Score: 1

      I somehow can't agree with it, but can't also come with any counter example (and I doubt anybody actualy created one) to show you wrong. It is just that user interfacing doesn't need to be done with side effects (there is no fundamental reason for that need), but not using side effects is such a change that people (including me) can't grasp it.

      In theory, the flow of logic languages fits way better the needs of user interface than imperative flow. Error handling, for example, is a bad fix for the inability of the imperative languages to have a more complex flow. Also, functional language is such a nice thing for the non-interface part of software, and the good news is that both mix very well. There is probably a very nice way to make real world software on a mix of logic-functional programming, it is just that nobody seems to know how that way is.

  51. Wow, FUD headline of forever by ghostoftiber · · Score: 0

    One of two things are going to happen: Oracle loses the suit to google, Java is open sourced and apache takes it over for business as usual. Either Apache or Google will host and promote development from that point forward. Both of them have a vested interest in seeing it go somewhere. Or, it could go the other way - oracle wins the suit against google, now they're sitting on an IP goldmine, and they milk it for the settlement and promptly sell it to Sony. Blu-rays are all java, Sony is willing to pay $BIG_MONEY for the IP, I'm sure, and Oracle isn't really interested in owning yet another language. They sell it to Sony with a license lease forever for a dollar or something similar and then Sony owns it.

  52. Just like smalltalk by nexttech · · Score: 1

    This reminds me of when Parcplace and Digitalk merged. The infighting did no good to the Smalltalk language.

  53. JCP too NIH by toriver · · Score: 1

    Why do we need a "process" that decides that a popular technology should be "formalized" in a spec that more often than not is incompatible with the established framework in question.

    Examples:
    * log4j established as a de facto standard? Let us add a different logging API to the standard library!
    * OSGi established as component architecture? Let us write a JCR instead of accept that the market has spoken!
    * Spring as IoC container? No, we need a spec for that sort of thing too!

    The JCP has become irrelevant, Springsource + Apache + JBoss and a few others are the driving forces.

  54. Re:Fixed that for you by Tetsujin · · Score: 1

    I'm not arrogant enough to tack that on via FTFY

    And thank you for that

    --
    Bow-ties are cool.
  55. Low Level Virtual Machine (LLVM) by Anonymous Coward · · Score: 1, Informative

    http://llvm.org/

    The LLVM Core libraries provide a modern source- and target-independent optimizer, along with code generation support for many popular CPUs (as well as some less common ones!) These libraries are built around a well specified code representation known as the LLVM intermediate representation ("LLVM IR"). The LLVM Core libraries are well documented, and it is particularly easy to invent your own language (or port an existing compiler) to use LLVM as an optimizer and code generator.

    JIT compile or batch compile to native or run in interpreter.

    1. Re:Low Level Virtual Machine (LLVM) by shutdown+-p+now · · Score: 1

      LLVM type system is very low-level (lower than C). It is a great backend for a compiler, but languages targeting LLVM will not be able to reuse each other's libraries on a level higher than C FFI, which is awfully inconvenient.

  56. Re:Why mix C with other languages? by Tetsujin · · Score: 1

    The issue is the languages themselves. If you have to write all of the performance critical sections in C, why bother using the non C language in the first place?

    Because the performance critical sections often account for relatively small portions of the overall program?

    The idea is to write what you need to write, and get it done efficiently, by using a high-level language. And then you go back and optimize the 10% of code that gains you 90% of the benefit to be had from optimization.

    --
    Bow-ties are cool.
  57. WoW: Java Edition Storyline by jav1231 · · Score: 1

    Steve Balmer throws a war-chair at Larry Ellison. It's quickly rebuffed with an arm guard. Larry summons an army of lawyers. Balmer, expecting his chair-throwing prowess to be all he'd need to win found himself out manned. Before he can summon his legal team for backup on his WIndows 7 phone, he's captured, brought before Ellison, and forced to bow! Ellison claims his role as Darklord of the IT world and the black sceptre is torn from Balmer's clenched fist. "I'll get you for this, Ellison! So help me..." (fade to black)

  58. Re:go? really? by eriqk · · Score: 1

    Unladen Swallow, [...]

    That depends. Is it going to be an African or a European swallow?

  59. Umm, .NET? by not+already+in+use · · Score: 1, Flamebait

    with .Net offering little advantage

    .NET is technically superior to Java in almost every way. But, this is the vacuum known as slashdot, where an extremely viable solution will be cast off as "offering little advantage" simply because it is associated with Microsoft. It's cool. You can go on writing mountains of boiler plate code in your horribly stagnant neo-cobol.

    --
    Similes are like metaphors
    1. Re:Umm, .NET? by roc97007 · · Score: 1

      Isn't .NET confined to the Windows platform?

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    2. Re:Umm, .NET? by cryfreedomlove · · Score: 1

      I'm not sure how being bound to Windows allows for the 'technically superior to Java in almost every way' comment.

    3. Re:Umm, .NET? by Jimmy+King · · Score: 1

      No, it's not. Mono has been around for years. I haven't messed with it, but from other posts about this article and comments friends of mine who have messed with it, it's pretty damned good these days.

    4. Re:Umm, .NET? by SplashMyBandit · · Score: 1

      .NET is not truly portable (and Mono is insufficient). Big outfits have more than only Windows. .NET can have all the syntactic sugar in the world and it is still a non-starter since it is not portable. This makes .NET very inferior to Java except for smaller companies. This is why .NET adoption is still vastly lower than Java in the corporate space and this is unlikely to change due to this strategic limitation of .NET. So your argument that .NET is superior is made on an academic and not a practical basis.

    5. Re:Umm, .NET? by not+already+in+use · · Score: 1

      .NET is not truly portable (and Mono is insufficient).

      Please explain why mono is insufficient. This is an extremely ignorant statement on your behalf.

      --
      Similes are like metaphors
    6. Re:Umm, .NET? by SplashMyBandit · · Score: 1

      Because *all* of the .NET libraries do not work seemlessly on all platforms. Getting Windows developers to use the open-source libraries is a non-starter. Have you ever tried to port a .NET application written using the Microsoft toolset to other platforms. Java can do it easily, the .NET and Mono combo falls far short of this.

      > This is an extremely ignorant statement on your behalf.

      You labeled me as extremely ignorant without even waiting to hear my reply. I suggest next time you hide your prejudice about other posters better. Perhaps you're ignorant if you've never tried to work with getting a complex .NET application working off Windows (without resorting to horrible platform-specific hacks).

    7. Re:Umm, .NET? by RocketRabbit · · Score: 1

      If some asshole comes over and punches you in the balls every day for a decade, then one day offers to rake your lawn and bake cookies, you'd be a fool to take him at his word.

    8. Re:Umm, .NET? by Anonymous Coward · · Score: 0

      You know what's funny?

      In 20 years of software development, I have never once run across a situation where writing something to be portable offered any benefit whatsoever.

      Portability is a myth. A pipe dream. In the real world, NO ONE wants to write portable software, because we have to geometrically increase our testing time for every single platform you add. ONE platform is more than enough. /ah to be naive and believe in portability.

    9. Re:Umm, .NET? by Billly+Gates · · Score: 1

      No, it's not. Mono has been around for years. I haven't messed with it, but from other posts about this article and comments friends of mine who have messed with it, it's pretty damned good these days.

      Even a simple winforms based hello world emulates COM and Windows underneath. A winform control is a script of DCOM/COM with win32. It is not a simple Swing or GTK widget which simply calculates pixels and talks to the window manager to display Hello World.

      For this reason alone it is not a full on Java replacement nor a serious language to develop cross platform apps

    10. Re:Umm, .NET? by not+already+in+use · · Score: 1

      Because *all* of the .NET libraries do not work seemlessly on all platforms.

      When is the last time you used mono? Sounds to me like you're basing your arguments off of mono circa 2-3 years ago. Mono is one of the most actively developed products in FOSS and each release marks a significant improvement.

      Have you ever tried to port a .NET application written using the Microsoft toolset to other platforms.

      Yes. In fact, you can compile .net assemblies using Microsoft's toolset and literally copy the resulting binaries over (in the case of ASP.NET, at least, I haven't done this with winforms). Microsoft's toolset compiles down to the same, standardized intermediary language that mono has no problem using.

      Java can do it easily, the .NET and Mono combo falls far short of this.

      No, ironically, it can't do it easily. Java's implementations are far more fragmented (I'm looking at you, OS X) than Mono, *by far.*

      . Perhaps you're ignorant if you've never tried to work with getting a complex .NET application working off Windows (without resorting to horrible platform-specific hacks).

      Most people who have actually used mono recently would argue that .NET's platform abstraction is far better than Java's. Getting any complex application, whether java or .net, running on a new platform isn't trivial, although your assertion that its wildy easier with java is absurd.

      You labeled me as extremely ignorant without even waiting to hear my reply

      Trust me, now that I've heard your reply, I'm even more confident in my original statement.

      --
      Similes are like metaphors
    11. Re:Umm, .NET? by SplashMyBandit · · Score: 1

      When is the last time you used mono? Sounds to me like you're basing your arguments off of mono circa 2-3 years ago. Mono is one of the most actively developed products in FOSS and each release marks a significant improvement.

      Improved, yes, for sure. Adequate at this time for my purposes (and those of many others), no. There are still too many things missing (although it sounds like your use is limited so you haven't noticed). Mono will also always be behind the MS technologies on each release of .NET. Please note that I've used both the real .NET and Mono and would use them more if they were actually better than Java in the strategic sense. They aren't yet, but maybe one day - so please understand I'm not an unreasoning fanboi in this regard.

      Yes. In fact, you can compile .net assemblies using Microsoft's toolset and literally copy the resulting binaries over (in the case of ASP.NET, at least, I haven't done this with winforms). Microsoft's toolset compiles down to the same, standardized intermediary language that mono has no problem using.

      Yes we already know. This is no different to Java. What you are saying is, "Mono works for me" although you seem to be only using ASP.NET (which is a clone of the old JSP technology, people have moved on to GWT these days). The fact is Mono doesn't yet work for other people. How about you try winforms in anger, or even better, try doing something with WPF? You can't since WPF is neither supported and won't be (according to Mono's own webpages). Try telling Windows .NET developers they can't use WPF since it is non-portable. Not going to work. This is not the only unsupported major library, and won't be the last (since Microsoft periodically changes its technologies). This makes Mono non-portable and less superior to Java IMHO (which is why the enterprise makes more use of Java than .NET, even if it is less publicly visible to small-time developers).

      No, ironically, it can't do it easily. Java's implementations are far more fragmented (I'm looking at you, OS X) than Mono, *by far.*

      Bollox. My Java applications (both JEE and GUI) work sweetly without porting effort. I have done this many times over the decade and a half I've been using Java (alongside .NET, C++, FORTRAN, Perl etc). In fact, away from my professional life, I routinely give people Java GUI apps that I have not tested on their specific flavor of desktop and not one of them has had a problem due to Java (any bugs in my code are something different). With .NET you do have to worry about what platform you developed on and are going too when you're doing complex things (and god help you if your app used pinvoke to get stuff done - as is often necessary). Also, you may have missed the news that Apple and Oracle are jointly going to develop the OS X JDK/JRE, which will ensure standardized implementations.

      Most people who have actually used mono recently would argue that .NET's platform abstraction is far better than Java's. Getting any complex application, whether java or .net, running on a new platform isn't trivial, although your assertion that its wildy easier with java is absurd.

      You are wrong again, and you are asserting that Java (designed for multi-platform) is less portable than .NET (derived from the JVM's design principles but deliberately made specific to Windows to suit the vendor's strategic interests). Laughable. I do a lot of work on OS X and it works seamlessly when I move it to Win XP & 7 32-bit and 64-bit and Ubuntu. In the past I'd move my stuff from Win 95 to Irix and it worked sweetly without recompiling or configuring the environment (that's how long I've been doing Java, so I have some clues).

      Trust me, now that I've heard your reply,

    12. Re:Umm, .NET? by not+already+in+use · · Score: 1

      What you are saying is, "Mono works for me" although you seem to be only using ASP.NET (which is a clone of the old JSP technology

      Do I need to be more specific? ASP MVC2 framework. A modern, robust framework that is by no means considered old or a clone of JSP. And yes, it is supported by mono. I guess I'll await your response saying that .NET copied MVC from Java, as if it were either true or relevant.

      people have moved on to GWT these days

      I don't know what planet you live on where GWT is some sort of defacto replacement for JSP. For starters, one is a client side technology that doesn't even run in a JVM (its compiled down to javascript for christ sake) and one is a server side technology. Did you mean JSF? And when I say JSF, I mean one of the many ambiguous yet slightly different implementations of JSF. The same applies to any java technology really: A jungle of implementations that don't entirely conform to the spec, a huge pile of fragmentation.

      (derived from the JVM's design principles but deliberately made specific to Windows to suit the vendor's strategic interests). Laughable.

      This is utterly false and complete vitriol. I challenge you to dig up a single, verifiable reference that somehow makes .NET as a specification more tied to Windows than any other platform.

      I do a lot of work on OS X and it works seamlessly when I move it to Win XP & 7 32-bit and 64-bit and Ubuntu.

      Bollox. My Java applications (both JEE and GUI) work sweetly without porting effort.

      All the same with Mono, so what exactly is your point?

      You don't even know what *major* libraries are and aren't supported by Mono

      Huh? How exactly do you come to this conclusion? I fully understand, which makes it possible to write cross-platform software. News Flash: Java has platform specific libraries too. Anyone wanting to write platform independent software knows not to use them. It's no different with mono. You seem to be implying that every last bit of code written in Java is magically cross platform, as if it doesn't take a concerted effort to write platform independent code. You sir, are a moron.

      it's just superior to .NET in cross-platform

      As far as the spec for each language and their implementation is concerned, .NET is the superior spec from a technical standpoint. Java has a far bigger cross-platform ecosystem, but people are jumping ship and moving over to .NET in droves. Any relevant library that exists in java has made its way over to .NET: Hibernate and JUnit (as NHibernate and NUnit), to name a few.

      I really don't care if you prefer java, as long as I don't have to maintain your crappy software. But your preference doesn't make java superior.

      --
      Similes are like metaphors
    13. Re:Umm, .NET? by SplashMyBandit · · Score: 1

      For starters, one is a client side technology that doesn't even run in a JVM (its compiled down to javascript for christ sake) and one is a server side technology.

      Again you have a limited grasp of the technology you are arguing about, since all you know is (a limited set of the) .NET technologies. GWT is both client and server side. It is interactive and developing for it is a dream compared to crufty old page-oriented server side technologies.

      This is utterly false and complete vitriol. I challenge you to dig up a single, verifiable reference that somehow makes .NET as a specification more tied to Windows than any other platform.

      Who cares about the language specification? pretty much only language hobbyists and academics. As in any software technology it is the libraries that matter. Without the libraries a wonderful language and runtime don't do much. .NET's libraries will always work better (or only, eg. WPF) on Windows. This is intentional by the vendor (it's why the invented the tech after all, if you were around then).

      All the same with Mono, so what exactly is your point?

      My point was *your* previous claim that Mono was better than Java for cross-platform work was bollox.

      .NET is the superior spec from a technical standpoint. Java has a far bigger cross-platform ecosystem, but people are jumping ship and moving over to .NET in droves.

      Again, the spec is less relevant than the libraries for practical use. If you are actually building real application software (cf. as opposed to working on Mono itself) you would know this. As far as implementation goes, why do you think the .NET licensing terms did not permit benchmarking? It's because in general the JVM is faster (I'm sure there are specific exceptions to this, but this is the general trend). The statistics also disagree with your second assertion about .NET growth. The trend is modest growth with a lot of fluctuation but not the 'droves' you claim. The droves are going to Objective-C and Android (Java-esque). Please see the following for the facts:
      http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
      In fact, both Java and .NET should lose further popularity as people move to Android and Objective-C as that is where all the market growth is. What you used to need a desktop or server for is slowly being marginalized for specialized stuff.

      I really don't care if you prefer java, as long as I don't have to maintain your crappy software. But your preference doesn't make java superior.

      You wouldn't maintain my software. I'd never hire someone who eschews objective facts for unreasoning fanboyism with above-normal arrogance to boot. Face it, Mono is neat tech that is hasn't got much traction and is not going anywhere fast - not because it is misunderstood, but because it is well understood. That's why Java still has around three times the ecosystem as C# (according to the approximate figures given by Tiobe). If people want .NET they get the real thing, and if they're for Open Source they use other technologies instead (C/C++/Java etc). Enjoy Mono and the paycheck you get with it.

    14. Re:Umm, .NET? by not+already+in+use · · Score: 1

      Again you have a limited grasp of the technology you are arguing about, since all you know is (a limited set of the) .NET technologies. GWT is both client and server side. It is interactive and developing for it is a dream compared to crufty old page-oriented server side technologies.

      Not only have I used GWT (extensively), I have contributed to the documentation and have had 3 enhancements accepted, two of which have been implemented and one of which is planned, and have reported numerous bugs, spanning from versions 1.3 to 2.0. I have done similar for many other Java frameworks. I've ate, drank and breathed java both in the enterprise and in personal projects. I can safely say I've written more Java code than I have .net code. You can keep asserting all you want that I "have a limited grasp of the technology I'm arguing about" but all it does is give me an opportunity to mock your brazen stupidity.

      GWT is both client and server side.

      No, it's not. From Wikipedia: "Google Web Toolkit (GWT /wt/) is an open source set of tools that allows web developers to create and maintain complex JavaScript front-end applications in Java."

      Yes, it *can* communicate with the server side easily (obviously, its a big selling point) and naturally java is the best fit, but it is by no means GWT specific. You can implement the server side in anything you want -- GWT itself is entirely client-side.

      Who cares about the language specification? pretty much only language hobbyists and academics.

      Yes, those crazy academics with their fancy pants auto properties, event models, lambda's, *real* generics, and language integrated queries. You're absolutely right, these things don't matter. Nobody in the enterprise wants or needs these things. They love maintaining XML files and have no interest in things like fluent configuration. Writing miles of boilerplate code for events and getters and setters, complex, error prone loops to to essentially query a collection, they love doing this stuff, it's like comfort food. The *only* thing that matters is that there are a shit ton of legacy, cross platform libraries that nobody but huge enterprises use anymore. Nope, C# only gets ports of the good, relevant ones and is truly missing out on the nostalgic goodness of a stagnant language.

      My point was *your* previous claim that Mono was better than Java for cross-platform work was bollox.

      No, my point was that it is no worse. My original statement, infact, said "extremely viable solution." My point was, and listen closely, that Mono is certainly not a worse solution for cross-platform apps.

      As far as implementation goes, why do you think the .NET licensing terms did not permit benchmarking

      This is patently false. Jesus Christ dude, if you can't bother to make a single informed or true statement, why do you bother responding? Benchmarking is is explicitly granted in the license, as long as the benchmarks are against a fully patched and updated version of the framework.

      In fact, both Java and .NET should lose further popularity as people move to Android and Objective-C as that is where all the market growth is. What you used to need a desktop or server for is slowly being marginalized for specialized stuff.

      Translation: People are moving to languages that are used in popular mobile devices, Obj-C for iPhone and Java for Android. You're dragging the discussion out of its original context in your desperate attempt to make a half assed-argument. For modern, managed, desktop and server side applications people are moving away from java and to .net, whether its the official MS version or Mono. Again, staying within this context, nobody is moving to objective-c. But, if you want to go d

      --
      Similes are like metaphors
    15. Re:Umm, .NET? by SplashMyBandit · · Score: 1

      Look, no need to lose your rag and blaspheme, this is simply not an interesting enough discussion to warrant it. It's good you have used GWT so realize that any non-trivial application utilizes RemoteServiceServlet among other server-side only parts. Hence, I disputed your assertion that GWT is a "client side" only technology. Again, you arrogantly chose to ignore the point and counter with an accusation of "brazen stupidity" when all I was doing was stating the facts.

      If you are generating Java boilerplate by hand then I suggest you get better tools. I never have to worry about that stuff. C#'s properties are nice but don't make up for the strategic limitations of the platform. Again, .NET has some nice tech but if you are thinking as a *businessman* and not as a technologist there plenty of reasons for companies to prefer Java, and why they still do (again, please look at the facts I have supplied you in an earlier post).

      The reason you count as a "fanboi" in this discussion (veteran or not) is because you prefer to insult me and spurt anectdotal sums like "droves" rather than rationally debating the figures and facts presented. While I understand you moving to WP7 because you like it, it does seem that the technologist in you has overwhelmed a business perspective. That is not fanboism, but is not far from it.

    16. Re:Umm, .NET? by not+already+in+use · · Score: 1

      If you are generating Java boilerplate by hand then I suggest you get better tools.

      If you need tools to make up for language deficiencies, I suggest you get a better language.

      I never have to worry about that stuff.

      It's a ton of unnecessary code that must be looked through when maintaining the software. Case in point: Androids event model. The amount of ugly, boiler plate code required makes it difficult to easily find the relevant bits of code.

      you prefer to insult me and spurt anectdotal sums like "droves" rather than rationally debating the figures and facts presented.

      I will concede this point and reword it: On platforms where the user is not limited to a particular development stack, people are beginning to choose .net over java. The fact that lots of people are moving to obj-c says nothing about the merits of the language itself. Instead it shows how valuable the iOS platform is. Obj-c is crap, and yes, this is my entirely subjective opinion, but consider the fact that nobody chooses to use obj-c outside of an Apple environment. So to make my point, yes, your statistics show a trend of programmers moving to obj-c and java, but only because it's the native language of its respective smartphone platform, not because it's better suited for the job.

      --
      Similes are like metaphors
    17. Re:Umm, .NET? by SplashMyBandit · · Score: 1

      Well, I agree with you that Objective-C is rubbish. Doing anything decently multithreaded with it is just awful.

  60. Re:Why not Objective C? by Anonymous Coward · · Score: 0

    I've looked at the GNUstep runtime and I've written some very interesting things in it on Linux, including a basic UI library modeled after UIKit based on opengl. I'm surprised there is not more of an objective C following, especially being based on gcc with runtime compatibility with C++.

  61. It is the libraries that separate C++ from Java by mrflash818 · · Score: 1

    The good thing about java, and J2EE, was the wealth of libraries that came with the JDK.

    With C++, from what I remember (haven't professionally programmed with C++ in a decade) there was Boost, but the rest was using libraries available to the operating system itself, or doing a lot of research (like for libpurple).

    Both are great languages, but Java was nice for having such a large available pool of things to work with.

    --
    Uh, Linux geek since 1999.
    1. Re:It is the libraries that separate C++ from Java by Anonymous Coward · · Score: 0

      Boost is nice. But it also is experimental, fast moving code that stresses a C++ compiler like nothing else.
      In the end, too risky to use.

  62. Class action lawsuit by Anonymous Coward · · Score: 0

    Time for all the developers in the world to file a class action lawsuit against Oracle. When Java was under Sun, it had a feeling of openness and robustness that brought in developers. That openness is just about gone (and knowing Oracle, the robustness might also be gone too). So now all of the developers who have learned Java through school and work face a daunting future, because of one company. I am not saying that it isn't easy to learn a new language, but what is hard is to become an expert in a new language.

    Can you sense my bitterness? I take what Oracle is doing as personal, and rightly so. So it is developers passionate about a platform versus a short sighted, push everyone aside, so I can make money company.

  63. The other problem they solve... by Mr2001 · · Score: 1

    Probably because they solve a problem that is only really applicable in the closed-source world: needing to run the same binary on multiple operating systems / architectures.

    Not really: they also solve the problem of delivering compiled code in a form that can be easily sandboxed. You can load untrusted code into your process (e.g. an applet on a web page) and run it, confident that the VM and language make it impossible for that code to access memory/files/hardware you don't want it to access.

    It would be possible to perform sandboxing on C source code, if there were a standardized "safe" set of APIs, and if you restricted the language and compiler to forbid things like pointer arithmetic, unions, and inline assembly. But then you wouldn't really be writing C anymore, you'd be writing in a language that isn't quite C using a library that isn't quite the C library.

    --
    Visual IRC: Fast. Powerful. Free.
    1. Re:The other problem they solve... by TheRaven64 · · Score: 2, Informative

      Not really: they also solve the problem of delivering compiled code in a form that can be easily sandboxed

      Sandboxing is the job of the OS. Every program that runs is isolated from others and from the hardware by the OS. Every interaction with anything outside of its address space has to go via the OS.

      Take a look at the list of security vulnerabilities in the JVM, CLR, Mono, or any JavaScript implementation. These bits of code are all incredibly complex - they have to be to get good performance - and small bugs in them can allow malicious code to escape. The operating system's protection, in contrast, is provided by the MMU, which is a relatively simple bit of hardware. You don't need some restricted subset of C, the language is entirely irrelevant. The CPU runs the binary in non-privileged mode and the program can only escape from the CPU-provided sandbox by going through the OS.

      --
      I am TheRaven on Soylent News
    2. Re:The other problem they solve... by Mr2001 · · Score: 1

      Sandboxing is the job of the OS. Every program that runs is isolated from others and from the hardware by the OS. Every interaction with anything outside of its address space has to go via the OS.

      Protecting one application from another is the job of the OS. But the OS doesn't protect one application from its (potentially untrusted) plugins. That's where sandboxing provided by a VM or interpreter comes in, like I said. Running every add-in in its own process is another option, but that comes with its own set of tradeoffs (i.e. performance and complexity).

      These bits of code are all incredibly complex - they have to be to get good performance - and small bugs in them can allow malicious code to escape. The operating system's protection, in contrast, is provided by the MMU, which is a relatively simple bit of hardware.

      Some operating system protections are provided by the MMU. Others, like file and network permissions, are provided by bits of code which can have bugs.

      --
      Visual IRC: Fast. Powerful. Free.
  64. Wrong Tool by luis_a_espinal · · Score: 2, Insightful

    The language is portable to any platform, very powerful, and isn't at-risk of suffering the same fate as Java.

    The criticisms of it are mostly fluff in my opinion...people trying to say that their personal stylistic perferences should be industry standards, or justifying their own lack of skill by saying C++ makes things harder than they should be, etc.

    C++ is not an application-level programming, but a systems-level one. Java plays both roles. Furthermore, it is not the language that is of value, but the enormous (and standard) class library; a defined component model standard for distributed computing; a defined component model standard for thin-client development; a defined standard for persistence; a defined transactional model; etc, etc, etc.

    Many of the things mentioned above (sans the hiccups and false starts) have been refined, tested and tried on the field for a decade now. That is what's lacking in C++ (a language that I like more than Java... and I work on Java for a living mind you.)

    There are no comparison between the two languages because they are incomparable; defined and designed for two completely different niches and roles. It's not about replacing one language with another, but about replacing an entire ecosystem with another one.

    Having worked on both, worked on Java for the last 12 years (on both application and system development) and about to work again in C++ and C (embedded stuff), I can tell you this:

    C++ (or the lack of equivalent enterprise/distributed plumbing) makes it unsuitable for the roles fulfilled by Java (or .NET). And vice versa, Java (despite having a shitload of de-facto and de-jure standard plumbing) is unsuitable for the roles filled by C++.

    When you work with both languages and when you work on both application and system development, you very quickly how different they are; how silly is to compare them; and how impractical (if not impossible) is to consider using one in place of the other.

  65. No you don't by Anonymous Coward · · Score: 0

    The core aspects of C++ don't fail on different platforms. Various common C++ libraries with sophisticated utility functions might. And of course hardware drivers and such probably will. But these aren't a problem of C++ itself, just of their unique implementations.

    Good code design, with separation of logic from interface, etc, make the problems you listed minimal.

    It just so happens that plenty of amateur coders write open source to make a name for themselves, and they don't do this right (since they are amateurs), and their bad code is what must be compiled 15 different ways and breaks on different platforms.

  66. Backwards Google Go headline by brunes69 · · Score: 1

    "Google Go picks up developer endorsements -
    The programming language aims to combine the speed of Python with the robustness of C++"

    Er.... wtf? Python is faster than native code now, eh..?

  67. Why not Erlang? by Anonymous Coward · · Score: 0

    Erlang trumps J2EE in all respects!

  68. Re:Why mix C with other languages? by Kaz+Kylheku · · Score: 1

    C can be a high level language. In one recent project, I added garbage collection to C and tagged types. The code is a lot like Javascript. Function arguments, return values, parameters and local variables are of type "val", the null pointer is replaced by a nil which is safe to use, type errors throw exceptions.

    Even string literals are incorporated into the scheme. Using the macro lit("foo") I make a string literal foo (proper compile-time static data) which is type-tagged and behaves as an object of string type. The garbage collector recognizes these as pure objects (just like fixed integers, etc) and skips over them.

    The val object is represented as a pointer, but with a few spare bits which serve as a type tag. Fixed width integers are unboxed, and the nil object is actually a null pointer, which nicely integrates into C, because you can write code like if (obj) { ... } which means ``if the object is not nil ...''. nil is also the empty list and list terminator (exactly like in Lisp).

    Instead of printf, I use a function called format. All of its arguments are "val" so there are no type issues. The function can detect when there aren't enough arguments for the format string and throw an exception. format sends output to a stream object.

    Basically C gives you the basic flow control constructs, functions, and expression syntax. How you manipulate the bits is up to you; you can fix the semantics of the data items being pushed around.

    There are limitations, of course, because C doesn't give you enough access to the language to tweak the compiler. For instance, you can't teach the compiler to generate code which is aware of your garbage collector.

    An individual C compiler could have extensions for that, but there is no such thing in the standard language, and even hacks like this are outside of the standard (though de-facto quite portable, which is often what counts).

  69. fork? by roc97007 · · Score: 1

    Excuse me if I'm not understanding this. I read earlier that some of the original Java engineers are forking Java from a pre-Oracle open source distribution. Can a completely unencumbered distribution be created from that, to which the Java community could rally?

    --
    Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
  70. Those are not the correct Java alternatives. by PhilipTheHermit · · Score: 1

    To quote: "Even if the JCP dissolves, many developers will be left with few alternatives, with .Net offering little advantage, and Perl, Python, and Ruby unable to match Java's performance."

    What nonsense.

    The person who wrote the above quoted statement discards .Net because HE doesn't like MICROSOFT, not because there's anything wrong with .Net. The "advantage" he seeks is probably supposed to be "more freedom" but Java and Mono are BOTH GPL; I smell straw somewhere around here...

    I find it funny that he bemoans the fact we can't switch to the Slashdot-approved scripting languages because they're not as good as Java. Nobody seems to have picked up on that. I thought all the Perl, Python, and Ruby guys thought their languages were BETTER than Java!

    The most telling part of the above quote is this: he doesn't mention the OBVIOUS fallback positions for a Java programmer: C and C++. I'm a Java programmer, and if I ever found myself unable to work in Java, I'd work in C. It has the same syntax, and it's simpler philosophically because it's procedural. I've got K&R at home, I could dust it off and re-read over a weekend.

    The only difficulty would be that I'd have to figure out a nice way to do GUI's. Would I roll a Perl-TK front-end and call C on the backend? Or would I bite the bullet and learn GTK? I hear GTK works on different platforms... I could use QT, or go to hell with myself and do something really flashy with OpenGL. So many choices...

    It doesn't really matter anyway, because Java and Mono are GPL, so they can't be taken away.

    Everybody relax and let Apache do their thing. I hope they win.

       

    --
    Thus spake the master programmer:
    "When the program is being tested, it is too late to make design changes." (Tao)
  71. Re:Google Go... by MichaelSmith · · Score: 1

    I had a long read through the language spec and Go seems immature to me. One example is the way it enforces K&R style braces. The authors claim that this is done to simplify the parser. But honestly, what do you compromise by having a more flexible parser?

  72. Just how slow are perl, ruby and python? by Anonymous Coward · · Score: 0

    When I was in University, they tried to feed us Java. It kinda worked, and I did as much Java as I had to, but when they tried to utter the word 'speed' (and one Prof. did) I distinctly remember uttering the phrase "speedy as a narcoticized slug" after hearing one too many times the phrase 'Java byte code'. My complaints with the language also included 1) having to either know or memorize about 10,000 "CORE" functions, having to write more code than COBOL to get it to emit "HELLO WORLD", and execution speed that left a big whopping whole lot to be desired. I compared it to C. I could type this (and only this) in C #include void main(void){ printf("\nHello World");} and compile it, and have it run, extremely fast, with a tight, fast, stand-alone executable. If I stripped off the debugging symbols, the result was 2/3 the size. Now I've written assembly to do the same, and its *MUCH* smaller and somewhat faster, but compared to java, these are all speed demons. Java could never really run stand alone (you always needed a java interpreter in some flavor or other) around to actually make things go. So in terms of actual real speed, how much faster is Java than Perl, Ruby and Python? Its a valid question.

    1. Re:Just how slow are perl, ruby and python? by RPoet · · Score: 1

      Quoting http://en.wikipedia.org/wiki/Java_performance#Comparison_to_other_languages:

      • 1-4 times slower than compiled languages such as C or C++
      • close to other Just-in-time compiled languages such as C#
      • much higher than languages without an effective native-code compiler (JIT or AOT), such as Perl, Ruby, PHP and Python.
      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
  73. Re:Why mix C with other languages? by Tetsujin · · Score: 1

    C can be a high level language. In one recent project, I added garbage collection to C and tagged types.

    ...

    There are limitations, of course, because C doesn't give you enough access to the language to tweak the compiler. For instance, you can't teach the compiler to generate code which is aware of your garbage collector.

    So all that, and you also have to manually operate your GC? It could be I'm not envisioning this thing but it seems like a bunch of trouble, and without quite all the benefits one would hope for from type-tagged values and GC.

    It seems to me that I could do all that, and then write a bunch of C code that explicitly invokes the GC (or do similar in C++ and spare myself a little bit of that stuff) - or I could just link C code into Python or another high-level language. If the point of using a high-level language is for ease of writing my non-performance-critical code, going with the ready-made option seems like the better way to go.

    --
    Bow-ties are cool.
  74. nice facts by Anonymous Coward · · Score: 0

    but you will pry my uninformed opinions out of my cold dead hands.

    I can't seem to REMEMBER microsoft being bad. Or well at least not THAT bad. And it was a LONG TIME ago.

    Who could honestly say NOTHING CHANGED?

    1. Re:nice facts by mcvos · · Score: 1

      It's certainly true that Microsoft seems a lot less evil now than in the past. They probably learned from the past, were punished a couple of times, and there also seem to be some movements within MS that have a more constructive attitude.

      Now we need to do all of those same things with Oracle. (Or just kill them, but I don't know if that's possible.)

  75. Good C++ by Compaqt · · Score: 1

    I think one of the problems is people don't know how to write modern, best-practices C++. Like bounds-checking, STL, Boost, auto_ptr, etc.

    (Not really claiming that I do. Anybody know a good source for learning good *modern* C++?)

    --
    I'm not a lawyer, but I play one on the Internet. Blog
    1. Re:Good C++ by EsbenMoseHansen · · Score: 1

      Scott Meyer's: Effective C++ and Effective STL are classics, but doesn't cover Boost. Boost itself has rather nice docs, though.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  76. Re:Google Go... by LingNoi · · Score: 1

    Compiler speed which is one of the features of the language.

  77. Qt/WxWidgets by Compaqt · · Score: 1

    I second the suggestion about Qt.

    There used to be some reservation about Qt in the community, but now its available under LGPL (and also commercially if you want).

    There's a screen painter along with a free IDE (Qt Creator).

    Qt is on mobile phones, car computers, Mac/Lin/Win, etc.

    > I also would love if it had the ability to understand what platform it is on and adjust to have the "feel" of the native OS.
    They claim "Native Aqua look and feel, with Aqua-style widgets" (Qt for Mac)

    Btw, there's also another popular cross-platform graphics toolkit called WxWidgets. A lot of apps use that (with C++ and Python)

    --
    I'm not a lawyer, but I play one on the Internet. Blog
  78. Google Go?! Really? by node159 · · Score: 1

    Google Go?! Really?

    The one very strong point that java has is not the language itself but the absolutely massive support structure behind it that encompasses a collaborative library base unmatched by any other language as well as extensive development tools, server software and support software and IDE's too support not only the language but also the most productive and popular libraries.

    Replacing the language is trivial at best but replicating the support base the language has and the knowledge associated with it is a completely different matter.

    If Java is no longer the no choice ansewer to development, that would actually be a good thing as it would promote and encourage innovation with a language that at this point is definitely showing its age and heritage (not to say that its is a bad language but it certainly has grown some evolutionary quirks).

    --
    GPLv2: I want my rights, I want my phone call! DRM: What use is a phone call, if you are unable to speak?