It's pretty much designed to be as hard to understand as possible.
Look at the source/demo videos - it seems like it's designed to be obfuscated.
https://github.com/urbit/urbit
http://urbit.org/preview/~2015.9.25/materials/part-i
Personally, I can't get over the really made up words.
The idea of having new names for everything is that when you use a name you've already seen before in another context, you carry forward any ideas you have about things with that name based on their implementations in those other languages.
There's a specific meaning for the words that are used for the introductory language concepts: arm, gate, battery, sample, core, rune, glyph, ... twig, jet, and so on.
Many of these are either new concepts, or new arrangements of old concepts. A gate is not a lambda or a function, neither is a core, and if either were called those things anyone who hadn't seen them explained before would probably go ahead and take the big word to their nearest search engine, only to become even more confused by idiosyncratic and sometimes conflicting explanations of those ideas that appear slightly differently in hundreds of other languages.
I think that Hoon hopes to be the first programming language for a lot of people one day, so they won't usually be coming expecting familiar things to have familiar names.
I couldn't find a good source quickly, but it's mentioned here: https://en.wikipedia.org/wiki/Jacques_Derrida#Criticism_from...
Edit: In the early Urbit docs [8] there was a nigh ad nauseam emphasis on the "stupidity" of the project. What the epiphany of careful inspection revealed was that this stupidity was not that of intellectual deficiency, but rather opposition to "cleverness" of the kind that tends to foster (and infest) Urbit's peer group of deep stack [9] rebuilds. One of the most insightful comments I've heard after springing Urbit on unsuspecting PL professionals was (paraphrased): "It [Urbit] does all the things we've said we wanted, in the worst possible way." All words are equally made up until grounded in referents. The question is, are the Worfian shorthands new words provide worth the cost [10] of expanding the symbol table, as compared to the interpretation overhead of translating new concepts into old? Under the burden of internalizing all the content linked below and more, I judge new vocabulary justified.
[0] http://www.ucombinator.org/
[1] https://en.wikipedia.org/wiki/Abstract_rewriting_system (ARS being the most mechanical of the pure computational models outside reversible logic)
[2] http://tunes.org/wiki/symmetric_20lisp.html
[3] https://en.wikipedia.org/wiki/Forward_chaining
[4] https://en.wikipedia.org/wiki/Modula-2#Description (see Definition/Implementation modules)
[5] https://en.wikipedia.org/wiki/Content_centric_networking
[6] http://netcentriccomputing.org/
[7] https://en.wikipedia.org/wiki/Capability-based_security (not yet fully implemented)
[8] http://moronlab.blogspot.com/2010/01/moron-lab-goals-princip...
[9] I won't say full stack, because the reshaping blade only penetrates OS deep. For a hardware-grounded reset, see good old Loper OS (http://www.loper-os.org/?p=8).
[10] Because words are context dependent, this expansion is only logarithmic with respect to the increase of immediately referable concept space.
Hopefully the tractability of the number base will help bootstrap your familiarity with the ASCII alt-names. When you've poked around Urbit enough to see the ideas described in the link storm above, I would be very interested in discussing them with you (or even to discuss them in a general, non-Urbit context, both are standing offers).
IPFS is solving a different problem -- it's a storage network, not a personal server. IPFS is more comparable to Freenet or BitTorrent. Urbit is more comparable to Sandstorm, although of course they're technically very different.
I guess Urbit is more of an 'operating environment' that allows applications to be built, then?
IPFS stores and serves your data; so does Dropbox, Cloudflare, etc. In a sense the best way to see IPFS is as a distributed CDN, of course with an immutable namespace that actually works.
Urbit is [de|para|un]-centralized, with each node capable of independent (possibly antagonistic) action.