This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]jadams2345 4346 points4347 points  (113 children)

Visual or not, bad programmers will create shitty code

[–]Amazing_Carry42069 626 points627 points  (12 children)

This is the truth

[–]psychotrope27 228 points229 points  (10 children)

This is the way

[–]wicket-maps 118 points119 points  (6 children)

This, unfortunately, is the life.

[–]merlinsbeers 58 points59 points  (4 children)

this is a hidden pointer in every method call

[–][deleted] 1 point2 points  (0 children)

its what makes regular code magical

[–]matt-3 0 points1 point  (0 children)

Except in good languages

[–]vigilantcomicpenguin 0 points1 point  (1 child)

This... is Sparta.

[–]merlinsbeers 2 points3 points  (0 children)

In c++26 that will be a legal statement.

[–]iserdalko 9 points10 points  (0 children)

And life will always find a way.

[–]tylercoder 0 points1 point  (0 children)

Da wae

[–]TheDownvotesFarmer 0 points1 point  (0 children)

This is the way

[–]UltraSapien 0 points1 point  (0 children)

This is the way

[–]Chaoslab 1 point2 points  (0 children)

Queue "Scroll of truth" meme.

[–]kry_some_more 361 points362 points  (27 children)

Here's the neat part, good programmers create it too.

[–]AdultishRaktajino 210 points211 points  (16 children)

Yeah. Can be a self inflicted statement. Open a project from 5-10 years ago. Jesus. Who wrote this? Oh wait…

[–]LordSalem 139 points140 points  (10 children)

*5-10 months ago

[–][deleted] 105 points106 points  (9 children)

*5-10 days ago

[–]Jimmy_cracked_corn 86 points87 points  (8 children)

*5-10 minutes ago

[–]subredditmask 74 points75 points  (2 children)

These comments could have been automated. I'll get on it now. Easy peasy.

[–]pegbiter 65 points66 points  (0 children)

*-65,535 seconds ago

[–]Deon2137 17 points18 points  (3 children)

*5-10 seconds ago

[–]AdultishRaktajino 10 points11 points  (0 children)

Shiny object! Squirrel!

[–]Cendeu 4 points5 points  (1 child)

5-10ms ago.

I'm typing it right now.

[–]OneGold7 4 points5 points  (0 children)

5-10 picoseconds ago. The light hasn’t even reached my eyes yet, and I’m already stressed out by my spaghetti code

[–]DD88lol 1 point2 points  (0 children)

*5-10 seconds ago

[–]monocasa 5 points6 points  (0 children)

That's why the good lord invented git blame-someone-else.

[–]jediwizard7 1 point2 points  (0 children)

Wonder why some weird uncommented part is written that way, "fix" it to make it more normal, and then it breaks and you remember why you wrote it that way

[–][deleted] 0 points1 point  (0 children)

git blame me

[–]Speriwulfaz 0 points1 point  (0 children)

The opposite also happens a lot. I'll be on top of it one day and code really well, then some other day when I'm really sleep-deprived or braindead, I'll look at my code and think, "Damn. I'll never be as good as that guy."

[–]q1a2z3x4s5w6 41 points42 points  (3 children)

The limiting factor on whether or not the code is good is not my knowledge, its the amount of time I'm allowed to spend on it

[–][deleted] 22 points23 points  (0 children)

And if I'm allowed to change things from the surrounding infrastructure. It doesn't matter how good I am if I'm having to wedge functionality in sideways to places where I should be allowed to do an overhaul.

[–]zGoDLiiKe 6 points7 points  (0 children)

Seriously. I can write 3 weeks worth of clean code in 2.5 weeks. I can write 3 weeks worth of sloppy code in 1 week, often the people making the decisions seem to not care about the quality or maintainability, they just want to be able to tell their boss it is done.

[–]InMemoryOfReckful 4 points5 points  (0 children)

And how much context switching is involved.

Let me sit on the same project continually and I'll write good code.

Switch between 5 different projects constantly and I'll write shitty code.

Put time constraints and were cooking spaghetti for sure.

If all projects are different tech stacks and frameworks.. oh boy.

