Hey Holla Forums I want to learn web developing...

hey Holla Forums I want to learn web developing, for the first time should I learn Golang as back-end system instead of php or python? and how about node.js?

and for the front-end what you can recommend?

Other urls found in this thread:

learnbchs.org/
openresty.org
leafo.net/lapis/
github.com/alexcrichton/futures-rs
github.com/hyperium/hyper.
twitter.com/NSFWRedditVideo

Right tool for the right job. What do you want to make?

Golang has a lot of stuff built into its standard library, which languages like Python use frameworks for. It's built for highly parallel workloads (IE, it uses moar cores), and it's a compiled language so it's fast. Can't go wrong learning go. Python is also an okay place to start, but stay the fuck away from PHP.

CSS and JS?

hate to say it, but the webdev generals on 4/g/ have some good info in the OP.

Learn to write webpages without bullshit frameworks. It's not hard.

a web for news article, forum, and e-commerce with aesthetic modern minimalist and very smooth interface.


what about node.js?

Agreed on all points.


Go and vanilla JS/TS.

Chokes on anything that is not stateless JSON wrappers for your DB. That is of course still a quite a lot of use cases.

Minus the community, how is node.js as a platform?

If you don't use npm, decent for JSON APIs. Nothing else. What do you want to know in particular?

Combine both of these answers for some solid advice. Stay clear of frameworks, and learn how it all really works. That way you'll have an easier time evaluating the usefulness of a framework down the road, should you feel the need to make use of one.
Or dip into

Golang is cool because goroutines and its default library has useful stuff for webdev, specifically templates and SQL interaction. It lacks generics, but it's pretty fast, and it seems to consistently improve on each release, especially with the GC. There are frameworks, but many people claim this is contrary to the Golang ideology. Not sure myself, but at least some bits and pieces like Gorilla Router seem to be popular.

Nodejs is cool because Async through callbacks and JS all the way down. Just be careful of what stuff on NPM you use; be aware of dependency counts. Also, ES6 isn't half bad, and you may be using Nodejs/NPM for the support tooling of client-side aspects / resources of your site anyways. You'll probably be using something like Express, which is the most popular framework.

As for Python, Django seems to be the most popular framework, followed by the more minimal Flask. Can't speak to it as I haven't really used it, but if you're familiar with Python give it a shot.

I've mostly used Ruby and Rails in the past. I think the immediate structure provided by Rails, along with the huge collection of documentation and help articles make it great for exploring web dev, especially for someone like me who only dabbled in PHP on a shared host (deployment was uploading the .php files). That and there are a great collection of gems (libraries) that are also made to work great with Rails. I didn't even know Ruby before messing with Rails, which seems to be a common story.

Currently, I'm investing my time reading into Elixir and the Phoenix Framework. I think the functionality that comes from Erlang and OTP are very good pairings for the webapps of today. Elixir's syntax makes it easier for people who come from something like Ruby to use, and Phoenix makes it easy for people who come from Rails to use. Phoenix, however, does not eschew its parent language with DSLs and implicit includes like Rails does, which is a nice change. I especially am interested in Ecto, which it uses for talking to the databases.

You can be a memelord and make something on the Beaches stack or something with Haskell or Racket.

The biggest thing is to get something out there and then iterate. Chances are your site will have very little traffic, so invest in saving developer time: pick a language your comfortable with, and then choose a popular framework in it. Knowledge of HTML, CSS, and JS on the client-side will be useful to know for any of these things. It also pays to have some idea of how to do testing, as most dynamic languages will heavily depend on it for even the basic stuff. Also know how to deploy your code, which will vary in difficulty by language and framework, and how to administer / get the supporting system packages for your app. Or you can say screw it to those last 2 and deploy to something like Heroku or AWS Elastic Beanstalk, but only toy apps can stay with that for long.

why?

Nothing really, I was just curious. I've been using PHP for the longest and am curious to know what else is out there.

