4 ms·
1. Why are you're learning a language at the same time you're trying to launch an MVP? And a fairly involved language such as rust. 2. You're complaining about
by greenhouse_gas 9y ago
1. Why are you're learning a language at the same time you're trying to launch an MVP? And a fairly involved language such as rust.
2. You're complaining about windows32 API being slow, but blaming it on .NET ("I don’t know if it was attributed to Windows or the application programmers, but I attributed Windows’ built-in functions with being slow and having shitty PDF output, which is why I refused to use anything related to Win32 or .NET").
Windows API is C (or internally C++).
3. Is display a bottleneck? I never developed GIS applications, but your display is 2D and doesn't have to be real-time. I would assume that the "back end" of the program is doing most of the calculations, and the display just outputs it (not like, say, a 3D game where the rendering engine does a significant chunk of its own work).
- pjmlp 9y agoI did not get that as well. Windows does not have PDF generation, its support has been recently introduced in Windows 10. So most likely it was a third party library. EDIT: It was actually introduced in Windows 10, not 8.
- MrBuddyCasino 9y ago> Windows does not have PDF generation, its support has been recently introduced in Windows 8. does not compute
- pjmlp 9y agoOP was most likely using Windows 7 or earlier, from what I could understand.
- pjc50 9y agoWhere's the Win8 PDF generation? I can't find it on MSDN. Unless we're talking about GDI print -> target "print to PDF"?
- pjmlp 9y agoI was wrong. Actually it was only introduced in Windows 10. https://docs.microsoft.com/en-us/uwp/api/windows.data.pdf https://docs.microsoft.com/en-us/uwp/api/windows.data.pdf
- hobofan 9y ago> 1. Why are you're learning a language at the same time you're trying to launch an MVP? And a fairly involved language such as rust. Back when we decided to build Leaf[0] we were in a situation where we needed a language with the characteristics similar to the ones of C, C++, Rust (embeddable, no runtime, etc.). Before starting development on Leaf we didn't have any extensive experience in any of those languages, and I still think that Rust was the right choice for the project. I'd guess that the requirements of the MVP were similar. Since he also noted that it's his first time programming full-time, he had to learn _some_ language. Sure, it's not optimal to learn a core competency of your business while founding it, but I can also tell you from personal experience that sometimes that's still a better choice than the alternatives. > And a fairly involved language such as rust. I'd say Rust is only as involved as your requirements of it: - You don't have to deal with raw pointers? -> No need to learn `unsafe` - You're not particularly worried about extreme performance/memory usage at first? -> Clone now, learn lifetimes later [0]: https://github.com/autumnai/leaf https://github.com/autumnai/leaf
- fschutt 9y ago1. I knew that I had a lots of time. From a business perspective, this doesn't make perfect sense, I know. I knew C++ (sort of) and was looking for a similar language. Learning Rust took me roughly three weeks (coming from C++), it is not as complex as you think. I think the time saved hunting down null pointers has amortized that investment greatly. 2. Again, I didn't know at that time if that was the fault of Windows. All that I saw was an application that was extremely slow, written in either C++ (with Win32) or .NET (both of which are possible). Second, the application had very shitty PDF output (ex. a shape with CMYK was "emulated" by four shapes drawn on top of each other, one for black, one for magenta, etc. - lead to a completely bloated PDF). I suspected that it was the fault of the framework they were using and I didn't want to end up in a similar situation. 3. Display is actually the #1 bottleneck. You have to understand that in a real map needs to draw roughly 10000 lines, fonts, and symbols. The old program (which I had to work with), did this using Win32 drawing routines. Every time you zoom in / out, it could take 1 - 5 seconds (if lots of things were on the screen). In OpenGL, I can do it in a sub-millisecond time (using this technique - https://blog.mapbox.com/drawing-antialiased-lines-with-opengl-8766f34192dc https://blog.mapbox.com/drawing-antialiased-lines-with-openg... paired with primitive restarting in OpenGL (https://www.khronos.org/opengl/wiki/Vertex_Rendering#Primitive_Restart https://www.khronos.org/opengl/wiki/Vertex_Rendering#Primiti...). ArcGIS, for example, has DirectX acceleration, QGIS uses OpenGL. This is simply a huge annoyance when trying to work with the program.