
WebPack is not the only way - vmware505
https://medium.com/fusebox/webpack-is-not-the-only-way-6ddb67e99be9#.2rul701l8
======
douche
"Modern" front-end dev is so needlessly complex and byzantine. I don't know
whether the tooling is just inadequate, or people are committed to making
things harder than it needs to be for some reason, but I'd almost rather write
MSBuild project files by hand than deal with this mountain of build runners,
dependency managers, plugins and configuration scripts over in Javascript
land.

~~~
brudgers
The problem comes from the same place as its success. JavaScript evolved based
on the assumption that the browser JavaScript API was the only API that
mattered. The single namespace model made it easy to write code because
treating the browser API as first class made JavaScript a 'big' language where
every procedure a programmer might want was directly callable.

I like C# and all, but when I write JavaScript I don't have figure out if I
need to type `using Document.Query;` or just `using Document;` or `using
Document.Query.HTML;` I can just type `document.getElementsByTagName('a')` and
do what I want to do with the result.

The absence of ceremony makes getting simple things done much easier. It does
not make hard things easier. And that's the problem JavaScript is dealing
with...people are increasingly trying to do harder things in a big language
that is not designed to be extended easily.

On the other hand, these things take time. It took about twenty years for the
Lisp community to move toward Common Lisp and another decade before the
community had mostly converged. And that was with a language where hard
problems such as development tool development are in the sweet spot.

~~~
acemarke
Exactly. I recently put together a presentation that gives an overview of
modern web development [0], and two of the slides address this issue in
particular:

Javascript/Client Challenges

\- No built-in module definition system

\- No encapsulation

\- Prototypal-based inheritance system unlike most languages

\- No static type declarations or compilation

\- Dynamically modified objects and data

\- Minimal standard library

\- Variations in browser capabilities

\- Document layout model repurposed for application layouts

Javascript/Client Dev Goals

\- Minimize bytes sent over the wire

\- Handle browser compatibility issues

\- Fill in gaps in JS standard library and language spec

\- Reuse and share code between apps

\- Build increasingly complex full-blown applications that just happen to live
inside a browser

[0] [http://blog.isquaredsoftware.com/2016/10/presentation-
modern...](http://blog.isquaredsoftware.com/2016/10/presentation-modern-web-
dev-overview/)

