Who is the worst President in U.S. History?

There’s a clear answer here. Donald J. Trump… who is yet again self-writing the pages of the history books. Let’s explore why.
The Big Lie
While this isn’t the first lie Donald Trump has told, it is certainly one of the longest running lies repeated over and over and over. What was this “big” lie? Donald Trump perpetuated over and over that the election was stolen from him. In reality, the election has been proven time and time again to have been the most secure election ever.
While Trump was busy making up fake and fraudulent information about how election centers “rigged” the election against him, the election centers diligently counted the votes received 3, 4 and 5 different times… all in proving the vote was in favor of Joe Biden.
Worse, the election fraud argument was not only baseless, it was delusional. Claiming that an underdog had enough money, people and resources to enter election centers and modify voting equipment was not only statistically improbable, this claim was outright insane.
This continual lie perpetuated to Trump’s very own supporters which led to the very insurrection he incited on Capitol Hill… but I get ahead of myself.
Other Lies and Conspiracies
When COVID-19 hit U.S. soil in January of 2020, Trump began perpetuating the lie that COVID-19 is not at all dangerous. That perpetuated lie, while only somewhat smaller than the lie told about the election, has led to many thousands of deaths in the United States. Instead of taking action and making a plan to combat the spread of COVID-19 throughout the United States, Donald Trump instead decided to visit Mar-A-Lago to golf, golf and yet more golf.
Because of his “COVID-19 isn’t dangerous” rhetoric, not only did Trump not do anything until mid-February (ensuring the virus had ample time to spread across the United States and in large metropolitan areas), he espoused fringe science and chose never to wear a mask and did not mandate mask requirements at all.
When Trump claimed to have gotten COVID-19, he was admitted to Walter Reed National Military Medical Center for treatment prior to the election. While many thousands of people were dying because of inadequate treatments due to Trump’s lack of enthusiasm to admit the dangers of COVID-19 and take action, Donald Trump received extraordinary special world class treatment using various experimental drugs. Even after this, he (and the people around him) STILL chose to not wear masks at rallies, still didn’t espouse the dangers and still has not provided any positive plan to help reduce the spread.
Vaccine
Trump loves to take credit for everything even when he had nothing to do with that thing’s success. The vaccines were developed in spite of Trump, not because of him. Both the CDC and the World Health Organization prompted the vaccine creation. Trump, by far, almost completely ignored COVID-19 unless it gave him a feather in his cap… which was almost never. Until the vaccines arrived, he didn’t do shit to manage the COVID-19 spread. During the summer, the spread began to level off, but not because Trump did anything. It was happenstance alone that tapered it off. As the holidays arrived, COVID-19 ramped up big time… and that’s where we are right now.
As COVID-19 began surging, the vaccine arrived. Yet, the rollout plan is not a plan. In fact, it’s just a suggestion. As a result of the lack of planning, the vaccine has only been given to around 4 million people when Trump promised 100 million would be vaccinated by the end of 2020. Yet another lie that Trump perpetuated.
Even while the virus was surging out of control, Trump all but ignored this fact and focused almost with blinders on his “Big Lie” (see above) to the exclusion of all else. His “rigged” election rhetoric not only got old, those of us who had seen through this blatant lie continually wonder what Trump is smoking.
Suffice it to say, while the vaccine has been mostly a flop… not from a functional perspective, but from a rollout perspective. So now, Biden will be left with the task of finding a way to innoculate millions more in record time since Trump failed to make this task a priority.
Insurrection
Trump tried very hard to convince us all of his “big lie”. Most of us were not having it. However, he did manage to rope in a bunch of like-minded thinkers who, for whatever reason, allowed Trump to pull the wool over on them. These people, unfortunately, also tended to be gun toting, irrational extremists. As a result, when Trump a rally in Washington DC at the Ellipse, he incited his crowd to “fight like hell”. These specific words and those of similar style out of his cabal riled up the crowd into a frenzy.
As they marched their way down to Capitol Hill, they began surging into the building, making their way into offices, damaging windows, doors and even defecating and peeing along the way. As a result of this violent mob, it left 5 people dead, including a DC officer tasked with protecting the building.
Again, those of us out here not under the influence of Trump’s lies, realized that Trump now poses a significant threat to the United States. No sitting United States President has ever attacked the very buildings and constitution that they have sworn to uphold. This left Congress in a quandary.
Congress is given limited options to remove a sitting president from office. These include invoking the 25th amendment, impeachment and requesting resignation. Unfortunately, Donald Trump sees no benefit in resigning, so that option was flat off of the table. The only other two were request Mike Pence to invoke the 25th amendment and declare Donald Trump unfit to lead or impeach Donald Trump.
Speaker of the house, Nancy Pelosi gave Pence adequate time to choose invoking the 25th amendment, to which he declined… at which point Nancy Pelosi drafted one Article of Impeachment and began the process of seeing this article through to passage.
On January 13th, the Article of Impeachment passed with 232 votes including 10 Republican votes. Though, the vast majority of the Republican party voted against passage.
With the passage of this impeachment, that totals two (2) successful impeachments by the House of Representatives. Unfortunately, the first impeachment did not reach conviction in the Senate. Hopefully, this second impeachment will. While conviction would be another first for Donald Trump, the most historical fact is that Donald Trump is the first president to have been successfully impeached twice by the House of Representatives.
It’s not over yet
We’re still living history in the making with Donald Trump. Not only does being impeached twice make him the obvious choice for worst president, but inciting an insurrection on Capitol Hill is entirely unprecedented. Not only was there an insurrection, the intended goal was to stop the electoral vote counting, but worse, sway Pence to count the electoral votes in Donald Trump’s favor… an act of sedition.
Unfortunately, Donald Trump’s extremist cabal is now firmly unleashed. At this point, it’s anyone’s guess as to what they have planned. However, the current intelligence is that they plan to have armed “protests” at not only all 50 state capitol buildings, but again in DC to block Joe Biden’s inauguration. However, there are now at least 15,000 troops occupying Washington DC until the inauguration is over. That’s more troops than are deployed in parts of the middle east… to protect against Donald Trump’s incited extremists. If those extremists attempt another incursion in DC, they’re in for a rude awakening.
You just can’t make this shit up!
For now, we’re under wait and see for exactly how this article ends. However, one thing is absolutely certain. Regardless of what happens between now and inauguration day, Donald Trump is now officially the Worst President in the history of the United States.
Such a dubious distinction, Donald.
↩︎
Reopening: The best laid plans
As the United States sees the COVID-19 infection rate reach 1 million (a milestone as some are calling it), that’s not a milestone to cheer. In fact, it’s a milestone to jeer. Why? Let’s examine how our leaders have entirely failed us.
Donald Trump
Let’s start with our President. While the President has taken the pulpit regularly to spout all sorts of seeming nonsense unrelated to the virus and which has incited some people to take rash and sometimes suicidal actions, our leaders are lost amid this pandemic. Our political leaders have never been trained to handle such the medical reality our society now faces.
It’s clear our current country leadership is still and was, when the virus arrived, not in any way prepared to handle this medical crisis. Even though those in the medical community and many outside of it have long predicted another pandemic, our political leadership team took no action to prepare, stock up, or in any way plan for such an eventuality. Instead, the US government was so busy trying to kowtow to the constant rhetoric from large businesses and make sure they were happy (so they could get large political contributions), they were blinded by these now unnecessary, never ending and futile actions.
In fact, the largest businesses of the world, including Wall Street, effectively drove us to the present dire and unprecedented medical situation that we all must now face. By diverting government attention and money away from a brewing medical crisis, they were constantly being distracted by unnecessary business demands.
DPA
Sure, the economy is important, but not at the expense of what is now taking place. The President is negligent in his handling of this crisis, make no mistake. He took no immediate action on January 1, after COVID became known to the world. He failed to invoke the Defense Production Act (DPA) timely, which could have diverted necessary industry resources towards producing more PPE for hospital workers and other critical industries (including supply lines). Instead, he did nothing. It took weeks before he actually invoked it in a limited fashion, but only after the PPE shortage was already at the breaking point. Even then, our hospitals are still critically short on supplies.
This means that the general public now has no access to these supplies to protect themselves because literally all of it is now being diverted to hospitals. Even with those diverted supplies, the hospitals are still short on supplies. Many are requiring their workers to reuse masks for days that were designed to be used for an hour or two. It’s no wonder why some of these critical care workers are dying from COVID.
Economic Disaster Looming
While attempting to avert other economic disasters (or at least perceived disasters) prior to the outbreak, this left a huge hole in our preparedness for such a pandemic, like COVID. Yet, we now see exactly how much of an economic disaster that being at this level of unprepared means to the United States.
The President may claim to be “doing good things”, but the reality is, he and other past administrations did nothing to prepare for this eventuality, nor have they been effective at the leadership needed to drive this virus from US soil. Instead, they chose to ignore the warnings and focus on other unrelated tasks that vied for their immediate attention. Tasks that, while extremely diversionary, shouldn’t necessarily be minimized. They were, of course, important at the time. However, they shouldn’t have ignored the warnings. We’d already had two previous tastes of what was to come with COVID including the H1N1 (2009 Pandemic) and SARS (2003 Pandemic). These two weren’t that long ago.
Those warning shots should have been the necessary wake up call to get the government to mobilize a pandemic plan. Between 2009 and the present, the government could have been granting hospitals the necessary money they’ve needed to stock up on supplies. They could have had the hospital industry stocked and ready with medical supplies should the need arise.
In fact, the government could have been building ready-made hospital structures out of FEMA buildings, ready and waiting for the time when such a pandemic might occur. I realize that at the time of non-crisis it can be difficult to justify such preparedness dollars. However, it is crystal clear that the United States leadership failed us on this one.
What that means is that where we are today, the United States is in an amazingly fragile position economically. We simply don’t know where our economy may head in the next 6-12 months. There’s no way to even know if the upcoming Presidential election is even possible due to the outbreak. A second larger and deadlier wave is still looming and will likely hit sometime around September or October, just prior to the election. It may hit even before then based on reopening plans of many cities and states.
1% Infection Rate of the US Population
Let’s dive right into this topic as there’s no way to sugarcoat this. To date, the United States has confirmed less than 1% of the population infected. This means that approximately 99% of the population is still susceptible to COVID. Considering that we’ve had 60,000+ deaths and counting for just over 1 million people infected, it’s not hard to extrapolate these numbers.
There are around 330 million people living in the United States. If 50% of those 330 million people become infected, that’s 165 million people infected. Extrapolating up the death rate, let’s do the math. 60,000 people dead for 1 million infected is a 6% mortality rate. Of course, some could argue that the 1 million could be under reported. That the infection rate is much higher. This could be true. However, we have no way to confirm the number that have been infected. Let’s assume that this 6% number is, in fact, accurate.
That 6% is much higher than the reported 1.25% death rate from this virus. Partly, this may be due to the overcrowding situation in New York City where the vast majority of these deaths have occurred. New York City isn’t, unfortunately, an anomaly. It is a reality. It is a reality that will be seen played out all over the nation should the nation reach a 50% infection rate at the same moment in time.
When hospital overcrowding becomes a major issue (and it will), hospitals will be forced to turn away patients. Hospitals will have no choice. This is where that 1.25% number goes up, perhaps even over the 6% that we’re currently seeing. For the sake of argument, I’ll present death numbers for both 6% and 1.25%. Keep in mind that 1.25% is a number that can only be achieved WITH the help of hospital care. Without hospital care, that number will soar much higher… just as it has with the present situation.
At 165 million people infected (50% of the US population) and at 1.25% mortality rate, that’s 2,062,500 people (2 million) dead. At a 6% death rate (more likely what we’ll observe if we reach 165 million people infected at once), that 6% number means 9.9 million people dead. Those 9.9 million dead bodies have to go somewhere, perhaps lining the streets in body bags in some locales. Even 2 million bodies have to go somewhere. There might not even be enough body bags to handle 2 million, let alone 9.9 million people dead. Crematoriums will be working overtime just to keep up with this dead body count.
This whole situation will turn into a literal nightmare scenario for leaders and citizens alike. Where people are chanting to open cities back up today, this scenario is what’s driving leaders to consider reopening way too early. In fact you can’t reopen anything while the virus is still being spread. You simply can’t do it. We already know this virus spreads exponentially over time. It takes ONE person to spread the virus to others who will then spread theirs infection to others. Reopening the economy will lead us down the road to a much, much higher infection rate than the 1% of the population we have today.
As a result, the somewhat overcrowded situation at hospitals will turn into a situation of hospitals turning away patients. There will be no place for the sick to go. They’ll have to head home and take their chances at home. Without access to immediate medical care, many will die. This raises the mortality rate tremendously and it will go way beyond the 1.25% mortality rate.
Low Numbers and Infection
I see a lot of ignorant people downplaying the present COVID situation. I see a lot of people claiming that it’s not that serious, the numbers are low or there’s nothing to fear or spouting other such nonsensical rhetoric. They’re making these statements without claim to how they arrived at that thought rationale (other than the numbers appear to be low). Make no mistake, the low numbers we are seeing for infection have nothing to do with the virus’s severity level or its ability to kill. The low numbers have everything to do with the present distancing and staying-at-home orders. Lifting that and the virus will take hold in much, much larger numbers.
Should the world re-open as it was, the death rate will soar way beyond the 1 million infected so far. We will see a second wave of death and infection rates that far exceed anything the world has seen to date. Yes, it’s coming.
Ignorant People
There are many people who feel that the government is lying and this is all a ruse by the government to erode human and constitutional rights. That’s actually the irrational view. If you value your own life so little as to not understand the ramifications of this virus, then perhaps you need become infected and take your chances. While my view might be considered a rather callous view, some people need to learn life’s (or death’s) lesson’s the hard way. It’s Social Darwinism.
If you choose to venture out by defying stay-at-home orders, become infected and then become a death statistic, that’s your choice. You made that choice. I won’t feel any sympathy for anyone making such stupid choices. That was your choice to make, as stupid as it may have been. You made that decision and you died.
As with Darwinian ideals, the point is to rid the world’s population of people who are simply unwilling to grasp certain realities. If you are unwilling or unable to grasp life and death concepts, then perhaps the world’s gene pool is a better place without you in it. If you want to venture out and become infected, the door’s right over there.
This is why I show no sympathy towards any anti stay-at-home protesters. If you’re out and about attempting to get infected, you may also be the ones spreading the infection. For these folks, I’ll let the virus run its course on them. If they succumb at home, then so be it. If they survive, and some will, then so be it. At least some of these folks with dumb ideas won’t survive. But, that’s on them and there’s no sympathy here. I’ll just point to the Darwin Awards, of which there will be many issued this year. From the Darwin Awards web site:
Darwin Award winners eliminate themselves in an extraordinarily idiotic manner, thereby improving our species’ chances of long-term survival.
While the Darwin Awards may not recognize those COVID-19 anti stay-at-home protesters as “extraordinarily idiotic”, I personally think this situation qualifies. Of course, if the Darwin Awards were to qualify every COVIDiot, they’d be updating that web site for years to come. I can understand why this site might want to disqualify all COVIDiots of the world to avoid this problem… allowing them focus on those deaths that don’t apply to COVID-19.
Personally, I think the Darwin Awards needs to create a special site devoted to the COVIDiots who off themselves by contracting the virus and die by thinking it doesn’t exist or that it is some conspiratorial government rights erosion scheme.
Likewise, for parents who want to send their kids out to the playground and who then contract COVID-19 from another child on the playground, I have no sympathy. You sent your child out there, that was your choice. If your family perishes, that was also your choice.
Population Control
While COVID-19 is a virus and it does have a fairly grim death statistic, perhaps it is also intended to be an equalizer of sorts. It could be used as a way to “thin the herd”, so to speak. It doesn’t matter the age, race, color or gender, this virus is non-judgemental. It will infect a 1 year old as easily as any other age. Whether it ends up killing is entirely based on that person’s immune system and health. People with asthma or other lung diseases or conditions may be at higher risk.
The point is, COVID-19 is now quickly becoming a population equalizer. That means that while it started out as a viral problem, it is quickly beginning to thin the herd. For those COVIDiots who choose to run around claiming that it’s fake or that “God will protect them”, you’re living in a fantasy world. Nothing will protect you from COVID-19 except staying away from other people. Latching onto a fantasy that “God” or any other outside influence will protect you is delusional. The virus will just as easily invade your system as it will anyone else’s. Whether it will kill you, you’ll have to take your chances. You may survive, you may not. Once you’re infected, it’s yours until you win or lose.
If COVID-19 thins the herd, then so be it. That’s how the chips fall and that’s how they will remain. If the United States loses 10% of its population to COVID-19, then that’s where it ends up. I won’t say that a loss of 10% of the population won’t be devastating to the economy, but it will recover in time. Eventually, enough babies being born will make up for this loss. The population will again grow after COVID-19 is over and done. Until then, COVID-19 will become the most modern version of a great equalizer, just as the 1918 Pandemic was.
Doomed to Repeat
If the 1918 H1N1 Pandemic taught us anything, it was that you can’t let your guard down even for a moment. When everyone thought that the 1918 pandemic was subsiding by late summer, restrictions were relaxed. That’s when the second even more deadly wave hit the country. The reason for this second wave was attributed to soldiers bringing it home and spreading an even deadlier version around.
Today, we have a very high possibility of this situation repeating itself. It won’t repeat because of soldiers, however. History will repeat due to worldwide travel, loosened social restrictions, people thinking it’s over and because businesses are itching to open back up.
Once movie theaters, concert venues, sporting events and any other large crowd gatherings are allowed to exist, this is where the second wave will begin. Worse, if we end up with a different mutated strain ending up on US soil, one that hasn’t yet been passed around, it could reinfect survivors of the earlier strain. It might even kill those survivors due to the body’s already weakened state from the last infection. In other words, a second wave is almost inevitable.
As some states are poised to reopen due to “dropping numbers of infection”, this false sense of security will be their undoing. By states and leaders opening it all up, people WILL venture out thinking that the situation is over. It’s no where near over. 1% of the US infected? No, we’ve barely just scratched the surface. There’s still 99% of the population left to infect… and infect many of these people the virus will. As restrictions relax, people will start doing the things they have been desperately craving while stuck inside. They’ll be doing all of these things with even more careless abandon than usual, only to find that 14 days later they, their friends and their families are now infected. Yet, there won’t be hospital space for the throngs more who are now infected.
This is where and how the much more serious second wave begins.
Election Day
Depending on when this second wave begins, election day may or may not be possible. If enough people become infected before election day, the sick won’t be able to head to the polls. Those uninfected will also be scared to turn out. How will the government entice people out of their homes when, within 1 to 2 months, 100,000 or more people are dead? Yeah, that’s a major challenge.
The government needs to begin planning for an alternative election polling system now. If they don’t begin this process today, come November 3rd, few may actually turn out to vote. If fewer than 10% of the population show up to vote, is that fair representation of the populous?
Let’s consider if some of the current candidates end up succumbing to COVID-19 in this second wave and, for obvious reasons, are no longer on the ballot. How does that work? Yeah, some contingency planning is in order here. Perhaps they can plan for voting from your car (using NFC) or some other similar hands-off voting system with a phone app. For the candidate infections, that’s a whole different bag.
Phone apps have proven their safety, effectiveness and security if properly built. A vote-in-car system could be used by holding your phone up to the window to be read by an external NFC device. It could even be done by connecting to a local WiFi service at the voting center which automatically forces a login page which is used to both verify identity, then collect votes right from the car. No need to leave the car. There are plenty of hands-off approaches that don’t require leaving the confines of your vehicle to vote, yet still allow you to vote in person. These are contingencies that the government needs to consider now. If they aren’t considering such countermeasures, come November 3rd, we could see a huge problem with voter turnout.
The Second Wave IS Coming
A second even larger wave is looming on the horizon. It’s only a matter of time. Once state leaders realize they can’t keep their states closed forever, they will begin to open without realizing that that action is a ticking time bomb. The second wave will be born from each governor’s loosening of restrictions. It will be these very actions around the US that leads to a second larger and potentially even more deadly wave.
When the second wave arrives, this will spur an even bigger panic, not only in the economy, but by people across the globe.
Is there a better way? Personally, I don’t see it. I think we have to let the leaders have their folly. It’s the only way for them to wake up to the realities of this tragic situation. There’s really no way around it. I’m not intending to be a “Debbie Downer” more than a realist. Sometimes you have to look at a scenario and understand that people will do what they do, regardless of how smart that choice is. The pressures from business (and the looming economic failure) is tremendous. It’s exactly what’s driving the leaders to reopen. It is also this exact driving force that will lead us to a second wave of COVID-19. It’s an inevitable outcome.
We’ve tied our society so heavily to the economy that one can’t survive without the other. When you have a virus invading this space, it’s a damned-if-you-do-damned-if-you-don’t scenario. There is no correct choice here. Stay closed, the economy crashes. Open up, the economy crashes because of the second wave.
The economy will crash either way. There’s no way around it. Leaders think that opening up is the road that leads us to recovery. For a short amount of time it will appear that way while we are lulled into a false sense of security. That is until the virus latches onto yet even more people and drags them down into death’s spiral. Then, the whole situation starts ALL over, but this time it will infect unchecked because it’ll be too late.
Being a realist, a lot of people see us as “wet blankets”. We always bring up the one thing that people never want to hear. Everyone wants to see the rosy side of all situations. The problem is, the rosy side almost never exists. It’s a fantasy in someone’s mind. The realist sees the situation as it is (and can predict how it will play out). It’s like truth. People don’t always want to hear the truth. It’s too brutal and too realistic. People want to be told lies so they can feel better about themselves.
In the case of that dress or those shoes, these are harmless lies that don’t hurt people. Lying that the virus is subsiding will only serve to get people dead. Being a realist has its place and can help prevent the deaths of so many. Yet, our leaders are so gung-ho to get the economy restarted, they’re willing to sacrifice many people to that end. Yes, there are still more sacrifices yet to come.
The difficulty is that, as realism dictates, the downside of opening up into a second wave is an even bigger economic disaster. There’s no way to prepare for or prevent this event. We just have to wait it out. The economy will recover, eventually. Just not today. Not tomorrow. In fact, the economy won’t recover until COVID-19 is either eradicated or there’s a vaccine to protect the entire world’s population. After COVID is gone, the economy can begin to recover and those who survive can bring back the world into a new prosperous era. Perhaps we can even learn a thing or two about the value in pandemic preparedness. Considering that we really learned nothing from 1918’s pandemic, then again perhaps not.
↩︎
CanDo: An Amiga Programming Language
At one point in time, I owned a Commodore Amiga. This was back when I was in college. I first owned an Amiga 500, then later an Amiga 3000. I loved spending my time learning new things about the Amiga and I was particularly interested in programming it. While in college, I came across a programming language by the name of CanDo. Let’s explore.
HyperCard
Around the time that CanDo came to exist on the Amiga, Apple had already introduced HyperCard on the Mac. It was a ‘card’ based programming language. What that means is that each screen (i.e., card) had a set of objects such has fields for entering data, placement of visual images or animations, buttons and whatever other things you could jam onto that card. Behind each element on the card, you could attach written programming functions() and conditionals (if-then-else, do…while, etc). For example, if you had an animation on the screen, you could add a play button. If you click the play button, a function would be called to run the animation just above the button. You could even add buttons like pause, slow motion, fast forward and so on.
CanDo was an interpreted object oriented language written by a small software company named Inovatronics out of Dallas. I want to say it was released around 1989. Don’t let the fact that it was an interpreted language fool you. CanDo was fast for an interpreted language (by comparison, I’d say it was proportionally faster than the first version of Java), even on the then 68000 CPU series. The CanDo creators took the HyperCard idea, expanded it and created their own version on the Amiga. While it supported very similar ideas to HyperCard, it certainly wasn’t identical. In fact, it was a whole lot more powerful than HyperCard ever dreamed of being. HyperCard was a small infant next to this product. My programmer friend and I would yet come to find exactly how powerful the CanDo language could be.
CanDo
Amiga owners only saw what INOVATronics wanted them to see in this product. A simplistic and easy to use user interface consisting of a ‘deck’ (i.e, deck of cards) concept where you could add buttons or fields or images or sounds or animation to one of the cards in that deck. They were trying to keep this product as easy to use as possible. It was, for all intents and purposes, a drag-and-drop programming language, but closely resembled HyperCard in functionality, not language syntax. For the most part, you didn’t need to write a stitch of code to make most things work. It was all just there. You pull a button over and a bunch of pre-programmed functions could be placed onto the button and attached to other objects already on the screen. As a language, it was about as simple as you could make it. I commend the INOVATronics guys on the user-friendly aspect of this system. This was, hands down, one of the easiest visual programming languages to learn on the Amiga. They nailed that part of this software on the head.
However, if you wanted to write complex code, you most certainly could do this as well. The underlying language was completely full featured and easy to write. The syntax checker was amazing and would help you fix just about any problem in your code. The language had a full set of typical conditional constructs including for loops, if…then…else, do…while, while…until and even do…while…until (very unusual to see this one). It was a fully stocked mostly free form programming language, not unlike C, but easier. If you’re interested in reading the manual for CanDo, it is now located at this end of this section below.
As an object oriented language, internal functions were literally attached to objects (usually screen elements). For example, a button. The button would then have a string of code or functions that drove its internal functionality. You could even dip into that element’s functions to get data out (from the outside). Like most OO languages, the object itself is opaque. You can’t see its functions names or use them directly, only that object that owns that code can. However, you could ask the object to use one of its function and return data back to you. Of course, you had to know that function existed. In fact, this would be the first time I would be introduced to the concept of object oriented programming in this way. There was no such thing as free floating code in this language. All code had to exist as an attachment to some kind of object. For example, it was directly attached to the deck itself, to one of the cards in the deck, to an element on one of the cards or to an action associated with that object (mouse, joystick button or movement, etc).
CanDo also supported RPC calls. This was incredibly important for communication between two separately running CanDo deck windows. If you had one deck window with player controls and another window that had a video you wanted to play, you could send a message from one window to another to perform an action in that window, like play, pause, etc. There were many reasons to need many windows open each communicating with each other.
The INOVATronics guys really took programming the Amiga to a whole new level… way beyond anything in HyperCard. It was so powerful, in fact, there was virtually nothing stock on the Amiga it couldn’t control. Unfortunately, it did have one downside. It didn’t have the ability to import system shared libraries on AmigaDOS. If you installed a new database engine on your Amiga with its own shared function library, there was no way to access those functions in CanDo by linking it in. This was probably CanDo’s single biggest flaw. It was not OS extensible. However, for what CanDo was designed to do and the amount of control that was built into it by default, it was an amazing product.
I’d also like to mention that TCP/IP was just coming into existence with modems on the Amiga. I don’t recall how much CanDo supported network sockets or network programming. It did support com port communication, but I can’t recall if it supported TCP/IP programming. I have no doubt that had INOVATronics stayed in business and CanDo progressed beyond its few short years in existence, TCP/IP support would have been added.
CanDo also supported Amiga Rexx (ARexx) to add additional functionality to CanDO which would offer additional features that CanDo didn’t support directly. Though, ARexx worked, it wasn’t as convenient as having a feature supported directly by CanDo.
Here are the CanDo manuals if you’re interested in checking out more about it:
- Original CanDo Manual
- Searchable CanDo Manual
- Original CanDo ProPak Manual
- Searchable CanDo ProPak Manual
Here’s a snippet from the CanDo main manual:
CanDo is a revolutionary, Amiga specific, interactive software authoring system. Its unique purpose is to let you create real Amiga software without any programming experience. CanDo is extremely friendly to you and your Amiga. Its elegant design lets you take advantage of the Amiga’s sophisticated operating system without any technical knowledge. CanDo makes it easy to use the things that other programs generate – pictures, sounds, animations, and text files. In a minimal amount of time, you can make programs that are specially suited to your needs. Equipped with CanDo, a paint program, a sound digitizer, and a little bit of imagination, you can produce standalone applications that rival commercial quality software. These applications may be given to friends or sold for profit without the need for licenses or fees.
As you can see from this snippet, INOVATronics thought of it as an ‘Authoring System’ not as a language. CanDo itself might have been, but the underlying language was most definitely a programming language.
CanDo Player
The way CanDo worked its creation process was that you would create your CanDo deck and program it in the deck creator. Once your deck was completed, you only needed the CanDo player to run your deck. The player ran with much less memory than the entire CanDo editor system. The player was also freely redistributable. However, you could run your decks from the CanDo editor if you preferred. The CanDo Player could also be appended to the deck to become a pseudo-executable that allowed you to distribute your executable software to other people. Also, anything you created in CanDo was fully redistributable without any strings to CanDo. You couldn’t distribute CanDo, but you could distribute anything you created in it.
The save files for decks were simple byte compiled packages. Instead of having to store humanly readable words and phrases, each language keyword had a corresponding byte code. This made storing decks much smaller than keeping all of the human readable code there. It also made it a lot more tricky to read this code if you opened the deck up in a text editor. It wasn’t totally secure, but it was better than having your code out there for all to see when you distributed a deck. You would actually have to own CanDo to decompile the code back into a humanly readable format… which was entirely possible.
The CanDo language was way too young to support more advanced code security features, like password encryption before executing the deck, even though PGP was a thing at that time. INOVATronics had more to worry about than securing your created deck’s code from prying eyes, though they did improve this as they upgraded versions. I also think the INOVATronics team was just a little naïve about how easily it would be to crack open CanDo, let alone user decks.
TurboEditor — The product that never was
A programmer friend who was working towards his CompSci masters owned an Amiga, and also owned CanDo. In fact, he introduced me to it. He had been poking around with CanDo and found that it supported three very interesting functions. It had the ability to decompile its own code into humanly readable format to allow modification, syntactically check the changes and recompile it, all while still running. Yes, you read that right. It supported on-the-fly code modification. Remember this, it’s important.
Enter TurboEditor. Because of this one simple little thing (not so little actually) that my friend found, we were able to decompile the entire CanDo program and figure out how it worked. Remember that important thing? Yes, that’s right, CanDo is actually written in itself and it could actually modify pieces that are currently executing. Let me clarify this just a little. One card could modify another card, then pull that card into focus. The actual card wasn’t currently executing, but the deck was. In fact, we came to find that CanDo was merely a facade. We also found that there was a very powerful object oriented, fully reentrant, self-modifying, programming language under that facade of a UI. In fact, this is how CanDo’s UI worked. Internally, it could take an element, decompile it, modify it and then recompile it right away and make it go live, immediately adding the updated functionality to a button or slider.
While CanDo could modify itself, it never did this. Instead, it utilized a parent-child relationship. It always created a child sandbox for user-created decks. This sandbox area is where the user built new CanDo Decks. Using this sandbox approach, this is how CanDo built and displayed a preview of your deck’s window. The sandbox would then be saved to a deck file and then executed as necessary. In fact, it would be one of these sandbox areas that we would use to build TurboEditor, in TurboEditor.
Anyway, together, we took this find one step further and created an alternative CanDo editor that we called TurboEditor, so named because you could get into it and edit your buttons and functions much, much faster than CanDo’s somewhat sluggish and clunky UI. In fact, we took a demo of our product to INOVATronics’s Dallas office and pitched the idea of this new editor to them. Let’s just say, that team was lukewarm and not very receptive to the idea initially. While they were somewhat impressed with our tenacity in unraveling CanDo to the core, they were also a bit dismayed and a little perturbed by it. Though, they warmed to the idea a little. Still, we pressed on hoping we could talk them into the idea of releasing TurboEditor as an alternative script editor… as an adjunct to CanDo.
Underlying Language
After meeting with and having several discussions with the INOVATronics team, we found that the underlying language actually has a different name. The underlying language name was AV1. Even then, everyone called it by ‘CanDo’ over that name. Suffice it to say that I was deeply disappointed that INOVATronics never released the underlying fully opaque, object oriented, reentrant, self-modifying on-the-fly AV1 language or its spec. If they had, it would have easily become the go-to deep programming language of choice for the Amiga. Most people at the time had been using C if they wanted to dive deep. However, INOVATronics had a product poised to take over for Amiga’s C in nearly every way (except for the shared library thing which could have been resolved).
I asked the product manager while at the INOVATronics headquarters about releasing the underlying language and he specifically said they had no plans to release it in that way. I always felt that was shortsighted. In hindsight for them, it probably was. If they had released it, it could have easily become CanDo Pro and they could sold it for twice or more the price. They just didn’t want to get into that business for some reason.
I also spoke with several other folks while I was at INOVATronics. One of them was the programmer who actually built much of CanDo (or, I should say, the underlying language). He told me that the key pieces of CanDo he built in assembly (the compiler portions) and the rest was built with just enough C to bootstrap the language into existence. The C was also needed to link in the necessary Amiga shared library functions to control audio, animation, graphics and so on. This new language was very clever and very useful for at least building CanDo itself.
It has been confirmed by Jim O’Flaherty, Jr. (formerly Technical Support for INOVATronics) via a comment that the underlying language name was, in fact, AV1. This AV portion meaning audio visual. This new, at the time, underlying object oriented Amiga programming language was an entirely newly built language and was designed specifically to control the Amiga computer.
Demise of INOVAtronics
After we got what seemed like a promising response from the INOVATronics team, we left their offices. We weren’t sure it would work out, but we kept hoping we would be able to bring TurboEditor to the market through INOVATronics.
Unfortunately, our hopes dwindled. As weeks turned into months waiting for the go ahead for TurboEditor, we decided it wasn’t going to happen. We did call them periodically to get updates, but nothing came of that. We eventually gave up, but not because we didn’t want to release TurboEditor, but because INOVATronics was apparently having troubles staying afloat. Apparently, their CanDo flagship product at the time wasn’t able to keep the lights on for the company. In fact, they were probably floundering when we visited them. I will also say their offices were a little bit of a dive. They weren’t in the best area of Dallas and in an older office building. The office was clean enough, but the office space just seemed a little bit well worn.
Within a year of meeting the INOVATronics guys, the entire company folded. No more CanDo. It was also a huge missed opportunity for me in more ways than one. I could have gone down to INOVATronics, at the time, and bought the rights to the software on a fire sale and resurrected it as TurboEditor (or the underlying language). Hindsight is 20/20.
We probably could have gone ahead and released TurboEditor after the demise of INOVATronics, but we had no way to support the CanDo product without having their code. We would have had to buy the rights to the software code for that.
So, there you have it. My quick history of CanDo on the Amiga.
If you were one of the programmers who happened to work on the CanDo project at INOVATronics, please leave a comment below with any information you may have. I’d like to expand this article with any information you’re willing to provide about the history of CanDo, this fascinating and lesser known Amiga programming language.
leave a comment