Closed Nancy-Salpepi closed 1 year ago
Here's an inventory of what would need to change. Back to @arouinfar to advise on next steps.
This is the most problematic part of the change. Currently we have this translated string:
"moleculeCount": {
"value": "Molecule Count"
},
... which is used to label this checkbox, which controls visibility of the counts shown above it:
Since we're showing counts for ions and a molecule (H2O), what label should we put on the checkbox? "Ions and Molecule Counts" is much too long. Could we simply shorten it to "Counts"?
If we introduce a new string, we'll need to notify translators after publication. And do I need to do anything if I delete a string? (Check with @jbphet.)
Code is not visible to the user, but should be changed for maintainability. This will take ~30 minutes.
Searching for "molecules" (not case-sensitive):
This will change the API, and require migration rules. This will take ~30 minutes + PhET-iO team help.
API changes:
The new migration rules for tandem names would look something like this (or perhaps they should include complete phetioIDs?):
new TandemFragmentRenamed( 'numberOfH3OMoleculesProperty', 'numberOfHydroniumIonsProperty' );
new TandemFragmentRenamed( 'numberOfOHMoleculesProperty', 'numberOfHydroxideIonsProperty' );
Note the new names in the rules above. I'm proposing to use "Hydronium" and "Hydroxide", because I can't put "H3O+" and "OH-" in a tandem name.
According to @samreid in Slack#phet-io "Changing or removing phetioDocumentation does not require migration rules."
Ions are not molecules, because molecules have no charge.
According to Wikipedia:
An ion (/ˈaɪ.ɒn, -ən/)[1] is an atom or molecule with a net electrical charge.
So perhaps it is OK to call ions molecules?
When an atom gains/loses electrons and thus takes on charge, it is no longer called an atom. It is called an ion. The same goes for molecules.
Lots of conflicting info out there...
Oxford dictionary:
Ion: an atom or molecule with a net electric charge due to the loss or gain of one or more electrons
But then https://edu.rsc.org/cpd/atoms-molecules-and-ions/3010574.article:
Students should understand that:
- Particles can be atoms, molecules or ions.
- Atoms are single neutral particles.
- Molecules are neutral particles made of two or more atoms bonded together.
- An ion is a positively or negatively charged particle.
Should we ask a chemist? Or ChatGTP? :)
- Particles can be atoms, molecules or ions.
So maybe change "Molecule Count" to "Particle Counts"?
I taught chemistry for 18 years. I also asked my friend who is a chemistry teacher and has a chemistry degree. Molecule is definitely not the correct term here. Yes--particle would be better in my/her opinion.
ChatGPT says:
An ion is an atom or group of atoms that has a net electric charge due to the loss or gain of one or more electrons. Ions can be either positive or negative, depending on the number of electrons they have compared to the number of protons in the nucleus. Atoms can become ions by either losing or gaining electrons, so an ion is still considered to be an atom. However, the term "atom" usually refers to a neutral atom, which has the same number of protons and electrons, while the term "ion" specifically refers to an atom or group of atoms that has a net electric charge.
UPDATE: Particle Counts sounds good to me.
So what I'm hearing is that atoms and molecules are inherently neutral particles. And when they become charged, its no longer appropriate to call them atoms and molecules, and they should be referred to as ions. So what we have in our case is 2 ions (H3O+ and OH-) and 1 molecule (H2O). And since "Particles can be atoms, molecules or ions", it would be appropriate to refer to H3O+, OH-, and H2O together as "particles", and label the checkbox as "Particle Counts".
Discussed with @arouinfar. Here's what we're going to change:
"particleCounts": {
"value": "Particle Counts"
},
tandem renames (for consistency with concentrationH2OProperty, quantityH2OProperty, et.al.):
And then:
Worked with @samreid and @zepumph, and here are the migration rules that are needed for this issue:
// Change terminology from 'Molecule Count' to 'Particle Counts', https://github.com/phetsims/ph-scale/issues/258
new TandemFragmentRenamed( 'numberOfH2OMoleculesProperty', 'particleCountH2OProperty' ),
new TandemFragmentRenamed( 'numberOfH3OMoleculesProperty', 'particleCountH3OProperty' ),
new TandemFragmentRenamed( 'numberOfOHMoleculesProperty', 'particleCountOHProperty' ),
new TandemFragmentRenamed( 'beakerControlPanel.moleculeCountCheckbox', 'beakerControlPanel.particleCountsCheckbox' ),
new TandemFragmentRenamed( 'viewProperties.moleculeCountVisibleProperty', 'viewProperties.particleCountsVisibleProperty' ),
new TandemFragmentRenamed( 'view.moleculeCountNode', 'view.particleCountsNode' )
Back to @Nancy-Salpepi and @arouinfar to test-drive in master. The checkbox is now labeled "Particle Counts", and where you previous saw "molecule" in the Studio tree, you will now see "particle".
@Nancy-Salpepi Please also verify that 1.5 => 1.6 migration is working as expected. Links for testing with previous versions:
Thanks for making the change. Things look good to me on master. Migration is working as expected. I see all the "Molecule Count" to "Particle Count" changes listed in the console in studio 1.6.0-dev.1.
The basics version doesn't have "Molecule" in the tree(at least that I saw). A test migration worked as expected.
Excellent, thanks @Nancy-Salpepi.
@arouinfar if everything looks OK after your reviw, feel free to close.
Thanks @Nancy-Salpepi @pixelzoom! Everything looks good in master, closing.
For https://github.com/phetsims/qa/issues/866 In the Micro and My Solution screens, the word "molecule" in the Molecule Count checkbox isn't the correct term. When checked, it shows the amounts of hydronium ion, hydroxide ion, and water molecules. Ions are not molecules, because molecules have no charge. Other options to consider are "particle" or "species."
From @arouinfar on Slack: