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 11 years ago.
I am just starting at a job in which I will be using a lot of ColdFusion. What is the best IDE/Editor to use?
I'd like to provide my personal reasoning behind why you might choose any of these editors (at least the ones I'm familiar with). Just saying "use this, use that" is not at all helpful. To large degree, the question is wrong. There's rarely a "best IDE" for a language; rather, there are multiple environments, each suiting particular needs. Here goes:
1) Dreamweaver
Why you would use it: its history as a designer tool makes it much easier for "non-coder" types to start cranking out websites. If you're a solo developer building a lot of "Tom's Corner Store" type of sites, even if they require some CF Coding (mailing list, subscribers, current specials, light content management, etc), its design tools, "template" features, and ease-of-deployment (ftp) make it an attractive choice. It has good-enough code coloring and code completion for the built-in CF tags and functions. It can interrogate user-defined functions in the same page. It has excellent CSS support. You can find a wealth of extensions, too. It's pretty stable and, in my experience, hasn't been very "crashy". It will do a fair amount of code generation for you as well (whether that code is "good" is debatable). All in all Dreamweaver is incredible software for web site designers.
Why you wouldn't use it: It is not free, and it is certainly not a "coder's editor". While it provides for extensions, they're typically interface-focused (javascript validation, etc), unlike say Eclipse plugins, which can run the gamut. For large projects, it simply does not have the code navigation features that many coders come to expect. It's web-focused. So if you're a polyglot, or even just like to dabble in compiled languages (java, etc), then you'll need to keep another editor on hand for those tasks.... you won't be able to do it all in one place. ColdFusion unit testing support is nonexistent in Dreamweaver. There is no step debugging for ColdFusion.
2) CFEclipse plugged into Eclipse.
Why you'd use it: CFEclipse is going on 6 years old now and has matured significantly. It's been quite stable for the last few years and most crashiness has been due to Eclipse itself and not CFEclipse (which was not true in the early days). Recently CFEclipse has seen an infusion of fresh blood and features are being added to make coding in it even more productive. It contains a wealth of keyboard shortcuts, many of the toolbar features people love from ColdFusion Studio days, and Eclipse's in-built code navigation features (namely, Ctrl-Shift-R for finding files quickly).
It has content assist for native CF Tags and functions, and some support for in-page variables, though that's never worked all that well. It does not support in-page functions, nor does it provide native true component insight (i.e. insight into components that you write and use in other code). It will support component insight to some extent with Dictionaries, but even then, it requires a lot of work on the part of the dictionary creator. Most people find dictionaries too much work to maintain, in my experience.
The lastest version of CFEclipse contains the best CFML formatting you'll find.
For me, "method explorer" and "Snip Tree View" -- particularly keyboard shortcuts for inserting snippets -- have been big productivity boosters.
If you work with ColdSpring, ModelGlue, Mach-II, ColdBox, and other frameworks with xml configuration files, CFEclipse's Framework Explorer is brilliant.
Because it's a plugin to Eclipse, you can do everything else you'd want to do in Eclipse. You wanna code java? You can. You want webservice support? you got that. You want to do step debugging, you can do so with the free Adobe-provided extensions for Eclipse.
The large plugin ecosystem is one of the most attractive features of Eclipse, and you shouldn't discount this when deciding on an editor. For example, I would not want to work without Mylyn, which integrates with issue tracking and in my experience has transformed the way I work, much for the better.
Eclipse's version control system support is excellent as well. Subversion is well supported; there's a VSS plugin; and recently a git plugin (if not two) has been accepted into the Eclipse foundation so we'll see native git support very soon (you can get it now with a plugin).
Eclipse's ANT support is excellent.
You can easily plug the MXUnit Eclipse plugin into Eclipse for unit testing your CFML (full disclosure: I contribute to MXUnit).
Finally, I have full confidence that the folks working on CFEclipse -- Denny, Mark, Jim, Peter, et al. -- will continue to work toward keeping CFEclipse as the best open source CFML IDE available. These are some of the brightest minds in the ColdFusion community and are passionate about their mission. If you choose to use CFEclipse, you are not choosing to use an IDE that will be supplanted by ColdFusion Builder. This project is in good hands.
Why you wouldn't use it: it's a code IDE, not a design tool like Dreamweaver. It's not perfect... code assist can be too aggressive in its suggestions. Eclipse itself, especially when you pile it up with all kinds of plugins, can get unstable on lesser machines. Finally, people who don't like the "Project" view of the world often have complaints about it because they're used to working directly with the file system view of the world. Its deployment support is nowhere near as simple as Dreamweaver, though you can find plugins that get close.
3) ColdFusion Builder
Why you'd use it: all of what I said previously about Eclipse itself applies to CFBuilder when used as a plugin to Eclipse. I cannot speak to the Standalone version because as of this writing, it still doesn't support plugins very well. This will most surely be fixed by the time it is released, but I don't want to speculate on what the Standalone may or may not do.
One of CFBuilder's big draws is "Extensions". These are a way to plug in CFML code into your editor. It's hard to describe, so I'd suggest googling for "ColdFusion Builder Extensions", and you'll most likely be amazed. Adobe's Terry Ryan has created "Apptacular" for scaffolding applications from a database, and Brian Rinaldi has a series of posts on building CFBuilder extensions. These are huge and will prove themselves to be a developer's best friend after CFBuilder is released.
CFBuilder's deployment support is, in my opinion, on par with if not superior to Dreamweaver's.
CFBuilder does not require an additional plugin to do step debugging. Just hit the debug button and off you go.
CFBuilder contains true component insight, meaning that it can introspect components you write and provide ctrl-space content assist. It can be wonky, however, and does require some configuration. But please remember that as of now, CFBuilder is still in beta. My best guess is that it'll be at least a few versions until all the kinks are worked out of this feature. Still, it's a big productivity and learning booster to get content assist on your own components.
CFBuilder provides a "Servers" view for stopping/starting your CF Server. It's built on Aptana and so contains the Aptana "tail log" view, which is great for watching log files. Just like CFEclipse, it has a Snip Tree View.
The CFBuilder "vision" is led by Adobe's Adam Lehman. He's passionate about CF and is a force of nature. I have great hopes for CFBuilder because of Adam's leadership.
Why you wouldn't use it:
For one, it won't be free. Noone outside Adobe knows yet how much it will cost, however. "Extensions" and the deployment features alone may be worth the price. Time will tell.
Because it's an Adobe product, I think it's reasonable to assume that releases will come as frequently as most Adobe products, which means... not very often. While CFEclipse deploys rather frequently lately -- and makes available a "nightly" site for the brave -- CFBuilder will most likely not do such daring-do. CFEclipse can afford to make potentially unstable builds available to the public, while it is perhaps not in Adobe's best interests to do so with CFBuilder.
Finally, it's still in Beta and might not be released for some time. If you get it now and start using it, remember that. In my experience, debugging is wonky, content assist sometimes works, sometimes doesn't, and a lot of people have experience crashiness. It's free beta software... you're getting what you pay for. But know that the more you work with this beta release, and particularly if you provide feedback via the public bug database, the better off all of us will be if it provides a best of breed editor for CFML.
Personally:
At home, when I do "designer" work, I use Dreamweaver when I feel that its Templates will help me build a site as quickly as possible. For existing side projects which require maintenance coding and easy deployments, I use ColdFusion builder.
At work, where I do almost no design work, CFEclipse has been my IDE since 2006. I've begun using ColdFusion builder a lot, though currently I split my time between CFBuilder and CFEclipse. One reason is that as of this writing, CFEclipse is more stable (i.e. it doesn't crash and I don't lose work). I fully expect stability problems to be mitigated by the time CFBuilder costs money.
Both CFBuilder and CFEclipse have public bug databases. CFEclipse has a well-attended public mailing list, and if you have questions, you'll get answers quickly. I cannot yet speak to the speed with which CFBuilder questions are answered.
Finally, for "coders", it's my experience that once you invest the time in learning the tools and shortcuts, Eclipse provides superior productivity compared with designer tools like Dreamweaver. For cranking out a designed site, a designer tool like Dreamweaver confers significant advantages.
The answer to the best ColdFusion IDE isn't an answer, but a question: "What are you trying to do with ColdFusion?" The answer to that question will lead you to an IDE that suits your needs for a particular project. Different circumstances or projects may lead you to a different tool which better suits your needs.
Notepad++ with CF syntax highlighting.
For free: Eclipse with CFEclipes plugin
For cost: If you're a developer, use Coldfusion Builder, if you're a front end designer Dreamweaver edits Coldfusion pretty well. I use it quite often.
I have heavily used Dreamweaver, CFeclipse with eclipse and now Coldfusion Builder. What I found is this:
1) Dreamweaver is only good for the few times you have to do some wysiwyg wizardry. The newer versions do have SVN integration so you might be able to get away with using it. I did use it for a few years on windows.
2) CFEclipse + Eclipse - Generally the standard of what' sbeen used for a while. Runs well, once you add in the Adobe dictionary files and subclipse, you have a good environment
3) Coldfusion Builder - This is Adobe's version of CFeclipse. It's still pretty new and getting to later beta. I switched to it about 6 months ago and haven't looked back. It's got a lot of wizards, including the ability to write your own plugins in CFML that will run right inside CFbuilder. It's free right now on beta but will likely be pretty cheap like the first flex builder that came out.
My Choice: Coldfusion Builder. It doesn't mean the others aren't capable, but you'll spend the least amoutn of time getting setup and maintaining your plugins, etc.
Since I had paid for and used Dreamweaver for a lot of years (Eclipse was generally sluggish sometimes on PCs' a while back until the excess of ram + cpu today), spending to have an adobe maintained copy of eclipse is okay with me. The wizards available in CFbuilder, especially for flex are excellent.
Hope that helps, good luck and share what you ended up picking and why!
For anyone who might stumble here from Google, you should also take a look at Sublime Text coupled with the ColdFusion package.
If you are familiar with Eclipse I would recommend Eclipse with coldfusion plugin.
http://www.cfeclipse.org/
Some use Eclipse, some use ColdFusion Builder, some use emacs or TextMate or vim. I use vim.
It doesn't take much time to try out an IDE or editor. Give them all a shot and stick with the one you like most.
The best IDE is ColdFusion Builder. It allows RDS, In Line Debugging, Extensions (written in ColdFusion!), Code Generation, Refactoring, supports JavaScript, CSS and HTML and so much more. It is currently in beta and should be released in production sometime this year.
CFEclipse is a great IDE for CFML and is the right choice if you are writing CFML for the open source engines. It is free and like most open-source free products it can do almost anything Builder can do if you invest the time to install the additional plugins (like Aptana) and tweak your setup just right.
I use both. At work, we use Builder. At home, I use CFEclipse.
Welcome to the CFML community!
Notepad++. Light and easy to use.
I'll vote for jEdit. While it doesn't offer great ColdFusion support beyond syntax highlighting, and therefore probably isn't great for learning ColdFusion, its flexibility in working with other languages (which seems to happen fairly often while working on the web), powerful macros, plug-in support, proper text wrapping, and loads of other features, make it the editor to which I always end up returning after trying out the "next best thing".
CFEclipse appears to be the most popular. Adobe has a beta of ColdFusion Builder (also based on Eclipse) but when I tried it a few months ago it was still buggy.
Personally I use TextMate (OS X) a pretty bare bones text editor.
I have used textpad, for 6 years, still a solid app, provides syntax coloring/highlighting, regular expressions support. Can easily search inside any file, through tons of folders/subfolders.
Just a fast loading, easy to use, tool.
Also has macros, and macro programming...
http://www.texptad.com
I'd like to throw E TextEditor for the Windows users in here as well. Its similar to sublime but it does have its advantages. E is more or less Textmate for windows and will allow you to run the cftextmate bundles. In addition to being lightweight and extremely fast you get the huge Textmate community developing bundles, color schemes, and other community driven content.
Some of the highlights of E is that it will allow you to open a directory and treat it directory as a project. Hitting Shift-Ctrl T will allow you to browse all the files in your project in a flattened hierarchy which allows you to find files extremely fast.
Related
Apple introduced Xcode source editor extensions with Xcode 8.
Will Xcode 8 still support plugins served via Alcatraz?
Xcode 8 prohibits code injection (the way plugins used to load) for security reasons. You can circumvent this by removing the code signing on Xcode. Both of these tools are capable of simplifying that:
https://github.com/inket/update_xcode_plugins
https://github.com/fpg1503/MakeXcodeGr8Again
To work on Xcode 8+ without removing the code signing, plugins will have to be rewritten as Xcode Source Editor Extensions. Unfortunately, the APIs for these extensions only allow for text replacement at the moment, so they are not an adequate replacement.
I've filed a report on rdar, do not hesitate to express your mind as well:
Xcode is a primary tool for the development on all Apple platforms.
People can either love or hate it, the fact is it's still the most
powerful development tool around.
Lots of its power and usefulness has been achieved by 3rd-party
plugins, later covered by the Alcatraz project, which is the number
one extension management system for Xcode, as vital and needed as for
example npm is needed for Node.js. It's all based on a fair, aware
community developing its helpful open-source extras and publishing
them on GitHub. It's not a code-injecting ghetto targeting infecting
stuff. It's a community within a community.
Xcode 8 tends to drop support for these plugins, most often being
narrated as a security step in favour of preventing distribution of
injected stuff. This is false; you simply can't prevent that 'cause
there's always someone who finds the way. This step simply makes Xcode
was less usable, complicated and not that feature-rich. There are many
important plugins which developers love, contribute and move forward
to make Xcode even better, tell yourself honestly, mostly even better
than you could in a short period.
The community needs powerful stuff. Way more powerful than basic
source-editing magic. Please reconsider this step in a spirit of
community and support to your developers.
In last years, there's a move towards closing your platform. First
shutting down Spotlight plugins and its great Flashlight plugins
manager, which is simply great and now I need to disable Rootless to
use it. Now it's Xcode plugins. You're doing more and more to make
developers and power users feel sad and not having their computing
device in their hands.
There's a detailed discussion on Alcatraz repo, it says everything:
https://github.com/alcatraz/Alcatraz/issues/475
I'm attaching a list of great plugins I simply can't spend a day
without:
AxeMode – Xcode issues patching Backlight – active line highlighting
ClangFormat – code formatter DerivedData Exterminator – daily need
getting rid or bad stuff FuzzyAutocomplete – name says it all, still
more powerful than Xcode completion HighlightSelectedString MCLog –
console log filtering, including regexes OMColorSense Polychromatic –
variables colouring, cute stuff RSImageOptimPlugin – processing PNG
files before committing SCXcodeMinimap – love this SublimeText-thingy!
XCFixin_FindFix – fixing Find features XcodeRefactoringPlus – patching
Refactor functionality, still buggy, but less than Xcode without
plugin XToDo – TODOs collection ZLGotoSandbox – 'cause dealing with
your folders would be a hell without it
Most of them are not source code-related, thus deserve having a way to
be loaded and working like a charm again.
You can certainly load all your plugins by recode signing Xcode 8.0. All credits to the XVim team. They seemed to solve this problem.
https://github.com/XVimProject/XVim/blob/master/INSTALL_Xcode8.md
The Most Important Step From The Solution
There is no support and we can't expect any. Apple decides to shut down the ecosystem around the Alcatraz package manager before they have an api ready (extensions) that is able to do what the plugins were doing before. The extensions are currently limited to the text frame which does not allow to do much.
The main reason announced by apple is security and we can now disable code signing with effort to get back the most important features that were missing in Xcode.
Bad day for the community, bad decision from apple.
I also recommend the discussion on Alcatraz here: https://github.com/alcatraz/Alcatraz/issues/475
Most importantly if you want to support Alcatraz file a bug at http://bugreport.apple.com to make them aware that many people are suffering with this change
I did the same (openradar.appspot.com/28423208):
Xcode is a primary tool for the development on all Apple platforms.
People can either love or hate it, the fact is it's still the most
powerful development tool around.
Lots of its power and usefulness has been achieved by 3rd-party plugins, later covered by the Alcatraz project, which is the number
one extension management system for Xcode, as vital and needed as for
example npm is needed for Node.js. It's all based on a fair, aware
community developing its helpful open-source extras and publishing
them on GitHub. It's not a code-injecting ghetto targeting infecting
stuff. It's a community within a community.
Xcode 8 tends to drop support for these plugins, most often being narrated as a security step in favour of preventing distribution of
injected stuff. This is false; you simply can't prevent that 'cause
there's always someone who finds the way. This step simply makes Xcode
was less usable, complicated and not that feature-rich. There are many
important plugins which developers love, contribute and move forward
to make Xcode even better, tell yourself honestly, mostly even better
than you could in a short period.
The community needs powerful stuff. Way more powerful than basic source-editing magic. Please reconsider this step in a spirit of
community and support to your developers.
In last years, there's a move towards closing your platform. First shutting down Spotlight plugins and its great Flashlight plugins
manager, which is simply great and now I need to disable Rootless to
use it. Now it's Xcode plugins. You're doing more and more to make
developers and power users feel sad and not having their computing
device in their hands.
There's a detailed discussion on Alcatraz repo, it says everything:
github.com/alcatraz/Alcatraz/issues/475
I'm attaching a list of great plugins I simply can't spend a day without:
AutoHighlightSymbol - Add highlights to the currently selected token
ClangFormat – code formatter
DerivedData Exterminator – daily need getting rid or bad stuff
FuzzyAutocomplete – name says it all, still more powerful than Xcode completion
KZLinkedConsole - be able to click on a link in the console to open the relevant file and be faster to debug
PreciseCoverage - nicer gui than xcode provides to view the coverage
XcodeColors - shows colors in the console depending on log level (how else should a console be used?)
Most of them are not source code-related, thus deserve having a way to be loaded and working like a charm again.
If you do not make a fast step to support your community i'm sure we
will find another platform to work with.
Seems like this should work. Found some answers here:
https://github.com/alcatraz/Alcatraz/issues/475
The key seems to be to removing code signing in order to get existing plugins to work.
Apparently not :'(
https://github.com/alcatraz/Alcatraz/issues/475
We have to wait until someone convert the plugins into the new Xcode Extensions
I've been using smalltalk for a while now and I love the language and the concept. What I just hate is the System browser. This tool doesn't even resemble a modern IDE. How am I supposed to code without tabs, outlines and handy shortcuts? I often find myself implementing a selector and noticing that it would be nice to isolate a piece of code in a separate (private) selector, just for readability shake, but I don't. Because it takes like 5 mouse clicks and I have to navigate away from the selector I am working at, and navigate back to it. Oh wait, I can't! Because it has syntax errors, because I haven't finished it yet! Kills me. And I don't have a 24 inch display to open 3 browsers.
Sorry for a little rant. My question is, is there a real IDE (Eclipse, Net.Beans, VS) for smalltalk? Maybe for some commercial version of smalltalk?
You might want to check out tODE. It's at a very early stage, but it is an attempt to provide a Smalltalk IDE in the web-browser and is a break from the traditional Smalltalk IDE. With that said, I don't think you'd want to start using tODE right away, but you can keep an eye on it as it evolves.
Dale
Pharo is trying to have the Nautilus Browser ready for Pharo
1.4. I suspect there will be a flood of awesome new tools as the system stabilizes over the next few releases.
There's the Glamorous Inspector.
Spoon has been mounted as a WebDAV filesystem, so you can use whatever tool you like. Spoon is not another Smalltalk, but a testbed for revolutionary Smalltalk technology, which can be incorporated into any other Smalltalk (it's currently on top of Squeak)
There is the Tiling Window Manager to help you organize
Since Squeak and Pharo are live, dynamic, open systems powered only by volunteers, anyone sufficiently motivated can create the next generation of tools ;-)
p.s. I feel your pain. The 20-browsers-open thing is a drag. Let's invent the future!
Historically, the real "IDE" is the Smalltalk one, and one could claim that the others are just an adaptation to the limits of traditional textual programming languages (not rethorical, just check out the evolution of typical development environment UIs and how they are adding features that exists in Smalltalk from the very beggining, like the senders and references in VS).
Just a side note: actually more than 2000 open-source projects in the SqueakSource repository were coded without tabs, outlines and shortcuts (I think still in Squeak you can cross reference any text selecting and pressing with Alt-6). I can't tell you how sad I feel when I must to go back to file based developement, still don't understand why most developers love to sweep text, mess with line numbers and page up-down files in directories. The good news for you, is that you have many options:
There is an alternative browser called BobsBrowser (works in Pharo 1.3) which lets you browse
Class hierarchy windows exploring each class
System Category window
Unsaved edits
Recent classes
Recent methods
Method categories for instances and classes
Unsent methods
Driller relating every structural information
etc.
The advantage over the Whisker browser is that the hierarchical lists are attached to a window while in BobsBrowser you can detach them.
It all depends of the different activities you're performing when you're developing. With some experience in Smalltalk you'll find that you prefer some browser for exploratory insights and others for refactorings, etc. BobsBrowser for example is good for knowledge organization or custom navigation of Smalltalk classes and categories, the hierarchies you can see are the organizations from the Smalltalk reflective meta-architecture at any level (classes, senders, implementors), and they are expandable/collapsable (in the classic system browsers you can only expand the system categories and subcategories).
The instance variables were shown historically in the Smalltalk/V flavors, and there is an old goodie (from Squeak 2.7 IIRC) to enable it back again but almost nobody today maintains the classic System Browser in Squeak/Pharo. Adding that feature to OmniBrowser would be more complicated though because is a browser framework (as every serious framework, it took some time to learn it for the first time), although the effort of the Squeak/Pharo community is absolutely incredible, still the Smalltalk community needs more developers.
You have also a commercial Smalltalk which isn't public (downloadable) yet but includes IDE-like features of traditional programming environments
And I don't have a 24 inch display to open 3 browsers.
You could give the Whisker Browser a try. It lays out the methods side-by-side so that you don't have to position all these windows manually.
I played with it a few years ago but I'm not sure what state it's in right now.
I don't know how mature it is, but the Etoile project has an IDE called CodeMonkey for writing Smalltalk applications. It's not specifically for Squeak, and instead uses their own smalltalk implementation, but it may be worth looking into. Unfortunately, it's only available in their SVN repository, so it's a pain to compile and install.
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.
Does anyone know of an alternative IDE for Sybase Powerbuilder? It feels pretty clunky, after working with VS2008 and Eclipse.
If not, has anyone successfully worked with this language outside the IDE? I'm not against using a simple text editor, but I find edit-import-regenerate-test-export-edit is clunkier than simply using the Powerbuilder editor.
To date, the only tools I have had any success with are:
PowerGen, for builds (with NUnit and CruiseControl.NET)
ConTEXT, which has syntax highlighting for Powerbuilder
PBL Peeper, which has some interesting features not present in the IDE
EDIT: I added a bounty to draw some wider attention to the question. It would be a very nice thing to have, if it exists.
EDIT: Well that was disappointing. The bounty apparently did not cause even 1 new person to look at the question.
None that I'm aware of, although you could probably use a source control tool, edit in your source control repository, and Get Latest Version from the PB IDE to shorten your text editor cycle. Be warned that there are hacks required to edit anything over 128 ASCII. (My guess is that this is to allow everything Unicode to be source controlled in the most restrictive source control tools.)
As Paul said, PB12 is coming with based on the Visual Studio shell, and will include things like collapsible code blocks, Intellisense, etc.... However, for PB12, this will only be used for WPF targets and a few .NET-type targets (like assemblies), last I heard. Win32 targets will continue to use the "classic" IDE.
Good luck,
Terry.
P.S. Thanks for the PBL Peeper compliment.
The PowerBuilder IDE is clunky, but I don't think developing completely outside the PowerBuilder IDE is a good idea. I think there are just too many dependencies right now.
However, the IDE for PowerBuilder 12 will be built using Microsoft's Visual Studio Isolated Shell so it ought to be much better when that is released. Also, I believe they'll be doing away with the PBL format which ought to make source control much easier to work with.
Certainly something to watch.
What I do is right-click the object and edit source. Then I copy the text and paste it into Notepad++ to edit. I copy and paste back to PowerBuilder, then I can save and see any errors. I've got a fairly decent User Defined Language for PowerScript if anyone's interested.
Added:
Please be aware that I've seen the PB Source editor corrupt DataWindows. They were all large DataWindows. To be safe always export DataWindows to edit.
One tool that will most probably make your PB experience way better is Visual Expert, which provides a good source browser. Such a tool should have been integrated into the PB IDE a long time ago, IMHO. Only problem is that it's not free, as opposed to the other tools you mention.
Regarding using external source editors, you can probably take advantage of OrcaScript, which is a scripting language that lets you perform actions such as export and import of PB objects from outside of the IDE. It will require some effort, but you can setup a basic dev env using batch files with ORCA scripts and some additional external tools. However, this setup will lack any visual editing capabilities, which means no (feasible) GUI or DW work. If you're mostly into NVOs, it could work. But then if that's the case, why use PB in the first place?...
I too have heard PB12's use of VS will be limited to some .NET stuff, which will probably benefit only a very small portion of the PB programmers community. I'm afraid the rest of us are stuck with the awful IDE for years to come.
Other than exporting the source and editing it I don't know of another IDE for PB. One problem you may have is that the exported source contains a lot of syntax that is not documented in the manuals. The PB IDE generates this code but there is no support for creating it by hand. I think you are stuck with the PB IDE
In my modest five Years of experiences starting with Powerbuilder 5/6, now using PB 10, I tempt to :
build my own browser from the classdefinition object based on Powerbuilder
tried to use autohotkey in order to open datawindows comfortable (we have several thousands in the project and i am two-finger-driven)
truly investigated in the idea using an external editor/IDE suppoted by an autohotkey script which is undermined by sybase allowing only mouse-click-usage of PB
using Visual Expert which is neither a truly integration in the IDE, nor is really worth in analyzing datwindow/powerscript interaction
ending by build hopes on PB12 Visual Studio, which lacks - depending on compatibility issues - ...
... i came to the conclusion that there will be no chance in improving Powerbuilder to an state-of-the-art language
In my philosophy - I obtained during those years - I distinguish between two types of OOP-oriented languages:
the one that award using object-orientation like C#, Python, Ruby (C++) etc. and very much the Java-Eclipse/Netbeans-Universe does
the other one that punish using object-orientation like Powerbuilder and the old Visual Basic, for example (which is causative the OOP-Idea comes afterwards and is "plugged in").
Especially the demand that all object should always be compiled (regenerated) and that you could't work with ancestors and descandants concurrently makes it painful to use real OOP.
...In memory of the good old Unix(Solaris)/C++ days...
I was researching a replacement solution that would be similar to PowerBuilder and I came across two that caught my eye.
The first was 'React Studio' https://reactstudio.com/ which I found via Alternativeto.net .
And the second was from an ad at the top of some Google searches but it was similar enough and looked good enough at first glance for me to want to take a closer look at it, and it's called 'Servoy' https://servoy.com/ .
Still researching but I currently have React Studio at the top of our list.
The TextPad editor has a syntax definition file for PowerBuilder 6.x contributed by anr#aon.at that I downloaded for free and customized several years ago. It works fine for later versions (including 8), doing keyword color highlighting on PowerScript srx files. Editing large source files in PB could get it to crash so it's usually safer, faster and more convenient to export to srx file, edit outside the IDE then re-import.