Applications

Remember the olden days when folks used that other OS for the applications? We were told GNU/Linux would never make it because it lacked applications. GNU/Linux is making it and there are a lot fewer applications lacking.

I have been using Debian GNU/Linux lately with 28000 packages of software. That’s an amazing number of packages you can install in seconds anywhere in the world on many hardware platforms but it’s a drop in the bucket compared to what’s available under a Free Software licence.

SourceForge and GitHub host about 1.75 million software projects with about 3 million contributors. Collectively, those people deliver far more code than M$ with its few thousand developers. M$ delivers bloat. What word could be used to describe this much Free Software? Cornucopia? Abundance? Wealth?

It’s no wonder I and many millions of people are happy with the number and kinds of applications for GNU/Linux. The world can create its own software. The world does not need monopolists to produce software. Indeed, monopolists in software are endangered species.

Exploring GitHub gives (repositories, any language):

  • 37 found for “search engine”
  • 91 found for “pascal”
  • 16 found for “mortgage”
  • 356 found for “CRM”

Using Google to explore (site:github.com) finds:

  • 276 hits for “double-entry”
  • 21 hits for “ballistics”
  • 540 for “ERP”

No wonder Android is thriving. It’s just the tip of the iceberg. The rate of growth of availability of Free Software is phenomenal. In just a few years SourceForge has multiplied and GitHub came into existence.

UPDATE Found a gem on GitHub. It’s not an application but an important document, a transcript of an interview with Donald Knuth, one of the GodFathers of computer science. He started out in the days of hard-wired decimal machines and punched cards a decade before I touched a computer. There’s a lot of sharing of code in the old days and that is thriving today. This article really underscores the idea that one builds software from algorithms and refinements of others’ ideas. Software is not a creative art but a conversation with computers and people .

About Robert Pogson

I am a retired teacher in Canada. I taught in the subject areas where I have worked for almost forty years: maths, physics, chemistry and computers. I love hunting, fishing, picking berries and mushrooms, too.
This entry was posted in technology. Bookmark the permalink.

