How I started my journey with Procyon

Burak Köken
3 min readDec 8, 2020

When you read the title, I’m sure you wonder what Procyon is. Before going deeper, I will mention it briefly, however, we will go deeper in the next parts, don’t worry about it :). Procyon is an HTTP web framework I have developed by using Go. I have been working on it for a while. Today, I will talk about why I have developed something like that, why I needed that and how I started my journey, and how I have kept working on it. This will be a story of my journey. I hope you will enjoy it while reading it.

Here, we go. I have mostly developed projects by using Java so far. One day, I decided to do something by using Go. One of the reasons why I decided to do that is, As you know, Go is one of the most popular languages nowadays and its popularity grows day by day. Additionally, Go’s memory consumption is very low and is faster unlike other languages as your code is compiled into directly the machine code. All of these made me so curious.

In the beginning, I read through tutorials and tried out online tutorials. There are countless tutorials and courses for you. If you are willing to learn, you can easily find them :). After that, I coded basic things to get used to it. As I’m familiar with C and pointers, I got used to using Go quickly. Eventually, I got a better understanding of Go.

Next, I wanted to develop a web application by using existing web frameworks in Go. There are already many web frameworks, like Gin-Gonic, Beego, Echo, and Revel, etc. Even though they have some pros and cons, their usages of them and the features they provide are pretty similar to each other. As I’m used to using the frameworks like Spring, those frameworks are very minimalist and simple for me.

However, in terms of development, they are easy to use. Although they have huge community support, they don’t provide so many features in my opinion. For instance, I couldn’t find features I was looking for, like dependency injection, auto-configuration, etc… Although they are easy to use, creating a production-grade application takes so much time.

By the way, there is a library named Wire developed by Google. It provides the dependency injection at compile-time, not at runtime. I think that it’s not exactly a dependency injection. It can be considered as a code generation tool. Maybe I’m exaggerating. But I also needed a comprehensive web framework, as well as people using Go. I couldn’t find one meeting my needs at least.

I mean that you can see the pros and cons and deficiencies of something by using. Someone needed to amend those deficiencies :).

Because of this, I started to develop the framework named Procyon to solve those issues and to amend the deficiencies I have mentioned. In the beginning. I had aimed to develop a minimalist framework. As days went by, it became a huge framework consisting of several modules. During the development, I had ups and down so many times as I was working on it alone. Despite those, I never gave up and I have been kept working hard.

However, It’s still in the working-in-progress state. I am going to release its first stable version soon.

Actually, this is the beginning of my journey. We will discuss the rest of the journey in detail in the next story.

For more information, you can look into the documentation and find the code on Github.

Thanks for reading.

--

--