Almost time

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.

The fork in the road…

While I know the beginning I should be focused on most of my design aspects more than the rest of my project, I have come to something in the design that I am still a bit worried on my choices. I am working on my initial design and requirements and some user stories to begin with.
To begin, I have totally made my choice on my front end, this will be Angular 2, or whatever they want to call it now. This will involve a bit of work seeing they are using Typescript now which I don’t fully know, but do know JavaScript.
Next comes the database, this will be a SQL based database. While I do enjoy Mongo, I don’t know how much I’d like it for what I want to do. Along with this I am comfortable with SQL way of doing things.
So my biggest issue comes into play of choice for back-end. This will be between using something like Flask/WSGI and Python, ExpressJS and Typescript, or PHP and maybe Laravel(?).
A few things are part of what I want are easy to program, easy to maintain, and easy to deploy. While I know these should be always something on everyone’s mind when they work with a major project, I want it do be something that is great for a small business and the easier to maintain and program, allows for dependability, expandability, and cost effective for many small businesses and home use.  And also something that allows for smooth interaction for the customer that will be using it.

Now if only more people read these posts.

 

A new beginning.

I am beginning to do a few new processes in my life.  These hopefully will be better for my life and my future.

First off, I will be working on more of the design and requirements of Eden before I get farther into coding.  While I want to get into coding, I feel I need to better understand the ideas that keep going in my head before I jump into anything.  This will be still most likely focused on JavaScript and Node.  Many feel that it isn’t good for big projects but I want to prove it can be.

Next thing I have done is delete Facebook off of my phone.  I have found it to be too much of a distraction and caused me to not focus on what needs to get done at that time.  Along with how politics are now, it feels like that is all that Facebook has become and really just don’t want that in my life.

Lastly, I have done something that I have been meaning to do for a long time.  I am using Ubuntu 16.10 as my primary OS at home.  This is big seeing I’m still taking two classes so I am going to be forced to use LibreOffice and figure out ways to play games, if I end up even doing that.  Right now I am trying to focus on finishing school and working on my project, Eden.

To train the elePHPant

So to begin, I’ve currently been doing a quite a bit of Perl, python and come from a Java background.  These factors actually play a little into why PHP also interests me.  From what I’ve done with PHP and what I’ve read, PHP was really influenced by Perl and Java, which does seem very fitting due to some of the syntax being similar to Perl and Java combined.

While some would find this a bad thing, the more I’ve thought about it, I kinda like it.  To begin some of my personal training, I’m beginning with reading PHP The Right Way.  This gives a good base of what I want to do and reminds me a lot of the PEPs from Python.

Next week will be the week I’ll hope to get a little time to look at this, between time between classes, and being off of work for a week, I should have some time.  This time will be used to take care of my newborn daughter, and my son who is getting surgery, but should have some extra time.

The other thing I need to set up is a LAMP server.  I am debating on having this be something that I can access anywhere, but be a personal server.  I know these are super simple to setup and want to make sure it is nice and secure.  That is what I want to focus on, a secure back-end to give businesses confidence to use the software application.  Well that is all for now.

The Elephant in the room.

So no matter what I do I cannot figure what programming language I should do for this.  I want to be able to use something that is really good for web applications.  I’ve been reading what seems to be so many articles and blog posts that I have lost my mind.  While Python is a great all around language, NodeJS /JS is great for bots, chat and any real time programs, and then there is still the Elephant, PHP, PHP7 to be exact.

PHP in general seems to be one of the best web languages around.  From companies like Slack, Facebook and many more using PHP as their main language it is hard to not think that it maybe a good idea to learn it, use it, and make the best of a language that many feel is one of the weirder languages, it is semi closely tied to two languages I have dealt a lot with.  The two languages are Java and Perl.  The amount of resources that can be found for PHP is amazing.

Another thing that seems to be misunderstood is ease of installation.  Using PHP means that I can easily install the application onto any web server with a simple LAMP.  Along with ease of installation is performance.  Many say that PHP is not a fast language, but from what I can find  PHP7 is a huge improvement of performance.  From what I have read, based on https://blog.famzah.net/2016/02/09/cpp-vs-python-vs-perl-vs-php-performance-benchmark-2016/ and many other postings I’ve seen, for a scripting language this is one of the fastest languages you can use.  As you can see, the numbers are way better than PHP5, and quite better than PERL and Python in certain aspects.  Yes I know Python is one of the most popular languages, and has many features that allow for fast development, and maybe cleaner code, but any language can be programmed to be cleanly coded and organized.

Oh well, time to train and ride the elephant.  Until next time.