top | item 27112529

Atlas, a hopefully better engineering IDE

353 points| gamabunta | 4 years ago |atlasengineering.io | reply

132 comments

order
[+] burke|4 years ago|reply
Tracking units is a thing that I rarely have a use for (as a non-engineer), but when I do, I’m totally mystified by how bad almost every language is at it. F# is the only actual programming language I found that even tries. It does a pretty decent job, but even it has some disappointing holes (e.g. not being able to understand g and kg as scaled versions of the same dimension).

I guess the overlap between physicists/engineers and type system/PLT people isn’t large enough.

[+] captainmuon|4 years ago|reply
When I was a physics student, I would have loved a spreadsheet that tracks units, and automatically does conversions as needed. There is another huge thing that this enables: Tracking uncertainties. It would be awesome if you could not just write "10", but "10 cm ± 1 cm". Then the spreadsheet could do error propagation! Even the simplest case of non-correlated errors would be useful. Also you could have functions like "weighted mean" that take the errors into account. We used to do these calculations manually with extra columns and a few macros, but it was always error prone.

Also, why is there no CAD program that allows me to enter errors? When I try to model real objects, say a room, the lengths never add up 100% and I always have gaps once I'm around the room. It would be great to say all these measurements are ± 1 cm, this one is ± 5 cm, and these angles are 90° ± 1°. And then it would do least-squares, and give me a really accurate model, or tell me where I have to measure again.

[+] V1ndaar|4 years ago|reply
I've recently written a units library for Nim [0]. It's still WIP, but it's already proven extremely useful for me as a physicist.

Thanks to Nim's strong type system and metaprogramming features, it allows for a fully compile time design, without any runtime overhead (in form of special unit objects or such things; everything is a `distinct float`).

In addition Nim's unicode support, the code even looks nice!

A more complex use case (I can link more if desired): [1]

[0]: https://github.com/SciNim/Unchained/

[1]: https://github.com/SciNim/Unchained/tree/master/examples

[+] PascLeRasc|4 years ago|reply
This is something that Matlab really shines at with symbolic computation. Is there really not a numpy/scipy equivalent?
[+] g_delgado14|4 years ago|reply
Isn't the "newtype" pattern something that addresses this issue elegantly?

Is there something that I'm missing here?

[+] the-dude|4 years ago|reply
I never had one, but didn't some of the later HP calculators do this? ( the 48? )
[+] gjm11|4 years ago|reply
When I see this sort of thing I always want to know something that is seldom made clear: what is actually implemented so far?.

