Hacker News new | ask | show | jobs
by someweirdperson 1061 days ago
There are people who consider software written, I mean painted, or as they say modelled, in the language of e.g. Simulink to be of higher value than other representations of code.

The reason for this is probably different use of the same terms. Some code might be tested within an implementation of a model of the real environment. That is a frequent use-case used to sell graphical languages. The term model is used for two different things: The model of the real world to allow testing and for the implementation of the solution in a graphical language. Of course developers in those environments are Klingons like we all are, no real effort for tests, and only the graphical solution remains. But it is perceived as if it had all the positive attributes of a solution tested in a simulated reality. And therefore something modelled is better, because it is modelled.

1 comments

I think this is still doing it a disservice. You don't test a code with a model of the real environment. You execute the code, which was modeling something.

Consider, "F=ma" is a mathematical model relating force to mass and acceleration. You can test this by dropping several things each from the same height and seeing that the force linearly increases based on the mass of what you are dropping. Similarly, you could test the model by accelerating something to a halt at different speeds and seeing how much force is imparted into it.

Is that not a "model" because it is not necessarily graphical?

So, similarly, much CRUD software can be seen as modeling different agents in an overall system and what happens when they interact in certain ways.

Edit: I want to add that I think I see where you are coming from. Many treatments of graphical models like to hold them up as a special form of modeling.

> Is that not a "model" because it is not necessarily graphical?

For some people model==graphical, usually mechanical/electrical engineers, not software-engineers. Engineers maintain the holy "model", and the translation to lowly code is a job for the lowest-bidding software person.

Maybe it wasn't clear, but I do not agree with that point of view, and tried to explain how I think people may have found their belief.

I assumed the parent^4 was labeling their code model in an attempt to elevate themself to the ranks of the code painters.

I'm curious on this. Do you have links that go over this? I've not seen a hard distinction that models are graphical, pretty much ever. The very idea of "machine learning models" flies in the face of that, as I've rarely seen machine learning models presented in a graphical way.

Best I can think in this direction, is UML? But that is an odd one, because it isn't that "models" are graphical, but those are specifically models of code artifacts. A model of another modeling language, as it were.

Reading back over the top comment, I assumed that the poster meant they started seeing their coding as modeling of a problem domain. Not that they weren't still coding, somewhat.

Disclosure, I was an EE way back when. We had plenty of numerical models for how things worked. We even had verilog to model circuits using what looks a lot like "traditional" software.

That all said, if I just haven't kept up and "model" is moving in meaning, I wouldn't be too shocked. :D

I guess it is limited to specific industries. Check the product description of Mathworks Simulink, which has many examples of things rightfully called model. In reality though (I don't have a reference for that, just my own observation) it is almost exclusively used as a graphical coding tool and the graphical code is called the model.

A case of cargo-cult. Attempt to apply the practice but badly (use the tool, but not the way its use is advertized), and use the terms for use of the tool instead of the practice, reserving it for that to promote their beloved tool over alternative approaches.