March 12, 2020
Five years ago today, on March 12, 2020, my world changed.
At the time, I was living in Nuremberg, Germany, as an exchange student on a Congress-Bundestag Youth Exchange scholarship. My year had proven wonderful: I had an amazing host family and attended a wonderful school. There are so many things I think about when that year comes to mind, but that very unique week in early March will be forever seared into my mind.
A then-novel coronavirus had arrived in Italy several weeks before. Since then, it had begun spreading inside Germany. Each day, the number of patients and the number of countries impacted seemed to grow.
That Tuesday, March 10, after much analysis of the rapidly changing situation, the State Department informed members of my exchange program that we would remain in Germany despite the rapidly growing outbreak. On Thursday morning, I learned that the Trump Administration had increased the relative risk level of traveling to Europe. Around noon, members of my exchange program received notice that we should pack our bags and prepare to return home in the next 24-72 hours.
Those last few days in Germany were unforgettable. On Friday, my head felt warm, my limbs ached, and I wondered if I had a fever. Did I have it? I decided it was probably just a stress reaction. I remember meeting up with friends for drinking chocolate, my host mother purchasing a monster pretzel for my last breakfast in Nuremberg, saying goodbye to my classmates (and taking a group photo).
At 3:00 A.M. on Sunday, March 15, 2020, my host mother and I took a taxi to the airport. I flew to Frankfurt, joined other members of my exchange program, and then proceeded onwards to Newark on a 787. Most of the seats on the flight were empty; people started just sitting wherever they wanted to. It was as if the world was ending. It was definitely changing; I don’t think I’ve flown on a plane where no one masked ever since. (At the time, masks were scarce and being rationed for medical workers and people with suspected symptoms.)
By the time I landed later that day, the United States was in the process of shutting down. At the airport, we filled out forms about our recent medical history and walked through a line surrounded by C.D.C. people in white scrubs. They checked each person’s temperature as we walked into the customs room. Because I had had symptoms a few days before, I was taken aside and given a mask, before walking through an empty customs line with no one in front of me and no one behind me.
Those days are both unfathomable and unforgettable. In a matter of weeks, the world went from not knowing COVID-19 existed to completely shutting down. Despite the way those days are seared into my memory, they feel surreal, as if they happened to someone else. I watched as the world changed, and yet now I cannot image so dramatic a transformation ever occuring again.
Leadership Change in Canada
Mark Carney will become the next prime minister of Canada later this week, after he was elected the leader of the country’s Liberal Party. Mr. Carney, who is expected to hold snap elections shortly after he becomes the Canadian premier, will replace the remarkably unpopular Justin Trudeau.
Mr. Carney’s foreign policy positions are not yet well delineated. His opposition to Brexit and plans to increase Canadian military spending to pass NATO’s two percent threshold seem indicative of a liberal internationalist approach, but, because of his lack of previous foreign policy experience, it is difficult to be certain.
While Mr. Carney has previously expressed support for initiatives bringing the West together, he did make a number of statements critical of American President Donald Trump while campaigning. While Mr. Carney’s comments were likely designed to consolidate political support, Mr. Trump may not see it that way. It seems plausible, in fact, that the mercurial Mr. Trump may intensify his attacks on Canada as as a response to perceived disrespect from Mr. Carney.
On domestic matters, Mr. Carney plans to scrap Canada’s carbon tax program and replace it with a semi-protectionist tax on imports from climate-unfriendly countries. Much like leaders who have recently ascended to power in other Western nations, Mr. Carney has criticized immigration policy and called for a reduction in immigration.
Beyond his policies, Mr. Carney brings a remarkable degree of economic expertise to his new job. A graduate of Harvard and Oxford Universities, he is the only person to have headed the central bank of two separate G7 countries. Yet despite that expertise, his lack of experience as a politician, and with foreign affairs, may ultimately prove too great of a hindrance to overcome.
After Mr. Trudeau’s resignation, the Liberal Party has seen a significant surge in the polls. If the shift in polling holds, the Liberal Party will win its next election; Mr. Carney may well be Canada’s prime minister for years to come.
Belt and Road
Published March 8, 2025
In 2013, just a year after being selected to lead the People’s Republic of China, President Xi Jinping launched one of his signature policy maneuvers: the Belt and Road Initiative (B.R.I.). The Initiative invests in development through loans provided by state-owned Chinese banks. And these loans are big.
After running the Initiative for over a decade, the P.R.C. has made nearly $1 trillion of investments, primarily in developing countries. And it shows no signs of slowing down: in nominal terms, last year saw the highest spending on B.R.I. projects yet. Developments funded by the B.R.I. include mining infrastructure, manufacturing facilities, harbors, and even airports.
Although the Initiative is framed as investing in those along historical trade routes, in practice, countries around the world participate in the initiative. And although the initiative is primarily aimed at lower and middle income countries, some of the more than 150 countries which are party to the Initiative are major players on the international stage: member states include Saudi Arabia, Pakistan, and South Africa.
Joining the B.R.I. is simple. States sign a memorandum of understanding with China. This memorandum is typically non-binding and simply signals a willingness to work together. The participating country and the P.R.C. might then sign binding secondary agreements for individual projects under the Initiative.
The World Bank has estimated that, because of Belt and Road:
Increased trade is expected to increase global real income by 0.7 to 2.9 percent, not including the cost of infrastructure investment. The largest gains are expected for corridor economies, with real income gains between 1.2 and 3.4 percent. Increases in FDI would further boost these effects.
If the World Bank is correct, the global economic gains provided by the B.R.I. are indisputably good. But although the Initiative may have global economic benefits, it hasn’t been nearly as much of a success story for China’s banks. The two primary lenders of capital for Belt and Road projects, the China Development Bank and the Export-Import Bank of China, have attempted to obscure losses caused by failed loan repayment. Failure to repay has, in fact, become such a serious enough issue that China has resorted to increasingly coercive tactics to solicit repayment. Meanwhile, many of the infrastructure projects funded under the B.R.I. have been downright wasteful, leaving China in the awkward situation of attempting to force repayments of loans used to build pointless and, at times, shoddy infrastructure projects.
So, if the world is economically benefiting from Belt and Road while Chinese banks suffer because of it, then why does China continue to fund it?
Soft Power
The most commonly cited benefit of the B.R.I. is soft power. By providing funding to countries around the world, the P.R.C. is able to present itself as a benevolent state ready to take up a dominant position in the rules-based international order. Especially because of the global proliferation of democracies, it is in China’s best interests to develop a popular image for itself in the global imagination.
If soft power is/was China’s goal with Belt and Road, it would be following in the footsteps of other major powers. Although China proved uninterested in joining the Paris Club, it is quite possible that the B.R.I. was conceived of as a way to gain the soft power traditionally associated with lending options.
But although soft power may have been high on China’s list of priorities when creating the B.R.I., it seems unlikely that it remains a goal. China’s recent efforts to recoup debts from states which have fallen behind on repayments, up to, and including, the seizure of property it has helped develop, seems likely to endanger whatever popular support it gained from its lending.
Profit and Debt Trap Diplomacy
It is also possible that the P.R.C. created Belt and Road in order to profit. Although its banks have suffered in the short term, Belt and Road projects typically use Chinese labor for their construction, meaning that China’s broader economy sees major benefits.
Some have gone further, arguing that China’s ability to seize projects which have not seen repayment means that it is able to build up a more global presence. Such critics point to the seizure of a port in Sri Lanka. The port, which was leased to China for a length of 99 years after Sri Lanka was unable to repay its loans, is located just miles from a strategic waterway. Chinese control of the port could potentially strengthen China’s naval capabilities in the Indian Ocean. In fact, it already has: China has since docked military vessels in the port.
Recent research suggests that there are no signs that the P.R.C. is engaging in debt trap diplomacy. Nevertheless, there is little question that Chinese banks handing out Belt and Road loans have engaged in a number of problematic practices. First, they have loaned more money to countries than those countries can comfortably commit to paying back. Second, B.R.I. loans tend to be at much higher interest rates than comparative loans from the World Bank or Paris Club lenders. Although the phrase “debt trap” may be stretching it, there is little question that banks implementing Belt and Road have engaged in potentially exploitative lending practices. Even though Belt and Road is a state initiative, the use of poorly regulated market-driven corporations to distribute funds sets it up to engage in problematic ways.
Dependence
It is also true that there is a certain degree of power inherent in funding other states. If a smaller, weaker state becomes accustomed to receiving funding, threats to cut off that source of support can be used as a means to complement the allure of funding. A world dominated by states dependent on China will naturally become more inclined to support the P.R.C. on matters of concern to it, thereby enabling it to exert greater influence on the international stage.
Resource Extraction
Still others claim that the purpose of the B.R.I. is to extract resources from developing countries. Those who claim that Belt and Road is about resource extraction argue that because China has enormous manufacturing capabilities, it is in its interest to gain access to raw material from developing countries in order to maximize its continued growth. Although this is an intriguing theory, I am ultimately skeptical of it. China has vast natural resources, and I’m not really sure that it needs to spend the equivalent of $1 trillion, much of it on transportation and manufacturing infrastructure, to access developing countries’ natural resources.
The Raison d’Être of the Belt and Road
Since B.R.I. hasn’t proven terribly profitable for Chinese banks, and given President Xi’s project of restructuring the rules-based international order, the Belt and Road Initiative seems like it should be destined to raise China’s national image. Yet high profile repayment struggles and exploitative lending practices would seem to put that assumption in question.
But maybe the exploitative lending practices and repayment struggles don’t really matter. Maybe the target audience for China’s soft power isn’t the world writ large. Because China’s lending practices are quite obscure, Belt and Road funds have been embezzled by corrupt local officials. Although China cracked down on corruption last year, it focused on Chinese government officials who embezzled B.R.I. funds, rather than foreign politicians and bureaucrats. China doesn’t need to convince the masses that the Belt and Road is good for their countries. If it can convince corrupt officials that it’s good for their pockets, they’ll be perfectly willing to advance Chinese interests on the international stage every once-in-a-while.
If this frame of analysis is correct, then China is building soft power and dependency not for entire countries, but for specific foreign officials. Given that China favors a particularly soft approach on the global stage, proffering “win-win” scenarios as its preference for international relations, this maneuver would fit into the broader Chinese approach to foreign policy. While I recognize that a leader-based approach does not fit into an international relations framework dependent on states as the dominant unit of analysis, I also do not think this possibility should be dismissed out of hand. Having national leaders who are personally beholden to the P.R.C. is just as effective, if not more effective, than national populations who see China as a positive force in the world.
Conclusions
There is little question that the Belt and Road Initiative has had enormous positive impacts on the global economy. The problem with the B.R.I. is not that it aids development, but that its final cause remains unknown. Although it may exist solely to build traditional soft power or to generate profit, it seems indubitable that the Belt and Road Initiative exists to advance the P.R.C.’s national interests. Given the country’s continued interest in financing the B.R.I., it seems almost certain that the Initiative is succeeding on whatever metric of success China is using to measure it.
States work to maximize their own self interests. Belt and Road is almost certainly an enormous investment in China’s future as a wealthier, more powerful, and more globally involved state.
Building This Blog
Published March 7, 2025
Building one’s own website is far more simple than one might expect. It’s also far more complicated.
Programming a website is simple. If you make a mistake with H.T.M.L. or C.S.S., they’ll fail softly: your website will look slightly wrong, but it will still load with no problem. Because I generate much of my HTML with a custom Python script I threw together, adjustments to my design easily propagate across my website.
On the flip side, perfecting the design of a website takes far more effort than you might expect. Every letter has to be carefully weighed, each ornament fully considered. Because my Python script recreates my entire website every time it runs, my design has to be thought out enough to work with content I have not yet created.
When I created this website, I thought the design would be a small weekend project. Instead, I’ve spent copious amounts of time researching independent website design in order to perfect this site. Resources like 32-Bit Cafe and James’ Coffee Blog have been invaluable in inspiring me to improve by blog. Developing a design which is accessible, modern, and distinctive is a serious task.
Each detail potentially impacts its fellows. Every change in layout makes some things look better and others worse. Although I originally used a Google Font to power this website’s typography, I ended up eliminating it in order to increase load times and protect user privacy. Now, pages load instantaneously, but they look slightly different on different computing platforms. It’s a small trade-off, but it’s probably for the best.
In addition to the visual improvements, there are many invisible changes also going on underneath the surface. Over the past few weeks, I’ve added appropriate meta tags to my pages; created an R.S.S. feed, and added structured data. All of these changes were implemented with no visible change to the user experience. Visually, I’ve made some adjustments as well. In addition to fixing some HTML bugs from my initial website design session, I added support for dark mode at the request of one of my readers.
But designing a blog isn’t only about the programming that goes into it. After all, there’s little point to having a blog if you don’t ever write anything. That’s where things get really interesting.
After several weeks of putting out a single long article each week, I decided to try something new this week; I put out smaller posts about once a day. Although I originally intended to link to individual articles elsewhere on the Internet, in the classic style of a link blog, my format seems to have evolved into a series of mini-essays. I’m not entirely sure how these short articles will continue to develop (or if they will at all), but I’ve surprised myself with how much more I’ve written in this space.
Not only have I been posting more, but I now have actual, real-life, people who – get this – read my blog. If you’ve been following my blog for the past month, you know that I didn’t create this blog in order to syndicate my ideas across the Internet; I created it so that I would have an emotional and creative outlet. Although my readership is minuscule compared to the number of people on the web, knowing that even a handful of people care enough to read my blog and write me feedback means the world to me.
I could not be more pleased with the direction I have taken over the past month. With visual and under-the-hood improvements, with an increased cadence of publication, and with a small number of regular readers, I have surpassed my expectations for this place. In embarking on this experiment, I have discovered that writing about the news isn’t just cathartic; it strengthens my analyses and makes me a more capable thinker.
There are plenty of additional tasks for me to take on, of course. I want my website to have a slightly more distinctive personality, for example. I’m also concerned that the front page (which I’ve been calling “The Feed“) is not accessible enough. These are goals I plan to take on in my free time over the next few weeks; in just over a week, I have a break from classes and will be able to commit more time to both research and my various projects.
Nevertheless, this first month of writing and managing a blog has been a delight. Talking about what I’m writing about has been an exciting new experience, and I’ve been developing a wonderful habit of writing out my thoughts. I’ve become more reflective, and, I suspect, a better communicator. Thank you for the warm support and thoughts you all send my way.
A Changed Alliance
A few days after American President Donald Trump’s truly horrendous meeting with Ukrainian President Volodymyr Zelenskyy last week, Mr. Trump cut Ukraine off from American aid and intelligence. On Thursday, the same day as a major European Union summit, he again threatened to leave defenseless NATO members who fail to spend two percent of their G.D.P. on security. In light of the seemingly seismic shift in American foreign policy, the international order is rapidly working to adapt.
In Europe, NATO has been reorganizing and restrategizing in the face of a United States apparently disinterested in following through on its preexisting international agreements. French President Emmanuel Macron has messaged that France will follow through on its Article Five commitments as a NATO member, up to, and including, the use of nuclear weapons. His likely soon-to-be German counterpart Friedrich Merz proposed spending €1 trillion on military and infrastructure. Some analysts believe that as Europe builds up its own security infrastructure, it may increasingly act in its own interests rather than those of the entire Western alliance.
One of my colleagues has suggested to me that decreasing commitments in Europe could be a good policy for the United States. According to this train of thought, reducing presence in Europe may be a necessary step in achieving a pivot towards Asia to balance the People’s Republic of China. Such a maneuver, however, does not appear to be the plan of the Trump Administration. Trump’s isolationist approach seems more reminiscent of a retreat back to “Fortress America” than a redirection of American resources to respond to new challenges.
Regardless of Mr. Trump’s intentions, it seems almost indubitable that Europe will become more unified, more self-sufficient, and more militarily capable. While I suspect that the long term consequences of Mr. Trump’s rearrangement of the international order will be bad for the United States, I suspect that it might actually prove quite beneficial for Europe as a geopolitical player.
Self-Censorship is Where Autocracy Begins
Elisabeth Bumiller reports for The New York Times:
Fired federal workers who are worried about losing their homes ask not to be quoted by name. University presidents fearing that millions of dollars in federal funding could disappear are holding their fire. Chief executives alarmed by tariffs that could hurt their businesses are on mute.
Right now, the Trump Administration is showing us exactly why the First Amendment exists. I would say that “democracy dies in darkness,” but the Washington Post has exemplified exactly the sort of cowardice that this article identifies. Because of Hayekian limitations, censorship is only effective when a critical mass of people censor themselves.
Record Low Sea Ice
Like the opening montage of a bad science fiction film, each new scene in the climate change saga seems worse than the last. The European Union’s Copernicus Programme reports:
Daily global sea ice extent, which combines the sea ice extents in both polar regions, reached a new all-time minimum in early February and remained below the previous record of February 2023 for the rest of the month.
Despite repeated efforts to curb the effects of climate change, the anomalous worsening observed over the past several years seems to indicate we haven’t done enough. Despite the nearly thirty COPs which have been held over the past several decades, and despite progress made at Cairo and Paris, humanity seems stuck on the “business as usual” path.
A Sisi-Phean Task
Al Jazeera reports on the details of Egypt’s plan to redevelop Gaza, which was adopted yesterday:
The first stage would last about six months, while the next two phases would take place over a combined four to five years... Once the roads are clear, 200,000 temporary housing units would be built to accommodate 1.2 million people and about 60,000 damaged buildings restored.
Between American President Donald Trump and Israeli Prime Minister Benjamin Netenyahu, rebuilding Gaza in an internationally acceptable way was always going to be a difficult task.
Mr. Trump’s proposal to redevelop the Gaza Strip as a “Riviera of the Middle East” by kicking all the residents out is an obvious non-starter. In contrast, Egyptian President Abdel Fatah el-Sisi’s $53 billion reconstruction plan seemed downright reasonable, and practically destined to garner regional support.
Yesterday’s adoption of the plan by Arab League countries is an obvious win for President Sisi, but he isn’t out of the woods yet. Even as Mr. Sisi has consolidated support in the Arab World, its relationship with Israel is suffering.
Mr. Sisi has deployed troops to the Sinai Penninusla, and although both Israel and Egypt deny that they intend declare war, there is almost endless (and, in my analysis, rather ridiculous) media speculation about the possibility. Nevertheless, there is little question that their national relationship is weakening.
On the other hand, if Mr. Trump successfully goes through with his plan, and expels the population of Gaza into Egypt and other Arab countries, Mr. Sisi will have to deal with a whole new set of problems. Thus, Egypt is stuck in a place where every step it takes to protect its interests, further endangers its relationship with one of its most important allies. Regardless of whatever small gains Egypt manages to eke out of this horrible situtation, Mr. Sisi seems destined to be worse off after this crisis than he was before.
When “Other Duties as Assigned” Takes on a Whole New Meaning
Vivian Wang reports in The New York Times that companies in the People’s Republic of China are attempting to regulate the reproductive lives of their workers. One particularly egregious memo, sent by Shandong Shuntian Chemical Group, informs employees:
‘If you cannot get married and start a family within three quarters, the company will terminate your labor contract[.]’
Peoples’ personal livelihoods are being upended by the P.R.C.’s newly pro-natalist politics. To those of us who believe in individual autonomy and reproductive justice, this is obviously dystopian.
But at second glance, something else stands out: President Xi’s administration isn’t asking the companies mentioned in this article to fire unmarried employees. To the contrary, the Times reports that the government has criticized several such actions.
Given the inherent Hayekian limitations of a government attempting to regulate all aspects of its citizens’ lives, delegating responsibility for personally intrusive actions makes sense. What is truly impressive, however, is that private companies are apparently choosing to preemptively act in support of governmental priorities. A government whose policies are supported by organizations and people under its jurisdiction is strong; a government whose priorities are extrapolated into policy by independent actors is terrifyingly effective.
A Catastrophic Meeting
Published March 1, 2025
In 1938, British Prime Minister Neville Chamberlain sat down at the negotiating table in Munich and unilaterally surrendered the Sudetenland without Czech consent or input. This action, often associated with the negative label “appeasement” in the public eye, may not have been nearly as naive as it has been made out to be. Many sources indicate that, rather than believing his own claim to achieving “peace in our time,” Mr. Chamberlain was executing a careful maneuver designed to buy the U.K. time to prepare for war with Germany.
Regardless of Mr. Chamberlain’s intentions, his willingness to unilaterally surrender the territory of a U.K. ally was long remembered; in some quarters, the Munich Agreement is still known as the Munich Betrayal.
In the weeks since he took office, American President Donald Trump has been following the path set out by Mr. Chamberlain, in regard to Ukraine. The United States has been a major benefactor of Ukraine, which has relied on Western countries to provide military and financial support to its war effort since it was invaded by the Russian Federation on February 24, 2022. Since Mr. Trump has returned to office, however, he has not only threatened to terminate support for Ukraine but has initiated peace proceedings with the Russians while keeping the Ukrainians away from the negotiating table.
There are reasons to believe that Ukraine should negotiate with the Russians at this juncture. Although Ukraine’s efforts to reclaim land seized by the Russians have slowed, its seizure of land in Kursk Oblast last summer illustrated its enduring military capability and provided it with a vital bargaining chip in peace negotiations with the Russians. If Ukraine were to negotiate for peace by itself, or with the backing of its allies, it might well be in a reasonably strong negotiating position.
President Trump claims he wants to lead these peace negotiations, but, like Chamberlain selling out the Sudetenland at Munich, he seems uninterested in negotiating in partnership with the Ukrainians. In the weeks since Mr. Trump took office, he has engaged in rhetorical attacks on Ukraine and threatened to withhold future financial aid. President Vladimir Putin must be salivating at the prospect of a world in which Ukraine, unsupported by its American allies, has no choice but to offer him favorable terms and solidify his control over the Crimean peninsula, the Donbas, and the captured portions of Kherson and Zaporizhzhia Oblasts.
On Friday, the American abandonment of Ukraine worsened. Mr. Trump held a contentious Oval Office meeting with Ukrainian President Volodymyr Zelenskyy. Over the course of several minutes, Mr. Trump and Vice President J.D. Vance insulted and belittled the Ukrainian leader. They made false claims about Ukraine and the war itself, even while Mr. Trump claimed that he was “aligned with the world,” and supportive of a peaceful global environment. Yet Mr. Trump seems fundamentally unaware of the realities of global politics, refusing to seriously consider the possibility of Mr. Putin violating a ceasefire agreement, and claiming ignorance about the basic facts of the war.
Mr. Trump doesn’t lack sources willing to provide him with information about the war, either; the United States fields some of the world’s premier intelligence agencies and has globally renowned experts available to analyze information for the President around the clock. Perhaps Mr. Trump wishes to revenge himself against Mr. Zelenskyy, who featured prominently in his first impeachment. Perhaps he prefers Mr. Putin’s personality, or thinks he leads a stronger state. Perhaps – and I would hesitate to write this if not for the sheer childishness of the insults Mr. Trump hurled at Mr. Zelenskyy during their meeting yesterday – he is simply in cognitive decline.
Although international politics allows state leaders to exert their personal feelings on the world stage, that does not mean it is wise policy. Regardless of Mr. Trump’s opinions about Mr. Zelenskyy, the war in Ukraine has been broadly beneficial to the United States. The U.S. has invested U.S.D. $119.5 billion in Ukraine, a relatively small sum of money that has effectively bogged down Russian military capability. Russian surpluses of weapons dating back to the days of the Soviet Union have been depleted; the smaller state’s reduced borders and smaller population seem unlikely to allow it to fully replenish the full supply of weapons it had prior to the war.
Alongside their factually inaccurate statements about the origins of the war, Mr. Trump and his allies in the media raise legitimate concerns about Ukrainian corruption. While there is little doubt that a great deal of corruption is present in Ukraine, it is indisputable that American and European support has been instrumental to Ukraine’s continued resilience. In other words, the money given to Ukraine for its defense is being used by Ukraine for its defense.
Yet despite the fact that the United States has the United States shouldn’t be negotiating with Ukraine for a rare earths deal; it should be unilaterally supporting the effective neutralization of one of its most dangerous adversaries. President Trump’s willingness to undermine a U.S. ally seriously endangers American interests. Conducting diplomacy in front of television cameras is not only ineffective, it undermines the image of the United States as a reliable international partner.
Mr. Trump can either grow up and work with Ukraine to bring the war to its conclusion, as he claims to want, or he can follow the path of Mr. Chamberlain and negotiate an end to the war that leaves the Ukrainians out in the cold, undermines American interests, and threatens the image of the United States as a trustworthy and valuable international partner.
TrumpScript: A Satirical Programming Language
Published February 28, 2025
For those of you who were able to attend my TrumpScript presentation on Friday, thank you! As promised, here is a more detailed technical report on the language.
TrumpScript is a concurrently compiled, statically typed, and procedural programming language written in Swift and C++. Unlike single-pass languages, TrumpScript is designed for parallel compilation. Because of an extended development process, TrumpScript has several different versions. For the sake of this discussion, I will refer to these variants as Implementations A, B, and C. While these are not implementations in the typical sense of the word – there are significant differences between each – they do share similar concepts and some code. Implementation A is interpolated only; Implementation B is incomplete. Implementation C, which was presented on Friday, should be considered the canonical version of TrumpScript.
In Implementation A, function, symbol, type, and operator tables are generated concurrently, and code is executed sequentially. Implementation A supports limited interpreter action, including function calls. Implementation C, on the other hand, is compiled using an L.L.V.M. intermediate representation (I.R.).
Using TrumpScript
TrumpScript is extremely C-like in nature. The terminology of TrumpScript, however, reflects its status as a satirical language. To declare a new constant, use the following syntax:
fact foo = 12
Similarly, a variable can be declared as follows:
altfact bar = 12
Explicit type declarations are not needed in TrumpScript; types are implicitly identified. To create a disfunction, simply type:
disfunc some() -> Huge {
indict 32
}
The language is relatively simple, but it is quickly developing as I continue to expand the standard library (std in TrumpScript parlance). Loading in a file from the std is relatively simple, as demonstrated here with the math module:
tariff math
TrumpScript is capable of performing basic operations. In Implementations A and B, the programmer is able to define custom operators. This is a long-term goal for the current implementation, but is not yet complete. Similarly, although functions can be called in implementations A and B, function calling is not currently supported in implementation C. Steps have been made to rectify this situation, but I am not there quite yet.
TrumpScript operators are quite adept, and are able to differentiate between different input and output types, acknowledge precedence, and more. Thus the function
@main disfunc main() -> Huge {
indict 1 + 3 * 12 + 6
}
would indict a value of 43
when called. Supported types currently include Huge
(a 64-bit integer value), Claim
(a boolean value, which may be set either to wrong
or right
), and Covfefe
(a double-precision floating-point value). Custom type support is a possible future direction for Implementation C, and one supported to some extent by Implementation A.
Concurrent Compilation Background
For Implementation A’s concurrent interpretation of TrumpScript, I made use of concurrency features in the Swift programming language. These features were introduced to Swift relatively recently, but enable safe and modern concurrent approaches.
Implementations A and C both make use of async/await. Async/await is a model for achieving task-based concurrency. In an asynchronous await model, programmers identify points where it is safe to suspend execution on one function and resume or start execution on another.
The async/await paradigm does not inherently make code multithreaded. The purpose of the async/await model instead ensures that multithreaded coding is thread-safe. By defining arbitrary points where execution can be suspended, async/await ensures that the programmer does not need to worry about execution being suspended at other points. Yet although the paradigm is mostly effective, it does not guarantee thread safety: even when using async/await, race conditions remain possible.
Async/await is a relatively new approach to concurrency, developed during the aughts. The paradigm’s greatest benefit is that it can be added to code relatively easily, with minimal boilerplate code. Nevertheless, the async/await model continues to be improved. Haller et al. 2019 identified future improvements which could be made to the model, specifically by integrating async/await with observable objects, in order to enable asynchronous streams of programming.
In Swift, the async/await model allows for another key programming paradigm to be introduced: the actor. As explained by De Koster et al. 2016, actors rely on a principle of isolation. Actors help prevent race conditions by preventing their internal state from being written to by anything other than their own functions. Moreover, actors may only execute a single function at a time; any function called on an actor is added to a sequentially executed queue. This means that although actors are thread-safe, they can be performance bottlenecks for multithreaded code.
Swift’s implementation of actors is relatively intuitive. Unfortunately, however, the constraints inherent to using actors make converting an existing type into an actor a disfavorable proposition. Nevertheless, actors are found in all implementations of TrumpScript, and are key to enabling multithreaded interpretation and compilation.
Although actors and async/await options are useful for ensuring thread safety, they do not enable concurrency by themselves. Swift allows programmers the options of directly creating threads, as well as a task model.
Swift’s task model provides a useful abstraction for threads; it can make use of so-called ”virtual threads” and manages the actual number of threads used based on available system resources. Tasks can be created within the context of any function, but for optimal performance, it is best to create them within a TaskGroup, which can be instructed to execute its tasks in a number of different ways.
In Implementation A, for example, a TaskGroup is used to effectively construct an implicit barrier guaranteeing specific state promises before executing it constructs the symbol table. A similar approach is intended for use with Implementation C, which already has actors and async/await compliant functions ready for use.
Language Development
All TrumpScript implementations build lookup tables early in the compilation or interpretation process. These lookup tables use a combination of sets and dictionaries, both of which have O(1)
performance time in Swift when used to look up values.
Unfortunately, however, Swift’s sets and dictionaries are not thread-safe. In order to use them safely, I include them either as properties in actors, or, as in one case in Implementation C, on a class restricted to use on a single thread. This approach allows me to safely use these high performance structures despite their lack of multithreaded safety guarantees.
As previously discussed, there is significant overlap between different implementations of TrumpScript. This overlap is particularly noteworthy in the first part of compilation: the lexer.
Tokenizing and delineating code is the first step in all three implementations of TrumpScript. The design of tokens has evolved significantly, however; whereas Implementations A and B used custom token enumerations, Implementation C uses a simple structure wrapper around a text value associated with dozens of computed boolean properties. This approach allows me to easily and elegantly adjust my regex matching without needing to worry about multiple occurrences of the same check throughout my codebase.
All variants of TrumpScript are careful to record user-observed line numbers. This is used to ensure high-quality error checks, particularly in Implementations A and B. (Implementation C currently relies on a whole lot of fatalError(:_)
calls, but this is expected to change in the near future.)
Parallel compilation is not yet fully functional for implementation C, but it is almost ready, and will follow the design used in Implementation A, which builds tables in several groups: in each group, tables are generated independently; each group has dependencies on tables introduced in earlier groups. Implementation A uses a generate()
function to prepare for interpretation; Implementation C uses a similar compile(:_)
function to pipeline the TrumpScript code to machine code.
Although traditional strong/weak scalability testing is not appropriate for task-based concurrency, the parallel version of the generate()
method in Implementation A is noticeably faster than the linear version, despite the fact that they ultimately perform the exact same tasks. Performance improvements can be measured by analyzing the time taken to complete all code in the generate method. Over multiple tests, performance improvements in the parallel version averaged 23 percent faster than the linear equivalent.
To enable compilation in Implementation C, I made use of the L.L.V.M. abstract assembly language. L.L.V.M. is an efficient approach to compilation because of its broad usage, robust support, and plentiful compiler targets. Rather than using L.L.V.M. code generation options, I opted to generate I.R. through my own files and pass my IR directly to the L.L.V.M. code, which I called from my C++ file. In turn, Swift was able to call my C++ function thanks to a bridging header.
In order to maximize the efficiency of my compiled code, I have the L.L.V.M. A.P.I. perform multiple optimization passes to fold constants, to remove unnecessary stack allocations, and to maximize computational speed and efficiency. All told, the resulting assembly code is remarkably efficient.
Acknowledgements
The satire and technical complexity of TrumpScript have made it an exciting project. I imagine I will continue working on it in the future. But even at its current state, quite a few people deserve thanks for their part in bringing it to life.
My thanks to the advice and support of Professors Paul Cantrell, Libby Shoop, Jed Carlson, and Lauren Milne, all of Macalester College. Thank you to the many people who suggested hilarious terminology and laughed alongside me as I worked on the language and my presentation. Building such a complex system is no simple feat, and I couldn’t have it without so many wonderful people working alongside me.
Finally, thank you to my brother, Milo, who flew halfway across the United States to see me present TrumpScript. It’s been great hanging out with you, and thank you for putting up with me.
When Parties Party
Published February 22, 2025
On Sunday, the Federal Republic of Germany will hold national elections for its parliament, the Bundestag. Although elections were originally scheduled for September of this year, the collapse of the current German coalition, named the Ampelkoalition because of the colors associated with the coalition members, which was headed by the center-left Social Democratic Party (S.P.D.), led to early elections. The collapse of the coalition was planned out over the course of several weeks by its smallest member, the libertarian Free Democratic Party (F.D.P) in a manuever it refered to as “Operation D-Day.”
The F.D.P. is a small party which often struggles to clear the 5% voting threshold required to have any members elected to the Bundestag. With the coalition unpopular in polls, it is reported that the F.D.P.’s leadership believed that it could fail to have any members elected to the Bundestag in the upcoming election if it failed to break with its governing partners.
But although the F.D.P. drove the collapse of the so-called Ampelkoalition, it is unlikely to play a significant role in the next German government; in fact, current polling indicates that its worst fears may be realized and it may fail to achieve any representation in the Bundestag whatsoever.
The Issues
As Sunday’s election approaches, a number of issues have come to the fore: Germany’s economy, its security, immigration from the Middle East, and an extremist far right.
With just 3.2% unemployment, Germany’s economy looks good at first glance. The country’s economy has struggled to recover from the COVID-19 pandemic as its industrial sector flounders to compete with the People’s Republic of China, and, despite some modest recovery in living standards, the German economy has descended into two straight years of recession. A recent analysis in The New York Times indicated that Germany is also struggling in relative terms: other E.U. countries are in economically advantageous positions. Another key factor which may be causing perceptions of economic struggle are high energy prices resulting from Germany’s decoupling with the Russian Federation after its invasion of Ukraine.
And that invasion looms large: the most significant issue of consequence in the current election cycle is almost certainly security. With U.S. President Donald Trump threatening to not honor American Article Five commitments, it is possible that Germany’s low level of military funding commitments has under-balanced. Today’s world stage is proving a far more dangerous and competitive place than might have been anticipated fifteen or twenty years ago. With uncertain American commitments, Germany and its European allies may need to significantly strengthen themselves militarily in order to compete with Russia, China, and possibly the United States.
Not only has the United States threatened to abandon Europe on issues of security, but Mr. Trump’s willingness to impose harsh, “reciprocal” tariffs further endangers Germany’s already struggling economy. With an apparent change in American alignment taking shape, Europe may need to rapidly shift to adapt to a transformed geopolitical landscape.
But one of the most significant issues in Germany’s election is immigration. Immigration is generally a driver of economic growth, but it can often revitalize racist sentiments and nativist fears. This is certainly the case in Germany, a far right movement has developed in response to Syrian refugees: the Alternative for Germany (A.f.D.). The extremist party, which I have heard Germans compare to the Nazi Party (N.S.D.A.P.), has been ostracized from German politics; the other major political parties have committed to a firewall in which none of them will form a coalition which includes the A.f.D. Although this approach may keep the far right out of power, it complexifies the process of forming a coalition far more difficult.
Forming a Coalition
The party projected to win a plurality of votes in Sunday’s election is the Christian Democratic Union (C.D.U.), and its Bavarian counterpart, the Christian Social Union (C.S.U.). The parties, collectively referred to as the Union, offer a center-right perspective on both fiscal and social matters. The Union has dominated German politics for long stretches since its founding in 1949. It’s the party of Konrad Adenauer, Helmut Kohl, and Angela Merkel. It is, unsurprisingly, the leading party in the polls right now, with projections consistently predicting that it will receive nearly a third of the vote.
The leader of the Union, and its candidate to become the next chancellor, is Friedrich Merz. Mr. Merz offers a compelling profile to German voters. More hawkish than the vacillating Chancellor Olaf Scholz, Mr. Merz seems ready to seriously engage with the serious security issues Germany and other E.U. member states are facing. Although Chancellor Angela Merkel, the C.D.U.’s previous leader, supported a disastrous (albeit widely supported) policy of decommissioning German nuclear power plants, her four-term tenure proved relatively strong overall. If Mr. Merz can build upon Dr. Merkel’s while working within the constraints of a less secure world, he will do well.
In order shore up Union support, Mr. Merz has embraced more right-leaning approaches to immigration. Although I believe that restrictions on immigration are often flawed, every vote the A.f.D. siphons off from conventional political parties makes forming a coalition more difficult.
Indeed, although projections indicate the Union will easily win a plurality of the vote, it is virtually inconceivable that it will have enough votes to form a government on its own. Moreover, unless it chooses to form a coalition with the far-right A.f.D., the Union will likely need not one, but two separate parties to partner with in order to form a government. One of these two parties will almost certainly be either the S.P.D. or the Green Party (Grüne), both of which seem likely to receive respectable double digit percentages of seats in the Bundestag after the election.
The S.P.D. is the center-left counterpart to the Union. Founded in 1875, the S.P.D. has been a major player in the politics of the Federal Republic, even if it has proven slightly less successful than the Union. Mr. Scholz, the face of the party, has proven remarkably unpopular over the past several years, according to polls of the German public, his net approval rating is currently hovering at -33%. That’s right, Mr. Scholz is more unpopular in Germany than President Trump is in the United States. Despite Mr. Scholz’s promises to increase Germany’s military spending and meet its treaty obligations after the Russian Federation’s invasion of Ukraine, the country has continued to underfund its military. A joke I hear from colleagues sometimes goes like this: “there’s only one thing standing between Vladimir Putin and Berlin: the Polish Army.”
Yet despite the failures of Mr. Scholz’s administration, the S.P.D. would make a strong coalition partner for the Union; its relative centrism and size, could, depending on the final outcome of the election, allow it to provide all the votes needed to form a government. Current polls make this outcome unlikely, but given that the stability of a coalition tends to increase inverse to the number of parties partaking in it, a Union–S.P.D. coalition (called a Großekoalition), could be in the books.
It is more likely, however, that the Union and the S.P.D. combined will not have enough votes to form a government. Although it is possible that the Union would ally itself with the S.P.D. and a junior partner, it seems unlikely: the F.D.P. is not guaranteed to hold any seats in the Bundestag after the election, and the other two small parties, the Left (Linke) and the Sahra Wagenknecht Alliance (B.S.W.) do not necessarily line up with the Union agenda politically. Of the two, the B.S.W. is more aligned with the Union, but it has been accused of being Russophillic, which may be a deal breaker in national elections, even though the the B.S.W. has put coalitions over the top in state governments.
This leaves what I see as the most likely outcome of the election: a Union-S.P.D.-Grüne coalition. The Greens are somewhat radical on environmental policy, but they have proven themselves capable of governing with the S.P.D. over the past few years. Although bringing two medium-to-large sized parties into a coalition will be a difficult process, it seems like the most efficient approach for the Union to take, should it and the S.P.D. fail to have enough votes to form a Großekoalition.
Concluding Throughts
The unpopularity of the Scholz government was broadly caused, ironically, by the failure of Dr. Merkel’s administration to anticipate an increasingly erratic Russia. If Germany had not shut down so many nuclear power plants, there would not have been such tremendous spikes in energy prices after the German and Russian economies decoupled. If Germany already had a well-funded military, it would not need to worry about building up a military capable of engaging emergent security threats.
With a more hawkish, Union-led coalition likely in the works, Germany may finally join its Eastern European counterparts in preparing to counterbalance other major powers. Given that both Mr. Merz and European Commission President Ursula von der Leyen belong to the same political party, I am hopeful that a Germany under Mr. Merz would collaborate with a Europe as it confronts a new generation of challenges, and that it would be able to lead a continent that may need to rely on itself for years to come.
Protest Against Protectionism
Published February 15, 2025
In 1981, 44% of the global population lived in extreme poverty. By 2022, that number had been reduced to 9%. Although this dramatic decrease in extreme poverty has numerous causes, empirical research strongly supports the conceit that trade liberalization has been a significant driver of economic growth globally. Trade liberalization, often synonymous with low tariffs, is at the heart of the contemporary world’s unprecedented economic prosperity.
By allowing states to leverage comparative advantage, free trade reduces redundancy and maximizes global economic output. With more efficient economic systems, prices decrease, making more comfortable lifestyles more accessible to more people. The theory of free trade, that it is a tide that lifts all boats, has broadly been born out.
Yet it has become clear that there are costs to the adoption of free trade. Individuals who lose jobs as a result of free trade implementation may struggle to adapt. Between 1997 and 2020, the United States lost approximately 90,000 manufacturing plants and five million jobs. After the People’s Republic of China joined the World Trade Organization in 2001, manufacturing communities in the U.S. were effectively abandoned overnight; cheap goods came at the expense of their jobs. Newly unemployed, these workers would struggle for years to find new jobs. Their anger and dissatisfaction are theorized to have contributed to the election of President Trump.
It is of little surprise then, that, since his return to the White House, Mr. Trump has campaigned to deliberalize trade. At the heart of Mr. Trump’s envisioned economic policy is his embrace of tariffs: in his first month in office he has implemented a 10% tariff on China, threatened U.S. allies Canada and Mexico with 25% across-the-board tariffs, and is promising so-called “reciprocal” tariffs on countries around the world.
Although there is understandable rage against the free trade regime, Mr. Trump’s indiscriminate measures will almost certainly raise prices, and just as certainly fail to return jobs to the United States. The New York Times reports that construction costs are projected to increase as a result of Trump’s tariffs; N.P.R. reports that tariffs could increase the price of food imported from Mexico.
If Mr. Trump’s goal is to rectify the damage done to U.S. manufacturing communities by economic liberalization, there are better options than tariffs. The federal government could sponsor job training programs for workers in communities left behind by free trade, for instance. Alternatively, the federal government could subsidize manufacturing in military-critical industries, simultaneously safeguarding both our national security and the livelihoods of Americans left behind by forces outside of their control. Mr. Trump could even continue to persue the path towards a renewable future laid out by President Biden. And in terms of positive-sum investments in American manufacturing, this is just the tip of the iceberg.
By choosing to pursue a retributive regime of tariffs, Mr. Trump won’t only be punishing foreign states. In the end, it is Americans who will pay the cost of Mr. Trump’s war on free trade: in the grocery store aisle, at the car dealership, and on retail websites. Even in the unlikely event that Mr. Trump is successful at restoring American manufacturing, he will only accomplish it through massive economic shocks. Shocks, mind you, that are likely far greater than those experienced in American manufacturing communities over the past several decades.
Not only will there be massive shocks if Mr. Trump continues to implement his tariffs, but economists have empirically proven that tariffs suppress economic growth. Even if we get past the macroeconomic shocks of the tariffs, even if manufacturing jobs return to the U.S., we will still be dealing with reduced growth in perpetuity. The needs of the few will come before the needs of the many.
Running the world’s largest economy (measured by nominal G.D.P.) is a complicated job. But I think that it is an indisputable political miscalculation to privilege the economic complaint, no matter how legitimate, of a small minority of one’s political supporters at the expense of the entire country’s economic future.
The Murder of Sam Nordquist
Published February 15, 2025
Sam Nordquist was born at the turn of the millennium and grew up in Red Wing, Minnesota with a loving family. Like other young people, he went through typical coming-of-age milestones: he attended high school, got dozens of tattoos, and came to know himself better. But unlike most young people, in discovering himself, he discovered that, although he had been assigned female at birth, his gender identity was male.
Mr. Nordquist continued living in the Twin Cities area as he entered adulthood; living either in Saint Paul or Oakdale, Minnesota, depending on the source. Sometime late last year he flew to New York State. He would never return to Minnesota.
On Saturday, The New York Times reported on his murder. Mr. Nordquist was tortured for over a month, murdered, and then dumped in a field in upstate New York. Although police have not publicly stated a motive for the crime, it is difficult for me to imagine that Mr. Nordquist would have been tortured and murdered for anything other than his identity.
Even in a country where dozens of transgender people are murdered for their gender identities every year, the allegations in this case are particularly repugnant. Police allege that Mr. Nordquist “was subjected to prolonged physical and psychological abuse before being transported to Yates County, where the remains were disposed of.” To be murdered for who you are is horrific; to be tortured for over a month first is nauseating. Worse, this wasn’t some lone actor: five separate people have already been charged in his murder; more charges may be on the way.
The allegations made by New York State police seem consistent with a targeted, premeditated murder. This was not a crime of passion; it was a persecution. Yet despite a month of torture, it was only after Mr. Nordquist’s family lost contact with him and asked law enforcement to conduct a wellness check, that the state became involved.
Mr. Nordquist’s murder should shock our nation. It is reminiscent of some of the most infamous crimes in American history; Matthew Shepard’s 1998 murder in Wyoming, among others. Throughout human history, people have been killed because of who they are. They are killed because they are looked down upon, dehumanized, and denigrated. It is not enough to not commit the crime; we are obligated, as members of society, to stand up to the worst impulses of our fellow human beings.
I firmly believe that political speech is a fundamental aspect of our democracy. I don’t believe that individuals should be punished solely for their speech indirectly influencing a crime’s commission. However, given the prevalence of anti-transgender speech in our country, it seems reasonable to draw a connection between the political rhetoric used by certain individuals and the environment in which Mr. Nordquist’s murder occurred.
On Thursday, the same day police executed a warrant as part of their investigation into Mr. Nordquist’s disappearance, the Trump Administration removed all references to transgender people from the Stonewall National Monument website.
We can do better. We should do better. We must do better.
©2025 Eliora Hansonbrook. All Rights Reserved. || About this Site