Programarea vizuală este un tip de limbaj de programare care permite oamenilor să descrie procese folosind ilustrații. În timp ce un limbaj de programare tipic bazat pe text îl face pe programator să gândească ca un computer, un limbaj de programare vizuală îi permite programatorului să descrie procesul în termeni care au sens pentru oameni.
Cât de mare este diferența dintre programarea vizuală și programarea tradițională depinde de instrumentul de programare vizuală. La o extremă, instrumentul îl protejează pe programator aproape în întregime de spațiul gol dintre gândirea umană și computerele care amestecă biți în memorie.
Iată un exemplu. Pentru a crea o listă de sarcini cu un instrument de programare vizuală, programatorul desenează fluxul aplicației. Diagrama de flux rezultată descrie ecranele, interacțiunile cu utilizatorul și ce se întâmplă cu datele în fiecare etapă. Instrumentul transformă apoi acest lucru în software.
Ca dezvoltatori, știm că limbajele de programare bazate pe text se concentrează în întregime pe implementare: este vorba despre pașii preciși pe care computerul trebuie să îi facă pentru a crea experiența pe care dorim să o oferim utilizatorului. Sigur, limbajele de nivel superior și cadrele moderne ne oferă scurtături convenabile. Dar, sarcina dezvoltatorului este de a traduce nevoile umane în procese care se potrivesc cu abilitățile limitate ale computerului.
Alte instrumente de codare vizuală urmează aceleași procese și paradigme ca și programarea bazată pe text. Imaginați-vă că desenați o clasă și relația sa cu obiectele pe care le instanțiați, mai degrabă decât să tastați totul într-un editor de text.
Toate acestea sună foarte bine! Dar, v-ați putea întreba, unde sunt toți programatorii vizuali? De ce încă mai scriem codul de mână? Înseamnă că programarea vizuală este o idee proastă?
Înainte de a răspunde la aceste întrebări și de a ne scufunda în starea programării vizuale de astăzi, trebuie să înțelegem ce este cu adevărat programarea vizuală: de unde a venit, cum a evoluat și de ce.
Descoperiți următoarea generație de instrumente de dezvoltare vizuală
Un scurt istoric al software-ului de programare vizuală
Deși istoria pare să arate acest lucru, nu este corect să spunem că programarea vizuală în anii ’90 era limitată la kituri de creare de jocuri, instrumente multimedia și baze de date. Rational Software (care a fost achiziționată de IBM în 2003) construia un IDE Ada fără GUI încă de la mijlocul anilor 1980. În plus, aceștia s-au aplecat și asupra definirii procesului de dezvoltare software. Lucrările la procesul lor Rational Unified Process și eforturile conexe au dus în cele din urmă la Unified Modelling Language, care avea potențialul de a documenta până la ultima parte a unui sistem fără a scrie vreodată o linie de cod. Semăna cu programarea vizuală, dar fără a produce software executabil.
UML a oferit un limbaj standardizat și cuprinzător pentru descrierea sistemelor orientate pe obiecte. Cu toate acestea, febra UML i-a lovit pe unii arhitecți. Co-autorul cărții The Pragmatic Programmer (Programatorul pragmatic), Andy Hunt, povestește povestea unui proiect software în care un arhitect a petrecut doi ani creând diagrame UML înainte de a scrie măcar o linie de cod.
În momentul în care agile lua avânt, UML părea să permită toate cele mai rele aspecte ale vechilor metode de construire a software-ului: prea multă planificare și prea puțină implementare. UML executabil a fost o încercare de a adăuga acea piesă lipsă – software-ul executabil. Au apărut mai multe implementări, dar fără a avea un impact prea mare asupra unei lumi care își schimba rapid atenția către PHP, Ruby on Rails și alte limbaje de scripting dinamice.
În mod interesant, o formă de UML executabil care a rămas în picioare a venit tot de la Rational Software. Rational Rose este o suită de instrumente pentru crearea de software folosind UML și generarea de cod executabil într-un limbaj țintă, cum ar fi C++ sau Java.
Back to the Future: Starea programării vizuale astăzi
Pe baza a ceea ce ne arată istoria, s-ar putea să vă întrebați: este programarea vizuală moartă? Entuziaștii programării vizuale vă vor spune că este departe de a fi moartă. Întrebați-i „ce este programarea vizuală?” și, în primul rând, vor numi un instrument obscur specific unui domeniu. Apoi, vă vor spune că acel instrument este dovada că este în viață. Între timp, tu vei căuta frenetic pe Google. Ca rezultat, veți învăța nu doar despre instrumentul pe care l-au menționat, ci și despre lumea extrem de specializată în care acesta există.
Fără îndoială, programarea vizuală are rolul ei, fie că este vorba de programarea sintetizatoarelor sau de a le oferi entuziaștilor UML un sentiment de împlinire. Pentru software-ul de uz general, totuși, lumea este pur și simplu prea complexă pentru a fi modelată pur vizual. Atunci când „codul” dvs. arată ca o diagramă de circuit a procesorului, poate că este timpul să regândiți adecvarea programării vizuale la această sarcină.
În mod similar, software-ul de programare vizuală tinde să fie limitat de imaginația creatorului într-un mod care nu împiedică limbajele de programare textuală de uz general.
Și totuși, instrumente precum Visual Basic, Delphi și descendenții lor ne-au arătat că crearea de software vizual poate fi extrem de eficientă; doar că există un compromis pragmatic în care, uneori, codul scris de mână este soluția corectă.
Superstaruri vs. echipe: O nouă viață pentru limbajele de programare vizuală?
Aceste zile de început ale programării au fost grele, asta e sigur. Dar o singură persoană putea să înțeleagă și să fie expert în tot ceea ce era necesar pentru a crea acel software. Dacă sunteți suficient de vechi, gândiți-vă la titlurile de software din anii 1980. Era ceva obișnuit ca un singur programator să devină un brand de sine stătător.
Sid Meier, Mitch Kapor și Jeff Minter au dobândit un anumit nivel de faimă creând aplicații sau jocuri bine cunoscute de unul singur sau, cel mult, cu un alt colaborator. Pe atunci, ciclurile de actualizare a software-ului și a hardware-ului durau ani de zile. Astăzi, glumim că în fiecare zi apare o nouă bibliotecă JavaScript. Cu toate acestea, există un oarecare adevăr în ideea că dezvoltarea software-ului modern se mișcă într-un ritm cu care mulți dintre noi nu pot ține pasul.
Astăzi, software-ul este construit în mare parte de echipe de specialiști. În timp ce dezvoltatorii timpurii făceau totul singuri, o echipă modernă de dezvoltare de software ar putea avea o singură persoană a cărei singură sarcină este să se ocupe de instrumentul CI. Dezvoltatorii își petrec cariere întregi concentrându-se pe un cadru sau o platformă. Dezvoltatorii iOS sunt dezvoltatori iOS, nu dezvoltatori de dispozitive mobile. O dată sau de două ori pe deceniu, poate, un dezvoltator web ar putea schimba cadrul său preferat. Foarte puțini oameni scriu manual limbaj de asamblare în mod profesionist.
Nu este vorba doar de faptul că domeniul de aplicare al software-ului s-a schimbat. Într-o oarecare măsură, s-au schimbat și dezvoltatorii înșiși. Inginerul de software este doar o altă carieră în zilele noastre. În deceniile trecute, era o pasiune deținută de câțiva oameni care aveau dedicația de a învăța un sistem complet nou pentru a putea scrie portarea pe Atari ST, de exemplu, a jocului lor de succes de pe Amiga. Dar acest lucru este de înțeles: informatica nu mai este de nișă.
Astăzi, avem o lume în care dezvoltarea de software este alcătuită din părți din ce în ce mai complexe și în care dezvoltatorii sunt oameni obișnuiți cu specializări extraordinare. Această complexitate și specializare se potrivesc prost cu programarea vizuală pură a acelor instrumente timpurii, dar, de asemenea, face din ce în ce mai dificilă construirea unor echipe arondate de inginerie software.
Dacă mediile de programare vizuală pură au eșuat, există o întreagă cachetă de instrumente similare care preiau ce este mai bun din programarea vizuală și o combină cu codificarea bazată pe text. În timp ce programarea vizuală era „no-code”, aceste noi instrumente sunt low-code.
Instrumente precum OutSystems permit dezvoltatorilor să creeze software în mod vizual, desenând fluxurile de interacțiune, interfețele de utilizare și relațiile dintre obiecte, dar completându-le cu cod scris de mână atunci când acest lucru este cel mai bine de făcut.
Acest amestec pragmatic de programare vizuală și programare bazată pe text este bine adaptat la nevoile dezvoltării moderne de software. Platformele low-code reduc complexitatea dezvoltării de software și ne întorc la o lume în care un singur dezvoltator poate crea sisteme bogate și complexe, fără a fi nevoit să învețe toate tehnologiile de bază.
Noua generație de programare vizuală: Delivering on the Promise
Programarea vizuală a avut atât de multe promisiuni, iar problemele pe care a vrut să le rezolve nu au dispărut. De fapt, ele sunt mai relevante ca niciodată.
Dar problemele din lumea reală cer o mai mare flexibilitate decât ar putea oferi programarea vizuală. Low-code preia această promisiune și o aplică pentru a reduce complexitatea pe care o găsim în dezvoltarea software-ului modern. Așadar, nu vă întrebați „ce este programarea vizuală?”. În schimb, întrebați „ce este low-code?”. De asemenea, puteți programa o demonstrație online sau chiar să încercați OutSystems (este gratuit).