Compilers, IDEs, and Unix

30 Jan 2014

I want to get a couple of things off my chest, but I'm hoping in the process it might stimulate an interesting discussion. If not, well never mind, at least I'll feel better :D

After several months of coding purely in vim with it's familiar and fast keystroke system, my favorite eye-kind color scheme, and fonts, I am finding it painful transitioning back to the online IDE. You might think I'm crazy using vim, but then you might not understand how powerful vim really is. With just a couple of plugins you can have full code completion and native syntax checking (using clang for c/c++ for example), multiple buffers to whiz around, etc etc. But enough about vim.

The only time I use an IDE is when it gets very complicated, but for many tasks this level of inspection isn't needed. Or is only needed for part of the task, while the rest of the time the focus is only on one or two files. In anycase, the point is, with a toolchain like llvm + clang or gcc I can easily switch between the IDE and a more straightforward editor. This is the beauty and flexibility of a fully instrument-able toolchain. What do you guys use?

I've seen discussions on here in the past about having a compiler API, but I can't see how that would happen, given that the wider you (ARM) make the compiler available, the more you'll cannibalise your existing toolchain market (i.e Keil). What do you think, any chance?

Using gcc isn't really a viable option for most projects as newlib isn't memory-efficient enough last time I checked (and I checked with the 3G dongle stuff: it was unstable and used up too much memory). Perhaps they've made some recent changes that would help this, I hope so. Anyone know?

I don't like Keil for a couple of reasons. The cost doesn't hurt me personally as my employer would pay for it, but outside of industry it is truly prohibitive except for the die-hard. I don't really believe in the model anyway. I think ARM'd be better off investing resources in something like LLVM and benefit from the community that surrounds it. Even if you opened up your existing compiler, people would still buy your IDE and professional support.

The main reason I don't like Keil however isn't the cost. It's the fact it doesn't support Unix. It can run through wine, but that's a crippled experience and it doesn't support CMSIS-DAP support... so yeah. Now you might again think I'm crazy using FreeBSD or Linux. But lots of people use and love these technologies, and a lot of fantastic things are built on these technologies. As crazy as it sounds, the Unix-way and using Unix is a massive part of who I am. Maybe the answer is "oh well our customers don't use it", but I bet there are thousands of developers like me stuck on Windows thinking "damn, I wish I didn't have to work like this". OK, enough about Unix.

Back to the online IDE. I am looking at it and thinking, why doesn't it support basic stuff like changing font size and color scheme? This could even be considered an accessibility feature. I've seen it asked a few times. It would make people *feel* better, and that's important when you're at the screen all day.

Perhaps one way to alleviate the burden on the mbed core team would be to instrument the online IDE in a way that plugins could be developed. This is probably a lot more work however, at this stage, if you didn't do this from the start, than simply adding a way to change color scheme and font.

In anycase, I just wanted to share a couple of my gripes and stimulate a discussion. Any thoughts?

Ash

#include <mandatory guilt-driven statements about mbed being a fantastic thing as it stands etc and not poo-poo-ing the existing work>
08 Mar 2014

I wanted to follow up on this because I've been using the online IDE again since the last post.

I must say that I've gotten wholly used to it again, to the point that I've forgotten the pain and reservations I had.

It's a fantastic tool, but I still maintain it would be vastly improved by increased offline support.

In anycase we're probably buying DS-5 at work, which works on Linux, so I'm looking forward to trying that out as an alternative.

Ashley

09 Apr 2014

ARM just released following info : ARM moves to LLVM open source for future compilers.
Full article at http://www.electronics-eetimes.com/en/arm-moves-to-llvm-open-source-for-future-compilers.html?cmp_id=7&news_id=222920747
It would be nice to get LLVM working with an open-source IDE too (Coide, Eclipse, ...)

09 Apr 2014

Cool. I think that's the right direction.

In the end, I believe it is counter productive for a designer of chips to expect people to pay to develop for those chips. Since presumably, the more accessible it is, the more people will do it, and the more people that do it, the more chip designs they will sell.

I expect that's too simplistic an argument, and somebody needs to crunch the numbers. Unfortunately, those doing the crunching can't look into a parallel universe where they don't sell the compiler, so it's virtually impossible to predict the outcome on the bottom line of selling a compiler, and thus limiting the market who can use your main product, vs supporting an open source compiler instead.

Interesting stuff.