Seriously? The internet is kind of a big deal.

The web is not the internet.

I don't know about you, but recently that shit I've been writing for myself has been web applications.
It's just more convenient for the most part to have the presentation layer made in html templates.
For smaller programs that finish in a couple of seconds, I'll still use command line arguments, but for stuff that you need some interactivity web apps are just easier to do than a full blown GUI application.

It's colloquial speech, everyone here knows the web is a subset of the internet.

The web is dying.

The web is not a big deal.

Yeah you're right. Google, Amazon, Facebook... these companies aren't worth very much. Who even maintains the WWW anyways? Is it just some hobbyist project?

Do you really believe Google/Facebook/Amazon infrastructure is coded in shitty Web langs? It's all C++ m8. What you consider a big deal in Web is not really Web, just Internet services. All Web is pajeet tier copypaste coding nobody cares about.

Google is using Python for a lot of things, and with Go being kind of their thing, newer stuff gets written in Go. It was actually created because a Google dev was fed up with doing server software with C++. You might have heard of him, his name is Ken Thompson

Also Facebook still uses php for a lot of shit.

Actually, they are coded in shitty languages. Facebook is still coded in PHP. Youtube, Python. The thing is that facebook compiles the PHP into C++. IDK what the Youtube solution is. Lots of sites are like this.

You made the statement, "The web is not a big deal", and now you are changing the subject to languages. And where did I imply those listed companies used "shitty web langs"?

Much of silicon valley and I would bet every fortune 500 company is largely dependent on web infrastructure.

**I think that was sarcasm.

I hope so, but sometimes I wonder about this place.

Learn BCHS you nub
learnbchs.org/

nodejs is actually a very good platform IF YOU AVOID NPM AT ALL COSTS, illumnos guys worked on making nodejs highly debuggable, you can dtrace and mdb your node app.
Avoid promises though, people haven't figured out how to debug those properly and the people pushing it don't really care, they're in the "just restart it" group.

Guile and Racket and common lisp are also good options.

Generally avoid for learning, you will find out pretty quickly which framework you will want(if at all) when you run into specific difficulties.
If you go the route of starting with a framework you can very easily end up in dependency hell where you spend more time balancing the breakages of your frameworks than advancing your app.

No, I didn't change the subject, what I said is that the web isn't a big deal, because what makes those companies important is all the infrastructure that isn't mostly "web developing", just internal services. You aren't going to get hired by fucking Google because you know how to make a webpage. Like I said, is pajeet tier coding, you need to become very fucking good at some specific aspects of it in order to get hired by a big company that needs some web oriented solution for which they can't get some pajeet to copypaste a js template.
Even so, at some point webassembly is going to become a thing (Like it or not) and there won't be a fucking difference between the desktop and the web. You will be able to get a page running in pure C/C++ or your compiled language of choice.

Fair enough, I was going to make that point about Facebook with PHP, but still a lot of stuff is coded in C++, as evidenced by some C++ talks at CPPcon, like the Facebook/String one. Google still asks for C/C++ experience in their hirings, they are replacing stuff with Go wherever they can, but not everywhere, a lot of new stuff is still being coded in C++.

Let's fix that

OpenResty: openresty.org
Lapis: leafo.net/lapis/

