re: To func, or not to func: that is the question. VIEW POST


Interesting choices! I love getting the opportunity to tinker with new languages.

Regarding Go (my favorite language), here are a few bullet thoughts regarding your case bullets:

  • agreed on the obtuse management - personally, it's never been a huge problem but I understand the issue
  • the Go community is actively developing the language while also being very deliberate on introducing too many features (simplicity which I appreciate!)
  • and yes, the ever-present if err != nil { ... } and interface implementation get verbose : )

Personally, I've found the community and documentation to be immensely knowledgeable and very open to building and explaining simple solutions implemented with the language for what it's worth.


This really struck a chord with me. Especially as a data scientist, I would've figured you'd be functional all the way. Or at least heavily vested in python.

Have you found the type system in Go to be rich enough to do what you need it to?


So (for context), I work professionally as a data scientist/software engineer and my team (a small startup) primarily utilizes Java and Python for the broad majority of our codebase; the current team prefers Python and we're gradually writing more of our code in that vein as a machine learning shop. I've only poked at OCaml once as far as functional programming goes, but I'm interested in learning more about that paradigm. In my personal side projects, I pretty much exclusively use Go, even for machine learning stuff. Given the size of my team at work, I might start sneaking in some Go into my work assignments too. ; )

As for the type system question: absolutely. It sticks to the mantra of less is more which for me encourages me to spend a lot of time thinking about what data I need and what it will look like. The struct object in particular coupled with interface really "visualizes" the data structures within the program for me.

Right now, I still feel like Python is the top language for machine learning/data science given the library support and community, but I'm personally expecting Go to begin factoring in more heavily with the support from Google in projects like TensorFlow.

Interesting! I work as a data engineer, with strong emphasis on ETL and API implementations using primarily SQL Server and C#. Those two tools have been invaluable in making my job easier, and I enjoy using them for the most part. From a side project perspective though, they pose some limitations, SQL Server especially.

In what way do they limit side projects? Out of curiosity/my own edification.

P.S. I have a buddy that comes from a C# background and I'll see if I can get him to add his two cents to this discussion.

My apologies, I had intended on being more specific to SQL Server in my final comment. It's limitation being the cost of a license for a production level system. Don't get me wrong SQL Express is a fine platform, but isn't really suitable for a production workload due to it's memory and cpu restrictions.

code of conduct - report abuse