Low code sounds like the worst of all worlds - non developers can’t do shit in it bc they don’t write code, and developers would hate the guts of it bc it’s all using some custom dsl with unknown quirks and limitations. And management will be wondering what are they paying for in the end if all these people can’t <do that damn one weird thing that I got asked about in some customer demo>, and then would fire everyone and scrap the tool.
In my experience, the best way to have a "low-code" environment is to use a high-level language with rich facilities to build custom abstractions, and to use those facilities to build a DSL that domain experts can program in their business logic.<p>And I'm not just trying to say "use lisp". I've seen it done in Erlang (for example). At the end of the day, it doesn't matter to much the specific language.<p>I'm not sure what concrete examples the author has in mind for "low-code" or "MDD" solutions, so this criticism may be irrelevant, however I will say that drag-and-drop GUI tools for building business logic tend to fail for the following reasons:<p>* They have poor version control integration<p>* They have limited facility for creating new abstractions, which results in a lot of duplication<p>* the amount of inherent complexity that can be tackled with these tools is surprisingly low
I love low-code/no-code solutions because they inevitbly devolve into something I can charge $$$$ to clean up<p>The problem with software engineering is not the code.
Equating MDD with low/no-code feels like classic tool tunnel vision, with confusion on one particular notion of How for the broader Who/What/Why.<p>-- Who/What/Why: From a design perspective, Low-Code means productivity for someone like a BI Analyst who will jump crazy hoops to stay in a UI + SQL and never go deeper, while No-Code is not-even-SQL. It's not even that clear cut in practice: Even if a no-code UI allows visual coding, many users will still consider that "someone else's job" for most of their work.<p>-- How: Whether it's MDD, neural nets, program synthesis, or the latest VC-fueled JS-is-the-new-VB dumpster fire ready to implode, it's the devs who care, not the user.<p>Interestingly, as soon as you appreciate the constraints of the Who/What/Why, new implementation dimensions open up for the How. We're picking our own pieces for the How part of no/low-code (rejected the MDD + JS approaches), but IMO just as important, working through design considerations for the social & collaborative nature of code, esp. as it enters team/org/OSS/etc. scenarios. It's sort of like, all social networks are basically the same from 10K ft, but it's not easy getting the design decision right of how 140 characters for dense broadcast x AI-mediated voting will define a successful niche like 'community newsfeed for between tasks on your laptop + on-the-go'.<p>Edit: Historical note on the How - MDD is from a fun era when folks were figuring out domain-specific workbench tools and what becomes possible with them. While some of that is continuing even today (esp. in Europe!), most R&D here has largely advanced to program synthesis (esp. via SAT/SMT), and much more nascent, via neural nets. That's far out enough that I can count on my fingers how many startups are here, vs more VB/Excel/Hypercard-in-JS
I don't think they're the same, but I do think low-code has become synonymous with incredibly special-purpose tools that barely resemble programming.<p>We've been building Encore [1] to improve on this. It's a backend framework that simplifies not only how you write code, but also integrates with your cloud provider and automates the infrastructure management.<p>We're still early, so feedback appreciated!<p>[1] <a href="https://encore.dev" rel="nofollow">https://encore.dev</a>
I work with low code solutions and they are not model driven, they are just drag and drop GUI builders with some workflow capabilities. Pega is low code, Appian is low code, but they all need code in the end to do clever stuff. Typical Appian team is a couple of BAs and twice as many Java developers.
"The world needs more {model-based,model-driven,low-code} software engineering", cried the dumbass sitting in front of Matlab screwing up a signed comparison. <i>sigh</i>
Words meaning often depends on implicit context. Low-code marketing is about allowing non-coder to do programming, whereas model driven is the old dream of backend developers to generate code from a model. Some editors who were in this business since a dozen years profit from the trend to wear the low-code trousers of course :)<p>As for me I don't care I'm building a meta-tool (so not yet another low-code tool) which will help use any traditional programming languages, frameworks or EXISTING OR FUTURE low-code, MDD because I'm agnostic to technologies, what matters to me is to get the job done both in quality and productivity.<p>Not there yet I'm in proof of concept phase but I'm now more sure it will fullfill its promise since it's built by eating its own dog food.
They are the same, if you ignore the VC-driven buzzword use of it...there are far more products that have nothing to do with developing applications being called low-code than there are actual development platforms.<p>Basically any solution that gives you a decent amount of configuration options is increasing falling under the low-code banner.
TLDR: Yes, or better said, low-code is a "style of" model-driven development.<p>But in a "brilliant marketing twist" (that we should learn from) they focus on the message on something developers will 1 - better understand and 2 - feel more familiar to them.<p>It's much easier to understand the concept of low-code (I still code if I want but less) than something more abstract as "model-driven development"
> This is a short position paper and should be read and interpreted as such. 2 – It is probably controversial. If you feel offended when reading it, I did a good job<p>lmao, no one's getting offended over a discussion this benign.
... gotta admit, I've never heard of "model-driven" in this sense. Where does that name come from? It seems pretty ambiguous / confusing to me.<p>CASE and "low-code" are fairly intent-clear at least.
MDD is like overengineered OSI, while Low-Code is like pragmatic TCP/IP.<p>From my experience, vendors remain the same but use the different names to go with the marketing appetite.
Check out <a href="http://journeyapps.com" rel="nofollow">http://journeyapps.com</a> for another perspective. They call it "Ultra high-productivity, yet code-centric."