The Many Flavors of “Low-Code”
infoq.com
infoq.com
I don't see writing code as being the main value I deliver. Instead, I see that value as being the ability to take high level and often vague business requirements and turn them into something a computer can execute.
Sometimes, I'll use tools like Node RED and Unreal Blueprints and can see the value their kind of approach would bring to application development. I write code where I need code, but can define data flow through the application visually by connecting components together. I find that this helps me understand at a glance an applications inputs, data flow, and outputs. I'm not sure how well this would actually scale, though. It's not like this approach hasn't been tried over and over for the past few decades.
I'm not sure either, but i remember reading about hospital management software for the middle east implemented using low-code.
So maybe, the current software ecosystem, which is brilliant for innovation, finally found the trick ?
Low code is, IMO, at it's best when it's restricting the solution set to a small category of problem, the more specific the better, and the more limited the the low code is at it's ability to interact with that problem the better as well - I've always ideally viewed CSS as a sort of low code setup like this, the backend will render some complex tags in a reliable format - then the UI folks can go through and mark it up as needed to make it pretty... CSS has, I think, failed to deliver on this goal at this point - UI/UX has always ended up needing to rework the markdown in some way to make things mesh well - and with react it's losing even more power, but I was hopeful about it for a time.
[1] /s, just to be clear.
The end of the minicomputer era (1981-1986) gave us rules engines and expert systems for minicomputers, and spreadsheets for PCs. The end of the PC era (1995-2000) gave us Visual Basic and Delphi for GUIs and HTML, Flash, and "View Source" for the web. The end of Web 2.0 (2007-2009) gave us website builders and Flash game builders for the web and Interface Builder for the iPhone. We're reaching the end of the web/mobile/cloud era, seeing a lot of those domains being commoditized, and yet blockchains still feature mobile GUI wallets and cut & paste token contracts.
In between transitions, when the next computing paradigm is growing fast, you actually need to know how to code. Performance gets pretty important when people actually start using your product, features need to be pumped out before the underlying platform is ready, and best practices aren't yet well-known.
Depends on your product. Facebook and Twitter require a mass audience to be viable, but not all businesses rely on the "network effect" for success. There are a lot of niches with a small audience.
In the middle of the technology cycle, when the mainstream market is aware of the technology but sitting on the sidelines waiting for it to become useful and the infrastructure is just barely getting good enough that you can build high-quality consumer products, there's a mad land-grab to gobble up these giant markets before anyone else does. That's when coding ability is really crucial, because the infrastructure is not yet good enough that just anyone can build a product that's "good enough" for a mainstream market, but it's good enough that the really skilled, dedicated, and talented can.
And I hope you like testing in real environment (SIT or Prod, sometimes you get to choose!) as they are almost always impossible to unit test.
For a sensible perspective on low code, as always, Mr Fowler has some well thought out advice: https://martinfowler.com/bliki/BusinessReadableDSL.html
I've had to manipulate actual XML maybe once in a year; and usually because of an insane legacy DB schema. I'm sure it happens but I don't see it much. In fact XML isn't a huge factor. You know it's there, but you don't really care.
Also they aren't "always Eclipse based", lately they are browser-based, which will irritate people just as much (but the web is something more of a "growth market" than Java IDEs).
Modern platforms have built-in testing suites. I have seen individual rules or UIs with hundreds of tests. (Process models remain hard to test, though, much to everyone's frustration)
The plugin problem is real, even in modern platforms. That said, pick any platform - the web browser, an IDE, even a game engine. For a lot of users, entirely dependent on plugins. It's just part of life.
The browser based ones also drive you crazy, at least you can right click to find all the hidden configs on the IDEs...
I agree plugins are a real problem.
The best frameworks are kits of decomposable or separable parts that make it easy to tune to your org, including throwing out parts your org doesn't need. Trim trim trim.
Do keep a library of handy add-ons, but don't pre-gum-up your stack by including them by default.
The downside of this approach is that you must know the organization fairly well.
The biggest problem is their price and their nature. Many of them are really expensive. And many of them is closed source, which is pretty ironic because everyone is open source nowadays. Except it can be dominate in that area, I don’t think it is valued for a professional developer,
The customisation is poor if you want to do something that is is not designed for, and maintaining is also a nightmare if it is written by a non-disciplined developer.
For quick prototype and you can’t hire skilled developer, yes. But don’t expect you can do too much with that tool and with that person. The biggest bottleneck in software developer is the people not the tech.
Lots of choices in the closed source space. Salesforce, Airtable, Quickbase, Google AppMaker, Knack, Zoho, etc.
Unsure how that combines with open source...
You don't have to focus much on "HOW to get it done" but on "WHAT needs to be delivered"
Here is the list and comparison of some of the best low code platforms out there in the industry
- Zoho Creator - Appian - Microsoft PowerApps - Mendix - OutSystems - Google App Maker - Quick Base - TrackVia - Salesforce App Cloud - Nintex Workflow Cloud
https://www.pcmag.com/roundup/353252/the-best-low-code-devel...
I've been putting a lot of thought into low-code, and what the right escape hatches are to allow developers to use a tool like mine without feeling constrained. That's proving to be tough to balance though!
that said, we're a long way away from feeding a copy of the latest c++ standard into a machine and getting a working compiler out of the other end. no matter how well written, it is still quite a feat to turn a human-language specification into executable code. even harder is to turn a loosely defined set of requirements (often gathered from people who don't really know what they want in the first place) into a solid spec in the first place. perhaps this is the hubris you are speaking of, but I think most developers who are more than brainless code monkeys are quite a ways away from losing their jobs.