![]() I admit this was pretty stupid, but I simply could not understand how Waf did its magic (if it had written makefiles or something like that, it would have been easier and faster). Took quite some time to write everything, since I was not only translating Waf, but "reverse engineering". If it was not for that, I would probably be using ns-2 or OMNET++.Īnyways, so I started rewriting everything ns-3 needed on CMake. Since I started my masters, my advisor said I should start working with ns-3. What I dislike the most however is that it does not produce intermediary build system files that I can inspect visually and discover what I am doing wrong. My grudges with Waf is just that it does not support IDEs and the organization in different steps, plus how things are organized seem overly complicated for me. Ns-3 have been using Waf for a while, and it has been working well for quite a long time, which goes to show it is not a bad build system in any way. Waf is a pretty cool build system written entirely in Python and is supper easy to distribute with your project, so it needs only Python installed (which you would probably already have anyways) and whatever your project needs to get build (e.g. Some IDEs, for example, do not even allow for that. ![]() While build systems do not prevent you from using visual debuggers, it limits the amount of information and insights you can get from the code. I can see the values of the variables not only in the memory watches panels, but inlined into the codeīut you may ask me: -What the devil build systems got to do with visual debugging?.Īnd that is a pretty good question. For a few reasons, being the following two the main ones: Since I have been used to IDEs, where projects can be organized neatly, settings are managed graphically, auto-completion works, coding mistakes are properly highlighted, you can easily navigate and refactor the code and my preferred feature: VISUAL DEBUGGING. So, how bad can it really be? Well, pretty bad. ![]() If you are part of the group just getting started into everything at once, it is overwhelming and your productivity is basically none for a while, which can be frustrating. ![]() Something so simple as a build system should not be such a problem, am I right? Well, it is not if you already know what you are doing, how to get things done, etc. Maybe include a parser to be able to describe the simulations from a higher level description language like other simulators do? That does not sound like a bad idea, since setting up some things can be quite complicated if you are just getting started.īetter tooling? This is where I come in. Some examples are very simple while we have much more complicated scenarios in published papers.īetter docs? I personally don’t think they help as much when you’re already lost. I have tried setting up Jupyter notebooks for more interactive guides using the power of Cling-Xeus.īetter examples? Maybe. If it was something interactive, it could be pretty cool. Not their fault in any way, it is just that modeling complex systems is hard by itself.Įver-evolving standards, adding more and more features as the time goes while keeping backwards compatibility also doesn’t help.īetter guides? Maybe, but I do not think they help as much. The ns-3 network simulator is one of the most used network simulators in the academia, however, it has a very steep learning curve, especially when you are still learning C++ and the standards themselves.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |