You get every single clap I have today. This is such an accurate and surprisingly comprehensive overview that is approachable for those beginners considering it. I am specifically impressed by your coverage of “opinionatedness”. To someone like me (a Perl coder originally, and no it is not all bad) who saw Python win based on opinions it is not a hard conclusion to make that opinions are great if they are the right opinions. Rob Pike was one of the two main creators of UNICODE itself. People like that simply do not exist in the other communities. People with that level of conviction toward compiler optimization and more. Go, for example, has no
while keyword, and why would it? It is redundant.
The Go community is perhaps the number one reason Go is my favorite language (yes we are allowed to have favorites). I can completely confirm John Arundel’s observations about that community.
TJ (creator of the “E” in MEAN stack and so many more things to the point many think he is a mythical figure) was the 10x-er I was following (and everyone should to keep aware of stuff) who made the switch and very succinctly described why. I cannot express enough my gratitude for that post he made. Soon after it became my favorite.
One big plus that you did not mention is that you can compile code to run on any platform from any other platform. This is perhaps one of the biggest motivations for going with the language. I can compile a Windows compatible exe file from my Mac or Linux machine. Anyone who has done any sort of endpoint deployments (like we did to 52K machines at IBM) will know how valuable that single advantage is. Now with LLVM more are allowing that (Julia, and the super hot Crystal) but they do not have the artistic emphasis on compilation speed that Go has.
Yet I think it is essential to learn fundamentals in more than one language. Specifically, Python, ES6 and Go provide a wealthy amount of comparison and concept demonstration.
const and dot notation for maps/objects. Then there is package management. Python falls on its face there.
This is not a language bigot thing. Python, the darling of the science and data field, doesn’t even have constants. Think about that for a moment.
My point is simply, to gain an actual proficiency in programming fundamentals one needs to master at least three language up to, but not necessarily, including language paradigms. Carnegie Mellon agrees. They do not even teach object oriented programming to freshman (but do to sophomores).
The industry is woahfully deficient in providing any credential related to Fundamentals in Programming and so I will mention it as a call to anyone to create one. But without it, we are preparing one here at SkilStak that other educators might enjoy modeling:
- Entirely from the command line
- No multiple choice
gitskills to take it
- Graded by a human
The concepts that one can compare and contrast with these three languages in particular is very educational because they are relatively different.
This is the first post about Go on the freeCodeCamp community that I have personally seen and I am glad to see Quincy Larson entertaining other topics unrelated to the those tested through the program. Thanks for that.