insearchoftheultimateprogramminghttps://insearchoftheultimateprogramming.wordpress.com
Just another WordPress.com site
Mon, 21 Jan 2019 21:54:21 +0000 en
hourly
1 http://wordpress.com/https://s0.wp.com/i/buttonw-com.pnginsearchoftheultimateprogramminghttps://insearchoftheultimateprogramming.wordpress.com
Goalhttps://insearchoftheultimateprogramming.wordpress.com/2017/08/19/goal/
https://insearchoftheultimateprogramming.wordpress.com/2017/08/19/goal/#respondSat, 19 Aug 2017 15:07:45 +0000http://insearchoftheultimateprogramming.wordpress.com/2017/08/19/goal/I’m trying to have my cake and eat it too. Which in theory is possible… you take some pictures of the cake, then eat it, then 3d-print it out again. But at the moment the 3d printing stuff is itself more expensive than just getting another cake.
]]>https://insearchoftheultimateprogramming.wordpress.com/2017/08/19/goal/feed/0mathnerd314159Girard’s paradoxhttps://insearchoftheultimateprogramming.wordpress.com/2012/03/20/girards-paradox/
https://insearchoftheultimateprogramming.wordpress.com/2012/03/20/girards-paradox/#respondTue, 20 Mar 2012 15:24:06 +0000http://insearchoftheultimateprogramming.wordpress.com/2012/03/20/girards-paradox/{-# LANGUAGE DeriveDataTypeable, NoMonomorphismRestriction #-}

Evaluating this in Haskell produces an infinite loop, which is not an inhabitant of Bool. The error lies in the implementation of cast. It should detect the recursion, returning Nothing, and thus make paradox = False.

Deriving a formal semantics for cast would be an interesting project; any takers?

]]>https://insearchoftheultimateprogramming.wordpress.com/2012/03/20/girards-paradox/feed/0mathnerd314159Hello world!https://insearchoftheultimateprogramming.wordpress.com/2012/03/01/hello-world/
https://insearchoftheultimateprogramming.wordpress.com/2012/03/01/hello-world/#respondThu, 01 Mar 2012 17:18:42 +0000http://insearchoftheultimateprogramming.wordpress.com/?p=1I moved here for the math and code support. We’ll see how it does.

]]>https://insearchoftheultimateprogramming.wordpress.com/2012/03/01/hello-world/feed/0mathnerd314159Clarifications of "Viewpoints Research Trip"https://insearchoftheultimateprogramming.wordpress.com/2011/12/01/clarifications-of-viewpoints-research-trip/
https://insearchoftheultimateprogramming.wordpress.com/2011/12/01/clarifications-of-viewpoints-research-trip/#respondThu, 01 Dec 2011 12:47:00 +0000http://insearchoftheultimateprogramming.wordpress.com/2011/12/01/clarifications-of-viewpoints-research-tripComputations and data are dual; a computation is a function from data to data, and a datum is a function from computations to more computations. (In particular, a data type is described completely by its “fold” and “unfold” operations) This duality is at the heart of programming language design. The sole difference between call-by-value and call-by-name lambda calculi is whether they treat functions as computations or as data, yet it leads to an enormous difference in programming style.

The main sticking point is that, due to what remains of the von Neumann architecture, there is something called “code”; the stored representation of a program. Code is not computation; it is data. This is why one is able to write compilers, reverse-engineer DRM, etc. – if code was actually a computation, instead of merely data describing a computation, it would be impenetrable. One doesn’t read compiled binaries for pleasure, but the fact remains that they are still legible – they can be disassembled, studied, and as the Boomerang project showed, even turned back into high-level code. Actual computations are completely ephemeral; however hard one looks to find a computation, one will only see data. But they are an incredibly convenient abstraction for understanding the universe, so they can’t be ignored.

Code is mobile; it moves around whenever one updates or installs an application. Computation is not, because there’s nothing that can be moved.

