477 karma · joined November 10, 2011
An interesting derivative of XL is Tao3D, which shows what you can do with it. https://tao3d.sourceforge.net
A FOSDEM workshop about Tao3D (which includes initiation to XL): https://www.youtube.com/watch?v=uE9LwSuZD64
The design philosophy, and why it's not "just another Lisp" is here: https://xlr.sourceforge.io/Concept%20Programming%20Presentat...
Why didn't it happen? Because programmers overall are reasonable folks. So, yes, in theory, you can define a factorial function and call it "Not_a_Cat" (technically, it is true), but nobody does that.
Similarly, giving the ability to define `X in Y..Z` makes code more readable if you use it right, not less.
LX: Langage expérimental (~1992) Ada like with "pragmas" extending the language
LX: Langage extensible (1998): Rewrite with documented object-oriented parse tree
LX/XL: Extensible language (2000) based on object-oriented parse tree, cross-language framework called Mozart, that also had a Java front-end called Moka
XL2: Extensible language (2002) based on simple parse tree, 8 node types, Ada-like in syntax
XL2: Self compiling compiler (2005?) with same 8-node parse tree, Ada-like
XLR: LLVM-based functional variant (2008-2009), same parse tree, functional, very simple, library-defined if-then-else
Tao3D: real-time 3D graphics running on XLR (2010-2015)
ELiOT / ELFE: Distributed programming (2015?), based on interpreted version of XLR
XL: Reconvergence of all of the above (WIP), all merged, implemented as a library with a tiny front-end.
I'm trying to work on that now, which is why I'm presently spending so much time on documenting where I want to go. The idea is that if I first write a "spec", then a community can build to implement it, and it's not just my own (limited) time.
So if you are interested in helping right now, I'd say: read the doc (in progress) and send comment / doc fixes.
For Tao3D, you have https://tao3d.sf.net.
This one is hopelessly outdated. See https://github.com/c3d/xl for the current state of things. A bit of history of the language here: https://github.com/c3d/xl/blob/master/doc/HISTORY.md.
Warning: this is currently under heavy repair / refactoring, so Nothing Works™.
An interesting (if old, 2010) application of the language here: http://tao3d.sourceforge.net.
Contributions and ideas welcome.
Case in point: The iPad and iPhone makes kids creative like no other tool has before. Kids know how to use it to text, exchange ideas or pictures of kittens, draw or sketch, learn how to program (Swift Playground anyone), take and edit photos. It is everything but a glorified TV where kids are passive. This is the only environment where kids are truly first-class citizens. How on earth Kay could spend so much energy (a whole article) trying to convince us otherwise based mostly on super-weak arguments like "nobody is using the Shake gesture to undo" is truly beyond my understanding.
Don't get me wrong. The Dynabook was a somewhat interesting idea. But it's about as much an inspiration for the real thing we use daily as the Star Trek tricorder. What Kay, to this day, did not get, unlike Jobs, is the power of networking, both physical and human. What made the iPhone greater than the Dynabook ever would have been is the App Store, and the combined creativity of millions of developers. What made the iPhone greater is apps like Messages, Facetime, Facebook, Twitter, Whatsapp, and countless others. What made the iPhone greater is Instagram, Flickr, sport apps, medical apps, HP-48 emulators, 3D "kill them all and think later" games.
By contrast, what would have made the Dynabook great in Kay's mind was "designed by Kay for Kay's personal interests". Or, as Fake Bill Gates would have said: "One programmer should be enough for everybody".
Also check out https://github.com/c3d/build for a way to deal with several of the issues the author addresses (but not posix portability)
The article seems to consider the author's personal preferences as facts.
Yes, the human heart for example
The metric field in GTR is defined by the distribution of matter. So starting with GTR, to make another shortcut, we had to take the distribution of matter into account when "converting" from one set of coordinates (measurements) to another. In other words, the space of "transfer functions" from one set of measurements to another is already quite rich.
Similarly, when you transfer from one measurement of time to another, the "transfer function" is also quite rich. If you want to convert precisely from atomic clock to earth movements, you have to take into account interaction with many planets and other celestial bodies. So again, this transfer function is rather "arbitrary".
My point here is that the laws of physics are no less good or less precise when expressed in years than they are when expressed in oscillations of Cs-133 atoms. Some physical systems, e.g. atomic interactions, will be easier to describe relative to Cs-133. But others (e.g. meteorology) are expressed much more simply if you base them on celestial movements.
If the transfer function between, say, radiocarbon dating and cesium clocks can be practically anything, what tells us that the transfer function between light densities and matter densities can safely be assumed to be practically an identity?
And if it's not an identity, then why should the laws of gravity as expressed using light distributions match the laws of gravity as expressed using matter distribution? I think this is an oversimplification that we need to get rid of.
Hope I'm making more sense to you ;-)
There is, however, an underlying assumption in all the existing theories of physics, which I see too rarely challenged, and which is easily falsified. It's the idea that the variable "x" in the theory is independent of the physical measurement process being used. In other words, the "x" in MOND is the same as the "x" in GTR and the "x" in quantum mechanics. The topology of a space-time defined by a solid rod of metal in the Pavillon de Sevres (pre-1960 definition of the metre) is the same as the topology of space-time defined by the movement of light in the vacuum (today's definition). And so on.
I believe that our current understanding of physics now has become so precise that we need to take into account subtle differences between this and that measurement process, and rewrite physics in the context of a "more general" relativity, where the laws of physics are to be described independently not just from, say, the state of movement, but more generally independently of the physical process being used. Just like GTR forced us to deal with quantities such as metrics, this more-general relativity would force us to deal with arbitrary transformations between two methods to measure the same thing.
A simple example is when we relate time as measured by the rotation of the earth (definition of "days"), the rotation of earth around the sun (definition of "years"), the decay of populations of C14 ("radiocarbon dating"), and our current cesium-decay based atomic clocks (the definition of "second"). The four laws are obviously correlated, they all measure time. But the "fit curve" between them is a distribution in itself, similar to the "metric field" in GTR.
I may be wrong, but I suspect that if we introduce this kind of complexity, the problem of "dark matter" will have not one, but multiple solutions, possibly different equations, depending on the measurement you are considering. This does not mean we should not look for equations that predict observations, but rather that we should be cautious when correlating measurements that correspond to different physical processes. It is not obvious to me, for example, that we should take for granted that we can safely deduce the distribution of masses from the distribution of luminosities (even if, I'll admit, I don't see any good alternative...)
In quantum mechanics, we do little else with renormalization. When you shift from one scale to another, you need to renormalize to fit the data, because the raw equations would otherwise yield to infinities or other abnormalities. "Shut up and calculate" is frustrating, but if we rephrase that as "observe the universe, it's the ultimate test", it really means the same thing, but is philosophically more grounded.
In the end, MOND may just be the shape of the relation between two measurements of mass at large scale, and Verlinde's paper one first step in understanding how this relationship emerges.
Or not. There are some interesting objections to "statistical emergence" of gravity, or "entropy-based gravity". One of them is how interference patterns are not destroyed by gravity, at scales where, if we were to trust Verlinde's approach, interactions along different paths would affect probabilities enough to be sensible in interference patterns. I've not done the calculations myself to validate if this objection is solid, though. Intuitively, it seems like there is a flaw (the effect of per-state populations on interference should be at most of the same order as the effect of gravitation itself, which is in the "barely observable" category), but I need to spend more time to understand both sides.
-- Sotashi Nomokata
-- Sashoti Namakoto
Moral of the story: sometimes, explaining why you are doing something may require hyperlinks, just saying it's wrong is not convincing enough.
The error messages in XL and Tao3D are terrible. I'm ashamed :-)
In that interpretation, QM is seen as the only way to do physics when you represent your knowledge of a system using probabilities. Measurement instruments are a choice among all the physical systems, and what we consider good physical instruments lead to QM "axioms".
This is elaborated here: http://cc3d.free.fr/tim.pdf.
Take the idea of having a single language for the shell and system programming. It forces you to think harder about the design of the language, so that it correctly works both as a command-line interpreter and as a compiled language. Lisp machines had that. Oberon system had that (in a graphical way, even). Forth systems had that. So it's not like we collectively didn't know. But neither Unix nor DOS/Windows even tried. Instead, they both feature shell languages that can best be described as "pathetic". Why did we have to wait until Windows 10 to have useful text selection in the CMD shell?
Or in programming languages, why is it that new languages always seem to take C and C++ as role models, while spectacularly failing to take any inspiration from Erlang, Ada, SmallTalk, Intentional Software, or Lisp? Why is XL, my own language, still the only one I know where it's easy to do multi-operator overloading, i.e. overload A+B*C, something it has been doing for at least a decade? Why are we unable to create a language that would work well both on GPUs and CPUs, or better yet, let me easily describe an application that uses both?
Or in interactive apps, why do we still not have good reactive functional frameworks for the web, similar to what Tao3D does for interactive 3D? (See http://bit.ly/1G8VOmr for my rant on that topic). Why is creating an OpenGL application getting more complex with each generation, instead of simpler? Why can a kid easily use GameMaker, but none of the Apple developer tools?
Or in operating systems, why did Linus Torvalds decide to mimick Unix and not the kind of mind-blowing operating system design ideas that were floating at the time? Like TaOS, the OS that was recompiling byte code at page-in time and could run a same program on different processor architectures during its lifetime? Or like MacOS, the original one, and its built-in graphical toolbox where, unlike X11, you could easily draw an ellipse inside a rectangle irrespective of line width? Or like GeOS and its 64K-based multitasking OS with vector fonts and GUI apps?
In summary, why is it that we always seems to ignore good ideas, but have no concerns repeating bad ones?
My theory is that inferior technology needs superior marketing, and that's how you win in the end. That's just a theory, of course ;-)