• masterspace@lemmy.ca
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    2 days ago

    I spent a year at a software company that built software on top of Salesforce and was just flabbergasted by the decisions and restrictions they had.

    You’d hit hard limits on things like compute and number of requests etc with no literally no way of increasing or scaling them outside of paying absurd custom contract fees to salesforce. It lead to a ton of stuff having to use external platforms to do things and all of these horrible kludgy workarounds, whereas at any other software company it would have just been a matter of your infrastructure automatically spinning up another instance during high load periods.

    Then their frameworks and programming languages are just piles of garbage.

    Apex is their backend language and it’s basically an extremely old and limited version of Java, but not only does it not support any of the niceties of modern Java, it also doesn’t support any actual Java packages or frameworks so stuff like Kotlin or the Spring ecosystem is out of the question. It doesn’t even come with a framework for writing unit tests. On top of that, you then have all these insane restrictions on how your code files are organized. There’s no name spacing, all your code files have to be in a single flat directory, there’s file length restrictions and character restrictions and even casing restrictions… depending on where you reference an Apex class, it could use one of three different name syntaxes (i.e. MyClass has to be referred to as myClass in some places, MyClass in others, and my-class in others).

    Their frontend language was a pile of even shittier garbage, though was replaced with their own web component framework that is at least halfway similar to standard web components. But they still come with the crazy lack of name spacing and all the file naming and organization restrictions, they still don’t support TypeScript, and they come with literally no ootb methods for State Management, routing, etc.

    And all of their dev infrastructure has to run on an instance of a Salesforce server so there is literally no way of developing actually locally.

    A visualization of the year I spent trying to develop good software that users might like on top of salesforce: https://youtu.be/kSGEzpkgsu0?t=35s