Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

After a few years with PyCharm I'm not excited to manually write wads of elisp to get basic functionality. Instead I pay the JetBrains people a negligible sum per year (and the basic functionality is open sourced now). They are working on a C++ IDE now: http://www.jetbrains.com/objc/features/cpp.html

This is refactoring capability another commercial Emacs plugin had in 2007: http://www.xref.sk/xrefactory/emacs.html



I have similar thoughts here. I have been a tester for their new C++ IDE and previously used emacs. I haven't used emacs since starting the beta test program. It handles modern C++ (11) well but there are still some rough edges (support for all of boost & STL for instance) they are working on. Additionally, it has quick-fixes, code analysis, code generation, and awesome navigation out of the gate....no github repo of configuration required.

That being said, once they release this in production, I'll be buying it on day one and won't look back at emacs.


If you work on a Mac, Xcode is the best IDE for C++. I initially thought that it handled only objective-c, but was quite surprised by how efficient it is in handling C++ syntax.


I primarily use Eclipse CDT (C/C++ Development Tools) these days, because it's free and runs on Linux/Mac.

However, my favorite C++ IDE so far has been Visual Studio with the Visual Assist X plug-in. Visual Studio by itself is not that impressive. But the folks who built Visual Assist X, have done an impressive job. It adds a lot of features to Visual Studio that take it far beyond any IDE.


Because such refactoring is not really needed. You can do easily with sed.

What's so difficult about using Elisp to configure your editor? If you know how to turn on a light switch, you already know how to configure Emacs at its basic level!!! Most of Emacs lisp configuration is like this:

(semantic-mode 1) ;; 1 means turn the feature on

If you want to turn it off:

(semantic-mode 0) ;; 0 means turn the feature off

Most of Emacs plugins work this way, with a few more Elisp code for setting key bindings and other things. Anyway, the package maintainers always give you config Elisp code. Your only work is to copy/paste into your config file and it's done.

Your IDEs appears nice at first since they hide most of the complexity in a menu item called "Options". But when you need to adjust something, and when you click the "Options" menu, things are not so nice anymore. For example, try Eclipse.


If you do that kind of refactoring with sed, I won't believe you take refactoring seriously.


How do you refactor complex C code with myriad of macros? I think we should avoid writing code that having to seriously change its structure later. If we want to refactor, it should be minimal and manageable.

And if you mean seriously refactoring as in this article from Qt Creator: http://qt-project.org/doc/qtcreator-2.6/creator-editor-refac... that includes reformatting code, generating getter/setter or automatically detect and fix mistake for you, then no. I have never write such code in the first place that having to back later and I believe we should not fall into the use cases listed in that article.

My only use case for refactoring is to rename variable/function names.


Refactorings are used to adapt your code to newly acquired knowledge and/or changed requirements. That are things that CAN'T BE PLANNED because you simply don't know them yet. Therefore you can't plan how minimal you'll have to refactor.

Let's take the "rename function" refactoring. You claimed sed was sufficient. What about functions with the same name in different namespaces or different visibilities?

The same goes for move parameter. Sometimes you want to move a parameter so the order adheres to a guideline that you've accidentially forgotten or that newly emerged. Again: What about ambiguos function names?

Refactorings such as pull method up (e.g. to create an interface)/ push method down are probably not even possible with sed.

Those are small and manageable refactorings. But even a small refactoring such as rename function can mess up your code if not done correctly.


With sed, really?!?

I guess you never used refactoring tools. Good luck doing all their use cases with sed.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: