Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialSteven Ventimiglia
27,371 PointsGo, Go... Go! Who else is excited?
Well, it's been quite a crazy journey through the world of development over the past few years. I think, after taking a course, I've finally found the Holy Grail. The Go Language ('golang'.)
After a couple of years of other Treehouse students asking for them to present a course on, what I consider a hitman of the MEAN stack (and quite possibly Google's way of, imho, fading out a horrible mistake they made), we now have a countdown on the content roadmap!
https://teamtreehouse.com/roadmap
This is the next step; An open-source language by the co-creators of C, Unix, UTF-8, Hotspot and JVM - and backed by Google. It's also currently used within top-tier companies.
As someone who's been entrenched in online development and user experience since before the Internet (aka 'The BBS Scene', ANSI and Assembly), it intuitively feels like the next step. I think, after Treehouse starts adding more Go courses - which could result in an entire track - you guys will be joining the world of Gophers in no time. Let's see where this goes. ;)
6 Answers
stjarnan
Front End Web Development Techdegree Graduate 56,488 PointsI am also very excited!
I have not tried Go yet, and the Treehouse overview releasing soon will be my first dip into Golang. I am excited as I've heard so much good things about it. Go's climb on the TIOBE Index speaks for itself.
I personally have no idea how it works, why you would use it etc. When you say Go could act as a hitman for the MEAN stack, would you like to explain to me why, and how it would be better?
Thanks in advance!
Martin Gallauner
10,808 PointsGreat, this was the reason I took a look at the community forum today :D
stjarnan
Front End Web Development Techdegree Graduate 56,488 PointsThank you so much for this in-depth reply Steven!
I really appreciate it!
Steven Ventimiglia
27,371 PointsNo problem. Also, just to make things a bit more clear - in no way am I downplaying what other developers and designers are accomplishing with MEAN, MERN, etc. I've taken pencil stubs with an eraser left, and made cool sketches with them... so to an extent, this is how I perceive that set of tools and frameworks. With Go, however, the further I dive into it (approx. 12 hours more since my initial post) - with experience in Assembly, VBScript (ASP Classic), .NET, PHP, Python and Ruby - to me, this is a sturdy mechanical pencil with unlimited lead. :)
Steven Ventimiglia
27,371 PointsUPDATE: The Go course now has the trailer link and QA tag added to it, within the library. (https://teamtreehouse.com/library)
Steven Ventimiglia
27,371 PointsSteven Ventimiglia
27,371 PointsThe MEAN stack has slowly become cluttered and inconsistent. Two things that are villains in both worlds of design and development.
NPM reminds me of Github - there are always benefits to be found in forking a repo or giving the public an initial repo to consume. However, 85% of all repos become antiquated through an inactive member, or even worse, they build a huge list of issues that are ignored until the repo is abandoned. This is way too common with NPM - which makes it the Github of package managers; compared to yum, apt-get, brew, and choco. So then, you have dependencies breaking - and sure, it's flexible enough to find a replacement - but why should you have to? Node.js was a great hallmark in the world of Javascript, but SPAs are like MySpace... made to eventually be replaced by something more effective.
I like Express, for what it is. However, I'm not a fan of frameworks since I feel the need to know how something works as opposed to typing a line and having it work without understanding why.
Angular is broken, overused, and was such a mess that they not only "upgraded" it... but they rewrote it from scratch with zero backwards compatibility. Everyone adopted it before 2.0, and now they feel jilted. So they hate and refuse to support 2.0, unless they're a new breed of developer who is adopting Angular, starting with 2.0.
MongoDB, is effective, but it's not a strong system. It's much like the rest of MEAN... ignoring why it's there as opposed to what it does. For a lead generation page, sure. For a full web application that's scaleable, once you get popular, there's a huge chance that it will tear apart at the seams.
With Go, there is a forced consistency. Don't wanna put a space between both lines for "package main" and "import 'fmt'"? Nope. And, guess what... gofmt reformats your code, and golint prints out style mistakes. It actually helps any Go developer to become more consistent with each other's code. The directory structure is also just as firm, but there's a reason for it, much like the code itself - consistency.
It's static, concurrent and many other things. In fact, once you start learning how to write it, you start to notice the small and beautiful benefits of embracing it - such as holding down CTRL or CMD and hovering over your code... only to realize that you can click on something like "fmt" and it will show you the line where it was imported, as well as doing the same with "Println" and it literally loads a library of native functions, explaining to you what makes it work, with nice descriptions in the form of comments. It's comparable to how a JS reference can be researched via MDN, but it literally loads into your editor and doesn't even require a connection to access.
Then we have cross-platform compatibility. You can create an executable for Windows, OS X/Mac OS, Linux, Android and iOS. Write it once, and make it native to whatever you want (if not all of the above.) With five lines of code, and one command in the terminal, you can create a simple "Hello, World!" executable file. A few more lines of code, you can create a server and a web page.
Also, to repeat something from the last post... it was created by the men who helped build and debug Unix, as well as creating UTF-8, C, JVM, and Hotspot. Supported by Google and now being taught at Treehouse. And, this is just the beginning. I wouldn't be surprised if it permanently knocks Ruby down a couple of notches, within the next 24 months, from the TIOBE Index as well as other languages within the next decade.
Then again, this is purely based on my opinion. ;)