Recently I was kind of amused by two instances of quiet yet long-time struggles with software. Struggles are not inherently amusing,1 but when you discover that you are not the only one struggling with a problem, you may feel relieved and even amused (phew, I’m probably not totally an idiot).
rJava
One instance was Julia Silge crying over rJava. Oh rJava… RJAVA! Let me count the number of ways you could fail and the number of hours I have spent on your installation…

There may well be good reasons for our frustrations. I don’t know. I know nothing about Java. I don’t use rJava myself. I just tried to install it because I need to check the reverse dependencies of some of my R packages, which happened to use rJava.
Anyway, if a software package seems to try to turn an average user into a sysadmin, that is probably not a good sign. Ummm…
-
R CMD javareconf?
-
clang: error: unsupported option ‘-fopenmp’? What does
-fopenmpmean? -
Library not loaded: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/lib/server/libjvm.dylib?
-
Java 8? 9? JDK 10?
-
sudo?

Actually I did figure out how to install it, but it was a long way… I was afraid that I would have to go through this again in the future (like I did for a few times in the past), so I chose not to touch it again.
D3
Okay, D3. Seriously, it is awesome. But somehow it seems to have something in common with LaTeX: if you look at the output, it is often amazingly beautiful and elegant, but when you start to learn the source code, it starts to hurt (I have to say I’m much more comfortable with JavaScript than LaTeX, though).
I’m sure if I learn it seriously and step by step, I wouldn’t struggle much. I kind of know JavaScript and SVG, but my brain has been poisoned by R graphics. D3 is even more low-level than base R graphics. I don’t want to spend too much time on learning it, so to some extent, I just deserve my failures.
So I wanted to create a simple bubble chart after seeing the beautiful official example. It turned out that it took me about six hours, which made Tracy Shen and Joshua Goldberg feel relieved. The last time when I touched D3 was six years ago, and I still remember the examples of three dots.
Conclusion?
Is there anything we can learn from these two examples? One obvious lesson is that it can be very normal for one to struggle with something, even if one is an expert in other areas. Another lesson is that you may soothe other users if you share your secret struggles.
While I was writing this post, an idea came to my mind: How about editing a contributed book on all our failed attempts or struggles in installing/using software packages? I think it can be valuable because it will show the average users’ perspectives. From the perspective of software authors, everything may be obvious and easy, and they may not even be able to imagine the possible ways in which users can fail. One challenge for this book, however, is to avoid turning it into a book of complaints.
-
Not sure if there is an equivalent version in the western culture, but we sometimes joke in Chinese: “What made you so unhappy? Come on! Tell us, to make us happy.” Again, this is only a joke. We are not really that evil. ↩︎
Donate
As a freelancer (currently working as a contractor) and a dad of three kids, I truly appreciate your donation to support my writing and open-source software development! Your contribution helps me cope with financial uncertainty better, so I can spend more time on producing high-quality content and software. You can make a donation through methods below.
-
Venmo:
@yihui_xie, or Zelle:xie@yihui.name -
Paypal
-
If you have a Paypal account, you can follow the link https://paypal.me/YihuiXie or find me on Paypal via my email
xie@yihui.name. Please choose the payment type as “Family and Friends” (instead of “Goods and Services”) to avoid extra fees. -
If you don’t have Paypal, you may donate through this link via your debit or credit card. Paypal will charge a fee on my side.
-
-
Other ways:
WeChat Pay (微信支付:谢益辉) Alipay (支付宝:谢益辉) 

When sending money, please be sure to add a note “gift” or “donation” if possible, so it won’t be treated as my taxable income but a genuine gift. Needless to say, donation is completely voluntary and I appreciate any amount you can give.
Please feel free to email me if you prefer a different way to give. Thank you very much!
I’ll give back a significant portion of the donations to the open-source community and charities. For the record, I received about $30,000 in total (before tax) in 2024-25, and gave back about $15,000 (after tax).