8 ms·
"If the web is to reach its full potential, we have to empower many more people, with fewer technical boundaries. The needs and capabilities of the internet wil
by lambdasquirrel 13y ago
"If the web is to reach its full potential, we have to empower many more people, with fewer technical boundaries. The needs and capabilities of the internet will grow faster than society can train up new computer programmers, so we have no choice but to transcend past programming to interact with this beautiful new medium."
I couldn't make my job go away if I wanted it to. You don't just say, oh, this problem is too hard, so we're going to transcend it.
I wanted to do frontend/design-ish work the last two job searches. What did I do instead? Well, I managed to actually get some in on 20% projects, and spent the remainder on image processing, field algebras, and... lots of stuff in between. Like administering an Oracle DB, hacking postgres plugins, munging data with clojure and python, fighting with SBT and the scala type system. Before you can start playing with design, you have to write the code to make it happen. And before you can even do that, you have to get the customers' data out of their database, munge it, get it replicated across your own datacenters, etc.
- callmevlad 13y agoI'm not arguing that we should get rid of code altogether, that is an impossible task. I'm saying that we shouldn't require code for things that can be automated, and there sure are tons of parts of web development that can be.
- lambdasquirrel 13y agoThe truth is that programmers have been trying to automate themselves since the beginning of the trade. Garbage collection, higher order functions, automated deployment tools, wordpress, they are all related. We are lazy, we don't like doing meaningless repetitive stuff that somehow nonetheless requires programming experience. As far as I can tell, lowering the cost of implementing software hasn't put a dent in the demand for programmers.
- kkilat 13y agoI agree, I don't think this is about eliminating programming "jobs" at all. It's really about eliminating the "meaningless repetitive work" you mentioned. In that way it could actually be freeing to developers -- allowing you to focus more of your time and energy on the really innovative things that CAN'T be automated.
- jarrett 13y agoToday we have such powerful tools for web development that, at least for me, there is hardly any "meaningless and repetitive work" involved. Those aspects of the job have been automated. For example, I use SCSS instead of pure CSS, eliminating whole classes of drudgery. I use Rails' form_for instead of manually populating text fields with their current values. Another class of drudgery eliminated. What's left is still coding, without the repetitive parts. Instead of going on vacation, I take the extra time to produce more and better software.
- palakchokshi 13y agoDon't widgets, controls, etc. do just that? As you mention they are just parts and to create complex applications you still have to consider business logic, data access, third party API integration(if needed), interaction logic, navigation logic, etc. You are looking at this strictly from a web designer's point of view, which is understandable since you are one, however creating applications is much more complex and we've automated the parts of web development that could be automated. Sure you can come up with more widgets and controls but the framework is already defined.
- callmevlad 13y agoYes and no. We're starting with solving for web designers, and the vast majority of their work comes nowhere near the complexity of full-blown applications. The fact that a designer has to know how wire up a form submission, or have to write JavaScript just to get a navigation bar working, or worry about setting up a MySQL server just to get some dynamic content on the page seems broken. It feels like what blogging used to be in the 90s - code HTML and push via FTP. But we've moved past that, and I know we can move past hand-coding HTML/CSS/Wordpress when creating dynamic websites and simple applications (of which many are glorified CRUD form wrappers).
- palakchokshi 13y agoOk let's look at some of the use cases you mentioned. Wire up form submission: Submitting a form in just HTML requires setting the action attribute to point to a backend that will accept the form and do something with it. Wiring it up does not require knowledge of code, it requires knowledge of knowing where to post that form to. What kind of automation do you envision here? Writing Javascript to get navigation bar working: Lots of widgets/controls exist with javascript based behavior enclosed with the UI(they even have extension points via properties that can change how the control behaves by setting properties e.g. slide left slowly, slide up with a bounce, etc). If you need your navigation bar to behave in a custom way there is no way around writing javascript to implement your custom behavior. Setting up MySQL server to get dynamic content on the page: Unless you want to put MySQL connection code directly in the frontend(not recommended) you will have to write some code to get the data from the backend. Now if your goal is to move away from hand-coding simple applications and Wordpress templates for creating simple Websites then the Title of your blog post is a tad exaggerated at best and a bit of link baiting at worst.
- marcosdumay 13y agoExactly. TLDR From the article: Developers must automate their work, and once they do that, designers will be more relevant than they. An entire article of wishfull thinking.
- callmevlad 13y agoPessimism aside, isn't that exactly what happened with desktop publishing software? The work of manual typesetters, etc was automated, and print designers became a lot more relevant.
- jarrett 13y agoHistorically, some tasks have proven easier to automate than others. Much of typesetting and printing was rote, thus it was automated fairly early in the history of computers. There have been efforts to automate programming, but so far it has proven impossible. That's because programming is almost never rote. It's likely that automating programming is tantamount to inventing a true artificial intelligence. If that happens, the implications extend far, far beyond web design tools.
- callmevlad 13y agoYou're right, but I'm not arguing that programming can be automated as a whole. I'm saying that most rote tasks in web development (writing HTML/CSS, linking together various libraries, pushing code through processors, wiring up a basic UI to a database, etc) can be.
- jarrett 13y ago> writing HTML/CSS That's never a rote process for me. Every bit of HTML or CSS I write requires human judgment. Any part that doesn't is handled for me by preprocessors. I'm guessing that instead of "writing HTML/CSS," you'd have designers meticulously dragging objects and setting properties in a GUI. Isn't that just the same thing with another skin? If I have to click to set a property instead of typing the property in a text file, have I saved myself any work? Have I eliminated the need for some bit of technical knowledge? > linking together various libraries Concretely, what sorts of tasks does that entail? Generally there's a few moments to drop the files into the right folder, and a few more to add the appropriate tag(s) to the <head> or the bottom of the bottom of the <body>. How do you eliminate those steps? Or does the user still have to perform them, except in a GUI environment instead of a text editor? If the latter, then I'd argue the same as I did above about HTML and CSS. Or do you include certain standard libraries by default? If so, that's fine, but the same is achieved in more traditional, text-based frameworks. > pushing code through processors Which processors do you have in mind? SCSS and Uglify are quite trivial to run. I wouldn't call that a pain point at all. > wiring up a basic UI to a database I'm still not convinced that can be automated beyond the basic interfaces that something like MS Access provides. Which don't cover most use cases. Can you give an example?