Where exactly is Java technology going? It all depends on which aspect of Java one chooses. No doubt, this open platform presents many opportunities—and a few roadblocks—to IT innovators and customers. Elsewhere, this blog entry discusses the problems that SUN is facing how they should be addressed.
> Also, when you DO win a contract, hype it! document the
> situation, how much money the customer saved, use that
> information in future advertising, create promotions around
> that particular customers experience when targeting that
> particular market when marketing the solutions.
Hype is what is lacking in Post 2000 for Java …
But it’s been proven on the Server .. only enough hype to prevent MS from pulling another Netscape over SUN …
If Java was open-sourced, would Microsoft try to take it over again? It’s so easy to take over any technology when you are big (90% of the desktops). If Microsoft could take over Java, they would have almost all the developers again.
Why? Because Windows is still a fine piece of Software, discounted the security issues, and many developers use it as development environment, which IIS, VS.Net, and lots of other apps just make unavoidable.
Maybe. But Microsoft controls their environment, and they can do anything they want, including not inter-operating with other Java implementations, whether open-source or not. When you use abstractions you can carry-off such acts easily. But this isn’t news, as in the past Microsoft was proved of them. And with Java open-source, I’m not sure if they would be able to use Java again, as they used to.
Also a good ‘NEW” version of c,c++ , could make for good competition ,a three way competition.
If Java is now a compiler and thats what the main use is as a server then why the hell not have just a compiler using gcc as backend.
Make two versions . One for compilation and one for client use that is as fast as Macromedia(damned impressive shit thats taken over java applets entirely on the web).
Some of you people out there make ‘languages’ out to be mystical magical objects but they’re not.
Look Eric, from the article:
“When someone asks where Java technology is going, it’s reasonable to ask in reply, “Which Java do you mean?” The attractive upsides and the offsetting issues are quite distinct for Java the deployment platform, Java the application interface portfolio and Java the object-oriented programming language.”
Neither Java/C++ have delivered OOP to the masses. Smalltalk is still the best answer and it’s just waiting for programmers to realize it. Large vendors have been so quick to swallow Java that their now starting to choke on it. IBM had a chance to lead the Smalltalk world and in the process become the most powerful player in OOP/OOD but they’ve done nothing but let SUN give them a cold cup of Joe.
…Open your minds, Smalltalk is waiting.
Objective-C is highly related to both C and SmallTalk, and it IS being pushed by a major hardware/software manufacturer.
Where does this strange “Microsoft will take over Java” fear come from?
MS is a *giant* and fabulously wealthy software monopoly. I don’t think you realize how desperate and devious a monopoly will become as they start the downward slide toward obsolescence. You think MS is bad now? Wait ’til GNU/Linux is at %20 of the desktop market — then the *real* fangs will come out.
hmm…not bad, but another C spin-off is not the answer but a band-aid much like Java.
Have no chance to knock off java because it’s being sold by the university/school system(mindshare).
Java and .NET are here to stay.
Open source will seem to always be in last place because they don’t put the big salesman push that commercial(java,.net)backed software co. do.
Funny, I was going to mention Smalltalk before I read the above.
Plain and simple Java needs to be rebuilt from the ground up. The VM is poorly designed. The class libraries are bloated beyond belief. The language is clunky and verbose.
… then create a typed Smalltalk. Which won’t be smalltalk anymore, but it what Java should have been. I myself abhor types, but people just won’t use a language without.
There’s also S#, with support for types and if/else (www.smallscript.com), created with .NET in mind by a prominent Smalltalker.
BTW, Objective-C isn’t ‘another C’. It’s as old as C++ and is the result of Apple’s/Job’s fascination with Smalltalk plus their need for something fast (at the time).
If any of you did your homework properly, you’d realize Java, the language, was partly inspired by Smalltalk. Java’s problem isn’t its design. Java is a solid object oriented language. No questions about that.
The problem with Java is that SUN, its owner, never took desktop computing seriously, well up until now. SUN’s interest has always been server-side multi-cpu (now multi-core) multi-network computing. Hardly what you use on the desktop, or even workstation today.
Java is indeed better than C, C++ and Smalltalk design wise. However, it’s a cold hard fact that in reality, theoretical deductions doesn’t translate into real-world practical implementations.
C, C++ and Smalltalk were designed by hackers to solve immediate real-world problems. Java, on the other hand, was designed by intelligent scientist and engineers to solve all programming woes.
As a result, my theory is that Java is over-engineered, although their creators had good intentions. Solving real-world problems and engaging in scientific or engineering academic exercises or feats are two different things.
Open up Java to real world hackers and see the Language evolve. It has a solid base, but it smells too much of academia. However, Java’s weakpoint still remains. It is an avoricious memory hug (All object oriented designs are! 90% of which I have seen suck), it is disturbingly slow.(99 in 100 java programmers suck) It will take you seven years, if not more, to master the core of the language and platform.(Now you know why many Java programmers suck.)
The Java designers and developers thought too far ahead of themselves, I think. They envisioned an environment fully muli-networked, running multi-CPU, multi-core machines sitting on tera powers of computing resources. Their biggest mistake is that they overlooked the fact that desktop computers will continue to play a major role in the future of computing. They thought by the 21st century it would have been eradicated. They are not alone, my computer scientist and engineers still believe desktop computing will be a thing of the past and design with that assumption in mind. I beg to differ.
Java is a solid language and solid platform, but it has yet to solve all our programming woes. Please SUN, just do something about the memory catastrophe Java is. I can deal with a slow app, but I can’t stand an app choking my system because it is consuming twice as much RAM than the other seven C apps I have running combined. That is just repugnant.
I am also still not impressed by the Java VM and GC capabilities. In fact, I think they are responsible to ill-gotten reputation the Java platform has. Last time I checked, they were still using 20 year old technics in our supposedly modern era. Well, I could be wrong, since the documentation to either are closely guarded. Whatever!
C# has a nice framework, is fast, and does run on all platforms. the only right place for java is in the trashbin, IMHO.
we’ve been trying to use Oracle’s 10g server which uses a lot of Java. and because Java is so fat and so weak, it’s very challenging.
for instance, to process a non-shredded XML document, because of Java’s design, it takes 10-20 times as much memory as the size of the document. combined with the memory Oracle’s Java system already takes and you’ve blown out a 32 bit machine if you process any large non-shredded XML documents.
Oracle has realized Java is basically busted when it comes to anything but very simple routines and is pushing their C/C++ toolkits for XML development and their C API for advanced database work.
Plain and simple Java needs to be rebuilt from the ground up. The VM is poorly designed. The class libraries are bloated beyond belief. The language is clunky and verbose.
The success of Java will be based on whether or not the world can pry it out of Mommie Dearest Sun’s hands and make it open source. Only when Mommie Dearest is no longer beating it with a coat hanger will it have any chance to evolve and thrive.
Amen brother I agree.
I *want* to like Java, honestly, I’ve tried again and again to enjoy it as a language. However, in everyday use, much of it is overly-pedantic.
Think for a minute; can anyone from the top of their head remember how to read and write to a file in Java? Oh I’m sure many of us know the steps involved (ie. Instantiate a BufferedString object, etc).
But, the point is, the code just doesnt flow out of you like it does with C, C++, Python, etc…
Java in its present form is a very ‘idealistic’ language. It follows the mantra of “proper” OOP to a fault.
I often feel we ought to take a cue from nature, afterall look at human languages. These have evolved with all sorts of worts and shortcuts…no human language follows a perfect design spec. My point being, that languages exist to help us communicate ideas, not to pass a language purity test.
In the continuing battle of Form vs Function, Java errs on the side of Form. While it makes for a wonderful education language to teach students proper OOP, it is somewhat painful to use for day to day problem solving.
If Sun would ever open up the design to get more community involvment, hopefully this state of affairs would improve.
I like the core Java language, but the development environment is annoying; why do I need to fart around with classpaths? And why is the GUI so damn slow?
Think for a minute; can anyone from the top of their head remember how to read and write to a file in Java? Oh I’m sure many of us know the steps involved (ie. Instantiate a BufferedString object, etc).
Yeah, that layering pattern they use. It’s indictive of Sun’s generate atittude towards Java that pisses developers off.
Java in its present form is a very ‘idealistic’ language. It follows the mantra of “proper” OOP to a fault.
Any ‘proper OO’ language programmer will let you know that Java falls quite distant from ‘proper OO’. In fact, Java is sort of a simpler C++. That’s what it feels like and that could be its best feature. Alas, it’s not as simpler as it could be, and as someone pointed out the VM and GC leaves much to be desired.
What may be over-engineered is not the language but the class library. Why that is, and if it could be different, I don’t know.
Somehow Java (language and CL) tries to be like Smalltalk but with a C infrastructure. The problem is that what’s simple and elegant in Smalltalk has become clunky and cumbersome in Java. In part that’s because the C mindframe doesn’t cope with the dynamicity which Smalltalk relies on to do just about anything.
That said, Java could certainly benefit from ‘CL sugar’. Why is it so difficult to have wrapper APIs for the dozen invariant steps one has to go through to do anything at all?
That would make it at least easier to write and maintain. But since most Java development is based on frameworks these days, that might be a moot point.
“I like the core Java language By Mike (IP: —.cpe.net.cable.rogers.com) – Posted on 2004-07-18 00:51:06
I like the core Java language, but the development environment is annoying; why do I need to fart around with classpaths? And why is the GUI so damn slow? ”
if you gui is slow, because you program like a pig
check jbuilder is created with swing and it’s not very slow
I was reading before about the work Red Hat people did to make Java (eclipse) compile into a Bin which didn’t run in a virual machine. Personally I think this is the way to increase Java’s useablitity. Create real local compiles for apps that will run on a single platform and use the bytecode varient for web based multi-platform compatability. It’s pointless running a Vitual Machine on a system that is always running the same code, just compile it to bin don’t be wastful with RAM or CPU cycles. While if you don’t know what Machine your end user is running then make it bytecode for mass distribution. All Batch / High Volume processes should be as fast as possiable, i.e. no virual machines! UI on the other hand, it doesn’t matter so long as its fast enough to be used, and currently for Java this is questionable.
Java’s singular problem is its large legacy and its desire to be backward compatible. This is just a reality of an evolving system in the dynamic world of “Internet Time”. This is most apparent in the large class library (which, FYI, save for java.lang.*, is optional, just like stdlib.a in C).
From Mystilleef (IP: —.lan.resnet.iup.edu)
Open up Java to real world hackers and see the Language evolve.
Java IS wide open to the “real world” hackers. Where do you think things like AspectJ, SWT, and Hibernate came from? Or hacks like XDoclet (which is now essentially being embraced is Java 5)? Why do you think that there are at least four disparate commercial JVMs (Sun, Apple, IBM, BEA JRockit) as well as several OSS JVM Works In Progress? Why did the java world have things like the NIO package long before it arrived in J2SE 1.4? Where do you think this stuff comes from?
The one yoke around the hackers neck is complying with the JVM specification. This is the blessing and curse of Java. But then, the compatability of the JVM is what makes things like J2ME quite popular. It’s also the thing that lets you use IBMs Jikes compiler against Suns JVM for runtime.
Of course, that’s simply the JVMs. There are several different languages on top of the JVMs. (Java != JVM, just like C# != CLR, they’re just tightly integrated, and the JVM drives the Java language.)
As far as Java programmers, they’re no worse or better than any other large language. There’s lots of crappy C/C++ code as well, and there is an enormous body of work about “writing good/efficient java”, just like for C/C++. Java crappy code just brakes less than crappy C code, so crappy C coders moved over to Java to get their work done.
I will cede the memory requirement, but 1.4 and Java 5 are both working on that for multiple client apps, and Apples JVM already supports shared class bundles across processes to lower individual client memory footprints (and reduce startup times). Also Java tends to use more memory because so much of the system is actually written in Java itself rather than just glue around native libraries (for example, the GUI).
I am also still not impressed by the Java VM and GC capabilities. In fact, I think they are responsible to ill-gotten reputation the Java platform has. Last time I checked, they were still using 20 year old technics in our supposedly modern era. Well, I could be wrong, since the documentation to either are closely guarded. Whatever!
Not to distort or disrupt your world view, but have you even LOOKED at the documentation regarding the GC system on the current Sun JVMs? Suns modern GC is quite sophisticated, and very tunable. GC is simply not an issue today except in the most gratuitously abused edge scenarios. I would venture to say that a vast majority of commercial GC research is focused on the Java JVMs, specifically things like non-blocking collectors working in an SMP environment over enormous datasets.
Sun took a lot of the work done from things like the Self project to work on its GC and its JIT, and Sun has a lot more capital, dollars and mindshare to pour into this base research than the Smalltalk companies.
From Bryan S (IP: —.prod-infinitum.com.mx)
Think for a minute; can anyone from the top of their head remember how to read and write to a file in Java? Oh I’m sure many of us know the steps involved (ie. Instantiate a BufferedString object, etc).
But, the point is, the code just doesnt flow out of you like it does with C, C++, Python, etc…
“How do you do it in Smalltalk? What can’t I just instinctlively write FORTRAN the way I do C? How come I can’t work oils and canvas like that Van Gogh dude? Those French have a different word for EVERYTHING!”
Because you don’t use the language. I don’t think in Python or Perl at all (though I can cut and paste with the best of them), but awk, sed, Java, and Lisp are “easy” for me because I use them every day.
From Pax Vitae (IP: 62.17.151.—)
It’s pointless running a Vitual Machine on a system that is always running the same code, just compile it to bin don’t be wastful with RAM or CPU cycles.
MS’s CLR elegantly jumps both sides of this fence, in that this is pretty much exactly what CLR does: compile on the fly and cache the result for later use compared to Suns HotSpot that JITs based on behavior of the app. The biggest difference is that CLR statically optimizes the code, whereas the HotSpot dynamically optimizes the code.
Also appreciate that the byte code environement of the JVM IS quite dynamic. Modern Java systems do a lot of dynamic byte code manipulation on the fly during runtime (to install proxies or instrumentation, etc.). The JVM let’s us do that, the HotSpot JIT let’s us do it quickly, and keeps the memory footprint down (byte codes are more compact than machine code, particularly RISC code). For example if I’m only using two methods in a large class, while the system is pretty much obligated to load the entire class, it’s only required to compile the two methods that I actually use. This behavior punishes client apps more than server apps.
But Sun is finally (with the help of folks like Apple) turning their guns towards the desktop. The server side problem is not a runtime problem anymore. So they’re focusing on the client runtime and language support to enable server programming to be easier.
The Java community is ENORMOUS, there is a gazillion lines of code out there to do most anything, and most of it behaves well with others, and Sun is cedeing more and more to the JCP.