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.

Sometimes it is best to use what you know….So lets begin with a cup o’ joe

To begin with, while I enjoy Python, Javascript, and many other languages, Java still has been one that I have a fondness for.  Many people hate it for various reasons for developing including, but not limited to:

  1. It is slow – to me, it doesn’t feel that slow with the latest versions that have been out.  I do believe many people are used to the older slower J2EE and older version of the JDK.  A great, yet older benchmark, is shown at geeknizer.com.  This shows that while 1.5 was pretty slow, there have been huge advancements in the world of the JDK to speed it up.
  2. It is too verbose – Honestly, don’t know why, I enjoy that it is.  I like a little more detail needed to code and really don’t mind having to code more of the project.
  3. Java isn’t good for web development – This was the case, but Java EE has made doing web development way easier than people would think.  Using application servers like Paraya/Glassfish, jboss, and wildfly are very important to what type of performance is seen.  While many are fans of just using the technologies like Tomcat for their web development, I would rather have a full application server that allows me to use and expand the application when I would need to.

This is just a few of the examples of what I hear when I say that Java isn’t good to use.  While there are some aspects of Java that are interesting, I think that Java will be something used for a long time, even if it isn’t in the form of Oracle owning it.  I think in the end it will become more of an Open and run by the community instead of by a company.

Yes I understand that Java EE has been kind of in a weird place lately, I feel that when it does officially get updated, it will be helpful for many areas.  Along with this it is still one of the most popular languages around and is also still one of the most popular in the enterprise world.

While C# could be fought as being its “replacement”, I feel that it really isn’t the best for everything due to it still being quite tightly paired with Microsoft.  This has begun to get way better with the Open Sourcing of it, yet still is not the easiest to deal with.  And Mono is a semi-OK alternative to using Microsoft’s technology.

I don’t know how well C# .net applications work on things like Apache though, and the last thing I want to use is IIS…

Well that is all for today, I may do a semi setup tutorial for setting up Paraya or Glassfish and what needs to be done to connect to a MySQL database with it.  It will be helpful for many people that want to get into Java EE development.