Essentially, OpenResty is Nginx with LuaJIT (or vanilla Lua, if for whatever reason LuaJIT can't be used) bolted on, plus a few Nginx modules. I tried it but I wouldn't recommend it if you're absolutely new to Lua. Instead I'd go for Lapis.

Lapis is a pretty good framework built on top of OpenResty. Before using it I hadn't ever really used Lua, but with Lapis, it was much easier than directly using Lua with OpenResty. The etlua templates are pretty useful as well, especially if say, you want to keep all the components of a page separate (for example, various script stuff could be kept in scripts.etlua).

As for frontend stuff, I'm just going with Materialize.css, though mostly since I'd rather focus on the backend stuff.

No and never.

No you don't.

I never got into Node.js development, but what is the big issue with npm? Just a low quality of available libraries?

Agreed. It's a real pain in the ass.

The Node standard library is slightly anaemic, so there are many very simple libraries out there for certain things. Then people make more complicated things based on those simple things. And so on and so forth.

This can be an issue for any language, but for nodeJS libraries the amount of dependencies seems a bit higher than average.

This all came to a head during the removal of left-pad. Left-pad was a lib that padded strings on the left. That's it. Tons of stuff relied on it, though (Anti-NIH taken too far?). The author removed it and many other of his libraries after the NPM guys refused to defend him at all from lawyers from Kik that were after him for having a library of the same name (that may have predated Kik, or at least it did on the author's radar).

For another good lol, there was a package on npm that was called canibekiked, which would check package names for any legal issue. The creator was not fluent in english, and the more fitting name was changed to the more english-looking canibekikked, unfortunately.

As a result of all of this, it has really shaken a lot of people's faith in public language-based lib repos. In truth, just check the dependencies of what your using, and if it seems a bit much, then look for something similar with fewer.

If you publish a package, you shouldn't be able to remove it, at least not as soon as one or more other packages depends on it.

Wow that's insane. Does it fuck things up when people update packages too, as a system lacking version numbers would?

No, I think all packages require version numbers, and I think it stops you from overwriting history. Most package managers have that bit figured out. It's the complete removal that fucked it up.

Also, sometimes the interpreted stuff can be lenient about the version. Bundler, a gem management tool for ruby, lets you do a lot of stuff for declaring things like, "versions greater than this", "Versions that begin with this" and other less exact things.
I'm sure a lot of other language package tools do it too.

That's just called "lighttpd".

I want to learn webdev, is it good if start learning the php phalcon library?

Don't bother learning PHP. You won't miss out on anything, it's lower than Pajeet tier.

I dont get it, if php is bad because its slower, then why don't just use phalcon with it

PHP is bad because its slow, has bad design choices that have grown over time, and almost all guides you find online for it are going about things incorrectly or unsafely.

If you need to use PHP, look into using Laravel. It's structure and library will probably set you on the right foot.

Webassembly, I forgot that will be a major thing by 2020. Gay. As. Fuck. Smalltalk did it all better in the 70s.

Except Laravel is around 20-80 times slower than PHP and even manages to get DoSed by some benchmarks.

any community issues with golang?

None I can think of. Many of the people that shit up PL communities find Go too pragmatic, not personal enough or "boring". It is limiting in a sense that there are little opportunities to do things in hacky ways that make you feel smart about yourself, but render the code hard to understand. Being closer to bare metal than other GCed languages also helps. Pointers are scary or some shit.

Thanks man, that really helps

...

Lack of generics makes code hard to understand AND debug.
Wanna discuss that?

Woops, had no idea. Also thought that falcon was some weird transpile thing or something. Looking at benchmarks, looks like Phalcon is waay faster than laravel, and may offer many of the same structural benefits.


So yeah, maybe go with Phalcon.

No, generics is not in the language only because there isn't implementation with both fast compile times and low memory usage yet. If someone comes up with one, I am sure it would make it into the language.

Use node.js.
Great performance, high level tools while not removing low-level freedom.
Plus the closest syntax to C.

Only good performance, if you don't do too much in it and let the C++ server handle the heavy lifting. C++ of course is pretty fast.

PHP isn't bad for its performance, it's bad because it's a turing tarpit.

PHP may be terrible, but it's no Turing tarpit.

...

How much autism was necessary to create that?

...

You can pinpoint the moment retards started posting in this thread.

www.theodinproject.com

4 year webdev school for free, provided you're willing to work

rust with github.com/alexcrichton/futures-rs and github.com/hyperium/hyper.

...

And only 20 times more complex to write and read.