# Programming loves and hates



## KimberVaile (Dec 10, 2022)

Like a ying and a yang. Here be were you stow all your coding grumblings, triumphs. Praises, and curses.

So, let's start with mine.

Lord do I both love and hate C++. I love object oriented programming because it's so gosh darn organized. It's just neat, tidy and well organized. I'll gladly take C++ and Java for that. Comparatively, I really don't like C much for the same reason I like C++. Object oriented programming helps in organizing imo, so C to me just feels more like the wild west. Of course, that's not to knock the language, many important apps were made in it! It's just not to my tastes. Pointers, I confess I both love and hate. IT IS super useful to directly access the address of a variable, that said, it's at times a little cumbersome to use. It might be cause I started with Java, but I do prefer to do work using references.

Also on the aside. I've found that I've enjoyed coding alot more when it's a hobby. Again, more of a personal preference. But, thought I'd mention it. I don't think that opinion is particularly popular. Heh.

Anywho. Programmers of the FAF, add your two cents if you're feeling inclined.


----------



## CreachureComforts (Dec 11, 2022)

Well, I definitely share that opinion, I like it more as a hobby and just going as my own pace. Still trying to find a job related to it, though... so here's hoping it doesn't make coding feel soul-crushing

I'm not experienced enough to really know the different intricacies between C, C++, C#... I've just been focusing on C# because Unity is based on it. (I'm aware of Unity's "reputation", so I'm hoping to escape that reputation with whatever I end up making)

I'm also into web stuff, but I'm not very good at the coding aspect, mostly CSS and design.


----------



## Fallowfox (Dec 11, 2022)

I code predominantly in 'R'.








						R (programming language) - Wikipedia
					






					en.wikipedia.org
				



but also use 'TeX' for word processing. 








						LaTeX - Wikipedia
					






					en.wikipedia.org
				




My coding love is when other people comment their codes. 

My coding hate is function deprecation.


----------



## redhusky (Dec 11, 2022)

This is more of a "grinds my gears" that combines the two about coding but sometimes either newer, or older, programmers like to hate on block coding. Like you NEED to be doing it "manually" or else it's not "professional" grade programming. Despite me telling them that they are just making more unnecessary work for themselves and they can get their work done faster and troubleshoot much, much more easily/faster for the project they are doing.

Also to expand on the like, I love to see how smart people can generously expand the ease of use for complex things like programming in general. It's helps me make wonderful things possible!


----------



## KimberVaile (Dec 11, 2022)

CreachureComforts said:


> Well, I definitely share that opinion, I like it more as a hobby and just going as my own pace. Still trying to find a job related to it, though... so here's hoping it doesn't make coding feel soul-crushing
> 
> I'm not experienced enough to really know the different intricacies between C, C++, C#... I've just been focusing on C# because Unity is based on it. (I'm aware of Unity's "reputation", so I'm hoping to escape that reputation with whatever I end up making)
> 
> I'm also into web stuff, but I'm not very good at the coding aspect, mostly CSS and design.


Wasn't worth it for me. Too frustrating. Your experience may vary of course.

I do keep forgetting how many darn variations there are of C there are. Base C doesn't have Object Oriented Programming, but I think C# (C sharp), does. I might have got those confused. I've not tried C sharp, but it's probably fine if it has OOP, in my very biased opinion.

Web design is kinda fun sometimes, but I don't really think I ever had an eye for design. You can tell when I've made a website due to how distinctly clunky it looks.  Though at least javascript isn't that hard to work with!


----------



## redhusky (Dec 11, 2022)

KimberVaile said:


> Wasn't worth it for me. Too frustrating. Your experience may vary of course.
> 
> I do keep forgetting how many darn variations there are of C there are. Base C doesn't have Object oriented programming, but I think C# (C sharp), does. I might have got those confused. I've not tried C sharp, but it's probably fine if it has OOP, in my very biased opinion.
> 
> Web design is kinda fun sometimes, but I don't really think I ever had an eye for design. You can tell when I've made a website due to how distinctly clunky it looks.  Though at least javascript isn't that hard to work with!


Is graphic design your passion too!? X3


----------



## KimberVaile (Dec 11, 2022)

Fallowfox said:


> I code predominantly in 'R'.
> 
> 
> 
> ...


Commenting isn't essential in a employment setting, but it's a very appreciated courtesy that makes the lives of your coworkers a teeny bit easier. That one I can appreciate.


----------



## KimberVaile (Dec 11, 2022)

redhusky said:


> This is more of a "grinds my gears" that combines the two about coding but sometimes either newer, or older, programmers like to hate on block coding. Like you NEED to be doing it "manually" or else it's not "professional" grade programming. Despite me telling them that they are just making more unnecessary work for themselves and they can get their work done faster and troubleshoot much, much more easily/faster for the project they are doing.
> 
> Also to expand on the like, I love to see how smart people can generously expand the ease of use for complex things like programming in general. It's helps me make wonderful things possible!


That I agree is silly. Coding blocks isn't close to actual programming, but the key to learning anything difficult imo is to ease people into it. Make the knowledge digestible so there is a foundation of understanding. You need a good foundation before you can go further and take off the training wheels. And that's really what coding blocks are. Training wheels. Eventually you'll have to ditch the training wheels, but you'll have a foundation of understanding when you do. Enough to move on. So, I don't personally get the hate. It's an important step to making coding more accessible imo.


----------



## Fallowfox (Dec 11, 2022)

KimberVaile said:


> Commenting isn't essential in a employment setting, but it's a very appreciated courtesy that makes the lives of your coworkers a teeny bit easier. That one I can appreciate.



In a scientific work place there's often a big range of competency in coding. Often older professors do not code at all, for example. 
So if we don't comment we end up leaving a large portion of people in the dark and they just assume what we've done is valid.


----------



## redhusky (Dec 11, 2022)

KimberVaile said:


> That I agree is silly. Coding blocks isn't close to actual programming, but the key to learning anything difficult imo is to ease people into it. Make the knowledge digestible so there is a foundation of understanding. You need a good foundation before you can go further and take off the training wheels. And that's really what coding blocks are. Training wheels. Eventually you'll have to ditch the training wheels, but you'll have a foundation of understanding when you do. Enough to move on. So, I don't personally get the hate. It's an important step to making coding more accessible imo.


This guy's vid is pretty much my go to now for this topic on "blocks vs text". I Like this video because he shows it them working side by side.





I love how he shows the back and forwards within the program. His summary is very well put, as well. But agreed, you STILL need to learn to learn how the code works for best practices.


----------



## CreachureComforts (Dec 11, 2022)

I always forget what my own code does whenever I go back to it later... so, you could say I learned the value in commenting everything


----------



## Fallowfox (Dec 11, 2022)

Also, including the date of the last work in the script name.


----------



## KimberVaile (Dec 11, 2022)

Another thing. I really dislike nonsensical variable and function names. This is really only a problem when browsing somebody else's code, which happens often when employed in the field. But really other unnamed coders, stop naming your variables x and y. Functions too. Please stop calling these things dmNext and crap like that. Be more descriptive. Saves time. Thanks in advance.


----------



## KimberVaile (Dec 11, 2022)

SQL! God, I hate that language. Not because it's bad, it's not poorly designed or anything. But I remember that being a course I had to take, and I don't think I've ever covered anything more insufferably boring and tedious. Useful and important language? Absolutely. Difficult? Not terribly, actually pretty forgiving in many ways. Boring as sin? Painfully. Sorting and orgainzing databases isn't exactly my idea of fun, but I'm sure to others that stuff is a blast.


----------



## ben909 (Dec 11, 2022)

easier then sml


----------



## TyraWadman (Dec 11, 2022)

I hate that I can't accomplish everything I want in one language. I always have these ideas and it's a massive combination of 3+ different ones and I can barely find the time to relearn one of them as it is.


----------



## redhusky (Dec 11, 2022)

TyraWadman said:


