Live data from Hacker News

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

news.ycombinator.com

71–80 of 96 posts

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

#71
post #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 M…

>idiosyncratic syntax

How is something like `Dim x as Integer` not idiosyncratic?

>syntax and semantics that were traditional

What's more traditional than C's syntax?

I'm not going to tell you that you shouldn't use VB, but those reasons are BS.

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

#72
post #58

I can propose another one: ActionScript 3 see: https://github.com/Corsaair/redtamarin So yeah I'm the author of this project and while when I started it, it was mainly for fun "let's run AS3 on the command-line", couple of years ago I started to force myself to use it more and more server-side in the spirit of "eat your own dog food", and quite happy with it for my own side projects. Now, as any other dev I also work…

RedTamarin does look like a great project, and I'm impressed by how much effort you've clearly put into it.

I was just curious, what are your thoughts about Haxe? It's not quite the same as AS3, but it is meant to be fairly similar.

https://en.wikipedia.org/wiki/Haxe

https://haxe.org/

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

#73
I usually decide based on some combination of a) do I know the language/platform well b) is this for a client or for fun c) is this for learning, and d) is this a mainstream platform, then (e) if not, then does it have an advantage solving an important problem at hand?

If (b) for a client, then (a)/(d)/(e) are important. I know the .NET platform best and it's a mainstream platform, so I tend toward that one. If your strongest platform is X, then I think usually you should use X in general, unless something else has a distinct advantage (i.e., write device drivers in C or C++, not C#; use Y because it has libraries available that would save you tons of work, etc).

If (b) for fun, then I pick whatever I feel like piddling around with. Sometimes Node, Go, F#, C++, whatever.

If (c) for learning, then I pick something useful to me or something I need to get better at. Right now this is F# and C++ for me, but will sometimes be something esoteric.

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

#74
I look at whether I need a quick prototype or a long term solution. I find it is much quicker to hack a web based prototype in NodeJS as compared to Java. Also, what kind of UI do we need, most of the times it's a web/javascript based UI then the choice is NodeJS because of seamless data transfer using JSON, other times the backend doesn't necessarily have to talk a lot with UI like Batch jobs and I prefer Java. If I am going to need a lot of CPU intensive jobs where manually spawning multiple threads can be beneficial I would go for Java, NodeJS will not be very beneficial in that case. Other than that it comes to features each language provides, like rich and robust concurrent and collections library of Java. Similarly if a lot of data analysis is required python is a clear choice of many, again because of the rich data analysis libraries.

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

#75
If you have not already done so, I would recommend choosing a language to invest in, with the goal of becoming proficient in it. The purpose here is to select a language to be your "default" language. Write out a list of the things you value the most in a language and the things you wish to avoid. Examine the languages/paradigms you have already learned. Do any of these meet the criteria you listed (pros/cons)? If so, pick one of these to learn at a deeper level. If none of these are satisfactory, spend some time researching other languages or paradigms. Do other languages/paradigms match your criteria more closely? If so, it may be worth investing the time to learn something new.

I have yet to come across the "perfect" language or paradigm, but I have come across ones that have stretched me to learn new concepts I likely would not have learned otherwise.

One criteria I would not leave off the list is this: "I want to enjoy working with the language/paradigm."

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

#76
post #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.

Basically on par with Java -JIT optimizations +less memory bloat, startup speed. For even more performance something from C, C++, Rust league is necessary

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

#77
post #21

I have a personal rule, which I've shared on here before and people seem to think has some merit: If a project is innovative in a business sense, then choose a boring technology. If it is boring in a business sense, then choose an interesting technology.

And if it's innovative in a technical sense, then choose innovative technology. If it's merely innovative in a business sense, then it doesn't matter what you choose.

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

#79
post #30

If you're starting a one man project, just take the one you're being the most productive in. If the project is a team effort, then it comes down to the team preferences or team members' willingness to change. From my experience, team adopting a completely new language isn't the big deal per se, more difficult is team dynamics, requirements/people changes, hiring new team members especially if your area can't provide…

"Go with what you know." It even rhymes. I'm all for learning stuff, and if I'm working on a project that has no particular deadline (or a deadline that's far enough out that I can deal with frustrations of learning), by all means use new and shiny. But if I have a real goal and a deadline, I'm going to use something I already know in and out so I can spend my time making, not learning. If I get something to producti…

We're on the same page here. :thumbs-up:
Post reply on HN