Home

News: Sun aiming for 10 million Java developers, to improve tooling

  1. Sun Java executives on Wednesday announced that they are shooting to grow the Java developer base to 10 million in the long term. Part of their goals for getting there are combatting the perception that "Java is only for high-end developers" by providing simplifying the platform itself as well as providing new versions of Sun One Studio that appeal to less technical developers.

    They also plan to support the high-end developer with different versions of Sun One Studio that do not hide code.

    BEA originally began marketing approaching VB-style developers a year ago while with Weblogic Workshop, and IBM recently has been doing the same.

    Related articles:
    Sun Unveils Plan To Provide Simplified Java Tools
    Sun Bangs Java Drum but Risks Dated Tune
    Sun seeks to grow Java developer base to 10 million
    Sun to Bridge the Java Skills Gap

    I have an official JavaOne 2000 t-shirt that I like to wear at the gym which says that we had grown from 0 to 2.5 million Java developers in the previous 5 years. Recently the company has been estimating that there are between 1.5 million and 3 million java developers today. These stats, along with the economic downturn would suggest that perhaps the population of java/j2ee developers isn't going fast enough, and now BEA, IBM and finally Sun have realized that the next area for revenue growth will be in bringing over the demographic of developers that Microsoft is currently dominating - the less-technical, or 'i-love-guis' developer.

    Luckily, this push for simplification is also being reflected in the platform itself, via language updates such as metadata, autoboxing, etc (the work in JSR's 176, 201).

    Threaded Messages (34)

  2. I support the idea of providing better tools for the community, it never hurts anyway, but really doubt that "right click deploy" approach can attract people into the java world. Unless java client application doesn’t need to rely on the byte code that reimplement GDI, it really hard to build any solid java client application, the best example might be Idea Intellij, Jbuilder, Jdeveloper they all state of the art applications which look ugly on any OS and have a memory footprint more then 100 M. On the other hand Eclipse GUI looks much better, and sleeker at least for me, thanks to SWT (have a native control use it, otherwise implement it).


    In general java application is more complex then VB used to be several years ago it is usually distributed across the network, using inscription, messaging, it is multi platform, multi vendor etc. and all this cannot be achieved with VB-level developers because all good ones are already in the .Net or Java. BTW, VS .Net is not that simple tool at all.
  3. With the recent trend of outsourcing to India and China it is possible to reach 10, 20, 30 million developers, just set the goal…
  4. With India and china Pakistan is also helping providing large number of java
    developers to sun community, if i am not wrong, pakistan has the highest number
    of Sun Certified Java Programmers(SCJP) having all the certifcation record including highest number is SCJP 100% (WC), world youngest SCJP, world first Sun Certified Web Component Developer(SCWCD) and many others.

    Syed Abdul Samad

    Sun Certified Java Programmer(SCJP)
    Sun Certified Web Component Developer(SCWCD)
    IBM J2EE Certified for Enterprise Connectivity
    IBM OOAD Certified
  5. india is way ahead of pak.so stop cribbing and accept the fact.by the way, where do u buy all those certificates ? kidding.nice to see you guys programming for once, forgetting about jehad and kashmir.thatz the way it should be.
  6. and they need to act fast! while some portion 10million vb-guys are not happy with vb.net, one of the biggest segment of software industry is "shareware", a significant number of them are develop in vb, if java can capture this then everything will be history.
  7. Need More Speed[ Go to top ]

    What SUN needs to do is make Java run faster. I don't have time to wait for the server VM to figure out how to compile my code. I need native compilation speeds closer to C++ for memory allocation. Java is great for integration and enterprise development where end-user speed perception is not a big issue. However, Java is terrible for product development or computationally intensive application like cheminformatics or bioinformatics. We just need more raw speed for broader applications.
  8. VB Programmers[ Go to top ]

    Yep, we want those no good for VB programmers.

    Look - maa - our ranks will be soon polluted with
    no good for anything programmers.

    What is gonna happen to the command line development tools.

    I hate IDEs & RAD.

    Feeling so miserable.

    Java admirer
  9. What's Sun betting on Java?
    Sun One Studio
    - Performance : I have used IDE(Visual Cafe, JBuilder, SunOne Studio, Visual Age,BEA Workshop..etc) From all, JBuilder 8 pressed me the most. SunOne Studio just hangs my desktop while JBuilder 8 apparently as fast as using M$ office.
    - UML : there are many vendors look for simplify J2EE development by generating all tier codes from your domain model and framework(e.g Struts or J2EE Pattern).e.g Borland Together JBuilder version, IBM Rational, WMEE, RealMethods..etc. How could Sun compete?
    - Sun R&D, James Gosling Project "ACE" : Anyone know the status of this project? I believe James idea will be great, but doubt Sun to make it mature commercial product. Sun is good at architecture and design, but not products.
    Sun One App Server
    - From local retail, I know nearly none using SunOne App Server 7. It's too late. JRun is cheap, JBoss is free, while medium to large coporates uses WebLogic or WebSphere already.

    JDK1.5/Java API
    - There is language construct improvement, but not a breakthrough.
    - JMF failed to reach upcoming broadband multimedia.
    - JAIN/OSS seems successful in telecome industry.

    I think someday Sun pass the investor allowed period to recover.
    And Oracle acquired Sun. That's it.
  10. <quote>
    What's Sun betting on Java?
    Sun One Studio
    - Performance : I have used IDE(Visual Cafe, JBuilder, SunOne Studio, Visual Age,BEA Workshop..etc) From all, JBuilder 8 pressed me the most. SunOne Studio just hangs my desktop while JBuilder 8 apparently as fast as using M$ office.
    </quote>
  11. <quote>
    What's Sun betting on Java?
    Sun One Studio
    - Performance : I have used IDE(Visual Cafe, JBuilder, SunOne Studio, Visual Age,BEA Workshop..etc) From all, JBuilder 8 pressed me the most. SunOne Studio just hangs my desktop while JBuilder 8 apparently as fast as using M$ office.
    </quote>

    Sorry for the previous post, sent it accidentaly before completing it.

    There is no doubt that tools are very important in order to enhance productivity. I have used Eclipse, JBuilder & Netbeans on a couple of different projects depending on my clients' "preferred" IDE. But I must say that all in all there are a couple of things that make Netbeans a great IDE. First of all, in my opinion Netbeans' open, modular, architecture was a true innovation that was later reproduced by other IDEs such as Eclipse. Then there is the netbeans modules community (http://www.netbeans.org). I believe that thanks to the community, Netbeans is the most complete development environment currently available: you will be able to find a module for literaly any development task you could face in your java career (for example the community provided a module for an essential tool such as ANT well before any other IDE, and in my opinion it is still much better than the one provided currently by Eclipse). The fact that the community has taken an "integration strategy" between modules is another great plus. Have you ever tried to do some J2EE development with a "bare-bones" Eclipse environment? It can be quite painful and you might spend a great deal of time "hunting plugins". If you are lucky, you might find the required plugins but making them work together is another story. In fact the only real case where the plugins are integrated and "collaborate" is in...WSAD.
    So how can Sun make java development easier? Probably by hiding complexity (not only language complexity but also things such as architectural complexity in J2EE), *but only if the developer wants that*. So a tool such as Netbeans/Sun One Studio could provide different modules according to a developer's profile. For example by providing "visual modules" like WebLogic Workshop for "front-end" developers. That would also provide a nice way of "separating roles" and promoting role-based development between presentation tier developers and EJB developers or component developers. So basicaly all you would have to do is switch from one set of modules to another in order to get your job done. Even better you could combine your modules according to your own personal likings. But making the Java language simpler or more attractive to "VB-minded" developers might be hard. After all, you have to be a pilot in order to drive a racing car ;).
  12. VB Programmers[ Go to top ]

    The bit of me that is a VB programmer hates the fact that programmers who code in anything other than VB assume VB programmers are all in some way useless…

    The language itself isn’t the issue. VB6 took off because the VB6 IDE rocked. Seriously. It was so good that even though the language itself was messy, syntactically awkward, inconsistent and confusing as hell, you could actually build good, solid, robust apps. surprisingly quickly – even enterprise ones. Moreover if you needed to throw together a quick GUI prototype, or even a 5-10 user app for a department, you could knock that out in no time at all to and get on with doing something more interesting. As well as all the “intellisense” auto-complete (since widely copied) it had a very, very well thought out GUI so that everything was where you expected it to be so you could learn the IDE very, very quickly. VB was a major contributor to the success of MS Windows over other, arguably better, GUI based OS’s. Go back a few years and many programmers were reluctant to work on windows – it was too hard, and anyway it was only a parsing fad that would never really take off. When VB introduced a forms package (derogatorily referred to as a drawing package by lots of people at the time) it made building Windows GUI easy. It is also true that it enabled a number of people to pass themselves of a programmers who, frankly, weren’t, but I for one would love to find a Java IDE that was as fast and obvious to work with as the VB6 one (my personal favourite is Eclipse if anyone’s remotely interested).

    Then there’s the GUI. Swing may be neat to code in and academically pleasing but users really don’t like the way Swing apps look and behave, the performance (hugely improved everywhere else in Java) is still awful, and components often seem to misbehave even when a lot of effort has been put into them (it would have killed applets on the web even if there hadn’t been all the early plugin/compatibility problems – and Flash took over a lot of the basic things that Java could have been doing because it’s IDE appealed to web designers). The eclipse project has thrown out some interesting things in terms of the GUI which I personally would like to see adopted into the core JSE, and I’d love to see some more build up behind thinlets (http://www.thinlet.com/). But my major point is that Swing (along with the compatibility problems on the web) is largely responsible for that perception users have that java “doesn’t work” and it will loose out to other, arguably inferior, development platforms in corporates because the managers who make these decisions in organisations are users too.
  13. I?d love to see some more build up behind thinlets (http://www.thinlet.com/).


    You might wonna check out some alternatives that also use XML to build UIs. I try to catch them all in the Richmond Post Link-opida online at http://luxor-xul.sourceforge.net/post/links.html. XUL (XML UI) motors in Java include XWT, Luxor, Swix, JellySWT, JellySwing, Bamboo, SwingML, Axualize and some more.

    If you want to keep up to date on XUL/XML UI motors I inivite you to sign up for the XUL/XML UI News Wire also known as the xul-announce mailinglist online at http://lists.sourceforge.net/lists/listinfo/xul-announce.

    You can browse the XUL/XML UI news archive at Gmane or Sourceforge.
  14. wx4j can be a solution for fast native gui applications in near future.

    wx4j is a port of wxWindows, a ten years old C++ GUI framework. It's in 0.1.0 but It has the basic controls.

    wxWindows has been ported to Perl, Python, Ruby, Lua, Basic. There are a port to .Net too. It's very mature and runs in Windows, Linux (gtk), and MacOS. There is a port to OS/2 going on.

    It's interesting the possibility of switching the language and don't need to switch the gui framework.

    wx4j - www.sourceforge.net/projects/wx4j
    wxWindows - www.wxwindows.org

    Thank you and sorry my english

    Geraldo Lopes de Souza
  15. VB Programmers[ Go to top ]

    This is UNDER CONSTRUCTION but you can read about how I think Swing can be improved here:

    http://jutland.kgbinternet.com/

    Swing is in need of some best-practices.
  16. Hi Gary,

      I browsed your Jutland site and came across the following (slightly edited):

     Jutland's Visual Resource Editor (VRE) - a tool for creating and maintaining your application's external resources - generates XML files, meant to be loaded by your application at runtime and used to create the primary components of your application. Such components include UI Dialogs, J2EE server contexts, JDBC connection information and queries, and more.

      Can you explain how this differs from XUL (XML User Interface Language)?

      - Gerald

    PS: If you're not familiar with XUL you might wonna check out the Richmond Post Linkopida or Luxor (an open-source XUL/XML UI motor in Java for Swing and soon SWT).
  17. <gerald>
     Jutland's Visual Resource Editor (VRE) - a tool for creating and maintaining your application's e
    xternal resources - generates XML files, meant to be loaded by your application at runtime and used to create the primary components of your application. Such components include UI Dialogs, J2EE server contexts, JDBC connection information and queries, and more.

    Can you explain how this differs from XUL (XML User Interface Language)?
    </gerald>
     
    Gerald, it seems close. My tool is for generic resources, some of which may be related to user-interface. The fact that resources persist themselves as XML is relevent to the user mainly because it's textual, and so can be meaningfully used in a SCM system. Of course, there's the secondary benefit of expert tweaking in a text editor.

    My framework doesn't support <layer> as it's meant to be a think veneer over Swing. Layer is more of a DHTML thing.

    If XUL becomes a standard and it can express the concepts of my framework or it has a capable extension mechanism, I'll change over to XUL.

    Gary
  18. VB Programmers[ Go to top ]

    <quote>
    The language itself isn’t the issue. VB6 took off because the VB6 IDE rocked. Seriously. It was so good that even though the language itself was messy, syntactically awkward, inconsistent and confusing as hell, you could actually build good, solid, robust apps.
    </quote>

    I don't understand when you say VB6 IDE took off because it rocked... I used VB during a long time, from version 3 to 6 (I was MCP for VB). But never, it was never better than the corresponding Borland Delphi versions (which I have used, from version 1.0 on) in any aspect (performance, learning curve, time to market...).

    I think that the whole difference that made VB6 take over the market was MS Marketing Machine (or Borland's marketing executives incompetence), not just quality.

    On the other hand, I must agree with you about Swing. It's just too slow and cumbersome. I'm having a hard time trying to sell Java to some C++ (they use Borland C++ Builder) and VB programmers in my team. They have a RAD centric (even C++ ones) mind and I think that's all about it.

    When I say RAD centric mind, I mean that they don't care (or maybe don't know) about reusability, low coupling, extensibility, testing, and all things that we know improve software quality over time. They just see Forms and Tables. And I think the majority of VB users behave this way.

    As Anwar stated before:

    ”After all, you have to be a pilot in order to drive a racing car ;).”

    Andre
  19. Excelsior[ Go to top ]

    What SUN needs to do is make Java run faster. I don't have time to wait for the server VM to figure out how to compile my code. I need native compilation speeds closer to C++ for memory allocation. Java is great for integration and enterprise development where end-user speed perception is not a big issue. However, Java is terrible for product development or computationally intensive application like cheminformatics or bioinformatics. We just need more raw speed for broader applications. <

    Have anybody tried Excelsior or other native Java compiler?
  20. Need More Speed[ Go to top ]

    J B: Java is terrible for product development or computationally intensive application like cheminformatics or bioinformatics.

    It's interesting that you say that, because we are seeing major cluster / grid adoption in the biotech industry. It would appear that they are doing almost all their research software work in Java now; it used to be all C++.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Easily share live data across a cluster!
  21. Need More Speed[ Go to top ]

    JB,

    That may have been true some time ago.  But NACSE/Oregon State
    University (my employers) are working on a number of scientific projects
    including chem/bio stuff in Java.  We work a great deal with
    botany/plant pathology and other fields as well.  We're also working in
    other engineering fields like earthquake engineering, tsunami research
    and a bunch of other stuff in Java.

    Java may still not be as fast as C++, but the performance issue is a
    myth.  Even if it wasn't, with hardware becoming more of a commodity,
    that's OK.  I'll just throw a ton of cheap Linux/Dell or
    Solaris/Sun/netra's at it.

    As for product development, I'm not entirely sure what you mean, since
    that could cover about a million different things.

    Jason McKerr
    Northwest Alliance for Computational Science and Engineering

    p.s.  You might notice the name of my research group focuses on
    "Computational Science and Engineering" and we're doing LOTS of
    Java/J2EE work (and I love every minute of it).
  22. Need More Speed[ Go to top ]

    I'm sure there is a lot of great science development occuring in Java. That's because people are comfortable writing Java and there are many, many libraries available. I'm sure most of this code is server-based and massively scallable. Its easy to find good Java developers so the total cost of producing science code in Java is cheap.

    Now compare a Java desktop application to a native application. Let's say we're running on windows (although Linux performs about the same). Hand a chemist or biologist a UI written in Java and another written in native code. The differences are startling. I have a piece of well-written c++ code to do clustering and the same piece of code highly tuned for the 1.4.2 server JVM. Even after I allow the server JVM plenty of time to compile the c++ clusters on the order of 3-5 times faster.

    I love the Java language but I want quicker memory management if not native compilation. Why not offer a mechanism for the JVM to do object pooling for us? or allow us to manually free memory? Why should we have to wait for the JVM to compile every time it restarts? Certainly it can serialize some partially compiled state and detect stale code each time instead of recompiling. The start-up costs are simply too high for desktop applications and this accounts for a lot of programmers.

    Let SUN give us reasons to argue for porting desktop applications to Java and we'll be able to convert more developers over.

    > JB,
    >
    > That may have been true some time ago.  But NACSE/Oregon State
    > University (my employers) are working on a number of scientific projects
    > including chem/bio stuff in Java.  We work a great deal with
    > botany/plant pathology and other fields as well.  We're also working in
    > other engineering fields like earthquake engineering, tsunami research
    > and a bunch of other stuff in Java.
    >
    > Java may still not be as fast as C++, but the performance issue is a
    > myth.  Even if it wasn't, with hardware becoming more of a commodity,
    > that's OK.  I'll just throw a ton of cheap Linux/Dell or
    > Solaris/Sun/netra's at it.
    >
    > As for product development, I'm not entirely sure what you mean, since
    > that could cover about a million different things.
    >
    > Jason McKerr
    > Northwest Alliance for Computational Science and Engineering
    >
    > p.s.  You might notice the name of my research group focuses on
    > "Computational Science and Engineering" and we're doing LOTS of
    > Java/J2EE work (and I love every minute of it).
  23. Re: Need More Speed[ Go to top ]

    <JB>
    I want quicker memory management [...] Why not offer a mechanism for the JVM to do object pooling for us? or allow us to manually free memory?
    </JB>

    You should have a (deep) look at the HotSpot JVM FAQ. You will find there answers to most of your interrogations.

    From: http://java.sun.com/docs/hotspot/PerformanceFAQ.html

    "Should I pool objects to help GC? Should I call System.gc() periodically?

    The answer to all of these is No!

    Pooling objects will cause them to live longer than necessary. The garbage collection methods will be much more efficient if you let it do the memory management. We strongly advise taking out object pools.

    Don't call System.gc(), HotSpot will make the determination of when its appropriate and will generally do a much better job."

    Bertrand Fontaine
    INSPIRE IT - www.inspireit.biz
    JavaShelf.com: Your Java bookstore on the Web!
  24. Re: Need More Speed[ Go to top ]

    I have read all of the FAQ and arguments for interpretation versus compilation and garbage collection versus manual memory management. It's not a matter of ignorance it's an issue of disagreement. I know what the arguments are and I simply disagree with them. I'll continue to write my performance sensative algorithms and applications in C++ and MAYBE tie them into Java via JNI or (worse yet) "web services." Look at egrep or emacs an imagine what life would be like if they were written in Java and ran in a VM.

    SUN cannot open the market to systems or even applications with high-speed requirements without separating the language from the execution environment. You'll never see a fast sequence alignment algorithm written in Java either. We'll continue to write them in Perl, C, and C++. Life would be nice if we could write them in Java but its just not fast enough. Its a silly notion to write buy an Application Server and run on a cluster when a tightly written piece of C++ code could run just as fast on a single machine and not even tax the machine at that.

    > <JB>
    > I want quicker memory management [...] Why not offer a mechanism for the JVM to do object pooling for us? or allow us to manually free memory?
    > </JB>
    >
    > You should have a (deep) look at the HotSpot JVM FAQ. You will find there answers to most of your interrogations.
  25. Java is Fast Enough[ Go to top ]

    Look at emacs an imagine what life would be like if they were written in Java and

    > ran in a VM.

       Why not check it out yourself, try jedit today @ http://www.jedit.org.

       Or how about Eclipse @ http://www.eclipse.org.
     
    > You'll never see a fast sequence alignment algorithm written in Java either.
    > We'll continue to write them in Perl, C, and C++.

      What a whimp. Why not use Assembler? Or how about Fortran?
  26. Java is Fast Enough[ Go to top ]

       Or how about Eclipse @ http://www.eclipse.org.


    jEdit is painfully slow and Eclipse is reasonable beacause the SWT is basically implemented in C++ anyway. If you had read the posts you would see I had argued in favor of more applications with JNI calls to native code. Unlike Swing, SWT offers the end-user a better experience...but then its not really pure Java anymore, is it?

    >  
    > > You'll never see a fast sequence alignment algorithm written in Java either. We'll continue to write them in Perl, C, and C++.
    >
    >   What a whimp. Why not use Assembler? Or how about Fortran?

    How are ASM and Fortran whimpy? They're fast as hell but unfortunately not object oriented and not easily ported. This is why C++ is so damn good.

    Thanks for the lame links.
  27. Java is Fast Enough[ Go to top ]

    JB: jEdit is painfully slow and Eclipse is reasonable beacause the SWT is basically implemented in C++ anyway.

    Interesting. I use jEdit quite a bit now, and it's anything but painfully slow. My computer is a "measly" 1Ghz. You can say that Swing tools often lacks the polish of other UIs, and maybe if you are stuck on a 200Mhz machine, Swing might be too slow (BTW - that's what I used to develop Swing apps on, back when I developed with Swing, and it was usually plenty quick on my 200Mhz notebook with Windows 95 and 128MB RAM).

    I can certainly vouch that jEdit on today's computers is a lot faster than VC++ was on the then-current computers in the mid-90s. No one wanted to use that slow "Microsoft visual crap" back in the mid-90s because it required 16MB of memory and ran like a dog on a P90. Hopefully, you're not stuck on a P90 today ;-).

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Easily share live data across a cluster!
  28. Re: Need More Speed[ Go to top ]

    First, I have to say that wast majority of applications I worked on have been bound by IO rather than anything else. And this is not just Java, but C++ or even good old 8086 assmebler.

    UI responsivnes is mostly a design problem with Swing and the way it does it threading/even model. In Windows 3.1 a lot of (native) applications had exactly the same problems with taking an action freezing the application (or even windows) until it completed. Doesn't seem that the Swing people learned the lesson. I have seen Java UIs that you would not be able to tell from native windows UI as far as usability/responsivenes etc. goes.

    JVM start times can be an issue, but in my experience only if you have a lot of small java utilities you need to use only for few minutes. As for server applications or GUI applicatons, the few seconds (if that) of startup are negligible in comparison with the rest of the time.

    Java's memory allocation (for 1.4 at least) is acutally quite fast. That is because it just allocates it in stack-like fashion for all new objects created.
    The problem is only with long lived objects which may need to be moved out of nursery and compacted now and then. Even then, in my experience the new GC algorithms tend improved GC times considerably (even on signle CPU machines).

    At the last OOPSLA a chap from Boeing was giving a talk how they ported their internal CAD-like application from Fortran/C/C++ to Java and the resulting performance was within 5% on the original SGs and considerably better (by 10s of percents) on PCs (compared to the original SG performance).

    The only place where I know that Java can cause problems with speed is hard real time applications (especially some embeded devices). As it is now though, the number of people writing stuff like this is fairly small. Size tends to be even more problem here, as there's few soft real time applications in devices with just few tens of kBs.

    BTW, I think that emacs isn't the best example of a fast C applicaton. A lot of emacs is in lisp, and most of my friends who use it extensively tend to have huge lisp modules modifying the basic behaviour..

    Regards,
    Vlad
  29. Re: Need More Speed[ Go to top ]

    First, I have to say that wast majority of applications I worked on have been bound by IO rather than anything else. And this is not just Java, but C++ or even good old 8086 assmebler.


    Most of the time you are correct. However, I've been working on complex algorithms with runtimes on the order of n squared or worse. If you couple this with some memory allocation in Java you get in trouble quickly.

    > UI responsivnes is mostly a design problem with Swing and the way it does it threading/even model. In Windows 3.1 a lot of (native) applications had exactly the same problems with taking an action freezing the application (or even windows) until it completed. Doesn't seem that the Swing people learned the lesson. I have seen Java UIs that you would not be able to tell from native windows UI as far as usability/responsivenes etc. goes.

    Yes, there are a few out there. Most applications written with SWT are quite fast thanks to the native layer.


    > JVM start times can be an issue, but in my experience only if you have a lot of small java utilities you need to use only for few minutes. As for server applications or GUI applicatons, the few seconds (if that) of startup are negligible in comparison with the rest of the time.

    Its easy to say they're negligible if you don't have a huge influx of traffic or activity during the startup time. I worked on an enterprise service that had a lot of traffic 4000+ SOAP requests incoming every ten minutes in regular intervals. Overcoming the startup time of the server JVM's was a nightmare at the time since they take a longer time to figure out what's going on. The cpu load could go from pegged to steady-state of about 4% per processor after compilation took place. Those first few minutes are nerve-racking, however. Hence, my points about pre-compilation.

    > Java's memory allocation (for 1.4 at least) is acutally quite fast. That is because it just allocates it in stack-like fashion for all new objects created.
    > The problem is only with long lived objects which may need to be moved out of nursery and compacted now and then. Even then, in my experience the new GC algorithms tend improved GC times considerably (even on signle CPU machines).

    I'm looking forward to moving into the 1.4 releases to take advantage of CharSequences and some of the other new features as well. I haven't read much on the GC or allocation changes to the newer releases but I did evaluate the performance via measurement. I still have a piece of C++ code that can read and create 15000 small molecules per second in C++ while the same (well-tuned) Java code can only ready about 10000 small molecules per second even under JDK 1.4 with GC tuned for short-lived objects. Internally it blasts chars through char arrays and custom converters which make it about 50% faster than using Strings and the default character converters. This is the closest-performing piece of code we have when ported to Java. In general our startegy has been to take advantage of JNI and SWIG to leave our algorithms in C++.

    > At the last OOPSLA a chap from Boeing was giving a talk how they ported their internal CAD-like application from Fortran/C/C++ to Java and the resulting performance was within 5% on the original SGs and considerably better (by 10s of percents) on PCs (compared to the original SG performance).

    This type of results also depends on the quality of the original code versus the quality of the newly ported code. I've found that newly ported code tends to be better engineered. In our case the C++ is extremely well tuned and the best of tuning efforts cannot close that final gap. However, you're points is well-made. The performance is probably close-enough for most people once the server reaches steady-state.

    > The only place where I know that Java can cause problems with speed is hard real time applications (especially some embeded devices). As it is now though, the number of people writing stuff like this is fairly small. Size tends to be even more problem here, as there's few soft real time applications in devices with just few tens of kBs.


    This is another point that I made earlier. One would expect this industry to grow quickly. Biotechnology can really save a lot of time with this extra speed. I don't believe in just throwing more hardware at a problem with better software can get you to the same place. If Java can shrink the memory footprint I think new markets will open up in embedded devices and high-throughput scientific computing. I'm working with a pharmaceuticle client right now that won't even consider using anything but C++.


    > BTW, I think that emacs isn't the best example of a fast C applicaton. A lot of emacs is in lisp, and most of my friends who use it extensively tend to have huge lisp modules modifying the basic behaviour..

    Yes, this is true. My bad. Most of the really fast applications like egrep are actually written in pure C anyway. Then again, C and C++ are nearly as fast as each other thanks to the later-generation optimizing compilers anyway. One day, Java will likely get to this point as well but that day can't come soon enough for me. I would be happy if SUN gave us a way to mitigate the start-up costs of the server-side JVM. A hybrid of the client-side early compilation with slower replacement by the server compiler might work.

    Thanks for the thorough and thoughful response.

    -JB
  30. I do not belive that is true anymore[ Go to top ]

    I have been doing some smal tests of this and
    my conlusion is that it is no longer true.

    New JVM's are not far from native compilers today in
    CPU intensive stuff.

    SUN JVM did a gigantic leap forward with 1.3.x->1.4.x
    (testet on WIn32 platform) !
  31. one of the biggest segment of software industry is "shareware",


    I think a bit more generic one of the biggest segments of software industry is reusable components. That is what makes VB popular. And Java (as a tool) is not in the good position here (at least now).

    Dmitry Namiot
    Coldbeans
  32. I really agree with Dmitry. VB approach is popular between MS developers because it allows to create applications based on unified blocks and those applications, as a rule, has unified user interface. This became possible, because their server site and client site technology is totally controlled by only one company. I wonder, why SUN believes that has opportunity to dramatically grow number of developers just releasing their own VB-like tool.

    It needs to have corresponding foundation before starting to build a beautiful house base on it. First of all, Java technology misses the unification before VB-like IDE becomes really powerful and popular. Why will lead this progression?

    Regards
          Sergey Smirnov
    Exadel Struts Studio Architect
  33. Hello,

    I'd like to see some proof from Sun that there are n n=1,2,3,4 million Java programmers to begin with.

    In a country like Germany, about 10.000 new IT professionals with IT university diplomas or "Fachinformatiker"-education enter the IT job market each year (see http://focus.msn.de/D/DB/DBX/DBX42/dbx42.htm).
    Let's assume that another 10.000 self-taught "paraprofessionals" or people with other backgrounds like physics enter the IT job market. That makes about 20k.

    Let's assume that about 25% of them actually become developers, and that 40% of them work in Java. That means about 2.000 new Java programmers per year. That means, since Java isn't even 10 years old, that in Germany maybe about 15k new Java programmers entered the market in total since the inception of Java. Let's assume that from the old fogeys that were there before 1995, 10k learned Java and practice it.

    That means in a highly technology-oriented country with a population of about 80 million people, you have maybe 25k Java programmers.

    Now, lets add up populations of the US, the European Union, Russia, Japan, and a few more tech countries. Maybe you get 1 billion people or roughly 300k Java programmers. Add India and some special cases. Where are the millions?

    If Sun only counts JDK-downloads they should reconsider there numbers. Until somebody comes up with a better justified estimate, for me Sun's "millions of programmers" are nothing but marketing hype.

    Best regards,
        Henrik Klagges
        TNGTech
  34. some more stats[ Go to top ]

    Hi Henrik,

    There is some info at: http://www.itaa.org/workforce/studies/03execsumm.pdf , which gives some stats on the US situation.

    They state that out of about 10 million US IT workes, about 2.1 million are programmers/software engineers (by the way, this is close to your estimate of 25% IT professionals becoming developers!). So, then if we use your estimate of 40%, we would be looking at a good 840,000 java programmers in the US alone (if we could get Evans Data to report the correct fraction of java programmers, we could come up with a better number!).
      
    The other large population of developers/programmers is in India. An article by Kharbanda and Suman in the Dec 25, 2002 issue of "Current Science", which can be found here:
    http://www.ias.ac.in/currsci/dec252002/1450.pdf , states that India has about 300,000 high level software professionals. In the same article, they state that 90% of India's IT professionals are "blue collars", which I interpret to mean NOT high level. Therefore, if 10% are high level, we have about 3,000,000 in total in India, as an estimate. And then the "guessing" starts when we try determine of that 3,000,000, how many are java developers? If 20% are programmers/developers/software engineers, and 40% of those use java, then we have about another 240,000 using java, which is more than enough to put us over the 1million mark.

    I think these estimates are conservative, so having over 1 million java developers seems reasonable to me. We need to be careful with separating out programmers/developers/software engineers from the more general IT Workers, but I think these estimates are reasonable.

    That said, the total number looks something like 1 to 2 million - I don't know where Sun is coming up with the 3 or 4 million estimates.

    If anyone else has better estimates/stats, please speak up!

    Hope this helps,

    Don Morgan
    DeveloperAdvantage
    www.developeradvantage.com
  35. Finally[ Go to top ]

    Finally.

    The mix and match use of ANT, CVS, Middlegen, XDoclet, file explorer, text editor and all of the versioning problems and configuration problems associated with keeping these diverse, basically DOS prompt tools somehow working together is a nightmare.

    Maybe they will make something like Visual Studio .NET IDE (that would be nice). Or something like Eclipse. But PLEASE don't base the GUI on Java !!!