DECLAIMER: This section is a rant, you wonāt miss anything if you skip it.
I have been a web developer since I created this project, which was my first web project and second Go project, I liked Go since I created this console Tetris thingy, but before Go I had an another quest looking for a cromulent daily (multi-puprose) usable language, before Go I was using C++ for a while (until I couldnāt take it anymore), and had a run with Kotlin, Python, Java, and C. even though I jumped ship a lot between these languages (I was a junior in college, so Iām allowed to do this), they didnāt drive me crazy or anything, they just didnāt really fit my day to day usage, for example, Java and Kotlin required me to use a fancy IDE which my computer wasnāt really on board with it.
So finally I found Go, and it really did it for me, writing reliable automation scripts, readability, smooth OOP, portability, and most importantly speed where even with stupid unoptimized code, Go is still fast!
And when I started learning web, Go was and still is my first choice to quickly write a fast and āreliableā backend, the problem was with frontend, I jumped a lot of ships with frontend, because back when I was learning web, I was a huge fan of OOP (still kinda is, but a bit lesser) and most frontend frameworks are FRAMEWORKS, where they have their structure forced on us, so the initial frontend of the GDSC Logo Generator was in pure HTML/CSS/JavaScript, it did itās job, but I didnāt much like how the code looked, so as I was learning Vue, the first rewrite was in Vue (and it was my last Vue project), I kinda enjoyed Vue for a while, but I hated that I have to write JavaScript and handle types manually, especially objects coming from the backend, and Vue3 (it supported TypeScript) was an early beta, so it didnāt really work for me.
So thatās when I tried React for the first time, React was a banger for me, since it wasnāt trying to be a framework and force an architecture on me, and it had TypeScript out of the box, the thing was, React was blazingly slow, that I jumped ship faster than Vue, I didnāt even rewrite the logo generator with it, I also tried Next which is the full stack thing for React, but it was also in its early stages, and it was buggy AF, I did write my website with it though, but that was it, because I spent time dealing with Nextās issues, more than focusing on the actual product.
And thatās where I met SvelteKit, it really did it for me, I rewrote my website, the logo generator, did some more side projects apollo-music was the only one that saw the light of day, and did a lot of freelance projects with it. So what made me jump ship you might ask if you refer to my previous post will have the answer, TLDR; I messed up some server code with TypeScript that I came to the conclusion that a rewrite is better than fixing TypeScript server fuck ups, after this I was looking for a non JS/TS frontend framework, I found Yew and Leptos which are Rust frontend frameworks, and I went with Yew, both are great, and if I want to do a serious client intractive application Iād go with either of them.
Honoroble mentions:
- htmx the frontend library of peace, which is great for some client/server side mix ups, I think it can be used instead of Yew and Leptos, but I didnāt tinker much with it, and it involves some JavaScript, so IDK, well, weāre gonna use it today, so, YAY.
- Go Templates I like the server side blazing fast render time of the Go templates, their problem is that they just work (and type safity), thatās why they created templ, but either way theyāre great, especially with htmx, and they do their job and their job only, so you wonāt drown in the frontend voodoo magic.
- Nuxt the thing I use at work, itās to Vue what Next is to React, I hate Nuxt, but I gotta admit that half my salary comes from it, so I like Nuxt š
Finally I found templ, and I was really excited, that I can finally write frontends with my favorite language, and with a lot of stuff available out of the box (which are the reason I went with it over Go templates), you get awesome editor support, a cool cli, components, interoperability with other stuff like Go templates and React, live reload (kinda part of the cli but itās there), and YOU GET TO WRITE FRONTEND WITH GO, can you imagine this very small binary sizes, blazingly fast build times, because I was once building a Yew application on my very hardworking server and cargo literally halted the server for 30 minutes, that I had to restart it :( (I had 324 days of uptime). So yeah templ looks very promesing to me, that Iām building yet another home page called Chateau Web that has some stuff that are usually needed in a home page, and Iām kinda pushing my designer skills with it, you can find it here, if you find nothing, it probably means that I didnāt finish it yet :)
Letās dig inā¦
continue reading on mbaraa.com
ā ļø This post links to an external website. ā ļø
If this post was enjoyable or useful for you, please share it! If you have comments, questions, or feedback, you can email my personal email. To get new posts, subscribe use the RSS feed.