Random insight of the night: every couple years, someone stands up and bemoans the fact that programming is still primarily done through the medium of text. And surely with all the power of modern graphical systems there must be a better way. But consider:

* the most powerful tool we have as humans for handling abstract concepts is language
* our brains have several hundred millenia of optimizations for processing language
* we have about 5 millenia of experimenting with ways to represent language outside our heads, using media (paper, parchment, clay, cave walls) that don't prejudice any particular form of representation at least in two dimensions
* the most wildly successful and enduring scheme we have stuck with over all that time is linear strings of symbols. Which is text.

So it is no great surprise that text is well adapted to our latest adventure in encoding and manipulating abstract concepts.

@rafial Both accurate and also misses the fact that Excel is REGULARLY misused for scientific calculations and near-programming level things since its GUI is so intuitive for doing math on things.

Like, GUI programming is HERE, we just don't want to admit it due to how embarrassing it is.

@Canageek very good point. Excel is actually the most widely used programming environment by far.

@rafial Now what we need to do is make a cheap, easy to use version of it that is designed for what scientists are using it for it. Column labels, semantic labels, faster calculations, better dealing with mid-sized data (tens of thousands of data point range), etc

@Canageek I'm wondering, given your professional leanings if you can comment on the use of "notebook" style programming systems such as Jupyter and of course Mathematica. Do you have experience with those? And if so how do they address those needs?

@rafial @Canageek I've done a fair amount with Python notebooks when that first happened, a little with Julia notebooks.

It's hard to make a coherent program in them, it's a long series of fragments that get run in arbitrary (creation) order.

But as a mix of documentation and calculation, it's super useful. I'd rather work in a REPL (and Julia has a fantastic REPL), but notebooks are better for persistent math and proving your results.

@rafial @Canageek You absolutely need a beefy server, fast connection (local if possible), and fast front-end CPU to make notebooks usable. They're a massive increase in resources needed, but they're one of the few "this is better than what we did before" technologies I've seen in 40 years.

@mdhughes @Canageek interesting to hear. And Julia is definitely on my stack of "stuff I need to learn more about."


@rafial @Canageek There's annoyances with : Startup time is many (5-30) seconds, indexing starts at 1 unless you do crazy things to "fix it", docs can be confusing/nonexistent.

But it has a great method dispatch/object model which is not just "static Smalltalk" like most, it's super fast at runtime, and like I say the REPL is amazing.

@mdhughes I mean for those who, unlike us, didn't come up through C and "indexing is really pointer multiplication", index base 1 kinda makes sense, nah?

"Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration."
—Stan Kelly-Bootle

@mdhughes @rafial @Canageek If you haven't used Julia recently, out-of-the-box startup times have improved substantially.

There's also techniques that allow you to improve it further, especially for finished software. These really only became reasonably easy to use very recently though.

Sign in to participate in the conversation

Mastodon x appdot.net = fun? A place for former ADN users - on the whole