11 ms·
What's wrong with Software nowadays and how we can fix it
- CJefferson 10y agoI usually try hard not to be cynical, but in this case I can't stop myself. This seems to be another attempt at a grand, unified packaging and IPC / linking method. There have been hundreds of these, and there is no attempt at all to discuss where all the others went wrong, and how this will improve upon them.
- mooreds 10y agoObligatory xkcd cartoon: https://xkcd.com/927/ https://xkcd.com/927/
- striking 10y agoWhat's more, I'm fairly certain developers would prefer smaller, incremental, and separate improvements to their software ecosystems. "One library to rule them all" isn't as compelling as the UNIX principle. Because when one of these systems is proven to be inefficient or buggy, it doesn't discredit the entire library. I want some of these parts in some of my apps. But not all, always.
- stbn 10y agoCan someone name a couple of those hundreds of attempts?
- CJefferson 10y agoMost languages try this at some point, Java claimed you could link all your code into Java and use OOP. Self-describing components in .NET Visual Basic 6's component method. Windows has had various of these, including ODE and COM. Obviously, any linux distribution, and plain old C linking, probably comes closest (although that tends not to be self-describing. Lots of RPC systems I would say fall into this list, just google for "self-describing RPC" to find a bunch of versions.
- _pmf_ 10y agoCORBA and WSDL/SOAP. Also, it's not quite correct to say that these failed. They did what they were supposed to do; they simply were not the magic bullet some proponents made them out to be.
- vbezhenar 10y agoThere are interesting ideas in this project. I would love instantly dig into any software component. I can do that with website: I can right-click on button and click "Inspect" and I'm very close to discover what code executes. Imagine the entire computing platform built this way. Few navigations and you are reading TCP/IP code. Click here and there and you are inspecting USB packet from your mouse. Also live code update is so rare, yet so useful. Set breakpoint on that line, stop there. Add some code and it'll be executed immediately. Java invented Javadocs, which is awesome. I can read almost 0 documentation on some simple library yet I can use it with autocomplete. JavaScript isn't quite there yet, but it could be. There's a lot of improvements to be made in current software stack.
- rtens 10y agoSince you're 100% right I wouldn't call that cynical. It is indeed another approach to create a unified messaging standard. And yeah there are plenty and I haven't even looked at every single one in detail to be able to reject them. But that's definitely an exercise I will try soon.
- gmluke 10y ago> Just as knowing why apples fall down and aeroplanes fly up, the citizens of the 21st century need to know that computers are not magical boxes but composed of dynamic models. In all honesty, I don't know why apples fall down and aeroplanes fly up. I just know that they do. No doubt that improving software literacy is a worthwhile goal, but I think the author hasn't made a strong case for it in the opening paragraphs.
- Waterluvian 10y agoOne of the most common challenges that I see engineers face is to effectively empathize with the user. When you know a lot about something, you just see it in a fundamentally different way. This makes it difficult to focus on making it easy for the user to do what they want, not what you think they should want. When I drive my car, I just want to get from point A to point B while listening to a podcast. I don't care to know how they work. This doesn't make me enfeebled or ignorant, I would just rather commit my learning cycles elsewhere. Computers need to be the same. Why would we be so foolish as to think that it's a wrongdoing that people are able to effectively use computers without having any clue about how they function? Literacy isn't about forcing people to learn things, it's about ensuring that everyone has the baseline exposure to help them discover if they have an interest in a topic, and then the resources to explore that topic if they choose.
- vetinari 10y agoThe problem with computers (abstracting from accidental complexity) is, that they do what you tell them to do, not what you think you told them to do. You cannot somehow make an agreement or solve it, how it is solved with humans - by communicating. You must formulate your thought exactly. And that's what most people have a problem with - except for some hard sciences, they never needed to formulate their thought that way.
- CmdrSprinkles 10y agoNot to be rude, but how often do you interact with other human beings? Communication is a huge problem in everyday life. Anyone who has ever had even a short term SO (longer than a one night stand/few dates) has learned that it is important to be careful in how you phrase things and to understand that people may not understand what you were trying to say.
- pttrsmrt 10y agoAt first glance, it seemed like yet another silicon-valley-neoliberlist-style lots of words and ideologies, but no code and practicalities. But it seems like OPs thesis has a more hands-on approach: http://zells.org/res/Zells_DiplomaThesis.pdf http://zells.org/res/Zells_DiplomaThesis.pdf
- airesQ 10y agoFrom the 10mins I spend looking at it: - It seems some kind of language/computation-model. Loosely based on a "everything is an actor" model. - It did look goodish. I tried following the Fibonacci example, which sort of made sense (I got the impression that recursion is handled by creating new nodes/zells). The discussion chapter also seemed interesting. - It has that abstruse academic feel, where sometimes it is hard to assess whether the problem is my ignorance, or just vagueness of the publication. - Motivation sections usually have an exaggerated tone to them (i.e. this will totally change everything), but this one, and the article above, are a bit over the top. - There are also some over-the-top statements sprinkled throughout the thesis (e.g. "a model of virtual objects which exist independent of any hardware").
- rtens 10y ago- that's exactly what it is. And the way I see it, actors are an implementation of OOP (in it's original meaning) so I would stick with "everything in an object" - thanks =) - I had that same feeling while writing it, constantly balancing my own ignorance with an acceptable level of vagueness - call me the over-the-top guy. But the way I see, your vision has to be grand, if not megalomaniac if you want the essence to survive the collision with reality - seamlessly migrating networked objects are one of the lesser over-the-top ideas though
- inimino 10y agoIf the thesis is relevant at all to what you're doing now, might I suggest linking to it directly from the manifesto? Otherwise it sounds mostly like you are very excited about something, but I got almost no idea what that something is.
- jdavis703 10y ago> Just as knowing why apples fall down and aeroplanes fly up, the citizens of the 21st century need to know that computers are not magical boxes but composed of dynamic models. I'm not sure most of the public could explain why gravity works, or how an airplane actually gets in the sky. This is because most people are not inquisitive by nature, they generally take things at face value without questioning why. This kind of attitude does not work if you want to build something complex whether it be software, a car, or a bridge. I think the first step is how we as a society can encourage a generation of thinkers and tinkerers.
- sbuttgereit 10y ago> This is because most people are not inquisitive by nature, they generally take things at face value without questioning why. I have to disagree with this statement. Almost all people that I meet, pretty much across all group boundaries you can imagine, I find to be inquisitive. Very inquisitive in fact. What I think you may be observing is that the depths of questions that many are interested in aren't great... gossip magazines, for example serve to give answers to an inquisitive populous, we can question the value of such questions, but that is still a drive to know something. Also, I find that when people do ask deeper questions they can be simply overwhelmed by the answers. I'm not particularly good at mathematics, but often times work with people that are in the very top tier in that realm: I will ask certain questions for which I'm simply not prepared to hear the answer... the answer requires background that I simply don't have... I am genuinely interested, but the required prep work is simply out of the question. One could argue that the answers can be simplified as well, but that's not always true.
- Insanity 10y agoI think the problem with creating a society of thinkers and tinkerers is that some people just do not find it interesting, so we should not force them into it. I am curious by nature and like learning new things and figuring out how things work, and it has been like that since I was a kid. My brother is the exact oposite to me, yet we both had the same upbringings (we differ just three years). When he studied the sciences, it was just pass highschool degree, and after that he went into the social field as a caretaker for special-needs children. I doubt he would benefit a great deal in his day to day life from knowing why apples fall down or planes fly up. Whilst I like the idea of encouraging a generation of thinkers and tinkerers, I accept that it just isn't for everyone, and neither should it be. Maybe it's just not in their nature.
- dreta 10y agoThis industry is in its infancy. We have some of the greatest minds working in it, and yet we barely know how to make things work right, and OP’s suggesting we try and design tools that an average person can use to create powerful software. How about we let highly-trained specialists figure out how to write complex software first, before we try to teach average programmers how to do it, and perhaps then we can turn our heads towards the masses.
- sowbug 10y agoMaking computers incredibly simple to use seems to have worked out well in the case of the iPhone. Lots of common usability problems in computer UI simply went away with a much better design. It's hard to say where the mobile-phone industry would be today if that shift hadn't happened in 2007. Perhaps the same could happen for computer programming. For example, in the 1990s, HTML introduced coding to lots of people who otherwise probably wouldn't ever have considered it. A forgiving declarative interface was a lot more appealing than learning what compilers, linkers, functions, parameters, and APIs were.
- sickbeard 10y ago> More and more, users are put into - sometimes golden - cages, and forced to hand over their ideas, personal information, and even identities to international quasi-monopolies that put everything into walled gardens which the creator can only access through tiny keyholes. I don't think this has anything to do with software, it seems more like an attempt to educate the masses on the evils of facebook and twitter, but then again that isn't a software problem. You can see this kind of locking system in financial businesses like loans/mortgages, or even benign ones like the eyeglasses business.
- rtens 10y agoThey might not be as benign as you think: https://www.youtube.com/watch?v=CAeHuDcy_bY https://www.youtube.com/watch?v=CAeHuDcy_bY But I agree that this is not a software problem but a business model problem. The solution however, can be software.
- coderjames 10y ago>To fix this, we need to increase the currently tiny number of people who are able to write, modify, combine and share software. We need a tool that makes writing software easy and fun, and accessible to everyone. A tool that enables software literacy. Global access to niche knowledge doesn't seem like an effective use of the world's time to me. Let's look at this same idea, but replace "develop software" with "perform brain surgery." > To fix this, we need to increase the currently tiny number of people who are able to perform brain surgery. We need a tool that makes performing brain surgery easy and fun, and accessible to everyone. A tool that enables neurosurgical literacy. Just like Software Engineers don't need to know how to perform neurosurgery, accountants, marketers, burger flippers, and salespeople don't need to know how to write software. I'd rather the CEO of the company I work for spend time on growing the business, not learning how to write a "Hello, world!" program.
- panic 10y agoOk, but what makes brain surgery a good analogy? Why not replace "writing software" with "hopping on one foot" instead? Most of us own computers that can run software, but we don't own the equipment required to do brain surgery. More people have problems that can be solved by software than can be solved by brain surgery. I think software is more like basic arithmetic: a bit of training (plus the pen and paper you already have) and you can do something yourself that used to require a professional. Of course, software is way more powerful!
- dkersten 10y agoA lot of people use software, but does that really mean they need to know how to create their own? sbov's car analogy suggestion is apt: a lot of people drive cars, but should they be expected to be able to maintain their own? A kinda related side observation: I found my brief stint working with Max/MSP (a visual language typically used by musicians) to be illuminating. This is a tool for non programmers (musicians in this case) to write software for their own use and it succeeds at this. Its kind of like excel for musicians. But, just like excel, the software created by these people, while functionally they work and do what the musician wants, are written in pretty terrible spaghetti code (giving visual programming a bad name in the process), because the users never learned software engineering principles (even simple ones like abstraction). Just as with excel, this is fine for write-only once-off tools and I certainly do think that more excel-like tools that allow non-programmers to solve their own problems are necessary and will help in software literacy. However, I don't think that these tools or skills will achieve a world where most people can write and modify software in general because they won't have been trained in the software principles we take for granted. Try and debug a large non-programmer-created excel sheet sometime for example. :) My point is that its not exactly like basic arithmetic, but as you say its not thaaat different either. Yes, some excel-like tools and a bit of training will allow more people to create their own little solutions to their day to day problems, and this is something worth striving for, but it won't be enough to let them create/modify large software in the general case. For that, they need the full blown mathematicians training (or, some of it, anyway). > you can do something yourself that used to require a professional I suppose THIS is what the goal is or should be. Not to make everyone a programmer, but to allow people to do more things for themselves that they previously required experts for.
- ysavir 10y agoI think this misses the problem completely. The problem is not that people that trust computers need to put more effort into understanding computers. The problem is that people keep trusting computers. What people really need to be educated on is "Why computers are not and never will be trustworthy". And they don't need the details of why, just the bottom line.
- rtens 10y agoWhy are computers not trustworthy nor ever will be?
- justaman 10y agoI think there is room for a "global librarian". Moreover, when AI starts to program itself, having a logically linked system that can be queried for potential implementation strategies will be beneficial for integrating new features. However I think google can already do this to some regard. Perhaps its time for something like "site: github, lang: python, tags: [csv, excel, graph]. Then add some local db that can receive notifications from github on changes?
- dustingetz 10y agoHi rtens, I would like a concrete (not abstract) explanation of what a cell is and how to compose an application with them; your docs are very abstract. Perhaps a hello world application?
- rtens 10y agoThe thesis mentioned elsewhere contains some concrete examples but my goal with the manifesto was to get to the root of the problem I'm trying to solve which is quite abstract indeed. I do not have a document yet that visualizes what I want to build but I'm working on that. I'll post updates on twitter.
- dgreensp 10y agoI'm going to buck the trend of cynicism and say this is beautiful and matches my own ideas closely, though I have not read the paper yet. How many of us seasoned programmers came to an understanding with computers by playing in a "toy world" of comprehensible, somewhat visible, documented, predictable abstractions, such as Logo, HyperCard, Excel, BASIC, or even assembly code, and now perform bizarre ceremonial rites on a daily basis to get a teetering stack to perform our bidding as part of "real" programming? There's a vicious interplay between how "bad" and complex software is and how arcane and unapproachable it is, even to experts, driving away all but the most determined to crack the code, who then work together to try to build quality components and applications against great odds.
- dgreensp 10y agoAfter reading the thesis, the proposed model of computing is like a concurrent Smalltalk where everything is completely mutable, even an object's code and prototype chain. The author then writes a function to calculate the Fibonacci sequence by turning it into a distributed system, with some effort, and then runs the code and talks about its performance! At first glance, there seems to be a lot of incidental complexity and creative choice in expressing a function from integer to integer in this system, which goes against the ideas of code reuse and separating meaning from optimization -- i.e. that there is one global Fibonacci function that we can inspect and understand and don't have to rewrite for performance, or in another language, or to run in a distributed fashion.
- skywhopper 10y agoAnyone who says this: in the virtual world of computers, everything can be replicated, from complex physical phenomena to abstract ideas, and even your own mind. Does not understand computers well enough to be lecturing the world about the need for software "literacy". The assertion that computers can represent any of those things is a complete falsehood. Computers are great with complex mathematical models of physical phenomena, and in some limited cases this is extremely useful. But smart engineers know the limits of their tools, and computer models are not an exception. But to assert that abstract ideas or the human mind can be replicated in a computer only shows that the author either has no idea of the actual state of the art, and/or has no idea of what he means when he says this is possible. One of the first things you learn in Computer Science is that not all problems can be solved with a computer. It's amazing that people so enamored with math that they want to believe they can model every phenomenon in the universe with a computer apparently disbelieve the math that proves computers can't correctly model everything. Weird. Please don't try to teach the world that computers can do everything. They can't. And that should be lesson one in any plan to increase software literacy. Starting, apparently, with its advocates.
- trolor 10y ago>One of the first things you learn in Computer Science is that not all problems can be solved with a computer. Oh ... could you elaborate? I think my cut-rate, community college degree skipped that part :) it seems like a useful thing to know!
- madgar 10y agoI assume skywhopper is referring to undecidable and uncomputable problems. https://en.wikipedia.org/wiki/Undecidable_problem https://en.wikipedia.org/wiki/Undecidable_problem
- m0th87 10y agoI don't really get how that's a critique of the ability to represent complexity on a computer well. After all, isn't a human mind constrained by P ?= NP in the same way as a computer architecture?
- exelius 10y agoIMO we're kind of headed that way now. I always saw this as the point of Google's combined interest in TensorFlow and Kubernetes. Containers are the piece of the toolchain we've been missing. Now we actually have some feasible logical methods (deep neural networks + gradient descent) that can be used to structure existing computational tools into deeper, more intelligent systems. Think of it this way: what's the difference between (an ideal) container and an artificial neuron? Structurally, they are nearly identical: they both have collectors and emitters, and perform some non-linear action in concert with other similarly-structured systems. Containers can also help with some of the "trust" problems: if we're shipping around trained data models (or container images) rather than the actual training data, we can push storage out to the edge of the network and run the models there. Containers provide a common computing language that enables you to do that. This platform is not a leap forward for the theoretical capabilities of AI; but it is a shortcut that should eventually make it easy for AI researchers to leverage vast existing libraries of software written in any one of hundreds of programming languages. I actually suspect that this is just the first generation; there are a number of software problems that currently can't be solved easily in a multithreaded manner. However, if you can build a container that does what you need, you can eventually train a model to replicate the container -- it may be less computationally efficient, but with future orchestration platforms it may end up being more time-efficient.
- z3t4 10y agoI'm also working on solving this problem, but my solution is to teach vanilla HTML, CSS and JavaScript by making an IDE with WYSIWYG, real time analysis and other goodies.
- rtens 10y agoThat's great. What's your target group?
- z3t4 10y agoTrying to get people who make Word documents to make web documents instead, using HTML. I think it's time to bring HTML and the web to the mainstream. Companies are currently paying hundreds thousands of dollars to copy/paste from Word to a CMS that store the document in a database blob, when they could make HTML documents themselves for peanuts. Once you have the documents in HTML format instead of a closed binary format, it's possible to use all the nice tools we developers use, like git.
- oZe 10y agoI propose capital punishment for people who do not put enough effort into optimizing memory usage and performance. I know we have more than 64kb of ram now. That does not mean we have to add useless shit that just bloats everything.
- rtens 10y agoWhat should be the punishment for premature optimization?
- orclev 10y agoCan we please just let this idea die. Almost since the day programming was invented there has been at least one person out there trying to dumb it down to work for the average person and it always fails. Computers are hard to program because they're complicated. Programming languages strike a balance between simplifying some aspects of that complexity and exposing enough of the inner workings to efficiently implement algorithms. Different languages strike different balances but ultimately they all are more complicated than the average person can handle because at the end of the day the computer itself is more complicated than the average person can handle. No amount of dumbing down or simplifying things is going to create a programming language that you're going to want to write serious programs in but that the average person is going to be able to understand.
- inimino 10y agoIt sounds like you really want programming to continue to be difficult.
- orclev 10y agoOn the contrary, I want programming to be easier where possible, but the goals of this manifesto (and all the similar ones before it) are trying to fix the wrong thing. Better and more powerful abstractions are always good, I'll always welcome a new tool that makes my job easier. However the goal of this project is to make a tool that's explicitly designed to make code that's easier to read for the average person, not easier to program in. This is in many ways a set of opposing goals. Things that are easier to understand tend to lead to more verbose code and vice versa. Look for instance at assembler. Conceptually assembler is very simple but because of that simplicity implementing anything non-trivial in assembly tends to be very verbose. On the other extreme languages like APL and Haskell are very concise but they're hard to understand because they're very complex and leverage a lot of very powerful concepts. What I want are new tools that leverage powerful concepts to allow me to efficiently express complex ideas. These tools by their very nature are hard for the non-programmer to understand. Look at what's being proposed in this manifesto. They're advocating for what is in essence internet enabled Excel. Do we really want to start trying to write applications in Excel? Can you imagine the horrible spaghetti code that would result in? Imagine how much code you're going to have to write to express even mildly complicated concepts? Imagine trying to maintain one of these beasts. Further more, for this idea they propose to get off the ground, the vast majority of programs would need to be written in this new language they're proposing, which is, quite frankly, not going to happen anytime in the next 20 years at least. We're still using C and assembly, and they don't look to be going anywhere anytime soon (although maybe Rust can dislodge a little of the C). I do think it would be good for more of the population to at least have a passing understanding of basic programming concepts, at the very least learning how to solve problems using abstract thinking would be useful, but I don't think trying to create some kind of "simple" programming language is the way to do it. There are "simple" programming languages out there, just look at any of the toy languages designed to teach children how to program. But that's the thing, they'll always just be toys, they expose a very limited subset of capabilities for solving a limited subset of problems (mostly they focus on making it easy to draw on the screen since it allows for simple games that provide positive feedback for children learning).
- rtens 10y agoSince this is my first submission on hacker news, I'm a bit overwhelmed by the amount and quality of the responses. I'll try to address critiques individually but in order to not have to repeat myself continuously I wanted to thank everybody for their time and energy this way. Your feedback is much appreciated and I'll use it to debug the idea and the manifesto.
- Gravityloss 10y agoI'm taking the opposite opinion for the sake of argument: The more you understand about software, the more frustrated and disappointed you will be, as you see all the easily avoidable flaws around you. Web pages that have a few lines of text are unreadable on mobile devices and drain your battery. Setting the spin speed on a washing machine takes ages because the computer polls for input only about once per second, so it misses most of your button presses. How to reconcile this if the clock speed is thousands to millions of cycles per second and the whole system has only a handful of inputs and outputs. These are not tough technological limitations, but completely easily avoidable human failures. There can be nothing but negligence, cynicism and depression to explain them. People would be a lot happier to just say "I guess it must be like this", or "My device is getting old and slow". A bit like "God works in mysterious ways" or "it must be fate" can often feel better than "our government is corrupt" or "I don't have any kind of plan". I guess it's the same about any thing you feel passionate about. If you cared about clothes or food, seeing all the junk out there might make you less happy. A friend of mine was a barista. He wasn't happy that people were paying the same amount for worse coffee.
- rtens 10y agoWow that's depressing. I suddenly feel the impulse to give you a hug and tell you that it's gonna be alright. I wish I was more sure that it actually will be.
- aethertron 10y agoPleased to see more efforts to fix fundamental problems with computing. It's certainly needed, this won't get fixed by piling more crap on top of the existing stacks (including: building OSS versions of proprietary things.) This one seems to address some of the values I think are important, so, neat. But I'd argue ordinary people just need to be able to use software, not necessarily build it. So, available software should be high-quality. There should be meaningful choices between alternatives. I think that means: no lock-in.
- alpos 10y agoThe cells concept seems like a global git repo atop a NFS. While such a thing might help the people who choose to use it. I think you will have to be very careful to avoid the competing standards trap. https://xkcd.com/927/ https://xkcd.com/927/ If you are truly passionate about bringing programming to more people, then I suggest starting by trying to teach each existing language to a different person who doesn't know programming. The intro experiences of each of those people should confirm or refine your ideas about what needs to be built in order to get the maximum number of people programming. Alternately, you could start with the observation that it seems to be the case that even most programmers do not make most of their own solutions. If that is true then a good thing to build might be a general programming language that would get most programmers to start making most of their own solutions. Either way, the result should be a language that is so much simpler to write in and that provides such a small time to useful solution that not only will most programmers choose to use it to solve their own problems but most programming instructors will choose to use it as a first language.
- philly77 10y agoCrap mobile site.
- jrochkind1 10y agoYet another "If only Hypercard had been the future" dream. I agree it would have been nice if it had been. But there are Reasons it didn't work out that way, and probably isn't gonna go there.
- rtens 10y agoWhat do you think those reasons are? In case of HyperCard I think it's that there wasn't any inter-stack-linking let alone networking. What I'm crying about is that Smalltalk was not the future.
- jrochkind1 10y agoIt's too hard/expensive to make that kind of abstracted GUI that lets you make real software, and too hard to keep it updated as the environments/contexts change, as in your example of networking became important, and it wasn't part of hypercard, and would have taken a lot of time and skill to make it so in a useful way. It's just too hard. You can make that kind of layer for a special special purpose domain (say, making simple games, or sound engineering, or what have you), but it's hard even to do that right, let alone a general purpose universal environment. Software is expensive enough to develop with quality the 'ordinary way', let alone trying to develop and maintain some kind of layer on top that let's people do it without.... without what? Without knowing what they're doing? At some point, if you are able to make it actually powerful enough, it's going to be just as 'hard' as anything else, isn't it?
- inimino 10y agoHyperCard failed, but not necessarily for technical reasons. It might be worth making some hypotheses and testable predictions here about how much complexity is needed for various tasks, and how well current tools are doing at avoiding unnecessary complexity. I think surveying the current landscape and past efforts, and getting a dialog going along the way, would be a lot more valuable than immediately starting to design a solution. I'm very confident there are opportunities here, but not so confident about the chances of any particular approach.
- barnacs 10y agoI haven't read the paper yet but the idea looks promising. I've had this itch myself for a long time. I can't quite put my finger on it but we really need something like a high level assembly language. One that incorporates high level concepts like networked computers, cryptographic identites for users, access to a global, shared pool of data and algorithmic primitives regardless of which application they were originally written for, or what domain specific higher level language they were created in. Like, once a user has entered their address into a computer, they shouldn't ever have to enter it again in a different software. Once someone has written an algorithm which takes input x and produces output y, noone should ever have to rewrite it again, but everyone should be able to reuse it. Applications shouldn't all indvividually handle transferring data between devices of the same user or even between users, this should be already built into our programming model. And so on. If this sounds like some utopian dream or incoherent babble, that's because it probably is at this point. But I'm convinced this is the future of computing we should be aiming for, not piling up more stuff onto our existing stack that's just barely held together by ~50 year old technolgies built for that age.
- rtens 10y agoWow that's exactly how I feel. I couldn't even formulate it that well. But I'm very happy to know that other people feel this itch as well. Your sentiment of "aiming for the future we want" instead of "piling up more stuff on our existing stack" reminded me very much of this talk: https://www.youtube.com/watch?v=gTAghAJcO1o https://www.youtube.com/watch?v=gTAghAJcO1o
- eternalban 10y agoWhenever the physical world intrudes on the illusory "virtual world of computers", the man behind the curtain is observed in its less than superlative aspects and we're less prone to attribute OZ powers to "software". Software /is/ magical in many aspects. But its own inherent magic has never been anything other than sleight of hand sort of magic. Even then, software magic borrows from the glory of /insanely/ complex physical machines, and various wondrous features of Nature itself. One case in point was when Moore's Law and economy collided and the practice had to ramp up on concurrency and deal with SMP. A bit later (and still on going) we're ramping up on distribution and dealing with CAP. In the former case, the illusory 'indivisible' platform was seen to have a sort of geography. In the latter case, the illusory notions of linear 'time' and smooth 'space' was smashed. OP's remedy for a software-driven world's ailments is software literacy. But the physical head poking through the curtain should make it clear a large subset of these ailments have to do with physical things, such as computing devices, infrastructure, access to energy, and even softer concerns such as legal and political cover for making, providing, and operating software. Imagine if every single person was a world class chemist and biologist. Would we be able to do away with drug companies? You have that amazing molecule all figured out -- do you have the physical capability for actually realizing it?
- nradov 10y agoViewpoints Research Institute (Alan Kay's group) is working on solving some of those problems. They have published some interesting papers although I don't know how practical their ideas are. http://www.vpri.org/html/work/ifnct.htm http://www.vpri.org/html/work/ifnct.htm