Thursday, March 13, 2025
HomeSoftware DevelopmentVisible vs textual content based mostly programming, which is best?

Visible vs textual content based mostly programming, which is best?

-


Visible programming instruments (additionally known as ‘no-code’ or ‘low-code’) have been getting numerous press not too long ago. This, in flip, has generated numerous dialogue about whether or not visible or textual content based mostly programming (coding) is ‘finest’. As somebody who makes use of textual content programming (C++) to create a visible programming knowledge wrangling instrument (Simple Information Rework) I’ve some pores and skin on this sport and have considered it fairly a bit.

At some stage, all the pieces is visible. Textual content continues to be visible (glyphs). By visible programming right here I particularly imply software program that permits you to program utilizing nodes (containers) and vertexes (arrows), laid out on a digital canvas utilizing drag and drop. 

A well-known instance of this form of drag and drop visible programming is Yahoo Pipes:

Yahoo Pipes
Credit score: Tony Hirst

However there are many others, together with my very own Simple Information Rework:

Observe that I’m not speaking about Excel, Scratch or drag and drop GUI designers. Though a number of the dialogue would possibly apply to them.

By textual content programming, I imply mainstream programming languages equivalent to Python, Javascript or C++, and related instruments. Right here is the QtCreator Interactive Growth Surroundings (IDE) that I take advantage of to jot down C++ in, to create Simple Information Rework:

The benefits of visible programming are:

  • Intuitive. People are very visible creatures. Loads of our mind is given over to visible processing and our visible processing bandwidth is excessive. Take a look at just about any whiteboard, at any firm, and there’s a good probability you will notice containers and arrows. Even in non-techie corporations.
  • Faster to get began. Drag and drop instruments can mean you can begin fixing issues in minutes.
  • Greater stage abstractions. Which suggests you’ll be able to work quicker (assuming they’re the correct abstractions).
  • Much less hidden state. The connections between nodes are proven on display screen, moderately than you having to construct an inner mannequin in your personal reminiscence.
  • Much less configuration. The system elements work collectively with out modification.
  • No syntax to recollect. Which suggests it’s much less arcane for individuals who aren’t skilled programmers.
  • Much less run-time errors, as a result of the system typically received’t allow you to do something invalid. You don’t have to fret about getting perform names or parameter ordering and kinds proper.
  • Rapid suggestions on each motion. No have to compile and run.

The benefits of textual content programming are:

  • Denser illustration of data.
  • Higher flexibility. Simpler to do issues like looping and recursion.
  • Higher tooling. There’s a huge ecosystem of instruments for manipulating textual content, equivalent to editors and model management techniques.
  • Much less lock-in. You’ll be able to typically transfer your C++ or Python code from one IDE to a different with out a lot drawback.
  • Extra alternatives for optimization. As a result of you’ve got lower-level entry there’s extra scope to optimize velocity and/or reminiscence as required.

The benefits and downsides of every are two sides of the identical coin. A better stage of abstraction makes issues easier, but additionally reduces the expressiveness and adaptability. The express exhibiting of connections could make issues clearer, however may also enhance on-screen litter.

The everyday complaints you hear on-line about visible programming techniques are:


It makes 95% of issues simple and 5% of issues unimaginable

Visible programming techniques will not be as versatile. Nevertheless many visible programming techniques will allow you to drop down into textual content programming, when required, to implement that further 5%.

Jokes apart, I believe this hybrid strategy does quite a bit to mix the strengths of each approaches.

It doesn’t scale to advanced techniques

Managing advanced techniques has been a lot improved through the years in textual content programming, utilizing strategies equivalent to hierarchy and encapsulation. However there isn’t a motive these similar strategies can’t even be utilized to visible programming.

It isn’t excessive sufficient efficiency

The creators of a visible programming system are making numerous design selections for you. If you have to tune a system for top efficiency on a selected drawback, you then most likely want the low stage management that textual content based mostly programming permits. However with most issues you most likely don’t care if it takes a number of additional seconds to run, if you are able to do the programming in a fraction of the time. Additionally, numerous visible programming techniques are fairly quick. Simple Information Rework can be a part of 2 a million row datasets on a laptop computer in ~5 seconds, which is quicker than base R.

It finally ends up as spaghetti

Labview spaghetti from DailyWTF
Unreal Blueprint spaghetti from reddit.com/r/ProgrammerHumor/

I’m positive we’ve all seen examples of spaghetti diagrams. However you can too create horrible spaghetti code with textual content programming. Additionally, having the ability to instantly see {that a} visible program has been sloppily constructed would possibly function a helpful cue.