The video begins "This is Atlas, a concept for a new engineering IDE". (To me, that strongly suggests that rather little is actually implemented yet, and that what we're about to see is a lot of canned demos, because otherwise it would be a new engineering IDE, not just a "concept" for one.) But then most of what follows, and pretty much everything on the webpage, says that Atlas does this or that, not "will do".

And the trouble with "concepts" is that unlike actual implementations they aren't much of a guide to what you're ever actually going to get. It's easy to think "X would be cool" and say "Atlas does X", but some Xs are much more realistically implementable than others, and how interesting Atlas actually is depends on which of those Xs are ever actually going to be implemented.

But reading the page and watching the video I have literally no idea where the project is on a scale from "we wrote down some things it would be cool to do and rigged up a demo that pretends to do them" to "everything here is already implemented, though there are a few gaps and bugs here and there".

[+] mvzvm|4 years ago|reply
> Write equations; not code

This is a little odd to me - I generally prefer to write my math in code if its going to be executed. I find my preferences to be pen and paper (or whiteboard)> latex, so perhaps I am not the target demographic here.

[+] gmiller123456|4 years ago|reply
We must be evil twins in opposite universes. I've always wanted to be able to code the equations the way they look on paper. I actually am quite annoyed that most languages won't let you use Greek characters as variables. To me, it just makes it easier to spot errors.
[+] spfzero|4 years ago|reply
Same here, writing code seems to map better to what you would step through solving the equations by hand. You can see how the equation “works”. But it may be, that I just haven’t gotten my mind wrapped around the concept of programming with equations yet.
[+] IshKebab|4 years ago|reply
This is a competitor to MathCAD which is used for things like structural calculations. I've used it for traction drive calculations. Generally you're implementing equations that are defined in papers and it's really nice to be able to make them look roughly the same.

In MathCAD you can annotate them with actual snippets from the papers too. Definitely beats coding for some specific applications.

[+] Chris2048|4 years ago|reply
> if its going to be executed

You prefer to write code as code, which makes sense as it skips the translation part - but technical code is the implementation of the math so any given equation can represent multiple possible code-implementations.

From that perspective, it might make sense to separate the two, with good tooling. Since tooling generally isn't good, it's just as hassle.

[+] xdever|4 years ago|reply
This reminded me of http://engineerjs.com/, a hobby project we did with some friends many years ago. One can write a JS code extended with unit support, linear algebra, complex numbers, create plots, share scripts, create libraries with interactive documentation support (this one never went public), etc. Everything runs in the browser on the user side. The test version (test.engineerjs.com) even has google drive support and can read/write files on it (although Google changed something in the meantime, and it started complaining about not being a verified application). The idea was that everyone could create libraries that others can import use directly. It doesn't have this nice GUI though.
[+] gravypod|4 years ago|reply
I've done a lot of napkin math in NaSC [0]. Unfortunately it was buggy and often crashed so I had to stop using it. I'd love for something like this that could also be checked into repo and used to "compile" into constants that can be used in code. For example: plan the resources required to run for `demand(requests)` and load that into code and run that to scale up/down replicas or something.

[0] - https://appcenter.elementary.io/com.github.parnold-x.nasc/

[+] fish45|4 years ago|reply
Plugging, my own site, https://calcula.tech. It's not meant to compete with something like Atlas but I like to think it's great for napkin math, even though it's still quite early in development.
[+] elcritch|4 years ago|reply
I’m using NaSC and it’s not too bad. Though not as good as Calca, but Calca isn’t available for purchase on Linux. :/

I’m curious about this one. Though I’d prefer a plain text storage format but otherwise it’d need to be cross platform.

[+] analog31|4 years ago|reply
Looks like fun. I like it. Right now my tool of choice for calculation is Jupyter/Python, and it would be interesting to try both alongside one another on a moderately difficult problem.
[+] danellis|4 years ago|reply
I think this kind of this is called a notebook, isn't it? Not an IDE, since it's not for development and doesn't seem to integrate anything. I can imagine it would make a nice plugin for an IDE, though, for people doing that kind of work.
[+] forgotpwd16|4 years ago|reply
From its homepage this appears to be a Mathcad competitor. For a freeware yet very good imitator (not clone) check SMath Studio.
[+] caymanjim|4 years ago|reply
This looks neat. Writing tip for the person speaking (or captioning): starting a sentence with "so" makes you come off like...something I don't have the word for, but it's bad. Don't do it. Condescending? Demeaning? It's like you don't think your audience is capable of following. I had to stop watching after four sentences in a row started that way.
[+] andrewzah|4 years ago|reply
Or we could not police people's language. "So" is a way to start sentences; like anything else, it can be overused. Just like "like", etc.

There's a good podcast episode from John Mcwhorter on this "So" phenomenon. [0] TL;DL It has some interesting applications (including functioning as a discourse marker), and isn't going away anytime soon.

[0]: https://slate.com/human-interest/2018/10/john-mcwhorter-on-s...

[+] chrismorgan|4 years ago|reply
The way it’s used in that video is not uncommon in at least Australian English. It’s largely just a filler when used in this sense.
[+] renewiltord|4 years ago|reply
It's common in the Northern California tech industry. People will prefix questions by saying "Question" or statements with "So". It's sort of phatic, like a header that prepares the listener for what's coming. No one would take offence at it there.

However, I agree that it is out of place in a demonstration video since people are looking for the info in the first place and already know what's coming.

Would you mind sharing where you're from so I know which region I should be careful to not offend people by speaking like this?

[+] ZephyrBlu|4 years ago|reply
It's kind of annoying and bad English, but I don't think it's condescending.
[+] PostHeat|4 years ago|reply
This is really cool. Is the main use case for something like this over wolfram alpha the use of writing the equations directly? Are there any other features that this has hidden that I can't get on wolfram alpha?
[+] benhurmarcel|4 years ago|reply
WolframAlpha only works if you can write your calculation on one line, and without manipulating variables.
[+] shireboy|4 years ago|reply
Something I think would be cool for a tool like this is to export code in various languages. Work out your algorithm in more "mathy" tool, but then spit out plain C#/F#/Python/Javascript to implement it in an app. Definitely a niche need, but I've had times where I think this would save a ton of time. This could also be useful where you have engineers who need to work similar to what the video shows, but then coders who need to implement in business software etc.
[+] 1cvmask|4 years ago|reply
Will this be a SaaS offering?
[+] siproprio|4 years ago|reply
All those things, except units, can be done in Matlab. You can just drop a file into your workspace and they'll parse it! They also have fantastic code generation support, so your "data cleanup" is actually reproducible.

And Mathematica is really good at typing equations.

I'm interested in seeing how atlas works.

[+] ibraheemdev|4 years ago|reply
Looks really nice!

Btw, the thumbnail on the homepage is a bit fuzzy, although the video itself is good quality.

[+] javajosh|4 years ago|reply
You lost me at "driving progress in the world of atoms."

But seriously, it looks lovely.

[+] woggy|4 years ago|reply
Is this meant to compete with MathCAD and MapleFlow?
[+] R0b0t1|4 years ago|reply
If it's not OSS it is unlikely to succeed.