from Hacker News

Falsehoods programmers believe about aviation

by cratermoon on 6/6/25, 10:20 PM with 199 comments

  • by sixdimensional on 6/7/25, 3:24 AM

    Here's a fun true story..

    Aircraft do not have a singular unique identifier that is time invariant.

    While it is true that aircraft have serial numbers issued to their airframe, by itself, aircraft serial numbers are not unique.

    The only unique identifier for an aircraft across its lifecycle from production to end of life is a combination of the manufacturer, make and serial number.

    I know this because I am on (for better or worse) the patent that involves defining that as a unique identifier for aircraft.

    The combination of ICAO aircraft type designator + serial number approximately is the most permanent identifier for an airframe - and even then - if an airframe is modified significantly enough that it no longer is the previous type - even then this identifier can change.

    Personally, it boggled my mind that something as big as an aircraft did not have a simple time invariant unique identifier.

    P.S. For those who might ask - aircraft registration numbers are like license plates, so they change - tail numbers can be ambiguous and misinterpreted depending on what is painted on the aircraft where, and ICAO 24-bit aircraft addresses are tied to ADS-B transponder boxes, which technically can be moved and reprogrammed between aircraft also.

  • by FabHK on 6/7/25, 1:32 AM

    As usual with these lists, they would much benefit from more in-depth explanation. This list at least deigns to link to examples for many of the claims (like a flight that leaves on time but arrives 40 hours late [1]), but doesn't explain what happened.

    Having said that, many of the links are very informative. For example the crater on Mars that has an ICAO airport code [2]: "On 19 April 2021, Ingenuity performed the first powered flight on Mars from Jezero, which received the commemorative ICAO airport code JZRO."

    [1] https://www.flightaware.com/live/flight/PDT5965/history/2025...

    [2] https://en.wikipedia.org/wiki/Jezero_(crater)

  • by bnycum on 6/7/25, 3:51 AM

    I develop software for flight data analysis at a company that makes flight data recorders. Our focus is mainly helicopters, but some fixed wing. Dealing with aircraft that may takeoff or land at a base, hospital, roof, parking lot, football field, airport, golf course, etc I feel like most of my days are spent on all sorts of falsehoods about aviation.
  • by genocidicbunny on 6/7/25, 2:52 AM

    Funny how the common thread through many of these 'Falsehoods...' posts is that many programmers think that systems designed by humans, for humans, and kept running by humans will rigidly adhere to a set of rules and don't have edge cases.
  • by alphazard on 6/7/25, 12:19 PM

    A lot of these so called "falsehoods" are just design failures on the part of programmers. Someone did it badly first, and it stuck, and a second person came in later and is surprised by the bad design. That's not really interesting, it happens all the time in software. So much so that seasoned engineers have come to expect poor design until proven otherwise.

    Things like flight numbers not having reasonable semantics, or conceptual pollution of what a flight is to include multiple take offs and landings are bad design, plain and simple. Just model the problem correctly e.g. maybe a Trip is multiple Flights, or Flights have multiple Legs. This isn't aviation specific. These are generic problems that programmers can and should get right.

    Some of it is intrinsic to the domain, like flights not all having gates, or not landing at airports. That was a new tidbit for me.

  • by ryandrake on 6/7/25, 2:28 AM

    I always look at these "Falsehoods Programmers Believe..." lists as a source of tests. Each item should spawn a number of unit or integration tests that will help to uproot any of these assumptions that were incorrectly baked into your software.
  • by Titan2189 on 6/7/25, 1:50 AM

    Great Summary of how messed up Airport Codes are by CGP Grey

    https://www.youtube.com/watch?v=jfOUVYQnuhw

    including (attempts at) a few in-depth reasons for why these quirks exists

  • by djoldman on 6/7/25, 11:04 AM

    Falsehoods people believe about programmers:

    * Programmers believe they are handling all possible configurations of the universe when putting something into production.

    * Programmers don't handle all possible configurations of the universe when putting code into production because they don't know any better.

    Falsehoods people believe about the universe:

    * There exists a constant.

    * SI units are constant at all times or everywhere.

  • by kqr on 6/7/25, 10:42 AM

    I find this list strange. I have only a passing interest in aviation and I would not believe very many of these.

    What made the corresponding lists for names and time interesting were that it was genuinely surprising to realise that their statements were actually false. I don't get that feeling with these.

    Like the top level comment about identifiers for airplanes -- why would they have them? That sounds baffling to me. With ownership changes, continuous upgrades, extending airframes, repurposing etc. I would be surprised if there was a stable identity.

  • by sandworm101 on 6/7/25, 1:58 AM

    Sounds like a list of edge cases just like any other area.

    Myths programers believe about cars:

    Cars in the same lane always travel in the same direction.

    Each street has a name.

    Each street has a unique name.

    Each street has only one name.

    Cars have four wheels.

    Cars never move vertically.

    Roads never move.

    Roads never cross water without bridges.

    When two roads cross, the do so at an intersection.

    Take any field in human experience and one can make such a list.

    All boats float. Ships are bigger than boats. Boats are slower than airplanes. Boats only travel on water.

  • by dtgriscom on 6/7/25, 2:22 AM

    Another discussion of this article, but on a FlightAware forum:

    https://www.flightaware.com/squawks/view/1/7_days/popular_ne...

  • by marcosdumay on 6/7/25, 1:53 AM

    > Flights take off and land at airports

    My impression is that every single older (pre-2010) computer system that manages the Brazilian aviation felt for that and fixed it in a hack.

    > Airports never move

    Also, Runways never move. Also, if runways move, they don't change direction. Also, if airport or runways move, there will exist some construction work before.

    I'd add "aircraft only land in runways" there too. And "ok, aircraft only land in runways and heliports".

  • by moralestapia on 6/7/25, 10:33 AM

    >If an aircraft diverts to another destination, it won’t divert again.

    Hehe, I was once told we couldn't land at our destination A, so we got diverted to B; while on our way to B we were told we are actually going to C; and, while on our way to C, A became available again so the plane did a U-turn and we flew back to A, landing with a ~3 hour delay.

    The cause was snow and wind.

  • by EMM_386 on 6/7/25, 6:10 AM

    Well, as a senior software engineer and commercial pilot ... I am left confused.

    Not all the things in the list, because I am aware of those. I might have missed the runway numbers changing based on shifting magnetic field of the earth, but that's a thing too. Runway 22? That's now Runway 21.

    But why programmers specifically would believe this, as opposed to ... any other profession that is not aviation?

  • by mschuster91 on 6/7/25, 8:18 AM

    On the ADS-B receiver side, I'd add "Each ADS-B packet will be clearly heard by the on-ground receiver, there will be no other radio station sending an ADS-B packet when another station is actively transmitting" and "Only actual ADS-B stations use the 1090 MHz frequency, no one will attempt to maliciously jam the entire band".
  • by FearNotDaniel on 6/8/25, 4:39 AM

    > Everything that has an IATA code is an airport

    I used to travel fairly often between Salzburg and London Heathrow, which has very few direct flights outside of weekends in the ski season. One option was to book a through ticket on the Lufthansa bus Salzburg-Munich then fly, which meant of course that the bus journey had to have a flight number. I particularly loved that there was a pick up at the halfway point of Rosenheim in Bavaria, which means a lonely bus stop in a car park just off the motorway also got assigned an airport code.

  • by lyu07282 on 6/7/25, 3:40 AM

    Its like receiving some API documentation that confidently declares some field as an ENUM and then a few hundred million rows later you discover that that was more like a suggestion and its actually more like a free text field.. sigh
  • by ivan_gammel on 6/7/25, 5:47 PM

    My favorite falsehood was from ca. 17-18 years ago: that altitude is always positive. There are airports in the mountains where approaching altitude can be below the runway and thus reported as negative.
  • by dehrmann on 6/7/25, 5:02 PM

    > Flights that depart from a gate only leave their gate once

    I went on a vacation to New Zealand just before new visa requirements took effect, so while I entered legally, at some point, I couldn't reenter. As I was going through passport control to exit, I asked what would happen if the plane had a mechanical issue and I had to spend the ~night, but couldn't reenter. The border agent said they can undo an exit.

  • by hermitcrab on 6/7/25, 9:14 AM

    >The only unique identifier for an aircraft across its lifecycle from production to end of life is a combination of the manufacturer, make and serial number. >I know this because I am on (for better or worse) the patent that involves defining that as a unique identifier for aircraft.

    Isn't that blindingly obvious? If so, how did it get to be a patent? And is someone now extracting rent from it?

  • by AlienRobot on 6/7/25, 1:37 AM

    >Airports never move

    I can imagine them going "I had a perfect database schema that covered every edge case, and then..." with each bullet point.

  • by b3orn on 6/7/25, 10:58 AM

    Here's one that is only kind of mentioned, there are actually different altitudes. If you use ADS-B data you will only get the barometric altitude which is not calibrated to the ground pressure level. For example if you watch ADS-B data of flights into Denver it appears that every aircraft is crashing down ~5000ft during landing.
  • by jmward01 on 6/7/25, 12:31 PM

    Adding to the list: Runway numbers never change [1]

    [1] https://www.ncei.noaa.gov/news/airport-runway-names-shift-ma...

  • by unkulunkulu on 6/7/25, 7:41 AM

    Haha, nice! My head as a programmer explodes while reading this list, because I feel like these are all reasonable assumptions and I feel how they are painfully discovered late into the implementation.

    Also, feeling myself stupid very quickly. Very nice summary, bravo!

  • by univacky on 6/8/25, 5:16 PM

    An aircraft on a flight may not maintain the same identifier/callsign for the entirety of that one flight.

    Famously, President Richard Nixon departed Washington DC on Air Force One bound for California. In flight over Missouri, his resignation took effect and Gerald Ford was sworn in as President. When that happened, the callsign of the flight changed to SAM 2700.

    https://en.wikipedia.org/wiki/Air_Force_One#SAM_27000

  • by throwaway290 on 6/7/25, 5:58 AM

    Missing "Aircrafts land", the shortest falsehood.
  • by petesergeant on 6/7/25, 4:05 AM

    https://www.airnavradar.com/data/airlines/tmw is a good example of some of these (depending on what time you check that link -- if it's night-time in the Maldives it's going to show you nothing)
  • by usui on 6/7/25, 3:50 AM

    Honestly I am surprised by some of the points. But after reading all of it, now I am wondering as an outsider, what the hell is a "flight" if there's basically no good abstraction for this mess? What does it mean when a new flight is created, or what does the existence of any single flight mean?
  • by zzo38computer on 6/7/25, 2:35 AM

    I had known about some of these, and I had thought that some others are at least possible.

    I know that there is a ICAO code on Mars (since I had read about it before).

    I think there are some airports that have a ICAO code but not IATA code and vice-versa, and some have a "pseudo-ICAO" code with letters and numbers together.

  • by nly on 6/8/25, 9:34 AM

    A lot of these identification issues could be solved with a time series attribute system.

    For example, a tail number (attribute) could be associated with a plane between X and Y timestamp

    In financial trading it's also the case that a lot of identifiers change.

  • by Zealotux on 6/7/25, 11:18 AM

    Back when I was designing an app for air navigation, I came up with an alternative color scheme for various types of color blindness only to be told the target users were not allowed to be color blind (it was in France, much stricter than elsewhere it seems).
  • by aryehof on 6/7/25, 4:33 AM

    Perhaps useful to produce a list of true constraints in contrast to false ones. Perhaps that would result in too many “except for”, “apart from” and “subject to” statements.

    Aside: is there a notation for such constraints?

  • by daedrdev on 6/7/25, 10:58 AM

    Dont forget float planes can land to a pretty massive number of docks
  • by account42 on 6/10/25, 9:24 AM

    Falsehoods web developers think about URLs:

    - You can just add arbitrary query arguments to URLs of other websites

  • by BrandoElFollito on 6/7/25, 9:13 PM

    I love it how some comment threads jumped into solving these false beliefs, with code, standards and everything.

    Software development is really cool.

  • by th0ma5 on 6/7/25, 7:18 AM

    Another falsehood is that airplane data companies won't cave to legal or monetary threats. They might!
  • by oceansky on 6/7/25, 2:36 PM

    Can someone clarify this one:

    "Flights have schedules".

    Don't they all have schedules?

  • by amelius on 6/7/25, 12:01 PM

    Falsehoods managers force programmers to believe about X
  • by softwaredoug on 6/7/25, 2:30 AM

    Someone should do a logic blogpost - “Falsehoods programmers believe about falsehoods”
  • by antonvs on 6/7/25, 11:12 AM

    [flagged]
  • by mcdeltat on 6/7/25, 4:00 AM

    Bit of a rant: what annoys me about these lists is how they just give off a huge "you are dumb for making any assumptions, how could you not think of <extremely obscure edge case>" vibe. I'd be interested to see what the effects are of these assumptions failing, because often they are pretty reasonable assumptions for a reasonable subset of the universe. Software is imperfect and you can't cover every possibility. Like ok technically 10 flights with the same number could leave the same gate at the same time, but if 99.99% of the time they don't and you assume that, what is the real impact to people?

    Reminds me of a list that came up ages ago that presented an assumption of "X code always runs" with the counterpoint that you could unplug the computer. Ok sure, but then why write software at all? Clearly no point assuming any code will ever run since you can just terminate the program at any random time.

  • by ttfkam on 6/7/25, 4:19 AM

    Day by day it feels less and less like regular data modeling and more like a debate with Jordan Peterson where you argue for ten hours what a "name" is.

    Eventually you end up having to make choices and deal with the consequences. Otherwise Jordan Peterson would have you chasing your tail for days about what a "choice" is, and nothing would ever get done.

    tl;dr: just make your best guess and always include an extra "notes" column where things can get leaky.

  • by moron4hire on 6/7/25, 2:40 AM

    I did not believe almost any of these things on account of I try not to think about airports whenever I don't have to.
  • by antonvs on 6/7/25, 11:09 AM

    [flagged]