[Question]
  [
# Task
Write a polyglot in two languages that when run, outputs the name of the language it is run in. Additionally, this program must *also* output the **other** language's name if the source code is reversed
# Example:
Program `ABC` in language `foo` outputs `foo`. `ABC` in language `bar` outputs `bar`. `CBA` in language `foo` outputs `bar`, and `CBA` in language `bar` outputs `foo`.
This is code-golf, so the shortest code wins
  
[Answer]
# JavaScript, HTML, 68 bytes
|  | HTML | JavaScript |
| --- | --- | --- |
| Normal | 
```
<!---->HTML<!--!<tpircSavaJ>--
alert`JavaScript`//`LMTH`trela
<!--!<
```
 | 
```
<!---->HTML<!--!<tpircSavaJ>--
alert`JavaScript`//`LMTH`trela
<!--!<
```
 |
| Reversed | 
```
<!--!<
alert`HTML`//`tpircSavaJ`trela
-->JavaScript<!--!<LMTH>----!<
```
 | 
```
<!--!<
alert`HTML`//`tpircSavaJ`trela
-->JavaScript<!--!<LMTH>----!<
```
 |
JavaScript is a strange language that support 5 kinds of comment and 5 kinds of link breaks.
Comment:
* Multi line comment `/* ... */` [Ref](https://tc39.es/ecma262/#prod-MultiLineComment)
* Single line comment `// ...` [Ref](https://tc39.es/ecma262/#prod-SingleLineComment)
* Hashbang comment `#! ...` [Ref](https://tc39.es/ecma262/#prod-HashbangComment)
	+ Must at the beginning of source code
	+ Some script host support an extra BOM in front of hashbang
* Single line HTML open comment `<!-- ...` [Ref](https://tc39.es/ecma262/#prod-annexB-SingleLineHTMLOpenComment)
* Single line HTML close comment `--> ...` [Ref](https://tc39.es/ecma262/#prod-annexB-HTMLCloseComment)
Line breaks: [Ref](https://tc39.es/ecma262/#prod-LineTerminatorSequence)
* `<LF>`
* `<CR>`
* `<LS>`
* `<PS>`
* `<CR>` `<LF>`
[Answer]
# Python + ><>, 49 bytes
```
#o<"><>"
print("python")#)"><>"(tnirp
"nohtyp"<o#
```
**Try it**:
* [Python](https://ato.pxeger.com/run?1=m72soLIkIz9vwYKlpSVpuhY3DZXzbZTsbOyUuAqKMvNKNJQg8kqayppgYY2SvMyiAi6lvPyMksoCJZt8ZYhGqH6YOQA)
* [Python Reversed](https://ato.pxeger.com/run?1=m72soLIkIz9vwYKlpSVpuhY3DZXzbZQgYkpcBUWZeSUaSnY2dkqayppKefkZJZUFSholeZlFBVxgYZt8ZYhGqH6YOQA)
* [><>](https://mousetail.github.io/Fish/#eyJ0ZXh0IjoiI288XCI+PD5cIlxucHJpbnQoXCJweXRob25cIikjKVwiPjw+XCIodG5pcnBcblwibm9odHlwXCI8byMiLCJpbnB1dCI6IiIsInN0YWNrIjoiIiwic3RhY2tfZm9ybWF0IjoibnVtYmVycyIsImlucHV0X2Zvcm1hdCI6ImNoYXJzIn0=)
* [><> Reversed](https://mousetail.github.io/Fish/#eyJ0ZXh0IjoiI288XCJweXRob25cIlxucHJpbnQoXCI+PD5cIikjKVwibm9odHlwXCIodG5pcnBcblwiPjw+XCI8byMiLCJpbnB1dCI6IiIsInN0YWNrIjoiIiwic3RhY2tfZm9ybWF0IjoibnVtYmVycyIsImlucHV0X2Zvcm1hdCI6ImNoYXJzIn0=)
[Answer]
# Java and [Whitespace](https://web.archive.org/web/20150618184706/http://compsoc.dur.ac.uk/whitespace/tutorial.php), 175 bytes
```
v->"Java"//"ecapsetihW">-vSSTTN
SSTTTN
SSTTSTN
SSSTSTSN
SSSTTSTN
SSTTN
SSSTTTSN
SSSTTN
SSSTSN
SSTTTTTN
N
SSN
SSSTTSSTTSN
TSSSTN
SSN
SN
N
N
N
SN
SSN
TSSSTN
SSSSSTTSSSN
SSN
N
STTSTTSSN
TSSSN
STTSTSSSN
TSSS
```
Above, the spaces, tabs, and newlines are indicated with `S`; `T`; and `N` respectively for readability only. The TIO-links below contain the actual spaces/tabs/newlines.
* [Try it online in Java.](https://tio.run/##PVBBCsIwEDwnrxh6ag@tDxD7AMFeBD2Ih5hGTa2xmDQg4tvrpokGsrszs7sw2wkvyq69TbIX1mIjtHlzQBunnmchFZoAga17anOBzHcP3cIXS2I/nIJ1wmmJBgaryZd1tqaN2WKRKSkGq5y@7rO69ABjPIQYERIoYc4Rs0iyHxlb4hQhKlJz@JyFeuY4vSD9qdQ1c3zezpIaERKalmHpMJ56cpCM@ODvTmfIo@XDURTpBC/r1L16jK4aSHG5qWRuxr4v0jU@0xc)
* [Try it online in Whitespace.](https://tio.run/##PYzBDcAgCEXPOAXhbtzAAbpAz8aY6M1EY8enIrQk8PmPr09ts4yecmFePtKVVqIQqOTUR5mt3hT9QgRwMnSiCG7Bo@pBIXxQI/pqu71YWNqB7Ie5XXL6kaUOc@d3sKs6NMf8Ag)
* [Try it reversed in Java.](https://tio.run/##RZDBbsIwEETP668Y5ZQcEj4AkQ@oVC5IcKh6MCYtTo2JsGOpqvj2sJsY6sPK82ZkebbXSdf96WcyToeAd239nwKsj93tS5sOW5HALt6s/4Yp91d7QqrWTO@KR4g6WoMtPDYTB0niBCKorGhRfJsJyXNQlF3FDnvqH0liTglTJEfuM8mc6KUUPcOUI1hwnkCq2@JwtrELAxcqVquCO78VbZ2mtfxqGI@OG@QiSfpdeA3lUvnjU1d5Bb8hdpfmOsZmYCeWvjGlH52r8jbu0wM)
* [Try it reversed in Whitespace.](https://tio.run/##RY5BDoAgEAPP3Vc03Ak/4AF@wDMxJHoz0eDzkYUVe2i20x722Y87X2facq0kIWoEKJYwUrs6AVUCa6U1rZMf6aKvlAlUendiHJhJ8I1hEw5sThYf3TqfdCG4VNLioi@1vg)
**Explanation:**
*In Java:*
```
v->                        // Method with empty unused parameter & String return-type
   "Java"                  //  Return "Java"
         //"ecapsetihW">-v //  No-op comment
                           //  No-op spaces/tabs/newlines
```
*In Java reversed:*
```
                           // No-op spaces/tabs/newlines
v->                        // Method with empty unused parameter & String return-type
   "Whitespace"            //  Return "Whitespace"
               //"avaJ">-v //  No-op comment
```
*In Whitespace:*
```
v->"Java"//"ecapsetihW">-v // No-ops
SSTTN                      // Push -1 (e)
SSTTTN                     // Push -3 (c)
SSTTSTN                    // Push -5 (a)
SSSTSTSN                   // Push 10 (p)
SSSTTSTN                   // Push 13 (s)
SSTTN                      // Push -1 (e)
SSSTTTSN                   // Push 14 (t)
SSSTTN                     // Push 3 (i)
SSSTSN                     // Push 2 (h)
SSTTTTTN                   // Push -15 (W)
NSSN                       // Create Label LOOP
 SSSTTSSTTSN               //  Push 102
 TSSS                      //  Add the top two integers together
                           //  (which will implicitly stop the program with an error if
                           //  there is just a single value on the stack)
 TNSS                      //  Print the top as character to STDOUT
 NSNN                      //  Jump to Label LOOP
NNSNSSNTSSSTNSSSSSTTSSSNSSNNSTTSTTSSNTSSSNSTTSTSSSNTSSS
                           // No-op whitespaces
```
*In Whitespace reversed:*
```
SSSTN                      // Push 1 (a)
SSSTSTTSN                  // Push 22 (v)
SSSTN                      // Push 1 (a)
SSTTSTTSN                  // Push -22 (J)
NSSN                       // Create Label LOOP
 SSSTTSSSSSN               //  Push 96
 TSSS                      //  Add the top two integers together
                           //  (which will implicitly stop the program with an error if
                           //  there is just a single value on the stack)
 TNSS                      //  Print the top as character to STDOUT
 NSNN                      //  Jump to Label LOOP
NNSNSSNTSSSTNSTTSSTTSSSNSSNNTTTTTSSNSTSSSNTTSSSNSTTTSSSNTTSSNTSTTSSSNSTSTSSSNTSTTSSNTTTSSNTTSS
                           // No-op whitespaces
v->"Whitespace"//"avaJ">-v // No-ops
```
The constants `102` and `96` are generated by [this Java program](https://tio.run/##fVLda9swEH/vX3Hck4xSk8H2UDuitNCBYemgTrdBKUN21USdI3vSORBG/nZXrj/ibKMvkri734fu7kXu5PnL06@myQvpHCylNn/OAKo6K3QOjiT5a1fqJ9j6FEvJarN@eAQZtGUAXQCscnVBIEA@zB/jt4w2BG4ri0K5NpEYUmtlw@XVj5/frr7c38wgERfxlGSovhvIELv81/vVzV30XFrWkmqRxHrx4dM81pz3No5GBOKMZpUYsAAtLtuTgizqbIZrRdc@4Fgwwr3fZ2CZEDqAvDSkTa063XisIOHlV@X3jfbYSubqWhtp950yy851EE/YGIXqdy0Lx6qpDHiLNrSqKjzBZ20dsWpWcUxvU5zgD6AKp@AUR9xOKsZXJWgID0Evb8NCmTVtWACLsbUTI/90e8I9mduR5phOfFyfSnZnunektmFZU1j5plBhGHZwgXwg5Rj7GSJPOEIEyN9rahL0sn8zs1P7b1WHM3/0K9uvw3vc7S6ZviE7af14MU2RMyPE/BIxMgt/rTDCcTDDBubRsM1UnlC22WApaRPKzDETBP9bNeIiX3y8uPS8keePJ/2zimprfAXeYvejQ9M0R/@v) based on [this Whitespace tip of mine](https://codegolf.stackexchange.com/a/158232/52210).
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E/wiki/Commands) and [Y](https://github.com/ConorOBrien-Foxx/Y), 15 bytes
```
"Y"gxg"E1BA50"R
```
* [Try it online in 05AB1E.](https://tio.run/##yy9OTMpM/f9fKVIpvSJdydXQydHUQCno/38A)
* [Try it online in Y](http://conorobrien-foxx.github.io/Y/) (you'll have to copy-paste `"Y"gxg"E1BA50"R` into the Code-block, and click on the 'timeout run'-button).
* [Try it reversed in 05AB1E.](https://tio.run/##yy9OTMpM/f8/SMnA1NHJ0FUpvSJdKVLp/38A)
* [Try it reversed in Y](http://conorobrien-foxx.github.io/Y/) (again, by copy-pasting `R"05AB1E"gxg"Y"` manually).
**Explanation:**
*In 05AB1E:*
```
"Y"              # Push string "Y"
                 #  STACK: "Y"
   g             # Pop and push its length
                 #  STACK: 1
    x            # Double it (without popping)
                 #  STACK: 1,2
     g           # Pop and push its length
                 #  STACK: 1,1
      "E1BA50"   # Push string "E1BA50"
                 #  STACK: 1,1,"E1BA50"
              R  # Reverse it
                 #  STACK: 1,1,"05AB1E"
                 # (after which the top of the stack is output implicitly)
```
*In 05AB1E reversed:*
```
R                # Reverse (without input, it'll push an empty string)
                 #  STACK: ""
 "05AB1E"        # Push string "05AB1E"
                 #  STACK: "","05AB1E"
         g       # Pop and push its length
                 #  STACK: "",6
          x      # Double it (without popping)
                 #  STACK: "",6,12
           g     # Pop and push its length
                 #  STACK: "",6,2
            "Y"  # Push string "Y"
                 #  STACK: "",6,2,"Y"
                 # (after which the top of the stack is output implicitly)
```
*In Y:*
```
"Y"              # Push string "Y"
   g             # Pop and print it
    x            # Stop the program
     g"E1BA50"R  # No-ops
```
*In Y reversed:*
```
R                # No-op character
 "05AB1E"        # Push string "05AB1E"
         g       # Pop and print it
          x      # Stop the program
           g"Y"  # No-ops
```
[Answer]
# Python + Javascript(Node.js) 150 bytes
Uses the differences between javascript objects and python dicts to change code passed to `eval` in both languages. Uses both quoting styles with escaping to evaluate different code when reversed
```
"'\",)]'0'[}')'\nohtyP'\(gol.elosnoc':0,')'\tpircsavaJ'\(tnirp':'0'{(lave,'",eval({"0":"print(\"Python\")",0:"console.log(\"Javascript\")"}["0"]),'\"'
```
[Python normal](https://ato.pxeger.com/run?1=NY69CsMgFEbf5S5XwQbH4iNkyh4ziNhEEBW1gRDyGl26ZGnfqW9T05_5cL7v3J9xKVPw-_64lsvp_LoBSmB0QI79hhSlD1NZOpRkDK4xLmQfNArODlaiTTqrWbWVF29TRFHFlTg1G4bAzKwcWYGDgJisL0RC9_mTQIFxATr4HJxpXBgra-tU1snGcvCtr-JAWQ3Cb90v8h_7Bg)
[Javascript normal](https://ato.pxeger.com/run?1=Nc4xCsMgFMbxu7zlRbDBsXiETNljBrE2CYhP1AZCyDW6dMnQHqq3qaHt_Of7-D2eni5231-3fD2d33dABZz1KLDbkKHyNOalRVUN5GrrKHkyKAU_Wg5TNEnPuik9-ykGlGW4Vk7PliNwO2tXrSBAQoiTz5WCdskjeQUMuJBgyCdytnY0lNaUq2TiFPLRt64Me8YLCL-6H_KP_QA)
[Python reversed](https://ato.pxeger.com/run?1=Nc49CsMgGMbxu7zLq2CDY_EImbLHDCI2EURFbSCEXKNLlyztnXqbmn7Mf56H3_0ZlzIFv--Pa7mczq8bgkRGB-DQb0BBlmiTzmpWLUgyBtcYF7IPGgRnR_dhKktXW_E2RRB1uBKnZsMAmZmVIytyFBiT9YVIbOtV1snGIpEi4wJ18Dk407gw1t59PEfb-jocKKsg-Op-yD_2DQ)
[Javascript reversed](https://ato.pxeger.com/run?1=Nc4xCsMgFMbxu7zlRbDBsXiETNljBrE2CYhP1AZCyDW6dMnQHqq3qaHt_Of7-D2eni5231-3fD2d33cEhZz1IKDbgIHKYYom6Vk3oKqBXG0dJU8GpOBH9zTmpS0t-ykGkGW4Vk7PlgNyO2tXrShQYoiTz5XCplwlE6eQFTLkQqIhn8jZ2tFQervkkfzRtq4Me8YLCL66H_KP_QA)
[Answer]
# C/C++, 119 bytes
```
#include<stdio.h>//
int main(){puts(sizeof!0-1?"C":"C++");}//};)"++C+0\C0"+0!foezis(stup{)(niam tni
//>h.oidts<edulcni#
```
[Try it online!](https://tio.run/##ZY5Bi8IwFITv/RXPCNISNqk9aqmHsnvdP@AlptE@qEkwL3to199e210F0cMwwzB8zEGFdtSKoCw/v7@gWgs9LtHqLjamDNSgE20lZYKW4KzQptngI4U0YG/ccZF/rHesZhtWc86y7VXK6zZjnNc839c54/ni6EyP056iH7LUojoDWUykrFrhsKFQmiZ22uJynA4k2sN0YZb3yUn/JVitQEglXKRH5f1zSep/9wsX8wMVFELPoMlm3UHFO6h4AY03 "Bash – Try It Online")
[Reference](https://stackoverflow.com/a/12894970/6023984)
Old: C/C++, 167 bytes
```
#include<stdio.h>//
int main(){puts("C"//
#ifdef __cplusplus//
"++"//
#endif//
);}//};)
//fidne#
//"++"
//sulpsulpc__ fednfi#
//"C"(stup{)(niam tni
//>h.oidts<edulcni#
```
[Try it online!](https://tio.run/##ZYzLCsIwEEX3/YqhBW0REuxW6cYPKTEPO1Cng0ncqN9ek6ogurjcy5nhHJUfZquHCdZzhaTHaOzeB4OTGDopC6QAZ4VUNzeOwdfloUy0Qmesg77XPEafk2C52Sw3SwZdGs3uIeVj1xRSOjRkqzTyTyofR87RfQ/OGnK4HA9l7UPkW1MTqjMEwkS7QUxogt9bE0dNWM1r6GArdKE5Vw5zcdLLgtUKhFRiiuGDmL9hUK@/O1zsNYnalyhVzlvU/ovaH9H8BA "Bash – Try It Online")
~~Not that elegant due to `#ifdef` but resolving it also save bytes~~ done
[Answer]
# [PHP](https://php.net/) [Perl 4 or 5](https://www.perl.org/), ~~45~~ ~~43~~ 41 bytes
```
print-true?php:perl;#;php:lrep?eurt-tnirp
```
[Try it online PHP](https://tio.run/##K8go@G9jXwAkC4oy80p0S4pKU0Fcq4LUohxrZWsQM6cotcA@tbQIKJuXWQRVqaAUkxeTF@Qa5hoU7OpiFZOnZM2FbARQuxVQM9AIkHYQE9kIAA "PHP – Try It Online")
[Try it online Perl](https://tio.run/##K0gtyjH5/7@gKDOvRLekqDTVviCjwKoAKGqtbA1i5hSlFtinlhYBZfMyiwogKhWUYvJi8oJcw1yDgl1drGLylKy5kI0AarcCagYaAdIOYiIbAQA "Perl 4 – Try It Online")
A simple take at it, I assumed it was not mandatory to specify the Perl version as it is not a polyglot between different versions of perl (though I could do one). Works in Perl 4 or 5
Takes advantage of the fact that PHP converts `true` to `1` for numerical operations while Perl 4/5 ignores it
EDIT: saved 2 bytes by removing `1`, `-true` is enough (with swaped languages names)
EDIT 2: thanks to Neil for saving another 2 bytes removing the spaces
[Answer]
# C and Python, ~~163~~ 119 bytes
```
p=0//1;print("Python")#//#
#define p;main(){puts("C");}//#
p
#//};)"nohtyP"(stup{)(niam;p enifed#
#//#)"C"(tnirp;1//0=p
```
[Try it online!](https://tio.run/##dU69DoIwEN77FJc2wXbA6lxxMbrK7k/SAIYOlAscCQZ4diwOxkGHG777fnPblnNmCXa74/kEe0hnTDZabw02zpPk6ZPK2nMltBZM5MXD@QLQVNZ5qQbsqJX8wJWZFh5ZkE1GcV@X9Ey5bKnDQUnvbGUQCu8eRS4WkVDBJcm7Bs1W602Cc@hnbJmSwgj4rv3ALIO4DwdRBGtt13VHjJENnwbiFlb9dbzc@9vq2/uP/pE1vwA "Dash – Try It Online")
---
###### `warning`-less & C`99` compliant version, 235 bytes
```
#include<stdio.h>//#
#define p int main(void){puts("C");}//#
#if 0//fidne#
print("Python");p=0//1#//#
#endif//0 fi#
p
#if 0//fidne#
#//#1//0=p;)"C"(tnirp
#endif//0 fi#
#//};)"nohtyP"(stup{)diov(niam tni p enifed#
#//>h.oidts<edulcni#
```
[Try it online!](https://tio.run/##nZBPa4NAEMXv@ykGhUQPugk9haiX0l7jrYf@gcVdccCMi47BkOSz24mHUgK99LALO@/3Zt6sNUMzV4Yhy14Or1BAOasQqWpH67KBLXZpU2gdqtC6GsmBBySGo0GKTh3a@OJHHqLgOYj3t4XDGjZa12jJhcr3QkdBeeamI0F8Lto2XEBHFmutN1CjgA/GO7IVMff7WJpHTNj7B48wN1Gpa/hcBtHAo7/EkvgUEZojiEXSOsLa2QUumlQS85A5O7YVSYdZdlbqvn4JV/BLyp9nVUEiP5BXux0khydI3kzbyu0m7g0k3llDjAJNcmC1glSbtBtZKTZS6cUN6@nj@v41fa5/D/hL/u/A@Rs "Dash – Try It Online")
Turns out, since C99, `main()` does implicitly [`return 0`](https://port70.net/%7Ensz/c/c99/n1256.html#5.1.2.2.3) which indicates [successful termination](https://port70.net/%7Ensz/c/c99/n1256.html#7.20.4.3p5).
A single `#` (with optional whitespaces and/or comments after it) followed by a new line is also allowed; The standard calls it ["Null directive"](https://port70.net/%7Ensz/c/c99/n1256.html#6.10.7).
[Answer]
# [Python 3.8 (pre-release)](https://docs.python.org/3.8/) + [JavaScript (Node.js)](https://nodejs.org), 95 bytes
```
1//print("Python")#1//)"nohtyP"(gol.elosnoc
console.log("JavaScript")//1#)"tpircSavaJ"(tnirp//1
```
[Try it online! (Python)](https://tio.run/##jY69CoNADMf3e4ojLt6gIl2K0BfoJDhKB7mGVpDLkUtFn96ethbcuiX/j/ziZ3mSO509L5bueGEAWMqi8Nw7SaHebDBJlAw4espcQ/qgIceBgiOrLLlAA@YDPVK4dmPXWO69gCmKMjEgvmfbRPkKqbiefZSXyGjLKitvSn05WZbplV/pOIFRwrOulNYfe3XMb9vC9JI9qzVOaL8hnCx62apdCIf7jCNywPveWyFHRlutT/1F2qNH3vIG "Python 3.8 (pre-release) – Try It Online")
```
1//print("Python")#1//)"nohtyP"(gol.elosnoc
console.log("JavaScript")//1#)"tpircSavaJ"(tnirp//1
```
[Try it online! (JavaScript)](https://tio.run/##jY/LCoMwEEX3foWMmww0EbeFrrrrSvAHlBg0EjIhSQW/3sY@oGIX3QzDmcvhztTNXZBeu8gt9WqVaeSXvF2rsnRe28igXuJIFrBICMHSGJca2EBGKEPBkswk2UBGCUMDg1syNk8jYFlWBUJ02ssm4RuwaLV3Ca@tCEZLxaoTrzDbKzjn@VbknKcNcHfcOB7jdI@ftJo7845lXs3KB9VfX29tVARndHoLULyvDMVE2m7oKP4YfnX5tv/RaRdfHw "JavaScript (Node.js) – Try It Online")
The python programs error after printing
[Answer]
# [dc](https://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html) and [Fission](https://github.com/C0deH4cker/Fission), 35 bytes
```
[dc]P[;"cd"R"Fission";][[P]noissiF[
```
[Try it online! `dc` in dc.](https://tio.run/##S0n@/z86JTk2INpaKTlFKUjJLbO4ODM/T8k6Njo6IDYvH8R1i/7/HwA)
[Try it online! `Fission` in Fission.](https://tio.run/##S8ssLs7Mz/v/PzolOTYg2lopOUUpSMkNIqpkHRsdHRCblw/iukX//w8A)
[Try it online! `Fission` in dc reversed.](https://tio.run/##S0n@/z/aLbO4ODM/LzYgOjrWWikvH8R1UwpSSklWso4OiE1Oif7/HwA)
[Try it online! `dc` in Fission reversed.](https://tio.run/##S8ssLs7Mz/v/P9oNwooNiI6OtVbKywdx3ZSClFKSlayjA2KTU6L//wcA)
## Explanations
### dc → `dc`
```
[dc]P[;"cd"R"Fission";][[P]noissiF[
[dc]                                   push the string "dc"
    P                                  print without newline
     [;"cd"R"Fission";]                push the string (psuedo comment)
                       [               push the rest of the program as string (ditto)
```
### Fission → `Fission`
```
[dc]P[;"cd"R"Fission";][[P]noissiF[
           R                           start an atom going right
            "Fission"                  print "Fission" and set the atom's mass to 7
                     ;                 destroy the atom
```
### dc reversed → `Fission`
```
[Fission]P[[];"noissiF"R"dc";[P]cd[
[       ]                              push the string "Fission"
         P                             print without newline
          [                            push the rest of the program as string (psuedo comment)
                                       note that dc's [strings] nest
                                       and also doesn't complain with an unterminated string
```
### Fission reversed → `dc`
```
[Fission]P[[];"noissiF"R"dc";[P]cd[
                       R               start an atom going right
                        "dc"           print "dc" and set the atom's mass to 2
                            ;          destroy the atom
```
[Answer]
# Minecraft Function and C, 243 bytes
```
#include <stdio.h>//a fednu#
#define w int main(){printf("C");}//a fednu#
w
#undef a//>h.oidts< edulcni#
#undef a//};)"noitcnuF tfarceniM"(ftnirp{)(niam tni w enifed#
#if 0//fidne#
tellraw @a "Minecraft Function"#
#"C" a@ warllet
#endif//0 fi#
```
The C code is hidden behind preprocessor directives, which are interpreted as comments in the Minecraft function. The Minecraft code is hidden with `#if 0` and `#endif` which is completely skipped by the compiler.
The code is written symmetrically with appropriate comments to comment out the reversed version. `#undef a//` (a comment in Minecraft and a no-op in C) is used to hide the reversed code.
The `w`, which is interpreted in C as `int main(){printf("C");}`, is also a valid Minecraft command. It has the wrong number of arguments, which causes a silent error, but the rest of the function still runs.
Try It Online:
* [C](https://tio.run/##TY6xDsIwDET3foWVLO0AYQchJCQ2PsJKbLAUXJQ66oD49uKR8XT37i7vHjlvWxTNtReC02JF5v3znBICU9Eeh1iIRQlWEDV4oeg4fd7NBY/hGqbj9y@8DrGrA4ApnZ/7WYotJ6DSa1aJf@b3OAWdxbL2Gxhjy6RyDyObSnt/plEFX@DCd93xeqeF4ZASS1GKg1GtDVe4IIS7H8wN2eDWNZvMGjzu7wAvsGKrlWyIpEU4pQOwxG37AQ)
* [C Reversed](https://tio.run/##TY6xDsIwDET3foWVLO0AYQchJCQ2PsJKbLAUXJQ66oD49uKR8XT37i7vHjlvWxSGQ0osRSkORrU2XOGCEK4hDjHoLJa138AYWyaVewC8wIqtVrIhkhbhlA7A4vFCLEqwgqjBC0XH6fNuLngMd3dyQza4dc0ms4bp@E0Jgalod1o0114ITosVmffP85@5DrGr1wOm9D1O/m5kU2nvzzSq4Atc@K4fdCD@hc/P/SzFlhNQ6TWrxG37AQ)
(Minecraft Function not available on TIO)
[Answer]
# Python, JavaScript (Node.js), 107 bytes
```
00000000: 2321 2f2f e280 a863 6f6e 736f 6c65 2e6c  #!//...console.l
00000010: 6f67 2822 4a61 7661 5363 7269 7074 2229  og("JavaScript")
00000020: 2f2f 2922 6e6f 6874 7950 2228 676f 6c2e  //)"nohtyP"(gol.
00000030: 656c 6f73 6e6f 63e2 80a8 3b60 230a 7072  elosnoc...;`#.pr
00000040: 696e 7428 2250 7974 686f 6e22 2923 2922  int("Python")#)"
00000050: 7470 6972 6353 6176 614a 2228 746e 6972  tpircSavaJ"(tnir
00000060: 700a 2360 e280 a82f 2f21 23              p.#`...//!#
```
No TIO link available...
All you need is comment out whatever you don't want...
[Answer]
# [Vyxal](https://github.com/Vyxal/Vyxal) + [05AB1E](https://github.com/Adriandmen/05AB1E), 39 bytes
```
"‛₴ŀ,Q,`E1BA50``"i0"laxyV"}"05AB1E"0i0`
```
[Vyxal code](https://vyxal.pythonanywhere.com/?v=2&c=1#WyIiLCIiLCJcIuKAm+KCtMWALFEsYEUxQkE1MGBgXCJpMFwibGF4eVZcIn1cIjA1QUIxRVwiMGkwYCIsIiIsIiJd)
[Vyxal code reversed](https://vyxal.pythonanywhere.com/?v=2&c=1#WyIiLCIiLCJgMGkwXCJFMUJBNTBcIn1cIlZ5eGFsXCIwaVwiYGAwNUFCMUVgLFEsxYDigrTigJtcIiIsIiIsIiJd)
[05AB1E code](https://tio.run/##yy9OTMpM/f9f6VHD7EdNW4426ATqJLgaOjmaGiQkKGUaKOUkVlSGKdUqGZg6Ohm6KhlkGiT8/w8A "05AB1E – Try It Online")
[05AB1E code reversed](https://tio.run/##yy9OTMpM/f8/wSDTQMnV0MnR1ECpVimssiIxR8kgUykhwcDU0cnQNUEnUOdow6OmLY8aZiv9/w8A "05AB1E – Try It Online")
[Answer]
# [Clip](https://esolangs.org/wiki/Clip) and [Fission](https://github.com/C0deH4cker/Fission), 18 bytes
```
"Clip";"noissiF"L+
```
[Try it online in Fission!](https://tio.run/##S8ssLs7Mz/v/X8k5J7NAyVopLx8k4qbko/3/PwA "Fission – Try It Online")
[Try it online in Fission reversed!](https://tio.run/##S8ssLs7Mz/v/X9tHyQ3CVrJWKsjMcVb6/x8A "Fission – Try It Online")
No online link for Clip.
In Clip, most things after the first entity and its parameters recursively don't matter. (Some operators also wait for input, but not in this case.) Strings takes no parameters. `L` is an empty list. `+` is for concatenation.
In Fission, `L` emits an atom to the left and `;` destroys the atom. Strings in double quotes on the path of the atom are printed. It wraps around on the edges like most 2D languages.
# [GolfScript](http://www.golfscript.com/golfscript/) and [Fission](https://github.com/C0deH4cker/Fission), 25 bytes
```
"GolfScript"K}K"noissiF"L
```
[Try it online in GolfScript!](https://tio.run/##S8/PSStOLsosKPn/X8kdyAkGc5S8a72V8vIzi4sz3ZR8/v8HAA "GolfScript – Try It Online")
[Try it online in Fission!](https://tio.run/##S8ssLs7Mz/v/X8k9PyctOLkos6BEybvWWykvHyTjpuTz/z8A "Fission – Try It Online")
[Try it online in GolfScript reversed!](https://tio.run/##S8/PSStOLsosKPn/30fJLbO4ODM/T8m71luppCCzKDk4LSffXen/fwA "GolfScript – Try It Online")
[Try it online in Fission reversed!](https://tio.run/##S8ssLs7Mz/v/30fJDcJU8q71ViopyCxKDk7LyXdX@v8fAA "Fission – Try It Online")
In GolfScript, `K` is a no-op and `}` is a super comment.
In Fission, `K` works like `;` but also does something else that doesn't matter. Using `;` here would break GolfScript.
]