Well to begin, wow I haven’t posted in almost a month. Life has been busy between both kids getting sick, end of school work, wife and I being sick on and off and just a super busy work schedule that I haven’t been able to focus on much programming, other than work and school, or much of anything. However, I have had time to do random research on many aspects that will help me out.
To begin, I will be prototyping out the project with Python and Django. Yes Django maybe a bit of overkill for some things, but I am going to use it as a good way to prototype things out, including ideas and processes. This will be probably also an initial release like this to figure out aspects that can be changed or updated. It will still be a core, dashboard, and plugin style system.
This then will become a project I will slowly replace with something I have thought long and hard about, GoLang. While I’ve thought about it for quite awhile to figure out, between Java, C++, Rust, GoLang, and a few others.
To begin, I did look at Java, mainly because I have done a decent amount of Java. Problem I kept finding with Java is having to use the JVM and people needing to install Java to use that, it made me shy away from it even though it is a good enterprise thing to do. Along with that is the popularity of it is not as great as it used to be.
Next is C++, well what can I say about C++ that many people already don’t complain about. The Segfaults that can be made, the garbage collection that needs to be done, the base really doesn’t have much so you are dependent on many other libraries, including things like Boost, which can be big. And yet again, from many of the indexes, C++ is not as widely used, unless it is for firmware and such, as it used to be. A huge plus is that this is a systems language, however there are many, personally, better systems languages now out there.
Now Rust. I don’t know much about it but many people love the language. Some of the syntax seems a bit odd to get used to but it seems to be a good language. Part I’m afraid of comes with it being a fairly new language, it maybe hard to really get it going, true it has Mozilla backing it which is great to see. This being a systems language is another great feature.
Now comes GoLang. This is something I keep thinking about and going back and forth on. GoLang has the backing of Google and was solely made because they hated how C++ was and wanted something that could take advantage of today’s technology. Along with this is a huge focus on concurrency. This allows for effective applications. There are a few other features that looked interesting in GoLang that originally I was a bit put off by but the more I’ve thought about it and begun my Software Development career I’ve noticed can be helpful.
So I will start by creating the prototyping in Django and Python to get something that is effective and MVP type or product. Once I am in need of a faster, lower impact project, I will begin to work on version two which will goto GoLang, well it may not be a “true” version two, but you get the idea. I figure this lets me iron out ideas and get a better handle on the process of making a plugin system/module system and to be able to learn more about making a true production style web application. Django is also something that I’ve meant to use for building other websites if I need them, including my own website which will connect to EDEN in the end. This will all begin to be something I will work on once the last little bit of schooling is done.