Ask HN: Is all programming constantly changing or just front-end JavaScript?
121–130 of 139 posts
Re: Ask HN: Is all programming constantly changing or just front-end JavaScript?
#122I think much of JS's churn has been the problem that the UI primitives (HTML) are unsuitable to what people want to do. When you can't even vertically center something without reading a bunch of web pages that tell you something like six different techniques, you can imagine that people are going to make a library to do make it easy to do. But since the foundation is crap, and good API design is actually hard, the re…
I said the same when I wrote "The Problem With HTML":
Just to offer some perspective about where I’m coming from, I’ll start by saying that I think of these as tools that made it easy for beginners to be productive:
Hypercard
Visual Basic (obviously I mean the classic versions, before .NET. The stuff in the 1990s was genius)
Adobe Flash
Adobe Dreamweaver
I spent 1995 learning HTML and putting together simple websites. I was thinking this is something I’d like to do professionally. In 1996 my father and I went to a demo in New York City, where Adobe was introducing PageMill, their Web page creation software. My father was impressed. My dad wasn’t in the tech industry, but he was pretty smart about technology trends. He said, “Anyone who knows HTML just lost their job. This will replace the need to know any of the underlying technologies.” But that turned out to be wrong. Even now, in 2017, most companies building Web software still rely on individuals to hand-write their frontend code. Indeed, from the point of view of business productivity, everything has been going in the wrong direction.
http://www.smashcompany.com/technology/the-problem-with-html
What is curious is that the companies that have the money and resources to roll out something better than HTML have not done so. The biggest surprise here is Adobe, which owns Flash, which many people thought of as the future of the Web circa 2004. Why didn't Adobe roll out new basic network protocols to replace HTML, and perhaps also replace IP and TCP? I don't know. They had the resources to do it and instead they did nothing but stand around and watch their most important asset die.
Re: Ask HN: Is all programming constantly changing or just front-end JavaScript?
#123I've been doing frontend dev for 10 years and had to change my stack & way of working only 3 times: - HTML templates (served by Symfony/ASP.NET/Rails/Django) + jQuery + dependencies manually downloaded/updated/deleted/added to the index.html - ~2014: Angular SPA + Grunt + dependencies managed with Bower and added manually in the index.html - ~2017: React SPA + Webpack/Babel + dependencies managed with NPM and added a…
During the past decade the JavaScript ecosystem had to evolve and adapt to handle increasingly more advanced requirements. Multiple tools and libraries rose up to meet the challenge, and the best ones have slowly floated to the top. It's not like the winning tools are even that recent: I think Webpack was already around before 2012, TypeScript was released in 2012, and, if I remember correctly, React was released around 2013. Fun fact: babel was called 6to5 when it was initially released.
Webpack can sometimes be difficult to configure because the problems which it sets out to solve are also complicated. To be fair, their old docs were quite lackluster, and the creator's coding style was uncommon, which made reading through the source a bit challenging. I know a lot of people are critical of Webpack, but I was overjoyed when I first discovered it, as it enabled me to correctly solve a huge number of issues. Once adopted, it let me drastically simplify our build pipeline, as well as our development and testing environments.
I can sympathize with non-frontend developers because I also feel overwhelmed sometimes when I look at all the tooling related to backend / devops / infrastructure stuff. But I understand people build and use these tools because they're usually solving fairly complex real-world problems. I suspect that many people that complain about JavaScript don't care much about the frontend and they just want to get it out of the way as quickly as possible. They want to pick up whatever standard tools the community has centered around and hammer together something without having to dive in too deep. If the developer looks down on frontend development and they encounter a difficult problem which they're unable to solve, then they must deal with the cognitive dissonance.
To give a concrete example of something I've struggle with: I can barely make sense of the containers ecosystem. Using docker-compose during development to bring up an application's external dependencies is amazing. However, I generally haven't had much success configuring and using docker to run an app locally. There's always performance issues, or I can't get something to work correctly, or I can't figure out how to get a good workflow going. Since we're on the topic: if anyone knows a practical example of a regular web app (e.g. rails or node, but I'm not picky) which has a few workers and which depends on a few services (e.g. Postgres, RabbitMQ, Redis, MinIO), I'd love to check it out. Oh, and I haven't even mentioned deployments and Kubernetes, which seems like a whole nother dragon.
If you're not a fan of frontend development I'd suggest using server-side rendering with occasional scripts dropped in for extra functionality. Think carefully about your application and its requirements; not everything needs to be a Single Page App. Depending on the kind of application you're building, you might want to evaluate next.js [0] and create-react-app [1].
Re: Ask HN: Is all programming constantly changing or just front-end JavaScript?
#124Earlier quoted context omitted.
> At least Python hasn't had a major release since 2010 (Python 2, anyway). I'd argue PEP 484 is possibly more transformative than the change from print 'foo' to print('foo') https://www.python.org/dev/peps/pep-0484/
Aren't those entirely optional?
Re: Ask HN: Is all programming constantly changing or just front-end JavaScript?
#125I've been doing frontend dev for 10 years and had to change my stack & way of working only 3 times: - HTML templates (served by Symfony/ASP.NET/Rails/Django) + jQuery + dependencies manually downloaded/updated/deleted/added to the index.html - ~2014: Angular SPA + Grunt + dependencies managed with Bower and added manually in the index.html - ~2017: React SPA + Webpack/Babel + dependencies managed with NPM and added a…
Re: Ask HN: Is all programming constantly changing or just front-end JavaScript?
#126I've been doing frontend dev for 10 years and had to change my stack & way of working only 3 times: - HTML templates (served by Symfony/ASP.NET/Rails/Django) + jQuery + dependencies manually downloaded/updated/deleted/added to the index.html - ~2014: Angular SPA + Grunt + dependencies managed with Bower and added manually in the index.html - ~2017: React SPA + Webpack/Babel + dependencies managed with NPM and added a…
I wish programming was more like playing a musical instrument. I feel like there is too much tuning not enough playing.
Re: Ask HN: Is all programming constantly changing or just front-end JavaScript?
#127Re: Ask HN: Is all programming constantly changing or just front-end JavaScript?
#128As somebody that's in JS all day but rarely touches backend, hearing about go, rust, kubernetes, docker, etc make it feel like backend is similarly fast-changing. The difference seems to be in the narrative about the older tech. The "rails is still fine" crowd is loud, which is great. There is no equivalent for older JS tech. Though I would be willing to believe that's because things like jQuery are full of dated pat…
The beauty of React and other frameworks is that it separates the concerns of state and UI. I don't see it as a tool for making a fancy button or widget, I see it as a tool for guaranteeing that what the user sees is always what's actually going on in the logic. Too many times I've written something like a "clear" button or a "reset" button in jQuery, added an extra field, forgotten to include it in that clear/reset…
The "Why JSX?" on React's docs covers this with more detail: https://reactjs.org/docs/introducing-jsx.html#why-jsx
Re: Ask HN: Is all programming constantly changing or just front-end JavaScript?
#129I think on average back end churns slower. Every year I'll hit a conference, and hear about the latest and greatest, but only a fraction of that stuff sticks around, and gets integrated.
I believe most company's won't swap language/framework/libraries until absolutely necessary. So the adoption of new things you might see at a company is much slower than someone who job hops every 3 years.
The company I am at now, had a C++, cout ..." version of the site for 6+ years. The version that replaced that is a younger language with a MVC, but it's already been 9+ years since that was implemented, and it'll probably be a few more years until anything else supplants that.
Another thing that I think affects front end is the browsers. I don't know the stats, but I believe that Chrome/FF/Edge release more features, experimental features, and bug fixes per year, than your average language, or OS. This cascade of releases in turn effect front end code, and libraries. It's a wave pool, not a ripple in the pond.
Re: Ask HN: Is all programming constantly changing or just front-end JavaScript?
#130Spring in java is pushing somewhat on functional programming and lambdas are now another way to work in java, which means you can achieve a some kind of real func programming.
We have some beautiful newcomers like Elixir which are trying to fill a gab, so yeah: I think the JS world does seem like it's going faster (and it sure does until it reaches a "mature" state), but at the same time we have great evolutions across all the stacks.
Obviously not everything changes, some things stay the same, that's because we're looking at some mature technology and not the bleeding edge, but if we look at the outliers, I think you could easily pick at least an innovator around each backend language.