Live data from Hacker News

Ask HN: How do you decide for a backend language?

news.ycombinator.com

41–50 of 96 posts

Re: Ask HN: How do you decide for a backend language?

#42

In my freelancing career I usually choose the language with the following Q&A to my colleagues ( myself, if it's a side project ). 1. Are there business requirements for the language ( already written project, specs, etc. ) ? 2. What kind of budget does the company has for hiring devs ( killing point for Clojure, Elixir, TypeScript, etc. ) ? 3. What's the most difficult problem that needs to be solved by the product…

> 2. What kind of budget does the company has for hiring devs ( killing point for Clojure, Elixir, TypeScript, etc. ) ?

To me it looks like right now it would be easier to hire elixir devs than for instance ruby devs, lots of people are happy where they are but would jump ship in order to work with a new/interesting technology

Re: Ask HN: How do you decide for a backend language?

#44
I use the best tool for the job. If it is a quick scripting kind of thing, python. An API, i'll probably use Ruby which has a gem for everything. If there's a lot of complicated rules where I might refactor a bit, i'll use a strongly typed language like C#. If its a data thing, keep it in sql. If its a stats thing maybe R. If it's a hardware kind of thing, C++.

I don't really care about what's hot or trendy, I just want to accomplish the goal, and i'll use the tool that gets me there fastest.

Re: Ask HN: How do you decide for a backend language?

#45
Start based on the project itself.

If it's a personal project and there are no risks involved, it's a change to pick a new, innovative or trendy language, like Go, Elixir, Clojure, Rust, etc.

If it's a personal project, but you want to complete it fast, probably pick whatever you are more comfortable with. Don't try a new environment if you have to deliver in time.

If it's a corporate project and chances you are not alone in that project, pick whatever is more comfortable for the team. Don't try to innovate that much or you have a chance of have a world of not predicted problems with that language/environment.

But if it's a corporate project and you are mostly alone, then you could pick a different language from that world. Some language that you have deeper knowledge that others and maybe you wanted the team to try/adopt. And that's a quite nice opportunity to both showcase you abilities, initiative and the language itself - because companies generally have a hard time adopting new things.

Re: Ask HN: How do you decide for a backend language?

#46

* Golang for something CPU-bound, small apis that should be really really performant * Elixir/Phoenix for mostly everything else, including REST APIs, regular web-apps, various chats, backends for games, mobile apps. How? It should be easy and fast to write some functionality, easy to add functionality on late phases of development, it should be "secure by default" (e.g. autoescaping untrusted input, cross-site-scrip…

Go is reasonably performant (compared to slowpokes like eg Python or Ruby), but not actually all that fast.

But that's probably fast enough for most projects, and seems to be fast enough for you.

Re: Ask HN: How do you decide for a backend language?

#48

In my freelancing career I usually choose the language with the following Q&A to my colleagues ( myself, if it's a side project ). 1. Are there business requirements for the language ( already written project, specs, etc. ) ? 2. What kind of budget does the company has for hiring devs ( killing point for Clojure, Elixir, TypeScript, etc. ) ? 3. What's the most difficult problem that needs to be solved by the product…

The other factor I'd consider: is working on this project someone's full-time primary job, part-time or shared by multiple people, or a one-time contract gig?

A rapidly-evolving language / library ecosystem can be great if you work on it full-time and have a lot of supporting infrastructure but miserable if you're the person who was just told to patch a security hole flagged in the last audit and you end up needing to upgrade dependencies with a dozen breaking API changes just to install the version of something which the maintainers officially support.

Re: Ask HN: How do you decide for a backend language?

#49
I always start with Python, because I can't find any other language to be just as easy for others, including the "me of the future" to understand.

Then I go through Python's ups and downs for that specific project.

Is Python too slow for this? Then let's take a look at the most python-like techs on the "fast as hell" list.

Does it need to be small/embedded? So let's look at the Pythonics of the the crudest languages.

In recent years, this means almost anything I write is either Python or Go.

Re: Ask HN: How do you decide for a backend language?

#50
For a server-side language:

First, I decided to use Windows for my operating system. Why? Because when I made the decision, my computing experience had been on IBM mainframes, super-mini computers, PCs, and OS/2 with no Unix or Linux experience.

Second, on Windows I wanted a language that was a main Microsoft language with their best integration with .NET, ADO.NET for access to SQL Server, ASP.NET for access to the Microsoft IIS (their Web server software, Internet Information Server), etc. I wanted Microsoft's best documentation.

For performance, I wanted a compiled language.

And I wanted a language with syntax and semantics that were traditional and easy to read, write, teach, and learn. I did want to avoid the deliberately idiosyncratic syntax of C also borrowed by C++ and C#.

I have no interest in functional programming.

So, I settled on the .NET version of Visual Basic .NET.

For the language, I'm just thrilled with it. For my startup, for the on-line production code, I've typed in 80,000 lines of text with about 20,000 statements in Visual Basic .NET.

I find the language syntax and semantics easy to work with. The compiler is nicely fast. I am not sure I have yet found a bug. How the language works with IIS for developing Web sites is just terrific and, apparently, not commonly, clearly explained.

Oh, and I use no IDE (integrated development environment, e.g., Visual Studio) and, instead, just type into my favorite text editor and use some command line scripts.

My main beefs with Microsoft are (1) I wish the quality of the technical writing in their documentation was much better and (2) I wish Windows was much less vulnerable to computer malware.

But, for the question here, for a language, for me and my startup, it's Visual Basic .NET. I'm thrilled with it.

For client side code:

I use just some simple, old version of HTML with a little, simple CSS. For my Web pages, so far I have yet to write even a single line of JavaScript although Microsoft's ASP.NET writes a little for me. From what I've seen of more in client side programming in Web pages, I want as little as possible.

Post reply on HN