Linux as a Developer's Coding System

Discussion in 'Shell / Command Line' started by DevynCJohnson, May 11, 2014.

  1. DevynCJohnson

    DevynCJohnson Well-Known Member Staff Member Staff Writer

    Messages:
    1,345
    Likes Received:
    1,083
    Trophy Points:
    113
    In the past few weeks, I have noticed that many programmers that once used Windows or are just now learning to program are not sure about the available developer's software for Linux. I have had many such people ask me what would be a suitable Linux IDE for programming language X, Y, and Z, so I have decided to write an article that may help such people. In my opinion, Linux is the best operating system for developers since a lot of open-source software is available as you are about to see. Remember though, this article is not meant to be a thorough review of the available IDEs or compilers. Rather, this article is meant for new developers to gain an understanding of the tools at their disposal.

    Integrated Developers Environments (IDEs)


    As many of you probably already know, an IDE is the application that developers use to write and debug their program. Eclipse is an IDE for writing Java applications (https://www.eclipse.org/downloads/). Many plugins exist for Eclipse to allow other languages to be managed in this IDE. For instance, a plugin is available for Ceylon development.

    My personal favorite is Geany. Geany is a lightweight IDE that supports a large variety of languages and tools (http://www.geany.org/). Geany supports many plugins that add additional tools, features, and functionality.

    Eric is a Python and Ruby IDE (http://eric-ide.python-projects.org/). Eric offers many features and supports plugins. Eric can also be used to make icons.

    CodeBlocks is a Fortran and C/C++ IDE (http://www.codeblocks.org/). Many C/C++ IDEs exist for Linux, but not all IDEs support Fortran, so CodeBlocks may interest you Fortran programmers. CodeBlocks also appears to support many plugins

    Gedit primarily a plain text editor, but Gedit has some features and plugins that make it a suitable lightweight IDE (https://wiki.gnome.org/Apps/Gedit). Gedit supports HTML, Perl, Python, XML, C/C++, and more languages. Gedit is perfect for systems with very little resources (like memory) and for making minor edits to code. As far as being a markup language IDE (HTML and XML), Gedit is a great choice (in my opinion).

    Anjuta is a Geany-like IDE that offers more tools than Geany (http://www.anjuta.org/). Anjuta has a GUI maker while Geany does not (technically, Glade is integrated into Anjuta). In general, most developers would choose Anjuta over Geany if they want more features. Anjuta mainly supports C/C++, Vala, JavaScript, and Python. However, other languages are supported.

    KDevelop is an IDE that has the KDE look and feel (http://kdevelop.org/). KDevelop primarily supports C/C++, although other languages are well represented.

    Codelite is yet another C/C++ IDE (http://codelite.org/).

    Monodevelop is like other IDEs as far as the general layout and supported languages (C/C++, Vala, Python, and more). However, the one characteristic that may please some of you is its great ability to support C#, GTK#, Visual Basic (VB), and .NET (http://monodevelop.com/). Many New Linux users that once used Windows often ask "What is a suitable alternative to Visual Studio for Linux?". Well, your answer is Monodeveloper.

    Glade is a GUI designer for GTK interfaces (https://glade.gnome.org/). Glade generates an XML file from the interface/window the developer designed. This XML file can then be used by an application to produce the desired GUI.

    I heard of Sublime-Text from someone on Google Plus, but I personally do not know enough about it to say anything about it. So, you may want to check it out yourself. (http://www.sublimetext.com/)


    NOTE: The best way to choose the "right IDE" is to select one that works on your system and supports your programming language of choice. If you still have a few IDEs to choose from that follow that criteria, then try then out and see which one you like better. You may choose one over the rest because of the interface/layout or support for a particular plugin/feature. For example, I choose Geany because it supports a variety of programming languages (I know more than one computer language), it is a lightweight and simple IDE, the available plugins and features satisfy my programming needs, and Geany is supported by my system. Plus, at the time I choose Geany, some of the other IDEs appeared to have bugs and issues on my system. (Do not worry, I think the developers of these particular IDEs have fixed these bugs, so please feel free to choose an IDE other than Geany).

    Compilers


    gcc - This compiler is available for a very large variety of platforms and compiles C code. This is part of the GNU Compiler Collection.

    g++ - This compiler is just like gcc except that it compiles C++. This is part of the GNU Compiler Collection.

    ghc - This is a Haskell compiler, but it is not part of the GNU Compiler Collection.

    gnat - Ada source code is compiled with this compiler. This is part of the GNU Compiler Collection.

    gccgo - The GO programming language is compiled with this compiler that is part of the GNU Compiler Collection.

    gcj - This is the Java compiler that is part of the GNU Compiler Collection.

    g77 - This is the Fortran compiler that is part of the GNU Compiler Collection.

    Clang - For those of you that do not like the GCC compiler or other C compilers from the GNU Compiler Collection, then Clang may be the right choice for your needs. Clang supports C/C++, Objective C, and Objective C++ (http://clang.llvm.org/).

    MinGW (Minimalist GNU for Windows) - This compiler only works on Windows, but I wanted to mention it so readers know that this is not a compiler for Linux users. MinGW is a Windows port of the GNU Compiler Collection.



    NOTE TO DEVELOPERS: I am willing to write a review (one article dedicated to your software) of your software if it would work on a 64-bit Ubuntu system. If you have an open-source project you would like me to review, please email me (DevynCJohnson@Gmail.com) and we can arrange a review. If you have a proprietary Linux software that works on a 64-bit Ubuntu system, then I can also write a review on your software. Just email me so we can make an arrangement.

    Attached Files:

    Last edited: May 27, 2014
    Amit_*nix likes this.
  2. Eric Hansen

    Eric Hansen Moderator Staff Writer

    Messages:
    124
    Likes Received:
    87
    Trophy Points:
    28
    A few things, from a developer as well:

    While IDEs are nice (and I use them for PHP usually), and I hate to be this guy that I'm going to be, but Vim is another alternative. At first its pretty weak, and is frustrating, but once you get some plugins set up and learn the keyboard-centric ways, I think it should at least be considered.

    Also, there are cloud-based IDEs now, too. Codio for example allows free unlimited public projects, and its only $8/month for unlimited private projects. While these aren't for everyone, I think its safe to accept the web-2.0 method at this point.

    Lastly, for the program review, would you consider scripting languages that aren't tied to a specific architecture type (i.e.: Python)?
    DevynCJohnson likes this.
  3. DevynCJohnson

    DevynCJohnson Well-Known Member Staff Member Staff Writer

    Messages:
    1,345
    Likes Received:
    1,083
    Trophy Points:
    113
    You make some good points. Many people do prefer Vim, VI, and Emacs.

    Yes, system-independent code and programs are always good, if not, preferred above all else.
  4. ryanvade

    ryanvade Administrator Staff Member Staff Writer

    Messages:
    1,333
    Likes Received:
    443
    Trophy Points:
    83
    atom - a hackable editor developed by Github under the MIT license. I love it.
    https://atom.io/
    ppa:webupd8team/atom
    has a relatively slow startup for an editor, when compared to gedit or nano, but it is awesome.
    Though for C++ I use Code::Blocks and for Java I use Eclipse or Netbeans.

    Available for Windows, Linux and OS X 10.8+
    DevynCJohnson likes this.
  5. DevynCJohnson

    DevynCJohnson Well-Known Member Staff Member Staff Writer

    Messages:
    1,345
    Likes Received:
    1,083
    Trophy Points:
    113
    Thanks for the extra info.
    ryanvade likes this.
  6. Joel Cumberland

    Joel Cumberland New Member

    Messages:
    1
    Likes Received:
    2
    Trophy Points:
    3
    For any Python developers thinking of moving over to Linux, have a look at PyCharm from JetBrains (Google it..). There's a community and paid edition, I use the community edition which seems to provide me with everything I need for Python development.

    They also have IDE's for Java, Ruby and PHP which run on Linux, Windows and MAC's.
    ryanvade and DevynCJohnson like this.
  7. DevynCJohnson

    DevynCJohnson Well-Known Member Staff Member Staff Writer

    Messages:
    1,345
    Likes Received:
    1,083
    Trophy Points:
    113
    This looks interesting. Thanks!

    http://www.jetbrains.com/pycharm/
    ryanvade likes this.
  8. Eric Hansen

    Eric Hansen Moderator Staff Writer

    Messages:
    124
    Likes Received:
    87
    Trophy Points:
    28
    In regards to Atom, FWIW it can be installed in Arch via AUR (atom-editor).

    PyCharm is nice. I use it every so often if I don't feel like doing vim. I've also used NINJA-IDE which is meant for strictly Python coding.
    ryanvade and DevynCJohnson like this.
  9. ryanvade

    ryanvade Administrator Staff Member Staff Writer

    Messages:
    1,333
    Likes Received:
    443
    Trophy Points:
    83
    Pretty much everything is available in the AUR. ;)

    I have used PyCharm as well. All right I guess, but I prefer nano for Python.
  10. Eric Hansen

    Eric Hansen Moderator Staff Writer

    Messages:
    124
    Likes Received:
    87
    Trophy Points:
    28
    I have actually found some things that aren't... I was beyond shocked. o.o

    But as for editors everyone has a preference. I loved Sublime just not the price, so I kept switching.
    DevynCJohnson and ryanvade like this.

Share This Page