Most and least favourite programming language?

AllThingsTech

Well-known member
Joined
8 Jun 2025
Messages
348 (10.24/day)
Much of my career in software engineering has been in full-stack web development, and more recently I’ve been getting into Data pipelines and Continuous Integration and Continuous Deployment pipelines into the cloud.

I’d say I’d probably best-versed in PHP (both legacy and Laravel framework) and Javascript (jQuery and various Javascript frameworks) when it comes to web development. I’ve also more recently gotten into C# .NET Development. We’re using a seriously old framework, on a project commenced a few years ago, yet we aren’t even using .NET CORE - nonsensical much?!? In addition, regarding the back-end, I’ve spent a reasonable amount of time on ExpressJS, PHP Yii framework and Python Django framework. I’m generally more confident on the back-end than on the front-end.

I’m also confident working with Python on the Data side; I had to learn a tough lesson recently the hard way - shiny, new technologies are not always better; sometimes using Python is more efficient than using Pandas.

I had to complete a C++ project at university, and I very much enjoyed the challenge of debugging issues… the satisfaction of fixing bugs and realising you’ve learnt something new, yet the frustration of realising you had your concepts wrong, especially when starting out!

I couldn’t deal with Assembly programming at all, which I know @Retro is a whiz at!

What do you like and dislike about programming? What’s your favourite language? I’d love to hear about your experiences :)

@live627 @Retro @petermarkley this thread may interest you :cool:
 

live627

Well-known member
Joined
12 Jul 2022
Messages
371 (0.34/day)
Continuous Integration
Writing GitHub workflows might be my leaast favorite because it involves shell scripts. Maybe it wouldn't be so bad if I took the time to learn the syntax. Kinda like regular expressions ... they became second nature once I learned the syntax.

But I'm so happy once I get the scripts working to automatically generate built files for new releases at the click of a button.

Nowadays I have LLMs to help.
 

petermarkley

Well-known member
Joined
7 Sep 2024
Messages
85 (0.28/day)
Ah, I actually really like Bash

My favorites would have to be either C, PHP, or JavaScript because those are my most familiar. Sorta depends on my mood or the situation, if I need precision or complexity then I prefer C but if it’s more heavily text processing or UI-focused then PHP or JavaScript are nice.

I’m sure that growing to like Python is in my future though because of things like Blender, Godot, and Manim all using it. But that’s more of a prospective thing, at the moment Python is still just a tad weird to me (with the whole lists and dictionaries thing instead of arrays and objects).

My least favorite so far is hands-down Objective-C. It just feels downright contrarian how unlike other languages it is, plus the documentation for it is abysmal. Using that was not a fun experience.

Second place would probably be TypeScript because it is a bastard lovechild that has no right to exist at all lol … Although every single job listing I find for web developers nowadays requires that so it seems like I need to suck it up
 

Retro

Founder
Staff Member
Joined
4 Jun 2021
Messages
6,844 (4.56/day)
Location
UK
I couldn’t deal with Assembly programming at all, which I know @Retro is a whiz at!
Ah, thanks, it is indeed my favourite language, regardless of CPU. I think you put yourself down too much on this one though. The thing to realise about assembly, or to put it another way, programming the CPU directly, is that each instruction is actually very simple, so a lot of them are needed to do anything useful. So, to print "hello" on the screen in BASIC for example, would just take

Code:
PRINT "hello"

and that's it. For the equivalent in assembly, you'd have to set up memory space, initialise registers and more to get everything in the right state, context and likely do a system call or two for that to work and that's where the complexity comes in. That's why most things are programmed in HLL and the compiler does the hard work of creating the machine code.

Check out this example of the ARM instruction set, for example. Actually, it does all look rather complicated with all those diagrams and things, but look at the definition of each instruction and you'll see how simple it is. Gotta say, I still love the feel of it and wish I could indulge in it nowadays.


The following is an absolutely huge download. You have been warned!

 

AllThingsTech

Well-known member
Joined
8 Jun 2025
Messages
348 (10.24/day)
Writing GitHub workflows might be my leaast favorite because it involves shell scripts. Maybe it wouldn't be so bad if I took the time to learn the syntax. Kinda like regular expressions ... they became second nature once I learned the syntax.

But I'm so happy once I get the scripts working to automatically generate built files for new releases at the click of a button.

Nowadays I have LLMs to help.
I’m not comfortable with shell programming either, I tell you. I look at the azure pipeline YAML file and just go WTF when there’s anything minutely complex! I really wanna learn it too though, I do!
I’m sure that growing to like Python is in my future though because of things like Blender, Godot, and Manim all using it. But that’s more of a prospective thing, at the moment Python is still just a tad weird to me (with the whole lists and dictionaries thing instead of arrays and objects).
Python has objects too! I believe you mean lists and dictionaries as opposed to arrays and hashmaps?
Tbf, lists is a thing. And, zoom into a close-up and you'll see the concept is the same just with semantic differences: hashmaps in Java are pretty much dictionaries in Python. Likewise, Java hash-sets are equivalent to Python sets.
Also, if you think about it, every single programming language is different! For example, Java has both arrays and lists.

My least favorite so far is hands-down Objective-C. It just feels downright contrarian how unlike other languages it is, plus the documentation for it is abysmal. Using that was not a fun experience.

Oh woah, really? It astounds me that such a modern programming language can have such poor documentation! Tbf though, when I worked for an eCommerce firm, you'd be surprised at the such poor documentation of such popular stores !

Second place would probably be TypeScript because it is a bastard lovechild that has no right to exist at all lol … Although every single job listing I find for web developers nowadays requires that so it seems like I need to suck it up
Believe me, it's really hard to get used having type hinting revoked from you, once you have it - at least, I found that with Python! I do find it more useful in Python than in Javascript though tbf given that Javascript typically involves less complex processing of variables in comparison to Python, IME.

My favorites would have to be either C, PHP, or JavaScript because those are my most familiar. Sorta depends on my mood or the situation, if I need precision or complexity then I prefer C but if it’s more heavily text processing or UI-focused then PHP or JavaScript are nice.

And of course HTML and CSS - but those are typically coding languages, but not programming languages, big difference only software engineers generally tend to be familiar with :P

And ah yes familiarity goes a long way! My favourite programming language used to be Java just because it was the first programming language I learnt (which was at university - almost a decade or so ago now!). Soon my favourite programming language evolved to be the one I was using at the time, and now I don't necessarily have a favourite given I am constantly switching lol. Though if I had to pick, PHP would really be it for me at this point!

Ah, thanks, it is indeed my favourite language, regardless of CPU. I think you put yourself down too much on this one though. The thing to realise about assembly, or to put it another way, programming the CPU directly, is that each instruction is actually very simple, so a lot of them are needed to do anything useful. So, to print "hello" on the screen in BASIC for example, would just take

Code:
PRINT "hello"

and that's it. For the equivalent in assembly, you'd have to set up memory space, initialise registers and more to get everything in the right state, context and likely do a system call or two for that to work and that's where the complexity comes in. That's why most things are programmed in HLL and the compiler does the hard work of creating the machine code.

Check out this example of the ARM instruction set, for example. Actually, it does all look rather complicated with all those diagrams and things, but look at the definition of each instruction and you'll see how simple it is. Gotta say, I still love the feel of it and wish I could indulge in it nowadays.


The following is an absolutely huge download. You have been warned!

Awh thanks but nah I don't feel bad dw, and I'm just glad I'm past university days now and am in a job now involving only high level programming languages lol! I wonder if assembly programming is even used these days, except for maybe in operating systems? But even then, I believe it would be C++ unless it was extremely legacy code?

Our lecturer at university confused us with application of all these logic gates - OR, AND, NOR, XOF, etc. It was fine in theory, but applying it in assembly code was one hell of a nightmare! Dunno, maybe it was the project we worked on. Did you have to understand all that complex stuff?

What's more is that the assembly programming language we were using was intentionally not very well documented as the lecturer wanted us to use our brains and think for ourselves as opposed to finding solutions to similar problems online. Problem solving at its finest!
 

Retro

Founder
Staff Member
Joined
4 Jun 2021
Messages
6,844 (4.56/day)
Location
UK
@AllThingsTech From what I know, assembly is used mainly for very low level tasks like critical drivers for example. I'm sure the core of the NVIDIA and AMD graphics drivers are written in assembly to extract maximum performance for example, the rest, like the interface will be in a HLL for sure and no major apps like Office etc will be written in assembly. The OS might use it in places too, perhaps.