Computation should be avoided if possible; it is slow, error-prone, and generally a nasty business. Data should reign supreme.

The web of today is in fact mobile code; particularly, 99% of it is written in Javascript. They do “download code and run it within a “page” with constrained resources”. (One gets an “This page is taking too long to run” message after some time) I’m not certain what you mean by “mini operating systems”, but Google and Mozilla are experimenting with web-centric operating systems that boot straight to a browser, and the amount of code that needs to be added is apparently quite small.

There is no difference between data and code; trying to create a ““document format” that represents documents as data, not as code” is futile. What one can do, on the other hand, is write it in a more or less declarative language; in other words, shift the burden of implementation from the programmer to the compiler writer.

The difference between Word, Excel, and PowerPoint documents is artificial; HTML is better than all of them. (Although the default presentation of the data is Word-like, and thus some javascript and css are required to allow Excel / PowerPoint formats; but see http://www.w3.org/Talks/Tools/Slidy2/ for how easy it is; see Popcorn.js and other things for how the web is evolving beyond these tools – the main issue of course is that a browser is a document consumption tool, not a document creation tool, so most people do not have the requisite knowledge)

I, of course, am indeed trying to solve “the whole problem of data representation, interpretation, transmission, and re-interpretation.” There have been some quite promising results lately; extensible grammars, compilers, backends… the problem I wish to solve is that of creating a language without being tied down to any design decisions; in other words, a completely modular system; it seems plausible today. The design decisions would be offloaded into libraries, and developed by their users; but the underlying language would be the same, so that one could borrow constructs / algorithms / optimizations from other people without difficulty.

]]>https://insearchoftheultimateprogramming.wordpress.com/2011/04/23/list-of-things-i-dont-care-about/feed/0mathnerd314159UX story #1https://insearchoftheultimateprogramming.wordpress.com/2011/04/23/ux-story-1/
https://insearchoftheultimateprogramming.wordpress.com/2011/04/23/ux-story-1/#respondSat, 23 Apr 2011 15:53:00 +0000http://insearchoftheultimateprogramming.wordpress.com/2011/04/23/ux-story-1It was Saturday morning, and Joe Programmer hopped out of his bed and got onto his computer. It booted up instantly, as usual, greeting him with a smiley face (as configured) and the latest interesting tidbits. "What?" Joe exclaimed. "Bill made a trillion dollars off his latest program? I need to get to work!"

Joe took a sheet from his "list of programs to be reimplemented in Mathnerd314's programming language", and went to work.

"Hmm", he said, "this uses one of those Java/C# hybrids. I really hate that crap. Good thing it's guaranteed bug-free. I don't get paid to fix bugs."

Whistling, he went to work, mostly just typing back in the code, until he came to a place with a base class and a few derived classes. "This one's a puzzler," he said. "The derived classes don't override any of the getters of the original class, but there's an overriden method that doesn't call its parent! This won't work at all for Mathnerd314's language, where both the base class method *and* the derived method are called at once."

He IRC'd Mathnerd314, and explained the problem. "Oh, your universe is impossible," said Mathnerd314.

Joe, and his problem with Mathnerd314's language, promptly ceased to exist.

The End

]]>https://insearchoftheultimateprogramming.wordpress.com/2011/04/23/ux-story-1/feed/0mathnerd314159Sloganshttps://insearchoftheultimateprogramming.wordpress.com/2011/04/23/slogans/
https://insearchoftheultimateprogramming.wordpress.com/2011/04/23/slogans/#respondSat, 23 Apr 2011 15:51:00 +0000http://insearchoftheultimateprogramming.wordpress.com/2011/04/23/slogans"the ultimate programming language""the superset of your language""reverse-engineering compilers so you don't have to""replacing syntax with semantics since <date>""solving the halting problem, every day before breakfast""porting the world to run on thin air""more abstract than abstraction itself"