News for hackers. Stuff that matters.
Re:Ask HN: Best business advice for software developers by Kenji on Wednesday April 19, 2017 @12:13PM (#14148860)
>Remember that the most economical tool for the job is often not the coolest or trendiest - but is some old boring workhorse that other engineers will scoff at.

When I read this, a voice in my head yelled PHP.

Re:Ask HN: Best business advice for software developers by cookiecaper on Wednesday April 19, 2017 @12:22PM (#14148942)
It could be anything in the top 20, really [0]. The problem is that devs have an impulse to do something experimental and cool, since they have to work with workhorse languages all day at their day jobs.

The myth that they tell themselves is that $REVOLUTIONARY_FEATURE_Y will greatly improve their productivity, but the fact of the matter is usually that no matter how revolutionary the features, it's hard to overcome the benefits that come from an active ecosystem of well-tested and widely used libraries. Even if productivity is improved 20x by the revolutionary feature, a library that has 10 man-years of effort in it will take you 6 months to implement. Rinse and repeat.

This is not to mention the availability of online references and established conventions/best practices, the impact of hitting esoteric errors, and so on.

A good example of this is probably reddit. Originally written in Lisp, they eventually gave up and compromised down to Python due to improved tooling and library availability. [1]

[0] https://www.tiobe.com/tiobe-index/

[1] https://redditblog.com/2005/12/05/on-lisp/

Re:Ask HN: Best business advice for software developers by horsecaptin on Wednesday April 19, 2017 @12:16PM (#14148893)
These days Ruby on Rails is fairly orderly as well.
Re:Ask HN: Best business advice for software developers by wyc on Wednesday April 19, 2017 @12:21PM (#14148935)
Wrote about this here in an article titled Just Build it in Django or Rails:

https://www.wyc.io/posts/just-build-it-in-django-or-rails/

It's just really hard to beat the reliability, community, ecosystem, and features that are table stakes when using a competent web framework.

When you're poking at a new market, you really don't have time to give a shit about writing CSRF middleware. That's one less customer interview or feature request to grow your business. I'm sure you can do it, and no one's doubting your capability to do so. But these are just things that are tricky to implement and takes everyone time and effort to do so correctly.

Re:Ask HN: Best business advice for software developers by sho on Wednesday April 19, 2017 @02:01PM (#14150092)
I have a couple of criticisms of your article. Firstly, you give a list of successful companies who made the "safe choice" you're advocating, but you fail to mention that at the time the companies adopted those projects they were actually the cool, risky new upstarts. Your first example, Twitter, started in 2006 - a mere 18 or so months after Rails 0.8. If Twitter had followed your advice of using a 13 year old web framework when they started, what would they have been using? ColdFusion? They succeeded by using the productive new technology - which at the time (absolutely not now) was Rails.

And secondly, some of the features you list the frameworks as having are questionable at best. Rails has built-in user accounts, permissions and admin interface? Since when? And action cable is a great example of everything that's wrong with Rails - kludge together a frankenstein solution to tick a feature box. I do not know a single production user.

I think you confused the two messages of "don't build your own web framework" (I heartily agree) with your assertion that a startup in 2017 would be somehow remiss to not be using frameworks developed in the time of Windows XP, with which I do not agree.

For me the current "Rails in 2006" framework is elixir/phoenix, and for the slightly less adventurous, something in nodejs - maybe meteor or plain express. Of course Rails still works, and is not an absolutely horrible choice, but it's for last decade's web, and has profound disadvantages compared to today's technology.

Re:Ask HN: Best business advice for software developers by wyc on Wednesday April 19, 2017 @03:00PM (#14150696)
I agree with you completely that these frameworks are old. They don't get features like websockets immediately. From a performance standpoint, they are lacking with respect to compiled languages. Statically-typed choices have come a long way.

However, for new business owners who don't care so much about getting an A+ for technical excellence, I would still stand by this advice. The benefits of technology maturity and ecosystem are extremely compelling.

Today, for someone who just wants to let their users log in with Facebook, Elixir has far fewer user-friendly resources and will require more technical expertise to produce the same result. How many StackOverflow questions address common woes in these popular frameworks as opposed to the up-and-comers? How easy is it to hire someone to build + maintain? What about for hiring on the cheap? What existing libraries and integrations exist?

Of course, these things get better for new technologies over time. Until then, I can't tell people to use them if it incurs a disproportionate cost to achieve the same return.

Lastly, that "it's old" is not a compelling reason to me to recommend something else. GNU/Linux was created in the 90s, and it's still everywhere and growing. There's a job for an operating system to do, and GNU/Linux solves it well enough for the amount of effort required to use it. I believe the same to be true for Django or Rails in building a fast business prototype for most enterprise or consumer use cases. I think measures of suitability for the task are more relevant than age.

Re:Ask HN: Best business advice for software developers by sho on Thursday April 20, 2017 @12:51AM (#14154060)
Well, I agree with you of course. Re-reading my comment, I overstated my case somewhat. The truth, as always, is somewhere in the middle. I suppose I was reacting to the previous comments as well, asserting that anyone choosing anything other than the boring, tried-and-true mature stacks for any new project whatsoever was being "seduced by technology" and otherwise an irresponsible and non-pragmatic neophilic dilettante who is not a Serious Businessman Like Me.

For the use case you're describing, I agree completely with your comments. Perhaps a useful razor is - if you can't state specifically why you can't use rails (and don't say "it doesn't scale"!) - then use rails. I concede that 90% of the time, this is probably the case.

And yes, harping on about its age was silly of me. Age does not inherently mean anything. I'd use postgres (1984!) over mongodb anyday. And erlang is older than ruby. Right tool for the job is far more important, thanks for pulling me up on that.

All that said - I still think that categorically stating "use boring technology" or "just use rails" for absolutely any new project is harmful. New technologies are not always just about the new shiny, they can provide capabilities and functionality simply unachievable with the old. Look at what you can do with concurrency with phoenix. Look at what you can do with react native. Roundly writing off the whole idea of using this new tech as "magpie development" is just lazy.

Re:Ask HN: Best business advice for software developers by aaronbrethorst on Wednesday April 19, 2017 @03:54PM (#14151163)
> And action cable is a great example of everything that's wrong with Rails - kludge together a frankenstein solution to tick a feature box. I do not know a single production user.

The whole point of ActionCable was that it is being used by Basecamp: https://medium.com/@dhh/rails-5-action-cable-demo-8bba4ccfc5...

Re:Ask HN: Best business advice for software developers by tomc1985 on Wednesday April 19, 2017 @02:30PM (#14150394)
I have to agree. Rails is so much more productive now that the cowboys are gone... they're all writing node.js now snicker
Re:Ask HN: Best business advice for software developers by krystiangw on Wednesday April 19, 2017 @12:43PM (#14149142)
I would use NodeJS for MVP. I think it is super important that you can have backend + frontend in the same technology.
Re:Ask HN: Best business advice for software developers by scott_karana on Wednesday April 19, 2017 @12:48PM (#14149195)
Why? If you're proficient in multiple languages, there's no real upside, especially if each language is easily hireable.

And it's particularly irrelevant if the front-end or back-end is weighted more heavily than the other in terms of product value, when you might hire distinct rather than "full stack" devs someday.

Re:Ask HN: Best business advice for software developers by overdrivetg on Wednesday April 19, 2017 @08:33PM (#14153018)
Two big reasons are:

1. Your devs can always go to where the work is - if you divide FE/BE and suddenly you have a feature that needs a lot of BE dev, you can move people from the now-mostly idle FE team rather than try to hire them

2. You can share business logic between FE/BE for client-side functionality. I've seen a surprising amount of bugs that boiled down to "oh we updated code on the back end but forgot it surfaced somewhere in FE code as well and didn't update there"

Of course, YMMV and this probably highly depends on your project, architecture, quality sensitivity, etc etc. But to say sharing FE/BE languages has "no real upside" is a bit... optimistic IMO.

Re:Ask HN: Best business advice for software developers by scott_karana on Thursday April 20, 2017 @03:50PM (#14160198)
Point 2 is a good call. Hadn't thought of that.

In practice, Point 1 isn't too realistic though:

Front-end and back-end almost always use different build/debugging tooling, different unit/integration testing frameworks, and even different paradigms. Unless your developers are good at constantly switching modes, it's hard.

"no real upside" is wrong, as you point out, but I would stand by "no guaranteed upside" :-)

Re:Ask HN: Best business advice for software developers by vinceguidry on Wednesday April 19, 2017 @12:56PM (#14149280)
Re:Ask HN: Best business advice for software developers by wavemode on Wednesday April 19, 2017 @02:05PM (#14150133)
Node JavaScript and browser JavaScript are not the same technology, they just use the same language (and even then, not really).