Those bitwise operators are needed in any language, but assembly makes especially heavy use of them. I found XOR to be the most interesting as it's like OR, but with that twist at the end when all bits are set.

That you were given incomplete documentation will be the reason why you found it so hard and I'm not convinced that it was a good teaching strategy. Look how it's put you off programming in it. If I was taking those classes, I'd give full documentation and then encourage my students to be creative with their code, concentrating on things like the most compact, intricate, or highest performance, depending on the task. Note that some of those goals are mutually exclusive, like most compact and highest performance, as unrolling loops leads to the best performance as it removes the hit of the branch instruction, but can take orders of magnitude more storage and memory space depending on how many loops and how many instructions within each loop.
 

petermarkley

Well-known member
Joined
7 Sep 2024
Messages
85 (0.28/day)
hashmaps in Java are pretty much dictionaries in Python. Likewise, Java hash-sets are equivalent to Python sets.
Also, if you think about it, every single programming language is different! For example, Java has both arrays and lists.

lol All your comparisons / examples are from Java … The most experience I have with Java is using Minecraft command blocks 😂🤪 I guess that explains why the Python “lists” thing is more weird to me than it is to you

I look at the azure pipeline YAML file and just go WTF when there’s anything minutely complex! I really wanna learn it too though, I do!

Have you ever used a command line interface? If you can get comfortable navigating and working using a UNIX-style command line then I suspect YAML pipeline stuff is a more natural transition. I’ve never worked with Azure but I assume it’s a similar concept to like Docker recipe files.

Historically the UNIX command line was driven by an almost maniacal emphasis on brevity. Single character argument flags, etc. Conventions were established that way, then maintained for consistency.

It goes back to the 1970s and tbh probably predates most programming languages! CLI was the original way to interact with computers before windowed desktop environments.

I’m not sure, this thought only just now occurred to me … but it’s possible the obsessive brevity at the time was because computer researchers were used to extreme hardware limitations and they kept things brief as a matter of best practice due to literal, physical necessity!

Oh woah, really? It astounds me that such a modern programming language can have such poor documentation!
Is Objective-C that modern? I know Apple pretty much ditched it for Swift. Tbh that’s probably why the documentation I found was so incomplete.
 

AllThingsTech

Well-known member
Joined
8 Jun 2025
Messages
348 (10.24/day)
lol All your comparisons / examples are from Java … The most experience I have with Java is using Minecraft command blocks 😂🤪 I guess that explains why the Python “lists” thing is more weird to me than it is to you
C# also uses lists though! :P

Have you ever used a command line interface? If you can get comfortable navigating and working using a UNIX-style command line then I suspect YAML pipeline stuff is a more natural transition. I’ve never worked with Azure but I assume it’s a similar concept to like Docker recipe files.
Yeah everyday, as I have had to do things like run Python scripts. This requires an understanding of file system navigation via command line arguments. I also use Git and have had to deal with file permission problems using chmod too!

However, it's the complex chaining and combining of commands to give the computer an instruction that gets me - stuff like using grep in combination with other things. A perfect example is to automatically update the patch number when deploying a new version of the software.

@AllThingsTech From what I know, assembly is used mainly for very low level tasks like critical drivers for example. I'm sure the core of the NVIDIA and AMD graphics drivers are written in assembly to extract maximum performance for example, the rest, like the interface will be in a HLL for sure and no major apps like Office etc will be written in assembly. The OS might use it in places too, perhaps.

Those bitwise operators are needed in any language, but assembly makes especially heavy use of them. I found XOR to be the most interesting as it's like OR, but with that twist at the end when all bits are set.

That you were given incomplete documentation will be the reason why you found it so hard and I'm not convinced that it was a good teaching strategy. Look how it's put you off programming in it. If I was taking those classes, I'd give full documentation and then encourage my students to be creative with their code, concentrating on things like the most compact, intricate, or highest performance, depending on the task. Note that some of those goals are mutually exclusive, like most compact and highest performance, as unrolling loops leads to the best performance as it removes the hit of the branch instruction, but can take orders of magnitude more storage and memory space depending on how many loops and how many instructions within each loop.
Sorry if I wasn't clear - while we were provided with documentation, we were using a language with a lack of community support. I suppose the intention was to train us to break down a problem into smaller steps ourselves, which I can understand, and such an experience makes one realise the extent to which they rely on similar problems solved by others!
 
Back
Top Bottom