USER FORUM
(you are viewing a thread; or go back to list of threads)
project to cut my teeth on (by max)
I'm a hobbyist programmer, looking for a good project to learn from. Do you think going through Solvespace codebase is feasible for somebody who's learning C++ and hasn't contributed to a large project before? I use CAD heavily at my day job, and would like to see Solvespace as a core of an OSS parametric CAD program along the lines of Rhino. For starters, I'd like to create a Python clone of it. Is it well documented for a beginner? Is the math behind it intuitive or could you recommend any references for background?
Thanks
Thanks
(no subject) (by NotSolveSpace)
SolveSpace is ugly inside. As c++ programmer you should not look at architecture of SolveSpace but the basic principles. If at now you are beginner in c++ or programming, you sould never read this code, but if you are pro, you can learn from SolveSpace about cad-creation principles & methods. Sorry, Jonathan, but i speak how i think.
Things what`s ugly:
1. c-style using oop constructions. (switch-case everywhere)
2. very hard-to-read code
3. bad math basic classes without using overloaded operators
4. reinvented standard containers
5. using goto
Things what`s good:
1. Symoblic-based newton solver
2. All codebase written by one person, very small dependency list
3. All the hard algorithms included. Very hard work is done.
4. It works
5. Open source
Things what`s ugly:
1. c-style using oop constructions. (switch-case everywhere)
2. very hard-to-read code
3. bad math basic classes without using overloaded operators
4. reinvented standard containers
5. using goto
Things what`s good:
1. Symoblic-based newton solver
2. All codebase written by one person, very small dependency list
3. All the hard algorithms included. Very hard work is done.
4. It works
5. Open source
(no subject) (by whitequark)
Personally I like SolveSpace's internals. It's far from perfect, but have you seen, say, FreeCAD and OpenCASCADE? These are ostensibly made by observing "best practices", but in reality they're just enormous behemoths of barely maintainable code. OOP can backfire at you very easily. I'll take simplicity over it at any time of day.
(no subject) (by NotSolveSpace)
Simplicity is not simple. Pleople who believe what some thing is hard can only do it hard way. People who knows what any task can and must be simple will never born behemoth... oop is like knife - you can make realy beautiful things from wood using it, but you can use it to kill simplicity.
Post a reply to this comment: