Home SOFTWAREKraj Low-Code/No-Code bajke: Zašto su za ozbiljne inženjere ove platforme i dalje samo skupe igračke

Kraj Low-Code/No-Code bajke: Zašto su za ozbiljne inženjere ove platforme i dalje samo skupe igračke

od itn
Low-Code No-Code ograničenja

Godinama nam prodaju san. Marketing mašinerija giganata poput Microsofta (Power Platform), Salesforce-a i stotina manjih startapa vrišti istu poruku: „Programiranje je mrtvo! Živeo Citizen Developer!“ Obećanje je bilo zavodljivo – demokratizacija razvoja softvera, gde svaka sekretarica može da napravi CRM, a svaki marketing menadžer aplikaciju za praćenje kampanja, sve to prevlačenjem blokova na ekranu (drag-and-drop), bez ijedne linije koda.

Međutim, kako se prašina sleže i hype (pomama) polako jenjava, realnost počinje da grize. U rovovima pravog softverskog inženjerstva, među pro-code developerima koji grade sisteme od kojih zavise banke, bolnice i globalne platforme, Low-Code/No-Code (LCNC) alati se i dalje posmatraju sa mešavinom prezira i frustracije. Ne kao alat koji će ih zameniti, već kao generator tehničkog duga (technical debt) koji će na kraju oni morati da čiste.

Da li je LCNC revolucija zapravo bila samo evolucija Excel tabela na steroidima? Zašto, uprkos milijardama dolara investicija, ovi alati i dalje pucaju po šavovima čim projekat postane imalo kompleksan? Ovo je brutalna istina o ograničenjima „programiranja bez koda“.

Low-Code No-Code ograničenja1. Iluzija jednostavnosti i „Zid od 80%“

Osnovna premisa LCNC platformi je brzina. „Napravite aplikaciju 10 puta brže!“ je standardni slogan. I zaista, za prvih 80% funkcionalnosti, ovo je tačno. Treba vam forma za unos podataka? Drag. Treba vam tabela za prikaz? Drop. Treba vam dugme „Pošalji“? Click. Gotovo za popodne.

Ali softverski inženjering ne živi u prvih 80%. On živi u onih poslednjih 20% – u ivičnim slučajevima (edge cases), u optimizaciji performansi, u kompleksnoj poslovnoj logici i integracijama koje nisu „iz kutije“ (out-of-the-box).

Kada u Low-Code alatu udarite u zid – a udarićete ga čim klijent traži nešto što nije predviđeno u paleti komponenti – brzina razvoja pada na nulu. Developer tada mora da piše „pravi kod“ da bi zaobišao ograničenja platforme, često koristeći nezgrapne mehanizme za ubacivanje JavaScript-a ili Python-a tamo gde im nije mesto. Rezultat je „Frankenštajn“ aplikacija: mešavina vizuelnih blokova i „hakovanog“ koda koju je nemoguće održavati.

Primer iz prakse:

Zamislimo kompaniju koja koristi popularni no-code alat za internu bazu zaposlenih. Sve radi savršeno dok baza ima 500 ljudi. Kada kompanija poraste na 50.000 zaposlenih, a HR zatraži kompleksan izveštaj koji ukršta podatke o platama, bolovanjima i performansama sa eksternim API-jem banke, no-code aplikacija se „guši“. Upiti traju minutima, interfejs se zamrzava. Rešenje? „Izvezite u Excel ili zovite pravi tim da napiše mikroservis.“

Low-Code No-Code ograničenja2. Vendor Lock-in: Zlatni kavez iz kojeg nema izlaza

Ovo je možda najveći greh LCNC industrije. Kada pišete kod u Javi, Pythonu ili Go-u, taj kod je vaš. Možete ga pokrenuti na AWS-u, Azure-u, Google Cloudu ili na serveru u podrumu. Imate kontrolu.

Kada gradite na Low-Code platformi, vi ne posedujete svoju aplikaciju na isti način. Vi iznajmljujete „runtime“ (okruženje za izvršavanje). Vaša poslovna logika je zarobljena u vlasničkim formatima (XML, JSON ili binarni formati) koji su beskorisni van tog ekosistema.

Ako provajder platforme odluči da podigne cene za 300% (što se u SaaS svetu redovno dešava), ili ako odluči da ugasi podršku za određenu funkciju na koju se oslanjate, vi ste u njihovoj milosti. Migracija sa jedne Low-Code platforme na drugu, ili na „pravi“ kod, često znači ponovno pisanje aplikacije od nule.

Za ozbiljne arhitekte sistema, ovaj nivo rizika je neprihvatljiv. Zavisnost od treće strane za core business logiku je strateški košmar.

Low-Code No-Code ograničenja3. Performanse i Skalabilnost: Gde se gubi magija

Apstrakcija ima cenu, a ta cena se plaća resursima. Low-Code platforme dodaju debeo sloj interpretacije između vaše logike i mašine. Za jednostavne CRUD (Create, Read, Update, Delete) aplikacije, ovo je zanemarljivo. Ali za sisteme sa visokim prometom, kašnjenje (latency) se nagomilava.

Pro-code developeri provode sate optimizujući SQL upite, keširanje i asinhronu obradu podataka. U LCNC svetu, vi često nemate kontrolu nad tim kako se upit izvršava u pozadini. Generisani SQL kod je često neoptimalan, povlači previše podataka i guši bazu.

Kada aplikacija postane viralna ili se opterećenje poveća, LCNC platforme često nude samo jedno rešenje: „Platite skuplji paket za više resursa.“ Ne postoji mogućnost finog podešavanja performansi (fine-tuning) koju nudi tradicionalno programiranje.

Shadow IT4. Bezbednost i „Shadow IT“ fenomen

Jedan od glavnih argumenata prodaje LCNC alata je da oni omogućavaju „Shadow IT“ – praksu gde odeljenja (marketing, HR, prodaja) prave svoja rešenja mimo centralnog IT sektora. Iako ovo zvuči oslobađajuće za biznis, za CISO (Chief Information Security Officer) to je horor priča.

Kada „Mika iz računovodstva“ napravi aplikaciju koja obrađuje osetljive podatke klijenata, on verovatno ne razmišlja o:

  • SQL injekcijama

  • Cross-Site Scripting (XSS) ranjivostima

  • Pravilnom upravljanju pristupnim pravima (RBAC)

  • GDPR regulativi i enkripciji podataka

Low-Code platforme nude ugrađene bezbednosne mehanizme, ali oni su dobri samo onoliko koliko se pravilno konfigurišu. Demokratizacija razvoja znači i demokratizaciju bezbednosnih propusta. Profesionalni developeri su obučeni da razmišljaju o bezbednosti kao prioritetu (Security by Design); „građanski developeri“ (Citizen Developers) razmišljaju samo o tome da aplikacija „proradi“.

noćna mora verzionisanja5. Git, CI/CD i noćna mora verzionisanja

Moderni softverski razvoj počiva na verzionisanju koda (Version Control – Git), rigoroznom testiranju i automatizovanom postavljanju (Continuous Integration/Continuous Deployment – CI/CD). Ovo omogućava timovima od stotinu ljudi da rade na istom projektu bez da jedni drugima gaze po radu, i da se u slučaju greške sistem vrati na prethodno stanje u sekundi.

Većina LCNC platformi ima tragično lošu podršku za ove procese.

  • Kako uraditi code review (pregled koda) na vizuelnom dijagramu toka?

  • Kako spojiti (merge) izmene kada dva developera pomere isto dugme na ekranu?

  • Kako napisati unit testove za logiku koja je sakrivena iza „drag-and-drop“ interfejsa?

Iako platforme napreduju u ovom smeru, one i dalje kaskaju godinama za standardnim alatima kao što su GitHub, GitLab ili Jenkins. Za ozbiljan timski rad, nedostatak ovih alata čini LCNC neupotrebljivim za velike enterprise projekte.

BudućnostBudućnost: Simbioza, a ne zamena?

Da li ovo znači da su Low-Code i No-Code osuđeni na propast? Ne. Oni će ostati, ali će njihova uloga biti preciznije definisana.

Oni su savršeni za:

  1. Prototipovanje (MVP): Brza validacija ideje pre ulaganja u pravi razvoj.

  2. Interne alate: Jednostavne aplikacije za odobravanje odmora, naručivanje opreme ili interne ankete.

  3. Automatizaciju jednostavnih procesa: Povezivanje dva sistema (npr. Zapier ili Make) za prebacivanje podataka.

Međutim, ideja da će oni zameniti softverske inženjere u izgradnji core proizvoda je mrtva. Sa dolaskom generativne veštačke inteligencije (GenAI) i alata poput GitHub Copilot-a i ChatGPT-a, definicija „pisanja koda“ se menja.

Paradoksalno, AI je veća pretnja Low-Code platformama nego programerima. Ako mogu da kažem AI asistentu: „Napravi mi mikroservis u Pythonu koji radi to i to“, i dobijem čist, portabilan kod koji posedujem – zašto bih plaćao skupu licencu za Low-Code platformu i mučio se sa prevlačenjem kutijica?

Budućnost pripada „AI-assisted“ programiranju, gde inženjeri koriste prirodni jezik da generišu pravi kod, zadržavajući svu moć, kontrolu i fleksibilnost tradicionalnog razvoja, ali uz brzinu koju su LCNC alati samo obećavali.

Low-Code nije budućnost programiranja; to je bila prelazna faza. Pravi inženjeri znaju da nema prečica do kvalitetnog, skalabilnog i bezbednog softvera. Alati se menjaju, sintaksa se menja, ali potreba za dubokim razumevanjem arhitekture, algoritama i sistema ostaje. I zato, za sada, tastatura ostaje moćnija od miša.

Banner

Banner

Možda će vam se svideti i