Hacker News new | ask | show | jobs
by throwmenow_0139 3543 days ago
It's easy to show how complex those systems are. It's easy because they are complex. And that's pretty normal. Let someone talk about Java Enterprise development, the symptoms of your body and their diagnoses or just try to explain how to build a pencil (https://en.wikisource.org/wiki/I,_Pencil).

We're professionals, after all, and TypeScript and React were not build by some teenage hackers.

I think the problem is that everybody remembers how they build that one website using jQuery in the early 2000s and now wonders why everything's so complex now. The reason is that we started to build complex applications instead of enhancing grandma's blog using jQuery.animate, get over it.

And if a software developer talks about all of this tools in the same manner you've described, he has poor social skills, nothing related to the tooling.

He could also talk about the intricacies of scaling web services using k8s and OpenStack and you'll find another bunch of tools and concepts. If someone would actually talk like you've described it, he would play buzzword bingo in any domain of expertise like medicine students who want to sound smart using latin words.

6 comments

> We're professionals, after all, and TypeScript and React were not build by some teenage hackers.

Overall correct

> The reason is that we started to build complex applications instead of enhancing grandma's blog using jQuery.animate, get over it.

And this is where we disagree

Complexity is needed sometimes, needless complexity only brings the overall value down

If I want to do a website using Django I need to get: Django. Period.

I may need some other libraries, but they're much fewer than any basic node.js project, even with things like Flask

I have one package manager: pip. It works

With express.js you need a library to parse an HTTP request body ffs. https://github.com/expressjs/body-parser

> I have one package manager: pip. It works

Funny, because this is not the general sentiment in the Python community. See links like [1], [2], [3]. Thankfully, things are improving.

[1] http://lucumr.pocoo.org/2012/6/22/hate-hate-hate-everywhere/

[2] https://www.reddit.com/r/Python/comments/zrm3h/there_have_be...

[3] https://blog.ionelmc.ro/2015/02/24/the-problem-with-packagin...

I found Python packaging very easy. pip install works for tons of packages.
I agree to your sentiment that needless complexity is bad, technical debt is a real thing and it is plain reckless to use something for the sake of it.

But the term "complexity" gets used in two different meanings in your comment:

a) complexity of usage: You make the point that Django is easy to use, but it isn't simple software; it contains an ORM and is huge.

b) complexity of the system: Django is a complex system. If you are not using any of its benefits, it has needless complexity and you may be better off with a simple PHP script.

And this brings me to the conclusion that it's all about your use case. If you don't build a big SPA, you can get away with vanilla JS without using a transpiler or even a build pipeline.

The reason it's simple to develop something with a full-fledged framework like Django is that they have build a complex system to abstract all those complexities you don't have to think about anymore.

And I don't get your argument in regards to express.js because this is entirely a software architecture decision and they decided that a modular approach suits them well - maybe it's actually less complex for them to develop the software that way because they isolated the body-parser and other components. It's like comparing monolithic with micro kernels - it's all about trade-offs and the added complexity from a developers' point of view may be worth it for the specific use case. There is no general definition of "needless complexity", because the need is very subjective and different for each project.

and that's how you can use express.js to run a service that uses a different protocol to HTTP.

Express is one of the easiest libraries to learn in any programming language. It's certainly much easier to learn than Django, at least in part because it doesn't include the kitchen sink

> and that's how you can use express.js to run a service that uses a different protocol to HTTP.

Excuses, excuses. Good defaults are important. 99.99% of developers won't care about it.

Getting form data is Web development 101

> Getting form data is Web development 101

Is it? Certainly the latest hipster microservice only deals with JSON bodies.

To which you still need the body-parser module, I don't see your point
Let me try again: you might not be using Express to develop a website.

If you are, install the meta-package, or create one. Now you have your defaults.

Compiling a C project from sources for the first time (which was maybe five years ago and had a bunch of dependencies too) took me less time than it's currently taking me to read up on an overview of all these frameworks/libraries/technologies, let alone actually learn any of them.
You don't need complex tools to build complex systems.

The rapid pace of change in the javascript world is what he's poking fun at.

> We're professionals, after all, and TypeScript and React were not build by some teenage hackers.

On the other hand, Babel was :) He did a great writeup of his life during babel's explosion of popularity.

https://medium.com/@sebmck/2015-in-review-51ac7035e272#.nmef...

Thanks for the link, his story is great! I'm convinced that compilers and formal languages are the core fundamentals of computer science, amazing that he got into it so young.
Thanks for the link, great story.
I like how you phrased this. I have a similar feeling about this but I couldn't express it so clearly.
Exactly.

When I read those comments on HN, I'm really curious to know how people think you can build, scale and maintain a web app like Facebook. Do they think you can achieve it like in 2006, with a single scrip.js containing 100 000 lines of jQuery soup?

jQuery is fine for any web site or small web apps, but as soon as you reach the 2000 LOC, it's crazy to continue with it.