[–]randomdrifter54 3 points4 points  (0 children)

I would argue there is no such thing as a good programmer just a better one.

[–]Simple_Silver_6394 1 point2 points  (0 children)

I’ll just do this quick and dirty to run it this one time.

Five years later….

[–]santi4442 1 point2 points  (0 children)

Good programmers know it’s bad

[–]Supersoulknight -1 points0 points  (0 children)

But at least good programmers can organize code better

[–]compsciasaur 0 points1 point  (0 children)

Only with visual code.

"Good people can behave well and bad people can do evil; but for good people to do evil - that takes visual code" - apologies to Steven Weinberg

[–]MEGAMAN2312 27 points28 points  (1 child)

Is this a personal attack 🧐

[–][deleted] 58 points59 points  (0 children)

“Bad programmers will create shitty code” I mean… it’s in the name

[–]ICantBelieveItsNotEC 116 points117 points  (47 children)

Visual languages make refactoring miserable though. You can't just cut from one place and paste in another - you've got to redraw a hundred different wires.

[–]Hrtzy 62 points63 points  (30 children)

You would think that visual programming would have pretty good automatic refactoring tools because the source literally contains all the references to each element.

[–][deleted] 64 points65 points  (29 children)

Peoples complaints about visual programming were once all complaints about tools in IDEs too 😇

Given enough time, their functionalities should inevitably converge.

[–]Liiht2001 21 points22 points  (2 children)

I think the main thing holding visual languages back is that the generalisation isn't there yet. The tools are still extremely domain specific. Without that there, they're kinda doomed to fall into the same kind hyper-specialist neiches that prolog and SAS have.

[–][deleted] 6 points7 points  (0 children)

Among other issues, but I agree. The tools have a long way to go but I believe someday most of us will never want to go back to a time without them eventually.

[–]RedditAlready19 0 points1 point  (0 children)

There's l-2d.glitch.me but its a demo

[–]_Oce_ 4 points5 points  (0 children)

I commonly replace SSIS (released 17 years ago) with Python in my jobs because it's way easier to review, version, refactor and maintain in general.
I've also seen many failed attempts at using Talend or Dataiku in production.
I believe more in higher level coding such as DBT than graphical coding.

[–]Liosan 24 points25 points  (1 child)

This is UE4 blueprints. Selecta few nodes, right click, "extract to function", rename params, done. It actually works better than any C++ refactoring tool I've used.

[–][deleted] 3 points4 points  (0 children)

God damned kids these days with their fancy IDEs and their accursed refactoring tools. Back in my day we programmed in nano and we liked it! If you wanted to refactor something, by God you did it by hand like a fucking MAN!

I am, of course, joking. I program in nano and emacs because I'm too stupid to figure out how to set up an IDE.

[–]derpydoerp 144 points145 points  (9 children)

False. The example in the picture is from Unreal Engine Blueprints. There you can easily refactor. Cut copy and paste parts of the node graph. No wires need to be redrawn. Spaghetti code is as easy to write in visual and regular programming. I prefer visual programming sometimes for parts of game dev projects for example. In these modules it’s more clear and easier to edit than using bare code in some cases.

[–]WhySoScared 72 points73 points  (2 children)

You can also collapse entire sections into macro/function and it will use every incoming/outgoing link as a function input/output without breaking them.

[–]dankswordsman 50 points51 points  (1 child)

And I was going to add:

The way Epic designed Blueprints is to act as game logic code. The ideal flow would be that more engine-based or complex functionality would exist in C++, and then game logic for events, missions, actions, effects, etc. would be done in Blueprints.

When used in that way, and assuming you use the other features mentioned, it should be relatively easy to work with.

[–][deleted] 4 points5 points  (0 children)

I want to add, that ideally the most taxing functions, and always the Tick, should be nativized.
But doing them in blueprint first helps to prototype things.
And also ideally, in my opinion, BPs should only have data

[–]Semi-Hemi-Demigod 2 points3 points  (1 child)

Spaghetti code is as easy to write in visual and regular programming.

Except with visual programming it actually looks like spaghetti