If you’re cautious to format your nodes, you’ll be able to maintain issues manageable (ravioli, moderately than spaghetti). However it begins to change into tough when you’ve got 50+ nodes with a average to excessive diploma of connectivity, particularly if there isn’t a help for hierarchy (nodes inside nodes).

Computerized format of graphs for simpler comprehension (e.g. to attenuate line crossings) is difficult (NP-complete, in the identical class of issues because the ‘travelling salesman’).

No help for versioning

It’s doable to model visible programming instruments in the event that they retailer the knowledge in a textual content based mostly file (e.g XML). Attempting to diff uncooked XML isn’t perfect, however some visible based mostly programming instruments do have built-in diff and merge instruments.

It isn’t searchable

There isn’t any motive why visible programming instruments shouldn’t be searchable.

An excessive amount of mousing

Skilled programmers love their keyboard shortcuts. However there isn’t a motive why visible programming instruments can’t additionally make good use of keyboard shortcuts.

Vendor lock-in

Many visible programming instruments are proprietary, which implies the price might be excessive for switching from one to a different. So, if you’ll make investments time and/or cash closely in a visible programming instrument, take time to make a good selection and take into account how you can transfer away from it if you have to. If you’re doing fast and soiled one-offs to unravel a selected drawback that you simply don’t want to unravel once more, then this doesn’t actually matter.

No code’ simply means ‘another person’s code’

If you’re utilizing Python+Pandas or R as an alternative of Simple Information Rework, then you’re additionally balancing on prime of an unlimited pile of another person’s code.

We’re specialists, we don’t want no stinkin drag and drop

If you’re an skilled textual content programmer, you then aren’t actually the goal marketplace for these instruments. Simple Information Rework is aimed on the analyst or enterprise man making an attempt to wrangle a motley assortment of Excel and CSV information, not the skilled knowledge scientist who desires in R or Pandas. Nevertheless even knowledgeable code jockey would possibly discover visible instruments quicker for some jobs.


Each visible and textual content programming have their locations. Visible programming is superb for exploratory work and prototyping. Textual content based mostly programming is nearly at all times a more sensible choice for specialists creating manufacturing techniques the place efficiency is vital. Once I wish to analyse some gross sales knowledge, I take advantage of Simple Information Rework. However once I work on Simple Information Rework itself, I take advantage of C++.

Textual content programming is extra mature than visible programming. FORTRAN appeared within the Fifties. Functions with graphical consumer interfaces solely began changing into mainstream within the Eighties. A few of the shortcomings with visible programming replicate it’s relative lack of maturity and I believe we are able to count on to see continued enhancements within the tooling related to visible programming.

Visible programming works finest in particular domains, equivalent to:

  • 3d graphics and animations
  • picture processing
  • audio processing
  • sport design
  • knowledge wrangling

These domains are likely to have:

  • A single, properly outlined knowledge kind. Akin to a desk of knowledge (dataframe) for knowledge wrangling.
  • Nicely outlined abstractions. Akin to be a part of, to merge 2 tables of knowledge utilizing a typical key column.
  • A comparatively simple management stream. Usually a step-by-step pipeline, with out loops, recursion or advanced management stream.

My teenage son has been capable of do some (I believe) fairly spectacular 3D modelling and animations simply with Blender’s visible instruments.

Visible programming has been a lot much less profitable when utilized to generic programming, the place you want plenty of totally different knowledge varieties, a variety of abstractions and probably advanced management stream.

I’ve been knowledgeable software program developer since 1987. Individuals (largely in advertising and marketing) have talked about changing code and programmers with level and click on instruments for a lot of that point. That’s clearly not going to occur. Textual content programming is one of the best strategy for some sorts of issues and can stay so for the foreseeable future. However domain-specific visible programming might be very highly effective and has a a lot decrease barrier to entry. Visible programming empowers individuals to do issues that may be out of their attain with textual content programming and would possibly by no means get completed if they’ve to attend for the IT division to do it.

So, unsurprisingly, the reply to ‘which is best?’ may be very a lot ‘it relies upon’. Each have their place and neither goes away.

Additional studying:

Hacker Information folks knowledge on visible programming

Visible Programming Codex

The life and instances of Yahoo Pipes

The ‘No Code’ Delusion and HN dialogue

‘Visible programming doesnt suck’ HN dialogue (authentic article appears to have disappeared)

Visible Programming Languages – Snapshots

A Private Historical past of Visible Programming Environments

Is the way forward for knowledge science drag and drop?

Rethinking Visible Programming with Go

Responses to this publish on Reddit:

reddit.com/r/Programminglanguages

reddit.com/r/nocode

reddit.com/r/datascience



Related articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
0FollowersFollow
0SubscribersSubscribe

Latest posts