Picking Framework

What do they use now for youtube?

I think angular and Go.

(Google’s babies)

I don’t have extensive experience with it, but here is the most famous tutorial for it: https://www.railstutorial.org/

It’s a very ‘opinionated’ framework. It assumes a lot of things about how you’ll go about creating your website/API and sets a lot of defaults based on that. It makes you very productive if you follow that way of working, but you’ll have a hard time if you try to go against it. It also causes a fairly steep learning curve.

Another fun fact, Twitter was first created with this, I think they rewrote it with Scala, and if I’m not mistaken, github still uses it.

1 Like

I tried Go once but I had problems using packages because the project needed to be in the Go home directory or something.

Yes. As does GitLab.

Lol, so /home/$USER/go? Yeah that’s where it expects packages to be. They have a whole documented standard on it.

I was pretty sick and tired when I was messing around with it for the first time so I was not best of mind. Originally I wanted to use Go but I ran into those problems.

I guess now I feel split between trying to go back to Go and use something like Revel or go to Ruby on Rails.

Fair enough.

Give Rails a try. Tutorial shouldn’t take too long then you’ll get a handle on how routing and rendering templates work.

I like this idea, I think I might go forward on Ruby on Rails but on the side I might try learning Go as well.

You might have your hands full with rails though, it’s really extensive. And maybe you’ll fall in love with ruby, that’s what happend to me. I don’t care too much about rails, but I find myself coming back to trying out things with ruby all the time.

Anyway, good luck with your endeavours!

1 Like

Important thing to note, its usually best to pick a framework that won’t go against what you’re doing.

For this reason I like un-opionated frameworks because I can make them do what ever I want; however I do have to reinvent the wheel sometimes, but after that stage all is fine and dandy.

Opinionated frameworks speed up development time, however you don’t want to have to shoe-horn what you want to do through the framework because it makes things clunky.

So if you’re doing something ‘weird’ to a desired framework, then you should lean towards something less opinionated.

Is there a less opinionated framework similar to Ruby on Rails. I find myself confused a lot when using opinionated frameworks because it works in mysterious ways sometimes?

I dont plan on doing anything complex with Go on the side. Just like computing PI and that sort of stuff.

The bulk of this stuff is not going to happen now but during my Christmas break and during my coop in the spring and summer.

In other words its very long term time scale here.

Take a look at React. That’s what I’m using. Its an un-opinionated library.

1 Like

We are using React Actually. I am just looking for the framework to deliver pages like that and some additional Rest.API for the Android side.

I am not the one doing the web front end though so I know very little about it. I presume whatever server framework would need to be compatible with it and render it and send the generated HTML file?

React Native.

Since you want to port an app easily, have a backend REST api with node and express, and then just use React for desktop clients and React Native for native iOS and Android clients.

That is not a REST API. The backend should just send raw JSON and is left for the client UI to work with it.

The backend should be agnostic. That way you can have w/e you want for your front end.

So does React Native just use Node?

Also to Note when I said Android I meant a Android app and a mobile web interface like you mention.

sorry if this sounds like a dumb question

Uh, oh, I know this one.

It’s actually Polymer, that’s compiled into multiple modules with jscompiler so that whole thing is not loaded all at once, http/https/quic/… requests go down multiple stacks of c++ proxies to a whole bunch of things including some ugly nasty Python (that keeps getting rewritten once a year to make it better, it’s still huge and bad) happens to run with some modules in c++, pretty much all it does is render json and fire off stubby RPCs (google internal version of grpc with more load balancing options, different auth, etc…), to other services that use a combination of c++/Java/go and probably Python, the metadata is served from Vitess, which is basically a MySQL coprocessor written in Go that basically makes MySQL talk stubby / grpc and not crumble when thousands of client processes (e.g. python) decide they want to have a few connections each. It also helps with sharding because in order to deal with traffic, MySQL is heavily replicated and sharded and data is stored in ram and something like nvme (Google’s own variant of flash storage)

I used to work on the resharding a few years back, everyday I remember less.