Slashdot Mirror


Jazilla Milestone 1 Released

mcbridematt writes "Many of the long time Slashdot readers will remember the Jazilla project to rewrite the Mozilla browser in Java. It went into hibernation in 2000 and I took it over last August. I have completely rewrote the browser which now follows a more Mozilla-like architecture. The Result: Jazilla Milestone 1 has been released. Download it from here. No prizes for guessing that it's Alpha software." Read on below for a list of what Jazilla can do, so far.

"Significant (implemented) features include:

  • chrome:// support
  • JavaScript implemented for the GUI thanks to the Mozilla.org Rhino engine. HTML Scripting coming.
  • GUI in part, uses XUL and W3C DOM
  • Written in 100% Java
  • Open Source
  • Uses the NetBrowser renderer, which is actually based on Jazilla-classic work."

21 of 353 comments (clear)

  1. Running this puppy by mcgroarty · · Score: 5, Informative
    I'm sure a million people will want to see this, but not everybody knows how to start it.

    Once you expand and extract this puppy, just cd into the folder it made and, assuming Java is properly installed on your machine, you need only run:

    java org/jxul/xulrunner/Main

    Good luck, and enjoy! The browser's still lacking in many obvious areas, but it does work on a lot of sites. Too cool -- props for all the hard wo\ rk. :-)

    1. Re:Running this puppy by jeffg · · Score: 5, Informative

      You may need to specify a classpath manually using one of the following (again, both from the directory containing README, COPYING.TXT, etc.):

      java -cp . org/jxul/xulrunner/Main
      java -classpath . org/jxul/xulrunner/Main

      Windows users: The "jazilla.bat" file may or may not work for you. You may wish to edit this file to specify the classpath as above. You could also change your CLASSPATH environment variable, if you felt the need.

    2. Re:Running this puppy by MyHair · · Score: 2, Informative

      java -Ddebug=true -Dsun.java2d.noddraw=true -cp . org/jxul/xulrunner/Main

      For Windows users with ATI cards, add the -Dsun.java2d.noddraw=true option to the command. (Prevents system lockups due to some conflict between Java & DirectX and ATI.)

    3. Re:Running this puppy by Anonymous Coward · · Score: 1, Informative

      Or grab the latest ATI drivers (if possible) and/or JDK 1.4.1_02 and the issue should go away (apparently some laptops that cannot upgrade drivers still have a problem with JDK 1.4.1_02).

    4. Re:Running this puppy by mcbridematt · · Score: 4, Informative

      I might as well add two other things I didn't put in my original submission:

      1) Look in org/netbeans/netbrowser/tags for any .java files not compiled. Compile them. The renderer uses Reflection to start up tags, so they don't get compiled at compile time. In the future, if Jazilla finds a compiler and tag which isn't compiled, it will compile that tag
      2) Did I mention that getting URL's is multithreaded? If you try and hack it abit, e.g use a JIT for Crimson, you might get a better result.

      Also, anyone wishing to make a product based on Jazilla, note that the jXUL part is unlicensed. I am yet to talk to Kevin T. Smith (co-founder of the jXUL project) about what license to put it under. The renderer is under the SPL. When that's done, expect anything under org.jxul to move to org.jazilla

    5. Re:Running this puppy by hatrisc · · Score: 5, Informative

      actually there's a script. jazilla.sh

      --
      I write code.
  2. Re:So, using Javascript and Java... by Exiler · · Score: 3, Informative

    Java programs != Applets, I think you're getting the two mixed up.

    --
    Banaaaana!
  3. Why... by valis · · Score: 5, Informative

    Since half the comments so far seem to be "What is the point" I'll offer one justification.

    There is still a serious lack of a good modern HTML browser for embeding in java applications. Swing provides an EditorKit which handles HTML3 reasonable well, but most of the other quality offerings are non free.

    Major Java IDEs (Eclipse, NetBeans) have projects to implement something like this. Many other Java applications could potentially benefit. It's a good idea.

  4. What "Write Once, Run Anywhere" Really Means by Anonymous Coward · · Score: 5, Informative
    From the beginning, Sun intended the Java language to be platform-neutral. That is, Java programs are written to run on a Java Virtual Machine instead of on a physical computer--it's the Virtual Machine that runs on a real computer. Thus a programmer can develop a program that will work on the sort of computer he likes and expect it to run on the sort of computers that his customers like, because it runs inside of the Java Virtual Machines on those computers.

    This means that when you go to the store to buy an application, you don't buy the "Mac version" or the "Microsoft Windows version." You buy the "Java technology version." And as long as you have the Java Virtual Machine--which is free, and available from a large number of vendors--you can buy the program without having to worry whether it's going to run on your particular computer.

  5. Re:OS X compatibility by LtSmith · · Score: 2, Informative

    Well I was able to start it with:

    java org/jazilla/Jazilla

    from the jazilla directory.

  6. Re:if you like VM's-Squeak. by Anonymous Coward · · Score: 1, Informative

    "You'll wonder why anybody uses Java at all."


    Yes I sometimes wonder.

  7. There are other reasons for Java... by gnu_andrew · · Score: 1, Informative

    Java is not only a language for writing pretty
    applets (which aren't the same as full applications
    which run from the CLI) or just for platform independence. It is a language which has many good security features, makes coding things such as networking much easier, has a vast amount of existing code and is a language which is just generally safer to program in and more object-oriented. If there weren't other benefits to coding Java programs, why would compilers such as GCJ exist for compiling Java programs to native code? Also, the speed problems with Java are now far less as compiling on demand becomes more common in Java runtimes. Whereas a C program can cause a segfault in about five lines, major problems with Java are more likely to be due to the runtime, which can even be eliminated. Also, there is no reason that just because Mozilla is slow (mainly because the code has to do a lot of layering to make the platform-independence work) doesn't mean that a port has to be -- a port would take substantial work and even though the ideas are the same, the finished product won't include the same code and so doesn't have to be as slow!!!

  8. Re:Why? by FatherOfONe · · Score: 5, Informative

    Ok it was kinda a joke but I will address it more seriously this time.

    1. Java is slow. This was true in 1.0 release of Java, but with todays JIT's the speed difference is small. I can point you to numerous sites, but at the end of the day it comes down to good coders. Your experience must be with some bad coders.

    2. SWING is slow. This again use to be true with 1.18 + SWING and 1.2x JVM's the 1.3 and 1.4 have increased SWINGS speed considerably.

    3. JAVA takes up too much memory. Yes it is true that the base JVM can take around 5-16MB of RAM per JVM instance. But with todays systems, on a lot of applications that isn't too bad. Now the core issue is that it takes up that amount for EVERY JVM that is used. So to your point: If I launch a Java calculator program, and then launch a Java notepad, I will have lost around 10-32MB of RAM in just JVM's. This is currently true, however it is being addressed and should be solved with the 1.5 release. Once this is done, then it would be possible to have ONE JVM running on the system for all Java applications. The JVM could launch at startup and then even the inital load times would be greatly reduced. I believe that this is the way Apple is handling Java (Can't confirm it though).

    So, when this issue is resolved, running Java on a machine could mean only giving up a maximum amount of 16MB of RAM for the JVM and the rest for the application. To be honest that is what most Java programs are doing today. Most run as an application server and run Servlets and JSP's all day long.

    Another poster mentioned that you use the correct tool for the job. I agree, but I will add that the issues for not using Java for speed has and is going away. The reasons for not using it for memory are going away on most computers.

    We do agree on one point. Most people do have computer processors far greater than they need.

    Lastly, if you are having so many issues running Java apps on your system you should look at newer JVM's. They make a huge difference.

    --
    The more I learn about science, the more my faith in God increases.
  9. Re:So, using Javascript and Java... by jeffsix · · Score: 2, Informative

    Actually Java applets are programs - they are just programs that run inside of a web browser as opposed to on their own.

    Java applications != Java applets
    Java applications = Java applets + Java applications

    I think you're confusing them. ;)

    Also, applets run on the JVM just like applications do. The only difference is that the JVM is invoked by the browser (you can think of the JVM running inside the browser, but this isn't really true these days). So, his question is perfectly valid - does Jazilla start a JVM (to run applets you're browsing to)that runs on the JVM the browser itself is running on? Or does is start a seperate JVM? Good question - although I bet I can guess the answer...

  10. Re:if you like VM's by Zaaf · · Score: 2, Informative
    What the fuck is Lunix?

    Lunix is the well known linux derivative for everybody who was into computing in the (early) 80's, namely the C=64 and C=128.

    A little googling might have done wonders for your post. ;-)

    Zaaf

    --

    ---
    "Multiple exclamation marks are a sure sign of a sick mind." (Terry Pratchett)
  11. Re:So, using Javascript and Java... by recursiv · · Score: 4, Informative

    Hold on there skippy. Java applets ARE Java.

    I think what our friend Exiler here is trying to say is that Javascript has nothing in common with Java except the name. And if I'm to believe the person who told me, Javascript had a different name while it was being developed but Sun exerted sufficient pressure on the neccesary parties to change the name to sound like Java.

    Quick recap:
    Java Applications - Java
    Java Applets - Java
    Javascript - Not Java

    I hope this helped.

    --
    I used to bulls-eye womp-rats in my pants
  12. Re:Why do we care? by csnydermvpsoft · · Score: 2, Informative

    2) Java will always be slower than a native, non-interpreted language, even if you compile it into a binary.

    Not true. First of all, Java is compiled, except it's compiled into byte-code instead of machine-code. This is unlike languages such as PHP and Perl, which must recompile the text source code into machine-code or byte-code each time it's run. While not as fast as machine-code in most cases, byte-code is definitely much faster than interpreted.

    One advantage of byte-code to machine-code, in addition to portability, is that it can actually run faster in some cases. My friend did a project for his super-computing class in which he tested a simple algorithm written in both C++ and Java to see what would run faster. He used every level of gcc optimization, as well as a few JVM's. As expected, the compiled C++ version kicked the pants off of the Sun and Blackdown JVM's, but the IBM J9 JVM was around 50% faster than the C++ version. This speed advantage is due to the fact that IBM's JVM is able to optimize the code at runtime, while gcc must do all optimizations at compile-time.

    Most people's misconceptions of Java are due to two factors: An incredibly shitty MS JVM and the horrid Swing GUI toolkit. When Sun wrote JWT and Swing, they tried to stick to the write-once, run-everywhere philosophy as much as possible. Unfortunately, the different OS's have very little in common when looking at GUI functions, so they basically had pixel capabilities to work with - no widgets. This means that the widgets are all done in Java instead of using libraries available from the host system. This is why most Java applications look nothing like the operating system they are running on, and run very slow. The SWT GUI toolkit, which is part of the Eclipse Project, uses the host system's libraries to render widgets wherever possible. This leads to an application that runs much faster and looks just like any other application for that operating system. Of course, they have to implement SWT for every host system they want to support, but it still runs on systems where support is incomplete/missing, albeit more like JWT/Swing.

  13. Swing LayoutManagers by Anonymous Coward · · Score: 2, Informative
    Swing layout is one of the reasons Java GUIs seam to be broken. If you resize a window, you get a lot of grey boxes.

    The stock layout managers suck ass, but there are better ones out there. If you're doing GUIs in Swing, check out TableLayout, HIGLayout, FlexGridLayout. These are all free and Free. There are probably other ones out there too.

    I've been using TableLayout and although there are some little things I don't like about it, it does let me code Swing GUIs without the pain associated with the stock layout managers. Haven't tried the other two yet but they look interesting.

  14. I use Dillo as well by Anonymous Coward · · Score: 1, Informative

    In fact I am posting this from Dillo.

    Links 2 is rather impressive as well, in that is handles Javascript now, and runs under DirectFB.

    My system is a P166 laptop w/ 80MB of RAM. This is low-end by today's standards, and it will run Mozilla, but for 90% of my browsing Dillo is more than adequate.

    It may be true that people now have much faster machines, but there is just no excuse, for, say, the performance of Mozilla with text-boxes and the Mail composer.

    It is just unbelievably slow, not really slow, not goddamn slow, but really, truly, unbelievably slow.

    How do you spend so many years writing an app and end up with performance like this?

    I totally agree and think that Dillo has a bright future, If it runs this well on a P166 I am quite keen to use it when I get something faster.

    You might also want to check out Links 2, it does graphics, and Javascript now, and runs under DirectFB too which is kind of neat..

  15. Re:Another justification... by flashman78 · · Score: 2, Informative

    > Swing layout is one of the reasons Java GUIs seam to be broken. If you resize a window, you get a lot of grey boxes. Sure, Mozilla could use some double buffering on their resizing, but it doesn't leave me with a gray screen instead of seeing how the components will look after resizing.

    There is a new method in 1.4, the programmer needs to call this method before creating any windows....

    try
    {

    Toolkit.getDefaultToolkit().setDynamicLayout(true) ;
    }
    catch (NoSuchMethodError e)
    { // not availble before 1.4
    }

    This will fix the problem...

  16. Re:Does it compile with gcj? by greenrd · · Score: 2, Informative
    I wonder whether the RHUG people will be able to build Jazilla using gcj

    No. I've never encountered an open source JVM that fully supports AWT - let alone Swing. So they are useless for most desktop apps.

    Let me know if you find one...