Java To Overtake C/C++ in 2002
jarek writes "ZDNET has an article that talks about latest research data.
It talks about how Java is overtaking C/C++ next year. The article also talks about developers adopting linux and putting linux to use in mission critical tasks." It's evidently taking developers from the C/C++, but also the Visual Basic camps, with strong growth overseas.
Listen cocksmoker, it's not *my* style of dealing with references to references, it's the Java FAQs. And if you can come up with a better way to do it in Java, I'd *love* to know. You immature little fuck.
Speed was never an issue processing mainframe downloads. In fact the mainframe took longer to dish the data than Java could parse it. Saved months in development time, $15,000 bonus.
I didn't make the example, you did :) You said that DVD can be done in Java because Java is as fast as C++ for computation. I'm telling you that while justifaction may be true, the conclusion is not: even C++ is not fast enough for DVD decoding.
Are they ?
When running program under VM ( or other interpreter) there always will be associated cost as compared to running pure ASM code.
The fact that this VM can perform certain runtime optimizations, which obviously cannot be done with static ASM code, does not mean that resulting increase in performance, will outweigh costs of having VM in the first place.
It might be high on Microsoft's priority list, but there isn't a damn thing they can do about it. The only thing that I hear Microsoft say about Java is "Have you seen C#?" Wow! What an awesome comeback! The speed of Java use to be an issue, but it isn't anymore. The same people who use to say that C was way too slow (compared to Assembly), are the same people that say Java is too slow. It took C around 5 years to get fast and reliable and it has taken Java around the same.
.Net
:-) I hope they bundle a bunch of stuff in XP and release it early... it will make the case that much stronger...
Are you going to see Quake IV in Java, probably not, but it doesn't have much to do with Java, as much as ID has a team of developers who know C.
If you want great games on Linux/Mac/FreeBSD/anything other than Windows, you guys better hope that people start to develop games in Java. We all know how well companies like Loki have turned out.
Lastly, Microsoft is fighting many a war on many fronts. ie.
1. Anti Trust Case
2. Palm vs. Pocket PC.
3. Sony, Nintendo vs. Xbox vs. PC games.
4. Java (Java2EE) vs.
5. Linux vs. Windows XP
6. Open source in general
7. Oracle vs. SQL server
8. AOL messaging vs. Microsoft
9. Star Office vs. Microsoft Office
10. OEM's vs Microsoft
and lastly Steve Balmer vs Heart Atack.
Microsoft has made many enemies over the last few years and they will never ever be able to crush out companies again. The government will see to that
Steve Michael
The more I learn about science, the more my faith in God increases.
Since every class in Java derives from Object, my swap routine was perfectly type-safe, thank you very much. If you're talking about what happens later on after you've swapped a Car object and a SolarSystem object by accident, well then why don't you give me an example where that would happen in real life, and we can work it through? Of course, you're just a reactionary git, so please shut up.
"More than 40 percent of respondents also felt that Linux offers more value for the money than other operating systems"
Jeeze, only 40%? By my calculations when you divide your system value by the cost of Linux you end up with infinitely more value for the money, don't you?
"But I wonder how XPs lack of Java support will affect the number of Java developers."
This will have a much more positive affect on Java as a platform and Java developers than you realize. Microsoft's JVM is the source of many "gotcha's" and "oh fuck" epiphanies. It supports calls to native win32 apis and other such nonsense that is totally bass ackwards to any kind of Java platform standardization. Most (I wish I could say all) java developers stay away from that stuff, but there's always a few that cross the bounds.
The elimination of Microsoft's JVM from the picture makes the java world way more clear on Win32. Yes, people will now have to download the jre/sdk to run apps, but the experience in compatability does more than make up for the download.
grep -ri 'should work'
Here comes the holy war...
Anyway, both languages have features that should be adopted in some form into the other language. For example, C++ needs to catch up on web/communications, multi-threading, asynchronous calls. I realize there are 3rd party libraries for this, but there needs to be a something more standard. I hear C++0x (checkout this technetcast webcast for more info) is aiming to include some of this functionality into the STL.
One thing Java completely missed the boat on is templates and more generic programming. The single-class rooted hierarchy in Java makes programming generic classes a joke. Casting from Object is tedious and inefficient. C++ templates may not be the final solution to generic programming, but they are certainly a step in the right direction.
The list really goes on and on. However, I feel that with some evolutionary additions to the STL, C++ can overtake Java in the areas where it is currently lagging behind.
Hans> C++ is definetly not a low level language. Where
> did you get that idea? They're both (C++ and
> Java) in the same ballpark for abstraction-
> C is only slightly more low level.
ANSI C is for the most part a subset of ANSI C++. Therefore, ANSI C++ can be as low level as ANSI C.
In general, any valid ANSI C program is also a valid ANSI C++ program.
- Arcadio
Ok. I'll bite. Although I don't think that
:)
Bjarne wants to make c++ into java, there
are enough similarities that PHBs could notice:
Goal: Make C++ a better language for systems
programming and library building
Java: Java beans and jars for library building.
As for systems programming, before long we'll
all be programming toasters in java.
Goal: Make C++ easier to teach and learn
Java: Several universities have begun the switch
because it is considered easier. No pointer math, etc.
Goal: Extend standard primarily through major
standard library additions
Java: Has a huge library as part of the language.
Goal: Remove inconsistencies and errors from
core language
Java: Very consistent. Had the benefit of being
designed from the ground up w/o concern for being
compatible with c.
Goal: Simple elements of standard platform
Java: Already has this except as part of
the language. The VM abstracts the standard
platform.
Goal: Distributed computing
Java: Part of the language.
Goal: Make the standard library central to bindings to other systems
Java: Already support for SQL/Corba/Beans/etc...
I can see where one could draw that conclusion.
Anonymous posts are filtered.
In my university (vrije universiteit in Amsterdam) you get an introductory course in programming in Java, then a datastructures course in Java and a course in x86 assembly.
Then, an introductory course in C/C++ is given and a software engineering course in Java w/ Swing follows. Then you get a large course in plain C, and depending on the direction of your studies, you'll get one or more large courses using C, C++, Prolog, Miranda, Java, or whatever is best suited for the job.
I think the choice for Java for the introductory and software engineering stuff is great, because in these applications you don't want or need the low level stuff in which C is good.
Furthermore Java looks relatively 'clean' and is suited well to learn imperative as well as OO concepts.
P.S. Where in the documentation does it say this? I just read through it and the documentation on Load gives no indication that this is possible. (I'm looking at VB6).
Some comments on other comments:
1. C and C++ are already minority languages, in that they are only used for a smallish percentage of applications. Yes, kernels and spreadsheets and games and paint programs are written in C and C++, but these are dwarfed by so-called enterprise applications written in Visual Basic, Delphi, PHP, and so on.
2. Let's suppose that Java really is slow, ignoring any improvements that have been made in Java run-time performance over the years. Back in 1996, when people said Java was slow, they were talking about software on a Pentium 133. When a 333MHz Pentium II was top of the line a few years later, people still said Java was slow. Ditto for the 600MHz Pentium III, the 900MHz Athlon, and the 1.7GHz Pentium IV. Even if it's slow relative to C++, we're still talking about a 10x speedup in raw horsepower.
3. Realistically, the issue with Java has always been "exactly how does this benefit me, the programmer." It's easier than C++, yes, but it's still in the same general ballpark. And there's been the slowly growing feeling that forcing everything into an object oriented framework is not the panacea it was once thought to be. Java may be too OO for it's own good.
If you like the Java language for development (as I do), but don't care for the multiplatform use of bytecode, the latest version of the GNU compiler can now compile Java code into native code.
Unfortunately, gcj still doesn't support AWT so that "only" command line programs can be created.
Unix started in the commercial world ..
As for CD-Rs, that may be possible in Java, but there will probably be a lot of issues relating to hardware, breaking interoperability between OSs and hardware platforms. Perhaps some dynamically pluggable drivers implementing a common interface could do the trick to remedy that.
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
The word overtake is questionable here. Do we mean that more developers will be using it (that's what they mean), or that all that the tasks that those languages have previously been put to will be done in Java?
I think we can make a pretty good case that right around the same time, three toolkits came into existance, the Java widget set (SWING, I believe), Gtk+ and Qt. I notice that 99% of the apps on my Windows desktop are the old C++-based MFC widgets, and my Linux desktop is split between Qt and Gtk+. I never see a Java app unless it's the back-end technology for a Web site (but, more often that's PHP, Perl, Python or VB).
So, from whence comes this figure?
Well, most of it is based on the growth of Java as a wizzy buzz-language in the dot-com startup arena 1-2 years ago. Some of it is based on the fact that in the financial market, in-house apps are very often written in Java because it's something they can hire hordes of programmers to write, and it keeps them happy because their skill-sets are current. Remember, these are the folks that bought WAY into COBOL....
Java's a cool language, and I actually think it puts C++ to shame in terms of the cleanliness of its OO system, but it's just not useable for most of the large-scale development out there (can you imagine how much slower Mozilla or GCC would be if they were written in Java?)
C will continue to be the right language to choose, but C++ will continue to be chosen a large percentage of the time because people only think about the performance of critical sections not the maintainability or cleanliness of development.
Troll? No, just firm opinions that I have formed over the last 10 years watching first C++ and then Java become the darling languages of the "if it's OO it's good" programming set (not that the converse is true either....)
C++'s power lies in its object oriented features, and particularly in templates. And this leads to the STL (Standard Template Library); no more writing and rewriting container classes, sort algorithms, etc.; you've got a whole set of well written, generic, tried and tested classes encapsulating all that for you.
assert(C != C++);
yes I do! and that is the point. you cant replace a tool that fits in tiny places and shovel in a monster and call it a solution (Embedded NT comes to mind here) Assembly has it's place and is the most powerful language there is. Sadly we have very few that can write assembly as they are only tought Java and other bloat-languages (VB for example)
:-)
So yes, that clairifies my point to crystal clarity! thanks
Do not look at laser with remaining good eye.
blablabla, try ICQ and Yahoo Messenger for Java and see how they perform. I tried a variety of Java programs and their performance is crappy to say the least.
No thanks, I'm very happy with Python and C
Looks like /. can predict the future. A few weeks ago in
this article
the /. community discussed java as a good CS Introductory language and the
post went on with a lot of people talking about java taking over as a main
language. Just shows that if you want to know what the IT world has going
on, look at what the IT people have to say.
"If ignorance is bliss, why aren't there more happy people in the world?"
ZDNET, perhaps the best trolling fud spewing publication available. Its kinda fun to watch MS get slammed by AOL's PR arm.
Grief, that's serious FUD you're spouting there.... but anyhow. After Dr. Stroustrup's interview here, there were lots of comments here on
Look on archives for comp.std.c++ on the 5th of June. Google allows you to search on message-id, but stupidly has no way to display the message-id of an article once you find it (making the searching capability almost useless).
Your post here seems to continue in the exact same vein.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
Java (with a decent VM) is faster than that. The hit is only 30-50%. That's about 9 months of Moores Law.
Think what the games were like 9 months ago. Not much different, by and large, from what they are now.
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"It's so close to Java that I don't really by the "love one, hate the other" idea - except if you are just hating it becourse it's Microsoft, but professionals won't (at least shouldn't) do that!
Java is in for a really tough ride here - it will probably keep some ground, but on the application side it does not stand a chance - and we know the MS strategy (and must admit it works). Take the desktop, then move in on the server.
Java is too week on the desktop as it is "one language fit all" - a stupid idea of Sun, there is no such thing as a language that is the best for the total beginner and the experienced profesional programmer. Some other languages do compile to the JVM, but they will always lack the "stamp of approval".
And even for one person, the same language can't do it all. With .net, the beginners can use vb.net (yes, I hate it too, but many people like it nomatter how much we laugh at them), the experienced programmers will use C# or Managed C++ for the tricky stuff. I must admit it - I love the idea. Finally I can program something in a decent language, and it will still be usefull for the masses and there VB. And I can easely automate all my applications using a real programming language instead of VB (yes, I can use Perl today, but it's better at scripts than applications).
Java's strength is the cross platform support - but with web services already having C# and VB.net programs talking to (even Linux using) Apache servers C# offers enough for most companies - there clients run Windows anyway.
I know this will be moderated as a troll, but before you do it please think: If Microsoft was pushing Java, and Sun was pushing .net - would you still be faithfull to Java? If not, we are not discussing technology but religion here.
The language is a fucking mutant freak, wank-ass OO tacked on to "BASIC" (Which was always considered a lame language). VB is ugly, and weak. and slow on top of that!
Most of the people who do VB work professionaly A) Don't know anything else and B) are idiots.
ReadThe ReflectionEngine, a cyberpunk style n
I take offense at the ignorance people display when they say that Java is finally fast enough for desktop use. That is simply not true. I use a number of Java applications on a daily basis, and even though I have a decently powerful machine it can only take so many bloated VMs before everything (everything) grinds to a fucking halt. And don't get me started on Swing. God, what a mess.
In my mind, the work I do as an enterprise software programmer is not real programming. You can do real stuff in Java, but I leave that to someone else. I'm looking to get away from Java completely. I can't stand the language.
Ok, so 77.2 + 21.8 + 21.4 + 20.4 = 140.8% ? I guess in the survey folks could respond with more than one choice for their distro, but I'm still surprised that there are *that* many people out there using more than one for their Web servers.
Generics in Java and a vastly dumbed down version of the generics in C++, so they can be understood by Java programmers.
C++ templates are incredibly powerful and useful, but Java generics are tailored only to making generic containers (and they don't even do a good job of that re: primitives).
FWW when this article came out we made a demo of our financial planning app in java. at the time we were able to achieve sufficient animation, think active graphs, by sacrificing stability (yes, stability).
lastly, one thing to keep in mind is that Java is very important in the financial world, where being able to get an app (or applet, whatever) that uses new mathematical models onto the traders' desks as quickly as possible is a competitive advantage. in that environment java is superior to VB/VC/etc.
________________________________________________
...vividly encapsulates that post-Watergate/pre-punk/coked-up moment when you could trust no one, least of all yourself.
Here at U of M, *everything* is done in C/C++. There's only one java course and it's not part of the core curriculum. Then again, since the AP test is (reportedly) switching to Java, perhaps the department here will switch to accomodate all the incoming freshmen who will only really be familiar with Java. Then again, maybe they'll just screw them all over and stick with C/C++...
Tastes like burning! - Ralph Wiggum
Really these are just overblown CGI applications
Yes, as with CGI applications they "just" take an arbitrary HTTP request, do pretty much anything, and send back a response. The difference between this and any other type of application is that most applications don't get their input in the form of an HTTP requestMay we live long and die out
"if you need to do optimised stuff" then you wished there were better free C++ compilers available
I am in my junior year of my CS degree after 7 years in the USMC. My first programming course was in C++, and within a week or two I was able to write simple programs that worked, and it did not require that many concepts to be learned. I opened up a first semester Java book for the hell of it, and could not believe how much you had to do to know to write a simple Java program. C++ has the advantage of allowing you to use multiple paradigms, whereas someone else stated, Java throws OOP right up front. The majority of applications that are developed where I work (Modeling & Simulation) are written in C/C++ and Simscript, with only one client application written in Java. Once I am proficient in C/C++ and shell/Perl scripting, I will tackle something like Java.
lInUx Is CasE SenSiTiVe
no. In fact, now that they've proven to be so powerful, many gurus are suggesting using templates instead of inheritance in some places.
Go read Stepanov's writings on the subject (he's the mastermind behind the STL).
Would you want your Quake3 UT or any other FPS written in java?
Um, I think you ment, compile once and run anywhere. Which is what it does, quite well I might add.
What planet are you from? Java was quickly successful in academia, displacing C++, Eiffel, etc. Note the academic book market - virtually no notable C++ books in Academia in 5 years, but with dozens concentrating on Java.
Only recently is Java taking on corporate programming tasks.
And it hasn't scratched C++ in the land of commercial application programming or systems programming.
I go between C++ and VB all the time. I hate working with VB. Why?
When I use it, I feel it's constantly trying to constrain what I do. For example, it doesn't allow you to create controls dynamically (for example, if I want a variable number of controls on a form). (Yes, I probably could figure out how to do this using Windows APIs, but why?). You can't do multi-threading (well, there are hacks to allow this, but you can't debug programs!).
There are silly language options, such as Option Base, that can make understanding some else's code harder.
I also find the IDE very annoying. Undos often only work in the text editor. When a program crashes, it brings down the IDE, etc. Searching is a pain. You can't look at a form when running the program, etc.
I could go on, but the bottom line for me is that it's frustrating to use VB.
Science is all about finding the underlying beauty in the world.
No, science is about finding the underlying order in the world. Order may be considered beautiful, depending on the observer.
http://saveie6.com/
That's already the case on the Computer Science AP in C++. Looking at samples of grades for the free-response section shows that students get 9 out of 9 points for code which wouldn't even compile. If they completely miss the concept they can get 6 out of 9.
The Computer Science AP was the easiest 5 I ever got - even though I was supposed to have studied their "Marine Biology Case Study" (wow, we can increment and decrement a variable and say that we're modeling the motion of one-dimensional discrete fish!) beforehand and I only first looked at it during the test.
Win dain a lotica, en vai tu ri silota
I used to have a bookmark to a page listign a few dozen alternate lamguages ontop of the JavaVM as this questio ncoems up a lot. One of them as I recall was a C++ implementation.
Unfortunately I had to reinstall Winfroze which blew away the bookamrks but I'll try to serach for the page again and post it if I can find it.
I should add a thanks to the poster as this ALMOSt qualifies as the preditciton i made some tiem ago. The prediction was that, as dynamic compilers proved their ability, people would stop asking "why can't Java have a static compiler" and start asking "why can't C++ have a dynamic compiler"
The answer ofcoruse is it can and, in the caes of a C++ that compiels to byet code, already does.
Divorce statistics are skewed in that way because getting divorced influences the statistic directly by changing the size of the population. Programming in Java doesn't create more people or kill people. Your analogy doesn't hold. Statements involving "almost 60 percent of developers ..." are well defined and meaningful. You may disagree with whether this results in more or better software, but that's a separate debate. I think the faster applications programmers dump C, the better for all of us.
As to Office Suite, there is no reason why it _couldn't_ be written in Java. However, there might not be much incentive in creating one now either (in any language, actually)... It's not like there weren't N+1 office suites available. It's more about inertia; existing huge popular shrink-wrapped apps were written mostly in C (some in Pascal, esp. on Mac, some newer on C++), and although there is constantly need for some rewrite, dumping the implementation isn't something high level managers like to hear.
As to office suites, the fact that there's one failure doesn't prove it being impossible (Corel / WP). It does imply that at the time it was impractical to do; whether it still is or not is another question.
However, right now the biggest reasons no new big java _applications_ are being developed (outside internal enterprise networks) are:
Finally; Java performance. I think what puzzles most people is that with Java you do need to tune your code more than with C or C++. You'll spend much much much less time debugging weird memory-overwrite crashes or memory leaks. But you do need to do more performance tuning. For me that's a fair trade-off. Performance of number-crunching (after optimizing) seems to be (in general) something like 20-40% slower (at worst might be up to 100%, ie. operations take twice as long). However, with UI the differences are negligible. This is of course assuming you have a decent JVM and know how to write efficient code.
I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
"They tried the same maneuver with JavaScript, but it's still alive and well and I don't see much JScript around"
.NET which makes it a full peer of C# and VB.
Just as an FYI, JScript is becoming a 'compiled' language with
As someone who's found that the only sane way to do ASP is with JScript, and that it's a rather nice environment on the server side, in it's own little way, this is good news. Although, I don't know why you wouldn't just go all the way and use C#, where you actually get inheritance and so on.
And even with MS's 90% browser marketshare, there's no VBScript stuff being done on the client side, even internally - it's all JavaScript.
That would be java.sun.com, or javasoft.com
Personally I was never hot on Java - it reminds me too much of Smalltalk. And listening to those OO purists always gave me a headache.
http://www.dinkumware.com/jproject.html
A CGI written in C is almost certainly vastly slower than simiar code writen as a Java servlet. Deal with it.
Uhh... when did I say anything about the speed of Java? Geez, you'd think Java coders would lose their martyr complexes when an article like this one has just been posted.
Servlets and CGI accomplish the same kinds of tasks for the same kinds of users on the same kinds of platforms.
Do they do it more efficiently? It depends entirely on who you ask or what environment you test under or even how you define 'efficient'.
Because they do exactly the same things, I don't think that I'm wrong in stating that a Java Servlet is 'the same thing' as a CGI application. Based on CGI and evolutionally advanced from it, certainly, but then so is PHP, which is arguably *not* CGI, although it can handle CGI tasks.
The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
I just went to your web site, and I gotta say, you'd think a Java professional would have already read the Java FAQ. But I guess you're not a professional, given the noted lack of diplomacy in your reply. Jerkwad.
Java does have it draw-backs, such as speed, but this is quickly becoming a non issue on modern computers
:-)
*ROTFLOL* Do you know how long people have been saying that? This line must have been quoted since the very beginning of Java's existence.
I agree with most of the rest of what you say.
Only grandmas use java. the rest of us want to get shit done.
Java is fun and all, and usefull in web aps, but face it, you cant write an FPS in java, and you cant really write a java kernel. The language is useful in certain things, but if you need performance, you have to go more low level, like C/C++ or assembly.
Welcome to my land of make believe.
I'm quite aware of what JavaScript, JScript, and VBScript are, having coded in all three. I can guarantee that, despite some shared ideas, they are significantly different. In an attempt to steer the crowd in their direction, Microsoft created their own spec with the name being made similar only to confuse people (which has apparently worked :).
This should shed some light on the differences between JScript and JavaScript:
JavaScript vs. JScript
>You'd have to write the program such that it generates no garbage at all
Yeah, it's a nuisance, but it's not rocket science.
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"But if they reported it that way, it wouldn't be newsworthy, would it? The media are not there to report the facts, they're there to attract readers so they can keep making money.
Donate background CPU time to fight cancer.
And therein lies the rub.
CPU manufacturers continue to support only specific languages well - C, C++, Fortran, etc. When the CPU manufacturers start making Java chips so that the only way to run C code is within an emulator, will you still be taking the same point of view?
The reason people get upset about their languages is that they know the industry keeps driving towards specialization - they like making a one-size-fits-all "solution". And if their language isn't popular, it gets destroyed by lack of hardware support. Look at Lisp and Smalltalk. Wait for functional languages like ML to be stillborne when their functional models can't fit well with Java libraries.
I'd be quite willing to continue to use my screwdriver, if the Suns and Intels of the world wouldn't keep starting to make Torx(TM) fasteners.
That is all.
Wait for it...
COBOL!
Yes, that old, supposedly dead language is still the #1 for new development projects in the world.
If you think COBOL is a dinosaur and should be put to sleep you might want to do a google for COBOL. It's got things that you wouldn't believe (OO, x-platform, the best data manipulation, etc.).
For those who will probably rate this as flamebait all I can say is that it's a shame these non-developers with no knowledge of the development world can have such a say.
--
If I actually could spell I'd have spelled it right in the first place.
Actually Microsoft's implementation of JavaScript (JScript) had a bunch of Microsoft-specific code while still being compatible with JavaScript. So Internet Explorer could still use JavaScript, but Netscape and other browsers could not run JScripts with the Microsoft specific extensions.
This would be the totally uninformed bit that annoyed Bjarne and co, then. There is way more to templates than just generic containers. It's too bad all you Java evangelists haven't bothered to read a single book about it, so you have the slightest idea what you're talking about.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
But the advantage of servlets is that they are part of Java, and Java and OO are a good way to deal with a big enterprise opperation with lots of business logic and connections to various DBs, legacy systems, and other such crap. In other words, if you have a big enterprise app that happens to have an HTML front end, Java and servlets are the way to go. On the other hand, if you are just wiring a few web pages into a DB, then perl/CGI or PHP are quicker and simpler.
Stroustrup should be horse whipped for tying his bloated mess to C. I think I'll start working on D.
C/C++ will maintain it's grip on systems and native application development for a long time. However in the vast market of custom developed business software Java will dominat C++. Writing business logic in C++ is just overkill. It's a complex language c.f. Java and should only be used where needed. Java's main competition in this space will come from .NOT
I'd guess that the vast bulk of Java development is for relatively small applets and servelets...
I don't believe that is true at all. Why the big hype about J2EE then, which encompasses a whole host of enterprise technology including Servlets/JSP, JMS, JDBC, EJB, JNDI, etc...? The last two projects that I've worked on have been writing supply chain systems for DaimlerChrysler and Boeing. I'd hardly call that small applets and servlets.
That being said, unlike a lot of posters here, I don't see speed as being a permanent impediment to Java's growth.
HotSpot has definitely improved Java speed greatly. JDK1.4 also includes some tremendous performance changes for Java with additions like file mapping, asynchronous i/o, native byte buffers, and volatile images to the API. You're about to start seeing some kick-butt client-side applications (including games) for Java.
For example, check out www.javagaming.org.
God bless,
-Toby Reyelts
Templates?. Try Ada 95 generic packages, or learn about Haskell 98 class types, and your opinion of the 'great' C++ templates probably will change
Make It Secret . Free JavaScript implementation of AES for your browser
and thats all I ever want to read so /. is stuff thats relevent to your life only. Blahh
Buggy browser-included 1.1.x JVM's were a disaster for Java on the client-side.
Microsoft is doing us a favor by not including its own version of Java with its OS anymore.
You may be right (and I should know, since I took the exam two or three years ago during the "Bigint Case Study"), but it's getting worse. The year I took it, a number of students at my school took the AP exam after a somewhat accelerated intro programming class (instead of the 2nd year AP course). They knew all of the important concepts except file I/O (using fstreams) and for a lot of them who were on the border between 4 and 5 (and ended up getting 4), that may have cost them the points they needed for a 5 because they were expected to know how to do it.
If they had been told "You will receive input from the function int GiveMeANumber()," as the Java students will be told, a few of their scores could have improved...
Why not delve into the mysteries of ML, then? It's certainly more aesthetic than Java will ever be, and has it's own core of loyal, grassroots followers. Now, granted, their battlecry seems to be "beauty over algorithm speed", but hey, that's what this day and age is about, isn't it?
Oh wait, you means the beauty of OO development and programming? Then it should be Smalltalk. It's much more OO than Java.
Answer's simple. It's not about aesthetics; it's about speed and security. Java isn't perfect at either no matter what Sun's propaganda may say(coughClassLoaderandnamespacingcough), but dev time IS quick, and is being recognized as more important than execution time (and to some lowlife companies, program correctness).
I personally like C better than Java since I don't have this fear of pointers most people seem to hold, and I'm very sorry to hear that Java's overtaking it, but I can't say I'm surprised that it's happening either.
AverStar created AppletMagic, which is able to compile Ada95 down to Java bytecode. Good language to check out if you aren't glued to C syntax, and hey, Ada powers all of our nuclear weapons too.
Your signatures belong to me.
Jeez! Next you'll be telling us that the tooth fairy doesn't exist.
IBM's VA is written is Smalltalk!
What's making Java so hot is not that it is a better systems programming language than C or C++. It clearly is not. What's making it hot is that operating systems, databases, graphics libraries (OpenGL, etc.), and many other high performance C/C++ code modules have been written which less performant Java code can run on top of. The high performance stuff runs with high performance, and the programmer who wants to build something new gets a safe, productive, and reliable programming environment, without having to worry overly much about where their code is going to be deployed.
Everyone wins. And, of course, the people writing the high performance foundational modules are likely to be fewer than those writing applications on top of them, just as there are far fewer Linux kernel hackers than there are programmers writing code for deployment on Linux. So, from that perspective, I can see C and C++ receding somewhat in dominance.
The same thing's been happening in UNIX for the last 10 years with Perl, Python, and Tcl/Tk.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Nope. I have to endure JBuilder in my daily work (yes I'm a suffering java developer who couldn't get a decent C++ gig). JBuilder is NOT acceptable by any stretch of imagination. Any application that takes 40 seconds to launch on a 800MHz PIII has serious performance issues. And it's full of bugs too lest we forget.
Your pizza just the way you ought to have it.
>I didn't make the example, you did :)
Nope. Check the top of the thread. That was HeUnique.
>even C++ is not fast enough for DVD decoding
C/C++ is fast enough for DVD when you supplement it with a decent vector library and some bitblt type of thing for writing to the screen. And the same is true of Java. Whether that counts as 'writing it in Java' or not, is of course arguable, but show me pretty much any program and I can show you some assembly in a standard library somewhere. (e.g. memcpy)
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"I think I love C/C++ more than Java which is owned by Sun.
-- Terrence Ma
Java is so slow.
Yet no one here ever complains about the slowness of PHP, Python, bash, etc. -- scripting languages that are almost by definition slower than Java in most circumstances. Why does the speed complaint only get leveled against Java?
The point is that, much like PHP, Java is plenty fast enough for what people use it for. I use it for web application development, and the performance is more that just acceptable. It's lightning fast. I think this perception is fostered by the ancient JVMs that ship with Windows and IE, which are major releases behind the current state of the art.
No one uses Java for GUI app development.
LimeWire, which IMHO is the best Gnutella client out there, is pure Java. It's very responsive, feature rich, stable, and less than 1MB, about the same size as XMMS. Hardly what you'd call slow bloatware, which is the usual complaint.
Sun owns Java. Java isn't free.
I could mention Tomcat, which is open source and which we use in production where I work. But then someone could complain that the JVM we're running it on is still proprietary to Sun...
Haven't any of you heard of Kaffe, GCJ, or GNU CLASSPATH? None of these things are what I would consider production-grade yet, but the point is, Java is only as closed as people want it to be. If you don't like the fact that the best JVMs are all proprietary, then by all means, contribute to one of the many free Java projects out there!
Get past the myths. Java won't solve every programming problem, but if you don't like it, at least complain about the parts that *do* suck (like java.io.* :)
Q
I concur
I've been using JBuilder 4 for daily work for quite a while and have not experienced the performance issues you speak of. I have a 550 MHz celeron with 128MB of RAM and rarely have performance problems. I found that memory contributes the most to performance. I've also used a 333MHz UltraSparc with 256MB of RAM and JBuilder ran as fast as any other IDE I've used. The only performance issues I've had with JBulider are related to the visual designer. Other than that, it's been a wonderful tool.
I'm primarily a C++ programmer and I've tried twice to move over to Java but went back. Depsite all the baggage that C++ is stuck with due to C compatibility, it's still less broken than Java.
Every time I code in Java I end up banging my head against the wall over some of Goslings early design decisions. Here's my top 10 list (in no particular order):
1. Any decent C++ programmer has standardized on using exceptions for error handling, and exceptions are broken in Java.
2. The final keyword is broken.
3. The distinction between primitive types and class types is arbitrary, annoying, and frequently causes you to write extra code.
4. They couldn't seem to figure out whether the language should be statically or dynamically typed, or weakly or strongly typed, so you have to deal with different type checking behavior depending on the type and context.
5. The tasking/threading model sucks.
6. AWT and Swing both suck.
7. Java code is full of casts to and from Object, many of which are unsafe due to weak dynamic type checking.
8. No separation of declaration from definition makes browsing code harder.
9. The distinction between inheritance and interface/implementation is arbitrary.
10. Tying modules to files is too restrictive.
There are a lot of things I like about Java, but considering it was a clean sheet design (unlike C++), they sure got a lot of things really wrong.
Hey, every use JBuilder 5 from Borland? This thing is a full GUI based IDE written in 100% Java and it has exceptable speeds - it isn't the fastest IDE - but it is fast enough to productive in. And the same codebase runs on Linux, MacOS X, and Windows.
Where is the increase happening ? I suspect the vast majority of it is on the enterprise side which people tend not to think about (they think shrinkwrapped and installed on their desktops).
I'm sure we'll also see another massive jump in the next 2 years with more use by developers of J2ME (the micro edition of Java for cellphones and PDA's) being adopted....and your average joe will notice this. Java on the client side isn't really dead, it's been waiting for a better platform than the desktop pc.
dude, games are operating systems are not the only things coded. even if 0 games (and of course) operating systems were coded in java, it could still end up more popular than c++.
Um. AltiVec's C API is presumably coded in assembler. So you can't do really fast DVD in pure C either.
Anyway, you can call C APIs from Java. So, yes you can write a DVD in Java, as much as you can write it in C! All the hardwork is done in assembler anyway...
There's probably nothing that C compilers do that can't be done by a Java VM. Some of the VMs use C backends anyway.
(Not that I'm claiming that current Java VMs are optimising for vector stuff, they may very well not be).
>I'm having trouble imagining a Java tool that could automatically
>vectorize code where Java has no way to express vector operations.
Well, Fortran can optimise vector stuff fairly well. If the VM spots similar structure in a Java program it may be able to implement the same optimisations. I'm sure the devil's in the details, but it's not impossible.
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"that would be: "give me a BREAK."
Java is fun and all, and usefull in web aps, but face it, you cant write an FPS in java..
But damn close, see:
http://www.babeloueb.com/arkanae/en/index.html
You know, here's where I think too many Slashdotters are hypocrites. First they say I have Linux running on a 486 or a P100 or whatever old computer that can't run MS's bloated OS. I mean Christ 128 meg of RAM??? etc etc. Then they root for a technology they can't even use on those same computers. What gives?
Lets see...
If you have an embedded device with only 128KB of memory in all and only 28KB are available for the app, then you WOULD have to scrap C and move to assembly in that case.
He was only pointing out that Java isn't suited for everything. Neither is C, but thats the point.
News flash, kiddies: You're way, way out of the mainstream on a lot of computing issues, and this is one of them. In heavy-duty, commercial app. development things like stability, speed of implementation, ease of coding, support for direct database access, etc., are far more important than wringing the last bit of performance out of your code.
Non-techie thinks: Hmmm...what we need is a new worm...infect IIS...IIS remote installs java...
Actualy, John Carmack was thinking of putting a JVM into quake to handle scripting, but later decided to go with plain C because he was worried about support issues of using more extermal technology.
ReadThe ReflectionEngine, a cyberpunk style n
Simply because it's a Microsoft product duh !
It's just another tool for Microsoft to exert it's evil power, and this more than enough for many.
Microsoft = Worst manuals, ever! They're really of any use once you've gone through some of the better IDG publications and have an idea what tool you're really going to need for the application, as some manuals are organized by alpha, and have no index at all (e.g. Microsoft Visual Basic 6.0 Language Reference)
IMHO, the best first book for VB is O'Reilly's VB in a Nutshell, if you care to even learn the language. The M$ books are matches of what comes with the online help, and it's ok for some things, but the depth just isn't there. I've coded for over 20 years in a dozen languages and have some pretty definite ideas of my approach to a problem, when I can't get it to work in the language and the help only goes so far I hit msdn, pbdr.com, vbnet, and anything else I can find with Google. Ultimately, for sophisticated code, VB is just plain weak. Nice visual interface and builder, but the language should have died at Quick Basic.
As far as the code-less application, yeah, try to do any _real_ database work that way. Foo.
A feeling of having made the same mistake before: Deja Foobar
Yes, you missed the point. First, the VM based versions of Java (using adaptive compilation as opposed to simple interpretation) are now very competitive with C++ speedwise. Sometimes slower, sometimes faster with usually a fairly small delta.
I have to laugh every time I see these claims, because the people making them always fail to back them up with proof. Please give hard evidence that Java is on par with C (within 10% of both CPU and RAM usage) for a significant, parity task. No bogus benchmarking, please; let's keep this in the real world! If you like, you may even compare it to a real OO C-based language like Objective-C, but not C++, which is one crappy OO language.
C is generally more efficient, but you lose object orientation.
Spoken like someone who doesn't really understand OO. OO programming can be done in any language, even C, though certain things are made easier for the programmer if the language has OO support.
Java is open, productive, fast, cross-platform, widely taught, supported by every significant software company, and somewhat future-proof. What other language/platform comes close?
Uh, how about C? In fact, it's true of any language that was popular for at least a year. For those of us who lived through the C++ hype, you people who are riding the Java bandwagon are downright funny. They're all just languages, not ways of life.
The real proof will be forthcoming - when many anti-Java Luddites are in the unemployment lines, still complaining about it... ;-)
The C++ people said the very same things . . .
counting the startup time of the Java run time is almost like counting the boot time of the OS in the laod time of your APP - But you do have a point - startup time in Java is SLIGHTLY slower than for native apps because it has to load the JVM. After that though 95% of the performance differences go away completely
With JIT compilers becoming faster and faster, and the paradigm shift of user applications from autonomous programs to web applications, Java is becoming more important.
However, C and C++ will remain very important, for example for system programming. A lot of Unices, MacOS and Windows are built on these two languages. Component, object and application frameworks like MFC, KDE, QT are written in them. A very large application base is written in them and it will not be replaced overnight.
I don't think Java will ever completely take over C/C++, simply because the hardware accessibility just isn't in Java and you need it when programming an OS.
But when building a new application, Java is more often than not a better choice than C/C++, simple because it was build with networking in mind.
So, in this one article they first talk about how Java is taking over from C++. However, they choose to write about people developing applications specifically targeted at Linux in the second part of the article. What language do the writers think they're using to develop these apps? C/C++ !
If they were really using Java (or at least using it properly) these applications wouldn't be specifically targeted at Linux, but available for multiple platforms!
Java does have it draw-backs, such as speed, but this is quickly becoming a non issue on modern computers.
It already is a non-issue, this isn't something that is still in the "becoming" stage anymore. For 99.999% of software, Java is fast enough. For device drivers, stay with C and asm. For just about everything else, Java is ready now. It's over, the war is won.
Cause Java is developed for the future it has HUGE potential to put all this hacking, rewritting, glueing, reinterfacing, rewritting called "programming" at least one tiny step further towards software development.
... go figure in any other language with any set of API(s).
... it could be redefined any time and the current VM is hopefully not the last in compiler technology, especially Software/Hardware hybrids (like Cruso) can make a lot more out of it... well a lot more than out of the 25 year old intel instruction set.
;)) ... if the core concept of the project is not good it will wash out and get riddled... Java has a good core concept and at least the programmer is not responsible to rewrite basic functions if there is a new OS or bullshit API that thinks it has to reinvent the well more round.
... watch it fly by !
Cause, its:
- Skalable in Size
From Palm, Webbrowser, Applikation upto Server and the important interconectivity in between.
- Secure
The Sandbox restrictions seem to got forgoten, but thats exactly what is need for a lot of stuff nowdays to deploy basic secure applications in a browser, there is still no real alternative. Server based solutions never can do all tricks, cause good user interaction has to be programmed on client side. Well downloading and installing application or glued flash, javascript and server systems can't be the final solution, please ?
- Plattform independent
In fact it is a platform on its own. Whats missing is a Java OS (based on Linux and/or MacOs and/or Windows?) and off you go...
- Sophisticated, Huge and Clever APIs
They are getting better and better and more stable.
Try to connect to a database, do a 3D visualisation of the data and send an Email with the resulting picture
- Prospering in all directions
C/C++ is already dead a few years, it seem to have stopped at defining some cool but useless class keywords and a freaky "STL" ? On the oposite Java is not really pure Sun anymore nor IBM... its already a multifendor platform. Even Microsoft has smelled it a while ago and now tries to sneak in before it really hurts. Strange the Linux people continue flogging the dead horse, with basicly no real useable APIs for application development, trying to define there own ? A operating system is nothing without good APIs (and thats not just drag&drop and some windows, but also Printing, Audio, Video, 3D, Registry, Databases, Plugins, Components), what is missing for Linux, Java already has it ? But Unix has to be C right ?
- Skalable in Speed
Java VM is complete abstract, the language and the API (the main part of Java) are not realy tied to the VM
And plug in a second CPU and Java will make instant use of it... in my opinion there would be options to make JAVA CPUs that would outperforme every now available CPU by using multithread architekture in a single PU. Classic single CPU speed will get less scalable and to get out of the MHz drain multi instruction computing has to become more aware... guess which language has one of the best and most reliable multithreading programming architecture... even novices know how to programm a thread in Java... ever written more than one in C++ ? And got it synchronised succesfull ?
- Software Design
There are so many C/C++ design pitfalls (Header and Implementation seperation, Pointers, the quer STL, Operator overloading, Preprocessor and Macros overuse) that make software development a pain in the ass. Java has building blocks of software development and is extended only with features that are necessary and make sense.
- Complexity
Java has the power and the clearness to write and maintain applications off higher complexity. In my opinion many software projects (C/C++) are doomed to crash soon or later cause of there unmanagable complexity (the version 4.0 burn out
- Its allready #1 for a lot of things...
I know more people starting in Java than in C/C++. It is the language that is teached in scools and universities... cause one can get things done and not has to write a suitable String class nor learn the wired secrets of some oldscool APIs to popup a window.
something will overtake on the left lain
Not that it will knock C/C++ from the street... but who is driving Assembler these days ?
"How many times do I have to tell you: Use the right tool for the right job!" -- Scotty, Chief Engineer, USS Enterprise.
Now where do I fall in a survey like this? After reading it, I conclude that the surveyors asked "Do you use Java?", not "Do you use Java exclusively?". I know lots of people who program C and C++ most of the time while employing Java and other languages as required. In the last month, I've written code in C++ (65%), Java (20%), Python (10%), and Fortran (%5). So I count as both a Java user and a C++ user.
What rattles my gourd is the way people get so defensive about their programming choices. Why do people get so worked up about one specific tool? I don't know any mechanics who argue whether a box wrench is better than a crescent -- they know that each tool has its uses, and they keep many different wrenches in their toolbox.
Sadly, the programming business is replete with dogmatic fools who insist that their language or their technology can do everything from counting sheep to curing cancer. And that's just plain dumb (or at best, willfully ignorant, the greatest of sins.)
A real software engineer uses the right tools for the job. Even Visual Basic is a useful tool, when it is applied to an appropriate task. The same thing holds true for C, C++, Java, COBOL, FORTRAN, Prolog, Lisp, and a myriad of technical tongues. We have all these different languages because different problems required different solutions.
Surely programmers can be as wise as mechanics... ;)
All about me
Java has to try harder.... for the scope on Open Source scope
In spite of these disadvantages, Java is still second only to C++ in popularity. It has slightly more SourceForge projects than Perl, and is the only language to crack the top 25. Freenet, at #3, is the top Java project by number of downloads. This is probably somewhat deceptive, since Perl's CPAN pre-dates SourceForge, and many of the most popular Open Source Perl modules on CPAN are not hosted on SourceForge. Perl's popularity is a bit harder to measure because CPAN is widely mirrored. But looking at paying Linux jobs on dice.com also reinforces Java's Open Source popularity. Java occupies the second slot behind C++ and just ahead of Perl.
--
Error 500: Internal sig error
Oh I see.
And you've never seen bqd C programs? bad coders can make crap in any langauge my friend.
But as you've clearly stated you'ld rather look at bad Java programs then good ones I think you've just absolutely established that you are one fo those who "want to keep their illusions."
Enjoy them. As a human you are entitled to them.
Catseye
"You can laead a horse to water, but you can't make him think."
If that is true.. I can command :)
bigger bucks to maintain C/C++
apps and the fact that I know how
to program is Java leaves me
with a fallback
Kinda like the Cobalt programmers
during the Y2K frenzy..
It's simply a case of what gets the job done with the least amount of costs and quickest amount of time. Anyone who tells you otherwise is crazy.
Why do I like Java? Well for starters it's easy to code and nice well structured code. It's easy to read other peoples code. (IMO).
Java is slow? I honestly don't think so. Most of the people I've met who told me Java is too slow haven't used it seriously since 2-3 years ago or are still writing for the IE JVM. My only issue I have had is it is slow to load, once it's loaded into memory there is nothing wrong with the speed.
You need a fast machine to run it? Tell me who here is a developer and doesn't use a fast machine? Personally I think PC's capped out around 700-800MHz for the office usage. Anything else your wasting your money and Java runs just fine at that speed.
Java programs aren't nice? Only Java programs I use offhand (available to the general public) that I know of is JEXT, Forte and VAJ (not so often since I got Forte and I develop on linux platform). All three I would recommend.
But I am not saying Java is better or worse then C++, I am just saying I like Java and it's certainly getting more of my attention now that I have started to seriously use it.
> Patrick was just a developer on the green team. That's funny, that's not what Patrick told me! He claimed that he was responsible for taking a technology that was originally targetted for embedding into smart toasters, etc, and turning it into Java!
OK, 77.2 + 21.8 + 21.4 + 20.4 = 140.8 %
Apparently, this is some kind of new version of statistics.
(Man, I thought I was working hard giving 110%.)
Problem: I can't point to a single Java app that I could call "killer", unless you count RAM and CPU as its victims. All computer languages have periods of popularity and decline. Java has crested, and I have to give credit to MS for at least trying to create/catch the next wave with C#.
Remember that the Java Micro Edition is actually a totally different version of Java than the JSDK...Its been desinged from the ground up embedded devices and such in mind, thus the performance flaws are minimalized...
-The art of programming is the pursuit of absolute simplicity.
> This is one of those misleading statistics, like "Half of all marriages end in divorce".
Yes. Without exception, divorce applies to both parties to the marriage.
Sheesh, evil *and* a jerk. -- Jade
Who needs a Linux kernel when you've got JOS (http://jos.org)? ;-)
My overall impression of VB is that language development is geared more toward PHB's who are looking for buzzwords than towards programmers. Case in point: OO inplementation. I remember my excitement when I heard that VB was finally going to implement inheritence, and my disappointment when I learned that by 'inheritence' they meant 'button to copy and rename an existing class'.
My biggest frustration with VB was that I kept running into walls, limits to the language that made it impossible to do what I wanted without some ugly kludges.
You mean apart from the fact that almost all of their software is written in it?
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
If we are to understand why Java is overtaking C/C++, we must look to aesthetics.
Java is a beautiful language, C&C++ get the job done in a messy way. In the 70's and 80's, programmers were engineering types, with a critical eye, and like most scientists, no time for such concepts as beauty.
The modern programmer is a product of a hedonistic age, the age of fluid media, the age of Art.
As the scientists and rationalists got buried under the weight of the AOL invasion, a new generation has sprung up which looks for beauty, for flowing lines and classical form, in a language.
Even some women of my aquaintance are finding the Art of Code intriguing and attractive. Last week I was at the Tate gallery of Modern Art in London, with some of my girlfriends, looking at an exhibit fo Java code commissioned by Sun Microcomputers and worked on by Timothy Farrow, the well known computer artiste. They were positively swooning with delight at the tense expression of purpose, functionality and beuty in the curvaceous symbols 'pon the screen.
I sometimes wonder if you computer programmers are going to be taking over the field of aesthetics, but then I remember that come what may, computer programming is only engineering, and though it may have some artistic merit, it is not art for art's sake, true art.
That means I know I can rest easy :-)
KTB:Lover, Poet, Artiste, Aesthete, Programmer.
There is no
You mean something like this?
It's a port to Java of the Quake engine which was never completed because of pressure put on the developers by ID Software. When I first saw it a couple of years ago, I was quite impressed!
You can accomplish anything you set your mind to. The impossible just takes a little longer.
IBM has made a Smalltalk compiler that writes java byte code. It's called Visual Age for Smalltalk
As x approaches total apathy I couldn't care less.
Yeah, right buddy.
Dunno. The two Java projects that I'm very familiar with here at the lab were 50,000 lines of code (an online timesheet thingy that uses servlets, RMI, and JDBC), and Ganymede, which is about 250kLoc. Beyond that, I know I've seen some project boards up on the wall that show Swing graphics for database front ends and the like.
I always had the impression that Java was being used for custom application development, either web based or client-server. Java's "bondage and dominance" aspects make it better for large scale app development than for quick one-off stuff.
See Sun's Swing Sightings Page for a good overview of some more complex stuff being done in Java.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
c# C-Sharp
There are some benchmarks at Ace's hardware (search for binaries vs. bytecodes) that aren't perfect, but make some very valid points.
I happen to disagree. Like statistics, benchmarks can be massaged to say anything a person likes. I prefer real world results, preferably doing tasks similar to those I'm planning on using the language for.
Perhaps a /. based C++ vs. Java coding contest would be interesting. Any interesting problems come to mind? I'm sure we have the talent around here to get close to max performance with both languages.
We could also just wait for the results of this year's ICFP. It's not purely a speed test, but I really don't much see the point into going so far as to do some sort of double-blind study of programming language productivity at both the machine and human levels.
I'd expect Objective-C to be a bit slower than C++ in general, given the method lookup overhead, and lack of generic types.
It would possibly be slower than C++, but probably not for a parity task (I've converted C++ code that had to hack out runtime concepts of its own and the ObjC version was faster and cleaner). I don't know what you mean by "lack of generic types". In proper OO languages like ObjC, we just call them "objects".
I do like Objective-C, but I really don't think it'll ever gain mainstream acceptance.
Who gives a damn? I use languages to get jobs done, to to get some warm fuzzy feeling of belonging. Even the oh-so-clever naming conventions that played off the Java name make me queasy ("We'll call them BEANS!! HAHAHA. Get it? Java beans!" ugh).
Garbage collection is stronger than reference counting as well.
Neither are specified as part of the ObjC language, and you can drop in something like Bohem GC if you like even if you happen to be using the frameworks of a vendor like Apple that likes reference counting.
Plus (assuming you're talking about a traditional compiler like gcc) you lose the advantages of bytecode like dynamic compilation tuned for the exact CPU (say Athlon for instance) that you're using.
Yeah, big loss by using a native binary instead. If I wanted to thow away RAM and CPU on an emulator (aka, a VM without a marketing department), I'd buy one.
I didn't make that claim, so I'm not sure why I'd want to do that. I'll stand by my claim WRT C++ (used as an OOL).
And I said you could even use ObjC (which you believe to be even slower than C++) if you wanted to compare a C-based OO language to Java. You essentially claim is that Java emulation can be done at near-native speeds. I've never seen such a thing outside of slanted, non-parity benchmark comparisons. What I do see in real world apps like Apple's TextEdit that comes with OS X, both Java and ObjC versions, is that the Java version is a real dog. Make whatever excuse you like for that, but as a user I don't give a damn why the app sucks, I just know I won't be using the Java version if I want to be productive.
Do you honestly feel C is as productive as Java? I certainly don't.
If Java works best for you in the things you do, by all means use it. To make a blanket statement that C cannot be as productive as Java is downright foolish. Every language has a particular area where it shines, and C has been shining in many more productive areas for far longer than Java has been around shining in the marketing department.
To a large extent they were right. Have you checked the ratio of C++ to C jobs lately?
You completely missed my point. It has always been that way. Languages come and go and leave greater or lesser footprints on the computing landscape. The footprint Java has left has not been due to any technical innovation, but because Sun marketing has somehow convinced people that emulation is a great idea.
You guys aren't listening to what you are saying. What you and so many others have said in a round about way is that Java is quicker to develop in because it is easier. But, you forget that the point of a business application is most often to automate a repetative task.
The faster you can perform that repetative task the more transactions you can complete in a give period of time. While Java's ease and speed of development is great for the developer, the business would be better suited with a faster app.
For example, lets say we have a 600 Gig database of items that we want to run price changes on. The Java app can get it done but, it takes 13 hours. Meanwhile, the C++ app gets it done in 8 hours. This app will likely be around for years to come and it will run every night. So which is the better business choice?
Most C++ programmers know java, so they get counted as java programmers.
Since the vast majority of Java development would be done in Visual Basic without java, and Visual Basic is the most popular language in the world by a huge margin, These results are unsurprising.
A more interesting question would be what percentage of non-trivial development is done in Java. Stuff more complex than stringing a few EJBs togehter with a servlet.
I don't see why C++ compilers don't offer support for a virtual machine build. If you've ever programmed in C/C++ for a PDA you know about selecting a processor type to build for. Why not allow for generation of an executable that talks with the java VM using byte code, It's the same idea. If this option existed java wouldn't hold that advantage over C/C++ anymore. IMO we never needed a new language. The VM technology should have been implemented as a standard compile option for all existing languages. Then programmers could choose to use the VM based on their performance needs. IMO the real reason I see java doing so well is the simplicity. You give up control but save time. I don't want to upset anyone but I see java as nothing more than a c/c++ clone with virtual machine tech. It's aggrevating trying to keep up with new languages as they come out, only to end up wondering if the *new* one was really necessary. When you have time to concentrate on just one language you can get really good at it. When you keep messing with 5+ languages you barely get to skim the surface. my $0.02 --Ben
"Who is General Failure and why is he reading my disk?"
I've recently put my 7 years of C++ development experience behind me and switched to Java web develoment. What I find is that it's not Java itself that is significant, but the web paradigm in which it is being used. Java is just a development language, and like C++ or anything else there is good and bad about it. Personally, I'd much rather be writing in C++, but you simply can't write servlets with it.
I expect that in the next 5 years we'll find that the web server/app server model of the net will be obsolete, and we'll have any number of net access points, many suited to Java, others to C++ or whatever else. What we have now is too constricting, and it's going to change. Hopefully it won't be tied to a language (or to M$).
- Sig this!
Since when is J2EE all "Enterprise Computing?" Most non-J2EE enterprise apps are done in other languages, and most enterprise programming is trivial systems integration.
Remember, J2EE, Java's main stronghold (admittedly a large one) is a clone of ASP with a single language. EJBs are a clone distributed COM+ objects. Servlets are a clone of COM objects. JSPs are a clone of (primarly Visual Basic) ASPs.
Don't equate carpet-bombed marketing with quality, and always remember: Visual Basic is the most popular language in the world by far.
Java is getting stronger and stronger on the embedded market. EmbeddedJava and PersonalJava are the appropriate environments for that. Of course they don't need 3 megs. Jbed and the like start with a memory footprint of about 8 KB.
I've seen nothing but FUD and Trolls by a bunch of people that haven't used Java, or haven't touched it since the 1.1 days. The fact is that basically, you should select the app that's best for what you want to do. Need a lot of speed? Use C. Need to do some web page stuff? Php or Java servlets, or even Perl. Need to do some GUI stuff, Java or TCL/TK. In the end, no one's gonna give a damn about what programming language that you wrote something in. All that will matter is that it works.
Absolutely agree. If I could sum up what most irks me about MS in two words, it would be "braindead design". Sometimes they get it right, but too often they get it wrong.
Female Prison Rape in NY
Both C and Java are nice languages because they are small and are appropriate for particular tasks, roughly "low-level" and "high-level" applications. As a language, it seems that there is too much in C++ to be able to learn it well, and C++ tries to have it both ways. Garbage collection in particular is very nice to have for "high-level" programming because it removes one large set of "low-level" details to worry about (or at least, worry a lot less about it). Two more messy low-level details missing from Java are include files and make files. I think we can live without them for many programming tasks.
> but face it, you cant write an FPS in java,
Want to tell that to these guys
( http://hem.passagen.se/carebear/fragisland.htm )
Their FAQ is here
( http://hem.passagen.se/carebear/faq.htm )
If you restrict yourself to programming in a single language, that might be the case. I don't. I've been programming in C for nearly 20 years. I had programmed in assembly for 20 years with 13 of those years overlapped with C. I program in PHP today, and have been waiting for Java to make it to serious production capability (I think I see the light at the end of the tunnel now). If someone programs in only one language today, they might well still be programming in it in 10 years, but may also be programming in one or two other languages (to the extent they have the freedom to choose the language that is best for the project, as opposed to having it dictated by a committee of PHBs).
now we need to go OSS in diesel cars
While I'm no expert on why computer programmers adopt one language over another, I think it's more like to come down to what makes the programmer's job the easiest, not necessarily the most effective.
Java feels slower than C++, I'll be the first to admit it. But most of what I write in Java are applications where the difference in speed has become negligable. I've written in both Java and C++, and simply found Java to be easier for me to learn. (Not necessarily better, just easier.)
I'm just happy that Visual Basic isn't more popular than Java, and that C# is getting low interest among non-Microsoft programmers.
Beware typoes.
Is this going to result in some kind of corrollary to Sturgeons Law? Something like 90% of programs are written in Java and are all crap?
So far I've gotten all my Karma from telling people they are wrong... :)
This isn't exactly true. When Delphi came out. The number of Delphi books VERY quickly outnumbered the number of C/C++ books. But that had to do with more reasons than it's popularity. It was new, no everyone wanted to get into the game and published as much as they could. Another was Borlands hype about how Delphi was the future of RAD development. (Similar to Suns). But just try to find a Delphi book now. It's gone from one entire rack to maybe 1/10 of a shelf. Java came on a lot stronger than Delphi, has a larger rack space, but that alone doesn't mean it won't fade away as well. (Doesn't mean it won't either, but that's my point)
Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
Why do you say generics in C++ are a hack? Perhaps they're not quite as expressive as in some other languages but they do the job and do it well. I've often found that "missing" features of C++ can often be implemented using existing language features.
The movement towards Java is real. Just check the want ads. In part, this is because there are fewer Java experts available, but since companies want what Java has to offer, it's follow or be left behind. Not that Java will obsolete C++. They are in large part complementary, focusing on different domains. Microsoft isn't happy about Java, but languages are social constructs, not something they can dictate, only something they can persuade, and I have never found Microsoft very persuasive.
It's all about serverside and enterprise computing. Look at IBM's WebSphere and BEA's WebLogic, or J2EE in general.
We've had to adopt VB at work, and it's easy where problems will crop up and how weak documentation for a One Vendor product can be.
Could this statement be more full of shit? Microsoft provides, IMNSHO, the best and easiest to use documentation for it's development tools. VB's docs are complete, indexed, cross-referenced, and searchable, with examples on how to use every function. Tie that to MSDN on-line, and the plethora of VB source code sites, one example being pscode.com with over 1.5 million lines of code just for VB, and the average programmer can write a VB app without 1 line of original code.
Unsubstantiated and illogical ravings not worthy of Slashdot? Where on earth have you been for the last 4 years? Gotta be at least 80% of the postings that go on here.
Thanks for the vote of java Support.
:)
It's called JAMID and was shown, to a much impressed crowd, at Quakecon last week.
(Quakecon is the ID sponsired yearly gathering and tournament of 1300 of the msot rabid Quake fans in the world.)
Obviously you missed it.
There's ben some recent discussion abotu it, with quotes from attendees to Quakecon and some ncie comments from Quakecon's organizer-- Evil John, over at Javagaming.org.
Its nice to know that we're a 'real language' now
Some of the performance benchmarks for Java have exceeded those achieved or matched those by reasonable C++ compilers Really? Show me the href !
Not yet at least. You can, however, write some very sweet 3D games. For an example check out roboforge. In this game you design a robot and make its AI then set it against other robots. The program is written entirely in Java and everything is rendered in 3D.
I think the poster is responding to an attitude I picked up some years ago at the first Linux conference I went to.
That is that in the Linux community there is a large anti-OO, anti-C++, anti-Java sentiment.
I went to a talk on the subject of CASE tools and was suprised to find a discussion of
Linux/Free Software Package manipulation tools.
When I and one other participant asked about something akin to Rational Rose available for Linux.
Instead of saying "No there isn't", we heard why you shouldn't want to have something like Rational Rose.
The speakers stated that OO was a proven failure.
This comes as a suprise to many professional developers that have been succeding with OO for years.
The question is not whether or not OO is better.
The question is why does the Linux community keep telling people
that they shouldn't want GUIs, they shouldn't want GUI based Integrated Development Envrionments,
and why they shouldn't want UML design tools
on Linux.
It apparently easier to say you shouldn't want these things than it is to admit that those tools
aren't there yet.
It is easier to say Object Oriented languages are bad than for some to admit that they haven't had time to learn how to do OO programming.
"We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
Weirdx is a complete X server written in Java. It works very well, and runs on any system with a 1.1 VM. Pop up FVWM in IE, for now at least. A Java version of WordPerfect exists and it ran well a few years ago.
i'm just 15 and i'm learning C and it's a fairly fun language, I already know a bit PHP so it's not that unfamiliar.
and yes... i do live on caffeine and quake...
----
"I believe in karma. That means I can do bad things to people and assume they deserve it" - Dogbert
You also need a small learning curve and rapid time to deployment, both of which are better with java than c++.
The survey and it's results are obviously there to favor the goals of its owner, nothing more.
Besides, everybody knows that the only real language is assembler
Why? Sun is a hardware company, not a software company. They make very little money directly off of Java compared to the money that they make from selling a Sun Enterprise Server or 2. Java is their way to promote their hardware. Strange I know.
I think you've entirely missed the point, here. As many other posters have mentioned, Java is primarily flourishing on the server these days. This is where the majority of Java developers write their apps. The client side is usually web-based and therefore has no need for Java to be installed on the user's PC.
Applets are far from the only (or even primary) use of Java.
www.Jackassery.com
JScript is the same thing as JavaScript. No one is allowed to call anything Java* except sun, (and apperantly netscape with JavaScript), so MS calls it's JavaScript implementation JScript.
So, you do see a lot of JScript.
I think you meant VBScript, which, yeh, no one uses.
ReadThe ReflectionEngine, a cyberpunk style n
I like Java a lot. But most of the embedded devices I use aren't that powerful. A JVM for those devices would really tax their abilities. Can you imagine?
Q: Hey what time is it?
A:Hold on while my watch instantiates all the classes.....
I realize this is temporary, eventually the embedded market will have some multi-Ghz stuff to run Java, then C can go away.
Unfortunately I see evolution being taught more and more in universities, ergo more and more scientists graduating out of schools are believing in evolution. Very few college programs will teach anything like creationism when they can teach a real scientific method such as evolution. These scientists then move into the private sector and recommend evolution to their superiors. It's a vicious cycle. This is also the natural progression for those who are "saved" by true scientific methodologies.
It takes years of experience to be good at any language-- java included.
"People wanting to use some of the advanced OO features will have a better development experience with Java"
Really? I didn't know Java had templates. Ooh, you must mean operator overloading... hmmm....
These articles serve no purpose but to feed the Trolls.
Do not spread "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0" over the internet, thank you.
One thing I hunger for is the continuing development of native Java compilers, such as GCJ. Perhaps, then, Sun can use them to optimize the new-fangled Java applications being shipped with Solaris (SMC, Audiotool, etc.). I don't know if Sun supports GCJ, but it would be truly great if they did.
The native Java compilers have great potential. Imagine distributing .class files as always (write once), but your customers have the option to pass them through a one-time native compilation (run quickly anywhere). The thought of the JIT compiling code every time I run an application makes me nervous, anyway.
Healthcare article at Kuro5hin
Even you admit it *IS* SLOW. Maybe you've got the time and inclination to wait for it but I don't. Further more much of the marked speed improvement that you claim Java has developed over time is due to increased processor power.
Lets put my C++ program, any of them, on an old Pentium II 200 and you can put your comparable Java app on there and we'll see which is faster.
Almost any compiled language is faster than Java, even precompiled Java. Don't get me wrong, Java definitely has it's place. I myself have written for Java apps than I'd care to admit. But, comparing Java and C++ from a speed perspective is ludicrus. Java is slow!
Python is a good teaching language for both.
You're stacking the deck. Java's strength has always been on the server.
Why else are people rushing to buy 1.7 Ghz processors?
For text editing, my 386/25 with 3M of ram was fine (its even better now, with 7M of ram) and for compiling, a P60 (overclocked to 66) with 24M of ram was about all I needed. Superb small network server: K6/233 with 64M of ram.
But now that I use java programs, I'm barely scraping by on a Celeron-633 with 192M of RAM!
I don't see the point in abandoning C/C++. Sure, Java has its advantage: all platforms (except Windows2000, mwahahah) can run the code, which means closed-source programs don't have to be re-compiled for new platforms. But for most things, closed-source sucks, unless you need a very advanced, comprehensive package for one specific application; in that case, why slow those packages down by making them java? Chances are, you want that package to be as fast as possible! And most likely, you're going to be using it on a specialized platform anyway....
What I'd like to see are *real* hardware java CPU's. *Then*, java wil be a viable option. But it isn't yet, not for most things, anyway.
--TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
The *major* flaw in teaching CS students about Java is the automated System.gc() .. I could not in good faith take someone's CS degree seriously if they don't know what new/malloc and delete/free do ... "doesn't that happen automagically?"
-mike
DUMB FUCK
MS aside- why the animosity for VB. I see it all the time, but I never see any reasons. I work with VB every day. I don't understand why it is held in such great contempt.
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
Java does have it draw-backs, such as speed, but this is quickly becoming a non issue on modern computers. Of course computationally intensive work will alway be done in C or C++ that can be compiled to take full advantage of the processor. Another draw-back is that it is very difficult to take full advantage of the underlying OS without writing code using JNI, and thus loosing some protability.
Yes I am very much pro Java, though I also realise that it can't do everything. It will always be a question of the best tool for the job.
Jumpstart the tartan drive.
Anyone wishing to run applets might have to download a JRE just as I have done so often for Real or Macromedia.
end of line
end of line
Thanks! I don't think stupid is the right word, though. It's ignorant. I don't know how to do everything in VB (indeed, I avoid it if I can due). I asked an experienced VB programmer how to do it and he didn't think it was possible, so I gave up (obviously too early). My dislike of the environment is the biggest reason I dislike VB (undo is broken!), but there are still limitations that are frustrating to deal with.
Python makes a much better teaching language. My girlfriend, an art history person tried Java and was constantly confused. Python on the other hand, and she didn't even ask me questions. Hmm.
A CGI written in C is almost certainly vastly slower than simiar code writen as a Java servlet. Deal with it.
Unless you use FastCGI (supported by Apache with mod_fastcgi)... an extension to the CGI spec that, amongst other things, allows persistent processes. Being a simple extension to CGI, it's also completely language-agnostic and cares not whether you use threading, or, for the real gurus and speed demons, asynchronous programming.
Of course, if you want to lock yourself in to a vendor-controlled, language-specific server-side architecture, that's your business. Why limit yourself though?
For example, lets say we have a 600 Gig database of items that we want to run price changes on. The Java app can get it done but, it takes 13 hours. Meanwhile, the C++ app gets it done in 8 hours. This app will likely be around for years to come and it will run every night. So which is the better business choice?
This is actually a poor example - please spend some time studying n-tiered architechure.
In such an application, the bottleneck will likely be the Database server, and the speed at which it can perform table updates. The second bottleneck will likely be the network. The C++ or Java business layer will likely spend most of its time in a 'wait' state, waiting for the network or dataset results.
-jerdenn
People are not going to be doing Fourier transforms in Java any time soon. Mind you that is mostly because the looser physicists would rather use Fortran77.
Read any physicists compile script (what you think they use make) and you tend to find the equivalent of /warnings=none on every compile line. I once asked one of the physicists if they thought it would be a good idea if the computer had a way of finding bugs for you. He was very enthusiastic. I thought about telling him but it would be like telling a small child that father christmas does not exist.
Bet you wish you thought of this nym first
Well I don't know about CD writing software, you may be correct there.
But there is a working MP3 player written in Java. And I also have read about a DVD player.
(Sorry I'm too lazy to go searching for the links for you - but just go google or something)
Does anyone know about future versions of Star Office, or a pure Java Office Suite?
$sig=$1 if($brain =~
Ever heard of the KVM, it's a small virtual machine held in only 40k used in cellphones and Palms.
Is Java going to replace C/C++? Answering yes to this question is another, more stupid, bold statement. C/C++ has been around longer that any other known popular languages and there's a simple reason for this. It's Reliable, Flexible and it performs well. That's all a developper needs from a language. Can you say the same for Java? This is more questionable than most people think.
People that want to get rid of C/C++ are just frustrated because they can't master the masters' language and people that want to get rid of Java are just frustrated, because some have found uses to a language that is definitely inferior to C/C++.
So in conclusion, Java is fun and all, but it's not going to replace a more flexbile tool and it's not going to pushed aside either because you can't make a kernel out of it.
Java + Webapp = another failing .com ;)
I preach man pages as the model for documentation
to people at work who know
virtually nothing about Unix. The response
is generally a blank stare.
However, I try not to let other people's
ignorance affect me.
Java will have proper generics support in 1.5 (admittedly years off still). Until then using interfaces and generic object support you can get pretty much anything you want done in the same style as templates - witness the excellent Collections package in Java witch is far easier to use than the C++ STL, and provides you with 99% of you collection needs.
I totally agree with your comment about needing years of practice to become proficient in any language!
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Lisp
I work for a large corporation. I'm a programmer who writes distributed enterprise applications. Java's perfomance is pitifull. So why do so many use Java then? Why are there so many MCSE's? Because it's easy to learn. I'd hesitate to call anyone who only programs in Java a real programmer. Java is the next VB. Crappy programmers writing crappy code and producing crappy apps. Oh, and I also work for a living. and you have no idea what you are talking about.
Modern Java is C equivalent in speed.
i cl e_id=153
Thats the message.
Try this article...
http://www.aceshardware.com/Spades/read.php?art
When I first started programming, there was a raging argument about one language that was super efficient, but a bit hard to program vs. this other language that was not quite as efficient but much easier to program in. Sound familiar? The languages in question were Assember vs. C. I also saw the same arguments with C vs. C++.
What you have to remember is that programmers are way more expensive than machines. If I can spend $5000 more on hardware and save myself $25,000 in salary costs, that is a pretty good investment.
And of course this all is based on getting more powerful machines each year. There was a time when programmers really did have to agonize over using Assembler vs. C because memory was so tight.
There also was a time when we had to agonize over using C++ vs. Java, but that time has passed.
The rise of Java (or C# or one of the other new and improved languages) is inevitable. But if it is any comfort Java too will be replaced one day as soon as we can afford the next programmer productivity boost.
Microsoft has been trying for years to get rid of Java. Just like Microsoft itself, it's easier to get rid of a standard before it becomes mainstream.
They tried the same maneuver with JavaScript, but it's still alive and well and I don't see much JScript around.
The survey also found that 77.2 percent of the developers surveyed chose Red Hat Linux as the distribution for use with a Web server or Web application server. This is more than three times the 21.8 percent who selected SuSE Linux or Mandrake. Caldera OpenLinux and FreeBSD followed, with 21.4 percent and 20.4 percent, respectively, the data showed.
Hmm... 77.2% + 21.8% + 21.4% + 20.4% = 140.8% That is a lot.
=brianHighly improbable, most of people I know who have tried or who are programming in Java are simply in love with it, and nobody will be able to change that even the Almighty Microsoft. Also Java (and Linux for that matter) is very popular in university as a programming teaching language at least in Europe. Micorosoft is able to change many things but not those kind of things. What we often tend to forget is that they are mere mortal and not god :)
Why can't ThinkGeek ship caffiniated products to Sweden or Belgium? Surely it's not a controlled substance??? Certainly not in those countries!
You mean it was REwritten in one month by 3 guys. It's easy to write something if you've got the design and behavior given to you and modelled in another language.
- Sig this!
"At the same booth, Full Sail (http://www.fullsail.com/) is demonstrating their first person shooter written entirely in Java on top of the Java 3D API." http://groups.yahoo.com/group/gamejug-announce/mes sage/26
David Wallace Croft President, CroftSoft Inc http://croftsoft.com/
Visual Basic is the most popular language in the world by far.
Which explains why all the most popular mail worms are written in it? (-:
You should clearly not be here. At least you could have mentioned Anime.
Just in time for my retirement! Phew!
:wq
A normal user will install Java for the same reason they will install Real, QuickTime, etc. To see some content, to use an application.
Notice that those are all huge downloads.
Also, some comercial software will simply ship the JRE and install it from CD.
Developer hours, though harder to measure, would probably provide a more meaningful representation of how "big" a language has become.
Ahhhh... good way to put emphasis on C/C++, where development takes longer and you'll easily outweigh "developer hours" in Java!
Tally ho!
"And like that
I'm no c/c++ guru, but isn't templates and stl frowned upon and shunned as bloat by c++ gurus?
Yeah - there is also significant scientific programming, high-performance networking, and various, graphics intensive modelling and rendering applications. These would be inefficient to write in Java, and require high performance, and number crunching ability (that's why a lot of old physics and engineering programming is still done in FORTRAN). You are right, there *IS* more to the world than kernals and FPS - but that doesn't mean that the EVERYTHING ELSE is business apps, spreadsheets, and client-server stuff!
Sorry, to burst Java-fanatic's bubbles, but Java may regin for business-type apps, but for hard-core systems, OS, research, networking, and gaming, which taken together is a significant portion of "real-world" programming, Java doesn't look like it's going to cut it. There will ALWAYS be a need to languages that allow the programming to get at the bits underlying all the bizarre OOP and data-structure abstractions. No matter what the language/programming style of the day is: objects, templates, etc - at some point EVERYTHING is bits being twiddled, and it is useful to be able to get at those bits - hence C/C++ still regins at OS/systems work. I actually worry that programming will abstract itself SO MUCH from the underlying strucutres that are actually present in the comptuer/memory, because that low-layer is what is actually going on during execution - and should always be accessible to the programmer if he/she wants.
There is NEVER going to be a be-all language, and I think the closest any language(s) have or ever will come to being so ubiquitous is C/C++. We'll just have several REALLY POPULAR languages for various programming task areas - Java for busniess, C/C++/Whatever high-perfomance language comes after C++ for modeling, research, gaming, Perl/Ruby/Python for scripting, and so forth.
Sincerely,
Kevin Christie
crispiewm@hotmail.com
1. Java enforces Exception handling, so it is not a design failure, maybe a bug and not listed anywhere...
.H/.C concept is one of the bullshities concepts in the realms of programing.
... interfaces describe callback mechanisms, nothing more.
2. That is can't be a design failure either, it sounds like a bug, and not realy critical, cause it only helps code design is not a very critical keyword.
3. But necessary, one are classes the other are generic types, how should they be handled otherwise ?
4. Basicly it is runtime typed, thats indeed one of the anoying points, but a good linker tool could easily overcome the problem.
5. ??? Works fine for me. Which part do you mean ? It is one of the most thread safe API i saw until now
6. AWT is a just a basic window library, but Swing is very sophisticated... well compare whats on the other side... well if Swing Sux, then please i would like to hear the swear words that could possible describes MFC or even Motif ?
7. Unsafe Casts in Java ??? Well it has dynamic Type checking, you can not call anything which signatures does not fit on runtime. See 3.
8. Buahaha... the
9. Not at all, it leads to clean OO Concepts and safes from a lot of pittfalls in larger class hierachies, one of the strange things is that C++ developers always want to inherite from as many classes they possibly can, with no advantage by doing so and generating big unmantainable class structures
10. Why ? It cleans up the mess and makes browsing code easier.
Why would anyone do that?
The purpose of Java is not to write an operating system or device driver but to allow developers to write a general purpose application that runs on multiple devices. I would argue that Linux would be at least 5% faster if it was written in Assembly or better yet machine code. It might make porting it a bear, but if speed is what you are looking for then that would be the best way to do it. This doesn't mean that I won't use Linux or Windows if they decide to switch to C++ or Pascal. I personally don't care as long as it is reliable and performs well.
I love the fact that I have a choice of platforms to run our server software on. We can develop on Linux, then move it to NT for small scale Windows shops, or move it to a big dog UNIX system if needed. I have seen our code run on amost every type of platform with NO codeing change at all! I have seen it run with multiple application servers also.
Steve Michael
steve.michael@performancestrategies.com
Network Architect
The more I learn about science, the more my faith in God increases.
So I guess my plan to reimplement the Linux kernel in C# is out the window too?
can't write an FPS in java, eh? so what do you call the quake clone done by the team at fullsail? it was shown at quakecon just last week and was received very well from what i've heard. see javagaming.org for more info. - danboo
if you wanna talk speed...
*flashback*
Programmer 1: "Who would ever use C for applications/system design, I mean it's so much slower and bulkier than assembler."
Programmer 2: "Well it is more portable..."
Programmer 1: "To hell with your portability."
*Today*
Programmer 1: "Who would ever use Java for applications/system design, I mean it's so much slower and bulkier than assembler."
Programmer 2: "Well it is more portable..."
Programmer 1: "To hell with your portability."
Remove *your pants* to send me email.
Well, Will we have a machine running an OS with Java (you can say JOS, but what is under it?) Embedded programmers are dead!!!!!!!!!!!!!!!!!! Oh no!!!!!!!!! BD
"Trying is the first step towards failure" - Homer J Simpson.
Lets see.
I can take your C app that is 100k and do it in machine code for around 5k. I have done this before just to prove it to people!
Time to scrap C! Oh yeah, your C app will take a heck of a lot more processor to run also.
Understand the argument?
Steve Michael
Network Architect
steve.michael@performancestrategies.com
The more I learn about science, the more my faith in God increases.
I recently read an article where Bjarne outlined many of the things he had on the C++ wishlist, which more or less were the steps to make C++ into Java.
hey, they support PERL and Python, I think that's great and I don't want Java installed by default with my OS, geez.
Whatever. When you can write an FPS game in Java then it will be a real language. Otherwise it will forever be an academic tutorial, just like Pascal, or a langauge for quick hacks, like Perl.
Not teaching proper C/C++ in college just means there will be fewer good programmers in the world and buggier applications as a result of hiring mediocre coders.
https://www.accountkiller.com/removal-requested
Sounds a little less impressive when you read it as ~85 kilograms. I don't know whether I'm impressed or not considering it as about half a megacup of coffee. Either way, it's about the yearly caffeine consumption of a small city.
But imagine if they reported drug busts this way: "Over 20 million micrograms of marajuana were seized yesterday by local police officer Jack Russel. 'I'm no hero,' he modestly claimed, 'I just frisked some pothead.'"
Personally, I save money by buying my caffeine at chemical supply shops by the pound. It goes well with reagent-quality ethanol.
---
You'd be surprised at the broadband connection available to things crawling around in your hair.
Explain to me exactly and with what mechanism the JCP "Quashes bug reports?"
The JCP is repsonsible for the spec. The spec by definition has no bugs.
Various vendors license the spec and put out implementations. Each is responsible for ist own bugs.
Now doesn't that make more sense then martians are wathcing through your peephole? If not I have some preforssionals I can recommend to tyou.
Honestly, this kind of unsubstantiated and illogical raving is worthy of a poltiicain, but not slashdot. Or whoudl you rather I not confuse you with the facts?
The day that happens, is the day I move back to Windows...
This is why the tradition of UNIX man pages is so important. With little more than the K&R C manual (free over the Internet) and sections 2 and 3 of the man pages (free with your favorite UNIX or non-UNIX distribution), an average programmer can do a hell of a lot (and this is an understatement). I remember writing a small but non-trivial Curses application once knowing nothing about Curses going into it, yet I finished it in one evening (debugged and all). Can M$ and VB offer such a productive and thoroughly enjoyable programming experience?
Healthcare article at Kuro5hin
You know what i'm sick and tired of seeing on /. Every time an article is posted about java EVERYONE ON THIS SITE DOES NOTHING BUT PUT IT DOWN with fallacies and no logical thinking.
You people need to get out a little more and understand that 1) Java has been used for a FPS, 2) Java has been used for an MP3 decoder, 3) Java vs. MS is real and here - by throwing the open source community weight behind .NET you are doing nothing more than supporting MS, 4) every language has its purpose for instance java works WELL on server side apps and enterprise apps (remember the post from the other day about this), 5) to say that java will never be used on embedded devices shows your ignorance of java - it's used a LOT overseas right now and is coming ot the US soon so get used to it.
I know you folks hate java because sun "controls" it but people wake up realize that just because it "can't" (which @ some point it probably will be able to) be used to write an OS does not mean it is useless.
Remember a good programmer/developer knows to use the right language for the job.
The game logic is very much tied to graphics performance. AFAIK, you can't really have collision detection, object movement, network play, etc. without it being tied to framerate. Which, of course, AI would be tied to things like object position and movement. Now what would be possible is to have certain small things be implemented in Java (like motions that certain objects go through.. scripting type stuff). That is how Quake (and Unreal IIRC) handle addons. They use an interpretted bytecode much like Java (Quake uses a subset of C called QuakeC I believe). Unless a game is compiled from Java to machine langauge before hand (not JIT), I don't think it would be possible to have a whole FPS game in Java--even with all the enhancements on the hardware side.
Dijkstra Considered Dead
I don't even speak english, man , give me a chance...
Je t'aime Stéphanie
I was talking about assembly programing, not about machine codering. That's too different. Besides C/C++/JVM compiles to MachineCode, or OpCodes whatever, not to assembly. That's just a matter of naming. The point is that I'm happy we agree in general. ;o)
-=-=-=-=
I know life isn't fair, but why can't it ever be un-fair in MY favor!?
C also has better facilities for bit-twiddling, and mixing itself with assembler than Java does.
Any sufficiently advanced technology is indistinguishable from a rigged demo
--Andy Finkel (J. Klass?)
What about 60% other? Do they use Linux, because it offers them less money?
But the percentage of large enterprises running some Linux servers is on the rise, with almost 50 percent of those surveyed doing so, she added.
So if I a big M* company is running two Linux servers are they in the statistics?
Some data is really confuzing:
The survey also found that 77.2 percent of the developers surveyed chose Red Hat Linux as the distribution for use with a Web server or Web application server. This is more than three times the 21.8 percent who selected SuSE Linux or Mandrake. Caldera OpenLinux and FreeBSD followed, with 21.4 percent and 20.4 percent, respectively, the data showed.
77.2% + 21.8% + 21.4% + 20.4% = 140.8%
I this find this very amusing.
They'll do what most commercial Java apps I've seen do already--ship a JVM with the product.
Seen bad java code, too. Worst example was an entire app written as one method within one try-catch. Sad.
A feeling of having made the same mistake before: Deja Foobar
Are we reading the same thread here? To me it seems that majority of posters are commenting more along lines "Java is stupid, Java is slow, I don't like Java, C/C++ for Kernel, Java is evil, it's just a toy" etc. etc. I don't see it as "Slashdot Approved" in any way. Personally I think "right tool for the job" should be the guideline, YMMV, whatever rocks your boat etc. etc., but for many Java itself is a red flag (smaller than Microsoft but still). I'm bit surprised to see people saying "it's unfortunate that Java is being used as the teaching language", without much reasoning why that is bad.
The fact that IBM sponsored the study is of course different matter; IBM is the biggest sponsor of Java bar none. They have committed to using it, perhaps even more than Sun has. I personally don't think IBM influenced the study directly in any way, but they sure have use for its results. And everyone knows how both methodology of the study and the way results are published has huge impact on what the results look (sound) like.
I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
Indeed, the right tool for the right job. same thing with OS's
There are two kinds of developments: those that need object oriented, and those that don't. If course the real distinction is always fuzzy. OO is not a universal method for everything, but it certainly proves its worth for a lot.
That said, I think the difficulty people will have in understanding the shift to Java is because of the continuing confusion of referring to C/C++ together as if it were one language. C and C++ are not the same language for any practical consideration. Sure, you can write C and call it C++ and it will compile. But C++ is supposed to be something different than C, while giving you stuff C also has. But the distinction between the two kinds of developments mentioned above fall between C and C++. If you don't need OO for your project, then you write in C. Even if you compile it with a C++ compiler, it's still written as C.
I believe that Java is taking more from C++ than it is taking from C simply because more and more of those kinds of projects (applications) that need OO, do not need the facilities of C. While C++ has good abstractions, it's always been too easy to do it wrong and code like C. Java doesn't let you do that (as easily).
During the next economic boom cycle, more application projects will begin. Java will be more favored (if you believe all this, and I do). But that won't mean there will be a lot fewer things that need non-OO C ... there will just be a lot more new needs for which Java is an excellent choice. The thing is, those are projects that would not have been done in C anyway; they might have been done in C++ or one of those proprietary languages.
For me, the biggest reason I stay with C programming, as opposed to going with C++ (for some, not all, since not all projects I do would benefit from OO at the coding level) is because C++ is C with the pluses. While some certainly see that as an advantage, I don't. I see C++ as some kind of hack and fear that what I might have coded in C++ would still be tainted with too much C-ism. It's not the OO part I'm worried about; it's the C part.
I look forward to taking the plunge into Java. I'll skip C++. Some things will still be done in C. The big reason I have not done so before, or used some other strongly-OO language (like Smalltalk) is because the environments those languages work in have been too "academic". Look at the early hacks just to run Java programs to see what I am referring to. With advances like gcc support for the Java language (and Sun effectively losing pedantic control over it), I'll be able to fit a project developed in Java into a production environment more easily. These advances are shifting the line which determines whether a project benefits from using Java, and improves the margin in favor of OO where C++ wasn't enough to do it.
In summary, Java will take some from C, more from C++, and it will do this mostly in all new large scale projects for which it is far better suited. The gains will be seen more in percentages, rather than in absolute numbers.
now we need to go OSS in diesel cars
The results are all wrong! Objective-C is taking over when millions adopt Mac OS X!
Who wants:
int AddSum(int a, int b) {}
When you can have:
- (int)AddSum: (int)a andNum:(int)b {}
Simplicity people!
Sun are just as much corporate opportunists as MS. Just because they pushed their VM setup cleverly doesn't mean that the original idea was from them. Just read about it in a Java book where the author reminds his readers that he remembers the first Pascal VMs on the AppleII... Anyway Java performance sucks and will surely continue so as long as the client side is made in Redmond. C# is the kind of next step in dev that's required now and I don't see any real competition. Borland were decapitated and wallow in the DB shit apps. Nice compiler, great componenents, shame about the short-sightedness.
Templates-- Java has the Object base class which subsume the need for templates; all the Java containers are set up to hold Objects, so you can cram whatever you want into them. Pointers-- Java objects are completely implemented with pointers. You don't see them explicitly because they're an inherent and mandatory part of the language. Everything's passed by reference.
I don't see number of developers as being all that meaningful a measurement. I'd guess that the vast bulk of Java development is for relatively small applets and servelets, and since that sort of programming is considerably easier than serious application and OS development, the bar for being a Java developer is lower than for being a C/C++ developer. Developer hours, though harder to measure, would probably provide a more meaningful representation of how "big" a language has become.
That being said, unlike a lot of posters here, I don't see speed as being a permanent impediment to Java's growth. We're already at the point where some serious Java apps are fast enough for everyday use, and I expect that to be more true over time as a) hardware continues to get faster and b) OS support for Java gets faster and more integrated. Mac OS X does a truly beautiful job of integrating Java support into the OS (ironically, better than anything from Sun itself) and some Linux solutions aren't far behind.
And it's nice to hear that it's taking market share from VB. Java may never live up to Sun's early visions of taking over the desktop, but if it helps slow down or even stop the progression of VB/C#/.NET (and yes, I know these are three different things, but they're all clearly connected as elements of Kaiser Bill's Evil Plan) then that's a good thing.
The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
While I personally dislike Java, I think one of the reasons it's doing so well is the ability to create Java servelets on almost all platforms.
Really these are just overblown CGI applications, but really shine when you're doing something like online reporting or database manipulation.
The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
The bytecode idea is a really good one, especially with the large (although shrinking) number of platforms you have to support these days, and the possible rise of VLIW processors on the horizon. I don't really like coding in Java all that much, though. Is anyone working on a compiler for another language that compiles to bytecode that will run on a JVM (rather than a internet-c or c# vm)?
Narrative
To each her own, I guess...
I can't help feeling a bit skeptical here. Who counts as "Developers using Sun Microsystems Inc.'s Java programming language"? I program Java, but I'm no expert. My professional work relies principally on C++, with odd bits of Perl or Python used on the project where they're convenient. Do I count as a "Java user"?
I suspect that the reality is that more programmers may now know Java, at least to a "competent" level. This is an inevitable result of the current trends in academia, and of course the hype of a couple of years ago. On the other hand, how many developers actually use Java as one of their primary languages is a different question, as is how much production code is actually developed using that language.
Reading between the lines of the article, I don't see anything to dispute this theory. And how can Java be rising "at the expense of" C, C++, VB and such anyway? Surely programmers who use these languages aren't just forgetting them in order to learn Java! This whole thing smacks of misleading statistics -- anyone know who sponsored the survey?
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
There is no way java will be able to overtake c/c++ in the embeded RTOS market in the near future, its way to slow. i have yet to see a router/switch vendor even talk about using java Several vendors still use hardware specific assemblers.
How many career developers out there acctually know of anyone dumping C++ or VB for JAVA?? JAVA is really neat and very Avantgaurd(yea I'm sure I spelled it wrong), but it's not ready for prime time yet. And it won't be next year either. Get real ZDNET.
I think the decision to drop Java from XP won't be all the huge. Consider that most full-on Java apps ship or can ship with their own JREs. Who cares whether the JVM is there on the OS. Just ship with a JVM as part of the application install. Bingo, your program runs.
Over the net, this gets more difficult. But applets aren't as huge a part of the web as they once were. Plus, won't IE just pop up a dialog box asking people if they want to download a JVM? And wouldn't other browsers ship with a JVM anyway?
My mate was writing in Z80 10 years ago and he still is.
Mind you, with the Gameboy advance out now he may change to C.
hey, /. cut off my template tags!
should have been:
template <typename T>
Should have used the preview button...
Anonymous posts are filtered.
Because, first off you obviously don't WANT to find them since I told you were to look for 3 good examples.
Here's another, a very sophisticated UML tool -- IMO better then Rational's Rose.
www.together.com
I don't like to complain about moderation. I have moderated on occasion, but this is too stupid to let pass. The post was well written. You may disagree with his position but that doesn't make it flamebait!
_damnit_
It's my job to freeze you. -- Logan's Run
Ouch... okay good point :).
This sig has been temporarily disconnected or is no longer in service
DVD can be done. Java is actually as fast as C++ for numeric intensive applications such as that.
CD-R is quite doable in Java if you code it carefully; you don't get garbage collection pauses if you don't generate any garbage...
Java isn't you're fathers Java any longer, it's not quite as fast as C++, by and large, but it's often within a small percentage; and with current processor speeds, but mostly who cares about even a 50% hit?
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"SUN E10000s are expensive - $25k is tiny. WebLogic and WebSphere are grotesquely expensive too. All empirical studies I have read show that as a runtime environment COM+ has a 10x advantage in price/performance over J2EE. Java development is 5-10x faster than C++, but has no advantage over VB. All of this explains why my last two clients (think big, big organizations) have turfed Java and standardized on COM+/VB.
JAMID has been favorably compared to Quake2/Unreal by EvilJohn, the organizer of Quakecon. (You can see the comments at javagaming.org).
And it was written in 1 month by 3 guys.
How long did Quake 2 and Unreal take to write in C?
It's good for certain things; rapid development of short-lifetime apps, ease of networked solutions (internetworking of apps is a framework built into the class library), server applications via Servlets. It's not as good at GUI apps due to performance/memory usage issues, but that may change to the better as better JVMs are built.
It'a a matter of horses for courses; just don't believe it's a one-size-fits-all solution. No such beast.
(There *was* such an OS, it was called JavaOS and was designed to run on a hardware implementation JVM. Do a websearch and you should find some interesting references..)
Yes, you missed the point. First, the VM based versions of Java (using adaptive compilation as opposed to simple interpretation) are now very competitive with C++ speedwise. Sometimes slower, sometimes faster with usually a fairly small delta.
C is generally more efficient, but you lose object orientation.
Finally, there are traditional ahead-of-time compilers for Java like gcj (which shipped with gcc 3.0).
Java is well suited to a large percentage of programming tasks. For those areas where its not appropriate it can (fairly;) easily call C/C++.
Java is open, productive, fast, cross-platform, widely taught, supported by every significant software company, and somewhat future-proof. What other language/platform comes close?
The real proof will be forthcoming - when many anti-Java Luddites are in the unemployment lines, still complaining about it... ;-)
186,282 mi/s...not just a good idea, its the law!
Galileo: "The Earth revolves around the Sun!"
Score: -1 100% Flamebait
They do exist for some vector boxes but they are not as good as the FORTRAN versions. This is partly because there is much more interest in solving the problem for existing FORTRAN codes (C programers tend to be willing to recode) and partly because there are design problems in C that make detection of vector operations hard.
The reason DVD codecs are likely to be written in assembly is that Intel wrote the MMX instructions for that very purpose and it is much easier to hand code for the handful of cases the stuff is relevant than design the compilers to recognise them.
Bet you wish you thought of this nym first
Which methodology did Iridium choose, and, did their developers get enough training in it to be useful, or was it a case of a team new to OO in general getting a couple of days' worth of "training" before starting out? That's a recipe for failure in *any* language/method.
Hardware designed to run Java seems to run it fine and with a huge amount of speed increase over normal pc hardware.. By that line of thought, all that needs to happen is for SUN to get with the hardware mfgs, spread around a little bonus money , and get them to better support java apps. Java's a little complicated to program in, I'll admit I tried it, didn't like it, but I'm a little cpp biased.
Are YOU listed?
Most professional programmers writing Java are writing server-side code. Their users don't need Java, just a web browser. And if a business wants to install Java fat clients on their employees' machines, they can install a JVM at the same time. Therefore, XP's lack of Java will have almost no effect on the amount of work being done in that language.
Care to substantiate that claim or are you just blowing smoke? What are you implying anyway? That MS is buying people/politicians off (wouldn't surprise me actually)? Taking out contracts on Sun personnel? Developing brain-washing devices to get back the mindshare they've lost? Better be something pretty magical considering that I work for the leader of the Global 500 and Java is well ingrained in our operations.
LEXX
"Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"Ick
I'm going to watch with great interest how Sun is going to get their own Java VM on Windows XP.
Will Sun make a web site available that will allow the download of a Java VM for Windows XP users?
Yes, I was a member of the team that wrote it
The physicists response to the success of the Web was to boot us out of the lab when our contracts expired
If Palatzi has finaly got the management to stop backing the PAW loosers that is good news.
Bet you wish you thought of this nym first
Linus will move all of the source over to Java. It'll be slower, but at least it will run on all platforms (including the PS2).
Carmack and the iD folks will release Doom 3 and re-release Quake3 in Java. It will run a hell of a lot slower, but that's what ATi Radeon 8500's, GeForce3's, and Pentium 4's are for, right? ;)
Microsoft will release Internet Explorer 6 in Java, after realizing that scrapping Java support on XP was "a big mistake." The new version of IE will run on Linux.
Lastly, RMS will release the GPL, version 3.0, written in Java. Since it will be readable on all machines everywhere, Microsoft will finally be able to read it, understand it, and issue an official apology for calling it a cancer. They will then embrace the GPL, change the wording slightly, wait until everyone starts using the MS GPL, and then change the wording slightly so that it is incompatible with everyone else's version of the GPL.
What about the fact that it is much easier to decompile a java program? While this may be great for the open source crowd, but the cathedral people will eventually be uncomfortable with it. .NET & C# are going to take off that fast either. How many companies have you heard that will actually upgrade their products to use any of the .NET stuff?
Java dooms itself by locking itself into one paradigm--OOP. OOP is alright, but it isn't always the best solution. I don't think Java will take off that fast.
C, & C++, are more flexible, and they are both more powerful. I don't know what I would do without templates and pointers--both of which are missing in Java.
Without templates, you have reinvent the wheel each time for every new data type you want to create which you want to use an alogyrithm(sp?) or storage method, and templates let you get around this problem. Pointers make structures like linked lists (with & without skip lists), double linked lists (with & without skip lists), and al sorts of trees easier. It takes a lot less time to add new elements to a linkedlist than to the add new elements to an array. I never even saw skip lists implemented in Java.
I think java is nice for the web, and playing around with, but their are still several issues with it.
At the same time, I doubt
At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
Java GUI's are dead already. They are talking about java on the server. As you said, you are no java expert.
I expect that if this course holds true, M$ perhaps will again be making an about face and including Java support again in some form in its OS's. However, they probably will end up embracing and attempting to kill Suns implementation. This could also bode well for the variety of companies who have adopted the Java2 standard and included Java engines in hardware and software.
Visit Jonesblog and say hello.
Someone forgot to moderate the article as Flamebait...
Nevrar
So Microsoft is not including support for Java in .Net and Windows XP. Isn't that interesting? You'd think that a language, soon to be used by 60% of developers, would be worth supporting. I mean if they are not going to support Java, why are they supporting C++? I mean less people are using that, so why support that if you won't support Java?
Of course it's real simple, C++ doesn't threaten Microsoft's monopoly. They'll even support perl because they don't see it as a threat. It's certainly not that Perl has some broader base of developers.
This sig has been temporarily disconnected or is no longer in service
Stroustrup's presentation notes can be found here (PDF format). I invite anyone interested in knowing what he actually said to take a look. It certainly doesn't sound much like Java to me.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
What do you think C/C++/JVM compile to? Chopped liver?
EVERYTHING that can be done in a high level language can (and eventually, must) be done in assembly/machine code. It's just a matter of difficulty and implementation. It's a lot easier to have a compiler do it than do it by hand.
Yet another article whose main point has absolutely no bearing on my day to day programming life.
Do not spread "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0" over the internet, thank you.
Well I guess it depends on how you measure "speed". Do you mean perfomance time related to the application itself or do you mean time to market? Which is more expensive for a company - hardware or humans? The human cost is often overlooked when we speak of how "speed is of the essence".
I know plenty of developers that like Java simply because it's easy to program and you can roll out applications relatively quickly when compared to C++. Now I know that statement is opinion and everyone has an opinion, but saying that Java is slow is misinfomed. Given that applications are so network-centric these days, Java can truly shine in a server environment where the resources are plenty.
But to be honest, comparing these two languages is not fair. Here is a good article on why they are apples an oranges
There's no margin of error quoted so this is obviously not a scientifically valid survey.
Seriously, folks. Does one avoid taking this kind of study with a grain of salt simply because it supports a Slashdot Approved Technology?
If this had been a study sponsored by Microsoft presented at a Microsoft conference supporting Microsoft technologies, people would be gathering up the pitchforks and flaming torches.
Feel free to mod this down to the pits of Hell, but we both know it's true.
Look at all those OS kernels and low level software. Is there there any way that Linus will throw away his kernel for a Java replacement?
Ok, I hear your arguments. But it is not about choice of language. It's about choice of model.
In C, you're developing in structured programming model. In C++ you're developing for object oriented programming model. C is the best known language in its model. It has easily killed BASIC, PASCAL or any other competitior. And Java is a very strong language in its arena it seems like it will be able to kill C++ in a year (as the article says) and any other competitor (Smalltalk, ObjectPascal) is already out of the way.
But until we change the way this machines operate object oriented model will not dominate. Thus in a few years we may see KDE replaced with Java version. But it's unlikely to see Linux replaced by JOS (http://www.jos.org) in even twice that period.
If MS writes good documentation then they can't charge you $$$$ for training seminars. C'mon, the poor guys only made something like a measly $25 billion last year. You can't expect them to make enough money by simply screwing you on the OS and the IDE.
So that's how it works, huh? Ask an open-ended question, state that you are obviously not well informed, plead to be proven wrong, be polite as possible, and you get flamed?! Screw you. I said I was not an expert, I asked why Java was increasing in popularity, NOWHERE did I say "Java sucks," I said it seems slow. Thanks for proving me wrong, try not to be such a prick next time.
We dance to all the wrong songs.
--Refused.
I don't know about CD-R or DVD (though I suspect most limitations consist of the lack of a hardware speaking interface in Java), but with the Office suite comment, you are refering to the lack of a fast windowing toolkit for Java.
Believe it or not, that's about to change. If you've ever seen IBM VisualAge environment, you should know that's written in Java. The window speed is just as fast as any office suite. I was surprised just how fast it was.
The people who wrote VA work for a company called OTI. The windowing kit they used was something proprietary and closed called JFace, but from what I understand, they are ready to release and open-source it to the public in the next few months, although the website is password protected right now.
Don't sell Java short. it's not system level programming, but it's hardly something to be dismissed as 'too slow'.
I was thinking of how to intentionally fail my drug test... It would make a good memoir story someday.
Yeah, it's so virus writers can't steal your address book and wipe your appointment list. Oh yeah, and it's also so that you can actually develop software for multiple cell phones/PDAs with few cross-platform concerns. Make sense?
The difference is that Pascal was popular in academia first, and only later used for real applications (such as the Apple Lisa and LisaOffice and later parts of MacOS), just in time for C++ to start to catch on. Java has pretty much taken over the middleware segement in corporate programming, and is now moving into academia.
Best post EVER!
This isn't a sign of the superiority of Java or the inferiority of C++. It's just a sign that C++ is way overextended, from the systems and large applications realms into the realm of multi-tiered applications with database backends. There, efficiency and bend-over-backward flexibility are much less important than fully featured libraries and short development cycles are much more important. I'm surprised that VB is suffering, though. That's a product with a place where it is clearly the best. In my Perl niche, I can feel Java squeezing in at times, but I'm pretty safe. C++ still has way too much of the market for me to worry.
Even Slashdot wants to hide some things
How many of these "Developers" surveyed acctually have a job coding, not playing around at home? And also how many are using it in thier job vs just checking it out? People like to argue that machines are getting faster so thier slow app will now run ok. But what that really means is that my C apps that blew away your JAVA apps on yesterdays PC, now bury it even deeper on todays. The sooner everyone realizes that write once run anywhere is a pipe dream similar to the perpetual motion engine, the better. TRK
Can't write an FPS in Java, eh?
http://www.javagaming.org/News/news.html
Microsoft is trying hard to squash Java, and it'll happen within a year or two. There's a lot of stuff going on behind the scenes that the public isn't necessarily aware of, and getting rid of Java is definitely very high on the Microsoft priority list.
Got Rhinos?
"Hardly used" will not fetch you a better price for your brain.
Keep in mind that Slashdot is bastion of C/C++ hackers who really don't want their skills obsoleted.
:)
It is easier to light one candle then curse the darkness, but its human nature to stand in the dark and curse.
I found the "Java Quake" comment particualrly amusing siocenw e just SHOWED exactly that at Quakecon last week
Err.. thanks for trolling? :(
Anyway...
Sorry, it's Windows XP that doesn't have Java support. (For some reason, my mind keeps thinking water guns. Go figure.)
MS XP Drops Java Support
Also, there have been a few /. stories on MS and Java:
Microsoft presents AVAJ
Microsoft's COOL
Microsoft's New Language
Microsoft Manipulating Java
et cetera. Additionally, IE will no longer have java (see Microsoft drops Java support for Mac, Unix)
Note to moderators: in case you're trigger happy and moderate down everything with a score of two, I've set this with a score of one to appease you.
--TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
...and poor coders blame VB.
Actually you can. True, only one iterator per connection(you are using ADO, I'm guessing), but you can create multiple connections to the same database and get multiple iterators(MoveNext, etc).
There's no reason to do your VB programming in Access BTW, unless your intention is to distribute your app along with an Access database. Use VB proper to connect to an Access database and you'll find less limitations.
The next generation of MS programming tools looks pretty good. VB will be strongly typed(no more voodoo variables), and fully object oriented, supporting polymorphism and inheritance. I imagine a lot of games will be programmed in VB since it will have hooks into DirectX.
Also, outside of VB C# looks killer and should serve to do away with MFC, at least for new applications.
No, Thursday's out. How about never - is never good for you?
And I'm sorry for being a prick ;)
Suck it in, you freak of nature, and go to http://www.javazoom.net/javalayer/javalayer.html for a Java MP3 player, and watch as your argument evaporates to steam. So how many platforms has Winamp been ported to, tough guy?
Oh god, everything's changed so much. The big differences are event patterns, inner classes and the use of "bean" patterns. I think you'll be pleasantly surprised!
The article merely said that more programmers will know java than C/C++. Face it, java still sucks.
It would be interesting to see the growth of Java on Linux.
I program with java and linux at work Apache/Tomcat/Cocoon.
I wonder how much of the growth is outside application servers. ( Web logic, Web Sphere )
Where are the breakdowns.
Sorry, I don't buy this. I'm not an expert on Java however. As a matter of fact, I can't necesarily cite any programs I run that are built using Java exclusively. However, I do have some programs that use java in one part or another, and all I've noticed is that (sorry) Java is slow. Speed is of the essence at all times in our industry. Why is java picking up? I'd like to see somebody show me the light; show me a GUI program that runs on Java that is faster than a C++ program, and I'll gladly insert my proverbial foot into my proverbial mouth.
We dance to all the wrong songs.
--Refused.
It s a very sophistcated scene graph system which cooks down to display lists for speed... and all that logic is in (very fast) Java.
Which is why it took 3 guys 1 month to write JAMID.
Try doing that in C ontop of OGL.
Yeah, isn't that the truth. Try asking a bunch of CS 1 guys about "malloc". You'll probably get something like: Gee, what do you mean by allocating and de-allocating memory? Doesn't C++ have a garbage collector? What's a memory leak?
The article ends with:
The survey also found that 77.2 percent of the developers surveyed chose Red Hat Linux as the distribution for use with a Web server or Web application server. This is more than three times the 21.8 percent who selected SuSE Linux or Mandrake. Caldera OpenLinux and FreeBSD followed, with 21.4 percent and 20.4 percent , respectively, the data showed.
Forgive me if I'm wrong, but isn't that 140.8%?
So when will we see the Linux kernel being rewritten in Java? What, no memory management? What, it's too slow?
I think teaching Java from day #1 is one of the best things that could ever happen to the teaching of programming. It's not enough to teach some abstract CS concepts, and it's too complex to teach intro programming to kids, but for the cannon-fodder training of the great majority of average coders it's a hell of a lot better than C++.
So when can I expect to see a DVD player written in Java? CD-R recording program maybe? Office suite? (no, Office suite that runs FAST!)
Get real - there are some applications that writing them in Java is perfectly ok, but I can hardly see most of the applications that I and many other using daily - are being written in Java...
Hetz (Heunique)
There are quite a few firms creating products based on those standards.
As I see it, the sole reason Java seems to be overtaking C/C++ is that it doesn't actually have proper garbage collection. If it did, then 90% of programs would self-delete upon execution.
77.2 percent of the developers surveyed chose Red Hat Linux as the distribution for use with a Web server or Web application server. This is more than three times the 21.8 percent who selected SuSE Linux or Mandrake. Caldera OpenLinux and FreeBSD followed, with 21.4 percent and 20.4 percent, respectively, the data showed.
This shows irrefutably that 140.8% of web servers today are running Apache. And we thought it was losing market share.
My reading of the marriage literature is that the marriage/divorce statistics are actually quite accurate, and mean what most think they mean.
Many would argue that the percent of marriages ending in divorce is what you want to know. Say you are getting married this year. Not knowing anything about your personal characteristics, what is the chance of your marriage ending in divorce?
Information about your personal/psychological characteristics will change that prediction. One factor increasing your risk is if you have had a divorce in the past. People who get one divorce are more likely to get other divorces. However, the number of multidivorcees, so to speak, isn't big enough to account for that much of the divorce rate.
What is more misleading in my mind, is a failure to emphasize that your risk of divorce changes somewhat dramatically with various characteristics. The risk of divorce is much lower in certain demographic groups, geographical regions, etc.
The other mischaracterization, I think, is how marriages ending in divorce end. Most marriages that end end within the first couple of years or so. That is, the divorce epidemic is not an epidemic of individuals being married for years, having kids, and divorcing, its an epidemic of individuals getting married and then divorcing six months later. That is, the epidemic isn't an epidemic of marriages ending per se, it's an epidemic of bad marriages starting.
Anyway, just my observation.
You don't have to worry about memory allocation and pointers and stuff in Java, and there are loads of useful packages (libraries) already written that keep your hands even cleaner. All you have to do is look up the classes that you need knock something together. It's very quick - you use brain energy for designing your code, rather than keeping track of hardware issues.
I remember thinking, when I started, that "this isn't programming at all" because I was so removed from the computer I was running the program on. I don't have the same reservations now!
Java may be quick to write but - because it isn't actually directly controlling the machine it's running on - it runs slowly (because so much work is going on between it and the machine). A lot of work had to be done to make all those handy classes run as efficiently as possible and I think that's one reason why it's popularity is only peaking now, years after the hype. Oh, and another thing - a "killer app" has been found for it. I'm afraid it isn't a game! It's web services (servlets, EJBs, etc - things that don't require all the work - that's CPU work, not programming work! -that goes into rendering graphics and running GUIs).
A lot of scorn was poured over Sun's assertion that Java and XML were "a match made in heaven". In fact, it was suggested that the opposite was true - that XML was a Java-killer. Why bother using a language that allows you run your program on all (supported!) platforms when you can be sure that a platform-specific program will be able to communicate with other platform-specific programs without a problem? It's turning out, though, that they do work well together from the "business" point-of-view. You can knock programs together quickly, safe in the knowledge that they will run on just about any box you might be asked to deploy them on and know that they will ALSO be able to communicate with any other box, no matter what it's running. This is an obvious saving in time and money - you don't have to worry about platform-specific issues when desigining, just when optimising (in the place where I work, people generally end up spending more time fiddling with to OS or with databases than they do writing the code that runs on them!).
Sorry, I've strayed from the point a bit, I think! Java can never compete for speed with "native" code (unless it is being run natively, which I haven't seen in action yet, although I hear that it works well). The speed difference between the interpreted and native languages is least visible in non-GUI, non-graphical programs. You then add to this the fact that programming time is reduced through not having to design system-specifically - and, finally, the fact that web latency will mask the slowness from a web user - and the case for programming web aplications in Java is pretty strong. Using Java for "end-user" stuff is less sensible: the graphical environment is - like everything else in Java - isolated from the system, so it has to run slower. But in this case, the user can very easily see this slowness and can find it annoying.
I think I read somewhere - actually, a few different times! - about people writing operating systems in Java. I presume this work was recrational and not serious research! Where can you go from there? A Java Virtual Machine for the Java Virtual Machine "platform"?
FreeBSD part of linux???
Although I think Java is a good language, I think it's not very good for teaching at a college level. I consider myself lucky having gone through my college program in C++ right before their switch to Java. I have some resons for thinking like I do.
Java forces OOP down your throat. I'll admit that I like OOP (with the exception of the Fortran implementation), but I think it's a mistake to stuff it out front right off. Understanding how programs are structured and how the logic works is more important. In C++ you can have a simple assignment with a cout statment to show the results. With Java you immediatly have to start bouncing around with OOP. This assumes that every problem has an object oriented approach, which I think is very untrue. There are many times when a program is very strait foreward, and OOP should even be involved. C++ gives you the flexibility to choose your own path, but gives you the power in whatever way you choose.
Most importantly I think C++ is better for teaching because it forces you to learn about pointers. Now I hate pointers myself, but I understand that "this" points to "that" in memory, and that you allocate, and deallocate, or point it somewhere else. I mean probably the two most fundamental building blocks in a computer (non hardware wise) are the pointer and the datatype. Just from talking to underclassmen, I tend to get blank stares from them whenever I talk about ponters since they hardly understand the concept... which I think is pretty important.
I know C++ probably isn't going anywhere simply because it's flexible, powerful, (dangerous), and fairly efficent. But I wonder where Java will be if OOP loses popularity in favor of something better.
Or if they will both become obsolite once D#++ comes out being the successor to brainfuck. Yes, object oriented brainfuck, that's where the future is.
Also, Sun is planning to officially add generics to Java for the upcoming JDK1.5 release.
However, I would contend that most cases where templates are used in real world programming, they shouldn't. Readability and maintainability can go out the window without judicious care programming templates. Templates are ideal for containers, where they assist readability and maintainability. But in many (most?) cases, they result in code that is difficult to maintain.
This is, in my opinion, the reason Java will overtake C/C++ in popularity/use. Java code, with all its simplifications over C++, is easier to maintain and write. The results in fewer projects that end in failure. It also results in code bases that last longer, due to easier maintenance.
--Be human.
I find it's very common for people writing Javascript (or maybe just cutting and pasting) to refer to it as Java. To this day there's incredible confusion over the names.
But then out of nowhere in 2004 comes D! D shall over-throw them all!
what the hell is a 'junk character', anyway?
Can you do generic programming in java yet?
i.e. can you write a swap function that works for
all types in a type-safe manner?
in c++, off the top of my head:
template
void swap (T &t1, T &t2)
{
T t3;
t3 = t1;
t1 = t2;
t2 = t3;
return;
}
Can this be done in Java?
Anonymous posts are filtered.
I've never seen a java app that didn't make me vomit?
They're all horribly slow, bloated, buggy and run like molasses unless you running it on big-time hardware.
The current Slashdot moderation system is made by gay communists!
This sounds about right. Most of the Colleges around the country have switched to Java for their programming courses. I disagree with that decision though, becuase it is really easy to make the switch from C++ to Java, but vice-versa is not so easy.
Oh please. Sun has absolute final dictatorial say.
And please be sure to include the (tm) symbol when you use the Sun-owned Java(tm) trademark.
Java is the blue pill
Choose the red pill
Gee, this sounds like a familiar arguement for writing the ROM code in assembler -- of course, many vendors switched to writing their ROMs in HLL's years ago (I'm sure of C, C++, Eiffel, and Forth) because of the cost of bugs (patches are very expensive in ROMs), software development $, and time to market.
I may or may not like Java for client or server code, but Java is well designed for embedded applications. The vendor only has to write (in C or ASM most likely) the direct system routines needed to make Java able to control the system.
The exception to using Java being where the extra overhead in speed & memory (including ROM) multiplied by a large number of copies makes it worth spending more many in programming in order to reduce the cost of the product.
This does not meet Java will completely replace other HLLs in embedded code, but it does meet the goals as well as the others.
Embedded C is a perfect example of how this will work. With embedded C, unneeded parts of the standard C run-time are discarded, and the thinner remainder is a reasonable compromise for cost / performance / time to market
To a certain extent, I think the supposed Java portability is largely window dressing, and the run-time environment is often going to be trimmed (or drastically altered), but over time as CPU & memory approach $0.00, the portability will be more attractive even in the embedded market
Nothing like replacing compiler machine code with something that must run in a VM. Java's a fine language and all, but it makes me wonder what the driving force behind such a change is. Do people just not understand that it's at LEAST a little better when their programs have the performace that C offers?
BZZZZT
Wrong answer.
Java has had hardware support for Java2D (and thus Swing) since JDK1.3 JDK1.4 brought in VolatileImage which allows full access to the card-resident memory and on-card graphcis ops.
Well coded GUIs havent been slow in Java for a long time. But ofcourse this is typical of the time-lag in your average Slashdot knoweldge of whats goign on in Java.
I appreciate everyone's input; sorry for seeming so absolutely judgemental in my first post. You've all made me consider dusting off my 2 java books. But tell me, I've got Core Java with SDK 1.0 (oh yeah, this is old stuff) and Graphical Java. Should I dump these books because Java has progressed beyond this?
We dance to all the wrong songs.
--Refused.
Ive lately been hearing a lot about the industry trying to put java apps on PDAs and in cell phones, and all these little "internet apliances". This doesnt seem to make much sence to me.
Could anyone tell me why they do this? Wouldnt it be easier to use machine level code, and then not have the system overhead, so you can use a less powerfull processor?
I just dont understand maybe?
Welcome to my land of make believe.
As I said, I only have very limited experience. VB and databases are not my area of expertise. :) Thanks for the tip!
That was our intention. It just seemed easier to do it that way given time constraints.
Great! You just reminded me of another shortcoming of VB that frustrated me to no end. Glad to hear it will be fixed.
Agreed. C# definitely looks interesting. Again, it's not in my main field of work, but cross-pollination is always a useful exercise. :)
How in the world did you get modded up to 4? Your comments are not very insightful, and your writing style is painful.
Don't you mean Visual Basic Concentration Camps?
(p.s. Yes, I know I could RTFA to clear this up, but it's an editorial complaint)
First, Java is not slow, it is slower; as in slower than tweaked C++ or C. Is it orders of magnitude slower - absolutely not (by the way, I certainly realize that you might be able to find a completely unrealistic example where that is the case - so what?). On the server tier, however, the speed difference ain't so bad; it certainly is not bad enough for everyone to drop it altogether.
Your supposition that Java must not be growing more popular than C++ seems to be based on statement that Java GUI programs are slower than C++. I wasn't aware that raw execution speed was the *only* criteria for a programming languages popularity; here I thought it was a gestalt of speed, ease of use, utility, tools, etc. Try looking at the prevalence of code at the server level; betcha you'll see Java there and guess what? It ain't GUI-based. Servlets are dismissed at mere uber-CGI; however, they are scorchingly effective and easy to write.
And your explanation of the divorce statistics are overly concise (to the point of error). I won't dispute your idiot theory (having no data handy), but even granting that, then it's the percentage of successful marriers that is actually much higher.
I do like how paint Java with the brush of religious zealotry with your use of the word 'saved'. Quite effective.
Back here in the real world, I work at a company with mixed C++/Java development. Primarily C++, with the Java teams (of which I am part) barely tolerated by the old-school management. Amazingly, despite the fact that our code performs better than C++ (true) and we are always far ahead of schedule while the C++ teams running into roadblock after roadblock (also true) we still have to continually justify our use of Java to the C++-loving managers. I also thought it was pretty funny how difficult it was for the C++ guys to upgrade from FreeBSD 2.6 to 4.0 while we can move between Windows and pretty much any flavor of Unix without even noticing.
I programmed in C++ for many years, and I thought it was a flaming piece of crap the entire time. I'm endlessly amused by opinions like yours that I'm somehow not a "real" programmer because I choose not to flagellate myself with the whips of dangling pointers, stack vs. heap allocation, ridiculous usage of overloaded operators, broken templates and exception handling, inexplicable linkage errors, and who-knows-what-else that I've managed to supress in my subconscious.
My question is: what don't you like about Java? I've coherently summarized my argument against C++, and believe me I can (as a past C++ developer) get into quite a bit more detail if I need to. What's your position against Java?
ZFS: because love is never having to say fsck
There are countless examples of braindead design like this in MS development products. Not the least of which is MFC.
VB is great for quick one-off type applications but I found it difficult to work with on projects of any reasonable size. It could have been so much more than what it is.
CPU's and memory are cheap, good programmers are expensive. Your assumption that speed is essential is correct but it applies to time to market more than to performance. Execution speed is not so relevant since hardware is relatively cheap compared to programmers (even lousy ones). The year salary of one programmer will likely solve any performance problems you have when converted to extra hardware.
Swing is not lightweight but given a decent PC it will run. In fact all development tools I use are written in Java and I'm not complaining about performance. I'm sorry I can't show you a java program that is faster than the C++ version. However most java applications I could show today, you would still be in development if they were written in C++. That's why java is picking up, you get things done in it.
That's also why Java became popular on the server first. Typically server software is "one of a kind" meaning that each month spent on developing the app adds to the cost. If you have a small development team of say 5 persons costing about 5K $ (good luck finding them that cheap) and you can save 1 month that translates into a lot of hardware. Java development is generally seen as somewhat faster than C++ development so that translates into huge savings on one of a kind software development. Also Java is very scalable, it literally can run on anything from a credit card to a mainframe, so if you have a performance problem, throwing more hardware at it will likely make it go away. And since you develop faster you have something extra to spend. That's why many people creating server software have adopted Java. It works, it works reasonably fast and it scales nicely.
Jilles
Binaries vs. Byte-codes
Galileo: "The Earth revolves around the Sun!"
Score: -1 100% Flamebait
FEWER! FEWER! FEWER!
It's FEWER Visual Basic Programmers. You can't have LESS of something that is measured in atomic units!!!!
(Sigh. This is a losing battle.)
Let's see. I have an embedded linux device.
I can write it's app in C and have it take up 100Kbytes or I can write it in java and have it take up 2.3meg.. Yeah, I'll go the java route, oh and I need to upgrade my processor to deal with the huge overhead of the JRE.
Java is not going to overtake anything except in the cross-compatable on powerhouse platforms. It's too bloated and too slow for anything but.
Do not look at laser with remaining good eye.
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it.
--from The Tao of Programming
Nobody told me we were running a race.
So, EVERYONE, please go to ticketmonster.hostingsupport.com and REGISTER for a free login/password. You DON'T need to be a customer.
If the /. effect doesn't kill them outright, then logging in lets you submit trouble tickets. So, spam them with brilliant trolls about Jews, goat sex, niggers, WHATEVER! Make their tech support team a living hell so they won't be able to answer any tickets at all -- it's no big loss, 'cause that's how they ALREADY are!
Finally, please write a nice email to noalegal@noa.nintendo.com explaining how CI Hosting is using Pokemon graphics and characters illegally and in infringement of Nintendo's copyright. Once you see the Ticketmonster site, you'll see what I mean. Hopefully Nintendo will slap them with a big lawsuit.
Anyways, please join in and teach them a LESSON for SCREWING ME LIKE THIS!
Adobe Illustrator, etc, does too... can't blame that on Java
Hey... I want a C/C++ compiler written in Java -- after all, I think my Java compiler is written in C/C++
Doesn't this seem to imply that FreeBSD is a Linux distro?
"Hardly used" will not fetch you a better price for your brain.
I will boycott java and only use C if that happens. Java isn't a good language for writing an os.
Part of the difference between Pascal and Java is Java is the embodiment of a completely Object Oriented language, where Pascal was another in the long line of function-based languages. Pascal's role n the academic world was more as a training language for other languages like C, Modula, or Ada. Java, on the other hand, is a paradigm shift. That's why Java is gaining ground outside the academic world where Pascal merely floundered.
I appreciate the feedback as I've been curious about this.
I guess I don't notice the problems for a couple of reasons.
A lot of the work I do is disposable. I can build my apps FAST with VB. Which is good. I have litte time to build them and in a couple of weeks they are gone.
And I guess the work I do (GUI front end/SQL Server back end) works real well w/VB.
I work w/C++ and java and I do really enjoy that work (at least partly because I do that on my own and work on what I want). But I've been curious as to why the big knocks on VB.
Thanks.
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
It's not just universities... Java is becoming the official language of AP Computer Science in 2003-2004, so now high school students throughout the US will be exposed to it.
The only problem is that they're not being exposed to the language. The syllabus is available here; according to it, the following things (among others) are considered "potentially relevant but not tested" (translation: you don't have to learn them):
Note especially the lack of any input functions or public static void main - it seems that students could easily get a 5 (the highest possible score) on the AP exam without being ever able to write a working program.
Given the many shortcomings of the new curriculum, I'm guessing that the most motivated students - the ones who plan to study computer science - are going to go out and learn stuff on their own anyway. The American students who only know what they learned in AP Computer Science aren't going to be getting the best programming jobs because they haven't learned enough programming...
not at all. Java is used mostly on the server side. Java GUI's are bad so not many people write em anyway
STL is a bitch to learn without tutorials (which was how it was with me) , the Java equivalent is simple .. even novices can use it straight up. That for me was the seachange event that explained how it was so much easier for Java developers to actually get stuff out the door.
... except me .. and I did so only because they paid me ... now I do only Java. I still think in C++ but these days I work at a company that does its work in C and Java ... no C++. C for the hardware level and Java to make the apps portable from Win32 to Solaris to SCO. Even raw gui programming is simple in Java. And the APIs make even socket issues a non-event.
All the C++ programmers I know who went to Java never went back
Thats the way it is. I don't know how factual the article is , but I would not be at all surprised if Java overtakes C++.
Bitter and proud of it.
With hundreds of thousands of copies of an OS that won't do Java, that will have a very deep impact on developers. It doesn't do much good to make software that nobody can run.
Yeah, but how popular was Java on the client side, anyway? I don't see many client-side Java apps. Java seems to have found its niche, and it's server-side development (server apps and server components).
As for client-side Java web apps... they're usually stupid and frilly anyway. I've seen soem "wow, that's neat" ones but never anything useful...
OtakuBooty.com: Smart, funny, sexy nerds.
Well hey, I'm telling you about the apps I've seen developed in Java. If it's such a popular and great language how come I have a hard time finding apps developed in it? The only other program I recently used was a notepad-like java app by HP, it took lots of time to load and I don't know, the menus felt like kinda weird.
On a second thought, Java _was_ wildly popular among many of the dotbombs. Possibly the study is based too heavily on that time period. Does it still hold it's proportion of growth, or are IT shops, like us, drifting toward VB and other M$ development languages/suites?
A feeling of having made the same mistake before: Deja Foobar
Automobiles have overtaken diesel trucks.
Bush's education improvements were
...at the bottom of the article, the same survey says that FreeBSD has 20.4 percent market share among the "developers surveyed" as their Linux "distribution for use with a Web server or Web application server"
I love FreeBSD, but I was not aware that it was a Linux Distribution.
Java as first programming language isn't a good idea. First of all it's OO, which confuses most newbies. Java is definitely a high level language. No control to memory, many common data structures already implemented, and those are the basics of programming - even with Java. I've done a lot Java in last two years, and it's extremely easy to make unefficient code. When coding with Java you have to think all the time how this is done in the low level which is hidden by Java API. This is what you don't understand by just coding Java. As an OO teaching language Java is ok. I had coded a lot of C before learning Java, and it was really easy to move to C++ after that. Too often you see C++ done by former C coders who can't use all benefits of OO.
Maybe I have entirely missed the point, but compare C/C++ to Java is like comparing apples to oranges. C is not generally an interpreted language and therefore has completely different applications. Perl, Python, C#, and BASIC are usually interpreted languages and are comparable.
I use both Java and VB (and other things) and find it odd to hear that you can't find the information you need for VB, because I've always thought that MS's online docs were well-organized and complete. Usually when people complain about them they haven't explored what's available. It's usually possible to get a very specific answer to a given problem, often with sample code.
Try msdn.microsoft.com. Don't mess with their site navigation, just do a full text search.
As for books, quantity is not as important as quality. How many books on VB do you need to read?
VB does make it easy to write horrificly bad code. But in the hands of someone who knows the tool, it also makes it easy to write elegant software. For that matter, I've seen some awful Java code, too.
Sure, C & C++ are more desirable than java for core apps. But really - what's the development time for a server side app written in C? Java allows you to develop quick, flexible and portable servlets and server side apps disgustingly quickly. Granted - since nearly anyone who's reading anything here is a serious user, we run anything we can get our hands on hard. ./er's demand sick wicked reliability, and don't have too much of a problem waiting years for a stable product.
This simply isn't true for the vast majority of apps developed every year. Shops working for enterprises such as financial institutions, insurers (argh.) and most businesses turn out thousands of apps each year. Their requirements are often best met by something like java.
Just look at how much in the *nix/*BSD world is written in portable scripting langs like perl, Python, and PHP. Same thing, only a little more portable, and with a lot bigger backer.
My $0.02.
\Drew National Data Director, John Edwards for President
While I have noticed a huge uptick in the number of jobs which request Java experience (it's among the top), I personally have a lot of trouble adopting Java for projects because of three primary reasons:
-There are lots of nasty things about the language that are unintuitive and lead to sloppy code. If it weren't for the power of Sun and a couple of Sun partners such as Bea and IBM, Java would have been relegated as a poor attempt at improving C++ and would have been supplanted by better languages long ago. Hence Java's success is a VHS-type phenomena.
-The performance of Java on every JVM that I have tried has been horrible.
-Java is controlled by Sun. If someone fixed the numberous flaws of Java and created PowerJava, or some other variant, all of the religious nuts would flood Slashdot berating those "non-standard" crazies, and Sun would have the lawyers beating down their door.
I've been wondering about this, and I'm not so sure Java will even stay out of the "optimized stuff" for long, either. E.g., COLT JavaNumerics
But not all of the world is business apps either. Beyond that, there are REAL PEOPLE working on research and scientific applications, modeling/rendering and high-performance multimedia apps(including games), and MANY kinds of client side standalone apps (office programs, e-mail programs, Photoshop etc, etc) It sounds like some people think that Java will take over in these areas too - it's not enough to tout Java in enterprise apps (which I have no problem with) but Java has to be presented as some kind of swiss-army-knife language, that is superior to C/C++ in language design, and in usability for the aforementioned tasks.
Your rant seems to marginalize critics of Java as Linux-is-the-world geeks who don't get any REAL WORLD WORK done - but my point is there are "real-world", significant programmers areas that Java is simply not appropriate for yet, and might not be ever. The world may not revolve around "Linux/Perl/GCC and kernals" but it doesn't necessarily relvolve around "distributed enterprise applications" either - and 9-5 enterprise programmers are not the only "real" programmers either.
Sincerely,
Kevin Christie
crispie@hotmail.com
60% use Java. 40% use Java. yada yada. What's the breakdown of what those developers are doing with it. I'm not disagreeing, It just could make a big difference. I mean a certain, not insignificant, portion of developers I meet follow every fad that comes along. C# is evil, but it'll mean an easy switch if the internet gets taken over by MS. Just a thought. Besides that, who here likes this whole concept of corporations controlling languages. Sun 'owns' Java, MS 'owns' C#. Who owns c++? C++ may be screwed up, but at least it won't be screwed up purely for marketing hype, profit and politics.
The only thing you can be sure of, is in 10 years, you won't be programming in the same language you are today.
I'm so tired to read stuff about how "bloating" is OO, like C++. You can get a lot better result in C++ than C, but just depend of the quality of the code. For sure you may get in performance using some bad OO API like MFC, but plain C++ can be has effective than plain C...
In case you missed it Java took over years ago. Where is the niche for C#? Who the fuck cares?
not only are some people switching over to java like slashdot [would like to] suggest[s], but there's also the fact that java is being taught at more & more educational institutions. if VB or Delphi were taught at more universities, this story wouldn't exist.
yes, i learned java in school. however, i'll never touch it of my own accord. it might be the best programming language in terms of structured rules, but why regulate what you can do when you can do so much more than that, without the same *NAGGING* restrictions as Java? give me C++, VB, or Delphi/Kylix any day.
There was news that Windows XP will not ship with any native support for Java. Certainly, a user could add Java support him/herself, but how many users are going to take initiative to do so?
With hundreds of thousands of copies of an OS that won't do Java, that will have a very deep impact on developers. It doesn't do much good to make software that nobody can run.
Granted, many a Java developer's projects are meant for *nix environments, which is just one more pro for the side of good. But I wonder how XPs lack of Java support will affect the number of Java developers.
-WetDog
Is java really that good. I have heard people say that it is really good and is very similar to C++ but I never thought it would go so far as to completely overtake c/c++. Besides is it really fast enough to keep up with games that are being created now?
It would be rather humorous to see a operating system coded in java that required the virtual machine to run it...well whatever
Mathematician, n.:
Someone who believes imaginary things appear right before your i's.
>Going by Evans Data's "research" they might as well have used the results from a Slashdot poll.
/. poll?
Considering those Sony execs creating a movie reviewer, who says CNet (or Evans) didn't use a
w
If Nalgene water bottles are outlawed, only outlaws will have Nalgene water bottles.
Ok guys (and girls), I'm sure we all have a favorite programming language, and use our favorite tools for our everyday programming tasks, but at least professionally, I have to admit that Java is today a time and mission-critical-proven platform.
Some say that Java is slow, or doesn't have all the bells and whistles of other languages, but as a professional programmer I have yet to find Java slow (specially on distributed apps), or restrictive on what I can do.
I think what has made Java what it is today is that it is easy to use and learn, it is strongly object-oriented, applications DO run on multiple platforms without modifications (cannot say the same of the old AWT technology, but that's from the old Java days), productivity goes way up, and maintenance way down (just garbage collection and no pointers have saved us millions of dollars), and it is easily expandable (notice the evolution from applets to applications, from JSP to J2EE, support for XML, etc).
I only wish the Linux and open-source community embraced it as it should, since linux-java could be the foundation for a great trully standardized Web Services platform (and please, do not mention Apache, php, etc, those do not represent an integrated, well-understood platform).
"Java has its advantage: all platforms (except Windows2000, mwahahah) can run the code"
damn... i wish someone would have told me that before i started runnig all these java apps on my win2k box.. not to metion all that time ive been wasting writing java code. man.. is my boss is gona be PISSED when he hears this!
"Shut up brain or ill stab you with a Q-tip" Homer Simpson
I just put into production a nice Java 2 Swing app that is being used to handle all the report printing for our mid sized company. It works perfectly, the only glitch I need to work on is getting the screen to refresh better and make /find a file dialog box that allows for more than one file choice at a time.
We have no Java apps in our system. Because of my success, now I can write more java in our VB environment and we have the JRE on the production server.. Very cool app too, it concuurently processes business reports and
runs large reports batch ~jobs and send them to the Xerox printers for high speed printing. Later!!
Depends on whether you are trying to teach someone the basics of programming, or the basics of object oriented programming.
OK I've read a dozen or so posts dissing Java because it's "Stupid" or "Slow" or "None of the apps I run are written in Java" or whatever -- which forces me to say this: Programmers who write in Java are writing code for distributed enterprise applications. They're professional computer programmers, not ether breathing geeks such as ourselves. I say it's waaaay past time that we all collectively pull our heads out of our asses and realize that the world doesn't revolve around Linux/Perl/GCC and Kernel patches!! There's a whole world of programmers out there (who DON'T generally post to this forum because they're too busy getting work done) who don't live and breath everything Linux day in and day out. They work for a living.
End of Rant.
You live in a dream world. All Java sanctioned libraries are controlled AND OWNED by Sun. One day (perhaps not far off) they will start charging a licensing fee.
Unfortuantely I see Java being used more and more as a teaching language in universities, ergo more and more developers graduating out of schools are learning Java. Very few college programs will teach anything like C or C++ when they can teach object oriented programming using Java. These developers then move into the private sector and recommend developing using Java to their superiors. It's a vicious cycle. this is also the natural progression for those who are "saved" by Object Oriented methodologies.
While java can be wonderful for database access, where the most time consuming is the access it self. It sux when used as a processing language. Imagine Java decoding mp3? Or event DVD, I dunno!
The same happens to VB, or C# or other script languages like perl or python. Nothing can be better then a plain, compiled, functinal, not OO language to be used in preformance-critical applications. And to this kind of thing C is the BEST (ok, assembly might be faster, but ít's also too limited)
IMHO it's easier to have Kylix as #1 programing plataform, then having Java. VB is a complete succes due to it's development speed, and now a days Kylix have brought this to *nix plataform.
Let's think a little bit more before saying things.
Oh, I forgot, I really like to be corrected when I'm wrong. And if I'm not, I also like to know others opinion. (thanks)
-=-=-=-=
I know life isn't fair, but why can't it ever be un-fair in MY favor!?
In all this hype about Java having a majority share by 2002, people seem to be ignoring what's happening with other languages. From the article:
No kidding... There's not much uptake of a language that doesn't yet exist? Quelle surprise! Get back to me in a couple of years, though. With MS behind it, only a fool would rule out C# without even seeing the finished product. In 2002, C# should be available in a usable form for actual development.
Perhaps a more significant event will be the approval of C++0x, the new C++ standard, currently expected 2003-2005. I've discussed this here before, mentioning several aspects that are directly relevant to the present issue.
Ultimately, the article seems to assume the current trend will hold, in spite of Java's current evolution-not-revolution progress, and the imminent upsets caused by the arrival of C# and C++0x. Isn't that just a little short-sighted?
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Patrick was just a developer on the green team.
Why should other people suffer for the crimes of another person. If that was the case we would be boycotting everything.
If it makes you feel any better Patrick lost his $183,000 a year job, his $15 million in stock, his reputation and his wife.
The hallmark of an excellent programmer is the ability to learn and adapt. When I hire someone, I pay more attention to their attitude, creativity, and intelligence than I do to their list of "I knows". Certifications, degrees, and laundry lists don't necessarily impress me; capability and a willingness to learn always catches my interest. And anyone who comes in as a language bigot (or ignoramus) isn't going to be getting a check from me...
I might add that I've been quite successful in finding excellent talent.
As for mechanics -- well, I've spent enough time with gear heads and grease monkeys to know that working on mechanisms isn't something you pick up overnight.
All about me
Oh, very true. For example, if I were to do a poll here at MY office, I could tell you that 100% of the developers here use Java! 100%! Wow, there are no more programming languages being used anymore! They are also 100% male, which means that the end of the human race is getting close... :)
"Your superior intellect is no match for our puny weapons!"
If someone fixed the numberous flaws of Java and created PowerJava, or some other variant, all of the religious nuts would flood Slashdot berating those "non-standard" crazies, and Sun would have the lawyers beating down their door. Do you mean sort of like Microsoft did with J++?
"With hundreds of thousands of copies of an OS that won't do Java, that will have a very deep impact on developers.."
sure will, ***EXACTLY*** the effect (and affect)that M$ intends for it to have....
"everything old is new again"...in the late 50's and 60's Blue pursued every "platform specific" and "marketshare differentiation" strategy they could....it resulted in the rapid rise of DEC and HP sales of minis....which inevitably cannabilized MVS sales and resulting the "Great AS400 Giveaway" in order to retain some customers
M$, strategically, knows nothing that IBM doesn't know/hasn't done, as M$ is Blue's Love Child
M$ intends to force a platform split with Java, and then offer its Java-like, decade-plus old toad, C# as a "Better Java Than Java" and it will "make FULL use of your Microsoft technolgies"
the only difference between a cell and a room is whether you have the key to get out....MS will be finding this out in the next decade...
Ten quid, she's so easy to blind. And not a word is spoken...
...and realized that in the wake of all the press about .Net and C#, that it's time to remind the world who brought this sort of computing to the internet in the first place.
--------
Bleah! Heh heh heh... BLEAH BLEAH!!! Ha ha ha ha...
Java comes damn close to doing everything. That's one of its weaknesses, actually, Sun overwhelms you with solutions. Java is appropriate to application servers, embedded devices, GUI environments, parallel applications, distributed environments, and any combination of any or all of these. Lots of the hard work has been done for you (JFC, servlets, enterprise beans), and much of the OO extra rope to hang yourself (like MI and structs) from C++ have been removed or made safer. Not all PHBs are totally ignorant, there's reasons Java rubs many of them the right way, and most of those reasons can be quantified on the balance sheet.
AC's cheerfully ignored
Java, by design, has GC- can't get away from it. (Nor, do you want to- that's what makes some of it's selling points possible in the first place!)
Garbage collection would slow/stop a system while it was being performed- it doesn't matter how much horsepower you throw at a problem it still will render it non-deterministic. For some things, that could be tolerated- for a vast majority of things out there it'd be obnoxious to downright deadly to be non-deterministic.
You don't want predictable or unpredictable slowdowns in these sorts of systems:
Fly-by-wire avionics.
Industrial process control.
NC milling.
Automotive ignition control.
Military Command and Control (incl. Signal warfare systems- SigInt, ECM, ECCM, etc.)
Any consumer appliance (How about a microwave that takes a couple of seconds longer to cook something- some of the time...).
Automotive control computers (try a system that doesn't shift the transmission at the right times because it's delayed a second for GC...).
No, not all of this is coded in C/C++. Some of it is in assembly, yes. Some of it's in Jovial, ADA, Eifel, etc.
Pick the tool that makes sense for the job. I don't think a language designed for set-top boxes (That's what Java was...) is suited for much of anything other than things like Word Processors, etc.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
I have, I really really have...
One advantage of C++, in my experience, is its support for multiple paradigms. C++ isn't an object-oriented programming language, or a functional programming language, or a procedural language -- but it allows me to use all of those paradigms as needed to accomplish a task.
Software is like religion in that one solution doesn't fit everyone. Frankly, I'm happier with a well-written piece of Visual Basic than I am with a sloppy piece of C++.
As for functional programming: I think it is another excellent tool, but much overrated by its adherents. Note that I also have the same opinion of object-oriented programming and other paradigms. Each paradigm brings ideas to the table, providing new insights and techniques. None is perfect, and several can be quite useful.
All about me
I'm obviously not spending enough time in airports.
The study cited in this article refers to the number of people with Java skills, not the number of programs released. To quote:
"Java usage is even stronger outside North America, with almost 60 percent of developers expecting to spend some part of their programming time using Java."
This is one of those misleading statistics, like "Half of all marriages end in divorce".. What most people fail to realize is that the statement is not factually concise.. There are idiot-men and idiot-women who get married and divorced several times, which accounts for a disproportionately high "overall" divorce rate. The percentage of successful marriages is actually much higher, just the same as the number of coders actively writing in C all the time is much higher than the number of coders actively writing in Java all the time.
Lame article.
Bowie J. Poag
Everyone knows that java's been underlying program development in all languages. After all, computer scientists are machines for turning caffeine into algorithms, right?
It's evidently taking developers from the C/C++, but also the Visual Basic camps, with strong growth overseas.
It's about time!
Die Basic! Die!
You are receiving this message because your browser supports Slashdot Sigs and you have Slashdot Sigs enabled.
Pascal was once popular too, but that doesn't mean that a boatload of people actually used it for real applications.
I agree that Java is a good (not excellent) teaching language - the most popular one at that. And it is certainly better than C++ for most junior programmer types. But when it comes to power and completeness for REAL applications, you just can't touch C++.... yet.
However, mind you that there is work going on at Sun in terms of Java 2.x - an update to the language. If Sun does the smart thing and opens up Java's language design and takes it up a couple notches, Java very well could be the solid all-around winner on paper AND in practice. But until then, it's C++ in the real world of system software AND application software.
Just where is the niche for Java after C# takes over?
If you like java, chances are you like having sex with underage girls, too!
I was very impressed. Liked it alot. Am seriously thinking of using it for my coding.
It's open source, I think. Look it up in Google or whatever.
Now if Java programs would stop putting Js in front of the names...
All I have to do is to try LimeWire and Sun's Java development system (on a Sun workstation no less!) to see that the future would be unbearably slow that way.
So when do we start to port the kernel to java?
Hey! Maybe we can even convert the kernel to a java-applet!
You feel sleepy. Close your eyes. The opinions stated above are yours. You cannot imagine why you ever felt otherwise.
Real-time garbage collection is possible, as described by Donald Knuth in The Art of Computer Programming, third edition, volume 1, section 2.3.5, exercise 12. The basic idea is that whenever available memory is reduced to N, garbage collection is run in parallel with the main routine, with time shared so that the main routine still runs fast enough. N must be chosen so that garbage collection is finished before the main routine manages to exhaust N memory. Knuth gives an extensive list of references for more information.
http://www.open2.net/dd100/elvis/elvis.html
The moral of the story, statistics need to be taken with a grain of salt.
Statements like:
Garvin said. "Java usage is even stronger outside North America, with almost 60 percent of developers expecting to spend some part of their programming time using Java."
Is that in their spare time, at work, what? How much real work will be done with Java as opposed to C/C++?
Just an hour before I read this I was informed that my local school district is going to stop teaching C++ and replace it with Java. The classes taught now are "Topics in Computer Science" (which can be any "begginers" language the district thinks is currently most useful. It's Visual Basic right now), C++, advanced and AP. The last 3 will be replaced with Java, Java Advanced, and Java AP. This district is known throughout the bi-state area as having the "best class selection." It was among the first to offer programming classes, and has walls full of awards from state competitions. umm yeah... What does that say about our future programmers and how they'll be educated?
I'm in the same boat, doing some Java and VB/ASP/VBA whatever. In my opinion VB encourages "hacking" more than Java, because VB doesn't enforce any sort of oop design. OTOH VB can be easier to write or read, and the debugging support in the IDE is nice.
Try reading the Java bug reports that have been squashed by this supposedly open standards organization without mentioning a) why or b) the name of the Sun employee that unilaterally objected to the bug report or feature. Nevermind the fact that Java was withdrawn for both ISO and EMCA approval by Sun after Java reached a certain critical mass. Basically, lie to get in the door, and change your story once you have some measure of success. Just wait until Sun starts demanding a licensing fee for Java. If not this year, then perhaps next.
Performance one again gets fucked in the arse by the thug known as popularity.
Need help treating your acne? Come here!
I like it because I don't have to worry about several different OS's and garbage collection. It's easy to code in and I can get a string output of *any* data type, which makes it easy to debug.
It's that easy.
The number of developers means nothing -- there are more Macromedia Flash developers or Visual Basic developers than developers that any advanced language and Java combined, yet most of useful software is still written in C, C++ and sometimes perl.
Contrary to the popular belief, there indeed is no God.
I just can't believe all the comments I've read the state outright or allude to a mis-belief that speed is a non-issue with modern hardware.
While the world moves to real-time transactions, virtual-reality environments, extreme simulations, etc. etc., the Java-advocates try to tell us poor software performance can be compensated for by modern hardware.
Or that most programmers are building applications that don't require high performance.
HOGWASH!
Wake up and smell the coffee!
In the future, every application that is written will be embedded in a real-time virtual landscape. Even a batch processing system will be wrapped in a real-time virtual tapestry.
Cycles count. Every cycle counts. Always have. Always will. And these newly weaned Java programmers don't even have a concept of what a 'cycle' is anymore.
I'll do what the man pays me to do, but in the end I'm looking out for number one. So, towards that goal, I'm dusting off my C/C++ books. Time to 'get real' about programming again.
Even when it doesn't actually show any true statistics, like how many people were surveyed, or any other minor factors like, did 60% of the people surveyed work at the same company!
I'm sorry but I tend to like my "research" with some sort of graph, and something a little "meatier" that a single percentage bar.
Going by Evans Data's "research" they might as well have used the results from a Slashdot poll.
Hey isnt't that like the .net Framework, a platform and a VM, an every programming language can be portet to that....
I believe VB developers have out-numbered C/C++ developers long time ago, but that doesn't mean VB will replace C/C++. Period. Java is a clean OO language and I believe an experienced developer can use it to create applications under most catagories with acceptable performance. But for those shrink-wrapped software, there is a concept called "competition", I bet if any one use java to develop those general purpose software, his competitor can easily beat the crap out of it by using C/C++.Yes there is a Java mp3 player, but how many people are using it? any company made $ out of it? So the point is not can/can't, the point is which one is the best. Java fits in In-house projects perfectly well because it's easy and it does offer acceptable performance. and as long as you fulfill the spec you don't need to worry about competition. I don't have problem with Java, but it's kinda anonying when you hear some Java programmers talking about "Java is more OO than C++", even most time their audience are VB programmers.
...that you should stick your cock into one of the two a's in "Java" and have sex with it.
Two of Sun's JSRs were voted down by the JCP. Kinda undermines what you're saying.
The nice thing about standards is that there are so many to choose from. - ast
I'm sorry, but I just can't think of a language that assumes every encapsulation can be derived from one ultra-general class as being superior to C++. It's almost religious to think that everything must come from one deity-like entity. Are we all related to each other through Adam and Eve? (doubtful, but that's another story) So why model a language like that? What exactly is my new class inheriting from Object? Not a damn thing. Some things just aren't related in a system. They might talk to each other, but they don't need to have the same base class.
I coded some GUIs in Java and that was great. The docs were fab and Swing was pretty easy to use. However, the thing took 3 mins to load on a PII200 and the UNIX interface looked like kaka, despite my efforts to native-ize some stuff (which is a no-no in JavaLand).
Anyway, the next time I'm grateful that some schumck with a RIM Pager can 'interact' with my 'Java enabled' web page, I'll let ya know.
Chet
The development of Java and its class libraries is controlled by the Java Community Process, not by Sun.
relax, I'm just making fun
For those who think Java today is only suited for slow buisness apss I'd encoruasge you to sdo soem of the following:
:)
(1) Talk to a bunch of folks who went to Quakecon and plyed the JAMID demo. (You need mroe thena samplr of one obviously as everyone's opinions will vary to some degree.)
(2) Got to Siggraph in LA NOW and see the Pure Java F1 racer simualtro that is the talk of the show.
(3) Got to javagaming.org's "Big list o links" and check out some of the stuff there. Of particular interest are "Blastian", "Arkanae" and Cosm.
Those who want to keep their illusions, just skip all of this
Catseye
"Ignorance is bliss and boy do we have one happy government!"
And that has reintroduced us to the idea of "Please wait... Loading".
It's like being back using tape-drives, except this a language turning powerful hard-drives into mush.
Even though a few years ago you would be mad to write a game in C on a SNES (or your name was EA Canada), but now most are written the easy way...
VB/Java is taking over some ground from C/C++ in areas where its weaknesses (e.g. poor typing, no templates) count less than its advantages (better first-party libraries for boilerplate code)
who think java is still way behind c/c++ on performance issues. Have a look at this... http://www.azure-online.com/JavaRoam/
A lot of enterprise software isn't grunt work. (that you think so explains why you're disgruntled with your job).
You've stated that you can't stand Java without providing much of a tangible reason. Swing is not a mess. (Yes, I use it daily.) It's quite good, actually, and getting better. Java the language, while not the best, is good.
And Enterprise software is as real as programming can get... where else do you ahve to deal with very complex requirements, performance, scale, reliability, and usability all in one place? It's the ultimate balancing act and a wonderful & fun challenge for any programming team. Maybe you should look for another job, you don't seem all that motivated.
-Stu
An AC wrote:
That is a very real problem in professional development, and indeed with Java's libraries. They may be big, but in several instances they are poorly designed or redundant. AWT vs Swing, anyone? Big != Better, no matter how often certain people seem to claim otherwise.
Of course, what's more disturbing is that someone moderating on /. was sufficiently naive to think that this was a troll and not a valid argument against the pro-Java-library guys.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Actually, the article mentions Java vs. VB:
Hopefully this will reduce the number of times I hear the "I go where the money is" excuse from VB programmers ;)
The benefits of multi-vendor Java over single-vendor VB are too numerous to list here, starting with the fact that Java is a decently designed language (although certainly not perfect).
Thanks for the info.
Unfortunately, it seems that as usual, the Java guys have avoided problem areas rather than actually solving the problems. In summary, what we have here is C++ templates, but with
And all this is provided using a minor variation of horrible C++ syntax - do they never learn? :-)
In other words, you can create generic containers, and very simple generic algorithms. However, anything beyond that (metaprogramming, for example) is going to fall foul of points 1, 3 and 4. These limitations are going to be crippling.
I think these changes will probably be good for Java if they do get implemented. At last, maybe Java evangelists will acknowledge that a runtime exception is not an acceptable basis for "type safety", and write properly safe containers and algorithms. They've still got a long way to go to catch C++ templates, though, and even further to a language with really good generics. It's progress for Java, but there isn't really anything new and it's still ten years behind the field. :-(
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
dont worry most Americans cant speak English either.
Flame On!
I don't think that it is neccessarily that Java is a better language the C language. You can do far more things in C/C++ than you could do in Java. (at the moment) But what makes Java so much more appealing is that it is inhierently an object oriented languages. C on the other hand is not. You make C structures act like it is, but it isn't. Java has a very good enterprise level object request structure working for it. I think (not positive) that they are using CORBA to handle object requests.
.NET? Because that is where they see things going. Okay, I'm going to side with MS on one aspect. They are very good at seeing trends, but, they tend to get a little pushy as they move in to the new areas.
Everything now days is about object oriented programming, Reusing old code, Server-side proccessing. Why do you think MS is pushing
Sure Java is a bit slower. But the negatives of java are far outweighed by its benefits. The open source community should be jumping all over this. Java apps can run on about a bazillion platforms. All you need is an appropriate interpretor for your platform and you're ready to go. I am actually surprised that people are holding onto C for as long as they have.
C++ coding is no more difficult or time consuming then VB, and in many cases it can be easier; both to design and maintain, due to the more expressive grammar. The problem is that Most VB programmers are stupid and don't know how to design software.
The fact that the windows C++ API is terrible dosn't help either...
ReadThe ReflectionEngine, a cyberpunk style n
The problem with modern processors is that it's hard to use them effectively with hand-coded assembler, too.
Take a look at any C or C++ library implementation targetted at recent Intel/AMD chips. The assembly generated for the most simple things is convoluted, bizarre and almost unintelligable at times. Why? Because it runs faster and/or results in smaller code.
The compiler writers have spent a long time understanding how the pipelining, cacheing algorithms and so on work in the modern processors. That's why I don't see REP MOVSB anywhere in the implementation of strcpy, although it seems the "obvious" way to do things.
The everyday programmer has a different job to do, and rarely has the level of expertise of those compiler writers when it comes to assembler. As a result, dropping to assembly language for anything but the most trivial tightly coded loops or the simplest hardware access is often an anti-optimisation.
For the foreseeable future, I think the Intel/AMD product lines are going to suffer from this, and possibly others as well (though RISC boxes are an interesting issue here). However, given the almost total dominance of compilers for writing code today, I'm not convinced it's a disadvantage. If the end result is still smaller/faster code, who cares?
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
A small city's daily coffee consumption.
---
You'd be surprised at the broadband connection available to things crawling around in your hair.