18 ms·
Software eats software development
- illumen 12y agoPretty much his entire list is wrong. "Deploying a commercial website ten years ago required significant upfront capital" Actually... you could get a very large website up 10 years ago on almost nothing. $30/month dedicated servers were available that could do 10,000 connections at once. Which means you could serve millions of people cheaply. You could also get lots of virtual shared hosts for $5/month or less. Heck, even 15 years ago you could do that. Maybe not everyone realised it till later, but it's not a new thing at all. "Startups created simple APIs that abstract away complex back ends. Examples: Stripe (payments), Twilio (communications), Firebase (databases), Sift Science (fraud)." There were plenty of services around on the internet 15 years ago with APIs too. Including payments, communications, databases, and fraud. I know because I developed some of them. "Open Source. Open source dominates every level of the software stack, including operating systems (Linux), databases (MySql), web servers (Apache), and programming languages (Python, Ruby). These are not only free but generally also far higher quality than their commercial counterparts." Guess what? Open source was around 10 years ago. "Programming languages. Developers have steadily marched upwards from Assembly to C to Java to, today, scripting languages like Ruby and Python. Moore’s Law gave us excess computing resources. We spent it making developers more effective." Ruby and Python were both around ten years ago. The same as perl, php, and haskell amongst others. "Special-purpose tools for non-programmers. These tools let non-programmers create software in certain pre-defined categories, thereby lowering costs and reducing the demand for developers. Examples: Shopify (e-commerce), WordPress (blogging), and Weebly (small business websites)." um... blogging, e-commerce, and lots of other non-programmer tools were around in the 90s. "General-purpose tools for non-programmers. In the pre-Internet era, tools like Hypercard and Visual Basic allowed hundreds of millions of semi-technical people to become software developers. Since then, there hasn’t been much work in these areas, but from what I’ve seen that might change soon. By allowing more people to program, these tools act as a force multiplier for the software industry." Have you heard of the internet? Seen the reams of cut and paste code out there from semi-technical people? Whole industries are centered around letting less skilled people make software. This hasn't decreased, but increased. There's a whole "everyone should code" movement hitting us. Is this the quality of article we want on this website? Please delete my account!? I'm done.
- 1stop 12y agoIs this the quality of comment on this website... please delete your account! What were the "plenty of API services" 15 years ago. I don't remember that many, you are talking pre google days... Like flashing "Under construction" websites... If there were APIs i think they were probably an accident ;) Ruby and Python were both around ten years ago, and No body cared.. Python was primarily used as a CGI layer, and then later in Zope... Ruby just wasn't used (as far as I recall). After Rails, and Django, people started paying attention, and then google gobbling up the python community worldwide changed that. What were the Blogging/E-commerce tools around in the 90s? Do they compare at all with the ease of use/scale of those quoted?
- illumen 12y agoThe e-commerce shop sold to yahoo in 1998 by pg. The guy who made this website. [0] Ebay was also doing lots of business in the 90s. Paypal was founded in 1998, and it wasn't the first e-commerce company by far. [1] Perl, php, TCL via AOL and yes python were definitely used for much of the web. Google founded in 1998 used a little old language called... python. [2] mod_python was released in 2000, which came after the non-cgi version of python the Netscape Enterprise server... which also used JavaScript as a server language. [3] However, lots of people were using perl for web services. SOAP designed in 1998 was one of the libraries or protocols where people published APIs, along with Corba, and xmlrpc amongst others. [4] [0] http://www.paulgraham.com/yahoo.html http://www.paulgraham.com/yahoo.html [1] https://en.wikipedia.org/wiki/PayPal https://en.wikipedia.org/wiki/PayPal [2] https://en.wikipedia.org/wiki/Google https://en.wikipedia.org/wiki/Google [3] https://en.wikipedia.org/wiki/Mod_python https://en.wikipedia.org/wiki/Mod_python [4] https://en.wikipedia.org/wiki/SOAP https://en.wikipedia.org/wiki/SOAP
- 1stop 12y ago... You still didn't mention a single API. And yes, python was in complete disuse that only obscure academics used it (Which is what google was founded by). I mentioned in my comment it only gained traction after google and django before then it was niche Zope and CGI. All your citations don't actually refute it, they in fact strengthen it... So show me an API that existed in 1998... all you showed me was that SOAP was 'designed' in 1998... Are you really citing "Netscape Enterprise Server" as proof python was in wide usage? Paul Graham sold a business to yahoo, wasn't it in lisp? Did it have an API? does it actually prove any of the points you made, or is it just a statement about "There was business on the internet" which I never refuted. You were really scrounging to come up with pretty much nothing, so thanks for further illustrating my point :)
- wpietri 12y agoWhen I was something like 13, I went to my first computer trade show, where on vendor was touting tools that would let non-programmers write software for the minicomputers of the day, eliminating the need for those expensive programmer guys. Ever since, I've seen people selling similar notions. Whether or not they work, I expect we'll see a number of similar tools on the market. As things like magnetic healing bracelets demonstrate, not actually working is no barrier to selling a product.
- AdrianRossouw 12y agoWe've been waiting for a long long time now. http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBulle... abstract reasoning doesn't become any easier because it's done via the form of pictures. If any of this stuff was actually remotely possible, we'd all be building our software from UML diagrams right now.
- wlievens 12y agoRight tool for the right job. Wiring UI controls and data sources together in LabVIEW is easy, but it all falls apart when you need to implement a non trivial algorithm.
- stormbrew 12y agoProgramming for non-programmers is an oxymoron to begin with. Even using Excel is programming. I've become convinced that one of the reasons this field has failed so spectacularly in the past is because people are trying to achieve something that is literally impossible. In order to communicate with computers you have to become computer literate. Or at least, it's far easier (and will remain so for a while yet) for a flexible human to become computer literate than for an inflexible machine to become human literate. Finding better ways to make humans computer literate is and will for a long time be a much better path to make computers more accessible, and it's largely what's worked to get us to the point we're at now.
- ebiester 12y ago
- AdrianRossouw 12y agoAll those tools you talk about still need to be maintained. Anything built for "non-programmers" as you say, is also many orders of magnitude more complex, and at some point that complexity will grow to a point where it is cheaper to replace the whole system entirely rather than upgrade. API's and stuff are easier on some level, but distributed systems are also much more complex. Upstream API's change, or get EOL'd or change license. actually, instead of listing all the reasons : every point you made is just going to end up with more software being developed. it all feeds into itself. endlessly.
- nmrm 12y agoIt's not hard to imagine rote programming becoming a universal skill among high school graduates. I could even see this happening within our life-times; it's really only a matter of societal will and available teaching staff. The basics are... basic. If this happens, then APIs and libraries that make development easy and intuitive for end-users could easily become as in-demand as well-designed websites and mobile apps are today.
- nathancahill 12y agoThis. Thanks for putting words to a thought I've had for a while. It's already happening. We're transitioning from web/mobile app demand to services demand, which explains the relatively recent explosion of the SaaS/PaaS/IaaS models. Also, there's no reason to base it on an arbitrary threshold like high school graduation. The amount of rote programming I have to do (as a professional working in the field of 10 years) is drastically decreasing.
- mbillie1 12y agoThere's already debate over the merits of introducing this in the Utah public schools. I think it's a great idea.
- pokpokpok 12y agoI (pessimistically) don't think that creators will ever be the majority. maybe in the future it will be easier for all who create things to incorporate custom software, but I don't think that the majority of the population will ever feel the need to create their own software, even if it's as easy as editing music with garageband or manipulating images with photoshop. I would love to be proven wrong within my lifetime though!
- nmrm 12y agoWhat do you mean by creators? I know very few people who don't create something. Most people do so at their jobs, and those who don't usually have a hobby or two (sewing/knitting, hobby construction projects around the home, gourmet cooking, etc.) Someone I think you're using the term to mean something else.
- mbesto 12y ago> General purpose tools for non-programmers: Since then, there hasn’t been much work in these areas, but from what I’ve seen that might change soon. Really? Loads of examples. One just off the top of my head is Scratch: http://scratch.mit.edu/ http://scratch.mit.edu/
- blahedo 12y agoI love Scratch and teach it in my gen ed class, but I'm not sure I'd quite call it a "general purpose tool" in the same way that Hypercard was. I could certainly see it evolving (or rather, forking) into such a thing, but as it stands it's a little too kid-education-animation-game-oriented.
- sitkack 12y agoscratch is still programing. following a recipe is interpreting a program. logical sequences of steps.
- tluyben2 12y agoMaybe it's worth to mention Livecode here (http://livecode.com/); http://livecode.com/); it's open source and it's nice and, by now, quite portable; I have compiled it for ARM on the Chromebook (Crouton) and the Pandora.
- rubiquity 12y ago> Developers have steadily marched upwards from Assembly to C to Java to, today, scripting languages like Ruby and Python. Since when does being a dynamic language and not having to have a main() function make you a "scripting language?" I didn't know people still said those words.
- giblaz 12y ago>scripting language It's just a categorization. Not an insult.
- rubiquity 12y agoIt's a categorization that was created to be an insult.
- marcosdumay 12y agoIt's a categorization with no meaningful difference. There's no honest reason to create something like that.
- harryh 12y agoIt's not the dynamism, or the lack of a main() that makes Ruby & Python scripting languages. It's the fact that you don't have to compile them before executing them.
- mappu 12y agoThe phrase "scripting language" makes less and less sense in a world where C interpreters exist (e.g. Ch, CSL, picoc, CINT, tcc -run), and in a world where Ruby, Python and PHP have compiled implementations (both JIT and AOT against various virtual machines and native targets).
- pokpokpok 12y agowhat terminology do you think is more appropriate for these high level "glue" languages?
- bobbygoodlatte 12y agoThis also means that design is playing a proportionally larger role in startups. A lot of the engineering work needed to build the next Instagram/WhatsApp/etc has become commoditized. Design is what's left.
- shortstuffsushi 12y agoWow. That's actually something that hadn't really struck me until reading this comment. While there is development to be done in ever project still, the upfront amount is growing smaller and smaller with the (P|I|S)aaS techs available to companies. A lot of it does really come down to making the front end of a product.
- CmonDev 12y agoBuilding Instagram required a lot of engineering work?
- levlandau 12y agoThis is my feeling as well. I'd add the caveat that design shouldn't be interpreted merely as "front end work" or "ui". You also have to design your algorithms, data models/structures, features, and an optimal user experience.
- pcurve 12y agoAnd enterprise software development has been going in the opposite direction. I work for a $100 billion company. Some days, I want to stab myself and throw myself out the window.
- chaz 12y agoIn these situations, I believe there are two types people: A: "Wow, things are really messed up. I'm out of here." B: "Wow, things are really messed up. There's opportunity everywhere." Either can be right, depending on the person and situation.
- pcurve 12y agoActually A and B are same person. Just two different phases.
- derefr 12y agoThere are two Bs, though: one sees opportunity to sell change. The other sees opportunity to perform arbitrage against the inefficiencies.
- dominotw 12y agook coach.
- nigelsampson 12y agoThat age old saying, "Change you job, or change your job."
- beat 12y agoI'm a B, for sure. I'm trying to create new tools to deal with the "things are really messed up" problem... in part because I can create a working business and get myself out of the enterprise, and in part because I genuinely want to make this industry better. What I like about what I'm building is that it changes the human/computer ratio in debugging and problem-solving for complex systems. Have computers do what computers do well, so people can do what people do well. That's the core of my approach to building software. A big part of the reason enterprise development sucks is because debugging is so manual. Automate parts vulnerable to automation, and engineers won't just be more efficient - they'll be happier.
- 31reasons 12y agoSoftware eats software development is nothing new. Everyone who writes libraries is doing just that for past 30+ years. In fact good software developers take pride in writing software that require less code. Its in the inherent nature of software development itself. Come to think of it, software field could be the most egalitarian of all. You won't see lawyers lobbying for less complicated laws!
- tim333 12y agoCompetitive market forces will keep programmers busy for quite a while. As soon as it becomes easy to do things like make basic online stores with Shopify, stores will want more fancy functionality to differentiate themselves from their competitors.
- DannoHung 12y agoHalide makes me think we can give a bunch of that power that Moore's law gave us back to actual problem domains without making programmers any less effective.
- beat 12y agoHere's why this is, at least on a certain level, wrong... Software complexity expands to exceed available tools. This is a Big Truth. No matter how fast hardware gets, we'll beat on it until it's burning up. Give us better tools, and we'll just write more and more complex software until the tools break down under the complexity. Give us better processes, and we'll make bigger projects. Better tools don't make it any easier to write software, never have, never will. They just change the kind of software we can write. You don't buy a Porsche to drive 55 more effectively, and you don't use better software development tools in order to work less.
- mattgreenrocks 12y agoWhy aren't developers responsible for managing the complexity of their project?
- syntern 12y agoThey do - if they have ownership too. But project managers won't like to give up the ownership, they just push for more features in less time. There goes your hope for responsible complexity management...
- fauigerzigerk 12y ago>In the pre-Internet era, tools like Hypercard and Visual Basic allowed hundreds of millions of semi-technical people to become software developers. Since then, there hasn’t been much work in these areas, but from what I’ve seen that might change soon. I doubt that there will be much progress on this in the foreseeable future. Not for general purpose programming anyway. It's not true that there hasn't been a lot of work in these areas since Visual Basic. Not a week goes by without news about some tool that finally allows everyone to create UIs easily, wire up some logic and one-click-deploy everything on the web and mobile devices all at the same time. But the bottleneck is somewhere else entirely. It's thinking in terms of models. Formalizing and abstracting what we know intuitively about the world and about the things we want to automate. In my opinion, there have only been two inventions that really "democratized" access to thinking in models: Spreadsheets and SQL. Both are from the 1970s. There has been no progress since then, perhaps with the exception of some of the visual things you can do with modern game engines. Maybe R and Matlab deserve mentioning but they are for people who know exactly what they're doing. I think the next step has to be abstracting away some of the intelligence required to analyse data and make all the tedious micro decisions about how to transform it into something fit for the task. What we need to make progress is some kind of AI enhanced version of Excel.
- deleted 12y ago[deleted]
- roma1n 12y agoFunny, I was just looking at Google Apps Script with the idea of making an add-on for Documents. The tool looks brilliant. It supports many Google services (from fusion tables to Gmail to...), provices simple sharing with anyone and proper authentication. But it does not provide any tool for building better models or architecture. It's VBA on the web.
- deleted 12y ago[deleted]
- hershel 12y agoThere are modeling innovations in research, few I know of(probably many more availble) : https://news.ycombinator.com/item?id=7458922 https://news.ycombinator.com/item?id=7458922 Another huge innovation in modeling is machine learning, and it can build very complex models(in many cases far accurate than rule based models) using a relatively simple interface.
- venomsnake 12y agoYou know every time we create some innovation that unloads the burden from programmers we invent some other crap to waste their resources on. Circa 2010 enterprise java managed to take all benefits from freeing memory management and waste them on absurd abstractions and xml permutations (you throw some settings in xml and see what happens) The universe is conspiring against us shipping real code.
- narag 12y agoLOL, so true! I'd say the opposite is true: software isn't eating programming in any significant way. As much, it's eating the overhead you describe. Breakthroughs? Show me!
- yason 12y agoProgramming for non-programming works best when they don't know they're programming. It's easy if you don't know you're doing it.
- CmonDev 12y ago"Developers have steadily marched upwards from Assembly to C to Java to, today, scripting languages like Ruby and Python." Downwards in terms of language design though, you can add JavaScript to the end of that sequence to make it even more obvious. Otherwise we would've been using a some sort of sane syntax version of Haskell by now. If software is "eating" 'whatever' then computers should be doing more for you not less, hence even more pre-runtime checking, not less. "... allowed hundreds of millions of semi-technical people to become software developers. ... these tools act as a force multiplier for the software industry." Multiplying the code mess professional developers will then have to maintain? Example: converting Excel and Access spaghetti into sane programming models in finance.
- drill_sarge 12y agoWho moved to Java? Write once - debug everywhere.
- tluyben2 12y agoGuess you don't code in Java. As that's bullshit. But maybe you refer to GUI != HTML applications. And even there it's not true.
- just2n 12y ago> Software is eating the world, and doing so using smaller and smaller teams. WhatsApp was able to disrupt the global SMS industry with only a few dozen engineers. Small teams can have a big impact because software development (and deployment) has improved dramatically over the past decade. While this is true, I'm coming to realize more and more that a lot of would-be highly needed disruption is just not feasible because laws and monopolies are standing in the way, much of it due to lobbying and sometimes patents. It's sad.
- netcan 12y agoEconomically these are not different from technology in general. We can do more with less. There are two side to that statement. We can do with less. The first two points are especially relevant to this side of things. The most "talented" can be extremely productive. What if Google search & Gmail could be built and run by 14 talented individuals? Duckduckgo seems(ed) like an experiment in this direction. Doing with less is not necessarily painful or revolutionary though. Often, it's smooth. The answer to a lot of "how did people do ___ before computers" questions is "secretaries." We can do more. That has been the overwhelming result of technological change up to now. Better tools -> More stuff gets made. Most of the resources freed by "doing with less" go into doing more. Agricultural machinery frees peasants to work in factories. Industrial robots free laborers to work as social marketing content creators. Progress.
- fredgrott 12y agoQuestion, does this follow the same trend as other Relationships..for example Mathematics can be said to be the 'software' of high-level physics..do we see the same trends in that there is a high-level in Mathematics where new theories are being created but a lower level where a large amount of people use tools to apply these new theories? If so, than are we facing the same exact problem just in a different field? My take on it, is that we never fully mastered teaching how to come up with abstractions and new models..tangential proof is the large number of religions created to come up with new models of explaining how the =universe works.
- nmrm 12y ago> do we see the same trends in that there is a high-level in Mathematics where new theories are being created but a lower level where a large amount of people use tools to apply these new theories? Definitely. If you allow more longer-running examples, this is exactly the situation of calculus. The Calc I-III that many use regularly is the application; Real Analysis is the theory. Ditto for any "applied" sort of math you can think of (stats, crypto, machine learning, etc. -- all basically just use theorems which are the "abstract interfaces" to pure mathematics.) > we never fully mastered teaching how to come up with abstractions and new models And we never will, as long as the human race continues progressing :-)
- applecore 12y ago> Since the pre-Internet era, there hasn’t been much work in general-purpose tools for non-programmers, but from what I’ve seen that might change soon. What startups might he be referring to?
- michaelochurch 12y ago"Software is eating software" is true, but not good. It's not good at all. Take a look at the manner in which so many companies use project management software like Jira: to create a Big Brother system. Developer's velocity drops below 15 "story points" per week? There's your bad guy! Some companies use time-tracking software (designed to help an individual manage her own time better, and certainly not to abuse workers) to take micromanagement to a new level. Then there's LinkedIn, which may have been started with good intent but makes it astronomically more difficult for people to reinvent themselves (giving even more power to corporate management, which is thus empowered to fuck with peoples' careers long after they leave). The real bad guys have been using us (programmers) for decades to wage their war on the workers. That's most of what they want us to do. Our effective purpose is not build flying cars or cure cancer, but to vaporize jobs for the poor and deliver the proceeds, efficiently, to the rich. Since we are also workers (we're the upper-working class) it's not surprising that we'd see our own weapons used on us.
- artmageddon 12y ago> Then there's LinkedIn, which may have been started with good intent but makes it astronomically more difficult for people to reinvent themselves (giving even more power to corporate management, which is thus empowered to fuck with peoples' careers long after they leave Just curious, how do you mean?
- nahname 12y agoDevelopers keep pushing the envelope to make tools easier to use and people keep coming up with increasingly complex requirements. Neither side is ever content.
- Mangalor 12y agoThis. This is the reason why I never say "We can build X". We can never know because the requirements always get pushed an order of magnitude higher whenever we can actually build X.
- alphydan 12y agoFor those in machine learning and programming languages, what would be the major hurdles in achieving voice programming (or at least scripting). A way to interact with a computer so that one could ask things like: "Computer, search google's rss news for arduino articles. Sort them by lenght, in the top 100 results search for the world circuit. Copy paste the paragraphs containing those results into a text file. Send it to Jane". Is it really that far? Wouldn't such a program enable some kind of programming for non-coders (of course assuming one would need to learn some rules, and have a clear idea of what one was looking for).
- deleted 12y ago[deleted]
- Mangalor 12y agoThe problem is it's already hard to be very precise about what you're saying when talking to a computer just with text, so we'd need functions specific for each of those voice requests, more reliable voice recognition, and also some AI intelligence to understand the English you're using, so even that simple request would be difficult unless we pre-scripted the functionality for that whole phrase. It's not impossible, the technology just isn't there yet.
- AKora 12y agoIt's interesting that there is no mention of the so called "citizen developer". According to some Gartner reports very soon a fairly large amount (approx. 25%) of all business applications will be "written" by so called "citizen developers". These are mostly business people with minimal or no programming knowledge but are able to use software tools to create other "software tools". A good, VERY BASIC example is building an Excel "app" with some VB scripts...