7 ms·
I have talked about this on here before, but the utter fervor around XML in the late 90s/early aughts is somewhat forgotten and unlike anything else I have seen
by donatj 4y ago
I have talked about this on here before, but the utter fervor around XML in the late 90s/early aughts is somewhat forgotten and unlike anything else I have seen in my career. Honestly, the current AI boom comes the closest.
It’s hard to explain and harder to justify if you weren’t there to see it with your own eyes; “it does XML” was literally a major selling point on so many products.
If you weren’t working with XML, what were you even doing with your career? You’re a dinosaur. Every single day someone was inventing new uses for XML. It was talked about like some sort of savior of the software industry. It’s really bizarre looking back.
There was something in the water. It lead to a lot of XML centric products like “XML Appliances”.
- daniel-s 4y agoIs the reason because it made data exchange basically universal between languages? Before XML you had random binary or text formats, so APIs were a lot of work? Everything is Json now, but XML->Json is not that remarkable. Why was it such a big deal?
- donatj 4y agoI think you’ve hit the nail on the head. It was the new hot universal structured way to transfer data over this newfangled internet and interop between applications and even operating systems. It even uses Unicode(!) which was a very big deal at the time.
- chiph 4y agoPrior to XML the way a lot of data got transferred was via comma-separated-value files. They have a number of limitations (to put it mildly), like how to store strings (single quotes? double quotes? no quotes at all?), what character to use to separate values (it wasn't always a comma - sometimes semicolons and pipes were used), and how to escape the in-band control characters (commas, quotes if used, newlines). If you had to share a file with another party there was a negotiation that happened ahead of time on how all that was to be done. Example: You have to send the name of customer Finley O'Conner. Do you send it as: ,Finley O'Conner, ,"Finley O'Conner", ,'Finley O''Conner', ,'Finley O\'Conner', And so on. But with XML the process of escaping control characters was well defined, and the receiver would commonly publish a schema definition that detailed what all the values were like (types, sizes, etc.) You could be up and running fairly quickly and with some confidence that the integration would work.
- marktangotango 4y agoAnd XML xsd's where fertile, fertile ground for architecture astronauts building Ivory Towers and Pristine Jewels. Oh, almost all the fields in the xsd are optional? No bother! Also the acronyms oh god the acronyms. Xsd; xml to define the xml schema! Xpath; xml to query xml! Xslt; xml to transform xml! Excuse me while I go puke.
- jcranmer 4y ago> Xpath; xml to query xml Actually, xpath looks like this: /Wikimedia/projects/project[@name='Wikipedia']/editions/edition/text() That is very much not XML syntax.
- chiph 4y ago> fertile ground for architecture astronauts building Ivory Towers and Pristine Jewels I have run into that. :) I was on the HR-XML standards committee for a brief period, and we had an XSD submission that was truly amazing. The author had a solid knowledge of XML, it was fully annotated and documented, and it would fulfill a need for the community. But it was absolutely huge - XML Spy would crash if you expanded too many nodes. I couldn't see any existing DOM style parser being able to validate a document against it. I get what you're saying about the X-alphabet soup. And you're right - see the other comment from jerf about the hype cycle. JSON is going through it's own hype cycle at the moment and there are active projects to do many of the things you dislike about the XML ecosystem .. against JSON.
- jerf 4y agoThere's always some sort of hype thing going on. If you made a chart of all the industry hype going back at least the 1990s there's always something. If I were older I could probably push that date back further, I'm just sticking with what I know. I think there were a lot of factors. One is that while it's not really true there were no interchange formats, they were all either bad, locked away behind huge paywalls, or unknown to the common programmer. It is hard to conceptualize how the industry worked before the Internet meant ten seconds could lead you to anything you like. Another is that XML was the evolution of some pre-existing standards and the people who were behind those standards, which includes some companies who made lots of money on those standards, were very excited about an evolution and saw an influence and profit opportunity in hyping it up. Money in general feeds a lot of the hype cycles. Even before we account for people deliberately pumping them, something that becomes slightly popular attracts money, which attracts marketing, which attracts further popularity. You can see that right now in the AI craze. (Note that being a hype cycle doesn't have to mean it's all hot air, there can be something useful in the middle of it.) Then we account for people pumping it and marketing it on purpose and the hype cycles only get bigger. XML also got a sort of halo effect from the sudden popularity of HTML and the web. It claimed to be the natural next evolution of the web technologies, even though that never really manifested. (It didn't completely fail, either, like with SVG being XML, but it didn't take the world over either.) It's a lot of things. It's even that it is a good solution to certain problems that didn't have a good interoperable solution at the time; even today a significant portion of XML's bad reputation isn't that it was actually a bad technology but that it was applied to tasks it very much shouldn't have been. (See "What XML is good at": https://news.ycombinator.com/item?id=11446984 https://news.ycombinator.com/item?id=11446984 ) But if I had to pick the one thing that HN might be underestimating, it was the amount of money being poured into marketing in order to drive hype cycles so that you had to pick up consulting services from Sun or IBM in order to stay current. These marketing teams bought editorials, magazine covers, would create entire conferences from whole cloth for these things, and a lot of companies would dutifully send their employees off to them in order to stay "current". There's a lot of money to be made in these hype cycles in consulting companies and companies selling shovels. A more recent one is the whole "data lake" thing; if you've not been part of it you may not realize how much money there is in selling to organizations the idea that if you just shove lots and lots of data into a pile and let Data Experts poke through it they will inevitably discover amazing facts about your company that you had no idea about, like, "if customers have been using your product a lot they're likely to continue to" and "if customers are toning down their usage of your product, they're probably about to leave". (I sarcasm here a bit, but it's just a myth that lots of data inevitably has amazing and subtle things to learn about it.) It isn't that hard for the companies making this money to pour just a bit of that money they're making into generalized fanning of the hype cycle du jour... and rolling back around to the topic, XML got a lot of it. The most amusing thing about these hype cycles is that they generally precede people understanding the tech and generally the maturity of the tech. Java is #1 today because Sun poured immense amounts of money into a hype cycle... yet in my highly opinionated opinion, Java wasn't actually good for much of anything until after the main cycle. XML was the same thing... people generally thought of it then just as many do now, as just some angle brackets and some vague rules, but it's actually a particular thing with particular uses (https://news.ycombinator.com/item?id=11446984 https://news.ycombinator.com/item?id=11446984) and particular tendencies, which, looking back, were not well understood by much of anybody until after the hype cycle died down. The XML-based technologies that date from the height of the hype cycle are not just verbose and unwieldy, they're also poor users of XML! One of the clearest examples is Atom versus RSS; while I'm actually generally on team RSS Is Good Enough, Atom comes from an era where people generally understood XML and it correctly specifies things and uses the features correctly, whereas RSS generally dates from the "XML is angle brackets and some attributes" era of XML, and as they solve essentially the same problem provide a really clear contrast.
- tannhaeuser 4y ago> Before XML you had random binary or text formats, so APIs were a lot of work? Before XML there was, and still is, SGML. From W3C's XML spec: > The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. So XML was intended to simplify HTML/SGML syntax, and in the form of SVG, MathML, and XHTML (XForms etc.) to add new vocabularies and vocabulary evolution facilities to the web. There was this idea that your backend service produces XML payloads, and you transform that to HTML via XML transformation languages such as XSLT. Well, it's fair to say web frontend development took a different direction ;) but the initial idea was inspired by the web being a text/markup based environment rather than becoming a desktop replacement, which it eventually did for economic rather than technical reasons ie. nobody buying software hence only "service" lock-in was left to make a living from development (F/OSS played a role in this, too). From there, XML was then suddenly used for config files and everything else; not so much because it was a good fit, but because it sold well and was ending tool discussions in projects. There are numerous uses where XML wouldn't be today's choice for data exchange, but where XML is extremely useful and prevailing, even unlikely ones such as for exchanging 3D CAE models with Blender, but mostly enterprise and gov document and data exchange, because in 2000s and early 2010s the expectation towards "open" systems was higher, or just simply because the segment saw enormous growth during that time.
- Blackthorn 4y agoIt's not like ASN1 didn't exist (or still exist). It's hard to say what'll catch on, I guess.
- dogma1138 4y agoIsn’t ASN.1 is a binary encoding without a universal human readable representation?
- Blackthorn 4y agoI would not call machine-produced XML at all human-readable. Of course, I suppose some amount of human-readability is pretty important. It's why textproto became a de-facto standard for protobufs.
- dogma1138 4y agoThey are quite often not, but the. XML does have style sheets which make things a bit easier since every browser can render an XML into a human only readable format that way.
- zmix 4y ago"Human readable" in XML lingo means, actually, "Human readable after transformation". Or: add some CSS to it and it's easily consumable.
- Demonsult 4y agoI joined a startup whose mission statement was to "do something with XML." We grabbed an embedded board, connected it to a printer port and enabled legacy systems to "print" to an XML service. It sold for lots of money and was never really integrated into anything.
- ChrisMarshallNY 4y agoI learned XSLT. It left scars...
- petesergeant 4y agoWhy? It's a perfectly good functional programming language... https://gist.github.com/pjlsergeant/50a3d086d9513612cb397a130c750f12 https://gist.github.com/pjlsergeant/50a3d086d9513612cb397a13...
- lmz 4y agoTo think that the previous incarnation DSSSL actually used Scheme and then this replaced it...
- pavlov 4y agoXML was the perfect storm of dot-com cool (it’s somehow part of the web!), serious enterprise (there’s money in it!), and simply being reasonably easy to implement: most software products work with some kind of data, so you can always come up with an XML angle. The crypto/web3 hype shared the first two aspects but not the third (it’s almost impossible to do something meaningful with crypto in an existing product, as companies like Meta with their now-dead NFT integrations found out). Generative AI may be crossing the threshold of ticking all three boxes again, as APIs become easier to use and enterprise interest ramps up (because companies don’t want their employees copy-pasting trade secrets into ChatGPT).
- jen20 4y agoIn the early 00s, I regularly used to drive between the south-east and south-west of England, and one of the cut-throughs to avoid the worst motorway is a town named Bracknell. For years there was a prominent building on that route for a company whose name I cannot remember, but the tagline on their sign was "The XML Company". If that was happening in Bracknell, I can only imagine how crazy the valley was... Worrying thing is 20+ years later, I'd take XML over YAML without hesitation...
- runlevel1 4y agoIt's name is/was Software AG.[^1][^2] What an impressively generic name. Looks like they still have an office in Bracknell. [1]: https://www.infoworld.com/article/2661499/software-ag--the-xml---oops---soa-company.html https://www.infoworld.com/article/2661499/software-ag--the-x... [2]: https://en.wikipedia.org/wiki/Software_AG https://en.wikipedia.org/wiki/Software_AG
- jen20 4y agoYes, that’s the one, thank you! I did notice in ~2019 that they were no longer in the same building (which appeared empty), guess they just moved somewhere less prominent.
- chubot 4y agoYup, it makes you wonder what's is the XML of right now. Humans like to participate in social manias, and our time is no exception. I conjectured that it's Kubernetes. Just like XML, Kubernetes solves a problem, but it doesn't solve EVERY problem. A sibling comment wrote that there was a startup whose mission was "do something with XML", and then they got acquired and didn't amount to much. There's lots of that around Kubernetes now. Kubernetes companies get acquired and don't end up doing very much. There's also another comment on the front page now (don't want to draw attention to it) where a person feels he is incompetent because he can't understand Kubernetes. It might be that he's competent, but an industry mania selected an inappropriate solution for his problem.
- rauhl 4y ago> I conjectured that it's Kubernetes. Just like XML, Kubernetes solves a problem, but it doesn't solve EVERY problem. Like XML, Kubernetes does a lot of cool things which were not common before it came around (unlike XML, I think K8s actually manages to improve on the state of the art a bit, too). But just as XML was largely replaced by JSON, I am really excited to see what replaces Kubernetes.
- pydry 4y ago>unlike anything else I have seen in my career. It seemed quite a lot like the microservices, nosql and ML hypes to me.
- lenkite 4y agoI Love XML. Well-designed XML is better than well-designed JSON IMHO for human readability. However, I can live with its successor Lord JSON. But the ArchDemon YAML - my lord in heaven - who summoned that monster ? I get strong urges to quit software and go into a cave crying after any time dealing with it.
- mburee 4y agoCould you share some examples? Genuinely interested as I really only know those god awful and huge Maven configs as things one would mostly edit by hand
- lenkite 4y agoMaven is an excellent example where the original author forgot that XML attributes exist. Or rather he chose to use a use a terrible parser than didn't support them. And overly verbose names. With a nice XSD, the below could be typed with full autocomplete and tab-next-placeholder support for element and attribute names in both neovim/vscode/ intellij. <proj name="My Biz CLI" url="http://github.com/mybiz/mybizctl" modelVersion="4.0.0"> <coord groupId="com.mybiz" artifactId="mybizctl" version="1.0.0" packaging="jar" /> OR <coord>com.mybiz:mybizctl:jar:1.0.0</coord> <!-- alt form --> <deps> <dep groupId="junit" artifactId="junit" version="5.0.1" scope="test" /> <dep>info.picocli:picocli:4.7.1</dep> <!-- alt form --> </deps> </proj> The above declares a project CLI tool with proj metadata and a defined coordinate producing a jar file with 1 compile time dependency and 1 test dependency.
- eadmund 4y agoThe S-expression version looks so much more pleasant: (proj (name "My Biz CLI") (url "http://github.com/mybiz/mybizctl") (model-version "4.0.0") (group-id com.mybiz) (artifact-id mybizctl) (version "1.0.0") (packaging jar) (deps (dep (group-id junit) (artifact-id junit) (version "5.0.1") (scope test))))
- jgrahamc 4y agoThis! In 2001, I spent six months working at a major VC and my task was "figure out the XML market". It was wild! XML will solve all our integration problems! Then I went to Scriptics and Scriptics veered into doing an XML product attaching Tcl to XPath to do little bits of processing. We got bought out in part because of that product.
- pragmatic 4y agoXML, OOP, CASE tools and offshoring were huge. Programmers were going to be out if a job soon. And yet here we are.