News for hackers. Stuff that matters.

Ask HN: What framework/language should I use?

I'm a product/business guy who studied computer engineering in college. I'm familiar with the basic concepts but haven't coded for a living at all.

I want to build a web application and am unsure which language/framework I should go with... I considered node/express/meteor or python/django or ruby on rails... how do I even decide?

Thoughts?

( 23 comments | 7 points | on HN )
Re:Ask HN: What framework/language should I use? by spdebbarma on Friday June 08, 2018 @11:24AM (#17266341)
Hey Pranav,

I started learning web dev about a year back. I was right where you are and I will try to shed some light on what I finally landed on.

___

Frontend- ReactJS

Backend - Google Firebase

___

React is amazingly simple to learn. You just need to know some HTML, CSS and JS as a base. Google Firebase is probably one of the greatest things ever made. As a beginner, it helped me do things in days that would have taken me weeks.

This stack took me months to find and I'm so glad I did. I can even code and deploy static sites in minutes.

1. https://www.codementor.io/yurio/all-you-need-is-react-fireba...

Re:Ask HN: What framework/language should I use? by gls2ro on Saturday June 09, 2018 @02:22AM (#17271808)
I would suggest Ruby on Rails. I am not familiar with other frameworks, so it might be that others have the same advantages as I will describe below.

For me the first and most important aspect is that for a new idea/project I just create a new Rails project, add Devise (authentication gem) and in very short time I can have login/signup and a welcome page. All of them with a decent level of security so that I don't need to think a lot about CSFR, XSS, SQL Injection (if you will follow Active Record guidelines) and many other things.

In Rails you can create your frontend directly in HTML/CSS/Javascript without the need to learn also React or Vue. And this "old" way of doing things will allow you to focus on the product and not on learning two frameworks (Rails + Frontend Framework). At least for me this is what it brings.

Also it is very easy to make your webapp expose an API and thus connect to the backend business logic from a Mobile App or some other client. This way you can re-write later your backend incrementally without loosing any downtime.

There is a healthy community of functionality packed as Gems and if you need a feature that is pretty common it might be that someone created a gem for it. Please be aware that not all gems are equal.

Also I like the language - Ruby - because for me it was very easy to pick it up and in the beginning I did not need to understand everything to have a prototype running.

I will add to this that the community is very supportive. I suggest RubyonRails.link Slack community where you can really address your questions and in general someone will help you with it.

Re:Ask HN: What framework/language should I use? by earenndil on Friday June 08, 2018 @03:18PM (#17268803)
Literally use anything you want. The secret is that it doesn't matter that much. Some options:

* node.js

* python with django/flask

* perl

* php (please don't)

* C# with asp.net

* Java

* lisp

* d with vibe.d

* Rust

* C with bchs[1] (please don't)

* ruby with rails

* Write your own framework in one of the tiny languages that doesn't have one; it'll become the de facto standard for that language, and all of the users of that language will thank you for increasing its potential market share.

Point is, it really doesn't matter. What matters is you pick something, anything, look up a tutorial, and then start making your webapp. Don't like it? Pick another one! Don't like that one? Do it again! Language/framework doesn't matter that much, as long as you know it well.

1: https://learnbchs.org/

Re:Ask HN: What framework/language should I use? by dynamicdox on Friday June 08, 2018 @05:32PM (#17269886)
This a good list, but with some exceptions. At work I use laravel (php) and it is reasonably pleasant, works well, and is fast to develop with. On the other hand, I have been working on a project with nodejs/express/sequelize, and I have to say I’ve been a little let down. I love JavaScript and I like node a lot, but the lack of features in very popular libraries is worrisome. I found myself really disliking sequelize, and express still doesn’t support async/await natively.
Re:Ask HN: What framework/language should I use? by BjoernKW on Friday June 08, 2018 @04:17AM (#17263543)
You probably can't go wrong with either Django or Rails. From my personal point of view I'd favour Rails. In the past at least, Django also was more about creating CMS-type applications whereas Rails' main focus always has been SaaS-type business applications.

There's an argument to be made for isomorphic / universal code as well, i.e. using JavaScript both in the back-end and the front-end. However, if you're fine with learning two languages I'd say that the productivity gains by mature frameworks such as Rails or Django outweigh the reduced cognitive load of having to work with only one language on both the server and the client.

Re:Ask HN: What framework/language should I use? by wizardofmysore on Friday June 08, 2018 @01:33AM (#17262847)
Couple of things to look for * Language preference * What is present out of the box * How easy it is to extend * Performance

I'd pick one among Django, Rails or one of the popular Js stacks for the backend.

For the front end the same criteria apply, however there is not much scope for language preference. I generally go for jQuery based site unless I have a requirement for a framework. From a framework perspective I liked React + JSX.

I'd say go for JavaScript in the backend too since you'll have to learn the best practices and idioms of a single language.

Re:Ask HN: What framework/language should I use? by saluki on Friday June 08, 2018 @01:20PM (#17267648)
I would recommend using Rails(Ruby) or Laravel(PHP).

Both have great communities to help you along the way.

Due to clients I have moved from Rails to Laravel. Both are similar.

Checkout Laracasts.com.

Laravel has some great tools. Valet (Local development environment) forge.laravel.com is a great tool for setting up servers and doing deployments.

Re:Ask HN: What framework/language should I use? by quantummkv on Friday June 08, 2018 @04:47AM (#17263666)
I would suggest Django over Rails. Python is powerful and beginner friendly and can be used for all sorts of stuff.

And whatever you do, don't go for JavaScript based frameworks. Setting them up is a pain and the plethora of options available for every single bit of the framework can be overwhelming for beginners.

Re:Ask HN: What framework/language should I use? by jstewartmobile on Friday June 08, 2018 @01:11AM (#17262740)
Since this is PG's website, take a more Bayesian approach:

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

ps: back end column/table

Re:Ask HN: What framework/language should I use? by wizardofmysore on Friday June 08, 2018 @01:19AM (#17262786)
That'd place java at the top. I wouldn't recommend java for a starter website though.
Re:Ask HN: What framework/language should I use? by pranavpiyush on Friday June 08, 2018 @01:23AM (#17262805)
you're right... i think i just ignored java while scanning the list :P
Re:Ask HN: What framework/language should I use? by wizardofmysore on Friday June 08, 2018 @01:27AM (#17262818)
Java is a great language for larger companies which need to focus on performance, cross platform support and high code quality. I have worked with python and Java for a living and when there is a project that is going to last for couple of years I'd choose Java hands down. However for a single or a few people startup Java is an overkill.
Re:Ask HN: What framework/language should I use? by pranavpiyush on Friday June 08, 2018 @01:17AM (#17262777)
hmm... that would result in php or c/c++/c#... really?
Re:Ask HN: What framework/language should I use? by jstewartmobile on Friday June 08, 2018 @01:55AM (#17262948)
all of the C# is MS stuff, so probably a dogfooding bias there. as for the rest, bayesian.
Re:Ask HN: What framework/language should I use? by anonfunction on Sunday June 10, 2018 @08:49AM (#17277864)
Check out Golang for the server, it's a statically typed language so it's fast and hard to introduce subtle bugs that can cause a lot of confusion. There is a ton of interest and mindshare moving towards Go and it's supported by Google so it's not going anywhere. Big projects like Docker and Kubernetes are written in Go.

For a web application I think most of the work will be in the frontend which basically means javascript. We've had a lot of success using Golang for the backend APIs and React for the frontend.

Re:Ask HN: What framework/language should I use? by sloaken on Sunday June 10, 2018 @03:58AM (#17277091)
It depends on your actual application. Given your lack of programming skills I have a hard time recommending any programming based technology.

As it stands you wi9ll not only need to learn the technology you are going to use but also the programming language.

When people ask me which programming language to learn, I recommend that with the best debugger. Screaming at the computer WTF! for an hour does not help sovle problems.

For a web application I am unsure which has a good debugger, although I am sure there is some variety.

I would also look for which ones provide plenty of learning material.

Re:Ask HN: What framework/language should I use? by gscott on Friday June 08, 2018 @01:16AM (#17262765)
Re:Ask HN: What framework/language should I use? by oweiler on Saturday June 09, 2018 @07:30AM (#17272504)
Node + Express on the Backend, Hyperapp + Bulma + Parcel on the Frontend.
Re:Ask HN: What framework/language should I use? by jeffnappi on Friday June 08, 2018 @01:08AM (#17262725)
Rails. No competition if you want to get shit done.
Re:Ask HN: What framework/language should I use? by wizardofmysore on Friday June 08, 2018 @01:17AM (#17262775)
Why would you put rails over Django? I have used Django in the past but don't have much idea about rails or ruby, could you shed some light?
Re:Ask HN: What framework/language should I use? by jeffnappi on Friday June 08, 2018 @10:51AM (#17265961)
To an experienced Python/Web developer I would most likely recommend Django. I personally spend my days writing Python, although my Python backends are Bottle+SQLAlchemy.

Rails has a large community with Gems that can solve most of a beginners needs, and also has full-fledged solutions for business ready to go (eg. Double Entry accounting systems, monetary exchange rates/handling, oauth/users, etc)

Perhaps I'm wrong and I should take another look at Django however :)

Re:Ask HN: What framework/language should I use? by mabynogy on Friday June 08, 2018 @01:04PM (#17267448)
Javascript and no framework.
Re:Ask HN: What framework/language should I use? by lamhoanganh on Friday June 08, 2018 @03:51AM (#17263455)
python/django is the best choice!