A Real Hacker’s IDE

We don’t use a GUI IDE, but if we did, it would most certainly be something along the lines of [Martin]’s embedded-IDE project. We’ve always felt that most IDEs are just fancy wrappers around all the tools that we use anyway: Makefiles, diff, git, ctags, and an editor. [Martin]’s project makes them less fancy, more transparent, and more customizable, while retaining the functionality. That’s the hacker’s way — putting together proven standard tools that already work.

The code editor he uses is QScintilla, which uses clang for code completion. The “template” system for new projects? He uses diff and patch to import and export project templates. Because it uses standard tools all along the way, you can install the entire toolchain with sudo apt-get install clang diffutils patch ctags make on an Ubuntu-like system. Whatever compiler you want to use is supported, naturally.

We can’t see a debugger interface, so maybe that’s something for the future? Anyway, if you want a minimalistic IDE, or one that exposes the inner workings of what it’s doing rather than hiding them, then give [Martin]’s IDE a try. If you want more bells and whistles that you’re not going to use anyway, and don’t mind a little bloat and obscuration, many of our writers swear by Eclipse, both for Arduino and for ARM platforms. We’ll stick to our butterflies.

40 thoughts on “A Real Hacker’s IDE

      1. Yah, really, most of them feel like a specialised window manager about as advanced as Gem or progman.exe v 3.1, with a tiny suite of apps you can use inside it. Everything sandboxed in with default dirs to keep everything together.

        Rolling your own, with custom desktop profiles on a VM or over VNC, doesn’t seem like it would be that hard, and you get to pick the preferred version of each individual tool.

    1. “I still have to see a full IDE for old game console development, with built-in tile/bitmap converter, map editor, music tracker, animation editor and emulator.”

      The machines of the time simply didn’t have the resources to support ‘modern’ bloat-ware.

      Now? There’s probably not enough people still developing for them to justify the time and effort required to develop and support such a tool.

    2. Now I’ve heard of such IDEs existing, on graphic workstations back in the 80s as proprietary tools at game publishers, mostly used for ports of games from one machine to another.

      Then later the Amiga had some pretty spiffy ones, for development on and for that machine. AMOS Pro comes to mind, which I think had sprite editors. There was another I can’t quite bring to mind that was highly point and click, something something construction kit, but it was mostly good for scroll ’em ups.

      Also, I have heard of something sounding like that available for android development, but haven’t seen it.

      1. Aha, got it, Shoot Em Up Construction Kit. SEUCK… Had to send the mental sysop scurrying to the tape storage for that one.

        Also similar for C64 Apple ][, and PC was Gary Kitchen’s GameMaker.

        Also on the Amiga was Blitz Basic, I don’t actually remember whether that had sprite and sound editors as official or whether it just got a bunch of user add-ons. however, interestingly it went on through the PC world, gained a seperable IDE that’s now been released open source, Protean, and a ground up redevelopment of it has become Monkey X a multi target IDE. … not sure if that’s what I was thinking of as the Android one. That looks pretty interesting actually if you want to write the next flappy bird or candy crush.

      2. Don’t forget adventure construction set.
        Actually there were/are many such systems. The retro style Indy game scene uses them a lot.
        There’s some arcade one too but no idea what it will do/make.

    1. notepad++ is excellent. Use it all the time.Have used all version of MS Visual Studio, all very good although I think VS 6.0 was the best version in the late 1990’s. :)

      Recently been using Visual Studio Code for my Linux coding.

    2. I’m not a great web developer so I have a… unique workflow when it comes to string HTML/CSS/JS/PHP together. WebStorm is amazing, but not conducive to my workflow and a bit intimidating with so many tools. Notepad++ with the FTP plugin suits my needs perfectly.

      Then there’s the feature for reloading the file whenever it changes. I open log files and put it on a secondary monitor to watching the log file live.

      There are better editors/IDEs, but Notepad++ is perfect for when you need something simple. On Linux I use either Gedit or nano depending on desktop or SSH, so I guess I stick to simple for most things.

    1. I don’t know what it is about Eclipse, but I can’t stand it.

      It’s configurable and extendable. It works great on multiple monitors. It even looks good. My only real objective gripe is the whole workspace malarkey.

      I guess I just associate it with Java, Android Developer Bundle, and TI’s Code Composer Studio, and an extremely unpleasant freshman class with a professor who held 4 PhDs in computer science but didn’t know how to actually program, then took my team’s app and sold it.

    1. Seconded. Geany is a good code editor that I use for viewing and copypasting but when I’m really digging into anything big that uses cmake, it’s got to be QtCreator.

      Just be sure to enable CodeBlocks as an ‘extra generator’ or you get opaque (empty) projects. I don’t know why so don’t ask (didn’t mess with C::B expect once back when OGRE 1.6.2 was current) but I had to just recently learn that was my problem: QtCreator needs that to bake some mandatory metadata. Why it’s even an option and so obscurely named is beyond me but without it the resulting CMakeLists.txt.user, which gets generated next to it when you open a CMakeLists.txt, is severely lacking.

    1. If you mean the official Arduino editor, I agree. It’s awesome for teaching kids or people new to programming, but once you’re dealing with more than 100 lines of code and a single file it gets messy.

      Atmel Studio is free and a lot better (IMO), and is based on Visual Studio so it’s familiar to me.

      Before Atmel Studio, I set up Notepad++ to recognize .ino files as C++, and found a plugin that would open the official editor, compile, and upload whenever I hit F5.

  1. Hello, I are the creator of embedded IDE.
    I’m working on the debug support on this days.
    The debugger branch contains some prigress on it.
    I hate gdb/mi iface but ot us the only good choise on debug system. The other option is the (incomplete at least) lldb library/program.

    Note: the original target of this ide was provide friendly iface to ptogram an develop on ciaa platforms (based entirely on makefiles and commandxline tools)
    https://translate.googleusercontent.com/translate_c?depth=1&nv=1&rurl=translate.google.com.ar&sl=auto&sp=nmt4&tl=en&u=http://www.proyecto-ciaa.com.ar/devwiki/doku.php%3Fid%3Ddesarrollo:firmware&usg=ALkJrhj-9BHV3Hht1Q01xIrXr3iC1amk-g

    At this moment, all makefile is recognized and work fine (i not, submitt a bug report plz)

  2. Back when I was programming on MS-DOS I loved a good IDE. These days, working on a system with all the multi-tasking support I can ask for, having separate programs for editor, build, and debugger isn’t a problem.

Leave a Reply to dynamodanCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.