Forgot your password?

Microsoft Selling J++; Discontinuing Development 420

Posted by Hemos
from the end-of-java-support dept.
renaissance59 was the first to write to us with the news that Microsoft has decided to discontinue development of J++, and has signed a deal with Rational Software for them to develop J++. Interesting move, because Rational is not bound under the legal restrictions that Microsoft is when it comes to Java. I'll be keeping a close eye on what's to come.
This discussion has been archived. No new comments can be posted.

Microsoft Selling J++; Discontinuing Development

Comments Filter:
  • by jd (1658) <.imipak. .at.> on Thursday December 02, 1999 @06:21AM (#1486588) Homepage Journal
    When Rational go a year without Microsoft buying them up. I'm not paranoid, but I'm not going to trust Microsoft's motives just like that. It would not be unbelievable for Microsoft to turn them into a subsiduary, to try and rake in the profts, whilst bypassing the legal problems.
  • I used emacs to write by Java apps but sometimes wish I could have Intellisense technology as well. Intellisense is the auto-dropdown list that shows the attributes and services of an object. I know AnyJ also does this but J++ had the most developed version I've seen.

    Maybe now I can write Swing apps in their fully developed environment. Can't wait.

    Bad Command Or File Name
  • As usual, M$ has chosen to ignore the real issue: Their insistence on adding M$-dependent "extensions" to their Java implementation is the very reason why they are in their current jam with Sun. Moving development to a third-party vendor won't solve the problem. Sun will just go after the third-party vendor, as well it should. M$ attempts to trash every standard that comes along which doesn't include M$'s vision of the world according to M$. It's not very smart, business-wise, for Rational to get caught up in this.
  • by kmcardle (24757) <> on Thursday December 02, 1999 @06:28AM (#1486597)
    Is it possible that MS is just trying to kill Java by ignoring it? We don't support it, so no one will use it?

    It almost seems these days MS is trying to cut down and refocus and re-become the fast young lean company it was. I think the DOJ really wants to help them do that. This could just be a preemptive strike by MS to break the company up on its own terms rather than have the DOJ do it. Look what we did! Sold off business. You _don't_ need to split us up.

  • This sounds good, if Rational is given Microsofts "freedom to innovate". With it being developed by another company, perhaps it will become more universal. Perhaps even ported. I wonder also, does microsoft have an ulterior motive? I don't believe that they always have an ulterior motive(beyond standard business) but something like this, only a couple of months after they were declared a monopoly, with the possibility of a breakup looming, maybe they want to try to see, on a small scale, how it might affect them in the short term. Lastly, the article wasn't terribly informative. What are the terms of the deal? I don't care about amounts of money, but amount of microsoft/rational cooperation, and whether and how the deal could be reversed, those are all important details for judging this event.
  • I used VJ++ a couple years ago (versions 1.1 and 6, I think, were the versions I tried; the former downloaded from MS's site) because I had become familiar with using the MS dev tools. However, I had to turn around and recompile all my code with Sun's compiler because the code generated by the MS compiler would crash non-MS JVM's. This was simple code, too -- all JDK1.0-compliant and pure. Didn't even try to detect platforms or anything.

    In any event, I'm glad to see J++ starting to fade into obscurity. It really wasn't a very useful product.

  • by pb (1020)
    Microsoft has always tried to be in the language business, no matter how much they suck at it. So I, for one, don't know what they're doing here. Java is definitely the language of the future. Everyone is trying to use it on the Web and decide what to do with it (they changed the introductory CS classes at my school to use it, just recently, but what do I care, the upper level classes use C because it works :) and I can't believe that Microsoft wouldn't want to profit from that. I doubt they're admitting defeat, so either they have some other arrangement with this company, or they'll be releasing something new, and hopefully better.

    The article seems to imply that they're competing by using XML as some kind of glue language, to work with COM and other stuff. But that isn't the same thing at all. Of course, Microsoft is trying to subvert open standards, but this is a separate example, and will not help them with the popularity of Java. I guess I'll have to wait and see what they release...

    Of course, in a couple of years, we might not be on the x86 anymore, toto. And if any of these proposed future chips execute Java bytecodes at hardware-lookin' speeds, watch out, Microsoft! :)

    (Insert Beowulf, Transmeta, Java/XML/C-- comment here :)
    pb Reply or e-mail rather than vaguely moderate [].
  • I was at a MS technet briefing in 1998 when during the question and answer session, a developer asked about the future of J++, because his managers wouldn't let them use it, because they didn't believe MS would keep supporting it. The MS rep said that they were fully committed to it, but no one believed them. Then, this year there were the rumors about COOL. So, not unexpected, but annoying for us who have to use COM and liked JAVA
  • by Denor (89982) <> on Thursday December 02, 1999 @06:36AM (#1486608) Homepage
    Rational is not bound under the legal restrictions that Microsoft is when it comes to Java.
    I read this paragraph, and it only vaguely disturbed me. I don't think Rational would do anything even vaguely Microsoftesque, but I had to ask myself: what do I know about Rational?

    Things I know about Rational:
    • They make Rational Rose, a UML design tool.
    • One of the guys who works there (owns it?) invented/helped make UML
    • They've got an interest in tools for Java (the non-trial version of Rational Rose can be configured for Java instead of C++)
    • I've never heard of Rational trying to subvert or destroy other, smaller companies. I could be wrong here, as I'm just stating from my own failing recollection. But I think the fact that UML itself is a compendum of earlier models (authorized by the people that made them, IIRC), rather than an 'embrace and extend' helps with this impression.
    Looks interesting enough, so I asked the next question: What do I know about Microsoft?

    Things I know about Microsoft:
    • Come on, that's too easy.
    My point here is, are we dealing with a question of the devil we know versus the devil we don't, or will Rational's track record continue its trend and leave Java alone?
  • Explain thyself, Coward.

    I don't like Java either, but what do you mean, it isn't portable?

    I think its performance bites too, but I'm comparing it to C. Compared to Python, Java looks like a speed freak.

    And object-orientation has been the trend in language design, at least officially, for a while. It's an interesting idea, but I don't think it's been really proven yet. I've used it to my advantage before, but it doesn't really do anything that can't be done without an object-oriented language.

    Your post made a lot of sense until I read your "preemptive return-volley", so consider just posting the message next time. :)
    pb Reply or e-mail rather than vaguely moderate [].
  • Is it possible that MS is just trying to kill Java by ignoring it? We don't support it, so no one will use it?

    Not necessarily. Sun jumped on MS [] for changing Java to move it away from the standard and towards a proprietary, Windows-Only version, but that particular ball has momentum. I'd lay money that there are dozens of companies that would love to take that business from Microsoft, just so long as they can be assured that MS won't step on them. Rational would be free to continue developing a non-compliant product, and MS would get to dodge the lawsuit bullet: sounds like a win-win to me.

    Oh yeah - except for those of us actually concerned with platform portability. Oops.

  • by Rombuu (22914) on Thursday December 02, 1999 @06:37AM (#1486612)
    J++ has a great IDE (three cheers for intellisense, or intellicomplete or whatever the hell its called), so combining that with tight integration with Rational Rose and you could design your classes with Rose, have automatic generation of all your stub code dumped straight into your IDE, and then have really nice documentation generated for you quickly in just a few steps.

    I hope they have a license for the MS implementation of javac, as it blows away most of the other implementations on an x86 platform.
  • by jabber (13196) on Thursday December 02, 1999 @06:37AM (#1486613) Homepage
    JBuilder also does this.
    And, though I've not tried them, I believe that Cafe, Visual Age and the free and open NetBeans does too... That, the visual UI developer, and you don't have to succumb to the dark side...
  • XML will allow software written to Microsoft's Com object model to interact with non-Windows objects. In essence, Microsoft is replacing the DCOM RPC messaging technology with an XML/HTTP technology that allows for remote method invocation.

    It nearly sounds like Microsoft is moving from a semi-proprietary technology to a non-proprietary technology. Maybe the millenium will be the end of the world. I probably just misunderstood something.

  • Obviously MS isn't going to endorse the write-once-run-anywhere philosophy of Java. But why did they pick it up in the first place? Riding Java hype, perhaps? Anyway, I think this incident is a good sign. MS embraced Java, extended it, and almost got to the exterminate stage... good thing Sun fought up to it and stopped their nonsense. One more protocol not polluted by MS.

    Now, if only this would happen more often, for more protocols/standards. Monstrosities as IE-specific HTML, or even Netscape-specific HTML is just... grotesque. Remember the original, unpolluted HTML? I remember learning it back then... there was this emphasis on using logical markups rather than physical -- ie., use tags that express the structure of the contents, rather than express the physical appearance. Well, look at HTML now: almost every bit of "logical structure" is gone from the tags, just about everything is used to control formatting. And recently there some people expressed a desire for web content to be more content-based than visual-based. Well, HTML was supposed to have provided that context, but it was polluted.

    What we need are universal protocols and standards, but variety of implementations. MS got it twisted the wrong way -- they make their own incompatible protocol extension, non-universally accepted, and locks it onto their implementation. Then they turn around and say, "wouldn't it be better if everyone just used one OS, one implementation, and our version of the protocol?" I have nothing against MS doing Java. If they stuck to the same standard. But I do have something against MS when they pollute the standard and use that to lock in the consumer market.

    (And of course, the above applies not just to MS but anyone else.)

  • One problem with this is that the Visual J++ package is probably 10% Java-related stuff and 90% extras that are common to the Developer Studio family.

    The IDE is the DevStudio IDE. Does Rational get that? Do they get updates to it? Or is Visual J++ going to simply stay where it is now with some extra Rational hooks for Rose integration Rose while the IDE get moldy...

    (I know IDEs are a religious issue and most people reading Slashdot probably prefer Emacs or vi, but as for me, I like the DevStudio IDE).

    - Steve

  • They saved the web from becoming dominated by, and depending on, a closed langauge.

    And then they replaced it with ActiveX Controls...oh wait, shit...
  • I wonder how long it will take before MS removes support for Java applets in IE...
  • by gburgyan (28359) on Thursday December 02, 1999 @06:41AM (#1486624) Homepage
    There's actually some very good reasons to have some extensions.

    In a previous project, we had to take a client/server Java program that we had and put it on the web (no, I didn't develop the original). With the MS extensions, Java and COM and almost interchangeable. This prooved to be a great boon since we had some ASP guys on the team and we could interface the backend server to IIS through COM. The whole thing worked without a hitch.

    Keep in mind that this program interfaced with some real legacy systems (10-20 years old on a mainframe) and went through many hundreds of hours of testing with hundreds of small programs that deal with the data that we produced. Rewriting from scratch simply wasn't an option.

    Being religous about an issue isn't always the best thing. When you have a project thrown at you with a 2-month deadline, you have to figure out the quickest way that doesn't suck and has a good probability of working the way you want it.

    Remember folks, additional options are almost always a good thing.
  • They also make great java optimizing tools like quantify and purify. I haven't actually used them but I had to install them on one of our unix servers. From what the developer told me you can measure how much each routine and system call takes and how much memory it uses. Great if you are trying to find memeory leaks. Althought the software costs a few thousand $ not something you could just buy for personal use.
  • by Capt Dan (70955) on Thursday December 02, 1999 @06:48AM (#1486636) Homepage
    (Before I go into this, I use XEmacs (win32 port at work) and love the command line)

    There is an ever increasing number of businesses that depend on java for their e-business/enterprise applications. As computer speeds increase, and the core java tech gets better, the old standby argument of "Java is slow" is moot.

    My point is, in my opinion, there is no way that microsoft can kill Java anymore. Java is here to stay. If mocrosoft is really dumping java, there will be a rush by other companies to fill the void with tools and software, so that they can get a slice of the java $$ pie.

    Maybe java does not fit in with Microsoft's core technologies road map, or if you're paranoid you might say that they realized that they "lost" and are jumping on XML becuase it's the next great thing. Everyone is welcome to their own opinion.

    Microsoft has always been about COM and DCOM (which really aren't that bad, except for the whole cross-platform thing). According to the article, apparently XML gives them the ability to execute COM objects remotely. The objects themselves may not be cross-platform, but the interface to them is or will be. Everyone benefits.

    (Hopefully this means I won't hear anyone complaining about microsofts java changes. I agree that it was a bad thing for them to do, but the story was getting old after the 4th year of hearing it...)

  • Python and Perl have prospered as Java's corporate handlers have duked it out in court.

    In a word: no. Most new commercial web sites are going either with Microsoft Technology (NT/IIS/ASP) or Java (from Sun, Microsoft, IBM or open sources such as Japhar). Even Perl booster O'Reilly is junking their Perl-based website. Cite a fact or two.

    Java isn't portable, its performance bites, and its strict adherence to object-orientation demonstrates an obvious misunderstanding of trends in language design.

    This isn't a troll? Oh come on! Java is portable, it's performance doesn't bite and even Perl has jumped on the OO bandwagon. "Design Patterns" by Booch is the hottest CS book out now.

    This is such a Troll I can't believe it was moderated up. Slashdot is really starting to suck.

  • by DragonHawk (21256) on Thursday December 02, 1999 @06:48AM (#1486638) Homepage Journal
    I cannot understand why anyone would buy into Microsoft's development tools and technologies. They have shown time and time again that they cannot design a technology that will stand the test of time, and they will happily scrap anything that doesn't suit their business strategy, no matter how many developers it leaves out in the cold.

    With every release of Windows, Microsoft scraps the old APIs and introduces new ones. The new ones don't solve many problems but are gratuitously incompatible with everything else.

    ActiveX on the web was going to be the wave of the future. A bunch of people bought into that. Now, ActiveX on the web is an embarrassment to MS, to the point where they have changed the name just to help people forget about it. I hope you didn't stake your future on ActiveX.

    DCOM was going to be the future of MS Windows IPC, but this article mentions that MS is depreciating DCOM in favor of some XML/HTTP based system. And DCOM hasn't even been fully realized yet!

    And "Visual J++" was Microsoft's solution to Java. "Get all the benefits of Java with all the power of Windows", they said. Anyone who bought into that and staked their future on WFC and all that Windows-only Java are now going to find themselves at the unemployment office.

    I could go on and on. Microsoft continually demonstrates they are quite happy to give their customers -- end-users and developers alike -- the shaft. My only question is, why do people continue to not only accept this, but yell, "Thank you Sir, can I have another?"
  • by Rexifer (81021) on Thursday December 02, 1999 @06:56AM (#1486646)
    and its strict adherence to object-orientation demonstrates an obvious misunderstanding of trends in language design

    Excuse me, but isn't most modern design theory highly object oriented?? I've never seen a design patterns book use procedural languages, not would it make sense to. The gang of four book uses C++ and Smalltalk, but not Perl or C. Any architecture books that I've seen in the past decade and a half focuses on OOP, be it Smalltalk, C++, or what not.

    Scripting and procedural programming have their place, too. It's a matter of choosing the right tool for the right job.


  • I don't like Java either, but what do you mean, it isn't portable?

    I've found that the portability of Java is greatly exagerated. Taking a working Java app from an NT server to a different enviroment took several weeks. None of this was due to Microsoft, the app was written in 'pure' Java.

    In addition, you have to considere the rapid pace at which Java seems to evolve. Yesterday you should be using RMI, today JINI. Java 1.0 isn't compatable with Java 1.1, which isn't compatable with Java 2. All of this in a language which was released about 4 years ago?

  • Weren't these the guys who made DOS4GW. Ahhh the early 90's.... first person shooters....mmm

    I wonder if Microsoft has any stock in Rational. Perhaps a company Microsoft, Bill or Paul Allen owns stock in is a stockholder of Rational.

    Is Visual Studio going to ditch J++ ocmpletely or will it still be available either licensed to MS or as an add on?
  • They also make ClearCase - an industrial strength source control system for NT and Unix - and DDTS - defect tracking software. Both tools are used on a Big scale by very Big companies.

    Regards, Ralph.
  • You said:
    With every release of Windows, Microsoft scraps the old APIs and introduces new ones. The new ones don't solve many problems but are gratuitously incompatible with everything else.
    This is incorrect. The problem is just the opposite. Anyone who has programmed for Windows will tell you that there is so much kruft all over their API's (in order to remain compatible with Win16), the programming is an nightmare. Its Microsoft's marketing dumps technology every six months, renames it and resurrects it.
    DCOM was going to be the future of MS Windows IPC, but this article mentions that MS is depreciating DCOM in favor of some XML/HTTP based system. And DCOM hasn't even been fully realized yet!
    Nope. DCOM is an extension of COM which is an extension of that old technology, OLE. Microsoft is further extending it to COM+. (arrgh! Just kill it and start again). Whether it runs over RPC or HTTP is entirely separate.

    For more info on COM and how it relates to ActiveX have a look here []


  • One of the guys who works there (owns it?) invented/helped make UML

    UML is the UNIFIED model language. It is the unification of two publically known "object methodologies", created by Booch and Rumbaugh respectively. Both ended up working at Rational, and thus, unified their approaches to create UML. Neither own Rational as a company, though i'm sure each are major shareholders.

    Rational WILL be restricted to the same license that MS signed with Sun. This will NOT change Sun's belief that J++ (in its current form) is not 100% Java complient and thus is allowed to use the Java logo/brand. Rational MAY choose to change J++ to make it complient, or they may not.

    My problem with Rational: Anything they haven't bought (they bought purify and clearcase) doesn't exist for non-windows platforms. There will never be a linux purify, clearcase, or rose. Therefore, one can conclude there will never be a linux j++.

    For most of us, this migration of J++ changes nothing. It won't change Sun's license on the product; it won't change Sun's belief it isn't Java; and it won't change the fact that it is a Windows-only product.

  • The "new thing," SOAP, [] the XML-RPC thing, is quite clearly not going to be quite enough.
    • It'll not be scalable enough.

      For instance, there will need to be a "compression extension" because XML is verbose, thus making messages large.

    • It'll not be robust enough.

      Thus requiring an extension so that messaging can be managed by MTS [] and/or MSMQ, [] or WTCTNY (Whatever They Call Them Next Year).

    • It'll not integrate well enough with whatever tools they're using next year.

    None of the technologies are inherently a problem:

    • SOAP doesn't seem to be massively worse than XML-RPC [] although it's probably not as good as Casbah's LDO [] system.
    • MTS is probably not as good as Encina [] or Tuxedo, [] but is doubtless better than the nonexistent TP monitors not being deployed in departmental/workgroup systems
    • MSMQ may not be as good as Tuxedo, or as open as Isect, [] and is merely derivative of IBM MQSeries, [] but doesn't seem to be too bad, again being better than the asynchronous messaging systems nonexistent in non-big-iron systems

    The implementations may be run-of-the-mill and derivative, but they're based on pretty good ideas, which is why it's been pretty easy for MSFT to market them.

    What is a massive problem is that what gets deployed next year is liable to be massively incompatible with what is available this year.

    In a sense, the only hope for developers that use the stuff is if there is some sort of "mass disconnect" where MSFT gets split into MSFT-1, MSFT-2, MSFT-3, ... and this results in the tools deployed having an extra year to stay vaguely stable...

  • by dingbat_hp (98241) on Thursday December 02, 1999 @07:17AM (#1486686) Homepage

    Microsoft aren't attempting to kill Java, they're just annoyed at Sun's legal succes. If they can't win the game, then they're going to take their marbles and go home in a sulk.

    This move was expected a long time ago. Soon after the lawsuit, Project COOL made it clear that M$oft internal work was going back to C++, after an all too brief dalliance with J++.

    I'm a COM developer, so I'm well pissed off. C++ is a ghastly platform for COM work (you can always do everything, but development speed grinds to a halt) and VB is well, still just VB (still my main language, in terms of billed hours, but I know its limits). VJ++ was nowhere near being Java, but it was excellent as a Windows development language for stuff that VB couldn't hack.

    Rational's attempt is doomed. It's never going to compete with the PureJava fraternity (Visual Cafe is probably going to be my choice) and it no longer has the tie-in to M$oft internals that made it attractive in the first place. The whole Win32 baggage of VJ++ was the only thing attractive about it in the first place, but if that's no longer a hot track to the latest new Redmond arcana, then it's just a legacy albatross.

    Oh yes, and if J++ is going to be anything like as unreliably buggy as Rational's recent products, then it can join them under my desk in the same dustbin. Their UML Modeller was a lot of money out of my budget for a product that wasn't fit to ship as beta-test $10 shareware.

    XML as a coding language ? Don't make me laugh... Sounds like VNU still don't know their Arse++ from their ElbowScript

    Time to re-write the CV again.

  • by hanway (28844) on Thursday December 02, 1999 @07:21AM (#1486688) Homepage
    Actually, Purify was developed by Pure Software, which was bought out by Atria, which made ClearCase, becoming PureAtria, which was, in turn, bought by Rational, which makes Rose. So, if we know anything about Rational, it's that they've been in acquisition mode for a while.

    I'll swear by Purify, and although I gripe about ClearCase it'd be foolish to attempt source control on a large, geographically distributed project without it (and MultiSite). Rose I'm less sold on, but it's better than nothing.

  • by Shadowlion (18254) on Thursday December 02, 1999 @07:24AM (#1486692) Homepage
    Because standard libraries can't do "write once, run anywhere." Or, more accurately, they do a subset.

    Java's promise is more aptly expressed by, "write once, compile once, run anywhere."

    Standard libraries, using a variation, would be best summed up as, "write once, compile everywhere, run on the platform it's compiled for".

    Java made the program completely machine-neutral, relying on a middle layer VM to mediate architecture differences. Standard libraries compile into machine code, which by definition is architecture dependent. You can't take Linux binaries and run them on BeOS, or Windows, or Mac OS, whereas with Java you can take a program and run it on BeOS, Linux, Windows, or Mac OS without modification (as long as you have a platform-specific virtual machine to run it on).

    A single, standard GUI library would be enormously helpful, but it would only get you marginally closer towards the "write once, run everywhere" ideal. Java may not have fufilled the promise completely, but it comes closer than standard libraries do at bridging the gap between otherwise-binary-incompatible operating systems.

  • Get yourself over to [] and (!Wavey) Davey's world of XML-RPC.

    Yes, it's SOAP. SOAP isn't Microsoft proprietary though, nor is there any obvious way in which the progenitors of The Language Formerly Known As XSL can break it as they did with IE5.

    SOAP is damned marvellous. Simple, works really well, every home should have some. If the ****** (sorry, NDA'ed) appliance design crew get their way, every home will do.

    It's also good for exactly those long-haul firewall-paranoid trans-internet tasks that Corba can't easily cope with (and don't even think about using DCOM).

  • Hmmmmm, so many things with this post I have problems with.
    • That closed language comes with the source code for all the class libraries. Sure, I can't hack the jVM, but I don't want to. I don't want to write a C++ optimizer either, so I don't.
    • Java's not portable? I'm running code on my PalmPilot that works on my NT box. I don't even get the option to do that with Perl.
    • Performance bites? Why, when the issue is Java, does everybody turn to performance...but when the issue is something like Windows being dog slow everybody just shrugs and says "Machines will get faster." The original C++ optimizers weren't very good, either. They get better. Java is faster now than it was yesterday, and it will be faster tomorrow.
    • strict adherence to object orientation? Java's not really a particularly strong OO language, such as a Smalltalk. I've found it to be a nice balance in which my programmers have to put in enough structure so that I can read the fool thing, but not so much that we are taking too much time having been hindered by the structure requirements.

    For the record, I work at a place where we do entirely serverside Java development on a Solaris box, serving up JSP pages. Not a Microsoft technology in the place. Could it be faster? Of course -- but I'll say that about any technology you put in front of me. I'd rather have a 733Mhz machine than a 700Mhz machine, too. That's not the point.

  • by The Wookie (31006) on Thursday December 02, 1999 @07:27AM (#1486701)

    I have found J++ extremely handy for doing server-side coding. As an IDE, I haven't seen anything that can touch it. JBuilder is a big, slow piece of crap. I gave up in Visual Cafe after 2.5 wouldn't stay up for more than an hour. It was very responsive, the project management was a little difficult to adjust to, but I find it to be far easier to work with, and the drop-down auto-completion works very well (much nicer than Borland's). Also, they automatically parse Javadoc comments to give you context-sensitive help.

    I have never had to recompile any J++-generated code in order to get it to run on a non-Microsoft VM (Sun's and IBM's on Solaris, Linux, and Windows).

    If they had just supported pure Java GUI's in their RAD stuff, they might have dominated the market.. too bad they had to put preservation of the monopoly above the desire to make a good tool.
  • Why did we need Java?

    It's not just the GUI -- Java brings with it a slew of standard - really standard - libraries.

    But beyond that, even though all us ubergeeks here code perfect C/C++, never leak memory or botch a pointer reference or run off the end of an array (yeah,right), there are plenty of programmers out there who do occasionally slip up, and writing in Java catches (or prevents) these omissions and thus the debug cycle is reduced. Fewer bugs is a good thing.

    Further and more, C and/or C++ code won't run in a browser, unless you download a plug-in with all the security risks that entails. Browser apps are (in some contexts) a good thing.

    There are other reasons. Personally I like Java's OO model better than C++'s. C++ has gotten a little crufty with age (I first learned it back when there were no C++ compilers, only cfront. IMHO it was better then.)

    Besides, do you think Microsoft's implementation of &ltstdgui.h&gt would have been any more standard than what they did to Java?
  • Microsoft [...] main thrust in the distributed web [...] SOAP -- XML-based RPC

    I'd agree with that much.

    But when that little GetWidget element comes winging its way into the server, there has to be some sort of gadget receiving and processing it. What do we write that in ?

    • Java (which can't do this week's new IE6 performing-wombat trick, because it's not an M$ product)
    • Perl/Python/SpodScript (see above)
    • C++ (Bob preserve me from ever again having to write COM in C++)
    • VB (yes, well)
    • EczemaScript (You thought VB was going to be slow?)

    So what do those of us who leech our living from the hordes of fat-cat M$oft corporates do now for a coding language ?

  • The "cleanest" solution I've seen to this was a ~3 second delay before it goes out hashing for the method names and bringing them up. It is annoying to have to wait for those names you know (because the machine locked and you can't type them in), and annoying to have to look up the names you can't. The delay is a nice tradeoff.
  • I believe Microsoft has already approached Transvirtual/Kaffe about adding support for MS extensions into their virtual machine.

    The quote on the front of their web page confirms this:

    Our flagship product, Kaffe, is the only Java Virtual Machine (JVM) that can run both Sun and Microsoft Java, helping to make Java's "write once, run anywhere" promise a reality. More portable and easier to work with than Sun's JVM, Kaffe also runs 10 times faster on most processors.

  • Having everything in classes is not all there is to OO. As I remeber it, the OO-advocates were bitching about Java not being "strict" enough. Stuff like multiple inheritance is not possible.
  • What we need are universal protocols and standards, but variety of implementations. MS got it twisted the wrong way

    True, Microsoft did get it wrong. Microsoft has "standard" Windows protocols and standards, but a varity of Microsoft implementations!

    Windows 3.1, 95, 98, CE, NT, 2000?



    Did I forget anything? ;-)

  • by Pfhreakaz0id (82141) on Thursday December 02, 1999 @07:49AM (#1486736)
    XML will allow software written to Microsoft's Com object model to interact with non-Windows objects. In essence, Microsoft is replacing the DCOM RPC messaging technology with an XML/HTTP technology that allows for remote method invocation.

    This is what M$ is all about. There saying everything is gonna be XML. Communication between COM objects (whether distributed or not) is gonna be through XML. They don't care about Java.

    See The M$ XML development center [] and, more importantly The XML manifesto [] for a good look at what M$ is trying to accomplish. I'm not saying I agree with everything in it, but I think it explains why they are not all that interested in java. I think any programmer (whether you use M$ dev tools or not, should give it a read, as it is a good overview of component technology and where M$ think it fits in. I'll quote a few relevant pieces here:

    the conclusion: Each year or so, the computer industry anoints a new technology as the "holy grail" of software development. The trade press happily bangs the drum, encouraging upper-management to hand down edicts outlining grand technology visions according to the pundit du jour. XML is bound to fall prey to this nonsense. Despite the hype, XML will not solve all of your problems. XML may or may not help you ship software faster. XML will never replace programming languages such as C++ or Java. XML will probably never replace programming technologies such as COM or Java either. XML will, however, become widely used as a way for software components to interoperate, in essence acting as a gateway between autonomous, heterogeneous systems. It is in this role that XML really excels.

    other piecesDue to Windows NT's heavy orientation towards the Open Software Foundation's Distributed Computing Environment (DCE) RPC mechanism, COM leverages the DCE RPC protocol for framing and transport and uses the Network Data Representation (NDR) for parameter encoding. The Distributed COM (DCOM) protocol simply defines a handful of DCE RPC interfaces that are used for object activation, type coercion, and life cycle management. In essence, DCOM is just another DCE RPC application...

    However, it is also unlikely that any of these three technologies will dominate the Internet. The network protocols used by these three technologies tend to require a non-trivial amount of run-time support to function properly. Ironically, while Microsoft and the Object Management Group (OMG) were arguing over whether the Internet would be run on DCOM or CORBA, the Hypertext Transfer Protocol (HTTP) took over as the dominant Internet protocol. Like many other successful Internet protocols, HTTP is simple, text-based, and requires very little run-time support to work properly. Additionally, many corporate firewalls block DCOM and CORBA traffic, while happily allowing HTTP packets into their (mostly) guarded networks. Finally, when you consider the amount of engineering effort dedicated to making HTTP servers (for example, Internet Information Server (IIS) and Apache) scalable, reliable and easy to administer, it becomes harder to justify not exposing your software components using HTTP technology. ...

    Many view XML as a fourth component integration technology. While originally designed as a solution for adding extensions to HTML, XML is rapidly becoming the technology of choice for integrating heterogeneous component-based systems. Here's why.

    XML Is Platform, Language, and Vendor Agnostic Despite the hopes of platform vendors or open-source zealots, the computing world will always be comprised of different programming languages, operating systems, and computing hardware. As XML is only a wire representation, it has no particular affinity to one operating system, programming language, or hardware architecture. As long as two systems can exchange XML messages, they can potentially interoperate despite their differences. Because XML does not mandate an API or in-memory representation, it is fairly simple to host XML in an application. There are XML parsers freely available for most (if not all) programming languages. While there are several standardized programmatic interfaces for parsing XML (for example, the W3C, DOM, and SAX), there is no mandate that one must support that API in order to interoperate with other XML-based systems

  • don't understand threading issues on various OS's

    If it was truely portable, this wouldn't be an issue.

    I don't have to understand the context switching issues of various CPU's, because the OS takes care of that for me.

  • I've found that the portability of Java is greatly exagerated. Taking a working Java app from an NT server to a different enviroment took several weeks. None of this was due to Microsoft, the app was written in 'pure' Java.

    I've found just the opposite. Java apps that run painlessly across NT, W9x, Unix, Linux and MacOS without recompiling (and I'm not talking trivial demo applets, either). Yes, there are occasional problems, generally these turn out to be either JVM bugs (more a problem a few years ago than today) or, more often, sloppy coding (e.g. being careless about coding file names in a non-portable manner). That latter isn't a Java problem, it'd happen with any language. At least Java provides some fixes.

    In addition, you have to considere the rapid pace at which Java seems to evolve. [...] Java 1.0 isn't compatable with Java 1.1, which isn't compatable with Java 2.

    Not true. While some methods may be deprecated in later versions of Java, they still compile. More importantly, a Java 1.0 classfile still runs under a 1.1 or 1.2 JVM. The bytecode hasn't changed much.

    All of this in a language which was released about 4 years ago?

    Haven't been around new languages much, have you? The first few years of C++ were as bad, the original widely distributed version of the language didn't have either multiple inheritance or templates, and several then-legal C++isms are now deprecated (e.g. assignment to this, handy for walking a list). The same goes for just about every other new language, as wider usage turns up design flaws or omissions that the original language designer(s) hadn't thought of (or thought necessary).

  • by Raphael (18701) <quinet&gamers,org> on Thursday December 02, 1999 @07:55AM (#1486743) Homepage Journal
    My problem with Rational: Anything they haven't bought (they bought purify and clearcase) doesn't exist for non-windows platforms. There will never be a linux purify, clearcase, or rose. Therefore, one can conclude there will never be a linux j++.

    Minor correction: Rational has announced that they will release ClearCase for Linux. However, it won't be the full ClearCase, but only "ClearCase Attache", which is a client that allows you to get a view of the ClearCase VOB but not the full thing. You will still need a commercial UN*X server or Windows NT server to run ClearCase. That may be better than nothing, but not good enough. And anyway, it is not available yet.

    I make extensive use of ClearCase, Purify and Quantify while writing software (at work). These are very useful tools, but unfortunately they are not available for Linux. Since the programs I write must run on several systems including Linux (the list includes Solaris, Windows 95/98/NT, Windows CE, EPOC), I ended up having to set up a cross-compiler to compile the Linux programs from a Solaris host that can use ClearCase. This still doesn't give me Purify and Quantify, but fortunately Linux and Solaris are similar enough to give me a reasonable confidence that something that has been Purify'ed under Solaris will also work well under Linux. But I digress...

    Coming back to the main topic, I agree that Rational has not done much to support non-Windows platforms. On the contrary, they have almost stopped improving the UN*X version of the tools that they bought from Atria and Pure Software, while putting most of their efforts on the Windows versions. This does not look good for those who are expecting to see J++ for Linux...

  • I am using a lot of Java and XML these days.

    IIRC, Microsoft is a member of the Object Management Group, as are Rational, HP, and several other companies. OMG is responsible for the official definition of UML.

    Rational makes modeling tools based on UML. UML is a modeling language for object-oriented development. Rational also employs three of the biggest names in object-oriented methodology (Grady, Booch, and Rumbaugh, I believe).

    (It's very convenient for a development tools company to have so much influence over development standards, isn't it?)

    The XML protocol mentioned in the article is undoubtedly SOAP. From what I've seen, SOAP is pretty heavily weighted in favor of COM objects.

    But the SOAP protocol is open, it is XML-based, and it should not too be hard to implement with a CORBA ORB or whatever the technology of the week is at your company.

    To paint SOAP as a Java-killer, however, is misleading. It may make it unnecessary to mess with Java's Remote Method Invocation, but it won't stop people from writing JavaBeans invoked by SOAP calls. XML procedure calls will allow components to communicate, but you still need a language for writing the components.

    SOAP should give Windows developers an easier way for their Visual C++ components to communicate with components on systems that have poor support for COM. Could SOAP encourage developers to use C++ instead of Java for their components? Possibly, but I already see several examples of Java making use of XML. Java developers may well embrace SOAP.

    In the end, I believe developers will gravitate towards what works best, and that's the whole point.
  • Anyone who has programmed for Windows will tell you that there is so much kruft all over their API's (in order to remain compatible with Win16), the programming is an nightmare. Its Microsoft's marketing dumps technology every six months, renames it and resurrects it.

  • JINI does use RMI, but they're not the same. It's like saying HTTP is the same as sockets because HTTP uses sockets.

    As for being a moving target because people are adopting it. I don't recall C going through such contortions when the universe was adopting it.

    I'm not terribly impressed with buzzwords used by startups anyway, they're mainly there to make the VC trolls happy.

  • Of course, in a couple of years, we might not be on the x86 anymore, toto. And if any of these proposed future chips execute Java bytecodes at hardware-lookin' speeds, watch out, Microsoft! :)

    (Insert Beowulf, Transmeta, Java/XML/C-- comment here :)

    Interesting juxtaposition, there. If the Transmeta "Crusoe" chip does turn out to be a dynamically re-microprogrammable CPU, it could as easily remicroprogram itself to run Java bytecode natively as it could x86 code. More generally, whatever magic it does to run x86 code faster than an actual x86, it could also do to run Java bytecode faster than anything else out there.

  • Rational is one of the heavy hitters in software for "enterprise" or "industrial strength" stuff. It competes with companies like Segue, Mercury, and Compuware. All four gobble up smaller companies left and right and have been investigated by the DOJ for anti-trust concerns.

    These companies sell very high end, very unsexy software, and charge dearly for it. This isn't a Good Thing, unless you own stock in Rational.
  • by hawk (1151)
    >Microsoft has always tried to be in the language
    >business, no matter how much they suck at it.

    How quickly they forget :)

    Microsoft's base *was* the language business. They parlayed this into an OS business with IBM, although on the 8 bit machines (nto CP/M), the OS (what there was of it) was hashed into microsoft extended disk basic.

    In 1982, microsoft was the good guy that was going to protect us from the evil dominance of IBM, since you could buy ms-dos for other machines rather than ibm & pc-dos.

    The roles seem to have reversed :)

  • by Shadowlion (18254) on Thursday December 02, 1999 @08:33AM (#1486776) Homepage
    I was merely being simplistic.

    Had I added all the caveats, such as the myriad number of unsupported platforms, or that each individual VM has problems that either require a program to be specially tailored to that VM or to have workarounds for all the major types embedded into it, or what-have-you, my post would have been four pages long.

    Addressing specific points:

    * Java is indeed "machine neutral," given a perfect VM. Unfortunately, no such VM has been created. Many of the problems you'll find with Java tend to be a result of the VM. A VM on Windows will not necessarily run the same program as it will on a Mac, because the implementation of the VM specs is different or because the operating system isn't quite able to do what the Java specs require. That's not a fault of the Java language, but a fault of the implementors and/or the platform's inability to conform to what Java requires.

    * As for cross-platform, Sun never said they were going to *support* every platform, only that if a VM existed on another platform that Java would run on it. That's why they released the VM specifications, so that others could develop VMs for other platforms. While some platforms have been "blessed" with official ports (such as Windows, Solaris, and BeOS, and even Linux was promised an official one, in addition to Blackdown's efforts), others have to rely on non-Sun efforts.

  • by bjb (3050) on Thursday December 02, 1999 @08:34AM (#1486777) Homepage Journal
    Speaking of their support for non-Win32 platforms and Purify, I have to mention that I've been using Purify for Solaris for some time now and love it. Recently I installed Purify for NT at work, and found that it is no where near the caliber of product that it is for Solaris. I guess since they bought Purify, they probably don't really have the development force behind it? Read: I think it originally was a Solaris-only product until someone else acquired it.

    As an interesting side note about Purify for NT, you wouldn't believe how many errors pop up that are coming from the operating system. Leaks, bad pointers, etc. If you thought NT was bad, use Purify on it. Kind of makes you wonder why Visual C++ books/teachers/etc preach that you should use error checking level 3 or better, however, the VC++ standard includes fail under anything more strict than that level. Hmm... What's going on in their development departments?

  • The main strength of Java is in servlet middleware, not little applets for cutesy "I Kiss You!!!!!!" home pages.

    Servlets can keep state information better and more securely than cookies, and again it is on par with Python.

    Good examples of Python and Java middleware: Zope (Python) and Enhydra (Java). The strength of the two is especially visible in the SQL database interface modules/servlets. I'm also partial to Zope's Squishdot :)

    Please don't judge Java's performance on applets -- look at its usage in servlets for e-commerce websites, especially tying together frontends and backends . In such a situation the hits you'd get from being a byte-compiled language with blah-ish VM's and weird threading are compensated by server hardware, but you can move the applications from server to server as you upgrade hardware and have a consistent e-commerce site.
  • by Shadowlion (18254) on Thursday December 02, 1999 @08:49AM (#1486788) Homepage
    Or could it simply be that Java isn't suited for word processing or spreadsheets?

    You're trying to pidgeon-hole Java into the role of desktop software. That's not where Java's home is. Java's home is on the back-end, in the server room of enterprise industry.

  • Supposedly there is a program that lets you do Swing development using VJ++. It's called 2lkit for VJ++ and it's at: []
    I haven't had to chance to try it yet (just heard about it), but it seems interesting. Maybe Rational should buy these guys. =)
  • by seaportcasino (121045) on Thursday December 02, 1999 @08:58AM (#1486791) Homepage
    From someone coming from a C, C++, VB, and Perl background, I will tell you that java is fantastic because it has a comprehensive set of libraries (network, gui, encryption, database, web) that is standard across all platforms. And I think this is the reason it is successful and will just become more successful. All that is left is to make sure that java is supported on EVERY platform equally well. My thinking is that a OS shouldn't even ship until there is a fully functioning JRE for it.

    If you want to see the power of java servlets, check out my site, a fully functioning multi-player blackjack game that can support a 1000 simultaneous users. I wrote it in a week. Try that with any other language!

    By the way, I know you could do it in Perl; I love Perl, but java servlets are just so much more efficient and doesn't hog as much memory. Also, my code is neatly organized into sensible objects. That just never seems to happen with my Perl code.

  • As a developer for the Windows platform over 8 years running, I can attest to them pulling BOTH stunts. There's things like Win32s/Win32c/Win32 and then there's things like Win16/Win32.

    A prime example of the "dropped it" for something needlessly incompatible play they've done is the transition to the Win32 API from the "Win16" one. (By the way, it's also the best example of API cruft that MS is very guilty of...).

    Win32s- produced to try to convince developers to write apps that would be moderately easy to port to NT from Win16. Comprises a small, twisted subset of Win32 with bizarre memory rules, etc. Has "Universal" thunks- of which, they're incompatible with everything else. Dropped like a hot potato when it was obvious that it was highly unstable and they had something "better" in hand (Windows 95 (a.k.a. "Chicago)).

    Win32- The API for Windows NT. Highly complex, supports only bits and pieces of the Win16 API, making it incompatible with a lot of the earlier Windows apps- at a time where they were touting it's "compatibility". Has "generic" thunks- which Win32c supports with a translation layer that converts the generic thunk to it's native "flat" one. GDI calls work differently on Win32 than on any other platform.

    Win32c- The Win95 Win32 API. Another subset of the "full" Win32 API. Incompatible with the full one in some cases (API calls do different things in identical cases.)
    Has "flat" thunks as it's primary thunking layer for 16-bit to 32-bit coding- this is incompatible with the Win32 API. In order to use thunks that work on both platforms, you're going to have to sacrifice some performance going through a translation layer that converts generic thunk code to flat thunk calls on the fly. MS is actively trying to kill off this API as they did with Win32s.

    That's just one little example given as a capsule summary. I won't even go into the details of the TAPI, WinG, and other fiascos in this vein that MS has pulled in the past.

    They're very guilty of both things.
  • >Microsoft has always been about COM and DCOM (which really aren't that bad, except for the whole cross-platform thing).

    I've always felt that COM was largely hamstrung by its unstated design goal of making things easy for VB programmers at the cost of making things harder for C/C++/Java programmers. That's in addition to its not being cross-platform.

    If VB compatibility was dumped, then COM would be a lot cleaner to work with, IMO.
  • the point is not only what we know about them, the point is to use the knowledge to find out what would they profit on more - the successfull java or fragmented java like dialects.

    since their main area of expoertise are tools that use java and other languages (CASE tools) they profit if everybody uses same java, because they can all use their tools then. in fact it would be a disadvantage for them to have java that is not compliant with 'real java'.

    another point of view: they do not have the market share to introduce the 'java extensions'.

  • "It's not a done deed, it's a whole lot of hype coming from Sun Microsystems. If you think it's a true cross-platform initiative, please tell me where on an official site I can download the JVM for:"

    There's no such thing as an official version. most major platforms have more than one version of the JDK. The specs are open, if you need to build a java version for any of the operating systems you mentioned you can do so your self.

    You can't expect SUN to support every platform out there. BTW. I heard they are working on Linux support so that should solve your problem since BSD is able to run Linux binaries.

    "The coffee fumes coming off that vaporware smell nice, but it's just plain not enough in the real world."

    Conservatism in any form is appalling. You're a developer (I suppose) so open your mind a bit. Sure Java performance and availability on some platforms is less than desirable at the moment but with JDK 1.2 most cross platform problems are a thing of the past and if there are problems (usually due to bugs in a certain JDK implementation) they can be worked around. Usually getting a Java program to work on more than one platform poses very few problems and the porting effort is zero or very close to zero.

    Anyway, I think the differences between all the versions of UNIX are bigger than the differences between Java virtual machines.
  • I mostly agree. Although I think there are two camps. (I'm a vb/vc/et al developer trying to get away from MS)

    A sizeable minority of Windows developers I've worked with have not only be _as_ loyal to windows as some linux fanatic, but even more loyal.

    I've worked with enough of them on projects over the year that I've noticed some commanalities...
    1) First 4GL work was with an MS product
    2) Didn't use GUI until windows 3.1
    3) First IT work was on Mainframes at Gov't installations (off the top of my head :Army, Navy,AF,Marines)
    4) Stubborn refusal to look at other technolgies. (One went so far as to call me grossly incompetent for recomended that we look at Netware/Linux as well as NT for a file/print server!)
    5) Not a single one could seem to fully understand Threads or Event driven programming.
    6) Usually live or had lived in the US Nortwest. (Although my sample is biased here, about half the developers at my last job where from there.)
    7) Overall, just like any fanatic they are _NOT_ fun to work with. I've left several project due to fanatics of one type or another....

    You are right, these people are not the majority of Windows developers, but they do exist!
  • by roystgnr (4015) <> on Thursday December 02, 1999 @09:22AM (#1486816) Homepage
    Despite the hopes of platform vendors or open-source zealots, the computing world will always be comprised of different programming languages, operating systems, and computing hardware.

    What the fuck are they smoking? While Microsoft "Windows Everywhere" Corp. has dropped support for platform-independent Windows NT, is struggling just to put out a 64-bit NT, and puts 90% of it's development in wasted efforts to make their software as incompatible with existing standards and other vendors as possible (Win16/Win32 instead of POSIX, Windows Terminal Server instead of X, Direct3D instead of OpenGL, ActiveX/J++ instead of Java...); "open source zealots" put out multiple differing-yet-compatible Unix-like operating systems with software written in half a dozen languages, all of which strives to be portable to commercial systems and the other open source systems with little more than a recompile.
  • by jilles (20976) on Thursday December 02, 1999 @09:37AM (#1486822) Homepage

    Just because you can't do a rm -rf / doesn't mean you're safe, for most users a rm -rf ~/* is bad enough.

    Security is not entirely an OS responsibility. The main reason why there are no activeX viruses for Unix is because on Unix there's no such thing as a downloadable activeX component. Not providing certain functionality indeed is a form of security but not a very elegant one.

    Java provides its own platform and cannot count on OS level services (though it can use them if they are present). Security is something that was done very nicely in Java.

    C++ is a rather limited language from a OO perspective. It provides a lot of poorly implemented OO features, most of which were done a lot better in Java. The only real advantage C++ has over Java is performance and being close to the hardware. The disadvantages list is a lot longer: longer code, crappy memory&thread management, no security features, .. I don't want to start a flaming war over Java performance (I'm sure somebody else already mentioned this topic and ignored all previous postings on this topic) but I'll just simply state that yes C++ is faster and no I don't care about that.
  • by jilles (20976) on Thursday December 02, 1999 @09:48AM (#1486828) Homepage
    The real reason MS killed their Java products is because Sun succesfully prevented them from making it an MS specific language. When they realized that, they realized that they were competing against their own stuff (activeX, VB, Windows). So killing J++ probably was a healthy business decision from their perspective. After all what have they to gain from supporting a 100% cross platform language?

    Unfortunately they are not able to innovate. VB still is based upon a crappy language called Basic. MS' first product was a basic compiler (they did not invent the language). All they did from then was add features to it that they saw in other, more promising languages. They added subroutines and even some OO like stuff but it is still Basic, a crappy scripting language.
  • I suppose that's 30K lines of C code. The Java version of the same program would be much smaller (10k lines is more likely). Especially if you know the API's well and don't reinvent the wheel.

    Also the code will be much cleaner since it doesn't contain strange macros (which by the way are not checked by the compiler for typing errors).
  • Actually the guy is not against OO programming. In an IEEE article he makes a strong appeal for using script languages like TCL to script complex OO components. His company even has made a Java implementation of TCL for this purpose.

    I think you can find a link to this article on the companies website
  • Actually there's three sides to compatibility.

    One is the API that has indeed evolved greatly (and that's definately a good thing). Most programs can be ported to later generation JDK with little effort.

    Two is the language (the language hardly changed) and is backwards compatible.

    Three is the bytecode (you can compile jdk 1.0.2 programs with the latest VM and provided it doesn't clash with the API it will work on any good jdk 1.0.2 VM)

    So quit whining.
  • If you don't understand that windows 3.1 and mac os doesn't support non preemptive multitasking you run into trouble when you port a multithreaded app to that platform. If you don't know about green threads light weight processes when working on Solaris, you might run into problems.

    Java made multi threaded programming a lot easier but it is still possible to shoot yourself in the foot. If you do don't blame Java but grab a book and learn how to do it properly (and comfort yourself that you wouldn't have pulled it of in another language either).

    "I don't have to understand the context switching issues of various CPU's, because the OS takes care of that for me."

    Yes you do, you have to understand that context swithching is an expensive operation on most platforms and that you should design your program in such a way that it limits the nr of context swithces.

    Not understanding what you are doing is never a good idea. Java hides the complexity of programming parallel programs but does not protect you from writing inefficient software.

    In the research group where I work a guy evaluated a few large C++ server applications for multiprocessing systems and he found that with some of those systems the performance decreased when you added more processors. The key to solving this problem was understanding context switches (which he did rather nicely).
  • Taking a working Java app from an NT server to a different enviroment took several weeks.

    Several weeks of what? Powersurfing? Migrating code from one platform to another in Java may have a few issues, but it is trivial compared to migrating many other languages. Even Perl has cross-platform issues.

    Second of all, nobody from Sun is telling you to switch from RMI to JINI. JINI has absolutely nothing to do with the J2EE spec, where RMI over IIOP is used for remote procedure calls.

    Third, 1.0, 1.1 and 1.2 *are* backwards compatible. Sure, some classes/methods are depricated, and Swing is replacing AWT, but that is what we call *improvements*. I have code that I wrote back when Java was in beta, and it still runs just fine.

  • Thank god you didn't learn programming in the time that Cobol was the main language because you'd be stuck with that instead.

    "Would I want to write a driver in Java?"

    You wouldn't. Drivers are hardware specific. What you do in Java is abstract from hardware. So what you'd do instead is use/create an API that does that for you (java3d for instance) and write a driver in C that mediates between the API and the hardware.

    Its all about using the right tool for the right job.

    "I would be reluctant to write OS level code (e.g., drivers) in an OO language"

    If you do it well like the people that created BeOS for instance the result is very satisfying.
  • TogetherJ synchronizes its UML 1.3 compliant diagrams with the java code that you type/generate (depending on whether you edit a diagram or the code). Very Cool! Apparently there also is a C++ version.
    I thought it would be worthwile to mention it in this context. It is of course a Java program so you want a decent VM running on dito hardware (jdk 1.3 beta is very satisfying for this purpose).
  • On a related note, also don't try including Windows.h if you have disabled "compiler extensions"...

    embrace.. extend.. embrace.. extend..
  • HOWTO show it to you. Hmm.

    Take a modern PC >300 mhz and 128+ MB memory.

    Install solaris or windows (whatever you prefer)

    Download JDK 1.3 Beta (performs much better than 1.2)

    Download TogetherJ, a full featured UML 1.3 modeling tool written in Java.

    Run TogetherJ using jdk1.3 and enjoy. Its not that much slower than its main competitor (Rational Rose) and the system requirements are not different either. Featurewise TogetherJ also does nicely. I particularly like the way diagrams are synchronized with Java code.
  • According to the article, Microsoft didn't "sell" Visual J++, they stopped internal development and "signed a deal for [...] Rational Software to continue development of Visual J++". The article also didn't mention anything about the Microsoft Java virtual machine, so we may infer that they will retain control over that (Rational doesn't strike me like the kind of company to do runtime development). Also keep in mind that only a few months ago, Microsoft contracted with Transvirtual to add the Microsoft Java modifications to Kaffe.

    If that is an accurate description of what happened, Microsoft will retain control over the direction and APIs in Visual J++.

  • ince whatever any of us are doing now is likely to be long since on the scrapheap in 10-15 years, people's emotional attachment to any tool just strikes me as silly.

    I think you may have hit the nail on the head. You just got me thinking that for me (and apparently yourself) technology is just that a tool. Nothing more special about it than a hammer... it gets the job done. For a fanatic, it seems that thier particular technology is worthy of devotion (imagine protrating yourself infront of a Black-n-decker jigsaw!).

    The tools that seem to get the most devotion seem to be seen as being some part of "movement" (Creative (mac), cheap multimedia (was amiga now beos), open source (*bsd, linux, etc.).

    Hmmmm... gives me alot to think about!
  • J++ has always been an excellent tool for both Windows and general Java development. Having used it extensively, I'm heartened by the fact that Rational is taking it over. Here are a few suggestions for them:
    • Put Servlet support in this puppy.
    • Create server-side debugging, similar to what metamata ( []) does. The ability to debug from client to server is an answer to all our prayers.
    • Continue to support and develop WFC, because it's sometimes more appropriate than AWT or Swing (both of which are very slow by comparison.)
    • Put full support for the java specs (AWT, Swing, javax, etc) in.
    • Drop the zip compression in favor of jar files. We could all use standardization.
    • Maybe open-source the ide and compiler?

    Joe Morse []
  • Visual C++ is a very nice piece of kit, thank you.

    I see that my use of the word "tool" was ambiguous. I was using the word "tool" to refer to things like MFC and ATL, not the compilers and IDEs themselves. I've noticed MS Visual C++ has some nice features. Their "Edit & Continue" feature is very cool.

    MSVC still cannot touch Borland C++Builder in terms of ease-of-use and elegance of the visual development environment.
  • This is soooo true. Purify is a bitch to use on NT. Most of the leaks and bad stuff come from MFC and NT DLLs. Purify can maintain a list of known problems to ignore, but as a developer, you still know the problems are there and they do not inspire confidence in Microsoft or its developers... :-(
  • I'm not on crack, sorry, fresh out.

    I don't like Java, I like it perhaps less than you do. But I'm talking about perceived reality here, not as you or I perceive it, but as Microsoft's customers would. People are learning Java, schools are teaching it, and businesses are implementing it. What do you think is going to happen? We'll probably be stuck with it for a while.

    Also, you *can* do some really impressive stuff in Java. Anything you could do on a 386 in assembler, you should be able to do at least equally fast in Java. And that looks really cool in a web browser. You shouldn't need more speed than that for a decent word processor, or a cool graphics demo. And if you do, if you want something really cutting-edge, don't write it in Java for at least a few years. :)

    GTK is not nearly platform independent, unless you the developer compile it on all the platforms and statically link it. That might be the best idea since it differs enough from version to version (minor versions!) to break a lot of code. I like GTK, but I think I'll wait until it's a bit more stable.

    Lots of people use Java apps on a daily basis, not usually Office suites or web browsers (for obvious reasons), but often communications applications. I know a lot of people who use Java versions of AIM or ICQ simply because it's easier and takes up less disk space than trying to install the real version. Of course, we could all just use byte-compiled LISP in Emacs, but it doesn't look as pretty. :)

    Feel free to use what works, I do too, and it generally isn't C++ if I can help it (or at least not anything that uses iostream, it's slow and ugly!). I like C better, and assembler when I can. But I bet you I'll still be writing C++ and Java in the years to come, regardless.

    And there *are* supposed to be some pretty good IDEs for Linux, but I haven't tried them. I know a lot of people who use Visual Slickedit, but of course that's a commercial product, as is CodeWarrior. I also haven't tried CodeForge. I like RHIDE (it's just like the old TurboVision-based Borland editors, yay!) but it isn't that stable or actively developed on Linux, AFAICT... So I end up using pico, and grep, and stuff. :)
    pb Reply or e-mail rather than vaguely moderate [].
  • What the fuck are you smoking ?

    I was being rude towards a MS PR flack, and now a Slashdot AC is taking it personally? What are you, "grassroots support"?

    JAVA is no closer to being a open-standard now, and never will be.

    Well, I'm cynical enough to agree that Java will never be an open standard, but it's a hell of a lot closer than J++, whose entire reason for existance was that Java is too cross-platform for Microsoft tastes.
  • The "switching to NT" was just some search text to locate the passage. I was hoping that people could read and comprehend what Tim was saying. Such unfounded optimism.

    Tim O'Reilly says:

    • ...our web team wanted to replace what had become a fairly obsolete setup whose original developers no longer work for the company.

      This system ... involves a lot of convoluted perl scripts...

    Now, you losers can jump up and down like gibbons and grab your dicks and make snide remarks about how I cited the wrong author for a book (and when I tried to doublecheck, Amazon listed Booch as an author, so sue me, Jeez). Or, you can read the writing on the website and realize that this is not an isolated story.

    Why do we have a Y2K problem? Because the programmers who wrote a lot of programs never dreamed they'd still be running in 1999. They weren't built to last; they weren't build to be maintainable. Now we're in round two and we won't get fooled again. A lot of people bought into Perl CGI over the last few years and now they are stuck with piles of code that may work great, but can't be maintained because it's indecipherable. Just like O'Reilly.

    These people are looking at Java and saying,"Hey, if I write stuff in Java, it's going to be able to run on the new mainframe I buy in 2010. It's going to have a clean syntax, free of low-level hacks and I will be able to hire new people to update it even if the original authors have quit."

    Sure, you can write unintelligable Java code, but you have to try. Even cretinous Perl programmers don't want their code to be a mess, but when schedule crunches hit, maintainability is usually the first design goal abandoned.

    All of this is made crystal clear in "Alice In Wonderland" by Charles Dickens.


  • I think it was JWZ who said something like "Unix sucks. But it sucks less than anything else." The PC did pioneer the use of an attractive and readable 24x80 display, while Radio Shack stuck with crummy tubes and Commodores were generally plugged into cruddy TVs. The PC had an excellent keyboard and an overall well-made feel that I appreciated at the time (having bought one of the first ones, for circa $ 4k - ouch!).

    I remember liking a lot of the features of Microsoft Basic compared to the competition. True, MS Basic was pretty sluggish at garbage collection, but generally it seemed pretty well thought out. Funny, I don't remember many crashes in the old Basic days; now our software is infinitely more complex, infinitely more sophisticated, but infinitely less reliable, too.

    I also remember genuinely liking the early versions of Microsoft Word for DOS. They were ... well ... different. Since I hated WordPerfect's "Memorize a billion function key combinations with no easy neumonic", Word's alphabetic commands seemed a lot better. And it was the first PC word processor to have nice proportional font support - the WordPerfect font support seemed tacked on and ugly.

    So no, I'd say Microsoft did make some good products - or at least some interesting ones - before the "bad new days" of Windows. I actually had a fairly positive image of the company before Windows blew it away.


  • Wasn't ActiveX no more and no less than OLE with a shiny new name? OLE isn't going away, certainly. Frankly, my distinct impression is that it stinks, being incredibly sluggish and bloated, and that's one reason it's been renamed so many times.

    If you consider the hard work of virus writers and the difficulty of making ActiveX safe, I would be quite surprised if ActiveX caught on in the web at large.


  • "Please explain to me (with a straight face) why interger and Integer exist simultaneously."

    Oh that's easy. Performance versus flexibility. If you want performance in an application, you don't want to use objects to model basic types like integers. If you want flexibility, you want to model basic types as objects so that you can put them in for instance a Collection Object.

    Also the Integer, Boolean, etc classes contain nice static methods for conversion to and from string etc.

    From a pure OO perspective the presence of basic types is wrong but then a pure OO program would probably be to slow when handling large amounts of objects so you need them to avoid creating an object for each integer in your program.

  • Ok I'm really scared now: MFC the next generation. I guess they'll never get it there.
  • Java programs generally are smaller than their C/C++ code versions. I did all three languages and I can say with a straight face that most things are much shorter in Java than they are in C.

    The reason for this is that you can eliminate redundancy in your code by using OO, you don't have to do memory management and you have a great API with all sorts of default functionality. You won't cath me implementing a linked list in Java.
  • I have no idea but I know the people at Symbian use rigorous coding standards for their stuff. Check out their coding regulations at their site (

    The interesting thing is that with all the limitations they impose, the code mimics things that were designed into the Java language. It shows that in order to write reliable C++ code you have to be very disciplined.
  • I did what I described. I don't care what the survey says since the program screamed on my PC.

    PalmOS already has a java VM. It works very well without being dependent on propietary Palm libraries.

    The future by the way is not a Palm with 8 MB. There's a thing called progress. More likely a Palm with 128 MB and a 200MHZ+ processor is the nearby future.
  • Have you ever used java, Its much, much, much nicer then C/C++ for just programing. I think it would be nice to compile it for native code, but things like JIT and stuff works well now, so it dosn't matter. Would you want to download interactive content from any website with *compiled* code? well, with Java's security model you can.

    There are many benifiets of java over C/C++, Platform nutrality is only one of them

    Oh, and Java programers make a lot more then C/C++ programers :)
  • by delmoi (26744)
    Can I get perl for windows 9x? (that's about 80% of the computers on the net).

    Java's already there.
  • You could not write html for explorer that would work with netscape and reverse...

    What the hell crack have you been smoking?

    Some of the advanced features arn't cross compatable, but you could always code somthing that would work in both
  • In Java, its OO or nothing.

    No its not. Just make a single class with a big, fat main() member. Put all the other procedures in seperate functions, not to difficult. I don't know *why* you'd want to do that, but you can. (Just like you can fake OO in C with structs (no polymorphism though:( ))
  • Ha! OO programs are typically just as large as procedural ones. You've demonstrated nothing.

    Did you read his post? He sad Java not C++, Java is really a lot simpler, and quicker. I wrote an entire IRC client in 800 lines of java, try that in C. (you could enter any room you wanted, and chat. All that was missing was OP commands (kick, ban, etc))

    Have you ever actualy Used java?
  • How much do you know about OO anyway?

    Well, I don't know about the other guy. but I use OO, and I can't stand not using it (I learned with OO (Teach yourself Borland TurboC++ 4.5 for win3.1 in 21 days, freshman year of HS :), everything else seems completly counterintuative)
  • Its impossible to write under 20 lines of Java. That verbose beast can't do anything useful in under 100 lines. so.. what you're saying is, that youre an idiot?

    Java, at most, adds about 2 extra lines to a program, if youre going to do somthing proceduarly (Just make a class that corrosponds to the global scope).

    You're also going to cut down the total number of lines in a large projectt
  • . Compare using exceptions to simply returning 0 or 1 from a procedure. Which seems more simple to

    Yeh, but then compare the code that you have to write to check for that value? and what if you want to write a function to somthing that would be able to return a 1 or 0 in normal use like 'readbyte()' or somthing? Exseptions are really a lot simpler.

    Anyway, as far as simplicy goes, calling things like whatever.funciton() to manipulate somthing works a lot better then struct manipulating functions. And polymorphism really helps to, when you can derive classes that use simillar functionality, you can use the same code on them, instaid of rewriteing it.

    Yes, C++ can be slower then C, but it is simpiler

    how come so few succesful open source projects make use of them?

    KDE uses OO
  • there will need to be a "compression extension" because XML is verbose, thus making messages large.

    This isn't a problem.

    • Compression belongs at the presentation layer (and preferably below transport), not at the application layer. XML content is certainly bulky, but it squashes very well. I've spent the last few weeks benchmarking verbose XML travelling over dial-up modems and anything that has the slightest compression smarts squeezes it right up.
    • There already is a compression extension for XML. It's part of the WAP / WML work [], where XML is really trying to squeeze itself down a thin pipe. It's currently very tailored to WML, but that's fixable.

  • It was clearly behind, even at the time--at least a couple of years behind the other 8086 and 68k machines available. It sold for three reasons: I, B, & M, at about $500/per :)

"If value corrupts then absolute value corrupts absolutely."