Hacker News new | past | comments | ask | show | jobs | submit login

> It seems like there must be a way to treat text in a more flexible way without going to a full visual programming language.

I've mentioned this a few times on past articles on HN, but I think the issue is we're marrying two different concepts with text based programming languages, namely presentation and representation. Consider - in an idealized context - HTML and CSS. One being the representation, the other being the presentation or more accurately how to present the representation. A user can change how the HTML is presented to them without changing the HTML directly. I think something like this would be useful for programming source code.

So as a thought experiment for this in terms of programming, the source code would be some backing representation that you edit which can be rendered in any way a user desires, including back to regular text as we have now. Tooling (compilers/interpreters, version control, editors, etc) would deal primarily with the representation rather than the presentation.

I think this would also solve a lot of problems that tooling ends up dealing with. Consider version control not having to deal with formatting changes because that's just an artifact of how a programmer chooses to render the representation rather than the representation itself. Autoformatters (gofmt, clang-format, etc) would be less about putting source code in a canonical format for the sake of tooling and more about rendering source code as text in a particular chosen way for individual programmers. Similar for tooling such as IDE code folding or refactoring, document generation, etc.

This is actually something I have been pondering for a decade at this point. I have no idea how a system such as this could be implemented such that it is general and sound enough to be usable. But I still think it would be a neat way to program.

I think the problem emds up being that visual programming implementations I have seen over the years don't really make a moderately skilled programmer more productive or efficient.

So the value ends up being in giving more people who are unskilled or less skilled in programming a way to express "programmatic thinking" and algorithms.

I have taught dozens of kids scratch and that's a great application that makes programming accessible to "more" kids.

At work, my team abstracts complex feature creation logic into KNIME components that our analysts (who struggle with Python programming) can mix and match and run analysis.

You make me think of Azure ML studio.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact