Page 172 -
P. 172

171
                                                           Q4-5  What Are the Differences Between Native and Web Applications?

                                                   With open source, anyone can obtain the source code from the open source project’s Web
                                               site. Programmers alter or add to this code depending on their interests and goals. In most cases,
                                                 programmers can incorporate code they find into their own projects. They may be able to resell
                                               those projects depending on the type of license agreement the project uses.
                                                   Open source succeeds because of collaboration. A programmer examines the source code and
                                               identifies a need or project that seems interesting. He or she then creates a new feature, redesigns
                                               or reprograms an existing feature, or fixes a known problem. That code is then sent to others in the
                                               open source project who evaluate the quality and merits of the work and add it to the product, if
                                               appropriate.
                                                   Typically, there is a lot of give and take. Or, as described in Chapter 2, there are many cycles of
                                               iteration and feedback. Because of this iteration, a well-managed project with strong peer reviews
                                               can result in very high quality code, like that in Linux.
                                               So, Is Open Source Viable?

                                               The answer depends on to whom and for what. Open source has certainly become legitimate.
                                               According to The Economist, “It is now generally accepted that the future will involve a blend of
                                                                                   26
                                               both proprietary and open-source software.”  During your career, open source will likely take a
                                               greater and greater role in software. However, whether open source works for a particular situ-
                                               ation depends on the requirements and constraints of that situation. You will learn more about
                                               matching requirements and programs in Chapter 12.
                                                   In some cases, companies choose open source software because it is “free.” It turns out that this
                                               advantage may be less important than you’d think because in many cases support and  operational
                                               costs swamp the initial licensing fee.



                             Q4-5              What Are the Differences Between Native

                                               and Web Applications?


                                               Applications can be categorized as native applications that run on just one operating system or
                                               Web applications that run in browsers. In the latter case, the browser provides a more or less con-
                                               sistent environment for the application; the peculiarities of operating systems and hardware are
                                               handled by the browser’s code and hidden from the Web application.
                                                   Figure 4-17 contrasts native and Web applications on their important characteristics. Consider
                                               the Native Applications column first.

                                               Developing Native Applications

                                               Native applications are developed using serious, heavy-duty, professional programming lan-
                                               guages. Mac OS and iOS applications are constructed using Objective-C or  the  Swift pro-
                                               gramming language. Linux (Android) applications are constructed using Java, and Windows
                                               applications are constructed using C#, VB.NET, C++, and others. All of these languages are
                                               object-oriented, which means they can be used to create difficult, complex applications and,
                                               if used properly, will result in high-performance code that is easy to alter when requirements
                                               change. The particular characteristics of object-oriented languages are beyond the scope of
                                               this text.
                                                   Object-oriented languages can be used only by professional programmers who have devoted
                                               years to learning object-oriented design and coding skills. Typically, such developers were com-
                                               puter science majors in college.
                                                   The benefit of such languages is that they give programmers close control over the assets of
                                               the computing device and enable the creation of sophisticated and complex user interfaces. If
                                               the programs are well written, they perform fast and use memory efficiently. The limits on native
   167   168   169   170   171   172   173   174   175   176   177