If you happen to visit the official sites for most languages (programming) these days, one thing that is most certainly to stands out is that, even though they are technical tool to get the job gone, most of them are going the extra mile to put a smile on the developer. A happy developer is a productive developer as they say. And I personally think that this is the main reason that languages are doing this. Making a developer's life easier. Think about it for a second. What is the point of creating language B, while language A already exists and accomplish the same tasks, churns out the exact same scores when benchmarks are run with no change in developer experience. It is more about the 'developer experience' these days.
How satisfied is the developer while using the language? Is he scratching his head asking himself "why did you just let me do that?" and wishing to drop-dead because the language design wasn't well thought out and was misleadingly named after popular alternative as a marketing stunt although the two have nothing in common. Many questions we ask ourselves and circumvent by adding more features to an already bloated language without solving the main problem we had in the first place. So what if we had a language that thought first about the developer before anything else? What if it was a language by the developer for the developer?
I will use rust for my case study here because, well if you are dev and are not talking about JS and its many frameworks or rust and its crown of "most loved language" at the stack overflow developer results, then what are you doing with your life. As my Nigerian brothers would put it, "see yua laif".
I remember back in high school (man, it was a terrible time for me) while trying to learn Python, a friend of mine introduced me to C++ . I had heard about c++ and its notoriously hard learning curve, but because of misguided curiosity and youthful optimism (FOMO), I jumped ship and dove right into it. But why you might ask, well... why, the fuck not. The language has been in existence since '85 so, there must have been a ton of information and tutorials about it online and a matured supportive community. So after a few Google searches and illegal PDF downloads, I was ready to begin my journey. A few months in I had learned the syntax and was ready to start practising the dark arts and follow in the ways of the cult following c++ has gunnered over the years. Just like my fellow gate-keeping brothers online, I become one who could not accept the fact that there are over HOW MANY PROGRAMMING LANGUAGES OUT THERE on planet earth and Oh my, do not even get me started on how well I could lecture you on shit I did not know if you dared point out a flaw on our beloved CPP. God knows :joy:. I mean it was c++, but what I did not realise was that I was operating under this fallacy and self-conjured idea that, after learning c++ I would be able to create anything with it. The possibilities were endless (yeah! endless because you can shoot yourself in the foot and not even know it)". Lucky are those who started with Python and stuck with it for they are the ones that saw endless possibilities. So after going through the 'C++ primer and Teach Yourself C++ in One Hour a Day' over and over and over again, I had made no progress, okay no progress is a strong word, I believe I had mastered some of the chapters and could recite them word for word. I did not want to code the next Windows from scratch (know your limitations people) but I did want to create something with the knowledge that I had learned, and the small simple terminal prompt programs weren't cutting it. After brainstorming for ideas, I came up empty. I had spent all this time learning about null pointers and what not but couldn't build anything. Frustration could not describe how I felt. Just like any other millennial in this generation, I wanted results and I wanted them fast so I decided ... wait for it.. ... don't laugh just yet .... to continue learning c++ but this time it's going to be different. This time I have an area I would like to focus all my attention on. "This time it's going to be about GUI development", I lied to myself. . I have some bad decisions in my dev life, so many, "coulda, shoulda" but didn't. But the worst decision I ever made was not seeing that I was headed nowhere with C++. I was so out of touch with the language and loved how the phrase "c++ can solve any problem" sounded in my head (do not ask me who put this there). The last nail on the coffin in my c++ journey came when it was time to install the c++ dependencies for GTK and believe me, that is a rabbit hole I would not want anyone else to go down. High school was bad, this was worse. Nothing worked and when I thought I had something going on, everything broke. I knew that system's programming word was not the field for me and became a web developer.
Below is a screenshot of the supportive c++ community I was talking about
I thought that I was done with anything that touched on the OS or drivers until I came across this little gem called rust.
Visit the Rust website today and you are met with the following sentence "a language empowering everyone to build reliable software". Reliable is subjective meaning that the developer is responsible for the efficiency of his program, so do not go pointing fingers at rust. It is a language for everyone not just diabolical geniuses who graduated with a 8 masters in Computer Science and PHD specialisation in Artificial Neural Network Computing (Do I need to spell it out that I am overly exaggerating things and being sarcastic ). Not just a select few individuals. No! Everyone. This has to be probably the most welcoming and warm slogan I have read so far. It is a language for creators, tinkerers or hobbyists who would like to work with systems and get low level memory access without the fear of breaking everything because you know, you forgot to clear used memory and you know, c++ by default will throw cryptic error messages at you. But the deal breaker for me was not the fancy slogan, or the Stack Overflow results that every Rustacean starts with whenever they want to sell you the language. It was cargo, the package manager. When I began learning about web development, one of my main objectives was learning about JavaScript. The most used language that no one likes. Discovering the wizardry involved with installing dependencies in JS was an incredible moment for me. Unexplainable using human language, just pure bliss. I thoroughly enjoyed it. Installing dependencies, was freaking amazing. Handling c++ dependencies is a rabbit hole I never ever want to go down again. Just thinking about it gives me nightmares.
Back to my main point, There was really no point to this post but anyway here are my closing remarks. The future is bright for us developers. Tools and languages are being designed with the developer is mind. Not just rust but others too like Google's Go and Python and JavaScript have undergone massive changes from when they were first launched to make it easy to develop with them others are also jumping on this bandwagon too as....
May the force be with you ✌️