5 ms·
I'd like to fall back on Alan Kay's view on the topic. In his talks, he often considers large parts of computing immature. For instance, in serious disciplines
by atomicnature 4y ago
I'd like to fall back on Alan Kay's view on the topic. In his talks, he often considers large parts of computing immature. For instance, in serious disciplines such as Mathematics, there is a great focus on scholarship, and building up on predecessors. In computing, we find it hard to come up with a definition of "progress". There is constant "change", sometimes what looks like "improvements" and "corrections", but it is hard to tell whether stuff is really getting better. At best in software, we find "extensions" of concepts/systems. Contrast with mathematics, where there is a clear mounting to higher concepts over time.
From the above perspective, programming is more like politics/fashion than mathematics. There is in general insufficient respect for scholarship, a lack of universally accepted authorities, a consensus on what's high quality and low quality. There is too much dispute and room for profitless argument.
PS: We got attracted to this field; what does it tell about us? :P
- sseagull 4y agoI think I 100% agree with this. There have been threads here about burnout and disillusionment, and I think it kind of feeds into this. There's so much churn and confusion about what is the best way to do things, and there's no real guiding force - everything is still so young. For me personally, it's frustrating how so many new ideas are really solutions to problems tech itself has caused. I like to say that Docker is great, but really it shouldn't need to exist - packaging complexity is self-inflicted and a sign of an immature discipline. Also, what other discipline can spend millions of dollars, and 10s of thousands to millions of man hours building a package/framework/language/ecosystem, then decide a few years later that "meh, seems dated", and "look, this new stuff is so refreshing!". Again, the inability to focus is a kind of immaturity.
- linuxdude314 4y agoWe are there though. Currently there is no need to use docker to run containers natively in many OS. Systemd nspawn, rocket, cri-o accomplish the same workflows with tight OS integration. We don’t hear about them that much, but almost anyone using k8s is not using docker at this point.
- orev 4y agoYou’ve completely missed the point. By “docker” they mean the concept of containers, which is only needed because developers are so absolutely awful at keeping track of what libraries they’re using, and completely opposed to using OS packages like rpm/deb, that someone (Docker) finally had to say “screw it, we’re just going to lump everything into this binary blob that includes a whole set of OS libraries because we just give up even trying to get them the play nice with the rest of the IT ecosystem”.
- rileyphone 4y agoStill the same problem, which is that the OS introduces a bunch of baggage that requires an additional layer of virtualization. To quote Dan Ingalls: > An operating system is a collection of things that don’t fit into a language. There shouldn’t be one.
- spacemadness 4y agoLots of confusion and yet a sense there is a lack of compassion for not knowing optimal solutions in the same wild west environment. Enter imposter syndrome. Enter disillusionment.
- coffeebeqn 4y agoIt is software engineering. Success is not accumulated on perfecting a formula in a dusty study of an ancient university but in the messy and human business domain. Success almost always has to do with time to market
- Sharlin 4y agoAlmost no other engineering discipline is volatile like that. So why should SE be? There are trends and fashions, of course, and missteps along the way, but the success of building a bridge has nothing to do with time to market. (The success of selling a bridge still might!) Sure, many engineering fields are similarly at the mercy of erratic consumer or business interests, but the fundamentals of what makes a good fridge or camera or building aren’t decided by the marketing department or some yelling contest on the internet where the winner is who has the most Github stars. Real engineering absolutely progresses in universities hand in hand with the real world, or do you think that institutions like the MIT or Caltech or Cambridge’s School of Technology don’t have anything to do with the success of engineering endeavors everywhere?
- dudeofea 4y agoI know electrical engineers that spend their whole day picking out doors for hydro-electric facilities and chemical engineers whose job is to sell various pipe valves. The programmer equivalent might be refactoring variable names to "int i_FallDistance_mm" or working in crypto. If you aren't sure if your current job is one that an engineer would do, you could consult the engineer code of ethics. Broadly: 1. shall, in their areas of practice, hold paramount the health, safety and welfare of the public and have regard for the environment. 2. shall undertake only work that they are competent to perform by virtue of their training and experience. 3. shall conduct themselves with integrity, honesty, fairness, and objectivity in their professional activities. 4. shall comply with applicable statutes, regulations, and bylaws in their professional practices. 5. shall uphold and enhance the honour, dignity, and reputation of their professions and, thus, the ability of the professions to serve the public interest https://www.apega.ca/docs/default-source/pdfs/standards-guidelines/ethical-practice.pdf?sfvrsn=78261e0b_14 https://www.apega.ca/docs/default-source/pdfs/standards-guid...
- lp4vn 4y ago>For instance, in serious disciplines such as Mathematics, there is a great focus on scholarship, and building up on predecessors. In computing, we find it hard to come up with a definition of "progress". There is constant "change", sometimes what looks like "improvements" and "corrections", but it is hard to tell whether stuff is really getting better. At best in software, we find "extensions" of concepts/systems. Contrast with mathematics, where there is a clear mounting to higher concepts over time. This is absolutely true. One real example of this phenomenon in my opinion: the rise of JSON. In the 90's, the XML was invented to be the silver bullet of the myriad of ad-hoc formats for structuring documents that existed in the wild. So in the XML stack you could find the XSL to ensure the validity of an XML document, the XPath to be a querying language, the XSLT to be a language for writing transformations, etc. I guess that in the 90's many people regarded XML as the dawn of an era of strict correcteness between data exchanges and the elevation of the contract-based design. At some point though people deemed XML too verbose and started using JSON. Now with JSON there are multiples conflicting implementations of basic things like a schema mechanism and files and API's that rely many times on natural language to be defined, so an obvious retrocess only because of "verbosity". You can see this random walk in many other places, with frameworks reinventing the same thing over and over and getting traction besides implementing something worse. I guess that since technology is a field that receives a big influx of people, the dynamic of the field changes to support people who don't understand completely what they are doing, this doesn't happen with mathematics/chemistry/physics because it's you who have to adapt to them.
- tannhaeuser 4y ago> In the 90's, the XML was invented to be the silver bullet of the myriad of ad-hoc formats for structuring documents that existed in the wild. Tangential, but this is seriously uninformed. XML is a subset of SGML, specified by SGML's original creators, implementers, and users (the SGML Extended Review Board at W3C) as a simplified meta markup language for the web. What has been projected into XML beyond this original purpose is truly astonishing, though, and while that's true of the web as a whole, XML has failed this primary purpose, too.
- Animats 4y ago> I was visiting the Star Citizen subreddit where a user posted a readable, short, simple proof of concept to improve a longstanding inelegant UI element. That's exactly the sort of discussion that encourages what's called "bikeshedding". If someone says "we should fix x because it will be much faster", that tends not to generate rants. If someone says "we should fix x because it would be easier to use", it generates complaints. Mandatory XKCD.[1] > There is constant "change". This is especially true in the user interface area. Fussing with user interface elements is a popular way to indicate that the product has a new version. Look up the history of Microsoft Windows screens. There are lots of historical pictures, so you can do this easily. It's a management problem, too. The head of the Stanford business school once said that the main job of management is "change". Not "improvement". There have been at least 22 versions of Tide, the laundry detergent. A line from a marketing text: "The most effective phrases are FREE and NEW. You can't always use FREE, but you can always use NEW." [1] https://xkcd.com/1172/ https://xkcd.com/1172/
- hinkley 4y agoOne of Joel Spolsky’s most coherent blog posts was called “Fire and Motion” and talks about how velocity != progress. We are often moving really fast in a big circle.
- canadianfella 4y ago[dead]