After a few years of avoiding C like the plague I have discovered a love for it. While I would be better served using a language like Go in most cases, C is just a lot more fun to me personally. Live, laugh, unsafe.
Background
When I started programming a few years ago I began the journey with Python. After realizing that I hated it I decided to switch to C. Initially, I was having a great time making discord bots with the Orca, now Concord, library. I was absolutely flying but eventually, I got skill issued. I just could not wrap my head around pointers and memory management. I ended up moving onto Java, Go, Rust, and Rust.
After 5 years of programming I have come to the conclusion that usually OOP is not great. This may sound shocking considering that 2 out of 5 posts on this blog are me raving about C# and Java but I have been reformed.
Background
For around a year I was infatuated with C# and Java. Initially I got introduced to Java through making discord bots with JDA. It was great. Up until that point I was used to making bots with Python or C. Java was and still is pretty nice for bot development and I really enjoyed my time with it. Then later on I discovered C# and enjoyed it even more. The syntax was great, it was fast, had a whole bunch of IDE support, and had a whole bunch of stuff going for it. I especially liked it when interfacing with MongoDB with their library. My only real gripe with it was the .NET ecosystem. Being an enjoyer of linux the Windows-centric parts of C# really bothered me and I eventually just sulked back to Java.
Nowadays Rust is by far my preferred language for any new project. Whenever I have some sort of problem I instinctively run cargo new [project]. Here is why I enjoy it so much.
Syntax
Syntactically Rust combines a lot of what I like all language paradigms. It has a perfect mix of OOP and Functional programming.
Here is a very simple way of defining a struct and then using impl to make instantiating a new book easier:
Over the past few weeks I have discovered the greatness of C#. Initially I thought that is was just a Microsofty Java clone, and while that is somewhat true, there is a lot of stuff in C# that makes me a lot happier than Java.
The tooling for C# is superb. It makes Java look like a nightmare.
Rider
Rider is a dream to code in. In my opinion it is much better than Visual Studio (especially since it is cross-platform). It is smooth and the memory profiling abilities are a bit better than what is available in IDEA. Riders helpful language features help me to feel more confident in writing code.
In the past month I have discovered the wonders of Java. After months of teetering on the edge I finally decided to dive
right in. That is a choice that I will forever hold in high esteem.
Why I like Java
Write Once Run Anywhere
I know it’s been said a thousand times but it really is amazing. From the perspective of a dev that has mainly been
developing in languages such as C, Rust, and Go it is nice to avoid the pain of compiling for every platform.
I, like many other programmers, wrote my first Hello world in Python. For a good while I was having a blast. Python is what brought me into this world and I have to give it some commendation for that. However, over time, I have drifted away from Python. Here’s why.
Simplicity
Syntactically, Python is very simple. This is a great thing for new programmers…or is it? While being easy to understand is important Python’s strangeness makes understanding other languages a bit more difficult. It is almost like Python gives you training wheels, but never let’s you take a leap of faith and gain the full power of riding two wheeled. For example Python’s Dynamic Typing got me accustomed to making variables with little to no thought. Then when I tried languages like Rust and C I was very confused by the idea of static typing.