Microsoft Selling J++; Discontinuing Development
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.
one can only hope rational can make something good out of this, Visual J++ bites, the only nice part of it is the same ide as interdev. Shame interdev sucks compared to notepad tho'.
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.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
maybe this should be in the beginning-of-java-support dept?
I am, therefore you think.
How did M$ get into the java business anyway? Sun created it, and sudden M$ has this HUGE java development division, what is that about?
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.
Rational produce a nice OOA/D package which uses the Unified Modeling Language. It will generate C, C++, Java (and possibly Ada). The generated Java is standard (if slightly behind the times).
The article said that XML was going to be used to allow windows components to communicate. Is this at all sane in the XML context? Or is this going to create an M$-XML encrypted binary unix/linux embrace and extender type of standard?
i know there are some big names at rational (i.e., the three amigos), but some of the rational software didn't have the quality i expected. it "worked" but some little bugs turned into big bugs the longer i used it (of course, there may be patches or newer versions out). i only hope they put more effort into a robust j++.
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.
--
then it comes to be that the soothing light at the end of your tunnel is just a freight train coming your way
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.
I personally think that the J++ development tool wasn't too bad. It was unfortunate that it used the M$ implementation of Java: I might have considered using it if I could have cross-platform and CORBA development with it. Instead I was forced to use (very slowly) "crash-a-minute-we're-more-bloated-than-any-M$-pro duct" JBuilder with VisiBroken. I hope that Rational can take a good IDE and produce a decent Java development tool (hopefully not as flaky as Rational Rose too). I'm a bit dubious about the motives, I wonder what the *real* deal involves?
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.
pb Reply or e-mail; don't 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
Regardless of who owns J++, they still have to keep within Sun's guidelines to call it Java. The Java licence doesn't pick on Microsoft; everyone has to play by the rules. Personally, I'm looking forward to seeing J++ wither away.
Cat, the other, tastier white meat.
So: as a programmer, my question is, what's in it for me? How will this transaction make J++ a better development tool?
I guess the answer is, it won't make it that much better (or less worse, as you may see it; I personally like J++ for it's, ah, userfriendliness.) It will still be a Microsoft-marketed product.
But the thing is, it won't be developped too close to Microsoft's heart. It means the development kit won't be built so much with other Microsoft tools in mind (like Visual Basic or Visual C++.) That means the product may become more intuitive and less restrained by impossible constraints. Like, for instance, the layout of the buttons and menus. You can recognise a Microsoft product by the way they try to make it into an Office lookalike, although the Office layout never made sense in the first place.
Well, that's a slim hope. I guess J++ will stay more or less the same... And when you can code in vi, it's not like the buttons layout matters that much, anyway.
M$ trying to get around legal restrictions again! oh well, give them credit for trying (over and over again).
http://www.jonmasters.org/
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?-Denor
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.
pb Reply or e-mail; don't vaguely moderate.
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.
DrLunch.com The site that tells you what's for lunch!
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...
-- What you do today will cost you a day of your life.
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.
Jack Valenti and the MPAA are to technology as the Boston strangler is to the woman home alone
Please teach me.
I dont think avoiding the legal issues of customizing Java through this would be a primary motivation, as after all Sun can just go after Rational then if they think R. are violating the Java licenses. Or am I missing something there?
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.)
mikre he sophia he tou Mikrosophou.
Give me a break. Microsoft helped validate Java 100 times more than Sun ever could alone. In fact, their browser's JIT still has the fastest Java implementation of any browser - bar none. Give Microsoft some much deserved credit for a change instead of bellowing blind Sun Micro rhetoric.
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...
Could someone tell me where I can find more info about the XML/HTTP strategy they referred to in the article? Are they referring to Soap? I work at a company where we have a middle-tier application which uses its own proprietary way of serializing-deserializing objects and passes them around with home-spun sockets. I've been arguing to move to XML/HTTP since I got here (there are reasons why CORBA won't work as well). Anyhow, even though we don't use MS, being able to point to some standard -- even if it is MS claiming a standard -- may help convince a PHB or two. Thanks. - Scott (sorry not logged in)
Not really suprising. With the injunction against Microsoft from extending Java, and the lack of popularity in J++, it isn't suprising that Microsoft is dropping J++.
Now that Microsoft can't really extend the Java language like MS likes to do with all technologies not developed by MS, just drop J++. You see, they can't fight within Java anymore (by creating MS specific extensions that require Windows), so now they plan on fighting Java directly, with XML as the "lingua franca" of the web, as hinted in the article.
But now, I don't really see how the use of XML will help Microsoft's war on Java. Java and XML can and should be complementary languages. Unless they "innovate" and extend XML to the point you couldn't use Java to parse XML. But thats silly since XML is text based.
We will see how far Rational will go in continuing development of J++, with heavy competition from Sun, Inprise, and IBM.
Well I'm pretty sure J++ won't be missed that much, to Microsoft and everyone else.
Man
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.
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?"
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
It's performance does suck, again I'm comparing it to C. But it's performance is ON PAR with Python. I use both and like both, for different reasons, and rely on the fact that I'm well reasoned enough to select the best for a particular project. The only reason I use Java though is for Web Applets, why anyone would want to use it for anything else is beyond me!
Microsoft sold Visual Test to Rational a few years ago. I'm only vaguely familiar with the product, so I'm not sure what effect it had on its popularity.
Sun only support first-tier ports of the JDK to Solaris and (grudgingly) win32. Why won't they port to linux? FreeBSD? I'll tell you why - they aren't interested in seeing the language shine on these platforms.
Java exists to bolster Sun's dying "end-to-end" support model (hardware, OS, and now a language!).
Perl and python have far more cross-platform support - larry and guido don't have an OS axe to grind.
And object-orientation has been the trend in language design, at least officially, for a while.
Of what decade? Most recent work has demonstrated the efficacy of coupling a system language (C/C++) with a scripting language (perl, python, tcl). You'll notice that this is how a lot of linux/bsd people get real work done.
Object-orientation is the most oversold programmign technology in the last twenty years.
I've used it to my advantage before
Neither have most other people. In fact, most people just create a bigger hairball mess by trying to create whiz-bang object hierarchies. OO may be many things, but it is not a productivity enhancing technology.
I remember Microsoft "recruiting" the Danish guy from Borland who came up with Delphi. He was going to work on Visual J++. Any status on that yet?
-------
Warning: Slashdot may contain traces of nuts.
So the cross platform support is merely a figment of my imagination as I run applets/applications on any platform with a JVM ? (oh yeah, doesn't perl require the binaries etc to be available on the target platform ?)
>its strict adherence to object-orientation demonstrates an obvious misunderstanding of trends in language design.
This is a troll, right ? It has to be. Speaking with my Hardware Description language hat on, the EDA community appears to be trying to get an Object Orientated varaint of VHDL up and running ASAP, a clear counter example...
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.
Sheesh...
>>its strict adherence to object-orientation
What strict adherence? Dont know if you have used the language but there is no truth in your argument. How does java restrict you from writing non-oop code?
To me I would suspect that MS have realised that they screwed up with J++, ever since they decided to ignore the whole 'any platform' idea.
Selling the rights to a competitor makes them look good, especially in the anti-trust spotlight. It wouldn't surprise me if they drop support for it, and relace it with something of their own.
Then, when J++ becomes defunct, they can say 'Hey, we gave them a fair chance, we can't help it if people preferred our products...'
I dunno, but I expect a platform independent realise from them to compete with Java. They couldn't seriously do so with J++, so they dumped it.
Or so I think...
-Feargal Reilly.
"A goldfish was his muse, eternally amused"
"A goldfish was his muse, eternally amused"
see subject.
Rational is not owned by Microsoft.
First of all the article calls Rational software a "tools rival." Hhmmm.... I wonder how you can be a rival and a be in a strategic alliance at the same time? This allaince was started back in 1996 and renewed July of this year.
My take: They have a vested in interest in Microsoft surviving its probelms intact. Rational's website tauts MS as a "powerhouse" in the industry and refers to this as a "Good Thing" TM. Rational Software will be able to develop J++ along the same lines as Microsoft but w/o all the "restarints." Back to square one Sun.
Check for yourself:
Proof
Corporate intrigue...
nothing excels in every environment
I for one am a little freaked out...
1. i see a lot of complaints about j++ sucking. I have used many ides for java, and J++ is by far my favorite. I wonder how many complainers have used it, and how many are letting the proprietary extended java issues (which truly do suck) and microsoft hatred (for valid reasons, for sure) color their perceptions...
I do web development, and for the last few years, unfortunately it always seems to be on IIS using SQL server. I nearly exclusively these days use J++ / COM to build all my business objects. J++ is the only game in town to do java + com. I would rather shoot myself in the head than use VB or C++ at this point.
Interdev is a fine product also, IMHO. All the visual studio apps are so integrated, i wonder if that will continue. I hope that rational takes over the development, but somehow moves forward in lockstep with visual studio...
I have also invested quite a bit of effort in building tools to help my development, which I really do not want to have to throw away.
I think that Microsoft has essentially decided that their main thrust in the distributed web application space (which is how they now view where Java is competing with them) is going to be SOAP -- XML-based RPC, that is.
In other words, Microsoft couldn't corrupt the platform-independent application space, so they'll ignore it and instead try to dominate (by being there first, for now; later they'll no doubt try the embrace-and-extend ploy) internet distributed applications by setting and backing some new standards. Visual Studio 7 will do the whole visual builder/wizard/etc. tools for building a distributed app using SOAP as the glue.
Microsoft has another variation on the embrace-and-extend strategy going on in the XML and SOAP space: propose a standard, implement the proposal and deliver it in products BEFORE W3C and/or IETF is finished with it, and then take their time bringing their software up to the standard so as to sow confusion as to just what is the standard and whether to go with the real standard or Microsoft's pre-standard proposal version or what. The goal, of course, is to make the Microsoft version the de facto standard at the same time they can claim to support open standards. Nifty, huh?
udin
As the article says, the next version of M$ Visual Studio will rely heavily on XML and will probably forget about Java.
At first, I didn't think much about this. But now I have bad feelings about M$ using XML. Sure, XML is a nice standard and I like many of its applications. But XML is only a markup language; this is not a real programming language. You can use standards such as the Document Object Model DOM (not to be confused with M$'s proprietary COM) to describe in XML (or in an XML derivative) how some actions should be performed on a document, but this is a limited kind of programming.
So if a programmer wants to get something powerful out of XML, the best solution is to define a XML-based markup language that allows you to embed calls to some system-specific components into your documents. And then you can say: "Look at this great set of applications that I just released! They are all based on XML, which is an open standard." That's nice, except that the XML derivative used by these applications is nothing but a glue around some proprietary components that will not work on any other system.
I don't know what M$ is planning when they are focusing on XML and dropping Java. But it could very well be that they use an open standard as a cover for producing more non-portable stuff that will run on nothing else but Windows (because their XML derivative will require Active X, DCOM, and so on). At least with Java, there was some hope to have portable applications, even if M$ tried to lock the developers into Windows-specific Java extensions...
-Raphaël
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?
http://www.developmentor.com/soap/
http://msdn.microso ft.com/workshop/xml/general/soaptemplate.asp
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?
I never saw the need to create a new language to have a common platform for writing GUI apps. A new language wasn't needed for that. All that was needed was ISO/ANSI whatever STANDARD library, so you could use #include and now carry out your "write once, run anywhere" philosophy. Why did we need Java?
I'm confused.. How can you define Java as non-portable? Code once, run anywhere, because of the Virtual Machine architecture. You aren't compiling for a Linux/BSD/Win box, you compile for a JavaVM box. And the Linux/BSD/Win system emulates the VM.
Means a little speed hit, but not a huge one. People spouting 'Java is slooooooow' are generally those who think that that long delay when Netscape loads Java Applets is Java's fault. And what do you mean OOP isn't a trend in language design? You're just spouting gibberish.
Java isn't the perfect language. It is closed, that much is all too obvious. And were it to be opened, it would only be semi-open, under the Sun Community license.
Microsoft dropped this one simply because it wasn't making enough money. Microsoft customers were encouraged to start using Digital Visual Fortran.
It could be a simple at that: a straightforwoard business decision for Microsoft.
You can make a language that does whatever you want, as long as you don't call it "Java." That's a trademark of Sun's. If Rational wants to produce something that's called "Java," they have to play by Sun's rules, just like Microsoft.
What Microsoft is doing to "break Java" is investing in Kaffe. Kaffe is a JVM, but it isn't called Java and doesn't bear and Sun certifications. If Microsoft can get to a point where would-be Java developers start using some kind of proprietary twist to Kaffe, they can screw up the Java world. Good luck to 'em.
For instance, there will need to be a "compression extension" because XML is verbose, thus making messages large.
Thus requiring an extension so that messaging can be managed by MTS and/or MSMQ, or WTCTNY (Whatever They Call Them Next Year).
None of the technologies are inherently a problem:
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...
If you're not part of the solution, you're part of the precipitate.
MOUTHS that talk and talk and talk... but the results speak for themselves. oh yeah, the names are big, real big...
It looks like they've given up trying to pollute, I mean "innovate" Java. What worries me is this:
I wonder if XML will stand up to Microsoft "innovation" the way Java has?Cheers,
Justin
"My cat's breath smells like cat food." - The Tao of Ralph Wiggum.
I'd rather have Sun attempt to tell me why, thanks, but don't tell me you can't find a good Java VM. There are tons of those little suckers! It would be nice if Sun really did open the source to something (especially Java) to show support for open source and more importantly open standards. But they want to control the standards, and I think that will be their downfall. Heck, we can't even handle standards for a simple, fake markup language like HTML.
:)
Perl and Python can be ported by independent parties that show the interest to do so, instead of depending on one central company. But at least the spec for Java is open...
I agree, I tend to use C and shell script myself, and it's pretty handy. I don't really like python or tcl, and perl syntactically annoys the piss out of me, but eventually I'll either find or come up with a fast scripting language that I like, or just stick to C.
I admit that object hierarchies have to be very carefully designed. I think objects are C++ and Java's way of letting you shoot yourself in the foot, when C only had pointers for that. However, this doesn't mean that pointers and objects aren't useful. Rather, the programmer must be more careful in the "design" phase. Which doesn't happen often, if we can help it.
---
pb Reply or e-mail rather than vaguely moderate.
pb Reply or e-mail; don't vaguely moderate.
Here's how I think this thing is working..
MS hears about Java and thinks "Oh no, it dosn't need Windows, it's a threat." In response they use there typical strategy of making a similar, but incompatible, product in hopes that people adopt that and are then stuck using it. In this case J++. J++ isn't as succesful as they had hoped, so what do they do? Cut there losses, sell it off, and redirect efforts. How do they do it? Well.. Java lets apps run cross platform across networks. You don't "need" Windows. So now they are focusing on a new way achieving that same goal, without Java. If they play there cards right well all soon have to be using EI just to browse the web. Ehhh.
Busy, busy, busy...
Uh, maybe everything having to be in a class might have something to do with it.
Most serious language designers realize that OO is now a highly oversold technology. See articles by Ousterhout at Scriptics.com, or a recent interview with STL creator Stepanov.
Actually, Active X is starting to come back. I've written client side Active X into several intranets, because with IE as the standard (ie: Netsacpe being gone), Active X is a good solution for intranets. When Netscape is more gone from the public arena, we'll start to see Active X on the Web at large.
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.
s/J++/Java/
You're right - you are confused. The promise of java portability is just a joke to anyone who has actually tried to depend on it.
Does that mean we can look forward to Microsoft playing the "800 pound gorilla" in the XML world? Seeing their effect on Java (fortunately Sun is even a bigger gorilla in that arena), I sure hope not.
I think it's not too late for Java (fortunately) to reach it's true potential as a portable, network friendly language. Considering its relative youth as a language, it would still seem to have some growth potential, despite Microsoft's muddying of the waters.
Now all Sun has to do is release it to a standards organization and open source it...
As a web developer that does both server side and client side development, I got sick and tired of using Visual Interdev for HTML/Javascript/Applets/client side stuff, and another IDE for any backend (be it VB, Java, or C++). Also, I happen to like J++/Visual interdev as an IDE. So when my latest project was decided to be powered by Java, I put in some time and wrote an extension to the J++ IDE to allow compilation of Pure Java(tm). So now, I can do all my development in one IDE, and compile my Java and not be tied to MS! That's the good news; Microsoft's products are extensible. In fact, I used the proprietary java-extensions to do the extension. The IDE warned me that it was not pure, but I did it anyway (could have done it in vb or c++, but I chose java). The bad news: microsoft does a really poor job of documenting the extension API. If the documention does in fact exist, most of the time, it is wrong. Luckily, intellisense and the object browser saved me. Overall, I think the extension took me twice as long as it should have because of the crappy docs.
I don't know, I like writing in Java, having used it in the past. But is seems to be too unstable and unportable to be useful for any serious development projects. I guess I'm tired of hearing about how Java can save the world. You know, that would be nice, but can't we just get it ported and stable first.
>OO may be many things, but it is not a productivity enhancing technology.
I beg to differ on this statement. The learning curve on utilizing a library is greatly reduced when numerous similar methods/functions are abstracted into a single base class method and then accessed through polymorphism. There are that many fewer functions to keep a handle on. Then there's code maintenance. Procedural programs can be easy to follow if they're well documented, but when I'm looking at someone else's code, class declarations so much more readily portray what a segment of code is supposed to do.
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.
www.HearMySoulSpeak.com
Don't forget about Cool, Microsoft's rumored clean-room Java knock-off.
Waiting for the other shoe to drop...
-- Brian
The most rabid believers in American Exceptionalism are the exact same people whose policies are destroying it.
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.
Well, partly because they've given their source code to the Blackdown group who is doing a great job. If you don't like their port, you can always use IBM's.
I'll tell you why - they aren't interested in seeing the language shine on [Linux et al].
That's funny. They're hiring Linux developers.
OO ... is not a productivity enhancing technology.
Any technology can suck if you implement it badly. Done right, OO is extremely productive. Don't blame OO because you can't get it right.
I realize that as a Slashdot reader, this information may be new to you. Maybe you should check other sources before spewing such ignorant crap.
You can find a VM, but finding a good one isn't so easy. Sun won't port their latest technology to alternative platforms that challenge Solaris (once again, they will for Win32, only grudgingly, as they know they'd be toast otherwise).
Perl and Python can be ported by independent parties that show the interest to do so, instead of depending on one central company. But at least the spec for Java is open...
Then why are all of these companies forced to do all this "cleanroom" development???? The Sun license is a crock. Java is not open. Even the Java Lobby (the Sun fan club) has derided Sun for this.
However, this doesn't mean that pointers and objects aren't useful.
Agreed! But at least C++ lets you choose whether you want to use them or not. In Java, its OO or nothing. How will Java survive if people decide OO isn't useful? I like multi-praradigm languages as I can choose the paradigm I like - OO, functional, procedural, whatever.
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 <stdgui.h> would have been any more standard than what they did to Java?
-- Alastair
I think its performance bites too, but I'm comparing it to C. Compared to Python, Java looks like a speed freak.
Right... but Python is a hell of a lot easier to write (and Perl, according to Kernighan and Pike (in TPOP), runs almost as fast as C). One of the reasons I don't like Java is that you write in a fairly low-level language (C,C++, etc) but get the performance of an interpreted lang (Python, Lisp, etc). Doesn't seem like a good tradeoff to me.
People talk about the hardware Sun's doing which are specially designed for Java, and how fast is will be. I have news for those people: anything is fast if it's done in dedicated hardware. Sheesh.
And object-orientation has been the trend in language design, at least officially, for a while.
One of the things I dislike about Java is the fact that it forces OO only code. Sometimes all you need is a simple function. Not to mention the lack of templates (though IIRC the keyword generic is reserved so they can add it in later).
In the previous comments people have mentioned that MS is trying to embrace and extend ( therefore corrupt ) XML. I think that is absolutely true. But as a developer who is interested in using XML today, I have little choice but to warily go along. MS has the best tools support for XML. IE is the only browser I know with any XML support. It also has some XSL support which they are providing while XSL gets finalized in W3C. They seem totally comitted to XML 2.0 compliance and I guess they will probably get there much before Mozilla. They also throw you a cheesy XML notepad for free. They have good stuff on their web site for XML resources/tutorials/business-applications etc. In this case, even though I am interested in getting XML to work primarily on a non-windows platform, I HAVE to accept the MS paradigm and hope to keep my implementation vendor independent.
why can't we get Java2 VMs [on Linux] Probably because you're too lazy or stupid to download one? Here's a site. Booch did not write Design Patterns. Not by himself, no. There was also Gamma, Helm, Johnson and Vlissides. You may look on Amazon.com if you aren't too braindead to operate a web browser.
Are you on crack? Java is not the language of the future. It can barely do things now! Unless you have an obscenely fast computer, java is slow. Not just a little slow. It's WAY slow. Have you ever used a UI done in Java? And no, not the little cheezy things, the real deal. I worked on a GIS project that used a Java front end - GUI a la MFC - and no matter what we tried, there was always (unacceptable) lag.
Java is an elegant, beautiful lanuage that doesn't work in practice. If I can speed things up an order of magnitude with C++, can you guess which language I'm going to pick? Hell, C++ can even be nice an platform independant with some careful design and use of nice toolkits like GTK. (For example, Mozilla!)
When's the last time you used a Java app on a daily basis? Do you use a java made web browser? Office tool? I don't think so.
Java is kinda like Rose - they're a good match, because neither of them really cut it in the trenches. UML designs rock until changes start to happen between the theoretical and the ideal - and changes happen fast when $hit isn't working and your manager is breathing down your neck because of deadlines.
So, in effect, "who cares". I use what works, and Visual J++ isn't on that list. Let me know when we have a nice IDE for C++ on Linux.. something the gnome people should be pouring their heart into! :)
Kudos... (rant off)
..don't panic
Yes, we've all read the forward from Booch's book. Now go out there and try putting that into practice in a 30k line program.
This subtitle implies that some sort of major "plug" is being pulled on Java because Microsoft is snubbing it. Microsoft has never supported Linux. I suppose that means it's DOA.
jini USES rmi, your trollness. anyway, java is a moving target because the whole friggin it universe is gravitating towards it. check out almost every new ecommerce software startup and you'll notice theyre using java, ejb, xml. slashdot readers need to get over this anti-java lunacy. if you don't like it, use c/perl/whatever but still if you don't recognize the momentum it has you're crazy.
-- your knees hurt, don't they?
Really? I've been in developer teams that have done several 50.000+ line applications that were ported from NT to Linux, from one database to another simply by changing the JDBC driver. Swing is highly portable. If you do things wrong, use absolute positioning, hard code path and drive separators, don't understand threading issues on various OS's etc., sure, you're going to have problems.
... so what's your point? This notion is to move forward, not backwards. I know, it's hard to adopt new ways of thinking. Either adapt or be left in the kiddie pool.
Sun only support first-tier ports of the JDK to Solaris and (grudgingly) win32. Why won't they port to linux? FreeBSD? I'll tell you why - they aren't interested in seeing the language
shine on these platforms.
That's interesting, considering Sun's JVMs usually show up first on win32, then Solaris, and they've been helping Blackdown port JDK1.2 to Linux. Plus, if you don't like Sun, check out IBM's JDK Plans. They're planning to have a JDK1.3 compatible JVM running on linux by 1Q 2000. Given that the 1.1.8 JVM from IBM on linux is the fastest JVM around, this sounds like a Good Thing to me...
Also, just because you don't understand OOP doesn't mean it's not the best thing running...
It's funny how people think there is one paradigm solution for every programming problem. C rocks and I'll never use anything else! Perl rules!! However, every language has its applications.
In the case of Java, it's a great language for creating GUI applications without having to work at the OS level. Would I want to write a driver in Java? Heck no that's where C is best. However, I would rather write a GUI application in Java than in C (although C was fine for this purpose for years).
In the case of GUI applications, OO works very well. Again, I would be reluctant to write OS level code (e.g., drivers) in an OO language; this is where a procedural language works best.
Just my 2 cents...
Microsoft, taking the Language out of HTML and the Expert out of JPEG
I tried to reverse a body of code--mostly flat c++--using rational, and their diagram, even after applying the layout algorithms, was completely illegible. I did the same thing in TogetherJ--a uml tool written in JAVA--and it was legible, and speedily produced. I am quite disapointed, as libraries are available for improving this. I do hope, that J++ will get more 'open'
Remember this...no eternal reward will forgive us now for wasting the dawn....(jim morrison)
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.
You've missed the point of open source entirely. Since Java is closed, they can move the language wherever they like. If it messes you up (and before you reply, numerous people have been burned by the changes from Java 1.x to 2.x), Sun doesn't care.
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
DO NOT DISTURB THE SE
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).
-- Alastair
Like apache, perl, and linux, and you'll find very little in the way of OO. You'd think if it was such hot stuff, it would have shown up in these popular open source tools by now.
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.
Save the whales. Feed the hungry. Free the mallocs.
Microsoft are rumoured to have been developing a language called COOL which is a cross between Java and C++, with the ability to use COM and other MS technologies built into the language.
Perhaps they are selling J++ because they have no more use for it, and think they might as well get some money from it.
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.
Amen..
cpeterso
You forgot Ivar Jacobson - it was his company, Objectory, that merged with Rational. The three are referred to as 'the three amigos.'
> You mean like former Sun fellow and TCL developer John Ousterhout, who has been severely critical of OO benefits> How about A. Stepanov, who has trashed OO in a couple of interview? How about the Usenix conference talk in 94 where OO was severely trashed?
Awesome, FINALLY a critical analysis of OO{D|P}.
Could somone provide some links so I cound research this further.
Thx.
""Design Patterns" by Booch is the hottest CS book out now."
So, does Booch have anything new to say, or does he just repackage the same old O-O stuff he's been peddling for years?
Show me real life code that is written once and runs everywhere beyond a trivial 2 button app. Show me a word processor or a spreadsheet written in Java. Why not? Is Java not good enough? Could it be that it uses 10 times as much memory as C or C++? Hmmm... interesting.
i have been reading these posts pro and con for OOP. all the pro people have given examples of why OOP is a good design to follow, yet all the anti OOP people have said "It sux!!" can any of the anti-oop people give some facts why OOP is so bad. i have used both, and under the right conditions, one fits better than the other. i personally do not see how one is superior to the other. but can someone please explain to me why OOPS is all around bad and "old fashioned"?
I could check if I wasn't lazy, but does anyone know off the top of their head what organization (if any) defines this kind of stuff?
Jack Valenti and the MPAA are to technology as the Boston strangler is to the woman home alone
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.
Hmm...
-- Alastair
Running downloaded programs in a secure environment should the responsibility of the OS downloading the applet. Building this into the language is a kluge for OSes with no protection of their own (Win 3x/9x). I can downlaod and run binary executables on my linux box as user playpen and chrooted to some harmless dir and it ain't gonna hurt anything. Under windows... EVERYTHING runs as the superuser(!). Now who has the problem with security for running web applets again?
Microsoft also dealt another more indirect blow to the Java initiative by supporting HPs bluetooth technology.
For those who don't know, both Jini and Bluetooth try to provide "on-the-fly" networking for [insert generic appliance/device here]. Bluetooth seems a little more light-weight, but Jini offers more flexibility (eg: not limited to a scant 8 devices on the network...). With MS backing, I'm sure we'll see a great deal more manufacturers following suit (not that Jini doesn't have backers -- it's just that MS tends to push everything down peoples' throats...).
Looking at the Java initiative now, I can't help but think "it could've been so nice...". With the advances seen in third party runtime environments, Java *did* (and hopefully does) have a good chance at filling a greatly needed market for cross-platform compatibility. I really hope that Sun gets their act together and opens the language up.
We can also cross our fingers and hope that Transmeta has a nice surprise for us on in the new year...
One of the things I dislike about Java is the fact that it forces OO only code.
class F { }That's a "functional approach" to java -- if that's what you like.
Make sure you are comparing apples to apples. Java as a GUI? Dunno, definitely not the language of the present, but I'm not going to count it out. I really don't have an opinion on Java as a GUI because I am generally not a client-side developer. Java as a GUI, and therefore as an application that I would tend to use on a daily basis, is completely uninteresting to me as a developer or user.
Java on the server? Absolutely very likely to be the language of the future (unless Microsoft wins and VB owns the server--don't laugh at this, look into it and be afraid), and is really turning out to be the language of the present for enterprise server applications. Java's benefits for server applications are well documented and don't need to be rehashed by me. Do a little research on Java on the server, and maybe you'll be surprised. Then again, maybe you have done research, and have seen results that are completely the opposite of my experience--I don't know anything about you, but you sound like you do not know much about the server end of things.
Remember, that asking me when is the last time I used a Java app on a daily basis is a misleading question. Enterprise applications are not applications that you typically use at home (but see below). They are the applications that the service rep uses to take your order for a new cell phone or a new mutual fund. Those types of applications are using and will increasingly use Java for the server end, whether it is on a application server or in the database.
Additionally, be careful because with your question, as any given web site you visit on a daily basis may use Java on the back end, particularly financial institutions or companies that access legacy data.
It seems there are editors for everyones tastes:
(All of the following have CodeGuide type technology)
Just Editing: I have used a program called CodeGuide (Sorry, don't have the URL). I loved it! Pure Java, pretty fast. Project Management as well, supposedly they have just came out with a new version too. It is definately worth Getting.
CodeWarrior might have CodeGuide, not sure (Could someone confirm this??)
Full Environment: NetBeans, Visual Age Java. (Soon to be JBuilder). I was very frustrated with the speed of NetBeans and when I gave Visual Age 3.0 a try, was quite impressed with the speed and flexibility it showed. Its debuging environment is GREAT too.
The learning curve on Visual Age was a bit gnarly , but after I figured out the little quarks and tricks I am not sure that I can go back.
I do only server side development (No Swing/AWT).. so these suggestions where biassed to that environment. I am not sure how Visual Age really stands up with the GUI builder.
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.
I'm not sure why MS would sell j++ but there seems to be another bit of info here that is relevant; The MS crew have spun off a company called Transvirtual Tech. that will be introducing a product called "Kaffe" which is some kind of MS crippled java clone(let's give them the benefit of the doubt about the similarity to Transmeta)
Check his story at zdnet: the story
Is MS selling j++ so they can get the cash before they dash to this new kaffe? It's an interesting twist.
>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
I thought this was the most intersting item in the article. DCOM going away is a Good Thing, since it's proprietary and, in an attempt to be based on COM, broken. But who'd have thought of going to XML/HTTP instead of something like Corba?
So what sorts of integration will be possible with Microsoft products that use the new standards? Like it or not, being able to communicate with MS products is an important and perhaps necessary feature that alternative software can provide to help drag people away from their habitual use of MS's stuff.
The cross-platform possibilities are also interesting.--Chouser
--Chouser
"To stay young requires unceasing cultivation of the ability to unlearn old falsehoods." -LL
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.
Three Step Plan:
1. Take over the world.
2. Get a lot of cookies.
3. Eat the cookies.
I work for one of the big banks and we are seeing huge benefits from moving to Java on the server side...both in design/development speed/maintainability and (less so) performance. On the GUI side we're yet to commit one way or the other - AWT is pretty bad but Swing is looking very promising. Watch this space - just because Jave isn't everything for everyone now doesn't mean it won't be - that's what "language of the future" means!
---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"
How exactly do you see VB taking over the server? As far as I know VB is a win32 only technology, so that means NT only, no UNIX. Maybe your assuming NT dominance in the future? Just wondering what you saw that made you so scared.........
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:
http://www.2lkit.com/
I haven't had to chance to try it yet (just heard about it), but it seems interesting. Maybe Rational should buy these guys. =)
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.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
OO works great in theory. And properly done, it is a solid technology for some tasks. But sooner or later the layers of abstraction must fall somewhat, and when you get to coding (supposedly the last week or so of development if you will believe OO rhetoric) you must actually write real algorithms, procedures, and deal with real data structures. And if all you've learned is OO-heavy but code-anemic theory books like Design Patterns (admittedly one of my favorite CS books ever, but...) then you will not know how to do anything once coding time comes. In addition, if you do learn how to work within a specific OO toolset--say, Smalltalk--without knowing at least some of how it works inside and how to do things yourself, you'll be hamstrung if you ever need to work in a non-OO environment (hint: anything real and not related to the web or graphical user interfaces.)
Teaching only OO, as some schools have had the lack of insight to do, produces people who can work only with OO and show only an abstract familiarity with the core ideas of computer science and programming. After all, that abstracted version is all OO requires you to know.
I have seen several friends just getting into CS curricula freak out because at the University of Massachusetts in Boston, they often place you in Java first, as an intro. They get into OO the first week. These concepts might make little sense given that they are built upon, and are a modification of, the older structured ideas. Regardless of OO's inherent validity, it does not become immediately clear what "encapsulation of algorithms" and "abstract data types" are if you don't know what algorithms and data types are to begin with.
Then again, I'm one of those "programming is an art" kind of people, so take this with a grain of salt. But IMO (and in my friends' opinion too) it does not make sense to teach Java before teaching "real" data structures and algorithms, because these tools sharpen your mind to the point where you are ready to deal with the abstract level (which deliberately hides how they work.) Like teaching calc before algebra, almost.
I used Rose98 (not Rose98i), and it's quite nice. Has a lot of small glitches in display and automatic layout, but not enough problems to be really annoying.
:-)
Overall works like you expect, or maybe it's better to expect it to work like it does, to avoid a nervous breakdown
And the deletion issue: DEL is for removing from the current display (diagram), Control-D for removing from the model (this is the really strong removal). Similar features are in other design tools in the same class, e.g. Power Designer: when you delete an object it shows a dialog to choose between the two modes of deletion. If you think about this, Rationel Rose's way may be more convenient. YMMV.
How quickly we forget what made Windows popular in the first place... Tools! (It certainly wasn't the Win 3.1 interface.) Microsoft has always supported developers fantastically. It's a symbiotic relationship - they get to control the standards and the platform, and we write tons of apps and make their platform ubiquitous. We get great documentation and productive tools, they get sales.
Since Sun now controls the standards (come on - you know they do), Microsoft wants no part in it. If they can't embrace, extend, and... well, you know. What is in it for them to promote Java? They are going to take their ball and go home! The last thing they want is to make it easy for another company to muscle in on *their* platform.
Don't get me wrong. I use the MS JVM on my IIS servers to host several objects written in Java, and I access those components in ASPs as COM objects. It's easy and convienent.
BUT, there is a *reason* I used Java to make COM objects (instead of C++ or VB)... because I knew someday M$ would yank the Java chain. How could I know this? M$ fought java every step of the way... first with web browsers (IE 2.0 didn't support Java), then with VBScript, then with 'ActiveX' (remember how they claimed it was designed for networks simply by dumping a few of the weighty COM interfaces), then by the old standby embrace and extend. I chose Java because I didn't want to get tied to M$'s 'technology of the month' as they thrashed over Java.
But so what? It is not outside the realm of possibility for me to port ~1,000 ASP pages to Linux/Apache/TowerJ/PHP because of the technologies I chose: SQL, Java, COM/Javabeans, and little bit of forethought. That's the great thing about *real* standards.
Today, I am more comfortable using Java knowing that the irresponsible and greedy hands of Bill Gates are out of the cookie jar. I just hope the developers get the documentation and support they need to succeed with Java - even on M$ platforms.
-Computers hate being anthropomorphized.
Sun doesn't care? How do you know this? If Sun pissess off all their developers, their technologies are sunk. The changes from 1.x to 2.x were no doubt put into place after much thought about the advantages that it gives to developers. Sun has to care what developers think, if they don't they get cast aside for better things.
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.
It still bugs me the way MS changed Berkeley sockets when they implimented them in Winx
Really? That's funny, because Microsoft didn't come up with the Winsock spec. It was created by an independant consortium (i.e. a standards body). So, you're complaining that MS went the open standards route?
bullshit
.. 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.
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,
Jilles
Now: Why does this matter?
No. Standards are open.
Java's libraries are proprietary developments handed down from Sun, with a non-open license.
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).
Jilles
Microsoft will still be distributing their non-compliant Java Virtual Machine with every copy of MSIE and Windows 98 that goes out the door. So you still have the problem of no built-in support for RMI or JNI. Even if Rational changes J++ into a completely standards-compliant development tool, It's the JVM that matters.
Obviously. But perl and python programmers get these benefits without tying themselves to a vendor...a vendor that has demonstrated that they have no interest in opening the language.
Just because Java, or perl, or python, isn't dumping core, isn't a sign of success. I've seen some total crap that should have cored - it would have made the developer go back and rewrite it correctly!
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 www.scriptics.com
Jilles
Well they haven't showed their caring side yet...hence the rampant GUI changes.
They're also not in a position to threaten Java compatibility, as Microsoft was. If they produce nonstandard garbage à la Visual J++, there's not even a remote chance anyone will use it. In short, there's nothing to worry about.
Hands in my pocket
While Visual SlickEdit is not cheap, the quality of the product and the benefits if you do lots of code development (especially on multiple projects) are well worth the price.
Note that the Linux version is cheaper than most of the other platform versions. (It used to be even cheaper)
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.
Jilles
Hell with backward compatibilty. Sun has made a great work with the Java language so far. If AWT doesnt work, replace it! I dont want Java to need aeons to change something that can be improved. Java is becoming a mature language, most of the guys criticising it havent written more than 20 lines of java.
---> Did you know Linux stands for Linux Is Not UniX ?
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).
Jilles
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.
Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
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.
Jilles
If you put your cursor on the name of an object and press Ctrl-Space in VAJ you will get a drop down list of attributes and methods for that object which you can select from. Plus VAJ runs on Linux if you have glibc 2.1.
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.
Jilles
If that is an accurate description of what happened, Microsoft will retain control over the direction and APIs in Visual J++.
Actually, it's a class of stereotype Utility in UML. There is no escaping the powers of OO. :-P
We are OMG of Boochrg. Resistance is not a valid use case. You will be assUMLated.
Get the damn language spec and virtual machine specification and get coding, don't expect to get source handed to you like bloody social security. Or trink a leetle Kaffe to get better.
(I assume e.g. C++ isn't open either, then, since AT&T didn't release their source, and you'd have to pay ISO a hefty sum for the standard. But then you'll probably start yabbing about GCC, and I'll cover my ears just like you.)
Joe Morse
http://www.thehitpark.com
"You done taken a wrong turn."
-Bill McKinney, in Deliverance
One of the three witnesses that Microsoft called up during the trial was Rational's Michael Devlin. Rational produces software to support software development teams. I greatly admire their ideas on this matter. Aside from component Rational Rose, for which they are famous, they base software on components like MS Word, MS Project and MS Excel. Even though this makes their software useless for me - I don't run MS platforms - I respect the skill of Rational's engineers. I don't see how buying J++ would benefit Rational's business though. They have to lick MS's boots as part of their business dependency, but paying for something that is outside the focus of their business seems pretty stupid to me. I wonder what their, eh, rationale is. After dropping support for Windows on Alpha - (Compaq dropping support? - Hey, who owns Windows anyway?) - it is interesting that Microsoft is once more dropping something that some people have trusted, possibly because Microsoft's name backed it up. Clearly, Microsoft's size doesn't guarantee that customers that allowed themselves to become locked into to MS specific technology will find this technology supported on the long term. It can be dropped suddenly and without announcement. How many people will now be able to say: "I got fired for choosing Microsoft"?
-cjr
it does not make sense to teach Java before teaching "real" data structures and algorithms, because these tools sharpen your mind to the point where you are ready to deal with the abstract level (which deliberately hides how they work.) Like teaching calc before algebra, almost.
My first semester CS class was in Java, the second semester was in Dylan (Lisp derivative), third semester had a class using an assembly language and logic gates (we built a cpu) and then, finally, fourth semester did I actually take a "Data strutures and Algorithms" class, 400-level. The philosphy of my school is to teach you things as abstractly as possible, so you can apply them towards specific stuff, the language really wasn't that important. Perhaps its not very practical, but it is the theoritical side of CS that made me fell in love with programming. And the side which I most consider as "art".
Please understand what C++ is all about, then judge and learn what suits your tasks best.
As long as there is no such thing as ISO Java I am going to stay miles away from it, although watching.
You are correct, VB on the server == Win2K
Microsoft is pushing Win2K with their COM+ middleware. If you follow middleware (specifically Roger Sessions) you might know that one of the major components of COM+ with Win2K is the use of VB on the server (as sort of a component type deal). I am certainly not hoping for Win2K dominance, but Microsoft certainly is, and they are in a better position than I am to do something about it. ;-)
If you think about the legions of VB programmers out there, Microsoft wants to turn them into instant middleware (i.e. application server) programmers. You and I know it's not that easy, but certainly Microsoft's apparent dropping of Java makes their intentions that much more clear, to me at least.
So what I am getting at is that if you were a suit type, and did not realize that server programmers are a different breed than VB programmers, maybe you think it really is that simple that your VB programmers now do not need to get trained in Object Oriented programming just to learn Java, you can use Win2K and COM+ and write servers in VB. *This* is what Microsoft is banking on. And they are going all over the country spreading that word to the suits in their slick Microsoft seminars, because the suits make many of the decisions.
It is certainly not a forgone conclusion that VB on the server will win--far from it. But Microsoft sure is going to make a run for it. If Microsoft wins the middle tier with Win2K, the game is over.
Have you ever used it on a large project? Rose sucks hard. Rose itself is somewhat unstable, and the add-on products for Rose are nearly unusable. The reverse engineering features are basically worthless, and the code generation is not as good as competing products. Also, Rose's support for UML is incomplete. It is a nice tool for generating class/object/component diagrams, but that is about it.
It's just not released yet. It encorporates WFC. It does garbage collection. That's about all I can say.
Anonymous for obvious reasons.
Their relationship is getting increasingly dubious for me. I wonder how much crossparticipation exists among their major stockholders.
Java the language and Java the VM have not changed in years. The language and VM came out of the box in a much more rigorously 'standardized' form than C++ has yet attained. The problem is all of the myriad API's and class libraries that Sun is continuing to churn out. Those provide the real platform for Java code to run with, and as long as Sun is doing the community source thing, you'll always have some risk when you make your code dependent on those API's.
But if you just want to code something in Java for use in a restricted environment, Java is as standardized as you could wish for. Just grab a copy of one of the numerous Java re-implementations and away you go.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
I use Rose every day also. It sucks. The core functionality (drawing and linking diagrams) is fairly decent, however they don't have complete support for any one modeling language. Also, their UI is somewhat quirky and the package is buggy. Unfortunately, they don't seem to be putting much effort into polishing the core functionality of Rose. Instead, they are spending their resources expanding their code generation and reverse engineering support as well as their add-on packages. Right now, those features and add-ons vary from alpha to beta quality, and aren't usable yet except in trivial cases where they aren't really needed.
You really should consider the bigger picture. Saying that Java/UML (Rational) can not cut it in the trenches is really rather daft. What you really mean is that you didn't properly design objects well enough at the beginning, and probably rushed into hacking code before you had a clear understanding of the problem. Your design quickly eroded into a clusterf*ck of intermingled objects and dependencies, and you had no way of knowing how it worked. Man if you can't get something designed an written using UML/Java, I hate to see what you come up with in C++. Do you use a lot of freind functions/classes in C++ ? The real problem is that OOA/OOD is really hard for many people to do. It takes vision, time, disipline, and patience. Things very few developers have.
Who cares what the 'language of the future is'. If you can't design well, your stuff will be crappy in any language.
Thank you for the link. I agree the firewall obviating RPC is a bad idea as the security limitations are not defined.
Look here. Search for "switching to NT".
As for Java's supposed OO strengths - the language design is laughably fractured in places. Please explain to me (with a straight face) why interger and Integer exist simultaneously.
I guess breaking APIs wasn't bad enough?
But if you just want to code something in Java for use in a restricted environment, Java is as standardized as you could wish for.
REPEAT AFTER ME:
JAVA IS NOT A STANDARD
Sun has thoroughly pissed all over the notion of standardising Java. Even JavaLobby (the "Sun Fan Club") raked them over the coals for this.
you think maybe that's why he typed it?
i think his name was Anders Heljsborg, or something like that. He was a hero of the Borlan Delphi community.
As I recall, MS staged a phony "technology expo" next to Borland, and when the engineers showed up, the hotel was full of recruiters. An illegal tactic -- "Brain Draining" -- and MS settled the court case at the last minute (as usual).
As I recall, Anders tried to stay at Borland, with Borland topping out at $3M/yr. in comensation, but MS offered $6M/yr, so Anders left for Redmond.
I think he was the lead (or some other high level) programmer for Visual Studio.
One of my friends uses Visual Studio all the time, mixing C++ and Java on the fly. Does this announcement mean no more Java in Visual Studio? He'll be bummed, his project is a big mix of the two.
one of the definitions of uml is 'whatever rose is capable of'.
.
the other is what jim rumbaugh feels like saying at the time.
.
there's room enough in the uml 'specs' to drive the eight fleet through...
Firstly OO unnecessarily complicates your code. OO languages have a huge number of syntactic elements. This means more stuff to forget or misuse. Simplicity is to be desired, not avoided. This is why C is still so popular - its simple. Compare using exceptions to simply returning 0 or 1 from a procedure. Which seems more simple to you? Which do you think is more efficient and wastes fewer resources?
Secondly, Consider the examples used in OO books like Booch. Do any of your problem sets map nicely into neat objects like that? For a number of people, particularly those who work on large projects, they do not.
Thirdly, consider code reuse. Most object hierarchies have so many interdependencies, that it makes it virtually impossible to reuse a single class. You end up dragging over an entire hierarchy. Maybe some class packages are better designed, but mostly you're going to see spaghetti.
Lastly, OO languages chew up memory. This is why all of the really important apps you use every day do not use things like polymorphism and multiple inheritance. They waste memory needlessly. This goes for C++ as well as Java...although C++ does far more to help you conserve resources (i.e., making virtual optional for functions).
Lastly, the technology has simply been oversold. The local bookstore has literally hundreds of OO books, which prescribe OO has the panacea of programming. If this is true, then once again, how come so few succesful open source projects make use of them? The answer to this is simply that OO has great allure for beginning programmers, but once you get some experience though, you start to see the snake oil for what it is - a great way to complicate your code, waste your time, and chew up more memory.
It basically says, ok, we're all going to talk to each other using words composed with this grammar.
The problem is, everybody makes up their own vocabulary, some people use double and triple negatives with differing interpretations, some talk through magnanimous runons, and some mumble only using incomplete--
There is nothing which prevents someone from obscuring their subset and licensing it out as though it's control were handed down with God's blessing.
Use whatever works, and don't be fooled by whatever is conveniently pronounced a standard.
Don't get me wrong, XML is great, and it is great there is so much support for this as a protocol, just don't get your hopes up on it ensuring interoperability.
I'd be interested in knowing what the memory footprint for BeOS is. I only ask this because I know C++ can chew up memory if improperly applied. I suppose the Be folks were smart enough to stay away from memory-killers like polymorphic behavior and exceptions.
So did I :-) shane
This is because Java is basically a language for idiots. It makes them write out everything verbosely (so they don't have to understand what is happening), and then sits them down in their little sandbox so they can't do anything dangerous like interact with their own hardware.
Java is maybe, MAYBE useful as a teaching language, because students are the only people who should be forced to put up with such limitations and unnecessary code verbosity.
All of these OO languages are retarded, with maybe Dylan as an exception.
Really???!!! Gee thats neato! I would have never have known that!!! Thanks for playing - you're not the only one who knows how to program in C
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).
Ha! OO programs are typically just as large as procedural ones. You've demonstrated nothing.
Although, since BeOS is closed-source, this is pure rumour : While BeOS presents OOP APIs, the core kernel is written in non-OO subset C++ and assembler, for speed purposes. This is similar to the AmigaOS on which BeOS is largely based. It too presented OOP APIs (BOOPSI - basic object oriented programming systems interface... the amiga always had cool names for things), but the core os was C and assembler (exept for dos.library, which was ported to C from BCPL in the 1.3->2.0 transition...)
Yes, we call that vaporware Billy!
Don't talk to me about whats going to be out in 2001. Right now linux and FreeBSD are ignored by Sun. For a reason.
Also, just because you don't understand OOP doesn't mean it's not the best thing running...
One day, when you get out of college, you'll have to write a real program for a real customer who actually gives a shit about performance. Come back and talk to us after you try pushing the Java solution on them.
the article does not state that they are switching to NT, or "junking perl". Maybe you read about that in "Design Patterns" by Grady Booch. Haha.
I really hope Topaz doesn't turn out to be a dog. Chip Salzenberg actually mentioned his own misgivings about choosing C++, but used some sound reasoning. I just hope he does a good job and it isn't too bloated/slow.
The three amigos are Grady Booch (author of "Object Oriented Analysis and Design"), James Rumbaugh (author of "Object-Oriented Modeling and Design" back when he was at GE), and Ivar Jacobson (author of "Object-Oriented Software Engineering: a Use Case Driven Approach).
Its impossible to write under 20 lines of Java. That verbose beast can't do anything useful in under 100 lines.
Must be some fundies doing the moderating...hehehe. shane
Which Sun can change at anytime, as Java is closed.
I assume e.g. C++ isn't open either
You mean ANSI C++?
This is because Java is basically a language for idiots. It makes them write out everything verbosely (so they don't have to understand what is happening), and then sits them down in their little sandbox so they can't do anything dangerous like interact with their own hardware.
Java is maybe, MAYBE useful as a teaching language, because students are the only people who should be forced to put up with such limitations and unnecessary code verbosity.
Guidelines for modern programming:
If you don't document your code, the next person to touch it should be allowed to use piano wire in new and interesting ways on you.
With modern auto-completion IDEs, large hard drives,etc, you should use meaningful names for things. There's no need for "fnPtrCnvInt" or "szMAnifI" where "itemCount" or "m_DockingState" will do instead. Same applies to method names and class names. The IDE will do the hard work for you if it's a reasonably recent one.
People who don't follow the points above, should be hung drawn, quartered, and only allowed to program for their own edification - that is, not professionally. Because ignoring code readability is a sure-fire way to get fired from any coding shop worth its salt.
If you're programming against hardware, use C or assembly (or a mix of C++, C and assembly if necessary). If you're programming against APIs, and never touch hardware, use anything you like (yes, including Java). If you really want to, you can write Java code against hardware as well - you just have to use J/Direct, JNI or RNI to talk to a C/C++ DLL to do the nitty-gritty work.
Simon
Coming soon - pyrogyra
I disagree that Java is a beautiful, elegant language. Scheme is elegant - Java is just dumbed-down programming that tries to make complicated OO features retarded enough so anyone can (mis)use them.
Yeah, see, over here in the real world, we're on schedules.
Thats why so little serious OO programming goes on here.
Yeah - now our servers can run slow too!
Sorry, but on the server, I want to lay hands on my gorgeous hardware. I don't want my server to be seen by a VM as equally potent as a palmpilot.
Yup - Sun will just keep piling crap into the JDK until everyone's convinced its good just because it weighs so much.
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... :-(
cpeterso
You mean:
Or could it simply be that Java isn't suited for REAL APPLICATIONS?
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.
Where the hell di you think Java started up? ON THE DESKTOP. You've fallen hook, line and sinker for Sun's feint into the Server market (where poor performance is easier to hide behind big iron, and network latencies remove the need for rapid response).
When you fail on the client, obviously you are going to market to the server.
Survey says - BZZZZT!
The computer of the future is a palm device with 8MB. If you can't fun it on that (and Java can't), you're toast.
Check the want ads sometime - no one is being this flippant about firing even the shittiest programmers. They're still worth their weight in gold, unfortunately...supply and demand being waht they are.
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.
pb Reply or e-mail; don't vaguely moderate.
Check the want ads sometime - no one is being this flippant about firing even the shittiest programmers. They're still worth their weight in gold, unfortunately...supply and demand being waht they are.
Sure... but you can imagine what problems are going to come down the pipe later for said companies...
As I said - any code shop worth their salt isn't going to put up for undocumented, "optimized", "job security" code.
Simon
Coming soon - pyrogyra
Furthermore, that lack of fit significantly reduces it's usefullness in many important real-world problems.
[Aside: the traditional world (legacy and business applications world so sneered at by geekdom) needs something like Java. For those who say "screw the traditional world" I would say... that's fine for you... but most of the value in today's software systems is in those legacy systems and will be for a long time. The Airline Reservation Systems, for example, were designed in mid 60's, coded in 360 assembly language, and are still the highest performing and most valuable OLTP systems in the civilian world.
Java started as a standalone software universe - originally intended to be an OS and a language for set top boxes (anyone who says it was a web innovation is clueless). Thus there were no concerns about inter-language interfaces - any other language was in a different computer and you interfaced via communications. Furthermore, this orientation towards a special purpose environment (embedded systems with a single vendor for all infrastructure software - language and OS) is hardly suitable for the general purpose world in which most of us would like to be able to use Java.
Many complex systems, and virtually all legacy systems, require languages to have straightforward linkages to each other. I suspect this is one of the reasons for the success of C++ - you get an object oriented language that drops gracefully into programs written in another language. But, one cannot do that gracefully when one of the languages runs in it's own virtual machine, and perceives itself to be the allocator of all resources (CPU, memory, etc). The latter approach violates principles long known to be useful in complex, long-lived systems.
For example, in our Unix environment we want to write new library functions in Java. Sorry.... doesn't work if you want to call them from C or C++ or any other programming language! Those functions live in their own JVM universe.
Microsoft, which really did innovate (in a blundering long term sort of way) with their component architecture, has trouble fitting Java into their model.
Also, since Java is owned by Sun, and Scott McNealy makes lots of noise about displacing Microsoft, Java has become a football in a game of macho posturing. This, combined with Sun's natural motivation to control it's own invention, creates poor incentives for the creation of a standard tool - especially one which is general purpose. It also leaves it's users just as dependent on a single vendor (Sun) as they are with their previous vendor (The Borg in Seattle).
Let's look at another issue: Java in browsers. Some years back I was erroneously led to believe (by all the hype, and by my own wishes) that Java was a great way to embed applications in the most ubiquitous of machine independent environments: the browser.
But look around... how many good apps are done that way? Not many. In fact, Sun *actively* discouraged the use of Java applets, informing user's that distributed applications should include installed Java applications, not applets. Sun and Netscape failed to create the real Microsoft killer (which Brad Silverberg of Microsoft also wanted to create, BTW) - a browser that was a *good* environment for sophisticated GUI applications. Sun wanted one to use it's GUI (which is not gracefully embedded in browsers... try printing an HTML page with an applet in it!). Netscape had other fish to fry. Nobody (except Microsoft, which was much smarter about this) recognized that real humans (as opposed to Silicon Valley geeks with T-1's to their homes) couldn't download applet's in a flash, and Java geeks didn't seem to understand that sophisticated applications take a *lot* of code - especially in big libraries. Of course, the Java propaganda about tiny applet's increased that confusion. Finally, the event handling and DOM models of the browser's were pathetic. Even today, IE5 (currently the most advanced widely available browser) is so buggy and incomplete that it is a nightmare environment for embedded apps.
So... Java on the web has been mostly reduced to cute little applets that animate a graphic or some other low-value features. Most major internet sites don't use it at all.
At the same time, Java doesn't fit inside of multi-language processes, so it isn't there.
The result... Java is a specialized tool... it works best when it works only with other Java. It is exclusive and closed, not inclusive and open. It is a very good and pleasing language, in a relatively weak environment.
And all of that is a great shame. I *want* the advantages of Java. I *want* to code in Java, not C or C++ or JavaScript or XSL or Perl or ....
But I cannot always wear the Java straightjacket that is required to make good use of Java!
Finally, I should comment that Java is being used to create very good applications. If one is able and willing to use Java under it's own terms, it is a powerful (if immature) tool and well worth a lot of enthusiam. But only If....
mesocyclonesd@tinyvital.com
The only good weather is bad weather.
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.
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.This system ... involves a lot of convoluted perl scripts...
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.
Morons.
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!).
... 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.
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
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.
D
----
I am sure a spin off is equally bound.
Let's face it, the fact that this utterly retarded tool got this far at all is a testament to the incredible marketing/PR team at Sun.
And you call us morons?
Whatever.
Looking at your other posts here, it doesn't appear that you have any clue what you are talking about.
By the way, the apache open source java tools are not ready for release. Once again, you have no clue what you are talking about.
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.
Jilles
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
ReadThe ReflectionEngine, a cyberpunk style n
Can I get perl for windows 9x? (that's about 80% of the computers on the net).
Java's already there.
ReadThe ReflectionEngine, a cyberpunk style n
Neither have most other people. In fact, most people just create a bigger hairball mess by trying to create whiz-bang object hierarchies. OO may be many things, but it is not a productivity enhancing technology.
Ug, I can't stand not doing OO, and I can't see why anyone can. Proc programing is just a mess.
ReadThe ReflectionEngine, a cyberpunk style n
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:( ))
ReadThe ReflectionEngine, a cyberpunk style n
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
ReadThe ReflectionEngine, a cyberpunk style n
. 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
ReadThe ReflectionEngine, a cyberpunk style n
At this point, VB may win on the server at least in those enterprises.
Microsoft is pushing very hard.
Just as "closed" as any other spec. Or what is your definition of "closed" in this regard? It's far easier to become part of the "Community" that steers Java than it is to become a member of the group that steers C++.
You mean ANSI C++?
Well, or the ISO equivalent. You know, the one with the steering group that seems obsessed with adding new features on every update... I think, because unlike the Java spec, I'll have to pay to get the C++ specs.
According to this CNet article, Microsoft offered this Delphi lead architect a $1.5 million signing bonus, a base salary of up to $200,000, and options to buy 75,000 shares of Microsoft stock. He was to become the Visual J++ lead architect.
Now, I'm curious. Will Anders stay with his VJ++ love child and transfer with it to Rational Software? Or will he go for the money and wait for his Microsoft options to vest? And what will he be working on? Exciting products like Visual C++ or COM?
-------
Warning: Slashdot may contain traces of nuts.
Hrmpf, the Dylan must have given me away. I am now convinced no one else uses it. Though now they switched to Scheme.
Oh my goodness, I know who you are!
(Ok, that might be slightly off-topic)
Have you tried IBM VisualAge? I've found it a very useful development environment, although it is a bit of a resource hog... Mind you I'm just a beginner, so I haven't done anything more than about 25 classes or so.
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 :)
All I know is, I installed J++ once and it managed to slow up my whole machine. I'm still waiting for the perfect Java IDE ...
Why should I repeat after you? I was explaining something via logic, what do I get for mindlessly chanting something?
Sun hasn't pissed all over the notion of standardizing Java. What they have pissed over is the notion of someone other than themselves having final say as to what is or is not Java, much as Microsoft has pissed over the notion of anyone else saying what Windows is. That's certainly a bit discomfiting, but the fact of the matter is, when you speak of 'ISO C++', you have to realize that the sort of linguistic features that are standardized by ISO for their C++ spec are already very firmly standardized in the Java Language Specification.
People who go on about Java standardization have never, to my satisfaction, explained what exactly they want to get out of Java standardization. When Microsoft and Compaq started going on about this over 2 years ago, they were doing it to remove Sun's power to add API's and keep Java portable and consistent.
What, specifically, would you want to see come out of an independent body standardizing Java? Is it about linguistic compatibility, like it was with C++? I can't believe this, because the language is already extremely precisely specified. Is it about getting to have input to add new features that Sun hasn't approved (like J/Direct and Delegates)? Is it about getting to have projects like Kaffe getting to say they meet some spec without having to negotiate with Sun to pass the tens of thousands of checks in the JCK? Is it about restricting Sun from adding or changing class libraries?
Tell me what it's all about, please.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Without ACLs (for everything, not just files) and some notion of running any app with arbitrarily reduced privileges, relying on OS security is far more painful (and easier to screw up) than ${user.home}${/}.java.policy, and you might as well forget about mobile code.
IDIOT. That's all I can really say.
If one takes the "all" in that second sentence to be universal rather then applying it to just this discussion, I think one will gain some insight into your debating skills.
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
Java was specifically designed to be a write once/run everywhere language for embedded hardware controls, most notably home appliances (like coffee makers). It was an afterthought (and a lot of tweaking) that made it a web-transportable language. Even more interesting is the fact that most of the real Java work is done for the server-side.
As for security, a sandbox was meant more to secure the hardware from failing due to software errors...again a situation that arose by mistake.
Jesse
I agree with you completly about Java.
However, that dosn't change the fact that most HTML Still worked 99% of the time on both browsers...
ReadThe ReflectionEngine, a cyberpunk style n
Though it is infuriatingly buggy, I must admit that it is probably the most feature rich UML package I've ever seen, with both code generation and "reverse engineering" functions as well as Use Case, Interaction, Activity and a bunch of other UML diagram tools.
Your Servant, B. Baggins