5 ms·
> Text is the most efficient communication technology. By orders of magnitude. This blog post is likely to take perhaps 5000 bytes of storage, and could compres
by chordalkeyboard 6y ago
> Text is the most efficient communication technology. By orders of magnitude. This blog post is likely to take perhaps 5000 bytes of storage, and could compress down to maybe 2000; by comparison the following 20-pixel-square image of the silhouette of a tweeting bird takes 4000 bytes: <twitter logo>
Author is really excited about really old information technology. He makes some good points.
- cpach 6y agoThe Latin script originated in the 7th century BC. Is that old? Maybe. But not so old compared to how long our species has existed.
- chordalkeyboard 6y agoWriting itself is a little older, but not much. But writing is one of the first information technologies (that we have records of ;).
- Ygg2 6y agoIt's solid technology to be excited about. For example. Graphical programming languages are nowhere. Closest I had was either VHDL or backed by copious amounts of XML like Xtend. And both of those have a textual Component as well.
- zokier 6y agoMost programming languages would be better characterized as tree structures than text, being only obscured by unclear (but no less rigid) syntax.
- goatlover 6y agoSo Lisp? You still type it in as text.
- user-the-name 6y agoNearly every language will be processed as an AST, not as text. Text is just a serialisation format for the AST. For some reason we still insist on editing the serialisation format instead of the actual data representation.
- tannhaeuser 6y agoI agree, but it makes me sad that we've come to see XML as primarily tech for serialization of component models, service payloads, and configs; that is, all the things that XML should not be used for. When actually SGML from which it's derived is all about text editing and using minimal markup to create implicit textual hierarchy.
- crispyambulance 6y agoThe funny thing about XML is that it was explicitly conceived to solve problems of representing, translating and transmitting component models and configuration. The sad thing is that it was abused, horribly, in the early naughts when people tried to take it too far. On the one hand it was rushed out without the proper tooling and you had humans typing raw xml without the right amount of support from intelligent autocomplete coming from schema-aware editors. On the other, you had systems that tried to force XML into roles that are better suited for a programming language (I'm looking at you, ANT). And worst of all, it became the centerpiece of a bunch of tech that people really hated-- remember all that crazy WS-* shit, and "SOAP" (which could have stood for "Complex Object Access Protocol". All this wasn't the "fault" of XML which, IMHO, has rock-solid core concepts. XML got an undeserved bad rep from association to the failure of the things it was used with. XML still survives, though. The tooling is good. If you type XAML or HTML in the right editors, it's serves the purpose competently and without drama. People aren't going crazy finding new XML based applications anymore. It's just doing it's job. I prefer pure XML for config files even now-- of course I never expect users to see it or type it. XML, at the end of the day, is intended to be manipulated by tools. I wish I could say the same for yaml and to some extent json. I feel like these things are about to be abused like XML was.
- dragonwriter 6y ago> XML still survives, though. The tooling is good. If you type XAML or HTML in the right editors, it's serves the purpose competently and without drama. HTML isn't XML, though XML was inspired by HTML and HTML has an XML serialization. IIRC, some or all of the versions of XAML aren't, strictly, XML either, merely XML-derivedl0
- snidane 6y agoBecause graphical programming are just textual programming languages which are just overly complex (xml) and coming with attached visualization engine for its components. They are used only for limited domains such as composing some data flows or video node editors, etc. because visualization of anything more sophisticated would make one's head explode. You could just as well visualize components of AST of Python for very little benefit. The only upside of graphical languages is that because of their limited capabilities, they focus on only one abstraction layer and that allows you to visualize that layer quite cleanly. You can't program anything more sophisticated or step outside of the only abstracrion layer you are allowed to program in. Eg. you can't write your custom for loops by dragging and dropping boxes and you also cannot orchestrate dags or box diagrams using dragging other boxes around.
- uryga 6y ago> Because graphical programming are just textual programming languages which are just overly complex (xml) i don't think that's fair. i mean, on a computer, you have to serialize everything into sequences of bytes. you could also encode images into XML: <pixel r="255" g="80" b="110" /> <pixel r="11" g="0" b="203" /> ... but i wouldn't say that makes them "textual".
- xorcist 6y ago> Graphical programming languages are nowhere Not nowhere. Labview is/was pretty successful. But not generally successful, no.
- terramex 6y ago> Graphical programming languages are nowhere. They are super popular in game development. The most popular one is Unreal Engine's "Blueprint". Unity does not include visual scripting, but there are popular plugins on Asset Store, the biggest one is PlayMaker. Unity Technologies themselves plan to release their own, in-engine visual programming tool this year. Apart from that, visual programming is commonly used for shader programming, video compositing and AI/animations scripting [1]. I am a programmer and like many of my peers I cannot stand those systems, but designers and artists love them. They are widely used everywhere from small indie games up to AAA releases, not only for simple logic but for modelling complex behaviours and flow controls too. https://blueprintsfromhell.tumblr.com https://blueprintsfromhell.tumblr.com [1] Example of AI graph form The Division (5:34 - 6:10): https://youtu.be/fZOZ2daE-lA?t=334 https://youtu.be/fZOZ2daE-lA?t=334
- KineticLensman 6y ago> I am a programmer and like many of my peers I cannot stand those systems I am also a programmer but I love my graphical shader editor in Octane [0]! It's the perfect interface for defining a graphical data flow. For example, I can implement really complex spatial conditionals by creating a merge node controlled by a greyscale bitmap. E.g. to create a gold thread on a silk material, I can merge existing gold and silk shaders through a bitmap of a lace pattern, itself edited in Photoshop. Just by connecting some nodes. [0] https://home.otoy.com/render/octane-render/ https://home.otoy.com/render/octane-render/
- deleted 6y ago[deleted]
- user-the-name 6y agoIf you think graphical programming languages are nowhere, that just means you do not have a very broad exposure to programming. As was already pointed out, graphical languages are massive in game design. They are also used in audio processing, in scientific and engineering software through labView, and in various other places. They are very popular in fields where we want to open up programming to more people than those who call themselves "programmers".
- smoe 6y agoGraphical programming languages are fairly popular for “scripting” and signal processing in various domains like visual effects, sound design, game dev, etc. Sure you wouldn’t want to implement the underlying systems in them, but I do think they have their place and are often undervalued by developers.
- mdiesel 6y agoText based programming is inherently 1d, so isn't well suited for the highly parallelised computing we have today. 2d programming would make much more sense. The issues with graphical languages arethings like being much harder diff/merge and version control generally, being dependent on IDEs, and severely limited by mouse usage. I don't see any of those issues as being impossible to overcome, but instead graphical programming is held back by always being implemented as a DSL with no attempt to meet the requirements of a general purpose language.
- Lichtso 6y agoThis, exactly. I think there are three reasons why non-textual programming is constricted to a few domains, and is not widespread as general-purpose: - As you point out, all the tooling around programming like editors, exchange formats, version control, debuggers etc. are only available for text, rendering everything else generally unusable. - There are many failed attempts, with many still being textual in the end, only with over-the-top syntax highlighting, such as Scratch. These attempts have paved the way of non-textual programming with gravestones, making the field look like a graveyard, so nobody wants to get into it anymore. Scratch might still have its place in education as an gentle introduction to the concepts of programming, but no software developer is seriously going to use it for any big project. - People are used to text and they will reject other approaches instinctively. You can read many statements in this discussion here like: "Graphical programming would make your head explode", which I think is similar to how people where afraid of using trains in the early days: "Driving to fast will kill you" and "Nobody can survive such speeds". It might take a whole new generation of programmers to accept anything non-textual as intuitive (which is why it could become popular with artists and designers I think).