Difference between revisions of "JSmol pros and cons"

From Jmol
Jump to navigation Jump to search
(Poor performance in Internet Explorer and Opera)
(styling the table)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<span style="color:red; font-size:150%">This page is under construction</span>
+
<span style="font-size:130%;">This page could also be titled '''Things To Be Aware Of When Deciding between JSmol/Java and JSmol/HTML5 (no Java)'''.</span>
  
 +
For other pages about JSmol, please see [[JSmol]].
  
<span style="font-size:130%;">This page could also be titled '''Things To Be Aware Of Before Converting From Jmol (Java) To JSmol'''.</span>
+
JSmol allows development of a page that can use Java or just HTML5 (no Java), can use WebGL or not when using HTML5, and can also load molecules using [[Lightweight JSmol]], a very small (50K) footprint (mostly nonscriptable) non-Jmol viewer option. When developing a page using JSmol, you need to decide which of these options you want. You specify that through [[Jmol_JavaScript_Object/Info#Modality|the '''Info.use''' parameter]] that is passed to the JavaScript library that sets up your page.
 
 
For other pages about JSmol, please see [[JSmol]].
 
  
==Advantages of JSmol==
+
==Advantages of Selecting use:HTML5 (no Java)==
  
Of course there are huge advantages to using JSmol:
+
Advantages to using HTML5 (no Java) include:
*Users of a JSmol website do not need to install [http://proteopedia.org/w/Java Java] (which is a [http://proteopedia.org/w/Java#Java_is_a_security_threat likely security risk]).
+
*Users of a website that does not use Java do not need to install Java.
*A JSmol website will likely work on iPads and smart phones. (Java is not available for these platforms, so Jmol is not an option for them.)
+
*A website using HTML5 will work on iPads and smart phones. (Java is not available for these platforms, so Java is not an option for them.)
 +
*A website using HTML5 will work on the Chrome browser (Java applets are no longer supported in Chrome, even in computers.)
  
==Disadvantages of JSmol==
+
==Disadvantages of Selecting use:HTML5 (no Java)==
  
===JSmol is slower than Jmol===
+
===JavaScript is slower than Java by a factor of 6-10===
  
<table width="300" cellpadding="4" style="background:#e0e0e0" align="right" hspace="10">
+
<table class="wikitable" style="width:300px; background:#e0e0e0; float:right; margin-left:1ex;">
<tr><td colspan=3>
+
<caption>Macromolecules of Various Sizes</caption>
<center>Macromolecules of Various Sizes</center>
 
</td></tr>
 
 
<tr>
 
<tr>
 
<td>
 
<td>
Line 26: Line 24:
 
Atoms (Kilo)
 
Atoms (Kilo)
 
</td><td>
 
</td><td>
KD ([http://proteopedia.org/w/Asymmetric_Unit Asymmetric Unit])
+
kDa ([http://proteopedia.org/w/Asymmetric_Unit Asymmetric Unit])
 
</td>
 
</td>
 
</tr>
 
</tr>
Line 98: Line 96:
 
</table>
 
</table>
  
JSmol is significantly '''slower''' than Jmol. Rotation will be jerkier. Smaller molecules (<10,000 atoms) are handled quite well. '''Large molecules''' (>20,000 atoms; see table at right) may be slow to load and process. (FirstGlance, when using JSmol, sometimes freezes for up to a minute, even more. These delays tend to happen with large molecules but are not simply related to model size.) Multiple-model ensembles (such as from [http://proteopedia.org/w/NMR NMR] experiments) may cause JSmol to freeze while taking minutes to load the ensemble, or loading may never finish.
+
HTML5 is significantly '''slower''' than Java. For large systems it is strongly advised to use the [[PlatformSpeed|'''set platformSpeed''']] setting (or allow the user to set that). Smaller molecules (<10,000 atoms) are handled quite well. '''Large molecules''' (>20,000 atoms; see table at right) may be slow to load and process. (FirstGlance, when using HTML5, sometimes freezes for up to a minute, even more. These delays tend to happen with large molecules but are not simply related to model size.) Multiple-model ensembles (such as from [http://proteopedia.org/w/NMR NMR] experiments) may cause the page to freeze while taking minutes to load the ensemble, or loading may never finish.
  
Here is how two websites that now use JSmol by default have handled these issues:
+
Here is how two websites that now use no-Java-JSmol by default have handled these issues:
  
*[http://firstglance.jmol.org FirstGlance in Jmol], when using JSmol (its default), loads only the first model when there are more than one. It offers signed Jmol_S (Java) as an option (and a preference setting). The unsigned Jmol applet is no longer offered because it is [http://en.wikipedia.org/wiki/Deprecated deprecated] and Oracle says that eventually it won't be allowed. FirstGlance recommends using Java when the molecule has >20,000 atoms, and even more strongly recommends it when >50,000 atoms.  
+
*[http://firstglance.jmol.org FirstGlance in Jmol], when using HTML5 (no Java, its default), loads only the first model when there are more than one. It offers using the signed Java applet as an option and a preference setting. When using FirstGlance it is recommended that one select Java when the molecule has >20,000 atoms, and especially when there are >50,000 atoms.  
  
*[http://proteopedia.org Proteopedia] loads only amino acid alpha carbon atoms (or nucleic acid phosphorus atoms) and ligand atoms, since its ribbon view (secondary structure schematic) works fine without the other atoms. A prominent message is displayed that a ''simplified model'' is being shown, and there is a button to load the complete model. For registered users who are logged in, Proteopedia has a preference setting that will use Jmol_S instead of JSmol.
+
*[http://proteopedia.org Proteopedia] loads only amino acid alpha carbon atoms (or nucleic acid phosphorus atoms) and ligand atoms, since its ribbon view (secondary structure schematic) works fine without the other atoms. A prominent message is displayed that a ''simplified model'' is being shown, and there is a button to load the complete model. For registered users who are logged in, Proteopedia has a preference setting that will use Java instead of HTML5.
  
 
===Poor performance in Internet Explorer and Opera===
 
===Poor performance in Internet Explorer and Opera===
  
JSmol runs in the javascript of the browser (HTML5). Different web browsers operate JSmol with very different performances. '''Chrome runs JSmol best''', Safari is good, and Firefox is usually OK (see note under table below). '''Internet Explorer is unacceptably slow''' (all versions, including version 11), and [http://www.netmarketshare.com it is the most widely used browser]. In '''Opera, rotation of the molecule is slow and jerky'''.  
+
Different web browsers have JavaScript engines with different performances. '''Chrome runs HTML5 best''', Safari is good, and Firefox is usually OK (see note under table below). '''Internet Explorer is unacceptably slow''' (all versions, including version 11). In '''Opera, rotation of the molecule is slow and jerky''' when [[PlatformSpeed|setPlatformSpeed]] is not utilized.  
  
 
*[http://firstglance.jmol.org FirstGlance in Jmol] detects the browser being used, and recommends a different browser when being displayed in Internet Explorer or Opera.
 
*[http://firstglance.jmol.org FirstGlance in Jmol] detects the browser being used, and recommends a different browser when being displayed in Internet Explorer or Opera.
  
The findings below are based primarily on tests with [http://firstglance.jmol.org FirstGlance in Jmol] in its default JSmol modality, and possibly results may be different for other JSmol websites.
+
The findings below are based primarily on tests with [http://firstglance.jmol.org FirstGlance in Jmol] in its default HTML5 modality, not using [[PlatformSpeed|'''set platformSpeed''']].  Results may be different for other JSmol websites.
  
 
[[Image:Jsmol-vs-browsers.png|center]]
 
[[Image:Jsmol-vs-browsers.png|center]]

Latest revision as of 00:05, 21 November 2015

This page could also be titled Things To Be Aware Of When Deciding between JSmol/Java and JSmol/HTML5 (no Java).

For other pages about JSmol, please see JSmol.

JSmol allows development of a page that can use Java or just HTML5 (no Java), can use WebGL or not when using HTML5, and can also load molecules using Lightweight JSmol, a very small (50K) footprint (mostly nonscriptable) non-Jmol viewer option. When developing a page using JSmol, you need to decide which of these options you want. You specify that through the Info.use parameter that is passed to the JavaScript library that sets up your page.

Advantages of Selecting use:HTML5 (no Java)

Advantages to using HTML5 (no Java) include:

  • Users of a website that does not use Java do not need to install Java.
  • A website using HTML5 will work on iPads and smart phones. (Java is not available for these platforms, so Java is not an option for them.)
  • A website using HTML5 will work on the Chrome browser (Java applets are no longer supported in Chrome, even in computers.)

Disadvantages of Selecting use:HTML5 (no Java)

JavaScript is slower than Java by a factor of 6-10

Macromolecules of Various Sizes

PDB code

Atoms (Kilo)

kDa (Asymmetric Unit)

1d66

1.7

28

2bvw

6

87

2cvo

12

160

7ahl

23

233

1g3i

45

826

3j36

60

900

2bbn

57 (2.7K x 21 NMR models. Includes hydrogen.)

416 (20K x 20 NMR models)

Models with >10,000 atoms are in the largest ~10% of the PDB; with >20,000 atoms, the largest ~5%; with >50,000 atoms, the largest ~1.5% (counting all models for NMR ensembles).

HTML5 is significantly slower than Java. For large systems it is strongly advised to use the set platformSpeed setting (or allow the user to set that). Smaller molecules (<10,000 atoms) are handled quite well. Large molecules (>20,000 atoms; see table at right) may be slow to load and process. (FirstGlance, when using HTML5, sometimes freezes for up to a minute, even more. These delays tend to happen with large molecules but are not simply related to model size.) Multiple-model ensembles (such as from NMR experiments) may cause the page to freeze while taking minutes to load the ensemble, or loading may never finish.

Here is how two websites that now use no-Java-JSmol by default have handled these issues:

  • FirstGlance in Jmol, when using HTML5 (no Java, its default), loads only the first model when there are more than one. It offers using the signed Java applet as an option and a preference setting. When using FirstGlance it is recommended that one select Java when the molecule has >20,000 atoms, and especially when there are >50,000 atoms.
  • Proteopedia loads only amino acid alpha carbon atoms (or nucleic acid phosphorus atoms) and ligand atoms, since its ribbon view (secondary structure schematic) works fine without the other atoms. A prominent message is displayed that a simplified model is being shown, and there is a button to load the complete model. For registered users who are logged in, Proteopedia has a preference setting that will use Java instead of HTML5.

Poor performance in Internet Explorer and Opera

Different web browsers have JavaScript engines with different performances. Chrome runs HTML5 best, Safari is good, and Firefox is usually OK (see note under table below). Internet Explorer is unacceptably slow (all versions, including version 11). In Opera, rotation of the molecule is slow and jerky when setPlatformSpeed is not utilized.

  • FirstGlance in Jmol detects the browser being used, and recommends a different browser when being displayed in Internet Explorer or Opera.

The findings below are based primarily on tests with FirstGlance in Jmol in its default HTML5 modality, not using set platformSpeed. Results may be different for other JSmol websites.

Jsmol-vs-browsers.png

The above snapshot is taken from FirstGlance.Jmol.Org. For more details, see the section Browser Pecularities in the Notes for FirstGlance.


For other articles about JSmol, please see JSmol.