• Edward de Jong / Beads Project

    Edward de Jong / Beads Project

    3 years ago
    To me, Urbit is DOA. The reason facebook and twitter are so successful is that they stay up, and gradually improve their mostly free to use product. They use a pay-by-advertising model that is the accepted standard for all public media in the USA (Radio, Newspapers, TV, etc.). Their billions in revenue allows them the luxury of huge staffs which attend to all aspects of maintaining and growing their lead in their respective spaces. Urbit has no motor to drive it forward. And things don't move without a motor.
    Edward de Jong / Beads Project
    i
    +2
    16 replies
    Copy to Clipboard
  • d

    David Piepgrass

    3 years ago
    I'm inclined to dump the mindset, but not the ability of languages to act in an imperative/mutable way - an impure language seems necessary to express some useful and fast algorithms, but the default mode of thought should be more functional rather than imperative, message passing + immutable data sharing rather than shared mutable memory. (But I think currying - saying
    (+) 1
    instead of
    x => x + 1
    - tends to be confusing and isn't worth the keystrokes it saves. And fundamentally it doesn't match how modern computers work. Arguably Haskell's always-lazy-eval has similar, if lesser, problems.)
    d
    Niko Autio
    5 replies
    Copy to Clipboard
  • Jason Priestley

    Jason Priestley

    3 years ago
    I think the mindset of "functional is better than imperative" has led to great confusion. If you are approaching this from the point of view of mathematical tractability (which I agree with) then they are simply different mathematical structures. It's like saying "rings are better than groups". There are areas where the sequential, mutational aspects of imperative code are inessential, and using imperative code is inelegant there ... like using too rich a mathematical structure for a proof, rationals where you just need any monoid. The best place for functional code is "pure computation" without "side effects" like concurrency, I/O etc. But even this terminology gives a weird value judgment, "pure" vs "impure". And then you have this quest to "purify" the impure by simulating I/O with monads - this doesn't simplify the proofs at all, the putative goal of the exercise. Conal Elliott did a great job parodying this mindset with "The C language is purely functional".
    Jason Priestley
    c
    +2
    10 replies
    Copy to Clipboard
  • c

    Charlie

    3 years ago
    Crazy guy here to say that everyone is looking in the wrong direction. Functional, Imperative, Excel spreadsheet-driven, who cares? Computation is not the frontier anymore. Most software is now built across networks and collections of computers (UIs/embedded being the large exceptions). What do we have to gain by min-maxing programming a single machine? The glacial pace of innovation in this space since ~1990 should be a big wake up sign. The future is wrangling distributed systems, which is something that single-machine Turing complete languages like to pretend is somebody else's problem.
    c
    Pete Vilter
    +6
    30 replies
    Copy to Clipboard
  • c

    Charlie

    3 years ago
    @Nick Smith Lets say you've got a program that is manipulating data in an array. If that array exists on your computer in memory, your language can express iterating over that array as a trivial concept (for loops, streams, sequences, take your pick). What constructs do you have to use if part of that array is in another machine, or in a database, etc? The language and its view of the world completely breaks down. You now have to spend X LOC writing clunky code that's abstractions over some OS syscalls to get that array close to hand so that the language can resume (and you can't resume unless you can bring the array close to hand!). As humans we can express "part of this array is over there", but the languages we use have no concept of "over there", there is only here. It's not a problem about abstracting over the oddities of networks, though that does play a part, its a problem of expressing over there in a computer language. This is all a rant to say that I think distributed systems are entirely a language problem 😛
    c
    Kartik Agaram
    4 replies
    Copy to Clipboard
  • Nick Smith

    Nick Smith

    3 years ago
    You’ve premised your argument on there being a need to manipulate an array that is located (at a user-visible level) over two different physical locations. If you want to argue for the relevance of your conclusion you need to first argue for the relevance of your premise. Why does the user need to be concerned with a data structure that has been split into chunks? Could this concern be relegated to infrastructure? If so, then we don’t have a language problem. The user can simply deal with the array as if it is a single contiguous entity.
    Nick Smith
    Kartik Agaram
    5 replies
    Copy to Clipboard
  • c

    Charlie

    3 years ago
    Yea, I have to agree with you that it's an infrastructure problem first. I do think that the trajectory of software and hardware is trending away from "everything happens on one machine". There are still plenty of instances of problems that can be solved on a single machine, but steeped in cloud ideology as I am, I think multi-machine computing is here to stay. Infrastructure may deliver us from the problems of distributed computing, but today most "back-end web"* developers are dealing with arrays that have been split into chunks, and will be for the foreseeable future. *and I don't really know how big this cohort is, or if they've should be driving computing forward anyway!
    c
    shalabh
    +1
    6 replies
    Copy to Clipboard
  • Stefan

    Stefan

    3 years ago
    Stefan
    1 replies
    Copy to Clipboard
  • m

    Miles Sabin

    3 years ago
    In the research community at least, a lot of that stuff disappeared in favour of work on mobile calculii of various sorts, pi/ambient calculus, petri nets that sort of thing.
    m
    curious_reader
    3 replies
    Copy to Clipboard
  • Kartik Agaram

    Kartik Agaram

    3 years ago