Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You based a business decision to switch language on "boredom"?

What size team are you working with, that you were able to switch from Java to Go?



Best reason ever!

Just to push a counterpoint, I never understood those startups with foosball tables, sponsored beer, team workaholidays on tropical islands but god forbid the work itself is any fun.

If a technology choice makes people enjoy their work more, learn new things, help them think differently and thus get more creative, then isn't that a big plus? Sure, maybe it does not weigh up to whatever downsides there are, but it counts! The whole idea that "fun" isn't allowed to be an important argument in a business decision feels horribly outdated to me.


Voice of dissension here. I switched from:

* Mysql to MongoDB * PHP to Python * Javascript to Coffeescript

All because I was bored of the old tech.

and it made the site unmaintainable. I mostly blame the MongoDB and Coffeescript for that.

Now to be fair, I learned a ton and I am so glad for that experience, but I lost my website.


Do you really thing it's fair to blame a whole language for making your project unmaintainable, when you admit you were just learning it -- and you had come from PHP?


php is much maligned here on HN, but it doesn't mean that it automatically makes for a bad programmer.

Here's another exmaple for you: Over the years, the project I work on has used the following:

vb .NET C# .NET

WCF asp Webforms MVC2 MVC4

The result is a maintenance headache (it's not a nightmare, but we do have to pause every time we unexpectedly encounter VB!), and that's where we've been disciplined enough to stay within the MS/ASP stack. Had developers been allowed to really go off-piste then we no doubt would have even more choices, and as a result be even less maintainable.

Yes, you might not be attractive to a certain subset of programmers if you are seen to be not using a trendy new language or framework, but there's the other side that by often switching you are left with a long laundry list you need to satisfy when you're recruiting so they can maintain the older parts. We already don't require vb experience, and we expect that people can pick it up well enough to maintain it, but a side-project in "go" might seem fun now, but if it becomes part of the business then you might find that in 5 years you have to take a bad choice in recruiting because otherwise you're left without anyone who can maintain that application.


> but it doesn't mean that it automatically makes for a bad programmer.

I came to PHP late from proper languages circa 2008/2009ish been programming since I was a kid in the 80's, I've no great love for the language, it's purely a tool and once you ignore the rusty bits it's not a bad language for a lot of web stuff but I've never been concerned with purity/beauty for it's own sake I just care about what I can do in a language, these days I use PHP a lot on the web, Python for just about everything else (even my build system for automating browserify is in Python using Envoy) and I play with Go and such on the side.

All that and there is a lot of work in PHP clearing up after others (if you like those kinds of engineering problems which I do) which is also nice.


I dont blame a whole language. Again, it was mostly mongo and coffeescript. Python was the best thing about the project.


<quote>All because I was bored of the old tech. and it made the site unmaintainable. I mostly blame the MongoDB and Coffeescript for that.</quote> I think the blame would logically reside with you.


Thanks for reminding me.


MongoDB I can see, but Coffeescript is just sugar on top of Javascript, and I struggle to see how it could make any code unmaintainable – but i'd be interested to know why!


Oh, you switch to MongoDB if you are bored with your current job ;) Otherwise PostgreSQL is what you switch to.


What's the problem with document databases, really? To be honest, for 80% of the projects I've ever worked with, fixed-schema rdbms's fitted just like... a square peg in a round hole!

Heck, even for advanced analytics, I find mongo aggregates and mongo map reduce 10x more intuitive and SQL that inevitably ends up using zillions of non-portable tricks, stored procedures and god knows what. And atomicity and whatever else transactions guarantee you in theory can be easily emulated with some good db structure design tricks and app design tricks in practice.

And the smarter a RDBMS is, like Postgres, the more dangerous it becomes for maintainability: it's a zillion times easier to maintain 'logic expressed in app code' (because you have basic stuff like version control, tests and so on), than 'logic trapped in the db' (good luck explaining to a new developer how "X automagically happens because of trigger Y and stored procedure Z, so there is no app code for X that you can instantly tweak to change how it works"). This is why I at least have some respect for mysql: it's retarded enough that it forces you to put the login in the code, where it f belongs!

Really, give me a dumb document db like mongo any day! And if I want something "less dumb" there're things like arangodb and rethinkdb that can also do joins and graphs. And there're also "true graph-dbs" for index-less "joins"/traversals, like neo4j and orientdb, for when the relationships for when you actually end up doing more than 3 to 4 levels deep joins...

Imho the development of "high-end rdbms" like postgress and oracle has been a huge waste of human brainpower and all the benefits supposedly provided by these pieces of technology were actually from the clever app-level code that mostly worked around their inappropriateness...


I was not referring to document databases as a whole, just to MongoDB in particular. You can use PostgreSQL as a document database. I heard too many stories with Mongo where people were dealing with locks or broken data instead of solving their business problems.


Yeah odd choice in that Go is a very boring language (and its enthusiasts consider this a feature).


What's "boring" about it? I'd argue that the possibilities for crazy concurrency patterns make it exciting.


> You based a business decision to switch language on "boredom"?

Not just boredom but Java induced boredom. In case of Java boredom is symptom not the essence.


Good question. Small team of 2 developers, so I had that kind of luxury, which I am sure is not there when you have larger teams.


If he were honest, I'm sure the weights for each factor really look like this:

*

*

*

*

*

*

* *

* * * *

* * * * * *

(2) (1) (3) (4) (5) (all others)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: