this post was submitted on 05 Jul 2023
12 points (75.0% liked)

Programming

17377 readers
473 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
 

Hey, community.

This one might probably trigger some of you. But just a question that comes out of the blue: What are your thoughts on it?

I first learned programming back in the day with Visual Basic 2008. Nowadays, I can program with C#, Java, PHP and some other languages rather well (I'm no professional, though), but I often come back to Visual Basic, because I'm just so used to it. Even though it's not that often, because I'm a Linux user.

But let's say I need a small program for Windows real quick? VB.NET is gonna be my choice. Right now, I'm implementing a board game server + client for the game of go (also called baduk or wei'qi) and I'm making really good progress.

I personally think that people should just use what they want to use. I don't get the hate for PHP and some other languages and I think this gate-keeping and god complex some developers have is really annoying. Makes me want to use VB.NET even harder.

I also don't like to jump on board with every new and upcoming programming language or library, just to be cool.

I'd also like to emphasize that I'm not creating software for a living right now. I do have a small company for a little bit of freelance work, but that's just money on the side that comes in by creating really small projects.

you are viewing a single comment's thread
view the rest of the comments
[–] TheOneCurly@lemmy.theonecurly.page 9 points 1 year ago (1 children)

First, of course, use whatever you're comfortable with.

Second, a lot of that advice you see is about long-term development on large projects. Often you don't know if a little side project is going to turn into something huge but it'd be nice to have started it in something that will be more easily maintainable down the line.

[–] NettoHikari@social.fossware.space 1 points 1 year ago (3 children)

May I just ask how VB.NET code isn't maintainable? Not attacking you here, just out of curiosity. My board game server and client together amount to multiple thousand lines of code, as they're very feature rich and at the moment, it's not really hard for me to maintain things. It's not public yet, though. Still active development phase.

[–] TheCee@programming.dev 5 points 1 year ago

May I just ask how VB.NET code isn’t maintainable?

TL;DR: Lots of old code written by VB6/VBA programmers in the wild. It's way more holistic than C-hacker-ish C# code.

Speaking from a bunch of legacy projects, you will likely encounter:

  • Option Strict Off activated, so your type checking and IDE tools are half broken now.
  • Global imports from anywhere to anywhere, proper namespacing is unheard of.
  • Object everywhere, because Variant.
  • On Error Resume Next everywhere, so you switch off and on exceptions while debugging.
  • ByRef everywhere, because VB Classic is call by reference first.
  • All declarations on top of a function, drastically increasing their scope, because, you guessed it, this is the only way in old VB.
  • Code bases riddled with poor reimplementations of string methods using Mid. Actually, that's a bonus, it's very satisfying replacing those with one call to a string member.
  • Multiple assignments to function name variable instead of return, making code harder to follow.
[–] Taival@suppo.fi 4 points 1 year ago

I'm currently maintaining a multi million line VB.NET code base, the foundations of which were hastily laid down by young and inexperienced devs realizing a business opportunity in the early 2000s. Lots of these out there in the enterprise world from what I hear and I think this is where there the language gets its reputation from. Sure, at its best it's just C# with words in place of curly braces, but that's only the case with well disciplined programmers (and even then, why not just use C#?). Option Strict is, well, just an option, and even the infamous On Error Resume Next is still usable in VB.NET to this day afaik. A lot more room for shooting yourself (or the next person reading your code) in the foot if you don't know what to look out for.

[–] TheOneCurly@lemmy.theonecurly.page 3 points 1 year ago* (last edited 1 year ago) (2 children)

I was mostly thinking about PHP with that comment. Which has some serious issues with how modules from other files are included and general structure. It's possible to write well organized PHP projects but it takes discipline, it doesn't happen organically, and its really hard to fix once the project has grown significantly.

I haven't used VB since VB.NET 2003 so I hesitate to speak on that directly. Professionally I work across multiple OS's and architectures so all .NET languages are kinda no-go's. That's where C++ really shines.

It’s possible to write well organized PHP projects but it takes discipline, it doesn’t happen organically, and its really hard to fix once the project has grown significantly.

That applies to most languages, that you can write an awful unmaintainable mess. Especially when the project started by someone with little experience, or no knowledge about suitable design patterns.

Professionally I work across multiple OS’s and architectures so all .NET languages are kinda no-go’s. That’s where C++ really shines.

How about Java?

[–] N0m1z@feddit.de 3 points 1 year ago

Professionally I work across multiple OS’s and architectures so all .NET languages are kinda no-go’s

.NET has had support for Linux, Mac and ARM for a while now.