from Hacker News

I'm skeptical of low-code

by jamghee on 12/30/23, 3:51 PM with 299 comments

  • by dexwiz on 12/30/23, 11:02 PM

    I am on the other side of low code, building the builders for the most part, here is what I see.

    Low code is very easy to sell. All you have to do is make a boogie man out of the IT department, and play on existing frustrations. Then play a demo where a sign up form is made in ten minutes and say your IT department would have taken 3 months. You just make sure to walk the happy path during the demo and don’t stress the tool.

    Many things could be low code. Why do you need a developer for a sign up form if you are just making an API call in the end? Wiring up a form shouldn’t take html, js, and a serverside language.

    On the flip side, don’t put your core business logic in low code. Low code builders assume anything complex will be offloaded to a specialized system. The best ones provide escape hatches by calling remote APIs or calling a code module.

    Low code gets sold to smaller customers because it’s touted as a developer replacement. But really it’s most powerful in larger enterprises where individual teams may have technical people who have business knowledge but not much much IT power. It’s easy to get them to configure something in a SaaS they already use, than get a custom solution from IT. Also low code often comes with guardrails and permission sets tied to existing users.

    I see low code as a tech equivalent of the last mile problem in logistics. It addresses a large number of concerns with simple tools, but doesn’t scale well and needs to work in tandem with a stronger central system. End to end low code is a trap, but low code at the fringes is a multiplier.

  • by siliconc0w on 12/30/23, 11:06 PM

    As an SRE that occasionally encounters low-code things I'm also pretty skeptical..

    * there is like no source control, or if there is the source controlled thing is an unreadable artifact which generally doesn't belong in source control.

    * the workflows are poorly if at all documented.

    * they still require a lot of custom code but that code isn't as reusable, tested or testable * they often require a proprietary runtime, worse this may only run on windows

    * they are difficult/impossible to instrument and so are difficult or impossible to monitor. Or if they do have monitoring it is going to work differently than the rest of your stack - likely using email based alerting which isn't ideal.

    * the work is still 100% done by engineers either way, I've never seen a low code or DSL be picked up by non-engineers. (I am also skeptical towards DSLs)

    The only tool that was semi-reasonable here was Looker which isn't exactly marketed as low code but at least in the version of the product I used did integrate with source control. Though generally the people writing lookml were still engineers.

    I'm much more a fan of composable platforms that compress complexity but still make it possible to delve, customize and extend when necessary.

  • by anyonecancode on 12/31/23, 12:37 AM

    "Low code" means a low surface area of code you can directly interface with, but there's plenty of code shoved out of sight and out of reach. Total amount of code is probably actually quite a bit larger, actually, given all the code needed to create the abstraction layers to give the appearance of low code.

    Layers of abstraction are powerful when they're tight and well-suited to their purpose (I'm happy to never think about memory allocation -- thank you garbage collected languages!), but when leaky or ill-suited can be very frustrating and make things harder or impossible.

    It's hard -- probably impossible actually -- to build a "general purpose" abstraction layer that will work for specific purposes, but that's essentially the pitch of low code -- we don't know your specific use case, but we have a tool that will abstract away all the code previously tailored to that use case.

    Now, in fairness, there's a lot of code that has too much accidental complexity in it. A good abstraction layer strips away that accidental complexity and leaves only the essential complexity that's specific to your domain and use case. But that's hard to achieve -- it takes skill and experience (and not just general experience, but specific to your domain experience) to achieve. Most companies don't have that available to them, and don't want to pay rates to build teams that do have that skill set and experience. Low code holds out the promise of being a short cut to that, but clearly if your own dev team can't manage it, the odds of a generic platform doing it for you is slim to none.

  • by netman21 on 12/31/23, 12:45 AM

    All I know is that I was quoted $50K from a Ukraine team to build an MVP, as long as I could provide detailed specs down to every function. I hired an intern who used bubble/airtable to build our product in two months and had ten paying customers in 6 months. After almost two years have yet to find a reason to move to a traditional stack. We have had 6 hours of down time in those two years thanks to bubble issues. I can live with that.
  • by MetaWhirledPeas on 12/31/23, 4:23 AM

    I'm 100% against enterprise-level low code stuff. If you're big enough to afford that junk you're big enough to afford proper development teams with proper planning and organization.

    In general I see little value in any large system intending to reduce the amount of code or the needed skills of the developer. Code is not costing you money. Good developers are not costing you money. You know what costs money? Bad developers making bad decisions using bad tools, necessitating years if not decades of paying armies of lesser-skilled developers to maintain the mess, slowing overall progress to a glacial pace.

  • by ctrlp on 12/31/23, 2:33 AM

    A lot of useful MS Access and Excel apps written by non-programmers beg to differ. Sure they have their problems, what doesn't? But these low-code tools allow smart, but less technical, people to get a lot done without getting in line to beg time from a bunch of grousing devs stack-hopping their way to their next job. Use a commercial vendor and you might even get documentation and support. 80% solutions usually do more than was needed if the requirements had been thought through carefully. Most business apps are tables, filters, queries, detail views, and workflow. So what if a product with 5 users in a department is trash? Works well enough most of the time.

    Startup can't afford more than one developer? Product owner can hack the thing until you get customers, funding, or go out of business. Oh, and that bus factor goes up to boot. No more pager duty.

    Code things that are core to your business and plan for the TCO. Use low-code for internal business apps and let your smart intern or low-code consultant make and own it.

  • by cgrealy on 12/30/23, 11:01 PM

    Horses for courses..

    If you want to build a shed, go to your local hardware store and buy a kit set.

    If you want to build a skyscraper, get an architect, some engineers and a competent building company.

  • by tmn007 on 12/31/23, 12:06 AM

    I was involved with a project to decomission a low code on premise platform (Sharepoint 2013). What we found was there was a lot of user enthusiasm to create stuff but when the platform was end of life and had to be decomissioned the users enthusiasm melted away.

    The "IT" dept had to spend a fortune re-validating the user requirements for the various applications, documenting and then converting them into a new platform. Obviously a lot of feature creep and previously accepted bugs (no longer accepted now that responsibility was no longer theirs).

    A lot of the applications were frankenstein efforts from people over the years - lots of dead code no longer used, no docs etc. As others have mentioned people create mission critical stuff for their project or team, and then leave or be away on extended leave and it breaks etc.

  • by ubertaco on 12/31/23, 2:18 AM

    Can I check a "low-code" implementation into version control, using standard free tooling? Can I, when something inevitably goes wrong, do a `git log` equivalent to spot the source of the problem? Can I then roll back to a specific commit, using off-the-shelf free tooling?

    I find that generally the answer is most often "no," which is kinda a nail in the coffin for serious usage of "low-code."

  • by bruce511 on 12/31/23, 5:07 AM

    There's lots of good general criticism about Low Code tools, and certainly lots of it is valid depending on the tool and the context.

    Of course, just like say the SQL or NoSQL debate there are contexts where one wins, and another fails.

    I did have to smile at this though;

    >> "Now, rather than being to recruit from a large pool of ubiquitous, open-source language developers, the company has to find maintainers who are very specialized in this tool."

    From a company point of view this is correct. You cant just discard programmers and get a cheap, out-sourced one as a replacement.

    On the other hand, as a somewhat older programmer, I like the idea that I get more valuable with age not less. I like that I can't be replaced by some ubiquitous open source freelancer who works for $20 an hour.

    For the record I've been working with a low-code tool for 30 years (since long before "low code" was even a description) and I've seen thousands of one-man companies be successful developing programs where the owners actual programming skills are, well, in most cases, somewhat poor.

    Turns out, making something useful has more to do with fixing pain, and less to do either writing code.

    And yes, all the points listed in the article, and these comments, are true. And ironically almost none of it actually matters.

    There are a million reasons it -shouldn't- work and yet, somehow, at least in my world it does.

  • by doubloon on 12/31/23, 3:36 AM

    Eh the thing is that Worse is Better and "Actually available to people in Operations without having to beg for permission" is the best of all.

    VBA (Visual Basic available in Excel and Outlook) had a lot of the same issues as low code, as in no version control, no workflow for review or continuous testing and integration, no ability to do lots of custom things, that did not stop it from running the planet. I mean if you did the VBA version of Thanos-snapping half of all VBA code out of existence, most of society would cease to function within a week.

    Power Automate is going to replace VBA soon because VBA can no longer talk to web pages thanks to the end of Internet Explorer and lack of VBA updates. And like VBA, Power Automate has all of the same problems - no concept of code review, version control, history, logging, actually its worse.

    VBA at least let you have custom Types and Classes but in Power Automate everything, literally everything, is a global variable. Power Automate is lower code than VBA. But I think it will be used even more.

    Because it is already installed on every almost every office computer in the world. This is the only tool ordinary Ops people will have available to them to automate stuff, so that is what will get used.

  • by phamilton4 on 12/31/23, 12:39 AM

    I have been since the first people at my previous employer told me it would replace all the programmers.

    Then I found out the developers assigned to working on the low/no code parts had a component where they could write Java inside their low code process. There were hundreds of lines of code in each business process in the low code parts. They were writing giant methods in their process wired up by the true low/no code part.

    To make matters worse the tool did not support unit testing of the custom code.

    It ended up being like dozer mapping entity to entity and then passed along to custom code. All wrapped in some crummy UI. It produced a jar file which would be deployed anyways.

    Maybe the tools are better now. We had some Tibco product at the time.

  • by bazil376 on 12/30/23, 4:02 PM

    This to me is true for low code tools that are aimed at non-developers. “You can write software without software developers!” But low code tools made specifically to help developers’ workflows can be great. Maybe would be good for OP to clarify type of low code tools
  • by Eji1700 on 12/31/23, 12:10 AM

    I used PowerApps.

    It is so so so close to being a silver bullet tool for quick front end crud that can use your AD to authenticate.

    Instead though, it’s got the most absurd pricing model that even their own reps don’t understand and is missing critical or basic features, requiring strange workarounds (fucking UTC dates vs what’s actually in the DB).

    They USED to have no way to reuse code as well but they fixed that.

    I feel like the issue is they’re still too married to basically low/no code environments.

    Having a “I’m going to need to do a custom script in whatever” option would smooth out the edges so much

  • by debarshri on 12/30/23, 11:00 PM

    We started out with webflow for our landing page. Problem with low code or any abstractions in general is that it becomes leaky the moment you want to do complex stuff. The reason webflow worked for us initially was we did not have to bother with hosting, CMS etc. It because very restrictive at one point. Only couple of people know how to make certain changes.

    Eventually we moved to nextjs and vercel. We are faster with iterating on our landing page as well as any engineer can be pulled into the implementation.

    All lowcode platforms are great in basic usecases but fails when the usecases because complex.

  • by fnordpiglet on 12/30/23, 11:07 PM

    Where I use low code is in essentially expert systems, where I need to encode the expertise of some SME. For instance, a lot of places have regulatory compliance burdens. The detailed rules for compliance changes by jurisdiction constantly. Most enterprises setup some sort of requirements to engineer pipeline that everyone’s bitterly unhappy with. It is never fully compliant, has tons of errors, the engineers resent their jobs, and the SMEs resent the engineers. Instead by instrumenting the system with a low code surface area with a policy management system overlaying it you get an excellent platform engineers like to develop, SMEs can author and manage their policies directly, and you capture a rigorous workflow which auditors and regulators really dig. This doesn’t make the engineer less important, in fact they’re much more important to ensure the policies are expressive enough and touch enough business data to ensure the policies are complete. They’re just not playing regulatory policy telephone games in code.
  • by simonw on 12/30/23, 11:47 PM

    I'd find this article more useful if it named names - I still only have a loose idea in my head as to what qualifies as a "low-code tool". I'd like to know which low-code tools in particular the author has experience with.
  • by appplication on 12/31/23, 2:32 AM

    Maybe it’s just me, but I assumed almost all devs with basic coding ability would be against low code. It has so many issues, from poor version control to never (and I do mean never - would love to be proven wrong) doing more than or even meeting the feature set of whatever competing “some code” solution offers.

    In the end, you end up with either less skilled people getting in too deep, or highly skilled people unable to fully avail their skills. I get the appeal, but it always seemed like a local optima to me. It turns out code is a pretty good interface.

  • by GabeIsko on 1/1/24, 8:43 AM

    Man, y'all haven't been around software consulting long enough. First, you have to sell low code based on the premise that you don't need coders to make your software. Than, for custom functionality, you explain that you need developers on the platform to get certified. Finally, you make sure to not document anything so that consulting firms with legacy experience have a monopoly on developer talent in order to keep them happy and recommending your software to others to score large consulting contracts.

    Everyone is happy! Especially the people who actually have to use the software made this way! As we all know, enterprise software has a reputation for being extremely user friendly...

  • by msla on 12/31/23, 1:07 AM

    I guess Talend is low code.

    Talend is an ETL tool: Extract data from a data source (file, database, API), Transform it, and Load it into another data source (file, database, API), all in a pipeline. Talend's happy path is the same as Unix shell's happy path: A pipeline of data with no side-effects and no globals. Try to deviate from that and you hit walls, some more climbable than others.

    For example, Talend absolutely will not allow you to re-combine a pipeline you've split; you can combine two separate data sources, and you can split to two separate sinks, but you absolutely cannot go from one pipeline to two pipelines back down to one.

    The saving grace is that Talend is fundamentally a GUI for writing Java. You can see the Java it's writing, and you can add your own Java in a few ways, from adding jar files to just plopping a pipeline component that allows you to insert your own Java into the big God Method that the rest of your pipeline helping to form. Be sure you know how scoping works if you do that.

    In extremis, you can "use Talend" in that you use the Talend GUI as an Eclipse IDE to write the one pipeline component that does everything because it contains all of the useful Java code. You can use it the way I often used it, to take care of some tedious "plumbing" code to route the pieces of data created by the hand-written component to their respective outputs, including handling some minor output conditioning that can be done in a stateless fashion. It can even be used as it was intended to be used, as odd as that sounds.

  • by ralusek on 12/30/23, 10:58 PM

    Code is a way of explaining rules. If you have a lot of complicated rules, whatever system you use to represent it is going to be complicated. Best case scenario for low code is when the rules are simple or very predictable. In my experience, this is very rarely the case, no matter how simple a problem seems from the outset
  • by codeptualize on 12/31/23, 8:45 AM

    I agree with this take.

    These tools can be useful for non devs to make very basic things, but they won’t be able to handle anything complex, and it’s hard to test and proof the correctness of the result. If you take it far enough you are always going to end up hacking around the tool.

    For people who do write code these tools could be useful, but code is much easier to use as you are not stuck within the constraints of the tool and know what you are doing.

    I think there is one success story for low code and its basic websites, mostly the part where a design is turned into code. I use Framer because it’s objectively quicker than code, with great results (I even design in framer), and once it’s set up non technical colleagues can make changes. Great for a landing page, but it won’t work for apps.

    I think the article is right in pinpointing the logic as the problem. Coding is not about syntax and the language, it’s about the logic and ability to map that out into a program with all the edge cases and details.

  • by icedchai on 12/30/23, 11:32 PM

    My experience with low code is it's easy to get an 80 to 90% solution. Getting that last 10 to 20% may be very difficult. Also, source control, versioning, deployment may be open questions depending on the platform and project. Additionally, you will be locked in to a proprietary platform. Perhaps that is okay.
  • by atoav on 1/1/24, 3:15 PM

    The hard part about programming isn't code. It is wrangling complexity, it is understanding cause and effect, anticipating edge cases and by clever design choices avoiding catastrophal (or sometimes just annoying) problems from the start.

    Low code is a dumb persons idea how to make programming easier — the kind that thinks memorizing all the weird letters and signs is what makes programming hard. The result will be that you will have non-programmers learn how to become programmers by failure — in production — on the job.

    I always welcome things that bring complex system interactions closer to learners. But it comes with considerable risk : )

  • by kkfx on 12/30/23, 10:58 PM

    IMVHO the "low code" environment have a name: end-user programming. The thing the entire entire industry have done it's best to destroy it after Xerox, Symbolics.

    The rest is the nth failed tentative to makes users jailed by ignorance selling the idea people can do thing without knowing things. It will fail like any other tentative done before.

  • by ivix on 12/31/23, 5:50 PM

    The opinions of developers about low code solutions are not very relevant.

    Low/no code solutions exist for when there isn't enough time or budget for a developer created solution, which is to say, pretty much all always. In the real world of business problems, almost nobody has access to a professional developer.

  • by pylua on 12/31/23, 2:23 AM

    Low code has been used for decades successfully. Think about ladder logic and scada systems. I always find this missing from these discussions.

    The main point is it has its place — and choosing when and where to use it is critical.

  • by rikroots on 12/31/23, 11:22 AM

    My low-code horror story contribution. Big Important Company decided to develop some in-house learning courses for their Marketing and Sales folks. They used a trendy-for-the-time low-code learning course creation software package to develop the courses, and a different piece of software to deliver it to staff on their on-site intranet.

    A few years go by. Someone in Big Important Company decides the courses need updating. Work ends on my desk as my bosses have the contract to maintain various other bits of BIC's creaking self-hosted intranet. I ask questions like "What software did BIC use to develop the courses?", and "can we charge BIC the cost of getting the software so I can do the work?" Of course, the answers are all along the lines of: no.

    So all I have to work with is an extensive set of hefty change requirements to the courses, and a SCORM package downloaded from BIC's intranet. A huge amount of learning (how to manually edit SCORM packages) and frustration (how to test changes to SCORM packages), and a few months of time when I could've been doing something better without deadlines harassment ... I completed the work. Which I wasn't allowed to test on BIC's intranet servers for "security". So I just uploaded the new SCORM package to their production servers and went on 2 weeks leave.

  • by nextworddev on 12/31/23, 12:25 AM

    I’ll go against the grain and say low code will eat software engineering.

    But not the conventional low code platforms like web flow or retool or power apps.

    It will be AI native and built in a visual+conversational manner.

  • by bombcar on 12/31/23, 1:10 AM

    The most successful low code is Excel.
  • by jayd16 on 12/31/23, 4:49 AM

    A great example of a low code tool that works is Unreal Blueprints. Full games are made with blueprints. It's not for everyone and it doesn't support text diff but it plays well enough with source control and other tooling.
  • by shermantanktop on 12/31/23, 1:18 AM

    From what I can tell, the market for these low-code tools is as much non-tech managers as it is the actual users. Slick demos go a long way to convincing people who own budgets and are tired of expensive engineering salaries.

    Which I can understand, because engineers are expensive and behave in ways that are unintuitive for non-tech people.

    But I fear “generative AI coding tools” appeals to the same people for the same reasons, leading to the same results.

  • by bazoom42 on 12/31/23, 1:11 PM

    Python is low-code compared to assembler. SQL is low-code.

    Much discussion around low-code (and no-code) miss that it is just abstraction. The question is not if we should use abstractions or not, but what constiutes good and bad abstractions.

  • by somat on 12/31/23, 2:31 AM

    is "low-code" this generations version of "4gl"?

    The only 4gl I know of that held the test of time was SQL. Every other one ended up being an embarrassing wart of "technical dept". The same could be said of most "enterprise software". For them that don't know enterprise software is code for "It's 70% done and we will charge well to finish it for you"

  • by lovasoa on 12/31/23, 11:49 AM

    I make a SQL-only website builder (SQLPage) that could be qualified as low code. I think all the points mentioned are valid, but some of them are easy to work around:

    > They wanted truly custom functionality that the low-code solution could not handle.

    It's important that the low-code solution has an escape hatch, or a way to to interact with external "high-code" APIs. In sqlpage, we have sqlpage.exec

    > They implemented a bunch of custom functionality in a product-specific or even proprietary language and now their pool of potential developer talent is tiny.

    I agree that low-code makes sense only if the low code is in a standard, popular language. In SQLPage, it's all just SQL.

    > Upgrades to the low-code platform would break their custom implementation.

    This is a true problem. The low-code solution really has to be careful with updates.

    > The underlying database structure was an absolute mess, especially after a bunch of incremental modifications

    This! Most low-code tools take your data hostage. You shouldn't use them. In SQLPage, we add a layer on top of a database that you still fully control.

  • by arey_abhishek on 12/31/23, 4:01 PM

    I'm a founder of Appsmith, a well-known open-source low-code platform. We offer an alternative to tools like Outsystems, Retool, and PowerApps. I often meet people who share the skepticism about low-code seen in this post.

    It's crucial to understand the advantages of low-code for specific situations, especially in developing internal applications. These tools, often neglected due to limited resources or developer disinterest, can be rapidly and effectively created with low-code solutions. Low-code excels in scenarios where internal teams are overwhelmed and business users face long waits for features. Although it's not a cure-all, low-code is highly effective for certain tasks where speed and ease are key, despite sometimes facing limitations in customization.

    Some modern low code tools are also evolving to be closer to web frameworks. Plasmic is one my favourite examples of this.

  • by jbsmith1 on 12/31/23, 12:21 AM

    I think the point are valid but it comes back to a much simpler idea - what’s the right tool for the job. Figure out what you want to do then find the right level of abstraction to get it done. And salespeople are one data point, generally not to be relied upon. Or have I over simplified?
  • by peteforde on 12/30/23, 11:37 PM

    My personal view is that you're right to be skeptical, but perhaps not for the reasons you mention.

    I think that GPT-4 today is good enough to replace about 80% of programmers in the right hands. Put differently: we probably don't need bootcamp grads anymore. The folks who keep their jobs are the ones who intuitively grasp what needs to be done, how to break that ask down into iterative tasks, and how to word those tasks as prompts.

    Instead of scrambling to replace application stacks with layers of dumbed down abstractions, we are actually replacing the less experienced people working with application stacks.

    Dramatically better outcome for everyone but the people who thought they could take a bootcamp and create generational wealth.

  • by merelysounds on 12/31/23, 9:21 AM

    I wish the author named the low code tools. There's so many of them, they can be very different, and offer different levels of control. Having specific examples would help me get a better understanding. Since this is in MS context, I'm guessing Power Apps; description: https://uk.pcmag.com/cloud-services/89779/microsoft-powerapp... (2018).
  • by outlore on 12/31/23, 1:39 AM

    My interpretation of low-code includes headless CMSes, authentication as a service with pre-built components e.g. Clerk, plug-and-play collaboration e.g. Liveblocks. Those services save me a lot of time without having to worry about underlying implementation, and they also have some nice escape hatches.

    However, I share the author's skepticism about other low-code tools that involve a lot of UI/visual flow building with limited insight into how the black box works and what its constraints are.

  • by j45 on 12/30/23, 10:53 PM

    Less-code might be more realistic than low or no code. Hard not to have platform lockin with zero or low code.

    As the other comment said, less code tools for developers can be quite helpful.

  • by b33j0r on 12/31/23, 4:55 AM

    I love that this piece talks about the database. That is a problem I focus on. It’s API versioning all over again, and we never _actually_ solved that before we moved forward.

    I see this being our reality anyway. In many cases; not all.

    You can’t ask the LLM, nor a hypothetical AGI, nor anything, to build the aqueducts. Especially if you don’t know you need them. And they won’t solve the problem if neither a human nor an AI know what the problems actually are. Let’s make em out of lead!

    And they definitely won’t waste tokens on a postgres rollback migration unless we make that essential in the acceptance criteria.

    An LLM is all of our ideas, in a search UI that dang nearly passes the turing test. (That says more about us than the state of AI technology.)

    We are pattern machines in many ways, and many things we code are even lovingly called Software Patterns. The promise is not that software engineering goes away, it’s that we’ll all be managers for a while.

    Low-code, to me, is different from “statistically generated solutions that pass the requirements.” Genetic programming was an idea for decades, but that is also different from stuff that combines yours and my most relevant github commits into a 90% best guess. Not random, hoping for the best, in this regime. Educated guess.

  • by ejb999 on 12/31/23, 12:14 PM

    Much earlier in my career I built an entire business converting MS-Access database/forms solutions that were created by non-developers/end-users to solve a particular problem without involving IT folks, most of them 'sort-of' worked, but only up until the point things got complicated, or the requirements changed, or it needed to scale and nobody (the non-developers) could figure out how or even realized their entire foundation was built on quicksand. (I would generally convert them to true .net client/server applications with MS-SQL Server as the back-end or web front-ends with a proper database on the back).

    I suspect there is another opportunity coming along to make some good money bailing out folks who built 'no code' solutions that their business now depends on, but no longer meets the needs and has become to fragmented and complicated to tinker with and difficult to change, scale or adapt.

    That said, I am not opposed to no-code - it is a good and often inexpensive way to solve some problems, or at least get a POC working - many of those solutions may never need to scale or adapt.

    ...but some will, and thus the coming opportunity.

  • by cirgue on 12/30/23, 11:01 PM

    Low-code is just good libraries and good frameworks. My hot take is that anything “low code” beyond that is just an aggressively user-hostile config interface.
  • by jauntywundrkind on 12/30/23, 11:56 PM

    I feel like we are kind of trapped between simplistically polar notions. There's coding as we know it - complex & interwovenines of code - and there's this low code ideology.

    Any area of code itself is usually fairly boring & irrelevant. It's systems that accrue mass & complexity. Low code systems sound good by demonizing the weird symbols & incantations that make up the lower level fo coding, but it's this systematic complexity, it's the aggregation of many things happening that makes things opaque & difficult.

    Finding patterns to suss out broader-scale understanding is what really tempts me. I don't have super strong vision here, but I'm interested in projects like Node-RED, or even to a degree works like jBPM. Both kind of speak to going beyond coding, but I think the valuable thing here is really that they are assembly toolkits for modules of code & data. They are just examples and not even good ones but this quest, to me, to get to the next levels of computing, is to make clearer portraits of what happens, that either are above to code level, or where the code's running creates higher level observability surfaces.

    Code is so easy to demonize. The layering is often so implicit, handlers and DAOs and routes in different layers maybe but with no clear overview layer. Figuring out how to make legible these systems, without diving deep into the code, is what, I think, will make systems less intimidating & will serve as a bridge to make businessfolk and novides better able to intuitively grasp & meddle with these these artificed put before them, with courage. And making people less afraid of the machine, more interested in peeking in and meddling, that's where so much hope lies.

  • by hm-nah on 12/31/23, 5:46 PM

    Low-code platforms like PowerApps and PowerAutomate are great LEARNING and PROTOTYPING tools.

    Give an analyst with some technical acumen PowerApps and ask them to mock up requirements, and after awhile, they can produce a click-through prototype.

    That same analyst will likely improve their UI, API, JSON and SQL skills in the meantime.

    Low-code tools are also good for digitizing CRUD forms.

    Much beyond that and things get very proprietary, very fast.

  • by danjc on 12/31/23, 6:34 AM

    A few comments here about lack of version control being a problem generally with low code.

    We're a low code platform (app integration) and what's worked well for us is to have the platform store the generated workflow design (yaml/json) in source control.

    Additionally, we map environments on to source control branches so merging to a branch is what promotes a design version to qa or prod.

  • by tdeck on 12/31/23, 3:00 AM

    The term "low-code" is in itself a compromise based on the very issue the author is identifying. The old term was "no-code", but too many people needed custom functionality.

    Aside: The contrast on this website is really borderline. Extremely light gray, low font weight, white background. I thought we were past that particular trend in web design.

  • by smitty1e on 12/30/23, 11:02 PM

    Frameworks at all levels of _aaS are great, given the stipulation that your greenfield requirements are completely boring.

    This falls apart when:

    * legacy systems/data must be integrated

    * the requirements get interesting

    There is just no substitute for a good working understanding of the tools, and that means staff that can go past the low-code facade when needful.

  • by skeeter2020 on 12/31/23, 2:47 PM

    >> A lot of low-code solutions seem to hit about 80% of a company’s requirement.

    The 80% is not evenly distributed. Marketing might have problems that are 95% satisfied by low-code and they can change their process for the last 5%, or accounting can do 100% of a 50% subset of their job with low-code. Logistics can't really do any of their job so they steer clear.

    All the other points are related to trying to satisfy 100% of a custom problem with a generic low code framework. Don't do that.

    You run into all of these problems with custom code solutions too; The debate should be about investment vs. control, of which no/low/custom coding is a component but not the differentiator as presented here.

  • by rubin55 on 12/31/23, 4:15 PM

    Very recognizable.. I've done a few projects at large-scale government and retail where me and team have been brought in after-the fact to fix "performance" and tech-debt issues with these things. In particular these platforms: "Be Informed" and "MuleSoft AnyPoint".

    The story is exactly like the fine article mentions. Heavy reliance on proprietary stuff making the organization heavily reliant on very expensive consultants to get stuff done, no way to sanely version things..

    I now go out of my way to avoid working rescue jobs like these, unless the client is actively migrating away from them.

  • by tyingq on 12/31/23, 3:03 PM

    It's a hard topic to discuss sometimes because low-code means different things to different people. There's a space, for example, where it mostly just replaces spreadsheets on a shared drive (or being emailed around). And there's also "mostly web forms with a little bit of workflow and approval hierarchy". Then "simple-ish database with reasonable basic CRUD gui". The various vendors usually start with one of those, then feature creep into more customization support, including code that's invariably hobbled in some way that makes some tasks impossible.
  • by hacknews20 on 1/1/24, 1:15 AM

    I have been a proponent of no-code low-code and in the last year or so your second point has been the biggest problem we encountered on projects “…developer talent is tiny.” The talent is now more expensive than code developers. However, the net benefit for most web apps is still there, that once you established the “platform” i.e main aspects of your “thing” the low maintenance burden starts paying big dividends. With rapid prototyping we do traditional dev, then transition web apps to no-code because the burden is in the through life aspects and no-code wins there.
  • by redleader55 on 12/31/23, 10:40 AM

    Unpopular opinion: low-code always existed. Examples: stored procedures, Oracle/MSSQL, SharePoint, SAP, "Cloud"(in the dumb, use-these-20-services-to-make -your-app, not in the IaaS sense), Docker, etc
  • by 29athrowaway on 12/31/23, 5:32 AM

    The problem of low code is vendor locking.
  • by intrasight on 1/1/24, 3:33 AM

    >Upgrades to the low-code platform would break their custom implementation.

    Likewise an upgrade would break our custom SAP implementation. Most all big ticket business apps are "low code" and suffer this problem.

    >The underlying database structure was an absolute mess, especially after a bunch of incremental modifications.

    Ditto with all enterprise software I have used.

    All big businesses depend on low code enterprise apps. For that matter, a SQL database is a low-code platform.

  • by nickfromseattle on 12/31/23, 6:35 PM

    I used a low code platform to ship a product that has generated $170,000.

    It can't do everything we'd like, but there is always a workaround that is "good enough".

  • by andrewstuart on 12/31/23, 4:03 AM

    I spent years building tons of big applications in the worlds first true low code environment - Lotus Notes.

    Sure it had limitations but you could get an awful lot done within those limitations.

  • by kukkeliskuu on 12/31/23, 9:42 AM

    The expensive part of software development is not coding, but figuring out what needs to be done. It appears people are trying to optimize the less important thing.
  • by Poliorcetes on 12/31/23, 9:16 PM

    I don't think anyone mentioned matlab's simulink or it's free clone, scilab xcos, which are more targeted at modeling electronic and mecanical systems, solving differential equations, that sort of thing, I have fond memories of them from my classes, but never got to use them in the workplace

    then there is also labview, the programs for the equipment were mostly made by former students in that program

    low-code is old as dirt by now

  • by alserio on 12/31/23, 10:45 AM

    I've used AWS Amplify in the last two years. As the others low-code tools it's fine until it isn't, then it's a nightmare. But with time they've started to allow for more and more escape hatches. They've recently announced a V2 marketed not as low code but as code first, built on CDK. They've probably found that most of their users are devs and code is the right interface for devs.
  • by astrobe_ on 12/31/23, 5:15 PM

    To me that's 4th generation languages, RAD and such, with new cloths. They have their uses, but they also have the same drawbacks.
  • by zzzeek on 12/31/23, 2:04 AM

    didnt know WTF "low code" was.

    googled.

    OH, it's those stupid visual IDEs that pretend you can connect blocks and lines together and get a program.

    "I would get clients who had been drawn to low-code all the time for the promise of fast development time and low maintenance cost."

    Oh I'd not go anywhere near silly "clients" like that. Who wants to fight with that level of dumb

  • by gregd on 12/31/23, 3:11 PM

    Having worked in PowerApps the last year and integrating a rest API in Azure that then updates Dataverse, low code is just short for abstraction layers. As a developer, this irritates the hell out of me.

    Sure, you can view your Dataverse database in SSMS, but it's read only and you get no autocomplete.

    And don't even get me started on XRM Toolbox.

  • by EntICOnc on 1/1/24, 1:32 PM

    a research done by a Portuguese university on "Preparing Students for the Software Industry New Demands" and as documented in

    https://www.i-programmer.info/professional-programmer/103-i-...

    found that " that low code platforms, while allowing for fast learning development processes, enabling a more systemic view of software projects and providing easy integration with other application endpoints, can't escape good Software Engineering, as low code's inherent abstraction requires following good development practices"

    So no matter,you have to a developer and not just citizen developer

  • by talldatethrow on 12/31/23, 12:02 AM

    I'm sure this has been asked a thousand times, but does something like Visual Basic exist for the web?
  • by FrustratedMonky on 12/31/23, 4:49 PM

    Isn't it a continual upshifting of concepts.

    C is the low code version of Assembly

    Python is low code version of C

    Some visual basic like thing is low code Python

    WordPress

    a million other web tools

    Etc...

    But in the end, someone with a 'programmer' mindset, that can understand problem solving, is needed to make it work, at whatever level we are at.

  • by prakashn27 on 12/31/23, 4:24 AM

    Low-code or no-code is okay with small apps. But as complexity increases, you won’t have fine control or scalability needed using these tools.

    Low code may be better for mvp. Once you have enough revenue moving to a code based solution will be better in long run.

  • by djangelic on 12/30/23, 11:04 PM

    I use n8n.io hosted locally to abstract away authentication when building complex api integration mvps that I use to show as possible and working, and then that gets sent to engineering to convert to something that follows better best practices.
  • by Poliorcetes on 12/31/23, 12:42 PM

    maybe low code is the next step after text- based programming?

    There is a comparison here to be made with ascii graphics and they could be quite charming, dwarf fortress for example looks great but there is only so much you can do with text

    some languages it seems to me are running out of symbols and their meaning is not obvious at the glance, for example what is the meaning of ', @, $, !: in diffent languages? why should it have that meaning

    in the end code is much more logical and better understood if it is a diagram of blocks, after all that what code is supposed to represent, a series of decisions that lead to a desired state in the data

  • by hackerdad on 12/31/23, 9:16 AM

    low code should be a result not the goal. Let me explain: When you choose the right platform to build the applications, the platform should take care of gluing services, adding visualization, handle common concerns such as reliability, ease of debugging, documentation (with the visualization) etc. This is an often overlooked aspect of application platform that otherwise takes the bulk of the time to create apps.

    tools focusing in low-code does not solve them and the tool that solves typically don't market them as low-code - because the are not. low code comes as a result.

  • by zubairq on 12/31/23, 6:37 AM

    This post about low code seems to be about companies using the wrong tool for the job.

    I would be interested to know which low code tools the blog author has actually used, and what they see as the viable alternatives are?

  • by hiAndrewQuinn on 12/31/23, 12:11 PM

    Python is already low code enough with the use of GPT-4, I'm good.
  • by maccard on 12/31/23, 1:31 AM

    Low code is what IBM, SAP, Salesforce have sold as "the solution" for the past few decades, but packaged in a different way. This is no farther along than we were 20 years ago IMO.
  • by anonymous344 on 12/31/23, 12:28 PM

    was really interested about MS low code platform, but then... it's a mess glued on top of another mess(o365), glued on top of another mess (azure)

    what seemed to be true that you can easily build a gui that will break in the next months and only have terrible default ui-elements, like calendar selector you cannot really prevent going past time or 99 other akward user interface gimmicks.

    why should company try to save 2000$ on development, but then loose 10-100$ every single day with bad usability?

  • by nixpulvis on 12/30/23, 11:01 PM

    The gap between low-code and AI assistance is narrow and deep.
  • by cassepipe on 12/31/23, 1:35 AM

    ...said the carpenter to the Ikea manager.

    Wordpress, Excel ?

  • by lerpgame on 12/31/23, 3:27 PM

    actually, software itself and any sort of interface/automation in general is really just an interim solution before transition to just having real-time access to scalable raw intelligence and hyper awareness through wetware.
  • by uraura on 12/31/23, 12:32 AM

    Database mess is unavoidable because it needs to support different kind of customers.
  • by noobermin on 12/31/23, 9:33 AM

    If you generalise to llm gened code in the hands of non developers then...
  • by Poliorcetes on 12/31/23, 3:18 PM

    one thing that seems to me is that there are no open source low code platform, that is as easy to get as python or java

    is there any of them out there?

    all i see is proprietary software with hefty prices

  • by zby on 12/31/23, 11:29 AM

    Is there any good definition of low code and no code solutions?
  • by ChrisMarshallNY on 12/31/23, 12:19 AM

    Define "Low Code."

    Is it a programming language, a framework, a compiler/linker/IDL, etc.?

    I mean, there are some that could argue that C is "low code," because it isn't Machine Code.

    I started in Machine Code, and, these days, write mostly in Swift. Swift seems like "low code," compared to Machine Code.

    I assume that they are talking about things like Qt, React Native, Xamarin, Electron, or Ionic (You can tell that I develop host apps).

    I write native Apple, using established Interface Builder SDKs, mainly because of the first point. I like to have 100%, and Highest Common Denominator approaches don't allow that.

    Also, I find that upgrading can be a problem. I have been in the position of not being able to support the latest OS, because a library hadn't been updated, yet.

  • by syndicatedjelly on 1/1/24, 1:30 AM

    At my last company, I inherited the reins as custodian of a low-code application. Except this low-code application was designed in the early 2000s. Back then, "low-code" still involved HTML, CSS, Javascript, and a database scripting language - so I at least FELT like a programmer. That job paid a round-robin of 10 developers in 3 different locations over the course of ten years. In total, it probably took a total of 30 person-years to develop and maintain the software in its lifetime at the company.

    This is on top of the $1 million/year licensing fee for the proprietary tool in all its own glory. This included a:

    - proprietary, closed-source database

    - proprietary, closed-source scripting language

    - proprietary, closed-source "CI/CD" (more like, barf out some arbitrary, insecure mash of HTML, CSS, and Javascript into the browser)

    We spent a significant amount of time trying to peer under the hood. Except, it was more like we were trying to rip the head off the cylinder block with a bunch of vice grips, and then safely put it back together. I cringe thinking back to the tactics we used to "research" - it was like hitting an engine with a hammer and trying to figure out what it does. We came up with all sorts of theories about hammers, about sounds that engines make when hit with hammers. But it was a complete waste of time. That's not how you study an engine. No transferable skills are learned in the process.

    I try to make sense of my time there - I'm only a few years removed from that job still. I sometimes feel embarrassed that I didn't get out of there sooner. Why did it take me so long to figure out my software career would go nowhere if I worked on stuff like that?

    I'm in a much better place now, working on good software in real languages with smart people. My skills have grown unbelievably in just a short space of time.

    ===

    Low-code applications are worse than what everyone is saying. They are career-destroyers. It's okay to dip your toes in the water. But it's too easy to become reliant. You'll find that database details, CI/CD, even version control are handled by some mythical low-code tools that you don't understand (and can't configure).

    Work on software where the company is in full control of every line of business logic they own. You might own only one small slice of the software, but it's so much easier to sleep at night knowing that every bite of the pie can be fine-tuned according to SOMEONE at the company.

  • by dventimi on 12/30/23, 11:48 PM

    I'm skeptical of code. Code is needed to create operating systems, database engines, game engines, network servers, graphics and plotting libraries, and other tools that are typically used by software engineers but not end users, and yet most of us are not creating these tools. Most of us are using these tools to serve end users. This isn't a demanding task and it doesn't demand much code. Maybe in the UI, but for the vaunted "business logic"? Please. You don't need reams of code in a general purpose programming language to provide business logic.
  • by brucenanner on 12/31/23, 4:54 AM

    Aren’t modern day programming languages low-code relative to assembly and/or binary? It’s all relative to the previous layer.
  • by iamleppert on 12/31/23, 4:43 PM

    I am for whatever tool I can sell to frustrated executives for a handsome commission and be half way on to my next job by the time they figure out it’s pure, 100% snake oil.