Hacker News new | ask | show | jobs
by criddell 2827 days ago
My problem sometimes is just getting started.

I have a simple little project I'd like to make to manage movie night with my friends. Right now we do it all over email and it's a confusing mess. Since I'm new to the world of web apps (and looking for an excuse to dive in), I needed to learn some background and now I'm firmly gripped by analysis paralysis. I've learned a bit of Go, of Ruby and Rails, Dart, Angular, and some others. I've read through most of the HTTP spec and I have Roy Fielding's paper where he defines REST in my Pocket account.

This morning I'm thinking I should check out Azure or maybe Google Cloud. But also I've done work in Java + Tomcat... maybe I should dust of my JDK?

I need somebody to say "here are the four things you need to make a one-page app that lets users express some preferences and constraints and a little engine in the background can tally the results".

4 comments

Ruby on Rails is more than enough for your needs. Pair it with some simple HTML, plain JavaScript (no frameworks whatsover), and a database of your choice and you're good to go. Or you could use plain JSON with no database at all. No cloud either, just host it to a simple shared hosting provider.

Don't be lured by the latest and greatest HN koolaid. Stick to the bare minimum. The more complexity you add to a project the harder would be to maintain.

GP, I hope you heed this person's advice.

To make a food analogy, if you're trying to learn how to cook, you don't need the latest kitchen gadgets.

Just ingredients, pots/pans, and a reliable, controllable source of heat are enough.

Adding extra pieces (especially when you're getting started) is only going to make your learning curve steeper.

Is Ruby on Rails really a candidate for bare minimum? Part of the reason I backed off was the enormity of Rails. Part of why I'm doing this is to understand what's going on under the covers and Rails feels like it has a broader and more opaque cover than most other options.
With scaffolding, you can have a functioning Rails CRUD app in literally minutes. There is a lot of stuff Rails _can_ do, but not a lot of stuff you _need_ to do. You don’t even need to write a single line of JavaScript if you don’t want to.

rails new && rails g scaffold Movies title:string && rake db:migrate && rails s

Visit localhost:3000 in your browser and there you go. With that short line, you can CRUD Movies including a functional UI. Obviously “real” apps will require a bit more work, but not much depending on how complex you need things to be. The Rails Guides are super helpful.

If someone wants a more robust and production-ready intro to Rails, Michael Hartl’s free Rails Tutorial is exceptionally good.

Hartl's tutorial is the one I was working through. It's excellent.
I only mentioned it because you said you did some research/learning on it. Seems like the best choice from all the technologies you listed because it is the more mature for web development.

Other than that, no it isn't necessary. You could start with plain HTML and JavaScript only. But sooner or later you'll have to choose one tech for backend.

That makes sense. Thanks for taking the time to respond.

RoR feels like something I really should have in my toolkit anyway.

> Part of why I'm doing this is to understand what's going on under the covers

You should work through the book Rebuilding Rails if this is your goal.

Would Heroku be an OK path for the OP, to remove some of the barriers to entry?
If you already know java for the backend then just use that. Or if you want to learn something new pick one language. You don't need to learn all of them.

For the client side I would recommend vue, but react is also very popular.

Once you have chosen the backend/frontend technologies then you can start building. If you don't know anything about rest learn how your apecific framework does it. You don't need to learn rhe whole spec. At least not in the beginning.

It's worthwhile to think about what the minimum viable product might be... I had a similar problem with a book club, which we solved with a google drive spreadsheet (collecting ranked votes) and an ipython/ jupyter notebook (performing the run off).
You know, I never thought about scripting and Google Docs...
Not sure exactly all the requirements, but it sounds fairly simple. Use AWS S3 or Azure Blob to store and retrieve a static webpage and json "database" and wrote the whole thing in JavaScript and html
I like working with Python. Do you think Google's Cloud Platform should be considered?

I really just need to stop considering...