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.
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).
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.
Actually, this is a very simple question to answer: like html before it, M$ wanted to make sure that what was developed for these middlewares would not work the same on windows as for other os's. Doing this to html and java would mean that the "applications barrier to entry" would remain intact. You could not write html for explorer that would work with netscape and reverse and you can't write java that will work for windows that will work for unix, mac, or os/2. It's called monopolistic force and people are still blindly following them. Only a complete fool uses Front Page expecting to be editing html, and only a complete fool uses J++ expecting to be editing java. Microsoft saw their grip on inovationlessness slipping and had to FUD html and java up. They succedded.
Qybix ----- I do not have a belief system; I'm an Anti-theist and proud of it! Saying that not believing in anything i
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
Have a look here:
S OAP_V09.asp
http://msdn.microsoft.com/workshop/xml/general/
That should shed some light on what they mean by XML-RPC over HTTP. If you ask me, this sort of firewall-prevention "standard" is bogus, but nobody is likely to ask me...
-Rasmus
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.
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...
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.
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.
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.
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...
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"
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 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?
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'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.
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.
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.
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.
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/
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...
Because standard libraries can't do "write once, run anywhere." Or, more accurately, they do a subset.
Java's promise is more aptly expressed by, "write once, compile once, run anywhere."
Standard libraries, using a variation, would be best summed up as, "write once, compile everywhere, run on the platform it's compiled for".
Java made the program completely machine-neutral, relying on a middle layer VM to mediate architecture differences. Standard libraries compile into machine code, which by definition is architecture dependent. You can't take Linux binaries and run them on BeOS, or Windows, or Mac OS, whereas with Java you can take a program and run it on BeOS, Linux, Windows, or Mac OS without modification (as long as you have a platform-specific virtual machine to run it on).
A single, standard GUI library would be enormously helpful, but it would only get you marginally closer towards the "write once, run everywhere" ideal. Java may not have fufilled the promise completely, but it comes closer than standard libraries do at bridging the gap between otherwise-binary-incompatible operating systems.
Get yourself over to www.scripting.com and (!Wavey) Davey's world of XML-RPC.
Yes, it's SOAP. SOAP isn't Microsoft proprietary though, nor is there any obvious way in which the progenitors of The Language Formerly Known As XSL can break it as they did with IE5.
SOAP is damned marvellous. Simple, works really well, every home should have some. If the ****** (sorry, NDA'ed) appliance design crew get their way, every home will do.
It's also good for exactly those long-haul firewall-paranoid trans-internet tasks that Corba can't easily cope with (and don't even think about using DCOM).
Hmm, so what do you do if Microsoft chooses to kill Active X at some future date? Would that not leave you high and dry?
perl -e 'fork||print for split//,"hahahaha"'
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.
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).
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
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?
I also used J++ quite a bit - I thought it was nice, and very flexible, but I am now using VisualAge, which is very good. I have also used Rational, although not for generating Java code, but this is where Rational will probably focus their efforts, to provide better code generation. They also appear to work closely with M$ - Rose is built using COM (so how close is the Unix version?), and VB comes with a simplified version of Rose (Visual Modeler). Therefore, I wouldn't be so ready to throw away your investment in J++.
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.
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.
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
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.
Much of Apache and Perl are actually object-oriented under the covers, to at least a reasonable degree.
Don't confuse use of an OO language with design of OO software.
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.
I've spent the last 4 years doing Java development on Ganymede (see .sig). I can assure you that Java actually works really well for moderately large-scale, client-server applications. And being able to deploy the client without recompiling on Mac, OS/2, Linux, FreeBSD, AIX, Solaris, Win95, WinNT, and even HP-UX doesn't suck much, either.
Java isn't for all tastes or for all applications, but it is a very nice language with a very portable deployment environment, and it gets the job done just fine for us.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
""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?
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
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 was merely being simplistic.
Had I added all the caveats, such as the myriad number of unsupported platforms, or that each individual VM has problems that either require a program to be specially tailored to that VM or to have workarounds for all the major types embedded into it, or what-have-you, my post would have been four pages long.
Addressing specific points:
* Java is indeed "machine neutral," given a perfect VM. Unfortunately, no such VM has been created. Many of the problems you'll find with Java tend to be a result of the VM. A VM on Windows will not necessarily run the same program as it will on a Mac, because the implementation of the VM specs is different or because the operating system isn't quite able to do what the Java specs require. That's not a fault of the Java language, but a fault of the implementors and/or the platform's inability to conform to what Java requires.
* As for cross-platform, Sun never said they were going to *support* every platform, only that if a VM existed on another platform that Java would run on it. That's why they released the VM specifications, so that others could develop VMs for other platforms. While some platforms have been "blessed" with official ports (such as Windows, Solaris, and BeOS, and even Linux was promised an official one, in addition to Blackdown's efforts), others have to rely on non-Sun efforts.
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. =)
From someone coming from a C, C++, VB, and Perl background, I will tell you that java is fantastic because it has a comprehensive set of libraries (network, gui, encryption, database, web) that is standard across all platforms. And I think this is the reason it is successful and will just become more successful. All that is left is to make sure that java is supported on EVERY platform equally well. My thinking is that a OS shouldn't even ship until there is a fully functioning JRE for it.
If you want to see the power of java servlets, check out my site, a fully functioning multi-player blackjack game that can support a 1000 simultaneous users. I wrote it in a week. Try that with any other language!
By the way, I know you could do it in Perl; I love Perl, but java servlets are just so much more efficient and doesn't hog as much memory. Also, my code is neatly organized into sensible objects. That just never seems to happen with my Perl code.
As a developer for the Windows platform over 8 years running, I can attest to them pulling BOTH stunts. There's things like Win32s/Win32c/Win32 and then there's things like Win16/Win32.
A prime example of the "dropped it" for something needlessly incompatible play they've done is the transition to the Win32 API from the "Win16" one. (By the way, it's also the best example of API cruft that MS is very guilty of...).
Win32s- produced to try to convince developers to write apps that would be moderately easy to port to NT from Win16. Comprises a small, twisted subset of Win32 with bizarre memory rules, etc. Has "Universal" thunks- of which, they're incompatible with everything else. Dropped like a hot potato when it was obvious that it was highly unstable and they had something "better" in hand (Windows 95 (a.k.a. "Chicago)).
Win32- The API for Windows NT. Highly complex, supports only bits and pieces of the Win16 API, making it incompatible with a lot of the earlier Windows apps- at a time where they were touting it's "compatibility". Has "generic" thunks- which Win32c supports with a translation layer that converts the generic thunk to it's native "flat" one. GDI calls work differently on Win32 than on any other platform.
Win32c- The Win95 Win32 API. Another subset of the "full" Win32 API. Incompatible with the full one in some cases (API calls do different things in identical cases.)
Has "flat" thunks as it's primary thunking layer for 16-bit to 32-bit coding- this is incompatible with the Win32 API. In order to use thunks that work on both platforms, you're going to have to sacrifice some performance going through a translation layer that converts generic thunk code to flat thunk calls on the fly. MS is actively trying to kill off this API as they did with Win32s.
That's just one little example given as a capsule summary. I won't even go into the details of the TAPI, WinG, and other fiascos in this vein that MS has pulled in the past.
They're very guilty of both things.
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.
Um, you can compile pure java in J++ anyway.
J++ isn't something that runs around compiling to non java 1.1 compliant bytecode. There are extensions - just don't use them.
And yes, MS make very good extensible IDEs.
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.
"It's not a done deed, it's a whole lot of hype coming from Sun Microsystems. If you think it's a true cross-platform initiative, please tell me where on an official site I can download the JVM for:"
There's no such thing as an official version. most major platforms have more than one version of the JDK. The specs are open, if you need to build a java version for any of the operating systems you mentioned you can do so your self.
You can't expect SUN to support every platform out there. BTW. I heard they are working on Linux support so that should solve your problem since BSD is able to run Linux binaries.
"The coffee fumes coming off that vaporware smell nice, but it's just plain not enough in the real world."
Conservatism in any form is appalling. You're a developer (I suppose) so open your mind a bit. Sure Java performance and availability on some platforms is less than desirable at the moment but with JDK 1.2 most cross platform problems are a thing of the past and if there are problems (usually due to bugs in a certain JDK implementation) they can be worked around. Usually getting a Java program to work on more than one platform poses very few problems and the porting effort is zero or very close to zero.
Anyway, I think the differences between all the versions of UNIX are bigger than the differences between Java virtual machines.
Jilles
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?
The real reason MS killed their Java products is because Sun succesfully prevented them from making it an MS specific language. When they realized that, they realized that they were competing against their own stuff (activeX, VB, Windows). So killing J++ probably was a healthy business decision from their perspective. After all what have they to gain from supporting a 100% cross platform language?
Unfortunately they are not able to innovate. VB still is based upon a crappy language called Basic. MS' first product was a basic compiler (they did not invent the language). All they did from then was add features to it that they saw in other, more promising languages. They added subroutines and even some OO like stuff but it is still Basic, a crappy scripting language.
Jilles
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.
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
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
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
1.1.4.
Anyway, then that has nothing to do with "compiling Pure Java", but just to do with compiling Java 2 - which many IDEs don't fully support yet anyway.
I think you may have been sniffing too many of those sun "pure java" documents.
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
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.
arent new versions of Perl being written in C++?
---> Did you know Linux stands for Linux Is Not UniX ?
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
ahh ok :D
got a link?
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".
Yup, it's called Topaz
- A single, standard GUI library would be enormously helpful, but it would only get you marginally closer towards the "write once, run everywhere" ideal. Java may not have fufilled the promise completely, but it comes closer than standard libraries do at bridging the gap between otherwise-binary-incompatible operating systems.
Yes, we're all aware of the way Java works and what its goals were.Java's strong points are:
- Write it once, compile it once, run it anywhere
- The Object Oriented model in Java is very good. Similar to model OO languages like Smalltalk, Objective C, and Python.
- The API is logical
- Lots of marketing hype (no, this isn't a proprety of Java itself, but it effects its success in the PHB world)
Its weak points are:- JVM is too slow to run anything realisticly. Write it once, compile it once, run it anywhere, but run it well nowhere.
- The programming over-head in Java API is huge. To do very basic things, you have to inherit classes, create objects, do bindings, etc. True, this is becoming the case in a lot of C++ API's *cough*MFC*cough*, but there are still easy and simple C/C++ programs out there.
- There no Java compiler that's actually completed out there with a free license. I'll spare you the Open Source propeganda, I'm sure it's been posted 30 other places in this thread.
- Java doesn't have many references; in terms of useful programs written in Java that run at a reasonable speed. Take HotJava - it was supposed to be the example of java's power and it runs slow, has page rendering problems, and is generally not very useful.
It met the ideal, but it's not realistic for most projects.-- Ken Kinder ken@_nospam_kenkinder.com http://kenkinder.com/
Did they? Funny, I never noticed. My application depends on Java RMI and Swing, and Microsoft never saw fit to include the class libraries for those technologies. As a result, my users use the Java plug-in on windows, which is becoming very fast indeed, thank you very much.
Also, I assume by 'fastest Java implementation of any browser' you mean 'fastest Java implementation of any browser on Windows', as Netscape on OS/2 uses IBM's very fast JVM, and IE on Macintosh can use Apple's own Macintosh Runtime for Java, which fully supports RMI and Swing.
In actual point of fact, I don't know any Java developer who ever used Microsoft J++, nor their VM. Microsoft's purpose with Java was obstructionism and diversion. Companies that really have validated Java include Sun, IBM, Netscape, Tower, Allaire, Oracle, Sybase, and the nice folks at the Blackdown organization.
I do give Microsoft credit for goosing Sun to perform better with Java, though. Sun and Netscape went in together to produce the Java Foundation Classes in rather direct response to Microsoft's AFC/WFC challenge (which itself may be seen as a response to Netscape's earlier IFC), and Sun has continued to focus on client-side Java performance to counter this Microsoft talking point.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
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
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.
Look here. Search for "switching to NT".
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
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
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
Well, I gave Perl its due in my message above. However, after having used the two, I would have to choose java servlets over pearl for any meaningful projects.
I will say that two things I just hate about java are Strings and Doubles (AH!). Perl is so much easier when trying to manipulate these things. However, I've found free third-party libraries, at least that provide all RegEx Perl functionality in Java, and that's a big win there!
Yep. First Java, then Dylan. Smells like Cornell. Me too. 100, 212.
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
----
Wasn't ActiveX no more and no less than OLE with a shiny new name? OLE isn't going away, certainly. Frankly, my distinct impression is that it stinks, being incredibly sluggish and bloated, and that's one reason it's been renamed so many times.
If you consider the hard work of virus writers and the difficulty of making ActiveX safe, I would be quite surprised if ActiveX caught on in the web at large.
D
----
"Please explain to me (with a straight face) why interger and Integer exist simultaneously."
Oh that's easy. Performance versus flexibility. If you want performance in an application, you don't want to use objects to model basic types like integers. If you want flexibility, you want to model basic types as objects so that you can put them in for instance a Collection Object.
Also the Integer, Boolean, etc classes contain nice static methods for conversion to and from string etc.
From a pure OO perspective the presence of basic types is wrong but then a pure OO program would probably be to slow when handling large amounts of objects so you need them to avoid creating an object for each integer in your program.
Jilles
Ok I'm really scared now: MFC the next generation. I guess they'll never get it there.
Jilles
Java programs generally are smaller than their C/C++ code versions. I did all three languages and I can say with a straight face that most things are much shorter in Java than they are in C.
The reason for this is that you can eliminate redundancy in your code by using OO, you don't have to do memory management and you have a great API with all sorts of default functionality. You won't cath me implementing a linked list in Java.
Jilles
I have no idea but I know the people at Symbian use rigorous coding standards for their stuff. Check out their coding regulations at their site (www.symbian.com).
The interesting thing is that with all the limitations they impose, the code mimics things that were designed into the Java language. It shows that in order to write reliable C++ code you have to be very disciplined.
Jilles
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
You could not write html for explorer that would work with netscape and reverse...
What the hell crack have you been smoking?
Some of the advanced features arn't cross compatable, but you could always code somthing that would work in both
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
Ha! OO programs are typically just as large as procedural ones. You've demonstrated nothing.
Did you read his post? He sad Java not C++, Java is really a lot simpler, and quicker. I wrote an entire IRC client in 800 lines of java, try that in C. (you could enter any room you wanted, and chat. All that was missing was OP commands (kick, ban, etc))
Have you ever actualy Used java?
ReadThe ReflectionEngine, a cyberpunk style n
How much do you know about OO anyway?
:), everything else seems completly counterintuative)
Well, I don't know about the other guy. but I use OO, and I can't stand not using it (I learned with OO (Teach yourself Borland TurboC++ 4.5 for win3.1 in 21 days, freshman year of HS
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
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.
Wow, three paragraphs of commentary skewered in two sentences. I'm out of my league here, yesiree.
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)
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
No, it's because Microsoft themselves share the "we want to control everything" mentality. For me, the main thing is that I can go to a Linux system or a Mac or an OS/2 box and use Swing and RMI, whereas I can't do that with WFC or DCOM.
WFC does indeed look like good stuff (as did AFC before it), it's just a pity that Microsoft decided not to compete with Sun in doing a portable GUI or remote object protocol if it meant that code written using those API's could work on Linux.
And how long do you think that MS's JVM is going to remain supported as part of Windows? How many more compromises in functionality do you imagine you'll have to put up with? Say goodbye to anything from Java 2, it seem.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
>What the hell crack have you been smoking?
>Some of the advanced features arn't cross compatable, but you could always code somthing that would work in both
Yeah but how does that ruin his point?
Microsoft's "modus operandi" (sp) has pretty much always been to take something that someone else has developed, make it their own and make it either completely incompatible with the original or at the very least difficult to avoid the incompatibilities. In the case of HTML, it seems a violation merged from netscape too, but in the case of Java, Microsoft was the great Satan. J++ was an obvious attempt to make MS Java different from Java in general.
It isn't a question of whether Microsoft gives you more advanced features as an option -- they are free to do so as long as it isn't harder to avoid the incompatible advances than it is to dig to China. Don't we all realize that MS's attempts at expanding Java constantly blurred the lines at what was Java and what was not?
The bottom line is this... one of the main features of Java is that it is a compile-once cross-platform tool. Though they may not have completely achieved this goal... it certainly doesn't make sense for some imperialist company to go in and put the gears in reverse.
I like developing in Java... I find it a bit refreshing from the C++ brushlands I have to chop through occasionally. But regardless of how much I like or dislike Java, it is more than clear that MS was at least somewhat threatened by a tool that makes it possible to bypass their historic "Iron Curtain" platform. And their actions make it more than clear that their solution of blurring the lines was a standard Microsoft tactic.
I don't know about the rest of you... but I am glad that for once they didn't get away with it.
- I'm out of my league here, yesiree.
That was obvious from very early on.Well, goll Gosh a-mighty, I'll think twice before gettin' "into it" with you clever AC's.
Silly me, trying to advance a point about Java while mistakenly attributing authorship of a book! What was I thinking? Clearly, my inabilaty to properly determine the author of a book discredits everything I've written about Java.
Thanks for the "life lesson." I've sure learned a thing or two about successful debating techniques! Serves me right for underestimating the quality of Slashdot commentors!
I didn't mean to imply that O'Reilly was switching to NT, although they did try. I used "switching to NT" as search text to find the part of the article I was talking about.
They are junking their original Perl website. They may create a new Perl website, but my interpretation of Tim's statements lead me to believe that this would be unlikely.
Am I wrong? Maybe. Ask Tim O'Reilly and get back to me. Of course, you may also choose the regular course of "Slashdot action" and flame me without any supporting information whatsoever. YMMV.
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