27 Responses to Applications

  1. Ray says:

    “So, it looks as though the roadmap is to grant oldman’s wishes to run native code although you will have to build for the system which is normal enough. One does not run PPC stuff on x86 without rebuilding/recompiling. The same is true for ARM. You have to interface with the libraries and OS on the device”

    Does Java work?

  2. God helps those who help themselves. I am serious about becoming self-employed. I had an interview this morning about getting business training. I have another one set up for tomorrow. I love computers but paper-shuffling is horrid. I may have to hire office staff… 😉

  3. oldman says:

    “So, it looks as though the roadmap is to grant oldman’s wishes to run native code although you will have to build for the system which is normal enough. One does not run PPC stuff on x86 without rebuilding/recompiling. The same is true for ARM. You have to interface with the libraries and OS on the device.”

    An interesting capability IMHO. We will have to see if anyone picks up on it.

  4. oldman says:

    “Someone is not wrong/evil for choosing one trail over another by their particular reasoning. Evil is about doing harm not getting along.”

    Thank you Robert for your words. They have caused me pause to think. It seems to me that I have gotten way too far away from my resolve to respect your core views while agreeing to disagree with you. The reality is, I could have expressed myself better without the provocative words. My views of the free software movement were really not germaine to the point at hand and the provocative nature of them did more harm to my point than good.

    Differences aside, I have valued our conversations. I hope that we are able to continue our discussions on the evolving nature of IT.

    Needless to say, help is only an email away of you need it.

  5. Some of us spend too much time working with machines and lose some of our people-skills. The web also filters all kinds of feedback like body-language so we should skip passing judgment on people who may or may not be stressed/polite/pompous/etc.

    I know oldman ticks me off some days but he is quite wise/helpful in many ways. I know I tick of many people and that is not my intention at all. We should stick with the tech and the glory of it. I received some of my education in a one-room school-house in the bush with nothing but paper and pencils. We have come a long way and there are forks in the trails. Someone is not wrong/evil for choosing one trail over another by their particular reasoning. Evil is about doing harm not getting along.

  6. ray says:

    i’m personally waiting for it. 🙂

  7. lpbbear says:

    “As far as pompous is concerned, Am I any less pompous than the glorified hardware service tech who presumes that his world view encompasses the whole of IT?”

    The above statement and the following statement IS that of a “pompous MS loving jackass”

    “As someone who actually works IN IT”

    When you make snide derogatory remarks like that towards your fellow peers you ARE a “pompous MS loving jackass”.

    We all have our long fought, hard won, battle scars from working in the tech field and each of us has something to contribute. Unfortunately you spend most of your time on Mt. Pompous looking down your rather long ski slope of a nose at others in the field while proclaiming your superiority over all. Its truly rude. Just keep your comments to the point and clean up the extra-anus comments towards others.

  8. oldman says:

    “And BTW stop repeating the same crap like the repeating of it will insure your worldview will be picked up and believed. Android is running on top Linux in a similar fashion as “Windows” ran on top of DOS. Underneath Android is Linux.”

    Frankly, I don’t expect that my “worldview” will be picked up by anyone. I am merely commenting on what I see as a comment

    “You’re reminding me of another pompous MS loving jackass that used to hang out here.”

    Actually I am user of all matter of applications that run on Linux AND windows. Personally, I run an application set that are most cost effectively run on windows. Professionally , I help both maintain and design systems that run Enterprise Line of business applications on Linux and windows.

    Personally I am perfectly capable of using a Linux desktop if need be, but I have zero interest in giving up applications that I use which dont exist on Linux. I am not alone in this, and all of my comments here should be taken in that context.

    As far as pompous is concerned, Am I any less pompous than the glorified hardware service tech who presumes that his world view encompasses the whole of IT?

  9. Android/Linux is an open system. Nothing prevents a manufacturer from shipping a device with an icon for a native-code application.

    From the Android/nkd/README.TXT file:
    “Android Native Development Kit (NDK)

    Welcome, this NDK is designed to allow Android application developers
    to include native code in their Android application packages, compiled
    as JNI shared libraries.”

    Further, Android/ndk/docs/STABLE-APIS.html includes:
    “II. Android-3 Stable Native APIs:
    ———————————

    All the APIs listed below are available for developing native code that
    runs on Android 1.5 system images and above.

    The C Library:

    The Math Library:

    C++ Library:

    ZLib Compression Library:

    Dynamic Linker Library:

    That implies that some applications or parts of applications that are CPU-intensive can be run natively rather than by interpreting byte-code. A developer might want to do that if the code was not available in Java source or because performance might be superior run natively. It does not look intended for actually porting a whole application to run natively, just some parts. However, it may be possible to work around any limitation by just supplying the source code of some libraries in the app rather than linking to them. I am not an expert with C-ish stuff so I am not certain of this. Does anyone know whether one can do graphics and so forth with these APIs?

    I read further and can answer my own question. Not likely. Further in the file:
    “IV. Android-5 Stable Native APIs:
    ———————————-

    All the APIs listed below are available for developing native code that runs
    on Android 2.0 system images and above.

    The OpenGL ES 2.0 Library:

    IV. Android-8 Stable Native APIs:
    ———————————-

    All the APIs listed below are available for developing native code that runs
    on Android 2.2 system images and above.

    The ‘jnigraphics’ Library:
    ————————–

    This is a tiny library that exposes a stable, C-based, interface that allows
    native code to reliably access the pixel buffers of Java bitmap objects.

    The Android native application APIs:
    ————————————

    Starting from API level 9, it is possible to entirely write an Android
    application with native code (i.e. without any Java). That does not mean
    that your code does not run inside a VM though, and most of the features
    of the platform will still need to be accessed through JNI.

    For more information about this topic, please read the dedicated
    document named docs/NATIVE-ACTIVITY.html (TODO: WRITE DOC).”

    NATIVE-ACTIVITY.HTML starts with
    “Native Activities and Applications:
    ———————————–

    I. Overview
    ===========
    The Android SDK provides a helper class, NativeActivity, that allows you to write a completely
    native activity. With a native activity, it is possible to write a completely native application.
    NativeActivity handles the communication between the Android framework and your
    native code, so you do not have to subclass it or call its methods. All you need to do is declare
    your application to be native in your AndroidManifest.xml file and begin creating your native
    application.

    Native activities do not change the fact that Android applications still run in their own virtual
    machine, sandboxed from other applications. Because of this, you can still access Android framework
    APIs through the JNI. There are, however, native interfaces to access things such as sensors, input
    events, and assets that you can use. For more information about what is supported, see the
    <ndk_root>/docs/STABLE-APIS.HTML.

    If you are developing a native activity, you should still create your projects with Eclipse or the
    “android create project” command. You still build and package native applications with the usual
    Android build tools, so the build system can only build Android projects that have the correct
    structure. Using the android tool or Eclipse helps ensure that.”

    So, it looks as though the roadmap is to grant oldman’s wishes to run native code although you will have to build for the system which is normal enough. One does not run PPC stuff on x86 without rebuilding/recompiling. The same is true for ARM. You have to interface with the libraries and OS on the device.

  10. lpbbear says:

    “So show me how, without changing the system as shipped, I can run Open office, or Gimp natively…”

    I wasn’t aware that the ability to run specific applications defined the actual operating system.

    By that logic then these must be meant for Linux….

    http://download.services.openoffice.org/files/stable/3.2.1/OOo_3.2.1_Win_x86_install-wJRE_en-US.exe

    http://gimp-win.sourceforge.net/stable.html

    As one who claims they “actually works IN IT” you should know enough to know that a GUI app like Gimp or Open Office needs the required windowing manager and libraries to actually function no matter whether its being run on Android, Windows, or an older version of Linux…oh…lets say for instance Slackware from 1995.

    And BTW stop repeating the same crap like the repeating of it will insure your worldview will be picked up and believed. Android is running on top Linux in a similar fashion as “Windows” ran on top of DOS. Underneath Android is Linux.

    http://developer.android.com/images/system-architecture.jpg

    You’re reminding me of another pompous MS loving jackass that used to hang out here.

  11. Adrian Malacoda says:

    Starcraft II? Is Starcraft used in business nowadays?

  12. Tell Oracle that: http://www.oracle.com/us/products/applications/open-office/index.html

    Pay particular attention to
    “OPEN OFFICE BENEFITS
    Leverage Gain
    Easy-to-use, fully featured word processing, spreadsheet, presentation, drawing, and database applications
    The ability to reduce office software and infrastructure costs by up to 5x
    Compatibility with both legacy Microsoft Office documents and modern Web 2.0 publishing
    Ubiquitous, server-based document authoring and collaboration, plus document access with mobile phones and tablets with the Oracle Cloud Office
    More flexible and sustainable IT infrastructure
    Lifetime data access through open standard strategy and ODF (Open Document Format, ISO/IEC 26300)
    Free choice of operating systems and devices in mixed environments
    Integration with key Oracle applications like Oracle Business Intelligence, Oracle E-Business Suite, and Oracle JDeveloper
    Proven core technology with a track record of more than 100 million private and corporate users
    Integration options to build a complete, open standard office stack (ODF, Web technologies, IMAP, CalDAV, CardDAV, XMPP)
    The ability to migrate to low-cost devices and operating systems or a Web-only IT infrastructure
    Oracle Global Support”

    and don’t forget BUY NOW

    Yes, you can take a FLOSS product, package it in shrink-wrap, and sell a copy for $99 with or without support. Free Software is about freedom, not price and most FLOSS sells at the low price of $0 because that’s the distribution model that has developed. Oracle does things differently and that’s OK. It would be better if they didn’t sue people over FLOSS, though.

  13. Richard Chapman says:

    If Autodesk released Autocad for GNU/Linux it would be a huge blow to Microsoft’s influence on the desktop. No? It wouldn’t? Then it’s absence on the GNU/Linux desktop is not a serious handicap. It can’t be both.

  14. ray says:

    but Openoffice.org isn’t used for trade. And nor is Asterisk. VMware is, Red Hat is. And Staroffice is. BTW, still waiting for Starcraft II on Linux.

  15. “Commercial Com*mer”cial, a. [Cf. F. commercial.]
    Of or pertaining to commerce; carrying on or occupied with
    commerce or trade; mercantile; as, commercial advantages;
    commercial relations. “Princely commercial houses.”
    –Macaulay.
    [1913 Webster]”

    Commercial applications are applications used in business. M$ gives away Office in some cases. That does not make Office non-commercial.

  16. Richard Chapman says:

    oldman: “there are no commercial applications…”

    Commercial software: software people use to get their work done. Just a thought. Autodesk’s Autocad is often mentioned as not available for GNU/Linux. It seems to be held up as some kind of measure of “real commercial grade” software. As if to say GNU/Linux won’t make the grade until Autodesk anoints it with a significant package. Would it really matter if Autodesk did just that in a few months? Would the Microsoft faithful say “Oh, now GNU/Linux runs important software.”, or would it be more like, “Yeah, that’s ok but it really doesn’t change anything.”. I suspect the latter. Anybody care to state their thoughts beforehand?

    I would consider Asterisk commercial software. It’s not proprietary or closed, you don’t pay money for it but people use it to get their work done. I honestly cannot understand how anyone can say GNU/Linux is not a commercial presence. And it cannot be a commercial presence if it does not run useful software, commercial or otherwise. Not doing work? Shut the servers down. There, now we can do our “work”. What kind of work are you talking about oldman? Oh, that’s right, Microsoft Office.

    Here’s some software, 35 packages, 10 of which run on Linux (http://en.wikipedia.org/wiki/3D_computer_graphics_software). You know those crowd scenes in Lord of the Rings? You’re watching Linux in action. I suspect the choice of Linux in the movie industry is not so much a matter of cost but of speed.

  17. Ray says:

    Yea, commercial applications are applications that are sold. Openoffice isn’t sold, nor is Firefox.

  18. Gee. I thought OpenOffice.org and FireFox are commercial applications. Mainstream, too. Must have been my imagination.

    Perhaps a vendor would not be interested in developing FLOSS but others do for sure, like Google. Have they not produced a ton of software, not to sell licences but their other product, advertising. It’s a left-hook but any business can find an angle that works for them. Some large businesses, governments and education systems can pay programmers instead of buying licences.

    Android apps are interpreted language applications. They do not link to the OS. A non-free application can be run on a Free Software system with no legal complications. There is a separation between the application and the operating system. Being on the same file-system does not cause a copyright violation if both licences permit. There are links to Linux in Android because Linux is used in the development system. The run-time is linked to Linux as well but not the apps which run in a virtual machine, Dalvik.

    There are both Free and non-free apps in Google’s Android Market. The terms and conditions include:
    “3.1 This Agreement covers both Products you choose to distribute for free and Products for which you charge a fee (once payment processing is enabled on the Market). In order to charge a fee for your Products, you must have a valid Payment Account under a separate agreement with a Payment Processor. If you already have a Payment Account with a Payment Processor before signing up for the Market, then the terms of this Agreement shall supersede your Payment Account terms and condition for Products sold via the Market.”

  19. oldman says:

    “So Android is Linux.”

    So show me how, without changing the system as shipped, I can run Open office, or Gimp natively…

    Your exercise in proof is wasted, Pog. I never said that the linux base code was not used to underpin Android, it clearly is. But to call it Linux, with all of the implications that that name has for the general population, is IMHO dead wrong.

  20. Adrian Malacoda says:

    Oldman,

    About people “surrendering” their “creations” due to the “evil GPL” I assure you that people who develop for GNU/Linux are not subject to the GPL unless they use GPL code or libraries. Anyone who has to give their work to the community has already taken from the community to build it, so it’s tit-for-tat. The GPL does not affect the viability of GNU/Linux applications in the slightest (this is why Mr. Stallman and the FSF created the LGPL, so that it does not), although this FUD that you’re helping spread might be a detriment. I like the idea of a community commons where software can be contributed but some vendor cannot take it out of the commons. This was part of the point of GNU in the beginning. GNU wanted a philosophical success, not some shallow “market” success.

    Android went for a different type of success, and now its experiencing that success. But this is not because of the GPL, it’s mostly because there’s a monopoly in the desktop area but not one in the mobile area.

  21. oldman wrote:“The reality is that microsoft is going nowhere.”

    When I read that I was thinking it was a typo. The tone of oldman’s message is that GNU/Linux is getting nowhere. Double entendre, I guess… 😉

    Servery is a mature market in many ways. M$ and GNU/Linux have achieved the share that they have and it seems fairly stable except for little jogs up or down and new players come and go. Therefor, migrations on servers are somewhat off-topic as to growth. Both operating systems ride the ups and downs of IT. UNIX has actually achieved some stability and although shrunken continues to do a decent job where stability/performance exceed the importance of cost.

    AutoCad and other niche-applications will appear on GNU/Linux when the share of GNU/Linux is large enough to warrant the investment. In the meantime, the perceived necessity of those applications is one factor in choosing an OS. Most businesses have only a few percent of users who need them. Phone-centres don’t need AutoCad. Banks do not. Except in small departments like engineering/maintenance or advertising. The bulk of the employees are doing the business, not the few engineers or graphics artists. You can estimate the prevalence of some of these applications by dividing the revenue by the licensing fee and you get numbers up to about 100 million whereas the operating systems are on more than 1000 million PCs. No one would buy a thousand Cadillacs if they only needed them for 100 VIPs. I don’t install every package from GNU/Linux either. That makes no sense and the menus would be too long…

    I can answer some questions about Android with more authority now that I have git working through my firewall:
    pogson@nb:~/android$ cat system/core/README

    The system/ directory is intended for pieces of the world that are the
    core of the embedded linux platform at the heart of Android. These
    essential bits are required for basic booting, operation, and debugging.

    They should not depend on libraries outside of system/… (some of them
    do currently — they need to be updated or changed) and they should not
    be required for the simulator build.

    The license for all these pieces should be clean (Apache2, BSD, or MIT).

    Currently system/bluetooth/… and system/extra/… have some pieces
    with GPL/LGPL licensed code.

    Assorted Issues:

    – pppd depends on libutils for logging
    – pppd depends on libcrypt/libcrypto
    – init, linker, debuggerd, toolbox, usbd depend on libcutils
    – should probably rename bionic to libc

    ———————
    pogson@nb:~/android/system$ ls
    bluetooth core extras media netd vold wlan

    ———————-

    Poking around, I do not find the kernel, just its header files. As it turns out, building a complete Android/Linux system requires another git checkout. see http://source.android.com/porting/build_system.html

    Rather than do I that I will list the Linux kernel headers:

    ls development/ndk/platforms/android-3/include/linux/|wc
    308 308 2984

    ls /home/pogson/Downloads/linux-2.6.34.6/include/linux|wc
    1029 1029 10819


    That shows that a substantial minority of Linux is in Android. The driver set is quite different however. The size of the code in the Android repository is about 5gB including several software development kits, Dalvik and the rest. So Android is Linux.

  22. oldman says:

    ” If you or anyone don’t like the GPL as a licence, don’t use it.”

    I don’t. But more importantly, neither do the majority of desktop software developers, and that is why IMHO the Linux desktop has gone nowhere – there are no commercial applications because no vendor is going to give up their hard work just to cater to a market that doesnt want to pay for their efforst anyway.

    In comparison, the development environment for Android is licensed under the Apache License, which does allow commercial software creators to publish binary only applications. the allows for a rich marketplace to flourish, to everyones benefit.

  23. oldman says:

    “I think there are 100 million GNU/Linux desktops around the globe. At $100 a piece that is $10billion, a huge success.”

    Not really, these people probably couldnt afford or didnt want any commercial software anyway. IN this case there was no sale lost.

    “Linux has essentially proven its commercial value over the incumbent systems in every IT sector it’s challenged. All the while it has been pointed out that Linux has yet to replace Microsoft on the desktop, Linux has been replacing Microsoft everywhere else.”

    Mr. Chapman:

    If his is what you wish to believe, thats fine with me. As someone who actually works IN IT, I can assure you of the following:

    100% of our growth in linux servers is as a substitute for Proprietary unix systems, primarily IBM AIX and SUN Solaris.

    Almost all of the Enterprise Line of business applications we run, have a microsoft component. In fact several of these enterprise applications are purely microsoft based. We looked at Linux based applications, but in all cases the users found the best of breed in terms of the functions that they were required came from vendors whose products were built with Windows based tools and worked on microsoft OS.

    The reality is that microsoft is going nowhere.

    “Even the lowest estimates of penetration show GNU/Linux is not losing on the desktop”

    Then where are the main stream commercial applications written for a linux desktop. Why is there no autocad? No Photoshop? Why dont we see a commercial desktop software market for Linux growing ?

    An please do not point to Android for that growth – Android is about as much Linux as OS X is NextStep.

  24. Richard Chapman wrote:” commercial success in the * sector. The same cannot be said of the Linux desktop”

    Someone at M$ wrote: “Under no circumstance lose against Linux!”, meaning do not fail to make a sale. They have failed to make lots of sales. Those were successes for GNU/Linux.M$ has gone out of its way to prevent competition by GNU/Linux. They did that because there are many situations where GNU/Linux can and does beat them. Is there lots of money to be made selling licences for GNU/Linux desktops? No. The licence is usually $0. Does that mean by definition that GNU/Linux cannot win “commercial success”. Certainly not. Count instances of installations or lost sales. GNU/Linux is a success on the desktop. I think there are 100 million GNU/Linux desktops around the globe. At $100 a piece that is $10billion, a huge success.

    I hope no one here counts success as the other guy losing. That is silly. Everyone loses in the end. Success can be fun along the way and many other things. Even the lowest estimates of penetration show GNU/Linux is not losing on the desktop. I think it is pretty clear that tiny boxes many of which now run Android/Linux on ARM will be the new desktops so M$ is really slipping behind if that becomes the race. M$ must think so. They are porting to ARM. By the time they and their partners port to ARM, GNU/Linux will already be dominant in that area. The game is not over and GNU/Linux is advancing from both ends of the field.

  25. Richard Chapman says:

    In short Linux is a commercial success in servers.

    The same cannot be said of the Linux desktop.

    In short Linux is a commercial/scientific success in super computers.

    The same cannot be said of the Linux desktop.

    In short Linux is a commercial success in the financial sector.

    The same cannot be said of the Linux desktop.

    In short Linux is a commercial success in mobile computing.

    The same cannot be said of the Linux desktop.

    In short Linux is a commercial success in (all the other things I can’t recall at the moment).

    Linux has essentially proven its commercial value over the incumbent systems in every IT sector it’s challenged. All the while it has been pointed out that Linux has yet to replace Microsoft on the desktop, Linux has been replacing Microsoft everywhere else. I guess it’s too late now but maybe the desktop has been given too much priority in the hearts and minds of the Microsoft devoted.

    On the GPL: If all you have is a carrot, then that’s what you eat for dinner. But if you live in a Stone Soup Village (GPL), you feast on a bounty fit for a Monarch. No oldman, it’s not the case of someone steals your carrot. You know as much about the GPL as Robert or I do. I believe your misunderstanding of it is genuine though. Healthy human brains are not able to encapsulate and entertain a set of polar opposite beliefs. Is the right belief the one that ensures my right to commerce or is it the one that ensures everyone’s right to commerce?

  26. oldman wrote: “surrendering their creations to the community because of the GPL”

    I have a hard time parsing that phrase. The GPL is a licence, a grant of permission, not surrender. The creator/copyright holder still retains ownership. No one is forced to use the GPL as a licence but many do because it does what they want, make code available more or less in the form/manner they want and to allow it to grow as others add refinements/features. oldman’s phrase does not make sense to me. If I plant a seed, I do not expect to “keep it”. I set it free to grow.

    It is true that if you link with GPLed stuff you need to use a Free Software licence for your stuff but you get in exchange the use of the libraries and stuff that you link with. Normally, that would cost big bucks and restrictions but because you are linking to GPLed stuff it usually costs little and the restrictions are very easy to understand and to implement. People who like to create software and are not necessarily interested in giving lawyers lots of business love the GPL. If you or anyone don’t like the GPL as a licence, don’t use it.

  27. oldman says:

    “No wonder Android is thriving. It’s just the tip of the iceberg. The rate of growth of availability of Free Software is phenomenal. In just a few years SourceForge has multiplied and GitHub came into existence.”

    Nonsense Pog.

    Android is thriving because it has enabled ISP’s to extend their offerings in the mobile device market and ISV’s to participate in that market. And none of them have to worry about surrendering their creations to the community because of the GPL. In short Android is a commercial success.

    The same can not be said of the Linux desktop.

Leave a Reply