Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
Is there anybody using Fortran on stackoverflow? What IDE do you use and which one do you think to be the best?
Seems lots of people surround me are quite inconvenient with Intel Visual Fortran. Because there is no support for intellisense, refactoring, etc.
What about these ones:
Photran - An Integrated Development Environment and Refactoring Tool for Fortran (this one is everything you need :D)
Oracle Solaris Studio Advanced C, C++ and Fortran development platform
Well, as others already mentioned you could use instead of an IDE a separate text editor. Several come to mind;
VIM (or one of the family) - great editing capabilities, very customizable. Unfortunatelly, it is still an editor
not an IDE. It can be customized in a variety of ways of course, but that gets boring after a while. Also, it's syntax highlighting capabilities are somewhat wrongly made. Also has some problems/confusions with free/fixed format and f77/f90/f95 ...
Emacs - pretty much same advantages/shortcomings as the above.
SlickEdit - has very nice fortran support; unfortunatelly, modifying it is a little annoying and the support forums are not much help.
In general, editors like the above mentioned can be used, but in that case it is best to choose one from the start and stick to it; modifying your work habits as you go; since customizing everything can be time consuming to suit your needs.
Most editors have problems with fortran's syntax, since they're used to C's (where everything that "opens" has a "close").
As far as IDE's goes, your options are not that great:
Silverfrost's compiler used to come with it's own IDE (Plato, if I do remember correctly; it's been a while) - don't know what happened to it, and whether it still is "alive"
Absoft has one of it's own as well (never used it so ...)
There was a specialized fortran editor I once encountered; ya...something; unfortunatelly I cannot remember it's name; maybe someone else will know
One of the best options (which I used to use myself, so I may be biased) is Visual Studio + Resharper, which will add a few editing features to VS's editor. Most of them can also be accomplished with macros.
This post could use some editing but it is written in a hurry, so ...
Geany is nice too. I use it for my small projects in Fortran. Works pretty good too.
http://www.geany.org/
I've never used it, but according to the documentation, the NetBeans C/C++ plugin also adds support for Fortran. I use NetBeans as my IDE for everything except .NET development and love it. If Fortran support is half as good as support for C, C++, Java, Python, Ruby, and PHP, then it is worth looking at.
Many Fortran developers use text editors plus some build automation tool like CMake or SCons. Partially because of lack of well-featured IDE.
However there are some projects. I've tried Photran, Fortran IDE for Eclipse. It has limited support for autocomplete and refactoring.
Also take a look at Code::Blocks IDE for Fortran. I do not like Code::Blocks...
We use an in-house extension to visual studio to get code completion for our fortran code and to assist us with debugging. But even so there is a lot of room for improvement. Our main issues are:
instability of visual studio. An error in the debugged program can crash VS.
sometimes VS shows corrupted stacktraces (while WinDBG shows it correctly).
debugger wont show values of variables of type CHARACTER(LEN=:), ALLOCATABLE
Edit and Continue not supported
We used Sun workshop and it was very good, but there is no windows version.
jedit has a nice fortran mode and you can define keybindings for the compiler and debugger.
for small to medium sized projects it is quite nice. it also has svn and multiple files search. also very nice is hypersearch where you get a list of you matches and you can go to the position with a single click. another goodie is a plugin for gdb and for ctags. you can very easily script all functions using jython. it feels a little bit like a modern version of emacs that uses python instead of lisp. check out the plugin manager. it lets you download all the plugins from the server and installs them for you (like in eclipse).
http://www.jedit.org
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I like F# but sometimes I need something light and cross-platform and without .NET for sure.
I tried to use OCamL many times but seems like I just can't start it.
Installed IDEA, added OCamL plugin -> Doesn't work
Installed eclipse ODT plugin -> Can't launch even config OCamL compiler - too complicated
Even had tried NetBeans plugin a long time ago but even can't deal with it.
So, for now, I'm using ocamlc -o "main.exe" "main.ml" from the command shell and different light editors. I don't use Vim or Emacs, I'm using nano and I have a habit of usage full-featured IDEs.
I found various documentation (this is looking like the best to start http://caml.inria.fr/pub/docs/oreilly-book/html/index.html for me) but still being confusing when looking for something a bit specific alike sqlite access. found this: http://neugierig.org/software/ocaml/sqlite/ with strange api annotation and no examples. And all the documentation about IDE usage I found are outdated or doesn't work.
Addition subquestion: some people told me "don't use OCamL, it's a dead language for students with low libraries support and seems like dying, use python or ruby instead". But I like the beauty of OCamL. I want to give it a try. Tell me if that is normal to use OCamL for production code today?
thank you.
There is TypeRex, a new development environment for OCaml. Here is a summary of TypeRex features:
Improved syntax coloring
Auto-completion of identifiers (experimental)
Browsing of identifiers: show type and comment, go to definition, cycle between alternate definitions, and semantic grep;
Strictly semantic-preserving, local and whole-program refactoring:
renaming identifiers and compilation units
open elimination and reference simplification
Robust w.r.t. not-recompiled, possibly unsaved buffers
Scalable (used regularly on a few hundreds of source files)
There are some screenshots available on the website. The first release candidate is out since yesterday.
EDIT: The first release (v1.0) is out now :-)
There are a few options:
Tuareg for emacs was already mentioned: http://tuareg.forge.ocamlcore.org/
vim has a few options for OCaml integration, with one good example available here: http://www.ocaml.info/software.html#vim
OcaIDE seems to be the best option for Eclipse: http://www.algo-prog.info/ocaide/
Geany, Komodo Edit and a number of other editors have syntax highlighting support for OCaml and some extra IDE-like features which are independent of the programming language being used. Most of these have limited OCaml-specific support.
OCaml is not dead. Some of the more vocal industry users of OCaml are XenSource/Citrix and Jane St. Capital. The language does not receive the same public and community evangelism that some other languages receive.
It's been years, but I really liked emacs' tuareg mode http://tuareg.forge.ocamlcore.org/
But if you're afraid of emacs, then it's not the right tool.
I specially like the shell integration and the possibility to "throw" a function you're developping in the shell and then test it.
EDIT For the subquestion, OCaml seems dead, and it's a pitty. However you cannot compare it with ruby/python. I'd say it's main competitor is Haskell which seems to be growing in popularity.
Googling "ocaml ide" shows now http://camelia.sourceforge.net/ as the first result. Haven't tested it though, so I can't really say if it is recommendable or not.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
This may be too opinionated, but what I'm trying to understand why some companies mandate the use of an IDE. In college all I used was vim, although on occasion I used netbeans for use with Java. Netbeans was nice because it did code completion and had some nice templates for configuration of some the stranger services I tried.
Now that my friends are working at big companies, they are telling me that they are required to use eclipse or visual studio, but no one can seem to give a good reason why.
Can someone explain to me why companies force their developers into restricted development environments?
IDE vs Notepad
I've written code in lots of different IDEs and occasionally in notepad. You may totally love notepad, but at some point using notepad is industrial sabatoge, kind of like hiring a gardener who shows up with a spoon instead of a shovel and a thimble instead of a bucket. (But who knows, maybe the most beautiful garden can be made with a spoon and a thimble, but it sure isn't going to be fast)
IDE A vs IDE B
Some IDE's have team and management features. For example, in Visual Studio, there is a screen that finds all the TODO: lines in source code. This allows for a different workflow that may or may not exist in other IDEs. Ditto for source control integration, static code analysis, etc.
IDE old vs IDE new
Big organizations are slow to change. Not really a programming related problem.
Because companies standardize on tools, as well as platforms--if your choice of tools is in conflict with their standards then you can either object, silently use your tool, or use the required tool.
All three are valid; provided your alternative doesn't cause other team-members issues, and provided that you have a valid argument to make (not just whining).
For example: I develop in Visual Studio 2008 as required by work, but use VS2010 whenever possible. Solutions/Projects saved in 2010 can't be opened in 2008 without some manual finagling--so I can't use the tool of my choice because it would cause friction for other developers. We also are required to produce code according to documented standards which are enforced by Resharper and StyleCop--if I switched to a different IDE I would have more difficulty in ensuring the code I produced was up to our standards.
If you're good at using vim and know everything there is to know about it, then there is no reason to switch to an IDE. That said, many IDEs will have lots of useful features that come standard. Maintaining an install of Eclipse is a lot easier than maintaining an install of Vim with plugins X, Y, and Z in order to simulate the same capabilities.
IntelliSense is incredibly useful. I realize that vim has all sorts of auto-completion, but it doesn't give me a list of overloaded methods and argument hints.
Multiple panes to provide class hierarchies/outlines, API reference, console output, etc.. can provide you more information than is available in just multiple text buffers. Yes, I know that you have the quickfix window, but sometimes it's just not enough.
Compile as you type. This doesn't quite work for C++, but is really nice in Java and C#. As soon as I type a line, I'll get feedback on correctness. I'm not arrogant enough as a programmer to assume that I never make syntax errors, or type errors, or forget to have a try/catch, or... (the list goes on)
And the most important of all...
Integrated Debuggers. Double click to set a break point, right click on a variable to set a watch, have a separate pane for changing values on the fly, detailed exception handling all within the same program.
I love vim, and will use it for simple things, or when I want to run a macro, or am stuck with C code. But for more complicated tasks, I'll fire up Eclipse/Visual Studio/Wing.
Sufficiently bad developers are greatly assisted by the adoption of an appropriately-configured IDE. It takes a lot of extra time to help each snowflake through his own custom development environment; if somebody doesn't have the chops to maintain their own dev environment independently, it gets very expensive to support them.
Corporate IT shops are very bad at telling the difference between "sufficiently bad" and "sufficiently good" developers. So they just make everybody do the same thing.
Disclaimer: I use Eclipse and love it.
Theoretically, it would decrease the amount of training needed to get an unexperienced developer to deal with the problems of a particular IDE if all the team uses that one tool.
Anyway, most of the top companies don't force developers to use some specific IDE for now...
I agree with this last way of thinking: You don't need your team to master one particular tool, having team knowledge in many will improve your likelyhood to know better ways to solve a particular roblems.
For me, I use Visual Studio with ReSharper. I cannot be nearly as productive (in .Net) without it. At least, nobody has ever shown me a way to be more productive... Vim, that is great. You can run Vim inside of Visual Studio + R# and get all the niceties that the IDE provides, like code navigation, code completion and refactoring.
Same reason we use a hammer to nail things instead of rocks. It's a better tool.
Now if you are asking why you are forced to use a specific IDE over another, well that's a different topic.
A place that uses .NET will use Visual Studio 99% of the time, at least that's what I've seen. And I haven't found anything out there that is better than Visual Studio for writing .NET applications.
There is much more than code completion into an IDE:
debugging facilities
XML validation
management of servers
automatic imports
syntax checking
graphical modeling
support of popular technologies like Hibernate, TestNG or Spring
integration of source code management
indexing of file names for quick opening
follow "links" in code: implementation, declaration
integration of source code control
searching for classes or methods
code formatting
process monitoring
one click/button debugging/building
method/variable/field/... renaming
etc
Nothing to do with incompetence from the programmers. Anybody would be A LOT less productive using vim for developing a big Java EE application.
How big were you projects at college? A couple of classes in a couple of files? Or rather a couple of hundreds of classes in a couple of hundreds of files?
Today I had the "honor" of looking at a file in a rather large project where the programmer opted to use vi (yes vi, not vim) and a handcrafted commandline compiler call (no make). The file contained on function spanning about 900 lines with a series of if-else-if-else-constructs (because that way you have all your code in one place!!!!!!). Macho-Programmer at his finest.
OK there are very good reasons for enforcing a particular toolset within a production environment:
Companies want to standardize everything so that if an employee leaves they can replace that person with minimal effort.
Commercial IDEs provide a complex enough environment to support a single interface for a variety of development needs and supporting varying levels of code access. For instance the same file-set could be used by the developer, by non-programmers (graphics designers etc.) and document writers.
Combine this with integrated version control and code management without the need of someone learning a particular version control system, all of a sudden IDEs start to look nicer and nicer.
It also streamlines maintenance of build systems in a multi-homed environment.
IDEs are easier to give tutorials to via phone or video, and probably come with those.
etc. etc. and so forth.
The business decision making behind enforcing a standardized environment goes beyond the preference of a single programmer or for that matter perhaps the understanding of the programming team.
Using an IDE helps an employee to work with huge projects with minimal training. Learn a few key combos - and you will comfortably work with multi-thousand-file project in Eclipse, IDE handles most of the work for you under the hood. Just imagine how many years of learning it takes to feel comfortable developing such projects in Vim.
Besides, with an IDE it is easy to support common coding standards across the entire team: just set a couple of options and an IDE will force you to write code in a standardized way.
Plus, IDE gives a few added bonuses like refactoring tools (especially good in Eclipse), integrated debugging (especially good in Visual Studio), intellisense, integrated unit tests, integrated version control system etc.
The advantages and disadvantages of using an IDE also greatly depends on the development platform. Some platforms are geared towards the use of IDEs, others are not. As a rule of thumb, you should use IDE for Java and .Net development (unless you're extremely advanced); you should not use IDE for ruby, python, perl, LISP etc development (unless you're extremely new to these languages and associated frameworks).
Features like these aren't available in vim:
Refactoring
Integrated debuggers
Knowing your code base as an integrated whole (e.g., change a Java class name; have the change reflected in a Spring XML configuration)
Being able to run an app server right inside the IDE so you can deploy and debug your code.
Those are the reasons I choose IntelliJ. I could go back to sticks and bones, but I'd be a lot less productive.
As said before, the question about using an IDE is basicaly productivity. However there is some questions that should be considered by the company when choosing a specific IDE. that includes:
Company culture
Standardize use of tool, making it accessible for all developers. That easies training, reduces costs and improve the speed of learn curve.
Requirements from specific contract. As an example, there are some development packages that are fully supported (i.e. plugins) by some IDE and not by anothers. So, if you are working with the support contract you will want to work with the supported IDE. A concrete example is when you are working with not common OS like VxWorks, where you can work with the Workbench (that truely is an eclipse with lot of specific plugins for eclipse).
Company policy (and also I include the restriction on company budget)
Documentation relating to the IDE
Comunity (A strong one can contribute and develop still further the IDE and help you with your doubts)
Installed Base (no one wants to be the only human to use that IDE on the world)
Support from manufacturers (an IDE about to be discontinued probably will not be a good option)
Requirements from the IDE. (i.e. cross platform or hardware requirements that are incompatible with some machines of the company)
Of course, there is a lot more. However, I think that this short list help you to see that there is some decisions that are not so easy to take, when we are talking about money and some greater companies.
And if you start using your own IDE think what mess will be when another developer start doing maintenance into your code. How do you think will the application be signed at the version manager ? Now think about a company with 30+ developers each using its own IDE (each with its own configuration files, version and all that stuff)...
http://xkcd.com/378/
Real programmers use the best tools available to get the job done. Some companies have licenses for tools but there's nothing saying you can't license/use another IDE and then just have the other IDE open to copy/paste what you've done in your local IDE.
The question is a bit open-ended, perhaps you can make it community wiki...
As you point out, the IDE can be useful, or even a must have, for some operations, like refactoring, or even project exploring: I use Eclipse at my work, on Java projects, and I find very useful to get a list of all occurrences of the usage of a public method or a class in a project. Likely, I appreciate to be able to rename it from where it is defined, and having all these occurrences automatically updated.
The fact I have the JavaDoc displayed when hovering over a name is very nice too. Like autocompletion, jump to a class name, etc.
And, of course, debugging facilities...
Now, usage of Eclipse isn't mandatory in our shop! Some years ago, some people used the Delphi IDE (forgot its name), I tried NetBeans, etc. But I think we de facto standardized on Eclipse, but it was a natural evolution rather than a company policy. And we often just open files in a text editor when we need a quick update...
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Is there a good IDE to work with VHDL projects ?
Or are most of the professionals working with emacs/vim/notepad++ ?
I use Emacs+VHDL-mode which is great if you don't mind (or have already climbed) the learning curve of Emacs.
Alternatively, you could try Sigasi-HDT which is Eclipse-based and has more GUI. And some more powerful refactoring tools by the look of it.
I have been using Sigasi HDT since it was released in january (I think) and am very pleased with it so far. Previously I used Vim for all my editing (C or VHDL), but since I switched to Sigasi I have not looked back. The Eclipse based plugin is much more than just syntax highlighting. The auto-completion of components and entities is a real time-saver and you avoid a lot of errors. You can download a free trial from their website (http://www.sigasi.com) and I encourage you to give it a try with grlib (http://www.gaisler.com) to see the real power of the plugin.
Maybe Xilinx ISE or Altera Quartus.
I once tried - at least I wanted to try - Altera Quartus, but I soon switched to a normal editor and took GHDL for simulation.
But I am no professional, so I suppose they are using some of the former two products.
Engineers in large semiconductor companies are using emacs/vim for code editing.
Integrated Development Environment doesn't make much sense there, since a project is a few thousand HDL files taken from different places on a *NIX network, setup scripts for a dozen different tools, and cron jobs to do frequent builds.
For simpler FPGA projects developed on Windows I've seen people using Borland CodeWright, UltraEdit, and Crimson Editor.
I've been using Notepad++ along with the free vendor tools to edit my VHDL on Windows.
My best bet is to use VIM to do whatever i need to for VHDL formatting. VIM has an extremely powerful facility to develop custom plugins, and no amount of IDE hopping will give you all the customization you would ever need.
Things like signal names < 20 characters, procedure lengths < 100 lines, no use of linkage ports -- all of these can be coded in VIM with minimal effort. You could actually run vcom or ncvhdl from within VIM and then see where the errors are.
Having said all this, you might want to take a look at what Sigasi has to offer. If you need more help on this, let me know -- it'd be fun coding a VIM plugin.
Emacs + VHDL mode + a compiler / simulator + source control.
The VHDL mode is configured to use the compiler to compile the design and optionally run the simulation.
Emacs can link with the source control to correctly check in, diff and tag.
I personally like this set up because the editor is open source and I can use it anywhere (Mac, Linux, Windows). The compiler / simulator can be anything from a free download (FPGA vendor sponsored Modelsim or GHDL) to a grid engine. Once set up, it pretty much becomes invisible.
Simplifide also has an eclipse plugin which supports VHDL, Verilog and SystemVerilog which contains all of the standard IDE features and more.
It can be downloaded at http://simplifide.com
I'm just using Scite, like for most other coding.
Some things in Scite make my VHDL coding pleasant:
Coloring is easy to set up. Either download a ready .properties file or modify the Ada mode.
Scite has a snippets plugin that's very useful for VHDL. All those boring process and architecture definitions are generated automatically for me with a couple of key-presses.
Scite is easy to customize with external scripts: I have scripts for compiling the current file, for fixing indentation, for listing all processes and so on, the possibilities are limitless.
Besides the big ones Sigasi and Simplifide there is also ZamiaCad a free VHDL IDE: http://zamiacad.sourceforge.net/web/
It depends on the kind of project you are developing. Modelsim provides a good IDE but the code editor lacks the advanced features we are accustomed to use. I use VIM to write the code, and Modelsim to simulate, debug etc...
There's another VHDL-IDE, it's a plug-in for Visual Studio, but as far as I could see, it is also available as standalone version (ie, you don't need a Visual Studio license). It seems relatively new, but so far I really like it.
http://www.vide-software.at
I switched to use Vim because it has a very large list of plugins for almost any language (I believe Emacs do also). You might not get the best VHDL IDE ever with it, but you get a familiar interface for every code and non-code you must edit. Plus, as you move between companies, you can take your environment with you.
For the ones using Vim, check vim-hdl. It's a plugin I'm working on that provides syntax checking based on simulators/compilers. I'm using daily with ModelSim and so far works nice.
Emacs with the appropriate language mode is my vote. Basic editing is easy enough to learn and there are a lot of example config files out there.
Kevin.
I'm using Xilinx ISE for educational purposes, it works really well. And it has everything. After applying for a student license, the student version it free to use, but it takes up a lot of space. The installation file alone is more than 6 gb. The book we use for school is referring to xilinx special properties. (“FGPA Prototyping by VHDL Examples”). I'm also programming on a nexsys 3 spartan 6 testboard, and I'll be using xilinx for another year, but when I finish the course I’m gonna look for something smaller. Happy to read about the lightweight alternatives.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
What do you consider the most rapid RAD environment for a working prototype? Not for debate.
language
platform
IDE
DB
(personal note)
Thank you.
P.S.1 I was pretty happy with PERL for back-end prototyping... I get stuck when dealing with the UI... it doesn't seem to come as easy...
It's all pretty subjective I guess, but as you asked 'what do you consider', so...
Delphi 7 onwards (technically object pascal or Delphi language, I guess)
Windows 2003/XP
version 7 is the classic, newer ones don't seem as easy to prototype stuff in (to me)
SQL Express
in comparison I've used VB6, MS VC++ (from a long time ago), FoxPro/Windows and Visual FoxPro, and a very small smattering of VS2005 (C#). For me, Delphi is the all-round king every time. :-)
For prototypes on Windows, Visual Basic is hard to beat. If you need to suppoort another platform (or multiple platforms), then Tcl/Tk is fairly productive, as well.
I've always considered Perl to be my prototyping language of choice, for a few reasons:
CPAN - There's a module for just about anything.
It's easy to create hacks to mimic, fake or do something quick and dirty.
It works everywhere.
I think "most rapid" is heavily subjective. A developer with many years in VB will likely be fastest at prototyping in VB. A Java developer in Java. Ruby in Ruby. The "most rapid", then, is going to be heavily skewed by the assets (code libraries, developer experience and tools) you already have in house.
What you define as a "prototype" also heavily affects things. Is a set of pseudo-working screen shots mocked up in Flash to have some clickability for navigation enough? What is the required feature set and what is the target audience for the prototype?
As you can see "best" is going to vary pretty widely. It's probably close to certain that the language will be high-level and the IDE tools are going to have nice UI designers (assuming the prototype has a UI). If you have a lot of DB work, then database wizards that do the SQL grunt work for you will save time and generate reasonable, if not optimized, objects. The platform would likely be whatever platform the prototype should be for - after all prototyping a Windows app under Linux or a Symbian app under Palm OS probably won't give you too much benefit.
VFP is great for prototyping. I've seen posts (sorry, don't have links) from Microsoft teams where they say WPF allows fast prototyping for them.
Enthought Python Distribution. You create the model of your problem in python and then you say "create a UI for that" in one line of code. If you don't like some parts of the UI, you override the defaults for those parts (and nothing else).
Doesn't get faster than that if you're doing a Desktop app.
The resulting prototype will work on Windows, Linux and Mac.
If you're looking for a web RAD, I suggest to give Grails or TurboGears a try. TurboGears is easier to use, Grails gives you access to the vast space of Java web frameworks (hard to beat).
I'd say Python with wxPython
I find that prototyping using the Netbeans GUI builder gives me a great start. I'm a Java programmer mostly though.
Try out Axure RP Pro.
We did give it a try and found that it to be really very good. It generates the whole prototype in HTML with a few JavaScripts so it becomes easy to distribute prototypes.
Do check it out.
Handcraft
When you prototype any GUI interactively in the browser, you can go from as low or high fidelity as you want. Handcraft is focused exactly on prototyping, so it does a whole lot less than IDE's intentionally.
For working prototype:
non-gui: python
gui: ruby on rails
For mockups don't use IDE but some specialized mockup tool, read this here on SO: Whats the best way to create interactive application prototypes?
For hybrid approach (mockups then code): QT designer is the only viable option I found, due to it's specific architecture
There you go.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I know and have Xcode, but I was wondering if there were any other complete development environments that support Objective-C? I'm not looking for solutions with vim or emacs, nor editors like BBEdit that support syntax highlighting, but a full fledged IDE with:
code completion
compilation
debugging
refactoring
Extra points for being cross platform, supporting vi key bindings and supporting other languages.
Note:
I've updated and accepted my answer below as Jetbrains has released Early Access for AppCode, their new Objective-C IDE. Since this has been a fairly popular question, I thought it worthwhile to update the information.
I recently learned that Jetbrains the make of my favorite IDE (Idea) may support Objective-C (though it is unclear how much it will work for iPhone/iPad development). See the thread here for early discussion on this.
In the last year or two, they have started adding additional language support both in their flagship IDE as well as specialized IDEs (for Ruby, Python, PHP). I guess this is just another step in the process. I for one would love to have another option other than XCode and I couldn't think of one that I'd love more.
This is obviously vaporware at the moment, but I think it is something to keep an eye on.
This is now a real product, albeit still in Early Access. See here for a the blog on this new product, which will give you pointers to check out the EAP.
UPDATE: AppCode has now been released and offers a true alternative to using Xcode for Objective-C and iPhone/iPad/Mac development. It does still rely on Interface Builder for layout and wiring of GUI components and uses the iOS simulator, but all coding, including a slew of refactorings, smart templating and static analysis, is available through App Code.
Textmate is an editor like BBEdit but it has the ability to run commands such as compilation, debugging, refactoring (though it will do so via XCode). It also has code completion.
In addition, you can write your own commands for Textmate that you can then run.
I have been searching for something like this that does NOT run on mac for quite a few months now. Unfortunately I think that due to the relative obscurity of the Objective-C language that nobody has ever bothered producing such a full featured IDE for it. Until now, and we only have Xcode.
Using JBuilder I fell in love with the auto-completion and displaying the function 'hints' on the screen while I type. I am that sort of person who remembers the 'ideas' better than the actual syntax and really benefits from knowing right then and there that the code I typed was correct, not having to find out a minute later at compile time. And then to have to try and figure out if I just misspelled something, or if I truly made a conceptual error due to a misunderstanding of proper use of the language. Code completion and hints have always saved time on this for me.
I know some people may look down on this and say the feature is unnecessary if you know what you're doing, but I never claimed to be better than anyone else.
I may have to just give up and try and get OS X running on my PC. Which doesnt bother me in the least, just the rebooting to go back and forth to windows. I've tried to run it virtualized under VMWare but XCode kept crashing :( That reminds me I am going to google 'leopard vmware' and see if any progress has been made in that area.
Another problem in designing a full code-completion system with objective C is that the syntax is a little more forgiving, I dont know the exact technical term (strongly typed?) it is much harder to say exactly what sort of object belongs in a certain parameter and ANY object can be sent ANY message whether it implements that function or not. So you can spell a function name wrong, but it doesnt necessarily mean you made a syntax error... maybe you mean to call a function of that OTHER name and you just want nothing to be done if the function is not implemented by your object.
That's what I would really like to see for Objective-C, is an IDE that once it notices you are sending a message to an object, it displays a list of methods and function definitions that the object is known to accept, and walks you through filling in the parameters.
I think you would waste less time by sticking with Xcode rather than looking for another IDE if you want to develop for the Mac (or iPhone).
Apple made a lot of effort to kill any competitor in that area to make sure any developer wanting to develop for the Mac platform use Xcode and only Xcode.
It might not be the best IDE but it does work well and it is the IDE developers at Apple are using. Somehow it does its job. The frameworks and the documentation are very well integrated.
I use TextMate a lot and also SubEthaEdit but they are not full IDE as you’ve described above.
Best Regards.
Check out JetBrains' new IDE called "App Code". It's still in the Early Access Program, but even with the Early Access bugs it is hands-down better than xcode 4. I've been using it for commercial iPhone and iPad development.
http://www.jetbrains.com/objc/
I would like to second Troy's answer and note that JetBrains has AppCode in early access, so you can try it for free. It has the familiar UI of their other products, and yes, it supports vi! So far it has been very good. I have run into a few issues, and a few vi-isms that don't work quite right, but it is still better than suffering with Xcode. I do text editing with syntax completion in AppCode, but switch back to XCode to get into the GUI builder which is actually quite good in Xcode.
If you are an old vi-guy like myself, it is invaluable.
The short answer is: No. There are thousands of IDEs but Xcode is the only one which you seriously can name IDE. I suggest you have a look at the tries of GNUStep (in form of Projectcenter, Gorm) and then you can imagine the state of affairs.
I believe KDevelop is the only full IDE that supports Obj-C, but I'm not even sure how fully it supports it, having never used it myself. Worth a shot, maybe.
There are a few programmers text editors that support Objective-C, but I like Editra, mainly because I also write Python on Windows\Nix and it has great features. Editra runs well on all platforms and has a nice plug-in that supports Mercurial, GIT, and Subversion if you need them. Another nice thing, its written in Python. Editra Home
Found another, though it sounds less than ideal:
ActiveDeveloper - doesn't appear to have active support (last update was in 2006). Mac only.
KDevelop sounds like it only supports Objective-C syntax and only through its C support. I'm going to check it out anyway.
Textmate has a couple screencasts for Objective-C (here and here). It is Mac only, but otherwise looks pretty good. It is hard to tell from the screencast how strong the integrated support is as it seems to just have a lot of scripts to handle the code. Also, I can't tell if it does true code completion or just expansion for snippets.
So it doesn't look like there is anything out there that hits everything. I'll probably do most of my development on Mac, so I'm thinking I'll try out TextMate with XCode to see if it is any better than straight XCode. I'll take a quick look at KDevelop.
Thanks.