4coder»Blog

4coder: Officially Embracing a New Direction

For a while now I've been thinking things over, and I've decided to embrace a new direction for 4coder.

To anyone using 4coder, don't worry I am not about to leave you without an editor. This is actually not really a big change for users, because the project has been naturally pushing in this direction for a while. I just haven't officially embraced and announced the change until now.

Basically what I've come to realize is that the original vision of code intelligence that I set out to experiment with has fallen away. There are a few reasons for this.

1. Lots of people are exploring the low level space with new languages in the hopes of replacing C/C++. It seems like a waste to specialize in code intelligence for a language that might get replaced with one or more better languages soon.

2. Even if code intelligence in C/C++ would increase productivity for some time, I don't see it as the thing that would have the most value. When 4coder first came to Linux, it was the first time I could sort of program on Linux with confidence, because for once my editor was exactly the same there. I still can't do too much on Linux because a lot of other tools, such as shell scripts, the debugger, and the compiler are very different. Even if the Linux alternatives for each of those are better, the fact that they are different from what I use most of the day creates friction that slows me from freely moving between them without a productivity penalty.

3. Finally even setting aside the problem of cross platform friction, I think there are a lot more productivity gains to be made by having an integrated debugger with the customization power of 4coder, which is why I am excitedly watching as Lysa tries to solve the back end part of the cross platform debugging problem.

Therefore the new vision for 4coder is to make a programming environment with the features to create great extensions and customizations while keeping an eye on making everything work across platforms. It has taken me a while to be sure this is the right thing to do, but at this point I have become very confident.

I am very excited about this vision for 4coder, and I am interested to know what the community thinks about these issues.

Thanks for the support everyone!
Andrew Chronister,
In my view, as long as 4coder remains a great open platform for writing fast, low-level editor extensions, code intelligence is something that can easily be added by you or others as a plugin without the problems that plugins in other editors often have (requiring specific runtimes / languages be installed, slowing down the editor, etc). For that reason, I for one am fully supportive of this direction for 4coder.

Cheers, Allen!
Allen Webster,
Thanks. Staying open and low level seems like the #1 priority, and I too am hopeful that these other nice things will someday follow from that.
Given that I'm looking for a better emacs (a customisable editor that does not make me suffer elisp and a very weird api) and not necessarily for a pure c++ editor, this choice makes me happy.
Mikkel ,
A cross-platform, cross-language, low-level editor? FUCK YEAH!@#!!@@#!@#
Simon Anciaux,
What were the features code intelligence would have allowed ?
Allen Webster,
mrmixer
What were the features code intelligence would have allowed ?


Things like, "pull out the block of code into a function", "group these variables into a struct", "rename this thing", "change . to -> or -> to . automatically as appropriate", etc.
Thomas Kingsvik,
Mixed bag imo. New languages will take quite a while to actually become relevant, and C/C++ becoming irrelevant is not happening in a decade, so focusing on the new ones with the aim of productivity is putting the cart before the horse: by the time productivity in those languages become a major concern, you should've already had plenty of time to implement that.

On the other hand, the integration of code editing and debugging is a major concern. The reason I use VS is because it's the only thing out there that combines the two most time-consuming parts of programming in any complete way: editing code and debugging code. Having the compiler integrated with the editor is nice, but just alt-tabbing to a terminal and compiling there is an incredibly minor switch compared to going from Emacs to the VS debugger.

I'm not really sure exactly how Lysa is going to work, but any step that 4coder takes towards integrating editing and debugging better than VS is a big plus in my book.
Jeremiah Goerdt,
brothir
Mixed bag imo. New languages will take quite a while to actually become relevant, and C/C++ becoming irrelevant is not happening in a decade, so focusing on the new ones with the aim of productivity is putting the cart before the horse: by the time productivity in those languages become a major concern, you should've already had plenty of time to implement that.

On the other hand, the integration of code editing and debugging is a major concern. The reason I use VS is because it's the only thing out there that combines the two most time-consuming parts of programming in any complete way: editing code and debugging code. Having the compiler integrated with the editor is nice, but just alt-tabbing to a terminal and compiling there is an incredibly minor switch compared to going from Emacs to the VS debugger.

I'm not really sure exactly how Lysa is going to work, but any step that 4coder takes towards integrating editing and debugging better than VS is a big plus in my book.


I think that the openness and customizability will be used by people using 4coder who want better tools for their respective languages. It sounds like Allens major goal is to foster this, not necessarily put the cart before the horse.

4coder seems like the best thing going for getting tools to work the same across platforms and allowing extensibility. We're just getting started and things will only get better from here.
Daniel Bross,
This is great news.
Using 4coder for the last month or two has been a breath of fresh for productivity and I'm looking forward to seeing what the future will bring.
Your focus change seems like a good choice.
Thomas Kingsvik,
CaptainKraft
I think that the openness and customizability will be used by people using 4coder who want better tools for their respective languages. It sounds like Allens major goal is to foster this, not necessarily put the cart before the horse.

4coder seems like the best thing going for getting tools to work the same across platforms and allowing extensibility. We're just getting started and things will only get better from here.


I'm not saying that Allen's goal is to put the cart before the horse, but that focusing on a wide spectrum rather than narrowly improving C/C++ features is putting the cart before the horse. For instance, if he spends a month working on some thing that increases productivity for non C/C++ languages by 10 % and productivity for C/C++ by 1 %, rather than spending a month working on something that increases productivity for C/C++ by 2 % and no other benefits, the first option will be worse than the second in the long term. Both should be done, but doing the second before the first is "the optimal" sequence. That's just my opinion, though.
Mr4thDimention
mrmixer
What were the features code intelligence would have allowed ?


Things like, "pull out the block of code into a function", "group these variables into a struct", "rename this thing", "change . to -> or -> to . automatically as appropriate", etc.


Honestly I don't use any of those things. Rename would be nice, but as long as I can search and replace across an entire project with a yes/no option its all I need. I have to say I'll want try Johnathan Blow's new language when it comes out, and it would be nice to be able to use 4Coder.