Dear @JackDevine,
thank you for your inputs. I never, denied that my programming workflow is crap. But it was not intentional. I copied a file, I changed the first function (implementing some different method) and forgot to change the last 2 functions at the bottom of the file.
Other than that the whole discussion was about people trying to convince me that Julia should not spit out a warning message that functions are redefined because Julia is a dynamic language. Somebody mentioned modules to avoid such problems in the future. I will do that in the future. I am thankful to the person that pointed to good programming practices.
The point I wanted to make in this thread is that I do not believe that such a warning even from a dynamic language is such a difficult thing to implement. It is already there as an option activated with some command line parameters as somebody kindly pointed out. Why not making it the default to save people from agony and pain trying to figure out why the results are not changing while their code does? I lost 3 days trying to figure out why my code produces the same results even after significant edits. I could not have imagined that functions were being redefined without a warning. Dynamic or not it does not hurt to let you know.
All I asked here is a warning to let me know. For example, g++ had an option (I do not know if it is still there) to spit out warnings related to the book of Scott Meyers Effective C++ and More Effective C++.
If it warns you it promotes safer code at no extra cost, still maintaining its dynamic character. If it does not warn you it does not promote safer code and lets you screw up without knowing and your program has unexpected behaviour. Whether the programming practice is good or bad, this is the purpose of warning messages to WARN about potential issues. People were trying to convince me here that it should not WARN me because it is Dynamic or because my coding practice is wrong.
Yes, my coding practice was indeed crap, but it was unintentional and the language should let me know because it is indeed dynamic and allows redefinition and because redefinition might cause issues and unexpected code behaviour if it is unintended, that is why it should WARN ME. How can I explain it more simply? At the end of the day dynamic or not, the language should help the developer write correct code and avoid mistakes. If Julia is not helping in this direction it clearly goes in the wrong direction but people do not see it yet because they are more interested in making Julia dynamic than safe.
Do they realize that if for something so essential we have to discuss it for so long, and they are still not convinced (although the warning option is already there but hidden and activated with some command line options), how can I trust that Julia handles properly more complicated things concerning code safety, etc. I am really afraid to go on, because I do not know what I will discovered next.
Julia is not far away from becoming the main substitute of Fortran for scientific calculations. There is no other language at the moment as far as I know that allows partially LaTeX variable names. Who is this person who suggested and implemented this feature? He deserves a statue. Generations after generations will thank him
But I am afraid at the last moment Julia took a wrong turn and it is going somewhere else. I am afraid that they do not know/decided where they are going. It is open and sounds like a kitchen of computer science fancy ideas or properties. It is not that bad, but at least it would be wise to maintain a fork of Julia which is stable and oriented to something that scientists could use without uncertainty. Some replacement of Fortran for example. It would be just a fork oriented to this scope and the scope is crystal clear. The main branch could be what it is right now. Some thoughts to consider for the future.