J2EE development may seem slow, but this is because you are expected to do some serious analysis of a project and write scalable portable code: The time spent is a worthwhile investment. Comparing MS products with something like J2EE is rather like comparing Access to Oracle - you can write apps very quickly with the former, but you would not want to run a business with it.
You are confusing J2EE and EJBs (Entity Java Beans). Struts, Velocity and Hibernate are J2EE. Anyone who uses JSP or servlets is using J2EE - EJBs are only one aspect of J2EE. Many of the features of EJBs are now superceded by JDO (Java Data Objects) - an object/relational layer that makes database interfacing hugely faster and more scalable and more portable than with PHP/Perl etc.
Why is running work stuff under X11 a problem? I have users running Open Office under KDE 3.1 at a busy call centre, with few problems. Or are you talking about X11 under a Mac?
Open Office 1.1 rc3 does exactly this. There is a macro recorder that produces Basic scripts. This will run unchanged on Windows, Linux, Solaris, and MacOS/X.
Studies (take a look at the publications of Stephen Baxter) of the long-term future of the universe indicate that the period of star formation will be a short and totally insignificant part of the long period that the cosmos will remain habitable for life. During the eons ahead it will be black holes that provide the energy for life and civilisations.
Java is not proprietary - if it were, there would not be a GNU implementation. Java's GUI is no longer slow - the SWT GUI system from IBM allows native-speed on a large number of platforms, and works with the GNU Java.
Java is almost never interpreted these days. Its loaded as virtual machine byte code, then dynamically profiles, optimized and run as high-performance native code in almost all situations. High quality VMs (such as those from IBM) can run many Java apps as fast as C/C++. Saying that perl/python and other scripting languages beat Java in terms of speed is simply typical Slashdot anti-java FUD.
XML is a fad, plain and simple. It isn't superior to custom file formats in any way
1. XML is readable by people. You don't end up with useless legacy binary files with XML.
2. You don't have to write yet another file format IO library - you can download XML readers and writers for any language, and there are simple and easy APIs (like SAX) for extracting the information.
3. XML files are cross-platform - there are no
issues like endian-ness or word length to prevent the data being read.
4. XML files are self-documenting in terms of structure - tags, attributes and text content are understood by everyone - you don't need to specify your own delimiter set, escape characters, line terminators etc.
5. XML files can be validated for correctness.
6. XML is extensible. You can take someone else's format, and add your own tags with your own namespace, extending the structure of the data without altering the meaning for legacy programs (programs need only interpret the tags they recognise).
7. XML is transformable. You can easily port data between different XML tag sets, or to another file format (PS,PDF,RTF,SVG etc) using XSLT style sheets.
8. XML is searchable. You can store in XML repositories and it will be searchable on tags and attributes.
9. XML is international. There are defined mechanisms for coding international characters.
10. Almost everyone is either using it, or going to. Microsoft Office can load and save XML. Microsoft.Net and the SOAP services use XML for communication. The OpenOffice native file format is a ZIPed directory containg XML files. Why not be compatible, rather than write your own custom format?
"Given the way Java is going nowadays"... Java is the most widely used programming language and is still growing at an amazing rate. Sun sell licences for enterprise java and make a lot of money doing it.
Sun have always used an interesting strategy to open up markets for their products and services. They promote open standards, and even donate technologies to the IT community (such as NFS). Sun virtually invented the idea of the desktop Workstation. The idea being that the bigger the market for open standards, Unix, Java whatever, the bigger portion Sun can take. The more people use Linux, the bigger the Unix-ish market is a whole, and that benefits sun. There will be more users who could want to migrate to a more enterprise-level Unix version.
Re:A lot of people seem to be adamant against Java
on
Head First Java
·
· Score: 1
Yes, but *what* complex SQL are you using? Its all very dependent on the Database. Such dependency is very bad practice. Databases, like hardware platforms, should be able to be freely chosen, and switched, at any point, otherwise all your projects go belly-up because the management decide they don't want to renew your Oracle licences.
Use something modern and sensible - write your business model and data structures in Java + JDO, and you will not care about whether the underlying store is a database, a filesystem or a phone SIM.
Writing everything in SQL was out of date and unsupportable a decade ago.
There is little need for information about such proprietary OR mapping layers these days, as there is now a standard for such things: Java Data Objects (JDO). This is a full-featured OR API that is well documented (see 'Java Data Objects' by Robin Roos), and has a large number of commercial implementations, and free implementations are available from Sun and Apache.
If you use Oracle as your J2EE app server, you can write standard, portable Java the code gets deployed in a VM embedded within the database engine, and runs very fast and optimised. Oracle allow Java to run like this because SecurityManagers can prevent code from doing bad stuff within the database engine. So, there is no performance advantage in using PL/SQL as against Java/JDBC in Oracle
With Java and JDO you can write full-featured database apps, including queries in JDOQL, and ship the binary application, leaving it up to the customer to decide what JDO tool/server to use and what database engine to run the thing on, depending on their needs and budget. This is simply impossible in C++, Visual Basic etc.
Its the 'Compile Once Deploy Anywhere' of Java that is the real winner.
(And if you use the latest Java VMs from IBM you often find Java running faster than C++).
Java. In terms of mobile computing, its the only game in town. You can either use J2ME, which is available almost everywhere, including on almost all new phones, or SuperWABA, which is far more fully featured and allows deployment of apps to both PalmOS and WinCE/PocketPC/whatever.
Why bother with.NET when Java gives you deployment to all platforms, not just Microsoft?
How do you know? Do you have some secret insight into the minds of managers and developers in these companies? This is a very cynical statement and needs good evidence.
Re:Kiss and say goodbye to Java language!!
on
PHP Cookbook
·
· Score: 1
For one, C is a hell of a lot faster than Java or PHP (unless really really really badly written - like, you'd have to work hard at writing some real crap C code for it to be only 4 times as quick as Java).
No its not. It really isn't - and this myth should die. Sun's 1.4 Java VM runs Java code at only 10-40% slower than the IDENTICAL C code. IBM's 1.4 Java VM can run Java numerica code FASTER than the identical C code.
Don't believe me - try it and see. Just stop spreading these myths.
I spend too much of my job re-writing code for projects that started small and then grew.
Surely its simply good practice to design and code with scalability and performance built in? Postgresql is no harder to use that MySQL is it?
Re:Kiss and say goodbye to Java language!!
on
PHP Cookbook
·
· Score: 1
Its not just EJBs that make Java a vastly more powerful and flexible system for server-side development than PHP.
With application frameworks such as Struts, you can quiclky develop fast and very scaleable applications. The idea of embedding both code and HTML in the same file is very bad practice, and makes the application both slow and inflexible.
Java (even as JSP) allows use of really high-performance and flexible tools such as Java Data Objects to provide high-speed object storage even on existing databases. (see the Apache DB project for an example).
PHP is really useful for quick development of small sites, but so many IT projects hit problems because small sites don't remain small, and need a better solution.
One great aspect of Java is that you can write re-usable code in the form of beans, and use those throughout your development environment. You don't end up writing something for a web page in PHP and then having to re-invent the wheel to use the code in another context.
Oh, and I find it hard to believe that PHP can match the speed of compiled, run-time optimised and native-code translated Java/JSP.
Linux is growing on the desktop, slowly and steadily, but all desktops are not the same. Where Linux really works well on the desktop is in enterprise and other commercial environments, where users can log-on and find a pre-installed system with, for example, the latest KDE desktop, Evolution and Open Office. The common complaint that Linux on the desktop isn't user friendly is way out of date - I have migrated Windows NT/Office users to KDE/OpenOffice and there has had to be only minor training - less than moving users from NT to XP!
The home/consumer desktop is a different matter, but with more work (and games support!) Linux can succeed there too.
So, there are so many simulations going in the future that the chances of us being in a real world are negligible? By the same reasoning we must all be insects. Of all animals on the planet, so many of them are insects that the chances of any animal picked at random being anything else is so unlikely that we must be insects too...
But seriously, the simulation argument falls down because you can't average over the future. Firstly, its not around yet to take samples from (duh!), secondly you can't randomly sample through time (unless you are a Time Lord). Bostrom's argument has no basis.
This is yet another example of cosmologists and physicists working out some Real Neat Math and assuming that the universe really works that way. One of the motivations for this oscillating universe theory is to remove the supposed singularity at the origin of the Big Bang and at possible Big Crunch. This oscillating model still has a singularity at the instant of collision of the branes, but its apparently a "less severe" signularity.
Well, perhaps a better approach to cosmology would be to realise that if your model has singularities its because you don't yet have a full model of reality, and it does not mean that singularities really exist anywhere. The singularities that this new model is supposed to remove almost certainly would not be present in a complete theory of quantum gravity: they are only an artefact of General Relativity which is an incomplete theory which fails at very small distances.
There are many difficulties with the new theory: It assumes that the branes are perfectly parallel, and that the conditions at the point of collision never vary enough to stop the branes bouncing. These are pretty big assumptions, which are almost certainly contradicted by quantum mechanics, and mean that this theory requires the Universe to be in a more complex state than the very simple initial conditions required by Big Bang + inflation.
I have a theory that the next world war will be
about pollution, as there will be an increasing divide between nations that are either suffering from catastrophic environmental disasters or doing something about pollution and the United States which, at least in the forseeable future, be the most significant source of this polution. No wonder Dubya wants the missile defence system!
The trouble with making things so small is sooner or later one of those nano-scale components is going to be zapped by either a cosmic ray or background radiation from some other source. Considering how many of these particles hit our bodies each second, this could be a serious problem. Its not a big deal for current technologies, but when you are talking about single atoms and single electrons....
So, you are going to need very clever circuits to detect errors and switch-in replacements, which makes the thing bigger.
All of these features are present in eclipse (www.eclipse.org) with Java.
J2EE development may seem slow, but this is because you are expected to do some serious analysis of a project and write scalable portable code: The time spent is a worthwhile investment. Comparing MS products with something like J2EE is rather like comparing Access to Oracle - you can write apps very quickly with the former, but you would not want to run a business with it.
A better test would be .Net vs J2EE/JDO.
Why is running work stuff under X11 a problem? I have users running Open Office under KDE 3.1 at a busy call centre, with few problems. Or are you talking about X11 under a Mac?
Open Office 1.1 rc3 does exactly this. There is a macro recorder that produces Basic scripts. This will run unchanged on Windows, Linux, Solaris, and MacOS/X.
http://www.openoffice.org
Studies (take a look at the publications of Stephen Baxter) of the long-term future of the universe indicate that the period of star formation will be a short and totally insignificant part of the long period that the cosmos will remain habitable for life. During the eons ahead it will be black holes that provide the energy for life and civilisations.
Java is not proprietary - if it were, there would not be a GNU implementation. Java's GUI is no longer slow - the SWT GUI system from IBM allows native-speed on a large number of platforms, and works with the GNU Java.
Java is almost never interpreted these days. Its loaded as virtual machine byte code, then dynamically profiles, optimized and run as high-performance native code in almost all situations. High quality VMs (such as those from IBM) can run many Java apps as fast as C/C++. Saying that perl/python and other scripting languages beat Java in terms of speed is simply typical Slashdot anti-java FUD.
1. XML is readable by people. You don't end up with useless legacy binary files with XML.
2. You don't have to write yet another file format IO library - you can download XML readers and writers for any language, and there are simple and easy APIs (like SAX) for extracting the information.
3. XML files are cross-platform - there are no issues like endian-ness or word length to prevent the data being read.
4. XML files are self-documenting in terms of structure - tags, attributes and text content are understood by everyone - you don't need to specify your own delimiter set, escape characters, line terminators etc.
5. XML files can be validated for correctness.
6. XML is extensible. You can take someone else's format, and add your own tags with your own namespace, extending the structure of the data without altering the meaning for legacy programs (programs need only interpret the tags they recognise).
7. XML is transformable. You can easily port data between different XML tag sets, or to another file format (PS,PDF,RTF,SVG etc) using XSLT style sheets.
8. XML is searchable. You can store in XML repositories and it will be searchable on tags and attributes.
9. XML is international. There are defined mechanisms for coding international characters.
10. Almost everyone is either using it, or going to. Microsoft Office can load and save XML. Microsoft .Net and the SOAP services use XML for communication. The OpenOffice native file format is a ZIPed directory containg XML files. Why not be compatible, rather than write your own custom format?
So Yes, Everything Should Be XML
Sun have just re-released Solaris on Intel.
Java is free, but sun makes a lot of money licencing J2EE.
Sun is doing fine.
"Given the way Java is going nowadays"...
Java is the most widely used programming language and is still growing at an amazing rate. Sun sell licences for enterprise java and make a lot of money doing it.
Sun have always used an interesting strategy to open up markets for their products and services. They promote open standards, and even donate technologies to the IT community (such as NFS). Sun virtually invented the idea of the desktop Workstation. The idea being that the bigger the market for open standards, Unix, Java whatever, the bigger portion Sun can take. The more people use Linux, the bigger the Unix-ish market is a whole, and that benefits sun. There will be more users who could want to migrate to a more enterprise-level Unix version.
Yes, but *what* complex SQL are you using? Its all very dependent on the Database. Such dependency is very bad practice. Databases, like hardware platforms, should be able to be freely chosen, and switched, at any point, otherwise all your projects go belly-up because the management decide they don't want to renew your Oracle licences.
Use something modern and sensible - write your business model and data structures in Java + JDO, and you will not care about whether the underlying store is a database, a filesystem or a phone SIM.
Writing everything in SQL was out of date and unsupportable a decade ago.
There is little need for information about such proprietary OR mapping layers these days, as there is now a standard for such things: Java Data Objects (JDO). This is a full-featured OR API that is well documented (see 'Java Data Objects' by Robin Roos), and has a large number of commercial implementations, and free implementations are available from Sun and Apache.
If you use Oracle as your J2EE app server, you can write standard, portable Java the code gets deployed in a VM embedded within the database engine, and runs very fast and optimised. Oracle allow Java to run like this because SecurityManagers can prevent code from doing bad stuff within the database engine. So, there is no performance advantage in using PL/SQL as against Java/JDBC in Oracle
With Java and JDO you can write full-featured database apps, including queries in JDOQL, and ship the binary application, leaving it up to the customer to decide what JDO tool/server to use and what database engine to run the thing on, depending on their needs and budget. This is simply impossible in C++, Visual Basic etc.
Its the 'Compile Once Deploy Anywhere' of Java that is the real winner.
(And if you use the latest Java VMs from IBM you often find Java running faster than C++).
Java. In terms of mobile computing, its the only
.NET when Java gives you deployment to
game in town. You can either use J2ME, which
is available almost everywhere, including on almost
all new phones, or SuperWABA, which is far more
fully featured and allows deployment of apps
to both PalmOS and WinCE/PocketPC/whatever.
Why bother with
all platforms, not just Microsoft?
How do you know? Do you have some secret insight
into the minds of managers and developers in these
companies? This is a very cynical statement and
needs good evidence.
For one, C is a hell of a lot faster than Java or PHP (unless really really really badly written - like, you'd have to work hard at writing some real crap C code for it to be only 4 times as quick as Java).
No its not. It really isn't - and this myth should die.
Sun's 1.4 Java VM runs Java code at only 10-40% slower than
the IDENTICAL C code. IBM's 1.4 Java VM can run Java numerica
code FASTER than the identical C code.
Don't believe me - try it and see. Just stop spreading
these myths.
I spend too much of my job re-writing code for projects
that started small and then grew.
Surely its simply good practice to design and code with
scalability and performance built in? Postgresql is no
harder to use that MySQL is it?
Its not just EJBs that make Java a vastly more powerful
and flexible system for server-side development than PHP.
With application frameworks such as Struts, you can
quiclky develop fast and very scaleable applications. The idea
of embedding both code and HTML in the same file is very
bad practice, and makes the application both slow and
inflexible.
Java (even as JSP) allows use of really high-performance
and flexible tools such as Java Data Objects to provide
high-speed object storage even on existing databases.
(see the Apache DB project for an example).
PHP is really useful for quick development of small sites,
but so many IT projects hit problems because small sites
don't remain small, and need a better solution.
One great aspect of Java is that you can write re-usable
code in the form of beans, and use those throughout
your development environment. You don't end up writing
something for a web page in PHP and then having to re-invent
the wheel to use the code in another context.
Oh, and I find it hard to believe that PHP can match the
speed of compiled, run-time optimised and native-code
translated Java/JSP.
Linux is growing on the desktop, slowly and steadily,
but all desktops are not the same. Where Linux really
works well on the desktop is in enterprise and other commercial
environments, where users can log-on and find a pre-installed
system with, for example, the latest KDE desktop, Evolution
and Open Office. The common complaint that Linux on the desktop
isn't user friendly is way out of date - I have migrated
Windows NT/Office users to KDE/OpenOffice and there has
had to be only minor training - less than moving users
from NT to XP!
The home/consumer desktop is a different matter, but with more
work (and games support!) Linux can succeed there too.
that the chances of us being in a real world are
negligible? By the same reasoning we must all be
insects. Of all animals on the planet, so many
of them are insects that the chances of any animal
picked at random being anything else is so unlikely
that we must be insects too...
But seriously, the simulation argument falls down
because you can't average over the future. Firstly,
its not around yet to take samples from (duh!),
secondly you can't randomly sample through time
(unless you are a Time Lord). Bostrom's argument
has no basis.
Well, perhaps a better approach to cosmology would be to realise that if your model has singularities its because you don't yet have a full model of reality, and it does not mean that singularities really exist anywhere. The singularities that this new model is supposed to remove almost certainly would not be present in a complete theory of quantum gravity: they are only an artefact of General Relativity which is an incomplete theory which fails at very small distances.
There are many difficulties with the new theory: It assumes that the branes are perfectly parallel, and that the conditions at the point of collision never vary enough to stop the branes bouncing. These are pretty big assumptions, which are almost certainly contradicted by quantum mechanics, and mean that this theory requires the Universe to be in a more complex state than the very simple initial conditions required by Big Bang + inflation.
I have a theory that the next world war will be
about pollution, as there will be an increasing divide between nations that are either suffering from catastrophic environmental disasters or doing something about pollution and the United States which, at least in the forseeable future, be the most significant source of this polution. No wonder Dubya wants the missile defence system!
So, you are going to need very clever circuits to detect errors and switch-in replacements, which makes the thing bigger.