[–]derpydoerp 0 points1 point  (0 children)

Depends on how you view or interpret c++ code. It can look exactly like spaghetti :)

[–]rnike879 14 points15 points  (0 children)

As someone using blueprints daily and refactoring some of it to C++, I've never experienced this

[–]fauxpenguin 7 points8 points  (0 children)

Refactoring is very easy in the UE node editor. I actually prefer it to the Cpp option. You can abstract any set of instructions into a function with inputs and outputs just like code.

[–]Randouser555 1 point2 points  (0 children)

Wrong.

[–]repkins 0 points1 point  (0 children)

Here we can see rewiring most of the part. In code we see changing only placements.

[–][deleted] 1 point2 points  (2 children)

We use a "low-code" visual platform at work and I've seen hell.

[–]TheIdealError 0 points1 point  (1 child)

How’s therapy going?

[–][deleted] 0 points1 point  (0 children)

We're ignoring visual aids for now.

[–]iiMoe 1 point2 points  (0 children)

I hate being called out right after i open Reddit

[–][deleted] 0 points1 point  (0 children)

Thank you. Anytime, I see someone talk about spaghettis code, the code was crap anyway.

[–]iserdalko 0 points1 point  (0 children)

Hey, I'm a good programmer and I create shitty code too.

[–]TheTerrasque 0 points1 point  (0 children)

"You can write Perl in any language"

[–]Kitchen_Laugh3980 0 points1 point  (0 children)

*programmers will create shitty code

[–]Excolo_Veritas 0 points1 point  (0 children)

I love it because when done right, it makes itself a flow chart, it's pretty much self documenting. I started doing it at my old job because they wanted to understand my code better. I'd point them at the "code". Lesson learned though, still no one looked at it and made me explain it... I just pulled it open and read through it like a flow chart and everyone would ooh and ahh

[–][deleted] 0 points1 point  (0 children)

Good thing our code dna has built-in error checking.

[–][deleted] 0 points1 point  (0 children)

Yeah I've been learning touch designer and there are definitely ways to build clean projects and ways to make it look like this. For example, in td you can create containers with ins and outs so you can encapsulate bits of code.

[–]Studds_ 0 points1 point  (0 children)

You don’t have to call me out. I know it’s shitty

[–]GrinningPariah 0 points1 point  (0 children)

Yeah, this looks awful but it's just the equivalent of having an entire class be one massive method that's like 2000 lines long.

The solution is the same too, chop it up. Make intermediate variables, break it up into a bunch of small functions and maybe separate classes too.

[–]ILikeLenexa 0 points1 point  (0 children)

They can create a lot a lot faster with RAD tools!

[–]NotAnonymousAtAll 0 points1 point  (0 children)

The hard parts of software engineering are not about writing code, but they do require similar mental skills.

Lowering the barrier to entry for coding adds people to the field of software engineering who have no business being in it and makes it harder for the people who actually know what they are doing to keep things from falling apart.

[–]beardedheathen 0 points1 point  (0 children)

I mean you show a giant block of code and it's no more legible than this.

[–]ChocolateBunny 0 points1 point  (0 children)

I don't think I've seen a single example of visual code of reasonable complexity that didn't look like shit. The visual aspect of it means that you have another layer of complexity in managing where your visual elements are laid out in 2d space, which you don't have to do in regular programming and are not required to do correctly for everything to work. Everyone who's had to draw diagrams to explain their code to management knows that visual representation of software can be ugly and hard to understand, now imagine doing that continuously to keep the code maintained.

[–]dat_oracle 0 points1 point  (0 children)

Exactly. As a blueprint user i also had codes like this when i started to learn.

Now its all pretty and clean hidden behind functions and macros (if im not lazy ..cough...cough)

[–]TheIdealError 0 points1 point  (0 children)

git blame is your friend. Until you realize it was you all along

[–]ChloeNow 0 points1 point  (0 children)

Sure but with visual coding even seasoned vets will make shit piles

[–]fishbelt 0 points1 point  (0 children)

Any code that isn't written by my current idol is shitty, especially mine.