promethea.incorporated

brave and steely-eyed and morally pure and a bit terrifying… /testimonials /evil /leet .ask? .ask_long?


nuclearspaceheater:

lisp-case-is-why-it-failed:

socialjusticemunchkin:

nuclearspaceheater:

I was reading about Ethereum.

Solidity is the JavaScript-like programming language designed for developing smart contracts that run on the Ethereum Virtual Machine (EVM).

My intuitions are saying that the language should be functional, simple, high-level and damn well tested. Ideally it should also be close enough to natural language that it would be partially self-documenting and difficult to hide nasty tricks in. And it should have a strict syntax so that there’s only one correct way to do anything ever, and deviating from it would produce an obvious error instead of unexpected behavior and it would be noticed at “compile-time” so that the only programs that ever get to run are Correct.

I’m not an expert yet but these features sound like inspiration should be taken from the likes of Ada, Haskell, Python etc.

…so they chose javascript instead

what has the world done to deserve this

Rust, Haskell, and Coq (or one of the other dependently typed languages, I haven’t use them) are much better inspirations. Ada was only good like 50 years ago, and Python is a really bad choice if you care about program correctness.

Natural language is the opposite of what you want. Every language that has tried it (COBOL and Ruby stand out) have turned into unreadable messes. You want something very close to formal logic, so it is extremely clear what is being done.

“One way to do everything” is literally impossible in a Turing complete language. You can’t even make it hard to do things in more than one way. You can have conventions for how to do common things, and that’s about it.

There is also argued to be some value in a well-define total functional subset of the language, which is much easier to prove things about, and which would be preferable in any case where Turing-completness is not actually necessary.

Okay yes, my totally non-expert intuitions and vague guesses were corrected by people who know better (insert that picture about how the best way to get information is to post wrong information first so the people who know the stuff will correct it).

Although the “one way to do a thing” is basically “one reasonable way to do a thing”; I’d find it preferable if the alternate ways of doing most things were clearly excessively roundabout so the language would effectively end up enforcing best practices as deviating from them would be obviously a stupid idea and oftentimes signal that something suspicious might be going on.

And the “natural language” thing wasn’t what I was exactly going for; having short clear ways of doing standard things instead of getting bogged down in unnecessary imperative boilerplate would perhaps be closer to what I meant.

1 week ago · tagged #baby leet · 53 notes · source: nuclearspaceheater · .permalink

  1. lisp-case-is-why-it-failed reblogged this from nuclearspaceheater
  2. nuclearspaceheater reblogged this from nuclearspaceheater and added:
    A bug in an official Ethereum-dev wallet, that was just discovered a week ago, makes accounts that it created vulnerable...
  3. mitoticcephalopod reblogged this from mugasofer
  4. mugasofer reblogged this from lisp-case-is-why-it-failed
  5. almostcoralchaos reblogged this from speakertoyesterday
  6. veronicastraszh reblogged this from socialjusticemunchkin and added:
    Right. The “one right way to do things” philosophy actually goes back to (at least) Eiffel. I think I better way to...
  7. consulo-cuniculos reblogged this from nuclearspaceheater
  8. socialjusticemunchkin reblogged this from nuclearspaceheater and added:
    Okay yes, my totally non-expert intuitions and vague guesses were corrected by people who know better (insert that...
  9. mhd-hbd reblogged this from socialjusticemunchkin and added:
    In short:Etherium — shit language, “gotcha”-lawmaking, and assasination markets.Let’s go over to ColorCoin instead.
  10. speakertoyesterday reblogged this from socialjusticemunchkin and added:
    In fairness they seem to have copied the syntax (which might as well be C syntax) and not the interesting semantic...
  11. shlevy reblogged this from socialjusticemunchkin and added:
    Wat
  12. laropasucia reblogged this from socialjusticemunchkin
  13. sysice reblogged this from nuclearspaceheater
  14. theinternetcrab reblogged this from shkreli-for-president
  15. shieldfoss reblogged this from shkreli-for-president and added:
    Mmm yes and the new fork shall be developed solely by credentialed workers, we cannot have people like Brendan Eich, no...
  16. shkreli-for-president reblogged this from nuclearspaceheater and added:
    we’re going to have to kill the entire software development industry and start over. hard fork hard fork hard fork