Announcement

Collapse
No announcement yet.

Programming languages for Linux

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Programming languages for Linux

    Do any of you guys do programming for Linux? I used to write freeware for Windows. It was freeware in the sense of not costing money, but it was not open source. The language I used was Visual BASIC 6 (classic, not .NET). I’ve lived to regret my choice of programming languages. When Microsoft came out with VB.NET, it rendered my code obsolete. Plus, of course, neither VB classic nor .NET is capable of creating applications that run under Linux or Mac. It made me wish I had put my time and energy into learning a cross-platform language like C++.

    I would like to be able to contribute to the Linux community by programming some utility apps. I would like to write applications that run both in Linux and in Windows, and possibly also in Mac. I know that LibreOffice is written in C++, so that would seem to be an obvious choice. It would be great to be able to make some modifications to LibreOffice Writer. If I learned C++, I could do that, but I could also use it to write my standalone utilities, and this time around I would make it open source freeware. However, I also know that Java is a language that’s easy to transport across platforms. Maybe it would make sense to also learn it and use it for my standalone applications that I write. Then again, I could write those in C++. Maybe it would make more sense to learn one language and get really good at it than to learn two. I do know that you can write in C++ for both Windows and Linux, and even Mac. How much harder is it to go cross platform with C++ than in Java?

    I’ve also noticed in Java-based applications, they often have a funky interface that doesn’t really match its operating system. I use some Java applications, for example, ProjectLibre (an alternative to Microsoft Project), Jubler (a subtitle editor), and Xmind (a mind-mapping application). Their interfaces are non-standard, but they’re still good applications. I can live with the interface.

    So what do you think makes the most sense of these two possibilities?:
    1. Learn C++ only and use it both for my LibreOffice modifications and my standalone utilities.
    2. Learn both C++ and Java. Use C++ for my LibreOffice modifications and use Java for my standalone utilities.
    Kubuntu 22.04 (desktop & laptop), Windows 7 &2K (via VirtualBox on desktop PC)
    ================================

    #2
    I have some opinions. You should note that if you asked 5 people you'd probably get 6 different opinions.

    Of the 2 (C++ and Java), Java would probably be my choice to learn. It has more potential to write apps for Linux, Window, Mac, Android, IOS, etc... Although, I must say that writing any app for multiple platforms is ambitious -- not impossible but hardly ever trivial. Each platform has it's own "ecosystem" for system services and for GUI -- and Linux of course has 2 major GUI platforms.

    Don't discount Python as a real language: it's got a mature set of libraries; it's available on Windows, Linux, and Mac; it's object oriented; and perhaps an easy language to adopt after developing with Visual BASIC.

    My 2 cents.

    Comment


      #3
      Python is very powerful. Many libraries out there to do a lot and in fact can be compiled as its own application. I've done that and it works great.

      Comment


        #4
        Third for python. Its relatively easy to learn and is really powerful. Depends on the scale of what youre making though.

        Another option, and one that Ive gone for, is to make web apps. They allow for relatively easy multi-platform apps that are accessible to anyone. But again, it really depends on what you're making.

        Comment


          #5
          Have you checked out Qt? As a Kubuntu user, it would be the natural choice, I wonder why you haven't referred to it.
          Regards, John Little

          Comment


            #6
            Qt is a framework, written in C++. But there are bindings for it in many languages, including python.

            Comment


              #7
              I Do program for linux and I use Qt and C++ . C++ is a good language to learn and Qt Creator is a very nice IDE.
              Some projects I work on are,

              For 3d Printing (My KDE works)
              https://phabricator.kde.org/source/atcore/
              https://phabricator.kde.org/source/atelier/
              https://phabricator.kde.org/source/atcore-cli/

              For Games (cause i have a FF7 problem)
              https://github.com/sithlord48/ff7tk
              https://github.com/sithlord48/blackchocobo
              https://github.com/myst6re/makoureactor
              https://github.com/myst6re/hyne
              https://github.com/myst6re/deling
              Mark Your Solved Issues [SOLVED]
              (top of thread: thread tools)

              Comment


                #8
                My recommendation is for the QT API. It is CROSS PLATFORM for Linux, Windows and Mac. Write once and compile on any of those platforms. I spent most of the last ten years before I retired writing my in house applications using Qt on Linux, using PostgreSQL as the DB with compiler defines selecting which DB code to use based on the platform the code was being compiled on. When compiled on Windows the compiler defines selected the Oracle code segments. Qt is good for console code, web code, client-server code, and is OOP, as is C++, the language it is built with. It is open source and unlike Java is NOT under constant threat by Oracle's Ellison and his charge that Java is proprietary. Because it uses a VM Java is very vulnerable to hacking, as if it were an ActiveX type of control. There is no commonly accepted GUI front end for either Java or GUI applications written using Java. Of those available each has advantages and disadvantages. One has to add Ant and other 3rd party tools, which leads to version mismatch problems. Qt, OTOH, comes with QtDesigner, a complete WYSIWYG GUI RAD tool.

                The purchased version of Qt contains proprietary Oracle DB and other objects which are not necessary since one can create and compile their own DB connections, including Oracle's, from open source components. If one doesn't need the proprietary DB bits then all is well, especially since connections to PostgreSQL and other free a/o open source DBs are in Qt or are easily added.

                So, Qt becomes a one-stop shop for all your application needs. QtCreator is a GUI RAD framework which combines the five Qt components together into a single tool, AND, it ties in your favorite version control system, which in my case was VCS, then Bzr and lastly Git. Developing code without a version control system is a definition of insanity.
                Last edited by GreyGeek; Feb 24, 2017, 11:12 AM.
                "A nation that is afraid to let its people judge the truth and falsehood in an open market is a nation that is afraid of its people.”
                – John F. Kennedy, February 26, 1962.

                Comment


                  #9
                  Developing code without a version control system is a definition of insanity.
                  Well put! I've been down that road before and it was nothing short of a nightmare.

                  Comment


                    #10
                    Originally posted by sithlord48 View Post
                    I Do program for linux and I use Qt and C++ . C++ is a good language to learn and Qt Creator is a very nice IDE.
                    Some projects I work on are,

                    ......

                    For Games (cause i have a FF7 problem)

                    That's like making moonshine to solve your drinking problem!

                    "A nation that is afraid to let its people judge the truth and falsehood in an open market is a nation that is afraid of its people.”
                    – John F. Kennedy, February 26, 1962.

                    Comment


                      #11
                      Originally posted by GreyGeek View Post
                      That's like making moonshine to solve your drinking problem!

                      I thought that is how that was done!??

                      Comment


                        #12
                        I have written a few apps, mostly for mobile Linux (SailfishOS).

                        I'd recommend you learn C++ and javascript/qml along with Qt as a framework. Together they will allow you to write applications for mobile and desktop, across multiple platforms.
                        samhobbs.co.uk

                        Comment


                          #13
                          And today, 2/25/17, this news arrives:
                          http://www.csoonline.com/article/317...firewalls.html
                          "A nation that is afraid to let its people judge the truth and falsehood in an open market is a nation that is afraid of its people.”
                          – John F. Kennedy, February 26, 1962.

                          Comment


                            #14
                            I've been working more on kde projects lately .. AtCore (a 3d printer libary) is my current main project and less on game related projects
                            Mark Your Solved Issues [SOLVED]
                            (top of thread: thread tools)

                            Comment

                            Working...
                            X