In general I avoid using proprietary software: all my programming uses open-source programs and libraries. This is part of my future-proof design philosophy.
My reason for doing this is that proprietary technology can be dropped on a whim by the company it belongs to, leaving your program unsupported. For example, it could become impossible to add new features in the future because the technology it is built with is no longer available. Furthermore, large corporations are quite happy to change the design of their products with no notice because they are marketing-driven, and marketing requires constant change regardless of the cost to you. So, you download an update and find your program no longer works.
Open-source technology is driven by a desire to make things function well. There is an emphasis in the open-source community for defining standards to ensure continuity. There is also an understanding of backwards-compatibility, so old versions of technology are maintained for those that still need to use them. Therefore, by using open-source technology, I increase the chances of your program working correctly and continuing to do so in the future.
I believe it is good practice to make all programs potentially portable to many different types of computer - for example, so that they will work on Windows, Apple Macintosh and Linux. Even if you think you will only be using one kind of computer, can you be sure you will never use any other? My approach ensures that your program will be easily portable to all platforms.
There is also a problem facing the whole computer industry, which is that some of the biggest companies in the computer business are trying to lock-in programmers to their technologies so that it is impossible to make a program work on any other type of computer. They are doing this to increase their own market share at the expense of their customers who have to pay far more to have programs developed to work on more than one type of computer. I am firmly against this underhand practice and only use methods which are non-proprietary and free of this practice.
C++ is the engineers programming language of choice. However, it is very powerful and full of pitfalls for the naive. It takes a minimum of 5 years experience to be a capable C++ programmer and 10 years to become an expert. I have been using C++ since 1992 and have become a master of the language. I have even contributed an open-source library that extends the language.
Object-Oriented design is a way of managing large designs by dividing the problem into components. Each component can be designed and built in isolation and then the system is built from those components. This approach is almost infinitely scalable and can be used for small, large and enormous projects.
The combination of C++ with Object-Oriented Design is probably the most powerful design approach yet devised in software engineering. I have been using C++ Object-Oriented Design since 1992.
If you are interested in using my website design services, please contact me.