> I hate that I can't accomplish everything I want in one language. I always have these ideas and it's a massive combination of 3+ different ones and I can barely find the time to relearn one of them as it is.


Agreed, this why project scope is very important! I do like the need to working within limitations. It challenges me to work with what I have and that can be rewarding in itself.


----------



## Miles Marsalis (Dec 12, 2022)

Wasn't going to comment initially, but I remembered some things I hate about programming, or at least about working with dev teams. I normally don't work on dev teams anymore, but sometimes I have to manage them or a contract with a client means I need to work closely with them.

Working on a dev team is a collaborative effort, but a lot people in the field don't realize this. The commenting problem some of you brought up is an example of that and though the serious workplaces have culture encouraging it, people don't always get with it. But there are also problems when people don't communicate during the dev cycle and when something needs debugging, they waste time trying to find it themselves instead reaching out to the team for help so we can move things along on-schedule. New hires are especially afraid to ask for help and sometimes you've got to prompt to raise questions they might have.

Another thing I hate seeing is repetitive code. It's lazy and sloppy, especially when you should be using loops and functions.

In general, I've mostly been using Python and R for econometrics and data analysis at work, though my PERL skills got another workout during a sprint team audit last quarter.


----------



## Fallowfox (Dec 12, 2022)

Miles Marsalis said:


> Wasn't going to comment initially, but I remembered some things I hate about programming, or at least about working with dev teams. I normally don't work on dev teams anymore, but sometimes I have to manage them or a contract with a client means I need to work closely with them.
> 
> Working on a dev team is a collaborative effort, but a lot people in the field don't realize this. The commenting problem some of you brought up is an example of that and though the serious workplaces have culture encouraging it, people don't always get with it. But there are also problems when people don't communicate during the dev cycle and when something needs debugging, they waste time trying to find it themselves instead reaching out to the team for help so we can move things along on-schedule. New hires are especially afraid to ask for help and sometimes you've got to prompt to raise questions they might have.
> 
> ...



I have used Strawberry PERL for literally one thing and never applied it again lol.


----------



## Baud (Dec 12, 2022)

I love C because it is perhaps the most powerful language one can use for low level applications besides assembly, and I like working at a low level interacting with the kernel so it is the perfect language for me. Not to say it doesn't have its flaws, one always has to be very careful with it especially when handling memory, but what you gain is definitely worth the extra effort. Obviously if I'm tasked to write a larger application that wouldn't benefit from the closedness with the OS and hardware then there would be no reason not to use C++ or C# instead, and when it comes to OOP languages C# is my personal favorite.

I also have a love-hate relationship with Python, it is so versatile that you can make amazing things in little time, but I always had a harder time using English-like languages, and I hate that spaces and tabs are used to identify code blocks, I prefer the good old { }. That being said I'm currently working on three different Python scripts and doing those same things in other languages would be a pain, so I am grateful for what it can do.

And finally something I don't like in the slightest is web development, yet a big chunk of my job is analyzing web apps.


----------



## Miles Marsalis (Dec 12, 2022)

Fallowfox said:


> I have used Strawberry PERL for literally one thing and never applied it again lol.


For me, PERL usually comes with infrastructure institutional clients, because a lot of critical infrastructure still runs on it.


----------



## KimberVaile (Dec 12, 2022)

Baud said:


> I love C because it is perhaps the most powerful language one can use for low level applications besides assembly, and I like working at a low level interacting with the kernel so it is the perfect language for me. Not to say it doesn't have its flaws, one always has to be very careful with it especially when handling memory, but what you gain is definitely worth the extra effort. Obviously if I'm tasked to write a larger application that wouldn't benefit from the closedness with the OS and hardware then there would be no reason not to use C++ or C# instead, and when it comes to OOP languages C# is my personal favorite.
> 
> I also have a love-hate relationship with Python, it is so versatile that you can make amazing things in little time, but I always had a harder time using English-like languages, and I hate that spaces and tabs are used to identify code blocks, I prefer the good old { }. That being said I'm currently working on three different Python scripts and doing those same things in other languages would be a pain, so I am grateful for what it can do.
> 
> And finally something I don't like in the slightest is web development, yet a big chunk of my job is analyzing web apps.


That's pretty fair. Some distros of Linux were coded in plain C. Some older Windows OSes were too. So it's definitely not a slouch of a language. It has it's advantages, as you've described. Certainly not a bad language, you can accomplish a lot with it with enough time too. It does feel a little clunky at times though, imo. But it's powerful for sure!

I do sometimes forget that English speakers do have a slight advantage in programming because of where most of these languages were developed. I do wish there were more options for those who don't speak English. That said, I've seen alot of pretty cool things done with Python. Like, this one is just personal anecdote, but Civilization 4's incredibly robust modability and it's seamless in game world editor I think are largely because of how accommodating  Python is to code for. It's absolutely one of the most flexible languages you can use, so I've always felt pretty positively towards it as a language, though sometimes a little limited, and clunky. Modding for Civ 4 was easier than Skyrim in some areas though, imo. Not my preferred language, but not one I'd be unhappy to work with.

Also agreed on the last one. Don't enjoy web development. My sympathies that you have to deal with that at your job. Though, at least PHP has slowly gotten less bad as time has passed. lol.


----------



## KimberVaile (Dec 16, 2022)

I speak too soon at times! More and more I'm finding pointers are really saving my butt in coding apps. Sometimes you need more than references to do what you want with code, you know?


----------



## Khafra (Dec 21, 2022)

KimberVaile said:


> Like a ying and a yang. Here be were you stow all your coding grumblings, triumphs. Praises, and curses.
> 
> So, let's start with mine.
> 
> ...


Programming is absolutely more enjoyable when it's done as a hobby, I think every professional programmer would agree with you on that one.

But I'm also the exact opposite when it comes to object oriented programming. I absolutely despise it, and how prevalent its become. Having learned to program starting with low level stuff in C, when people tried to beat OOP into me afterwards my brain just kept throwing a tantrum. It always feels so restrictive, bureaucratic and artificial. Just please let me program what I need to and don't force me to subscribe to your ridiculous methodologies. Aside from big projects, usually involving multiple people, I will fight tooth and nail against even looking at anything with the word "class" in it.

Since both Java and C# live and breathe OOP, how restrictive they feel, and because how tedious it is to set up any project in them, I will refrain from commenting on my personal experiences because getting a ban just before forum shutdown would be a bloody shame. Knowing I had more than my fair share is enough.

Nowadays though, I don't program much. After the hell that was all the mandatory programming classes, I've lost the will to do it for fun, though I occasionally will write scripts to make my life easier. Python is probably a close favourite of mine after C, and I find bash strangely charming in its jank.


----------



## KimberVaile (Dec 21, 2022)

Khafra said:


> Programming is absolutely more enjoyable when it's done as a hobby, I think every professional programmer would agree with you on that one.
> 
> But I'm also the exact opposite when it comes to object oriented programming. I absolutely despise it, and how prevalent its become. Having learned to program starting with low level stuff in C, when people tried to beat OOP into me afterwards my brain just kept throwing a tantrum. It always feels so restrictive, bureaucratic and artificial. Just please let me program what I need to and don't force me to subscribe to your ridiculous methodologies. Aside from big projects, usually involving multiple people, I will fight tooth and nail against even looking at anything with the word "class" in it.
> 
> ...


Friend of mine went through both phases, the whole pre object oriented phase and post OOP phase. Apparently early on people thought the whole OOP thing was a fad and would never be used, but big projects become a mess without it in my experience. It still baffles me stuff like Windows used to be coded in C. I guess it's just bias though. I tried both methods and having a little structure imo just helps the code in terms of organization.

That said, I'm glad there exists different methods for programming with the sheer variety of programming languages there are. I'd never advocate for their to only be one way to program. The more options there are the better it is. Lord knows programming is already saddled with a bit of a steep learning curve for beginners. Can at least agree Python isn't too bad, not the fastest language, but, it's flexible and pretty smooth to use.


----------

